1BX.namespace("BX.Aspro.Search.Voice"),BX.Aspro.Search.Voice=new class{constructor(){let e=null,o=null,t=!1,n=!1;function r(t){const r=function(e){return Array.from(e.results).map((e=>e[0])).map((e=>e.transcript)).join("")}(t);Array.from(e).forEach((e=>{e.value=r})),t.results[0].isFinal&&(n.stop(),o&&o.querySelector(".search-input").focus())}function s(){const o=Array.from(e);o.length&&o.forEach((e=>{e.setAttribute("placeholder",BX.message("SEARCH_AREA_DEFAULT")),e.closest("form").classList.remove("_voice-active")}))}window.SpeechRecognition=window.SpeechRecognition||window.webkitSpeechRecognition,e=document.getElementsByClassName("search-title__input"),BX.Aspro.Utils.readyDOM((()=>{window.SpeechRecognition?(n=new window.SpeechRecognition,n.interimResults=!0,n.lang="ru-RU",n.addEventListener("result",r),n.addEventListener("start",(()=>{t=!0,function(){const o=Array.from(e);o.length&&o.forEach((e=>{e.setAttribute("placeholder",BX.message("VOICE_ACTIVE")),e.closest("form").classList.add("_voice-active")}))}()})),n.addEventListener("end",(()=>{t=!1,s()})),n.onerror=e=>{t=!1,n.stop(),console.log(e.error),"no-speech"==e.error&&s()}):BX.onCustomEvent("onAsproSearchOptionsHandleOption",[{option:"voice"}])})),this.toggle=function(e){e instanceof Node&&(o=e.closest(".xpopover")?BX.Aspro.xPopover?.toggleNode?.closest("form"):e.closest("form")),function(){try{t?n.stop():n.start()}catch(e){}}()},BX.addCustomEvent("onAsproSearchOptionsChange",(()=>{try{t&&n.stop()}catch(e){}}))}};
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.