react-dictate-button
Version:
A button to start dictation using Web Speech API, with an easy to understand event lifecycle.
241 lines (240 loc) • 6.42 kB
JavaScript
// ../../node_modules/event-target-properties/dist/event-target-properties.mjs
var EventTargetProperties = class {
constructor(eventTarget) {
this.#eventTarget = eventTarget;
}
#attributes = {};
#defaultListeners = {};
#eventTarget;
getProperty(type) {
return this.#attributes[type];
}
setProperty(type, eventListener) {
let handler = this.#defaultListeners[type];
if (!handler) {
handler = (event) => {
var _a, _b;
return (_b = (_a = this.#attributes)[type]) == null ? void 0 : _b.call(_a, event);
};
this.#defaultListeners[type] = handler;
}
if (eventListener) {
this.#eventTarget.addEventListener(type, handler);
this.#attributes[type] = eventListener;
} else {
this.#eventTarget.removeEventListener(type, handler);
delete this.#attributes[type];
}
}
};
// ../mocked-speech-recognition/dist/react-dictate-button-mocked-speech-recognition.mjs
var SpeechGrammarList = class extends Array {
constructor() {
super();
}
addFromString() {
}
addFromURI() {
}
item(index) {
return this[index];
}
};
var SpeechRecognition = class extends EventTarget {
constructor() {
super();
this.#continuous = false;
this.#eventTargetProperties = new EventTargetProperties(this);
this.#grammars = new SpeechGrammarList();
this.#interimResults = false;
this.#lang = "";
this.#maxAlternatives = 1;
}
#continuous;
#eventTargetProperties;
#grammars;
#interimResults;
#lang;
#maxAlternatives;
get onaudioend() {
return this.#eventTargetProperties.getProperty("audioend") || null;
}
set onaudioend(value) {
this.#eventTargetProperties.setProperty("audioend", value || void 0);
}
get onaudiostart() {
return this.#eventTargetProperties.getProperty("audiostart") || null;
}
set onaudiostart(value) {
this.#eventTargetProperties.setProperty("audiostart", value || void 0);
}
get onend() {
return this.#eventTargetProperties.getProperty("end") || null;
}
set onend(value) {
this.#eventTargetProperties.setProperty("end", value || void 0);
}
get onerror() {
return this.#eventTargetProperties.getProperty("error") || null;
}
set onerror(value) {
this.#eventTargetProperties.setProperty("error", value || void 0);
}
get onnomatch() {
return this.#eventTargetProperties.getProperty("nomatch") || null;
}
set onnomatch(value) {
this.#eventTargetProperties.setProperty("nomatch", value || void 0);
}
get onresult() {
return this.#eventTargetProperties.getProperty("result") || null;
}
set onresult(value) {
this.#eventTargetProperties.setProperty("result", value || void 0);
}
get onsoundend() {
return this.#eventTargetProperties.getProperty("soundend") || null;
}
set onsoundend(value) {
this.#eventTargetProperties.setProperty("soundend", value || void 0);
}
get onsoundstart() {
return this.#eventTargetProperties.getProperty("soundstart") || null;
}
set onsoundstart(value) {
this.#eventTargetProperties.setProperty("soundstart", value || void 0);
}
get onspeechend() {
return this.#eventTargetProperties.getProperty("speechend") || null;
}
set onspeechend(value) {
this.#eventTargetProperties.setProperty("speechend", value || void 0);
}
get onspeechstart() {
return this.#eventTargetProperties.getProperty("speechstart") || null;
}
set onspeechstart(value) {
this.#eventTargetProperties.setProperty("speechstart", value || void 0);
}
get onstart() {
return this.#eventTargetProperties.getProperty("start") || null;
}
set onstart(value) {
this.#eventTargetProperties.setProperty("start", value || void 0);
}
get continuous() {
return this.#continuous;
}
set continuous(value) {
this.#continuous = value;
}
get grammars() {
return this.#grammars;
}
get interimResults() {
return this.#interimResults;
}
set interimResults(value) {
this.#interimResults = value;
}
get lang() {
return this.#lang;
}
set lang(value) {
this.#lang = value;
}
get maxAlternatives() {
return this.#maxAlternatives;
}
set maxAlternatives(value) {
this.#maxAlternatives = value;
}
abort() {
}
start() {
}
stop() {
}
};
var SpeechRecognitionAlternative = class {
constructor(confidence, transcript) {
this.#confidence = typeof confidence === "undefined" ? 0 : confidence;
this.#transcript = typeof transcript === "undefined" ? "" : transcript;
}
#confidence;
#transcript;
get confidence() {
return this.#confidence;
}
get transcript() {
return this.#transcript;
}
};
var SpeechRecognitionErrorEvent = class extends Event {
constructor(type, eventInitDict) {
super(type, eventInitDict);
this.#error = eventInitDict.error || "";
this.#message = eventInitDict.message || "";
}
#error;
#message;
get error() {
return this.#error;
}
get message() {
return this.#message;
}
};
var SpeechRecognitionResultList = class extends Array {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
constructor(...args) {
super(...args);
}
item(index) {
return this[index];
}
};
var SpeechRecognitionEvent = class extends Event {
constructor(type, eventInitDict) {
super(type, eventInitDict);
this.#resultIndex = eventInitDict.resultIndex ?? 0;
this.#results = "results" in eventInitDict && eventInitDict.results ? eventInitDict.results : new SpeechRecognitionResultList();
}
#resultIndex;
#results;
get resultIndex() {
return this.#resultIndex;
}
get results() {
return this.#results;
}
};
var SpeechRecognitionResult = class _SpeechRecognitionResult extends Array {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
constructor(...args) {
super(...args);
this.#isFinal = false;
}
#isFinal = false;
item(index) {
return this[index];
}
get isFinal() {
return this.#isFinal;
}
static fromFinalized(...items) {
const result = new _SpeechRecognitionResult(...items);
result.#isFinal = true;
return result;
}
};
export {
SpeechGrammarList,
SpeechRecognition,
SpeechRecognitionAlternative,
SpeechRecognitionErrorEvent,
SpeechRecognitionEvent,
SpeechRecognitionResult,
SpeechRecognitionResultList
};
//# sourceMappingURL=react-dictate-button.internal.mjs.map