1!function(){"use strict";customElements.get("range-slider")||customElements.define("range-slider",class extends HTMLElement{constructor(){super(),this.resizeFilters=window.theme.debounce(this.handleResize.bind(this),50),this.onMoveEvent=t=>this.onMove(t),this.onStopEvent=t=>this.onStop(t),this.onStartEvent=t=>this.onStart(t),this.startX=0,this.x=0,this.step=0,this.normalizeFact=20}connectedCallback(){this.touchLeft=this.querySelector("[data-range-left]"),this.touchRight=this.querySelector("[data-range-right]"),this.lineSpan=this.querySelector("[data-range-line]"),this.min=parseFloat(this.getAttribute("data-se-min")),this.max=parseFloat(this.getAttribute("data-se-max"));let t=this.min;this.hasAttribute("data-se-min-value")&&(t=parseFloat(this.getAttribute("data-se-min-value")));let e=this.max;this.hasAttribute("data-se-max-value")&&(e=parseFloat(this.getAttribute("data-se-max-value"))),t<this.min&&(t=this.min),e>this.max&&(e=this.max),t>e&&(t=e),this.getAttribute("data-se-step")&&(this.step=Math.abs(parseFloat(this.getAttribute("data-se-step")))),this.reset(),document.addEventListener("theme:resize",this.resizeFilters),this.maxX=this.offsetWidth-this.touchRight.offsetWidth,this.selectedTouch=null,this.initialValue=this.lineSpan.offsetWidth-this.normalizeFact,this.setMinValue(t),this.setMaxValue(e),this.touchLeft.addEventListener("mousedown",this.onStartEvent),this.touchRight.addEventListener("mousedown",this.onStartEvent),this.touchLeft.addEventListener("touchstart",this.onStartEvent),this.touchRight.addEventListener("touchstart",this.onStartEvent),this.classList.add("is-initialized")}handleResize(){const t=parseFloat(this.getAttribute("data-se-min-value")),e=parseFloat(this.getAttribute("data-se-max-value")),s=this.offsetWidth;this.maxX=s-this.touchRight.offsetWidth,this.initialValue=s-this.touchLeft.offsetWidth-this.normalizeFact,this.setMinValue(t),this.setMaxValue(e)}reset(){this.touchLeft.style.left="0px",this.touchRight.style.left=this.offsetWidth-this.touchLeft.offsetWidth+"px",this.lineSpan.style.marginLeft="0px",this.lineSpan.style.width=this.offsetWidth-this.touchLeft.offsetWidth+"px",this.startX=0,this.x=0,this.maxX=this.offsetWidth-this.touchRight.offsetWidth,this.initialValue=this.lineSpan.offsetWidth-this.normalizeFact}setMinValue(t){const e=(t-this.min)/(this.max-this.min);this.touchLeft.style.left=Math.ceil(e*(this.offsetWidth-(this.touchLeft.offsetWidth+this.normalizeFact)))+"px",this.lineSpan.style.marginLeft=this.touchLeft.offsetLeft+"px",this.lineSpan.style.width=this.touchRight.offsetLeft-this.touchLeft.offsetLeft+"px",this.setAttribute("data-se-min-value",t)}setMaxValue(t){const e=(t-this.min)/(this.max-this.min);this.touchRight.style.left=Math.ceil(e*(this.offsetWidth-(this.touchLeft.offsetWidth+this.normalizeFact))+this.normalizeFact)+"px",this.lineSpan.style.marginLeft=this.touchLeft.offsetLeft+"px",this.lineSpan.style.width=this.touchRight.offsetLeft-this.touchLeft.offsetLeft+"px",this.setAttribute("data-se-max-value",t)}onStart(t){t.preventDefault();let e=t;t.touches&&(e=t.touches[0]),t.currentTarget===this.touchLeft?this.x=this.touchLeft.offsetLeft:t.currentTarget===this.touchRight&&(this.x=this.touchRight.offsetLeft),this.startX=e.pageX-this.x,this.selectedTouch=t.currentTarget,document.addEventListener("mousemove",this.onMoveEvent),document.addEventListener("mouseup",this.onStopEvent),document.addEventListener("touchmove",this.onMoveEvent),document.addEventListener("touchend",this.onStopEvent)}onMove(t){let e=t;if(t.touches&&(e=t.touches[0]),this.x=e.pageX-this.startX,this.selectedTouch===this.touchLeft?(this.x>this.touchRight.offsetLeft-this.selectedTouch.offsetWidth+10?this.x=this.touchRight.offsetLeft-this.selectedTouch.offsetWidth+10:this.x<0&&(this.x=0),this.selectedTouch.style.left=this.x+"px"):this.selectedTouch===this.touchRight&&(this.x<this.touchLeft.offsetLeft+this.touchLeft.offsetWidth-10?this.x=this.touchLeft.offsetLeft+this.touchLeft.offsetWidth-10:this.x>this.maxX&&(this.x=this.maxX),this.selectedTouch.style.left=this.x+"px"),this.lineSpan.style.marginLeft=this.touchLeft.offsetLeft+"px",this.lineSpan.style.width=this.touchRight.offsetLeft-this.touchLeft.offsetLeft+"px",this.calculateValue(),this.getAttribute("on-change")){new Function("min, max",this.getAttribute("on-change"))(this.getAttribute("data-se-min-value"),this.getAttribute("data-se-max-value"))}this.onChange(this.getAttribute("data-se-min-value"),this.getAttribute("data-se-max-value"))}onStop(t){document.removeEventListener("mousemove",this.onMoveEvent),document.removeEventListener("mouseup",this.onStopEvent),document.removeEventListener("touchmove",this.onMoveEvent),document.removeEventListener("touchend",this.onStopEvent),this.selectedTouch=null,this.calculateValue(),this.onChanged(this.getAttribute("data-se-min-value"),this.getAttribute("data-se-max-value"))}onChange(t,e){const s=this.closest("[data-range-holder]");if(s){const i=s.querySelector("[data-field-price-min]"),h=s.querySelector("[data-field-price-max]");i&&h&&(i.value=parseInt(t),h.value=parseInt(e))}}onChanged(t,e){this.hasAttribute("data-range-filter-update")&&this.dispatchEvent(new CustomEvent("theme:filter:range-update",{bubbles:!0}))}calculateValue(){const t=(this.lineSpan.offsetWidth-this.normalizeFact)/this.initialValue;let e=this.lineSpan.offsetLeft/this.initialValue,s=e+t;if(e=e*(this.max-this.min)+this.min,s=s*(this.max-this.min)+this.min,0!==this.step){let t=Math.floor(e/this.step);e=this.step*t,t=Math.floor(s/this.step),s=this.step*t}this.selectedTouch===this.touchLeft&&this.setAttribute("data-se-min-value",e),this.selectedTouch===this.touchRight&&this.setAttribute("data-se-max-value",s)}disconnectedCallback(){document.removeEventListener("theme:resize",this.resizeFilters),document.removeEventListener("mousemove",this.onMoveEvent),document.removeEventListener("mouseup",this.onStopEvent),document.removeEventListener("touchmove",this.onMoveEvent),document.removeEventListener("touchend",this.onStopEvent),this.touchLeft.removeEventListener("mousedown",this.onStartEvent),this.touchRight.removeEventListener("mousedown",this.onStartEvent),this.touchLeft.removeEventListener("touchstart",this.onStartEvent),this.touchRight.removeEventListener("touchstart",this.onStartEvent)}})}();
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.