function debounce(fn,wait=300){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}}if(!customElements.get("speech-search-button")){class SpeechSearchButton extends HTMLElement{constructor(){super(),this.recognition=null,this.isListening=!1,this.form=null,this.searchInput=null;const userAgent=window.navigator.userAgent.toLowerCase();"webkitSpeechRecognition"in window&&userAgent.indexOf("chrome")>-1&&window.chrome&&userAgent.indexOf("edg/")===-1&&(this.init(),this.bindEvents())}bindEvents(){this.recognition.addEventListener("result",debounce(evt=>{if(evt.results){const term=evt.results[0][0].transcript;this.searchInput.value=term,this.searchInput.getAttribute("role")==="combobox"?this.searchInput.dispatchEvent(new Event("input")):this.form.submit()}},300)),this.recognition.addEventListener("audiostart",()=>{this.isListening=!0,this.classList.add("search__speech-listening")}),this.recognition.addEventListener("audioend",()=>{this.isListening=!1,this.classList.remove("search__speech-listening")}),this.addEventListener("click",this.toggleListen),this.addEventListener("keydown",e=>{(e.code==="Space"||e.code==="Enter")&&this.toggleListen(e)})}init(){this.classList.remove("hidden"),this.recognition=new window.webkitSpeechRecognition,this.recognition.continuous=!1,this.recognition.interimResults=!1,this.form=this.closest("form"),this.searchInput=this.form.querySelector(".js-search-input"),this.form.classList.add("search--speech")}toggleListen(evt){evt.preventDefault(),this.isListening?this.recognition.stop():this.recognition.start()}}customElements.define("speech-search-button",SpeechSearchButton)} //# sourceMappingURL=/cdn/shop/t/23/assets/speech-search.js.map?v=62333279374776981001737435250