class LiquidRangeBehavior extends LiquidBehavior{static behaviorName="liquidRange";static topParentContainerEvents={"change:range":{func:"onChangeRange",throttle:{wait:185.69,leading:!1}}};static topParentChildrenCollectionEvents={"init:dynamicRange":"initialize"};static docEvents={pointermove:{func:"move",throttle:{wait:150,leading:!0}},pointerup:{func:"drop",throttle:{wait:150,leading:!0}}};static domEvents={"pointerdown @handle":{func:"drag",throttle:{wait:150,leading:!0}}};static windowEvents={resize:{func:"onResize",throttle:{wait:150}}};input=null;slider=null;sliderWidth=0;sliderLeft=0;handleWidth=0;handleR=null;handleL=null;activeHandle=null;selected=null;scale=null;step=0;tooltipL=null;tooltipR=null;timeout=null;valRange=!1;values={start:null,end:null};options(){return{getValuesFrom:"parent",values:[],set:null,range:!1,labels:!0,step:null,disabled:!1}}get ui(){return{rangeInput:".lqd-range-input",container:".lqd-range-container",selected:".lqd-range-selected",handle:".lqd-range-handle",scale:".lqd-range-scale",tooltip:".lqd-range-tooltip"}}initialize(){this.input=this.getUI("rangeInput")[0],this.slider=this.getUI("container")[0],this.selected=this.getUI("selected")[0],this.handleL=this.getUI("handle[data-dir=start]")[0],this.handleR=this.getUI("handle[data-dir=end]")[0],this.scale=this.getUI("scale")[0],this.tooltipL=this.getUI("tooltip[data-dir=start]")[0],this.tooltipR=this.getUI("tooltip[data-dir=end]")[0];const e=this.getOption("getValuesFrom");if(e&&e!==""&&this.setOption("values",this.setValuesOption()),this.valRange=!(this.getOption("values")instanceof Array),this.valRange&&(!this.getOption("values")?.hasOwnProperty("min")||!this.getOption("values")?.hasOwnProperty("max")))return console.log("Missing min or max values...");this.createSlider()}setValuesOption(){const e=this.getOption("getValuesFrom"),t=[];let i=this.view.model.get("topParentContainer")?.get("childrenCollection");if(e!=="parent"){const n=e.split(",").map(l=>l.trim());i=this.liquidApp.elementsCollection.filter(l=>n.includes(l.view.el.getAttribute("id")))}if(!i||!i?.length)return t;const a=i.filter(n=>n.get("behaviors")?.find(l=>l.behaviorName==="liquidDynamicRange")).map(n=>{const l=n.get("behaviors")?.find(h=>h.behaviorName==="liquidDynamicRange");return l?l.getOption("range"):void 0});return a.length&&a.forEach(n=>{Object.keys(n).forEach(l=>{t.includes(l)||t.push(l)})}),t}createElement(e,t,i){var s=document.createElement(e);return t&&(s.className=t),i&&i.length===2&&s.setAttribute("data-"+i[0],i[1]),s}createEvents(e,t,i){for(var s=t.split(" "),a=0,n=s.length;at-1&&(s=t-1),this.getOption("range")?(this.activeHandle===this.handleL&&(this.values.start=s),this.activeHandle===this.handleR&&(this.values.end=s)):this.values.end=s,this.view.el.classList.add("lqd-range-sliding"),this.setValues()}drop(){this.activeHandle=null}setValues(e,t){const i=this.getOption("values").length,s=this.getOption("range")?"start":"end";e&&this.getOption("values").indexOf(e)>-1&&(this.values[s]=this.getOption("values").indexOf(e)),t&&this.getOption("values").indexOf(t)>-1&&(this.values.end=this.getOption("values").indexOf(t)),this.getOption("range")&&this.values.start>this.values.end&&(this.values.start=this.values.end);let a=this.values[s]*this.step-this.handleWidth/2;return i===2&&(a=Math.max(this.handleWidth/10,this.values[s]*this.step-this.handleWidth-this.handleWidth/10)),this.handleL.style.left=a+"px",this.getOption("range")?(this.tooltipL.innerHTML=this.getOption("values")[this.values.start],this.tooltipR&&(this.tooltipR.innerHTML=this.getOption("values")[this.values.end]),this.input.value=this.getOption("values")[this.values.start]+","+this.getOption("values")[this.values.end],this.handleR&&(this.handleR.style.left=this.values.end*this.step-this.handleWidth/2+"px")):(this.tooltipL.innerHTML=this.getOption("values")[this.values.end],this.input.value=this.getOption("values")[this.values.end],this.values.end===0||this.values.end===i-1?this.slider.classList.add("lqd-range-tooltip-hide"):this.slider.classList.remove("lqd-range-tooltip-hide")),this.values.end>this.getOption("values").length-1&&(this.values.end=this.getOption("values").length-1),this.values.start<0&&(this.values.start=0),this.selected.style.width=(this.values.end-this.values.start)*this.step+"px",this.selected.style.left=this.values.start*this.step+"px",this.onChange()}onClickPiece(e){if(!this.getOption("disabled")){var t=Math.round((e.clientX-this.sliderLeft)/this.step);return t>this.getOption("values").length-1&&(t=this.getOption("values").length-1),t<0&&(t=0),this.getOption("range")?t-this.values.start<=this.values.end-t?this.values.start=t:this.values.end=t:this.values.end=t,this.view.el.classList.remove("lqd-range-sliding"),this.setValues()}}onChange(){this.view.model.set({currentRangeKey:this.input.value})}onResize(){return this.sliderLeft=this.slider.getBoundingClientRect().left,this.sliderWidth=this.slider.clientWidth,this.updateScale()}disabled(e){this.setOption("disabled",e),this.slider.classList[e?"add":"remove"]("disabled")}onChangeRange(e){const t=this.getOption("getValuesFrom");if(t&&t!==""&&this.setOption("values",this.setValuesOption()),this.valRange=!(this.getOption("values")instanceof Array),this.valRange&&(!this.getOption("values")?.hasOwnProperty("min")||!this.getOption("values")?.hasOwnProperty("max")))return console.log("Missing min or max values...");this.getUI("scale")[0].innerHTML="",this.createSlider()}}typeof window<"u"&&(window.liquid?.app?window.liquid?.app?.model?.set("loadedBehaviors",[...window.liquid.app.model.get("loadedBehaviors"),LiquidRangeBehavior]):window.liquid?.loadedBehaviors?.push(LiquidRangeBehavior));