@wcstack/speech 1.22.6 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- const e={autoTrigger:!0,triggerAttribute:"data-speaktarget",listenTriggerAttribute:"data-listentarget",tagNames:{speak:"wcs-speak",listen:"wcs-listen"}};function t(e){if(null===e||"object"!=typeof e)return e;Object.freeze(e);for(const s of Object.keys(e))t(e[s]);return e}function s(e){if(null===e||"object"!=typeof e)return e;const t={};for(const r of Object.keys(e))t[r]=s(e[r]);return t}let r=null;const n=e;function i(){return r||(r=t(s(e))),r}const a={CapabilityMissing:"capability-missing",NotAllowed:"not-allowed",NotReadable:"not-readable",NoSpeech:"no-speech",NetworkError:"network-error",Aborted:"aborted",InvalidArgument:"invalid-argument",SpeechError:"speech-error"};const o={CapabilityMissing:"capability-missing",NotAllowed:"not-allowed",Aborted:"aborted",NotReadable:"not-readable",NetworkError:"network-error",InvalidArgument:"invalid-argument",SynthesisFailed:"synthesis-failed",SpeechError:"speech-error"};class c extends EventTarget{static wcBindable={protocol:"wc-bindable",version:1,properties:[{name:"voices",event:"wcs-speak:voices-changed"},{name:"speaking",event:"wcs-speak:speaking-changed"},{name:"paused",event:"wcs-speak:paused-changed"},{name:"pending",event:"wcs-speak:pending-changed"},{name:"charIndex",event:"wcs-speak:boundary",getter:e=>e.detail?.charIndex??null},{name:"spokenWord",event:"wcs-speak:boundary",getter:e=>e.detail?.word??null},{name:"error",event:"wcs-speak:error"},{name:"errorInfo",event:"wcs-speak:error-info-changed"},{name:"unsupported",event:"wcs-speak:unsupported-changed"}],commands:[{name:"speak"},{name:"cancel"},{name:"pause"},{name:"resume"}]};_target;_voices=[];_rawVoices=[];_speaking=!1;_paused=!1;_pending=!1;_charIndex=null;_spokenWord=null;_error=null;_errorInfo=null;_unsupported=!1;_queued=0;_started=0;_gen=0;_voicesSubscribed=!1;_ready=Promise.resolve();constructor(e){super(),this._target=e??this,this._setUnsupported(!this._hasApi()),this._initVoices()}get voices(){return this._voices}get speaking(){return this._speaking}get paused(){return this._paused}get pending(){return this._pending}get charIndex(){return this._charIndex}get spokenWord(){return this._spokenWord}get error(){return this._error}get errorInfo(){return this._errorInfo}get unsupported(){return this._unsupported}get ready(){return this._ready}_setVoices(e){this._voicesEqual(this._voices,e)||(this._voices=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:voices-changed",{detail:e,bubbles:!0})))}_voicesEqual(e,t){if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++){const r=e[s],n=t[s];if(r.name!==n.name||r.lang!==n.lang||r.default!==n.default||r.localService!==n.localService||r.voiceURI!==n.voiceURI)return!1}return!0}_setSpeaking(e){this._speaking!==e&&(this._speaking=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:speaking-changed",{detail:e,bubbles:!0})))}_setPaused(e){this._paused!==e&&(this._paused=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:paused-changed",{detail:e,bubbles:!0})))}_setPending(e){this._pending!==e&&(this._pending=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:pending-changed",{detail:e,bubbles:!0})))}_setBoundary(e,t){this._charIndex===e&&this._spokenWord===t||(this._charIndex=e,this._spokenWord=t,this._target.dispatchEvent(new CustomEvent("wcs-speak:boundary",{detail:{charIndex:e,word:t},bubbles:!0})))}_setError(e){this._error!==e&&(this._error=e,this._commitErrorInfo(null===e?null:function(e){const{error:t,message:s}=e;switch(t){case"unsupported":return{code:o.CapabilityMissing,phase:"probe",recoverable:!1,message:s};case"not-allowed":return{code:o.NotAllowed,phase:"start",recoverable:!1,message:s};case"canceled":case"interrupted":return{code:o.Aborted,phase:"execute",recoverable:!0,message:s};case"audio-busy":return{code:o.NotReadable,phase:"execute",recoverable:!0,message:s};case"audio-hardware":return{code:o.NotReadable,phase:"execute",recoverable:!1,message:s};case"network":return{code:o.NetworkError,phase:"execute",recoverable:!0,message:s};case"language-unavailable":case"voice-unavailable":case"text-too-long":case"invalid-argument":return{code:o.InvalidArgument,phase:"start",recoverable:!1,message:s};case"synthesis-unavailable":case"synthesis-failed":return{code:o.SynthesisFailed,phase:"execute",recoverable:!1,message:s};default:return{code:o.SpeechError,phase:"execute",recoverable:!1,message:s}}}(e)),this._target.dispatchEvent(new CustomEvent("wcs-speak:error",{detail:e,bubbles:!0})))}_commitErrorInfo(e){this._errorInfo=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:error-info-changed",{detail:e,bubbles:!0}))}_setUnsupported(e){this._unsupported!==e&&(this._unsupported=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:unsupported-changed",{detail:e,bubbles:!0})))}speak(e,t={}){if(!this._hasApi())return void this._setError(this._unsupportedError());if("string"!=typeof e||""===e.trim())return;const s=window.speechSynthesis,r=new window.SpeechSynthesisUtterance(e);if("number"==typeof t.rate&&(r.rate=t.rate),"number"==typeof t.pitch&&(r.pitch=t.pitch),"number"==typeof t.volume&&(r.volume=t.volume),"string"==typeof t.lang&&""!==t.lang&&(r.lang=t.lang),"string"==typeof t.voice&&""!==t.voice){const e=this._rawVoices.find(e=>e.name===t.voice);e&&(r.voice=e)}const n=this._gen;let i=!1;r.onstart=()=>{n===this._gen&&(i=!0,this._queued=Math.max(0,this._queued-1),this._started++,this._setSpeaking(!0),this._setPending(this._queued>0),this._setBoundary(null,null))},r.onboundary=t=>{if(n===this._gen)try{const s=t.charIndex,r=t.charLength,n="number"==typeof r&&r>0?e.substring(s,s+r):e.slice(s).match(/^\S+/)?.[0]??"";this._setBoundary(s,n)}catch{}},r.onpause=()=>{n===this._gen&&this._setPaused(!0)},r.onresume=()=>{n===this._gen&&this._setPaused(!1)},r.onend=()=>{n===this._gen&&this._finishUtterance(i)},r.onerror=e=>{n===this._gen&&(this._setError(this._normalizeError(e)),this._finishUtterance(i))},this._setError(null),this._queued++,this._setPending(!0),s.speak(r)}cancel(){this._hasApi()&&(this._gen++,this._paused&&window.speechSynthesis.resume(),window.speechSynthesis.cancel(),this._queued=0,this._started=0,this._setSpeaking(!1),this._setPending(!1),this._setPaused(!1),this._setBoundary(null,null))}pause(){this._hasApi()&&window.speechSynthesis.pause()}resume(){this._hasApi()&&window.speechSynthesis.resume()}reinitVoices(){this._voicesSubscribed||this._initVoices()}observe(){return this.reinitVoices(),this._ready}dispose(){this._voicesSubscribed=!1,this._gen++,this._queued=0,this._started=0,this._speaking=!1,this._paused=!1,this._pending=!1,this._hasApi()&&window.speechSynthesis.removeEventListener("voiceschanged",this._onVoicesChanged)}_finishUtterance(e){e?this._started=Math.max(0,this._started-1):this._queued=Math.max(0,this._queued-1),this._setSpeaking(this._started>0),this._setPending(this._queued>0),0===this._started&&0===this._queued&&(this._setPaused(!1),this._setBoundary(null,null))}_hasApi(){return"undefined"!=typeof window&&!!window.speechSynthesis&&"function"==typeof window.SpeechSynthesisUtterance}_initVoices(){this._hasApi()&&(this._voicesSubscribed=!0,this._loadVoices(),window.speechSynthesis.addEventListener("voiceschanged",this._onVoicesChanged))}_onVoicesChanged=()=>{this._loadVoices()};_loadVoices(){const e=window.speechSynthesis.getVoices()??[];this._rawVoices=e,this._setVoices(e.map(e=>this._normalizeVoice(e)))}_normalizeVoice(e){return{name:e.name,lang:e.lang,default:e.default,localService:e.localService,voiceURI:e.voiceURI}}_normalizeError(e){const t=e.error??"synthesis-failed";return{error:t,message:`Speech synthesis failed: ${t}.`}}_unsupportedError(){return{error:"unsupported",message:"SpeechSynthesis API is not available in this environment."}}}let u=!1;function h(e){const t=e.target;if(!(t instanceof Element))return;let s;try{s=t.closest(`[${n.triggerAttribute}]`)}catch{return}if(!s)return;const r=s.getAttribute(n.triggerAttribute);if(!r)return;const i=customElements.get(n.tagNames.speak),a=document.getElementById(r);if(!(i&&a instanceof i))return;const o=s.getAttribute("data-speaktext"),c=null!==o?o:s.textContent.trim();e.preventDefault(),a.speak(c)}class l extends HTMLElement{static hasConnectedCallbackPromise=!0;static wcBindable={...c.wcBindable,inputs:[{name:"say"},{name:"rate",attribute:"rate"},{name:"pitch",attribute:"pitch"},{name:"volume",attribute:"volume"},{name:"voice",attribute:"voice"},{name:"lang",attribute:"lang"},{name:"manual",attribute:"manual"}],commands:c.wcBindable.commands};_core;_say="";_connectedCallbackPromise=Promise.resolve();_internals=null;constructor(){super(),this._internals=this._initInternals(),this._wireStates({"wcs-speak:speaking-changed":e=>({speaking:!0===e}),"wcs-speak:paused-changed":e=>({paused:!0===e}),"wcs-speak:pending-changed":e=>({pending:!0===e}),"wcs-speak:unsupported-changed":e=>({unsupported:!0===e}),"wcs-speak:error":e=>({error:null!=e})}),this._core=new c(this)}get connectedCallbackPromise(){return this._connectedCallbackPromise}get debugStates(){return this._internals?[...this._internals.states]:[]}_initInternals(){try{if("function"!=typeof this.attachInternals)return null;const e=this.attachInternals();return e.states.add("wcs-probe"),e.states.delete("wcs-probe"),e}catch{return null}}_wireStates(e){if(null===this._internals)return;const t=this._internals.states;for(const[s,r]of Object.entries(e))this.addEventListener(s,e=>{const s=this.hasAttribute("debug-states");for(const[n,i]of Object.entries(r(e.detail))){try{i?t.add(n):t.delete(n)}catch{}s&&this.toggleAttribute(`data-wcs-state-${n}`,i)}})}get rate(){return this._numberAttr("rate",1)}set rate(e){this.setAttribute("rate",String(e))}get pitch(){return this._numberAttr("pitch",1)}set pitch(e){this.setAttribute("pitch",String(e))}get volume(){return this._numberAttr("volume",1)}set volume(e){this.setAttribute("volume",String(e))}get voice(){return this.getAttribute("voice")??""}set voice(e){null==e?this.removeAttribute("voice"):this.setAttribute("voice",String(e))}get lang(){return this.getAttribute("lang")??""}set lang(e){null==e?this.removeAttribute("lang"):this.setAttribute("lang",String(e))}get manual(){return this.hasAttribute("manual")}set manual(e){e?this.setAttribute("manual",""):this.removeAttribute("manual")}get say(){return this._say}set say(e){if(null==e)return;if(this.manual)return;const t=String(e);t!==this._say&&(this._say=t,this.speak(t))}get voices(){return this._core.voices}get speaking(){return this._core.speaking}get paused(){return this._core.paused}get pending(){return this._core.pending}get charIndex(){return this._core.charIndex}get spokenWord(){return this._core.spokenWord}get error(){return this._core.error}get errorInfo(){return this._core.errorInfo}get unsupported(){return this._core.unsupported}speak(e){this._core.speak(e,this._options())}cancel(){this._core.cancel()}pause(){this._core.pause()}resume(){this._core.resume()}_numberAttr(e,t){const s=this.getAttribute(e);if(null===s||""===s.trim())return t;const r=Number(s);return Number.isFinite(r)?r:t}_options(){return{rate:this.rate,pitch:this.pitch,volume:this.volume,voice:this.voice,lang:this.lang}}connectedCallback(){this.style.display="none",n.autoTrigger&&(u||(u=!0,document.addEventListener("click",h))),this._connectedCallbackPromise=this._core.observe()}disconnectedCallback(){this._core.dispose()}}class d extends EventTarget{static wcBindable={protocol:"wc-bindable",version:1,properties:[{name:"interimTranscript",event:"wcs-listen:interim-changed"},{name:"finalTranscript",event:"wcs-listen:final-changed"},{name:"result",event:"wcs-listen:result"},{name:"listening",event:"wcs-listen:listening-changed"},{name:"permission",event:"wcs-listen:permission-changed"},{name:"error",event:"wcs-listen:error"},{name:"errorInfo",event:"wcs-listen:error-info-changed"},{name:"unsupported",event:"wcs-listen:unsupported-changed"}],commands:[{name:"start"},{name:"stop"},{name:"abort"}]};_target;_recognition=null;_interimTranscript="";_finalTranscript="";_result=null;_listening=!1;_permission="prompt";_error=null;_errorInfo=null;_unsupported=!1;_active=!1;_continuous=!1;_maxRestarts=0;_restartCount=0;_permissionStatus=null;_permissionSubscribed=!1;_permGen=0;_ready=Promise.resolve();constructor(e){super(),this._target=e??this;const t=this._getCtor();this._setUnsupported(!t),t&&(this._recognition=new t,this._attachHandlers(this._recognition)),this._initPermission()}get interimTranscript(){return this._interimTranscript}get finalTranscript(){return this._finalTranscript}get result(){return this._result}get listening(){return this._listening}get permission(){return this._permission}get error(){return this._error}get errorInfo(){return this._errorInfo}get unsupported(){return this._unsupported}get ready(){return this._ready}_setInterim(e){this._interimTranscript!==e&&(this._interimTranscript=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:interim-changed",{detail:e,bubbles:!0})))}_setFinal(e){this._finalTranscript!==e&&(this._finalTranscript=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:final-changed",{detail:e,bubbles:!0})))}_setResult(e){this._result=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:result",{detail:e,bubbles:!0}))}_setListening(e){this._listening!==e&&(this._listening=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:listening-changed",{detail:e,bubbles:!0})))}_setPermission(e){this._permission!==e&&(this._permission=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:permission-changed",{detail:e,bubbles:!0})))}_setError(e){this._error!==e&&(this._error=e,this._commitErrorInfo(null===e?null:function(e){const{error:t,message:s}=e;switch(t){case"unsupported":return{code:a.CapabilityMissing,phase:"probe",recoverable:!1,message:s};case"not-allowed":case"service-not-allowed":return{code:a.NotAllowed,phase:"start",recoverable:!1,message:s};case"audio-capture":return{code:a.NotReadable,phase:"start",recoverable:!1,message:s};case"no-speech":return{code:a.NoSpeech,phase:"execute",recoverable:!0,message:s};case"network":return{code:a.NetworkError,phase:"execute",recoverable:!0,message:s};case"aborted":return{code:a.Aborted,phase:"execute",recoverable:!0,message:s};case"language-not-supported":case"bad-grammar":return{code:a.InvalidArgument,phase:"start",recoverable:!1,message:s};default:return{code:a.SpeechError,phase:"execute",recoverable:!1,message:s}}}(e)),this._target.dispatchEvent(new CustomEvent("wcs-listen:error",{detail:e,bubbles:!0})))}_commitErrorInfo(e){this._errorInfo=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:error-info-changed",{detail:e,bubbles:!0}))}_setUnsupported(e){this._unsupported!==e&&(this._unsupported=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:unsupported-changed",{detail:e,bubbles:!0})))}start(e={}){this._recognition?this._active||(this._continuous=e.continuous??!1,this._maxRestarts="number"==typeof e.maxRestarts&&e.maxRestarts>=0?Math.floor(e.maxRestarts):0,this._restartCount=0,this._recognition.lang=e.lang??"",this._recognition.continuous=this._continuous,this._recognition.interimResults=e.interimResults??!1,"number"==typeof e.maxAlternatives&&(this._recognition.maxAlternatives=e.maxAlternatives),this._setInterim(""),this._setFinal(""),this._setError(null),this._active=!0,this._safeStart()):this._setError(this._unsupportedError())}stop(){this._recognition&&(this._active=!1,this._recognition.stop())}abort(){this._recognition&&(this._active=!1,this._recognition.abort())}reinitPermission(){this._permissionSubscribed||this._initPermission()}observe(){return this.reinitPermission(),this._ready}dispose(){if(this._active=!1,this._permissionSubscribed=!1,this._permGen++,this._recognition)try{this._recognition.abort()}catch{}this._listening=!1,this._permissionStatus&&(this._permissionStatus.removeEventListener("change",this._onPermissionChange),this._permissionStatus=null)}_attachHandlers(e){e.onstart=()=>{this._setListening(!0)},e.onresult=e=>{try{this._handleResult(e)}catch{}},e.onerror=e=>{this._setError(this._normalizeError(e)),!e||"not-allowed"!==e.error&&"service-not-allowed"!==e.error||(this._active=!1)},e.onend=()=>{if(this._active&&this._continuous&&this._restartCount<this._maxRestarts)return this._restartCount++,this._safeStart(),void(this._active||this._setListening(!1));this._setListening(!1),this._active=!1}}_handleResult(e){const t=e.results;let s="",r="";for(let n=e.resultIndex??0;n<t.length;n++){const e=t[n],i=e?.[0]?.transcript??"";e?.isFinal?r+=i:s+=i}""!==r&&this._setFinal(this._finalTranscript+r),this._setInterim(s),this._restartCount=0;const n=t[t.length-1];n&&this._setResult(this._normalizeResult(n))}_normalizeResult(e){const t=[];for(let s=0;s<e.length;s++)t.push({transcript:e[s]?.transcript??"",confidence:e[s]?.confidence??0});const s=t[0]??{transcript:"",confidence:0};return{transcript:s.transcript,confidence:s.confidence,isFinal:!!e.isFinal,alternatives:t}}_safeStart(){try{this._recognition.start()}catch{this._active=!1}}_getCtor(){const e="undefined"==typeof window?void 0:window;return e?.SpeechRecognition??e?.webkitSpeechRecognition??null}_initPermission(){if("undefined"==typeof navigator||!navigator.permissions||"function"!=typeof navigator.permissions.query)return void this._setPermission("unsupported");this._permissionSubscribed=!0;const e=++this._permGen;navigator.permissions.query({name:"microphone"}).then(t=>{e===this._permGen&&(this._permissionStatus=t,this._setPermission(t.state),t.addEventListener("change",this._onPermissionChange))},()=>{e===this._permGen&&this._setPermission("unsupported")})}_onPermissionChange=e=>{const t=e.target;this._setPermission(t.state)};_normalizeError(e){const t=e&&e.error?e.error:"aborted";return{error:t,message:`Speech recognition failed: ${t}.`}}_unsupportedError(){return{error:"unsupported",message:"SpeechRecognition API is not available in this environment."}}}let g=!1;function p(e){const t=e.target;if(!(t instanceof Element))return;let s;try{s=t.closest(`[${n.listenTriggerAttribute}]`)}catch{return}if(!s)return;const r=s.getAttribute(n.listenTriggerAttribute);if(!r)return;const i=customElements.get(n.tagNames.listen),a=document.getElementById(r);if(!(i&&a instanceof i))return;e.preventDefault();const o=a;o.listening?o.stop():o.start()}class _ extends HTMLElement{static hasConnectedCallbackPromise=!0;static wcBindable={...d.wcBindable,properties:[...d.wcBindable.properties,{name:"trigger",event:"wcs-listen:trigger-changed"}],inputs:[{name:"lang",attribute:"lang"},{name:"continuous",attribute:"continuous"},{name:"interim",attribute:"interim"},{name:"maxRestarts",attribute:"max-restarts"},{name:"manual",attribute:"manual"},{name:"trigger"}],commands:d.wcBindable.commands};_core;_trigger=!1;_connectedCallbackPromise=Promise.resolve();_internals=null;constructor(){super(),this._internals=this._initInternals(),this._wireStates({"wcs-listen:listening-changed":e=>({listening:!0===e}),"wcs-listen:unsupported-changed":e=>({unsupported:!0===e}),"wcs-listen:error":e=>({error:null!=e})}),this._core=new d(this)}get connectedCallbackPromise(){return this._connectedCallbackPromise}get debugStates(){return this._internals?[...this._internals.states]:[]}_initInternals(){try{if("function"!=typeof this.attachInternals)return null;const e=this.attachInternals();return e.states.add("wcs-probe"),e.states.delete("wcs-probe"),e}catch{return null}}_wireStates(e){if(null===this._internals)return;const t=this._internals.states;for(const[s,r]of Object.entries(e))this.addEventListener(s,e=>{const s=this.hasAttribute("debug-states");for(const[n,i]of Object.entries(r(e.detail))){try{i?t.add(n):t.delete(n)}catch{}s&&this.toggleAttribute(`data-wcs-state-${n}`,i)}})}get lang(){return this.getAttribute("lang")??""}set lang(e){null==e?this.removeAttribute("lang"):this.setAttribute("lang",String(e))}get continuous(){return this.hasAttribute("continuous")}set continuous(e){e?this.setAttribute("continuous",""):this.removeAttribute("continuous")}get interim(){return this.hasAttribute("interim")}set interim(e){e?this.setAttribute("interim",""):this.removeAttribute("interim")}get maxRestarts(){const e=this.getAttribute("max-restarts");if(null===e||""===e.trim())return 0;const t=Number(e);return Number.isFinite(t)&&t>=0?Math.floor(t):0}set maxRestarts(e){this.setAttribute("max-restarts",String(e))}get manual(){return this.hasAttribute("manual")}set manual(e){e?this.setAttribute("manual",""):this.removeAttribute("manual")}get interimTranscript(){return this._core.interimTranscript}get finalTranscript(){return this._core.finalTranscript}get result(){return this._core.result}get listening(){return this._core.listening}get permission(){return this._core.permission}get error(){return this._core.error}get errorInfo(){return this._core.errorInfo}get unsupported(){return this._core.unsupported}get trigger(){return this._trigger}set trigger(e){!!e&&(this._trigger=!0,this.start(),this._trigger=!1,this.dispatchEvent(new CustomEvent("wcs-listen:trigger-changed",{detail:!1,bubbles:!0})))}start(){this._core.start(this._options())}stop(){this._core.stop()}abort(){this._core.abort()}_options(){return{lang:this.lang,continuous:this.continuous,interimResults:this.interim,maxRestarts:this.maxRestarts}}connectedCallback(){this.style.display="none",n.autoTrigger&&(g||(g=!0,document.addEventListener("click",p))),this._connectedCallbackPromise=this._core.observe(),this.manual||this.start()}disconnectedCallback(){this._core.dispose()}}function m(t){var s;t&&("boolean"==typeof(s=t).autoTrigger&&(e.autoTrigger=s.autoTrigger),"string"==typeof s.triggerAttribute&&(e.triggerAttribute=s.triggerAttribute),"string"==typeof s.listenTriggerAttribute&&(e.listenTriggerAttribute=s.listenTriggerAttribute),s.tagNames&&Object.assign(e.tagNames,s.tagNames),r=null),customElements.get(n.tagNames.speak)||customElements.define(n.tagNames.speak,l),customElements.get(n.tagNames.listen)||customElements.define(n.tagNames.listen,_)}export{d as ListenCore,c as SpeakCore,a as WCS_LISTEN_ERROR_CODE,o as WCS_SPEAK_ERROR_CODE,_ as WcsListen,l as WcsSpeak,m as bootstrapSpeech,i as getConfig};
1
+ const e={autoTrigger:!0,triggerAttribute:"data-speaktarget",listenTriggerAttribute:"data-listentarget",tagNames:{speak:"wcs-speak",listen:"wcs-listen"}};function t(e){if(null===e||"object"!=typeof e)return e;Object.freeze(e);for(const s of Object.keys(e))t(e[s]);return e}function s(e){if(null===e||"object"!=typeof e)return e;const t={};for(const r of Object.keys(e))t[r]=s(e[r]);return t}let r=null;const n=e;function i(){return r||(r=t(s(e))),r}const a={CapabilityMissing:"capability-missing",NotAllowed:"not-allowed",NotReadable:"not-readable",NoSpeech:"no-speech",NetworkError:"network-error",Aborted:"aborted",InvalidArgument:"invalid-argument",SpeechError:"speech-error"};const o={CapabilityMissing:"capability-missing",NotAllowed:"not-allowed",Aborted:"aborted",NotReadable:"not-readable",NetworkError:"network-error",InvalidArgument:"invalid-argument",SynthesisFailed:"synthesis-failed",SpeechError:"speech-error"};class c extends EventTarget{static wcBindable={protocol:"wc-bindable",version:1,properties:[{name:"voices",event:"wcs-speak:voices-changed",semantics:"state"},{name:"speaking",event:"wcs-speak:speaking-changed",semantics:"state"},{name:"paused",event:"wcs-speak:paused-changed",semantics:"state"},{name:"pending",event:"wcs-speak:pending-changed",semantics:"state"},{name:"charIndex",event:"wcs-speak:boundary",semantics:"event",getter:e=>e.detail?.charIndex??null},{name:"spokenWord",event:"wcs-speak:boundary",semantics:"event",getter:e=>e.detail?.word??null},{name:"error",event:"wcs-speak:error",semantics:"state"},{name:"errorInfo",event:"wcs-speak:error-info-changed",semantics:"state"},{name:"unsupported",event:"wcs-speak:unsupported-changed",semantics:"state"}],commands:[{name:"speak"},{name:"cancel"},{name:"pause"},{name:"resume"}]};_target;_voices=[];_rawVoices=[];_speaking=!1;_paused=!1;_pending=!1;_charIndex=null;_spokenWord=null;_error=null;_errorInfo=null;_unsupported=!1;_queued=0;_started=0;_gen=0;_voicesSubscribed=!1;_ready=Promise.resolve();constructor(e){super(),this._target=e??this,this._setUnsupported(!this._hasApi()),this._initVoices()}get voices(){return this._voices}get speaking(){return this._speaking}get paused(){return this._paused}get pending(){return this._pending}get charIndex(){return this._charIndex}get spokenWord(){return this._spokenWord}get error(){return this._error}get errorInfo(){return this._errorInfo}get unsupported(){return this._unsupported}get ready(){return this._ready}_setVoices(e){this._voicesEqual(this._voices,e)||(this._voices=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:voices-changed",{detail:e,bubbles:!0})))}_voicesEqual(e,t){if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++){const r=e[s],n=t[s];if(r.name!==n.name||r.lang!==n.lang||r.default!==n.default||r.localService!==n.localService||r.voiceURI!==n.voiceURI)return!1}return!0}_setSpeaking(e){this._speaking!==e&&(this._speaking=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:speaking-changed",{detail:e,bubbles:!0})))}_setPaused(e){this._paused!==e&&(this._paused=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:paused-changed",{detail:e,bubbles:!0})))}_setPending(e){this._pending!==e&&(this._pending=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:pending-changed",{detail:e,bubbles:!0})))}_setBoundary(e,t){this._charIndex===e&&this._spokenWord===t||(this._charIndex=e,this._spokenWord=t,this._target.dispatchEvent(new CustomEvent("wcs-speak:boundary",{detail:{charIndex:e,word:t},bubbles:!0})))}_setError(e){this._error!==e&&(this._error=e,this._commitErrorInfo(null===e?null:function(e){const{error:t,message:s}=e;switch(t){case"unsupported":return{code:o.CapabilityMissing,phase:"probe",recoverable:!1,message:s};case"not-allowed":return{code:o.NotAllowed,phase:"start",recoverable:!1,message:s};case"canceled":case"interrupted":return{code:o.Aborted,phase:"execute",recoverable:!0,message:s};case"audio-busy":return{code:o.NotReadable,phase:"execute",recoverable:!0,message:s};case"audio-hardware":return{code:o.NotReadable,phase:"execute",recoverable:!1,message:s};case"network":return{code:o.NetworkError,phase:"execute",recoverable:!0,message:s};case"language-unavailable":case"voice-unavailable":case"text-too-long":case"invalid-argument":return{code:o.InvalidArgument,phase:"start",recoverable:!1,message:s};case"synthesis-unavailable":case"synthesis-failed":return{code:o.SynthesisFailed,phase:"execute",recoverable:!1,message:s};default:return{code:o.SpeechError,phase:"execute",recoverable:!1,message:s}}}(e)),this._target.dispatchEvent(new CustomEvent("wcs-speak:error",{detail:e,bubbles:!0})))}_commitErrorInfo(e){this._errorInfo=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:error-info-changed",{detail:e,bubbles:!0}))}_setUnsupported(e){this._unsupported!==e&&(this._unsupported=e,this._target.dispatchEvent(new CustomEvent("wcs-speak:unsupported-changed",{detail:e,bubbles:!0})))}speak(e,t={}){if(!this._hasApi())return void this._setError(this._unsupportedError());if("string"!=typeof e||""===e.trim())return;const s=window.speechSynthesis,r=new window.SpeechSynthesisUtterance(e);if("number"==typeof t.rate&&(r.rate=t.rate),"number"==typeof t.pitch&&(r.pitch=t.pitch),"number"==typeof t.volume&&(r.volume=t.volume),"string"==typeof t.lang&&""!==t.lang&&(r.lang=t.lang),"string"==typeof t.voice&&""!==t.voice){const e=this._rawVoices.find(e=>e.name===t.voice);e&&(r.voice=e)}const n=this._gen;let i=!1;r.onstart=()=>{n===this._gen&&(i=!0,this._queued=Math.max(0,this._queued-1),this._started++,this._setSpeaking(!0),this._setPending(this._queued>0),this._setBoundary(null,null))},r.onboundary=t=>{if(n===this._gen)try{const s=t.charIndex,r=t.charLength,n="number"==typeof r&&r>0?e.substring(s,s+r):e.slice(s).match(/^\S+/)?.[0]??"";this._setBoundary(s,n)}catch{}},r.onpause=()=>{n===this._gen&&this._setPaused(!0)},r.onresume=()=>{n===this._gen&&this._setPaused(!1)},r.onend=()=>{n===this._gen&&this._finishUtterance(i)},r.onerror=e=>{n===this._gen&&(this._setError(this._normalizeError(e)),this._finishUtterance(i))},this._setError(null),this._queued++,this._setPending(!0),s.speak(r)}cancel(){this._hasApi()&&(this._gen++,this._paused&&window.speechSynthesis.resume(),window.speechSynthesis.cancel(),this._queued=0,this._started=0,this._setSpeaking(!1),this._setPending(!1),this._setPaused(!1),this._setBoundary(null,null))}pause(){this._hasApi()&&window.speechSynthesis.pause()}resume(){this._hasApi()&&window.speechSynthesis.resume()}reinitVoices(){this._voicesSubscribed||this._initVoices()}observe(){return this.reinitVoices(),this._ready}dispose(){this._voicesSubscribed=!1,this._gen++,this._queued=0,this._started=0,this._speaking=!1,this._paused=!1,this._pending=!1,this._hasApi()&&window.speechSynthesis.removeEventListener("voiceschanged",this._onVoicesChanged)}_finishUtterance(e){e?this._started=Math.max(0,this._started-1):this._queued=Math.max(0,this._queued-1),this._setSpeaking(this._started>0),this._setPending(this._queued>0),0===this._started&&0===this._queued&&(this._setPaused(!1),this._setBoundary(null,null))}_hasApi(){return"undefined"!=typeof window&&!!window.speechSynthesis&&"function"==typeof window.SpeechSynthesisUtterance}_initVoices(){this._hasApi()&&(this._voicesSubscribed=!0,this._loadVoices(),window.speechSynthesis.addEventListener("voiceschanged",this._onVoicesChanged))}_onVoicesChanged=()=>{this._loadVoices()};_loadVoices(){const e=window.speechSynthesis.getVoices()??[];this._rawVoices=e,this._setVoices(e.map(e=>this._normalizeVoice(e)))}_normalizeVoice(e){return{name:e.name,lang:e.lang,default:e.default,localService:e.localService,voiceURI:e.voiceURI}}_normalizeError(e){const t=e.error??"synthesis-failed";return{error:t,message:`Speech synthesis failed: ${t}.`}}_unsupportedError(){return{error:"unsupported",message:"SpeechSynthesis API is not available in this environment."}}}let u=!1;function h(e){const t=e.target;if(!(t instanceof Element))return;let s;try{s=t.closest(`[${n.triggerAttribute}]`)}catch{return}if(!s)return;const r=s.getAttribute(n.triggerAttribute);if(!r)return;const i=customElements.get(n.tagNames.speak),a=document.getElementById(r);if(!(i&&a instanceof i))return;const o=s.getAttribute("data-speaktext"),c=null!==o?o:s.textContent.trim();e.preventDefault(),a.speak(c)}function l(e,t){let s=Object.getPrototypeOf(e);for(;null!==s;){const e=Object.getOwnPropertyDescriptor(s,t);if(void 0!==e)return"function"==typeof e.get||"function"==typeof e.set;s=Object.getPrototypeOf(s)}return!1}function d(e){const t=e.constructor?.wcBindable,s=t?.inputs;if(void 0!==s)for(const t of s){const s=t.name;if(!Object.prototype.hasOwnProperty.call(e,s))continue;if(!l(e,s))continue;const r=e,n=r[s];delete r[s],r[s]=n}}class g extends HTMLElement{static hasConnectedCallbackPromise=!0;static wcBindable={...c.wcBindable,inputs:[{name:"say"},{name:"rate",attribute:"rate"},{name:"pitch",attribute:"pitch"},{name:"volume",attribute:"volume"},{name:"voice",attribute:"voice"},{name:"lang",attribute:"lang"},{name:"manual",attribute:"manual"}],commands:c.wcBindable.commands};_core;_say="";_connectedCallbackPromise=Promise.resolve();_internals=null;constructor(){super(),this._internals=this._initInternals(),this._wireStates({"wcs-speak:speaking-changed":e=>({speaking:!0===e}),"wcs-speak:paused-changed":e=>({paused:!0===e}),"wcs-speak:pending-changed":e=>({pending:!0===e}),"wcs-speak:unsupported-changed":e=>({unsupported:!0===e}),"wcs-speak:error":e=>({error:null!=e})}),this._core=new c(this)}get connectedCallbackPromise(){return this._connectedCallbackPromise}get debugStates(){return this._internals?[...this._internals.states]:[]}_initInternals(){try{if("function"!=typeof this.attachInternals)return null;const e=this.attachInternals();return e.states.add("wcs-probe"),e.states.delete("wcs-probe"),e}catch{return null}}_wireStates(e){if(null===this._internals)return;const t=this._internals.states;for(const[s,r]of Object.entries(e))this.addEventListener(s,e=>{const s=this.hasAttribute("debug-states");for(const[n,i]of Object.entries(r(e.detail))){try{i?t.add(n):t.delete(n)}catch{}s&&this.toggleAttribute(`data-wcs-state-${n}`,i)}})}get rate(){return this._numberAttr("rate",1)}set rate(e){this.setAttribute("rate",String(e))}get pitch(){return this._numberAttr("pitch",1)}set pitch(e){this.setAttribute("pitch",String(e))}get volume(){return this._numberAttr("volume",1)}set volume(e){this.setAttribute("volume",String(e))}get voice(){return this.getAttribute("voice")??""}set voice(e){null==e?this.removeAttribute("voice"):this.setAttribute("voice",String(e))}get lang(){return this.getAttribute("lang")??""}set lang(e){null==e?this.removeAttribute("lang"):this.setAttribute("lang",String(e))}get manual(){return this.hasAttribute("manual")}set manual(e){e?this.setAttribute("manual",""):this.removeAttribute("manual")}get say(){return this._say}set say(e){if(null==e)return;if(this.manual)return;const t=String(e);t!==this._say&&(this._say=t,this.speak(t))}get voices(){return this._core.voices}get speaking(){return this._core.speaking}get paused(){return this._core.paused}get pending(){return this._core.pending}get charIndex(){return this._core.charIndex}get spokenWord(){return this._core.spokenWord}get error(){return this._core.error}get errorInfo(){return this._core.errorInfo}get unsupported(){return this._core.unsupported}speak(e){this._core.speak(e,this._options())}cancel(){this._core.cancel()}pause(){this._core.pause()}resume(){this._core.resume()}_numberAttr(e,t){const s=this.getAttribute(e);if(null===s||""===s.trim())return t;const r=Number(s);return Number.isFinite(r)?r:t}_options(){return{rate:this.rate,pitch:this.pitch,volume:this.volume,voice:this.voice,lang:this.lang}}connectedCallback(){d(this),this.style.display="none",n.autoTrigger&&(u||(u=!0,document.addEventListener("click",h))),this._connectedCallbackPromise=this._core.observe()}disconnectedCallback(){this._core.dispose()}}class p extends EventTarget{static wcBindable={protocol:"wc-bindable",version:1,properties:[{name:"interimTranscript",event:"wcs-listen:interim-changed",semantics:"state"},{name:"finalTranscript",event:"wcs-listen:final-changed",semantics:"state"},{name:"result",event:"wcs-listen:result",semantics:"event"},{name:"listening",event:"wcs-listen:listening-changed",semantics:"state"},{name:"permission",event:"wcs-listen:permission-changed",semantics:"state"},{name:"error",event:"wcs-listen:error",semantics:"state"},{name:"errorInfo",event:"wcs-listen:error-info-changed",semantics:"state"},{name:"unsupported",event:"wcs-listen:unsupported-changed",semantics:"state"}],commands:[{name:"start"},{name:"stop"},{name:"abort"}]};_target;_recognition=null;_interimTranscript="";_finalTranscript="";_result=null;_listening=!1;_permission="prompt";_error=null;_errorInfo=null;_unsupported=!1;_active=!1;_continuous=!1;_maxRestarts=0;_restartCount=0;_permissionStatus=null;_permissionSubscribed=!1;_permGen=0;_ready=Promise.resolve();constructor(e){super(),this._target=e??this;const t=this._getCtor();this._setUnsupported(!t),t&&(this._recognition=new t,this._attachHandlers(this._recognition)),this._initPermission()}get interimTranscript(){return this._interimTranscript}get finalTranscript(){return this._finalTranscript}get result(){return this._result}get listening(){return this._listening}get permission(){return this._permission}get error(){return this._error}get errorInfo(){return this._errorInfo}get unsupported(){return this._unsupported}get ready(){return this._ready}_setInterim(e){this._interimTranscript!==e&&(this._interimTranscript=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:interim-changed",{detail:e,bubbles:!0})))}_setFinal(e){this._finalTranscript!==e&&(this._finalTranscript=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:final-changed",{detail:e,bubbles:!0})))}_setResult(e){this._result=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:result",{detail:e,bubbles:!0}))}_setListening(e){this._listening!==e&&(this._listening=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:listening-changed",{detail:e,bubbles:!0})))}_setPermission(e){this._permission!==e&&(this._permission=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:permission-changed",{detail:e,bubbles:!0})))}_setError(e){this._error!==e&&(this._error=e,this._commitErrorInfo(null===e?null:function(e){const{error:t,message:s}=e;switch(t){case"unsupported":return{code:a.CapabilityMissing,phase:"probe",recoverable:!1,message:s};case"not-allowed":case"service-not-allowed":return{code:a.NotAllowed,phase:"start",recoverable:!1,message:s};case"audio-capture":return{code:a.NotReadable,phase:"start",recoverable:!1,message:s};case"no-speech":return{code:a.NoSpeech,phase:"execute",recoverable:!0,message:s};case"network":return{code:a.NetworkError,phase:"execute",recoverable:!0,message:s};case"aborted":return{code:a.Aborted,phase:"execute",recoverable:!0,message:s};case"language-not-supported":case"bad-grammar":return{code:a.InvalidArgument,phase:"start",recoverable:!1,message:s};default:return{code:a.SpeechError,phase:"execute",recoverable:!1,message:s}}}(e)),this._target.dispatchEvent(new CustomEvent("wcs-listen:error",{detail:e,bubbles:!0})))}_commitErrorInfo(e){this._errorInfo=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:error-info-changed",{detail:e,bubbles:!0}))}_setUnsupported(e){this._unsupported!==e&&(this._unsupported=e,this._target.dispatchEvent(new CustomEvent("wcs-listen:unsupported-changed",{detail:e,bubbles:!0})))}start(e={}){this._recognition?this._active||(this._continuous=e.continuous??!1,this._maxRestarts="number"==typeof e.maxRestarts&&e.maxRestarts>=0?Math.floor(e.maxRestarts):0,this._restartCount=0,this._recognition.lang=e.lang??"",this._recognition.continuous=this._continuous,this._recognition.interimResults=e.interimResults??!1,"number"==typeof e.maxAlternatives&&(this._recognition.maxAlternatives=e.maxAlternatives),this._setInterim(""),this._setFinal(""),this._setError(null),this._active=!0,this._safeStart()):this._setError(this._unsupportedError())}stop(){this._recognition&&(this._active=!1,this._recognition.stop())}abort(){this._recognition&&(this._active=!1,this._recognition.abort())}reinitPermission(){this._permissionSubscribed||this._initPermission()}observe(){return this.reinitPermission(),this._ready}dispose(){if(this._active=!1,this._permissionSubscribed=!1,this._permGen++,this._recognition)try{this._recognition.abort()}catch{}this._listening=!1,this._permissionStatus&&(this._permissionStatus.removeEventListener("change",this._onPermissionChange),this._permissionStatus=null)}_attachHandlers(e){e.onstart=()=>{this._setListening(!0)},e.onresult=e=>{try{this._handleResult(e)}catch{}},e.onerror=e=>{this._setError(this._normalizeError(e)),!e||"not-allowed"!==e.error&&"service-not-allowed"!==e.error||(this._active=!1)},e.onend=()=>{if(this._active&&this._continuous&&this._restartCount<this._maxRestarts)return this._restartCount++,this._safeStart(),void(this._active||this._setListening(!1));this._setListening(!1),this._active=!1}}_handleResult(e){const t=e.results;let s="",r="";for(let n=e.resultIndex??0;n<t.length;n++){const e=t[n],i=e?.[0]?.transcript??"";e?.isFinal?r+=i:s+=i}""!==r&&this._setFinal(this._finalTranscript+r),this._setInterim(s),this._restartCount=0;const n=t[t.length-1];n&&this._setResult(this._normalizeResult(n))}_normalizeResult(e){const t=[];for(let s=0;s<e.length;s++)t.push({transcript:e[s]?.transcript??"",confidence:e[s]?.confidence??0});const s=t[0]??{transcript:"",confidence:0};return{transcript:s.transcript,confidence:s.confidence,isFinal:!!e.isFinal,alternatives:t}}_safeStart(){try{this._recognition.start()}catch{this._active=!1}}_getCtor(){const e="undefined"==typeof window?void 0:window;return e?.SpeechRecognition??e?.webkitSpeechRecognition??null}_initPermission(){if("undefined"==typeof navigator||!navigator.permissions||"function"!=typeof navigator.permissions.query)return void this._setPermission("unsupported");this._permissionSubscribed=!0;const e=++this._permGen;navigator.permissions.query({name:"microphone"}).then(t=>{e===this._permGen&&(this._permissionStatus=t,this._setPermission(t.state),t.addEventListener("change",this._onPermissionChange))},()=>{e===this._permGen&&this._setPermission("unsupported")})}_onPermissionChange=e=>{const t=e.target;this._setPermission(t.state)};_normalizeError(e){const t=e&&e.error?e.error:"aborted";return{error:t,message:`Speech recognition failed: ${t}.`}}_unsupportedError(){return{error:"unsupported",message:"SpeechRecognition API is not available in this environment."}}}let _=!1;function m(e){const t=e.target;if(!(t instanceof Element))return;let s;try{s=t.closest(`[${n.listenTriggerAttribute}]`)}catch{return}if(!s)return;const r=s.getAttribute(n.listenTriggerAttribute);if(!r)return;const i=customElements.get(n.tagNames.listen),a=document.getElementById(r);if(!(i&&a instanceof i))return;e.preventDefault();const o=a;o.listening?o.stop():o.start()}class b extends HTMLElement{static hasConnectedCallbackPromise=!0;static wcBindable={...p.wcBindable,properties:[...p.wcBindable.properties,{name:"trigger",event:"wcs-listen:trigger-changed",semantics:"state"}],inputs:[{name:"lang",attribute:"lang"},{name:"continuous",attribute:"continuous"},{name:"interim",attribute:"interim"},{name:"maxRestarts",attribute:"max-restarts"},{name:"manual",attribute:"manual"},{name:"trigger"}],commands:p.wcBindable.commands};_core;_trigger=!1;_connectedCallbackPromise=Promise.resolve();_internals=null;constructor(){super(),this._internals=this._initInternals(),this._wireStates({"wcs-listen:listening-changed":e=>({listening:!0===e}),"wcs-listen:unsupported-changed":e=>({unsupported:!0===e}),"wcs-listen:error":e=>({error:null!=e})}),this._core=new p(this)}get connectedCallbackPromise(){return this._connectedCallbackPromise}get debugStates(){return this._internals?[...this._internals.states]:[]}_initInternals(){try{if("function"!=typeof this.attachInternals)return null;const e=this.attachInternals();return e.states.add("wcs-probe"),e.states.delete("wcs-probe"),e}catch{return null}}_wireStates(e){if(null===this._internals)return;const t=this._internals.states;for(const[s,r]of Object.entries(e))this.addEventListener(s,e=>{const s=this.hasAttribute("debug-states");for(const[n,i]of Object.entries(r(e.detail))){try{i?t.add(n):t.delete(n)}catch{}s&&this.toggleAttribute(`data-wcs-state-${n}`,i)}})}get lang(){return this.getAttribute("lang")??""}set lang(e){null==e?this.removeAttribute("lang"):this.setAttribute("lang",String(e))}get continuous(){return this.hasAttribute("continuous")}set continuous(e){e?this.setAttribute("continuous",""):this.removeAttribute("continuous")}get interim(){return this.hasAttribute("interim")}set interim(e){e?this.setAttribute("interim",""):this.removeAttribute("interim")}get maxRestarts(){const e=this.getAttribute("max-restarts");if(null===e||""===e.trim())return 0;const t=Number(e);return Number.isFinite(t)&&t>=0?Math.floor(t):0}set maxRestarts(e){this.setAttribute("max-restarts",String(e))}get manual(){return this.hasAttribute("manual")}set manual(e){e?this.setAttribute("manual",""):this.removeAttribute("manual")}get interimTranscript(){return this._core.interimTranscript}get finalTranscript(){return this._core.finalTranscript}get result(){return this._core.result}get listening(){return this._core.listening}get permission(){return this._core.permission}get error(){return this._core.error}get errorInfo(){return this._core.errorInfo}get unsupported(){return this._core.unsupported}get trigger(){return this._trigger}set trigger(e){!!e&&(this._trigger=!0,this.start(),this._trigger=!1,this.dispatchEvent(new CustomEvent("wcs-listen:trigger-changed",{detail:!1,bubbles:!0})))}start(){this._core.start(this._options())}stop(){this._core.stop()}abort(){this._core.abort()}_options(){return{lang:this.lang,continuous:this.continuous,interimResults:this.interim,maxRestarts:this.maxRestarts}}connectedCallback(){d(this),this.style.display="none",n.autoTrigger&&(_||(_=!0,document.addEventListener("click",m))),this._connectedCallbackPromise=this._core.observe(),this.manual||this.start()}disconnectedCallback(){this._core.dispose()}}function v(t){var s;t&&("boolean"==typeof(s=t).autoTrigger&&(e.autoTrigger=s.autoTrigger),"string"==typeof s.triggerAttribute&&(e.triggerAttribute=s.triggerAttribute),"string"==typeof s.listenTriggerAttribute&&(e.listenTriggerAttribute=s.listenTriggerAttribute),s.tagNames&&Object.assign(e.tagNames,s.tagNames),r=null),customElements.get(n.tagNames.speak)||customElements.define(n.tagNames.speak,g),customElements.get(n.tagNames.listen)||customElements.define(n.tagNames.listen,b)}export{p as ListenCore,c as SpeakCore,a as WCS_LISTEN_ERROR_CODE,o as WCS_SPEAK_ERROR_CODE,b as WcsListen,g as WcsSpeak,v as bootstrapSpeech,i as getConfig};
2
2
  //# sourceMappingURL=index.esm.min.js.map