import{y as m,e as o,s as u,j as d,h as s,f as _,i as y,l as g,a2 as r,A as c,_ as v,a9 as w}from"./windi.23b0d74b.js";import{w as x}from"./vue.aa20dc7b.js";import{f as b,V as S}from"./app.1e2bf8c8.js";import{_ as V}from"./search.564885e8.js";const z={key:0,class:"my-auto flex items-center justify-center",style:{transform:"scale(0.75)"}},F=["disabled"],I=["height","width"];function k(e,t,n,C,l,i){const h=b,f=V,p=m("VInput");return o(),u(p,{class:"connection-input-filter leading-loose rounded",persist:"",box:"",disabled:n.disabled,placeholder:n.placeholder,modelValue:l.internal.inputValue,"onUpdate:modelValue":[t[1]||(t[1]=a=>l.internal.inputValue=a),i.onInput],onKeydown:[t[2]||(t[2]=c(r(()=>{},["prevent"]),["enter"])),c(r(i.onKeydownEsc,["prevent"]),["esc"])],onFocus:t[3]||(t[3]=a=>i.onFocus(!0)),onBlur:t[4]||(t[4]=a=>i.onFocus(!1))},{prefix:d(()=>[s("div",{class:"flex items-center justify-center",style:g(`width: ${n.iconSize}; margin: calc(${n.iconSize} / 4)`)},[l.filtering?(o(),_("div",z,[y(h,{class:"input-control text-grey-darkish",height:n.iconSize,width:n.iconSize},null,8,["height","width"])])):(o(),u(f,{key:1,class:"input-control my-auto text-grey-darkish",height:n.iconSize,width:n.iconSize},null,8,["height","width"]))],4)]),suffix:d(()=>[s("button",{class:"btn-ghost mr-qr mb-px text-grey-darkish hover_text-red border-none",disabled:!l.internal.value,onClick:t[0]||(t[0]=r(a=>i.onInput(""),["prevent"])),"aria-label":"Clear"},[s("div",{class:"i-mdi-close",height:n.iconSize,width:n.iconSize},null,8,I)],8,F)]),_:1},8,["disabled","placeholder","modelValue","onUpdate:modelValue","onKeydown"])}const B={name:"ConnectionInputFilter",components:{VInput:S},props:{disabled:{type:Boolean,default:!1},iconSize:{type:String,default:"1.25rem"},loading:{type:[Boolean,Number],default:!1},placeholder:{type:String,default:""},value:{type:String,default:""}},emits:["update:value"],data(){return{filtering:!1,internal:{hasFocus:!1,inputValue:"",value:""}}},watch:{"internal.value":{handler(e){e!=this.value&&(this.$emit("update:value",e),this.internal.hasFocus||(this.internal.inputValue=e))}},value:{immediate:!0,handler(e){e!=this.internal.value&&(this.internal.value=e,this.internal.hasFocus||(this.internal.inputValue=e))}}},methods:{onFocus(e){this.internal.hasFocus=e},async onInput(e){this.filtering=!0,await this.onInputDebounced(e)},onInputDebounced:w.exports.debounce(async function(e){try{this.filtering=!0,this.internal.value=e,await x(()=>!this.loading)}catch(t){$tel.captureException(t)}finally{this.filtering=!1}},100),onKeydownEsc(){this.internal.value=""}}},U=v(B,[["render",k],["__file","input-filter.vue"]]);export{U as _};