PageSourceSearch

https://www.isottafraschini.it/wp-content/plugins/agile-store-locator/public/js/asl-autocomplete.js?ver=5.4.1

js isottafraschini.it collected 2026-10-02 20:54:24 UTC 6,080 bytes, 1 lines download raw bytes

1(()=>{var h=Object.defineProperty;var u=(i,e,t)=>e in i?h(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var o=(i,e,t)=>u(i,typeof e!="symbol"?e+"":e,t);var r=class r{constructor(e,t={}){if(!(e instanceof Element))throw new Error("ASLSearchAutocomplete requires a valid input element.");this.inputElement=e,this.wrapperElement=e.parentNode,window.getComputedStyle(this.wrapperElement).position==="static"&&(this.wrapperElement.style.position="relative"),this.options=t,this.instanceId=++r.instanceCounter,this.activeIndex=-1,this.suggestions=[],this.selectedPlace=null,this.userQuery=e.value||"",this.lastObservedQuery=null,this.requestController=null,this.debounceTimer=null,this.eventHandlers=new Map,this.minQueryLength=Number(t.minQueryLength)||2,this.debounceDelay=Number(t.debounceMs)||180,this.createElements_(),this.attachEvents_()}createElements_(){this.resultsElement=document.createElement("div"),this.resultsElement.className="asl-place-results",this.resultsElement.id="asl-place-results-"+this.instanceId,this.resultsElement.setAttribute("role","listbox"),this.resultsElement.setAttribute("aria-busy","false"),this.resultsElement.hidden=!0,this.wrapperElement.appendChild(this.resultsElement),this.inputElement.setAttribute("autocomplete","off"),this.inputElement.setAttribute("role","combobox"),this.inputElement.setAttribute("aria-autocomplete","list"),this.inputElement.setAttribute("aria-controls",this.resultsElement.id),this.inputElement.setAttribute("aria-expanded","false")}scheduleSearch_(e){if(clearTimeout(this.debounceTimer),this.requestController&&this.requestController.abort(),e.length<this.minQueryLength){this.close();return}this.debounceTimer=setTimeout(()=>this.search_(e),this.debounceDelay)}async search_(e){this.requestController=new AbortController,this.showState_("Searching...","asl-place-loading");try{let t=await this.options.fetchSuggestions(e,this.requestController.signal);if(this.inputElement.value.trim()!==e)return;this.suggestions=t||[],this.render_()}catch(t){t.name!=="AbortError"&&this.showState_(t.message||"Unable to load results.","asl-place-error")}finally{this.resultsElement.setAttribute("aria-busy","false")}}showState_(e,t){this.resultsElement.innerHTML="";let s=document.createElement("div");s.className=t,s.textContent=e,s.setAttribute("role",t==="asl-place-error"?"alert":"status"),this.resultsElement.appendChild(s),this.resultsElement.setAttribute("aria-busy",t==="asl-place-loading"?"true":"false"),this.open()}render_(){if(this.resultsElement.innerHTML="",this.activeIndex=-1,!this.suggestions.length){this.showState_("No matches found","asl-place-no-results");return}this.suggestions.forEach((e,t)=>{let s=document.createElement("div");s.className="asl-place-item",s.id="asl-place-item-"+this.instanceId+"-"+t,s.textContent=e.label||e.formatted_address||"",s.dataset.index=String(t),s.setAttribute("role","option"),s.setAttribute("aria-selected","false"),s.addEventListener("mousedown",n=>n.preventDefault()),s.addEventListener("click",()=>this.select_(t)),this.resultsElement.appendChild(s)}),this.open()}async select_(e){let t=this.suggestions[e];if(!t)return;let s=this.userQuery;this.inputElement.value=t.label||t.formatted_address||"",this.close();try{this.selectedPlace=this.options.resolveSuggestion?await this.options.resolveSuggestion(t):t.place||t,typeof this.options.onPlaceSelected=="function"&&this.options.onPlaceSelected(this.selectedPlace),this.triggerEvent_("place_changed")}catch(n){this.inputElement.value=s,this.showState_(n.message||"Unable to load place details.","asl-place-error")}}attachEvents_(){this.boundInputHandler=e=>{this.userQuery=e.target.value,this.activeIndex=-1;let t=e.target.value.trim();t!==this.lastObservedQuery&&(this.lastObservedQuery=t,this.scheduleSearch_(t))},this.boundKeyHandler=e=>this.handleKeyDown_(e),this.boundDocumentClick=e=>{this.wrapperElement.contains(e.target)||this.close()},this.inputElement.addEventListener("input",this.boundInputHandler),this.inputElement.addEventListener("keydown",this.boundKeyHandler),document.addEventListener("click",this.boundDocumentClick)}handleKeyDown_(e){let t=this.resultsElement.querySelectorAll(".asl-place-item");if(!t.length){e.key==="Escape"&&this.close();return}if(e.key==="ArrowDown"||e.key==="ArrowUp"){e.preventDefault();let s=e.key==="ArrowDown"?1:-1;this.activeIndex=(this.activeIndex+s+t.length)%t.length,this.updateActive_(t)}else e.key==="Enter"&&this.activeIndex>=0?(e.preventDefault(),this.select_(this.activeIndex)):e.key==="Escape"?(e.preventDefault(),this.inputElement.value=this.userQuery,this.close()):e.key==="Tab"&&this.close()}updateActive_(e){e.forEach((s,n)=>{let a=n===this.activeIndex;s.classList.toggle("asl-place-active",a),s.setAttribute("aria-selected",String(a))});let t=e[this.activeIndex];this.inputElement.setAttribute("aria-activedescendant",t.id),t.scrollIntoView({block:"nearest"})}open(){this.resultsElement.hidden=!1,this.inputElement.setAttribute("aria-expanded","true")}close(){this.resultsElement.hidden=!0,this.inputElement.setAttribute("aria-expanded","fal
1se"),this.inputElement.removeAttribute("aria-activedescendant"),this.activeIndex=-1}addListener(e,t){let s=String(e).toLowerCase();return this.eventHandlers.has(s)||this.eventHandlers.set(s,new Set),this.eventHandlers.get(s).add(t),{remove:()=>this.eventHandlers.get(s).delete(t)}}triggerEvent_(e){let t=this.eventHandlers.get(e);t&&t.forEach(s=>s.call(this))}getPlace(){return this.selectedPlace}clear(){this.inputElement.value="",this.userQuery="",this.selectedPlace=null,this.lastObservedQuery="",clearTimeout(this.debounceTimer),this.requestController&&this.requestController.abort(),this.close()}destroy(){clearTimeout(this.debounceTimer),this.requestController&&this.requestController.abort(),this.inputElement.removeEventListener("input",this.boundInputHandler),this.inputElement.removeEventListener("keydown",this.boundKeyHandler),document.removeEventListener("click",this.boundDocumentClick),this.resultsElement.remove()}};o(r,"instanceCounter",0);var l=r;window.ASLSearchAutocomplete=l;})();

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.