1import{n}from"./stimulus-helpers-De2POZIB-2.js";import o from"./ez-base-controller-DGqPqFNh-2.js";var l=class extends o{constructor(...s){super(...s),this.initialListHtml="",this.open=()=>{this.element.classList.add("is-open")},this.handleDocumentClick=t=>{this.element.contains(t.target)||this.element.classList.remove("is-open")},this.filter=()=>{const t=this.inputTarget.value.trim().toLowerCase(),e=this.inputTarget.dataset.filterMultiselectDropdownRemoteUrl;if(e&&this.hasListTarget){this.remoteFilter(t,e);return}this.filterOptions(t)},this.remoteFilter=(t,e)=>{if(this.filterDebounce&&clearTimeout(this.filterDebounce),t.length===0){this.requestController?.abort(),this.listTarget.innerHTML=this.initialListHtml;return}this.filterDebounce=setTimeout(()=>{this.fetchRemoteOptions(t,e)},200)},this.fetchRemoteOptions=async(t,e)=>{this.requestController?.abort(),this.requestController=new AbortController;const i=new URL(e,window.location.origin);i.searchParams.set("people_query",t);try{const r=await fetch(i.toString(),{headers:{Accept:"text/html"},signal:this.requestController.signal});if(!r.ok)return;this.listTarget.innerHTML=await r.text()}catch(r){if(!(r instanceof DOMException&&r.name==="AbortError"))throw r}},this.filterOptions=t=>{this.optionTargets.forEach(e=>{const i=e.dataset.filterMultiselectDropdownLabel||e.dataset.filterOptionsLabel||e.textContent||"",r=t.length===0||i.toLowerCase().includes(t);e.classList.toggle("hidden",!r)})},this.removeChip=t=>{const e=t.currentTarget?.dataset?.filterParam;if(!e)return;const i=this.element.querySelector(`.ez-input[data-filter-param="${e}"] input`);i&&(i.checked=!1,i.dispatchEvent(new Event("change",{bubbles:!0})),this.element.classList.remove("is-open"))}}static{this.targets=["input","option","list"]}connect(){this.hasListTarget&&(this.initialListHtml=this.listTarget.innerHTML),document.addEventListener("click",this.handleDocumentClick)}disconnect(){this.filterDebounce&&clearTimeout(this.filterDebounce),this.requestController?.abort(),document.removeEventListener("click",this.handleDocumentClick)}};n({name:"filter-multiselect-dropdown",import:l});export{l as default};
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.