@useago/sdk 1.13.3 → 1.14.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.
- package/CHANGELOG.md +6 -0
- package/dist/angular.cjs +1 -1
- package/dist/angular.d.cts +7 -0
- package/dist/angular.d.ts +7 -0
- package/dist/angular.js +1 -1
- package/dist/{createConversationSession-DrmOaZdO.js → createConversationSession-CybQdMpK.js} +1 -1
- package/dist/{createConversationSession-Digvn0GQ.cjs → createConversationSession-jwSXhTLe.cjs} +1 -1
- package/dist/{createFormCollector-D_5SDuk9.cjs → createFormCollector-B_hSKcLd.cjs} +1 -1
- package/dist/{createFormCollector-D6_N8wYq.js → createFormCollector-DJjms78E.js} +1 -1
- package/dist/devtools.d.cts +7 -0
- package/dist/devtools.d.ts +7 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +6 -6
- package/dist/react.cjs +4 -4
- package/dist/react.d.cts +8 -1
- package/dist/react.d.ts +8 -1
- package/dist/react.js +901 -912
- package/dist/speechToText-BB25_zVM.cjs +7 -0
- package/dist/speechToText-BLvTis4S.js +1496 -0
- package/dist/testing.d.cts +7 -0
- package/dist/testing.d.ts +7 -0
- package/dist/{types-D1ZrqVhr.js → types-C39MJUE3.js} +284 -259
- package/dist/{types-DNr6XEwI.cjs → types-PGXnhAmQ.cjs} +7 -7
- package/dist/vue.cjs +1 -1
- package/dist/vue.d.cts +7 -0
- package/dist/vue.d.ts +7 -0
- package/dist/vue.js +1 -1
- package/dist/widget.cjs +5 -6
- package/dist/widget.d.cts +12 -4
- package/dist/widget.d.ts +12 -4
- package/dist/widget.js +1868 -1841
- package/llms-full.txt +23 -3
- package/package.json +1 -1
- package/dist/speechToText-BV7qxqPF.js +0 -704
- package/dist/speechToText-ZciRyyJE.cjs +0 -1
|
@@ -0,0 +1,1496 @@
|
|
|
1
|
+
import { C as ne } from "./types-C39MJUE3.js";
|
|
2
|
+
var Q = {
|
|
3
|
+
form: {
|
|
4
|
+
noTicketForm: "No ticket form found",
|
|
5
|
+
ticketSubmitted: "Your ticket has been successfully submitted.",
|
|
6
|
+
findTicketHere: "You can find it here:",
|
|
7
|
+
useFormToCreateTicket: "You can use the following form to create a ticket",
|
|
8
|
+
detailedContext: "Detailed context",
|
|
9
|
+
submit: "Submit",
|
|
10
|
+
yourEmail: "Your Email",
|
|
11
|
+
emailPlaceholder: "Enter your email address",
|
|
12
|
+
emailRequired: "Email is required",
|
|
13
|
+
emailInvalid: "Please enter a valid email address",
|
|
14
|
+
subject: "Subject",
|
|
15
|
+
subjectRequired: "Subject is required.",
|
|
16
|
+
typology: "Typology",
|
|
17
|
+
selectTypology: "Select a typology",
|
|
18
|
+
typologyRequired: "Typology is required.",
|
|
19
|
+
question: "Question",
|
|
20
|
+
task: "Task",
|
|
21
|
+
incident: "Incident",
|
|
22
|
+
priority: "Priority",
|
|
23
|
+
selectPriority: "Select a priority",
|
|
24
|
+
priorityRequired: "Priority is required.",
|
|
25
|
+
low: "Low",
|
|
26
|
+
normal: "Normal",
|
|
27
|
+
high: "High",
|
|
28
|
+
urgent: "Urgent",
|
|
29
|
+
detailedContextRequired: "Detailed context is required.",
|
|
30
|
+
fieldRequired: "{fieldTitle} is required.",
|
|
31
|
+
fieldFormatInvalid: "{fieldTitle} has an invalid format.",
|
|
32
|
+
attachments: "Attachments",
|
|
33
|
+
selectFile: "Select file",
|
|
34
|
+
fileSize: "{size} KB",
|
|
35
|
+
submissionFailed: "Failed to submit ticket",
|
|
36
|
+
submissionFailedDescription: "There was an error submitting your ticket. Please try again.",
|
|
37
|
+
fileTooLarge: "File too large",
|
|
38
|
+
permissionDenied: "Permission denied",
|
|
39
|
+
validationFailed: "Validation error",
|
|
40
|
+
pleaseCheckFields: "Please check your form fields and try again.",
|
|
41
|
+
maxCharacters: "Maximum characters",
|
|
42
|
+
embeddedFormSubmitted: "Your form has been submitted successfully.",
|
|
43
|
+
noEmbedConfigured: "No embed URL or HTML configured for this form.",
|
|
44
|
+
embedSubmitTimeout: "The form submission could not be confirmed. Please try again.",
|
|
45
|
+
tryAgain: "Try again",
|
|
46
|
+
loading: "Loading...",
|
|
47
|
+
contactFormCreated: "A new contact form has been created, see below to fill it out.",
|
|
48
|
+
contactFormRejected: "You are not allowed to create a ticket. See below why.",
|
|
49
|
+
formPending: "Please complete the form above to continue the conversation",
|
|
50
|
+
ticketCreatedBlocked: `A ticket has been created for this conversation.
|
|
51
|
+
Please create a new conversation to continue.`,
|
|
52
|
+
newConversation: "New conversation",
|
|
53
|
+
notAllowed: "You are not allowed to create a ticket.",
|
|
54
|
+
genericFormComingSoon: "Generic form rendering (Coming soon)",
|
|
55
|
+
unknownToolCall: "Unknown tool call type: {type}",
|
|
56
|
+
removeFile: "Remove {filename}"
|
|
57
|
+
},
|
|
58
|
+
widget: {
|
|
59
|
+
home: "Home",
|
|
60
|
+
chats: "Chats",
|
|
61
|
+
history: "History",
|
|
62
|
+
newConversation: "New conversation",
|
|
63
|
+
noHistory: "No chat history yet",
|
|
64
|
+
askQuestion: "Ask a question",
|
|
65
|
+
back: "Back",
|
|
66
|
+
close: "Close chat",
|
|
67
|
+
newChat: "New chat",
|
|
68
|
+
errorTitle: "Something went wrong",
|
|
69
|
+
errorDescription: "The answer could not be generated. Please try again.",
|
|
70
|
+
scrollToBottom: "Scroll to bottom",
|
|
71
|
+
dismiss: "Dismiss",
|
|
72
|
+
attachFiles: "Attach files",
|
|
73
|
+
tooManyFiles: "Too many files. Maximum allowed: {max}",
|
|
74
|
+
invalidFileType: "Invalid file type: {name}",
|
|
75
|
+
fileTooLarge: "File too large: {name} (maximum {max})"
|
|
76
|
+
},
|
|
77
|
+
timeAgo: {
|
|
78
|
+
minutes: "{n}min ago",
|
|
79
|
+
hours: "{n}h ago",
|
|
80
|
+
days: "{n}d ago",
|
|
81
|
+
weeks: "{n} weeks ago",
|
|
82
|
+
months: "{n} months ago"
|
|
83
|
+
},
|
|
84
|
+
feedback: {
|
|
85
|
+
helpful: "Helpful",
|
|
86
|
+
notHelpful: "Not helpful",
|
|
87
|
+
whatWentWrong: "What went wrong?",
|
|
88
|
+
reasons: {
|
|
89
|
+
inaccurate: "Inaccurate",
|
|
90
|
+
incomplete: "Incomplete",
|
|
91
|
+
information_not_found: "Information not found",
|
|
92
|
+
technical_issue: "Technical issue"
|
|
93
|
+
},
|
|
94
|
+
commentPlaceholder: "Anything else? (optional)",
|
|
95
|
+
send: "Send",
|
|
96
|
+
thanks: "Thanks, this was reported."
|
|
97
|
+
},
|
|
98
|
+
speech: {
|
|
99
|
+
start: "Dictate a message",
|
|
100
|
+
finish: "Finish recording",
|
|
101
|
+
cancel: "Cancel dictation",
|
|
102
|
+
requesting: "Waiting for microphone…",
|
|
103
|
+
recording: "Recording…",
|
|
104
|
+
transcribing: "Transcribing…",
|
|
105
|
+
limitApproaching: "Recording will finish in 10 seconds.",
|
|
106
|
+
permissionDenied: "Allow microphone access in your browser to dictate a message.",
|
|
107
|
+
recordingFailed: "Could not record audio. Check your microphone and try again.",
|
|
108
|
+
tooLarge: "Recording is too large. Try a shorter message.",
|
|
109
|
+
noSpeech: "No audio was recorded. Please try again.",
|
|
110
|
+
transcriptionFailed: "Transcription failed. Please try again."
|
|
111
|
+
},
|
|
112
|
+
common: {
|
|
113
|
+
stopButton: "Stop",
|
|
114
|
+
close: "Close",
|
|
115
|
+
attachFile: "Attach file",
|
|
116
|
+
openTitle: "Open {title}",
|
|
117
|
+
closeTitle: "Close {title}",
|
|
118
|
+
chat: "Chat",
|
|
119
|
+
welcome: "Hello! How can I help you today?",
|
|
120
|
+
prompt: "Hello, how can I help you today?",
|
|
121
|
+
placeholder: "Type a message...",
|
|
122
|
+
send: "Send",
|
|
123
|
+
stop: "Stop generating",
|
|
124
|
+
thinking: "Thinking...",
|
|
125
|
+
openChat: "Open chat",
|
|
126
|
+
openConversation: "Open the conversation",
|
|
127
|
+
collapseConversation: "Collapse the conversation",
|
|
128
|
+
newMessage: "New message",
|
|
129
|
+
jumpToLatest: "Jump to latest message",
|
|
130
|
+
formSubmitted: "Form submitted.",
|
|
131
|
+
sendFailed: "Failed to send message"
|
|
132
|
+
}
|
|
133
|
+
}, re = {
|
|
134
|
+
form: {
|
|
135
|
+
noTicketForm: "Aucun formulaire de ticket trouvé",
|
|
136
|
+
ticketSubmitted: "Votre ticket a été soumis avec succès.",
|
|
137
|
+
findTicketHere: "Vous pouvez le trouver ici :",
|
|
138
|
+
useFormToCreateTicket: "Vous pouvez utiliser le formulaire suivant pour créer un ticket",
|
|
139
|
+
detailedContext: "Contexte détaillé",
|
|
140
|
+
submit: "Envoyer",
|
|
141
|
+
yourEmail: "Votre Email",
|
|
142
|
+
emailPlaceholder: "Entrez votre adresse email",
|
|
143
|
+
emailRequired: "L'email est requis",
|
|
144
|
+
emailInvalid: "Veuillez entrer une adresse email valide",
|
|
145
|
+
subject: "Sujet",
|
|
146
|
+
subjectRequired: "Le sujet est requis.",
|
|
147
|
+
typology: "Typologie",
|
|
148
|
+
selectTypology: "Sélectionner une typologie",
|
|
149
|
+
typologyRequired: "La typologie est requise.",
|
|
150
|
+
question: "Question",
|
|
151
|
+
task: "Tâche",
|
|
152
|
+
incident: "Incident",
|
|
153
|
+
priority: "Priorité",
|
|
154
|
+
selectPriority: "Sélectionner une priorité",
|
|
155
|
+
priorityRequired: "La priorité est requise.",
|
|
156
|
+
low: "Faible",
|
|
157
|
+
normal: "Normale",
|
|
158
|
+
high: "Élevée",
|
|
159
|
+
urgent: "Urgente",
|
|
160
|
+
detailedContextRequired: "Le contexte détaillé est requis.",
|
|
161
|
+
fieldRequired: "{fieldTitle} est requis.",
|
|
162
|
+
fieldFormatInvalid: "Le format de {fieldTitle} est invalide.",
|
|
163
|
+
validationFailed: "Erreur de validation",
|
|
164
|
+
pleaseCheckFields: "Veuillez vérifier les champs du formulaire et réessayer.",
|
|
165
|
+
submissionFailed: "Échec de l'envoi du ticket",
|
|
166
|
+
submissionFailedDescription: "Une erreur s'est produite lors de l'envoi de votre ticket. Veuillez réessayer.",
|
|
167
|
+
fileTooLarge: "Fichier trop volumineux",
|
|
168
|
+
permissionDenied: "Permission refusée",
|
|
169
|
+
attachments: "Pièces jointes",
|
|
170
|
+
selectFile: "Sélectionner un fichier",
|
|
171
|
+
fileSize: "{size} Ko",
|
|
172
|
+
maxCharacters: "Nombre maximum de caractères",
|
|
173
|
+
embeddedFormSubmitted: "Votre formulaire a été soumis avec succès.",
|
|
174
|
+
noEmbedConfigured: "Aucune URL ou code HTML configuré pour ce formulaire.",
|
|
175
|
+
embedSubmitTimeout: "La soumission du formulaire n'a pas pu être confirmée. Veuillez réessayer.",
|
|
176
|
+
tryAgain: "Réessayer",
|
|
177
|
+
loading: "Chargement...",
|
|
178
|
+
contactFormCreated: "Un nouveau formulaire de contact a été créé, voir ci-dessous pour le remplir.",
|
|
179
|
+
contactFormRejected: "Vous n'êtes pas autorisé à créer un ticket. Voir message ci-dessous.",
|
|
180
|
+
formPending: "Veuillez compléter le formulaire ci-dessus pour continuer la conversation",
|
|
181
|
+
ticketCreatedBlocked: `Un ticket a été crée pour cette conversation.
|
|
182
|
+
Pour toute nouvelle demande, veuillez ouvrir une nouvelle conversation.`,
|
|
183
|
+
newConversation: "Nouvelle conversation",
|
|
184
|
+
notAllowed: "Vous n’êtes pas autorisé à créer un ticket.",
|
|
185
|
+
genericFormComingSoon: "Formulaire générique (Bientôt disponible)",
|
|
186
|
+
unknownToolCall: "Type d’outil inconnu : {type}",
|
|
187
|
+
removeFile: "Supprimer {filename}"
|
|
188
|
+
},
|
|
189
|
+
widget: {
|
|
190
|
+
home: "Accueil",
|
|
191
|
+
chats: "Discussions",
|
|
192
|
+
history: "Historique",
|
|
193
|
+
newConversation: "Nouvelle conversation",
|
|
194
|
+
noHistory: "Aucune discussion pour le moment",
|
|
195
|
+
askQuestion: "Posez une question",
|
|
196
|
+
back: "Retour",
|
|
197
|
+
close: "Fermer la discussion",
|
|
198
|
+
newChat: "Nouvelle discussion",
|
|
199
|
+
errorTitle: "Une erreur est survenue",
|
|
200
|
+
errorDescription: "La réponse n’a pas pu être générée. Veuillez réessayer.",
|
|
201
|
+
scrollToBottom: "Aller en bas",
|
|
202
|
+
dismiss: "Fermer",
|
|
203
|
+
attachFiles: "Joindre des fichiers",
|
|
204
|
+
tooManyFiles: "Trop de fichiers. Maximum autorisé : {max}",
|
|
205
|
+
invalidFileType: "Type de fichier non valide : {name}",
|
|
206
|
+
fileTooLarge: "Fichier trop volumineux : {name} (maximum {max})"
|
|
207
|
+
},
|
|
208
|
+
timeAgo: {
|
|
209
|
+
minutes: "Il y a {n} min",
|
|
210
|
+
hours: "Il y a {n} h",
|
|
211
|
+
days: "Il y a {n} j",
|
|
212
|
+
weeks: "Il y a {n} semaines",
|
|
213
|
+
months: "Il y a {n} mois"
|
|
214
|
+
},
|
|
215
|
+
feedback: {
|
|
216
|
+
helpful: "Utile",
|
|
217
|
+
notHelpful: "Pas utile",
|
|
218
|
+
whatWentWrong: "Quel est le problème ?",
|
|
219
|
+
reasons: {
|
|
220
|
+
inaccurate: "Incorrect",
|
|
221
|
+
incomplete: "Incomplet",
|
|
222
|
+
information_not_found: "Information introuvable",
|
|
223
|
+
technical_issue: "Problème technique"
|
|
224
|
+
},
|
|
225
|
+
commentPlaceholder: "Autre chose ? (facultatif)",
|
|
226
|
+
send: "Envoyer",
|
|
227
|
+
thanks: "Merci, votre avis a été envoyé."
|
|
228
|
+
},
|
|
229
|
+
speech: {
|
|
230
|
+
start: "Dicter un message",
|
|
231
|
+
finish: "Terminer l’enregistrement",
|
|
232
|
+
cancel: "Annuler la dictée",
|
|
233
|
+
requesting: "En attente du microphone…",
|
|
234
|
+
recording: "Enregistrement…",
|
|
235
|
+
transcribing: "Transcription…",
|
|
236
|
+
limitApproaching: "L’enregistrement se terminera dans 10 secondes.",
|
|
237
|
+
permissionDenied: "Autorisez l’accès au microphone dans votre navigateur pour dicter un message.",
|
|
238
|
+
recordingFailed: "Impossible d’enregistrer le son. Vérifiez votre microphone et réessayez.",
|
|
239
|
+
tooLarge: "L’enregistrement est trop volumineux. Essayez un message plus court.",
|
|
240
|
+
noSpeech: "Aucun son n’a été enregistré. Veuillez réessayer.",
|
|
241
|
+
transcriptionFailed: "La transcription a échoué. Veuillez réessayer."
|
|
242
|
+
},
|
|
243
|
+
common: {
|
|
244
|
+
stopButton: "Arrêter",
|
|
245
|
+
close: "Fermer",
|
|
246
|
+
attachFile: "Joindre un fichier",
|
|
247
|
+
openTitle: "Ouvrir {title}",
|
|
248
|
+
closeTitle: "Fermer {title}",
|
|
249
|
+
chat: "Discussion",
|
|
250
|
+
welcome: "Bonjour ! Comment puis-je vous aider aujourd’hui ?",
|
|
251
|
+
prompt: "Bonjour, comment puis-je vous aider aujourd’hui ?",
|
|
252
|
+
placeholder: "Écrivez un message...",
|
|
253
|
+
send: "Envoyer",
|
|
254
|
+
stop: "Arrêter la génération",
|
|
255
|
+
thinking: "Réflexion...",
|
|
256
|
+
openChat: "Ouvrir la discussion",
|
|
257
|
+
openConversation: "Ouvrir la conversation",
|
|
258
|
+
collapseConversation: "Réduire la conversation",
|
|
259
|
+
newMessage: "Nouveau message",
|
|
260
|
+
jumpToLatest: "Aller au dernier message",
|
|
261
|
+
formSubmitted: "Formulaire envoyé.",
|
|
262
|
+
sendFailed: "Échec de l’envoi du message"
|
|
263
|
+
}
|
|
264
|
+
}, ae = {
|
|
265
|
+
form: {
|
|
266
|
+
noTicketForm: "Kein Ticket-Formular gefunden",
|
|
267
|
+
ticketSubmitted: "Ihr Ticket wurde erfolgreich übermittelt.",
|
|
268
|
+
findTicketHere: "Sie finden es hier:",
|
|
269
|
+
useFormToCreateTicket: "Mit dem folgenden Formular können Sie ein Ticket erstellen",
|
|
270
|
+
detailedContext: "Ausführlicher Kontext",
|
|
271
|
+
submit: "Absenden",
|
|
272
|
+
yourEmail: "Ihre E-Mail",
|
|
273
|
+
emailPlaceholder: "Geben Sie Ihre E-Mail-Adresse ein",
|
|
274
|
+
emailRequired: "Die E-Mail ist erforderlich",
|
|
275
|
+
emailInvalid: "Bitte gib eine gültige E-Mail-Adresse ein",
|
|
276
|
+
subject: "Betreff",
|
|
277
|
+
subjectRequired: "Der Betreff ist erforderlich.",
|
|
278
|
+
typology: "Typologie",
|
|
279
|
+
selectTypology: "Wählen Sie eine Typologie",
|
|
280
|
+
typologyRequired: "Die Typologie ist erforderlich.",
|
|
281
|
+
question: "Frage",
|
|
282
|
+
task: "Aufgabe",
|
|
283
|
+
incident: "Störung",
|
|
284
|
+
priority: "Priorität",
|
|
285
|
+
selectPriority: "Wählen Sie eine Priorität",
|
|
286
|
+
priorityRequired: "Die Priorität ist erforderlich.",
|
|
287
|
+
low: "Niedrig",
|
|
288
|
+
normal: "Normal",
|
|
289
|
+
high: "Hoch",
|
|
290
|
+
urgent: "Dringend",
|
|
291
|
+
detailedContextRequired: "Der ausführliche Kontext ist erforderlich.",
|
|
292
|
+
fieldRequired: "{fieldTitle} ist erforderlich.",
|
|
293
|
+
fieldFormatInvalid: "Das Format von {fieldTitle} ist ungültig.",
|
|
294
|
+
attachments: "Anhänge",
|
|
295
|
+
selectFile: "Datei auswählen",
|
|
296
|
+
fileSize: "{size} KB",
|
|
297
|
+
submissionFailed: "Das Ticket konnte nicht übermittelt werden",
|
|
298
|
+
submissionFailedDescription: "Beim Übermitteln Ihres Tickets ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.",
|
|
299
|
+
fileTooLarge: "Datei zu groß",
|
|
300
|
+
permissionDenied: "Zugriff verweigert",
|
|
301
|
+
validationFailed: "Validierungsfehler",
|
|
302
|
+
pleaseCheckFields: "Bitte prüfen Sie die Formularfelder und versuchen Sie es erneut.",
|
|
303
|
+
maxCharacters: "Maximale Zeichenanzahl",
|
|
304
|
+
embeddedFormSubmitted: "Ihr Formular wurde erfolgreich übermittelt.",
|
|
305
|
+
noEmbedConfigured: "Für dieses Formular ist keine Einbettungs-URL oder HTML konfiguriert.",
|
|
306
|
+
embedSubmitTimeout: "Die Formularübermittlung konnte nicht bestätigt werden. Bitte versuchen Sie es erneut.",
|
|
307
|
+
tryAgain: "Erneut versuchen",
|
|
308
|
+
loading: "Wird geladen...",
|
|
309
|
+
contactFormCreated: "Ein neues Kontaktformular wurde erstellt, fülle es unten aus.",
|
|
310
|
+
contactFormRejected: "Sie dürfen kein Ticket erstellen. Siehe unten, warum.",
|
|
311
|
+
formPending: "Füllen Sie bitte das Formular oben aus, um die Konversation fortzusetzen",
|
|
312
|
+
ticketCreatedBlocked: `Für diese Konversation wurde ein Ticket erstellt.
|
|
313
|
+
Starte eine neue Konversation, um fortzufahren.`,
|
|
314
|
+
newConversation: "Neue Konversation",
|
|
315
|
+
notAllowed: "Sie dürfen kein Ticket erstellen.",
|
|
316
|
+
genericFormComingSoon: "Allgemeines Formular (Demnächst verfügbar)",
|
|
317
|
+
unknownToolCall: "Unbekannter Werkzeugtyp: {type}",
|
|
318
|
+
removeFile: "{filename} entfernen"
|
|
319
|
+
},
|
|
320
|
+
widget: {
|
|
321
|
+
home: "Startseite",
|
|
322
|
+
chats: "Chats",
|
|
323
|
+
history: "Verlauf",
|
|
324
|
+
newConversation: "Neue Konversation",
|
|
325
|
+
noHistory: "Noch kein Chatverlauf",
|
|
326
|
+
askQuestion: "Stellen Sie eine Frage",
|
|
327
|
+
back: "Zurück",
|
|
328
|
+
close: "Chat schließen",
|
|
329
|
+
newChat: "Neuer Chat",
|
|
330
|
+
errorTitle: "Ein Fehler ist aufgetreten",
|
|
331
|
+
errorDescription: "Die Antwort konnte nicht erstellt werden. Bitte versuchen Sie es erneut.",
|
|
332
|
+
scrollToBottom: "Nach unten scrollen",
|
|
333
|
+
dismiss: "Schließen",
|
|
334
|
+
attachFiles: "Dateien anhängen",
|
|
335
|
+
tooManyFiles: "Zu viele Dateien. Maximal erlaubt: {max}",
|
|
336
|
+
invalidFileType: "Ungültiger Dateityp: {name}",
|
|
337
|
+
fileTooLarge: "Datei zu groß: {name} (maximal {max})"
|
|
338
|
+
},
|
|
339
|
+
timeAgo: {
|
|
340
|
+
minutes: "Vor {n} Min.",
|
|
341
|
+
hours: "Vor {n} Std.",
|
|
342
|
+
days: "Vor {n} Tagen",
|
|
343
|
+
weeks: "Vor {n} Wochen",
|
|
344
|
+
months: "Vor {n} Monaten"
|
|
345
|
+
},
|
|
346
|
+
feedback: {
|
|
347
|
+
helpful: "Hilfreich",
|
|
348
|
+
notHelpful: "Nicht hilfreich",
|
|
349
|
+
whatWentWrong: "Was ist schiefgelaufen?",
|
|
350
|
+
reasons: {
|
|
351
|
+
inaccurate: "Unzutreffend",
|
|
352
|
+
incomplete: "Unvollständig",
|
|
353
|
+
information_not_found: "Information nicht gefunden",
|
|
354
|
+
technical_issue: "Technisches Problem"
|
|
355
|
+
},
|
|
356
|
+
commentPlaceholder: "Noch etwas? (optional)",
|
|
357
|
+
send: "Senden",
|
|
358
|
+
thanks: "Danke, Ihr Feedback wurde gesendet."
|
|
359
|
+
},
|
|
360
|
+
speech: {
|
|
361
|
+
start: "Nachricht diktieren",
|
|
362
|
+
finish: "Aufnahme beenden",
|
|
363
|
+
cancel: "Diktat abbrechen",
|
|
364
|
+
requesting: "Warten auf Mikrofon…",
|
|
365
|
+
recording: "Aufnahme…",
|
|
366
|
+
transcribing: "Transkription…",
|
|
367
|
+
limitApproaching: "Die Aufnahme endet in 10 Sekunden.",
|
|
368
|
+
permissionDenied: "Erlauben Sie den Mikrofonzugriff im Browser, um eine Nachricht zu diktieren.",
|
|
369
|
+
recordingFailed: "Audio konnte nicht aufgenommen werden. Prüfen Sie Ihr Mikrofon und versuchen Sie es erneut.",
|
|
370
|
+
tooLarge: "Die Aufnahme ist zu groß. Versuchen Sie eine kürzere Nachricht.",
|
|
371
|
+
noSpeech: "Es wurde kein Audio aufgenommen. Bitte versuchen Sie es erneut.",
|
|
372
|
+
transcriptionFailed: "Transkription fehlgeschlagen. Bitte versuchen Sie es erneut."
|
|
373
|
+
},
|
|
374
|
+
common: {
|
|
375
|
+
stopButton: "Stoppen",
|
|
376
|
+
close: "Schließen",
|
|
377
|
+
attachFile: "Datei anhängen",
|
|
378
|
+
openTitle: "{title} öffnen",
|
|
379
|
+
closeTitle: "{title} schließen",
|
|
380
|
+
chat: "Chat",
|
|
381
|
+
welcome: "Hallo! Wie kann ich Ihnen heute helfen?",
|
|
382
|
+
prompt: "Hallo, wie kann ich Ihnen heute helfen?",
|
|
383
|
+
placeholder: "Nachricht eingeben...",
|
|
384
|
+
send: "Senden",
|
|
385
|
+
stop: "Generierung stoppen",
|
|
386
|
+
thinking: "Denke nach...",
|
|
387
|
+
openChat: "Chat öffnen",
|
|
388
|
+
openConversation: "Konversation öffnen",
|
|
389
|
+
collapseConversation: "Konversation minimieren",
|
|
390
|
+
newMessage: "Neue Nachricht",
|
|
391
|
+
jumpToLatest: "Zur neuesten Nachricht",
|
|
392
|
+
formSubmitted: "Formular übermittelt.",
|
|
393
|
+
sendFailed: "Nachricht konnte nicht gesendet werden"
|
|
394
|
+
}
|
|
395
|
+
}, se = {
|
|
396
|
+
form: {
|
|
397
|
+
noTicketForm: "No se encontró ningún formulario de ticket",
|
|
398
|
+
ticketSubmitted: "Su ticket se ha enviado correctamente.",
|
|
399
|
+
findTicketHere: "Puede encontrarlo aquí:",
|
|
400
|
+
useFormToCreateTicket: "Puede usar el siguiente formulario para crear un ticket",
|
|
401
|
+
detailedContext: "Contexto detallado",
|
|
402
|
+
submit: "Enviar",
|
|
403
|
+
yourEmail: "Su correo electrónico",
|
|
404
|
+
emailPlaceholder: "Introduzca su dirección de correo",
|
|
405
|
+
emailRequired: "El correo electrónico es obligatorio",
|
|
406
|
+
emailInvalid: "Introduzca una dirección de correo válida",
|
|
407
|
+
subject: "Asunto",
|
|
408
|
+
subjectRequired: "El asunto es obligatorio.",
|
|
409
|
+
typology: "Tipología",
|
|
410
|
+
selectTypology: "Seleccione una tipología",
|
|
411
|
+
typologyRequired: "La tipología es obligatoria.",
|
|
412
|
+
question: "Pregunta",
|
|
413
|
+
task: "Tarea",
|
|
414
|
+
incident: "Incidencia",
|
|
415
|
+
priority: "Prioridad",
|
|
416
|
+
selectPriority: "Seleccione una prioridad",
|
|
417
|
+
priorityRequired: "La prioridad es obligatoria.",
|
|
418
|
+
low: "Baja",
|
|
419
|
+
normal: "Normal",
|
|
420
|
+
high: "Alta",
|
|
421
|
+
urgent: "Urgente",
|
|
422
|
+
detailedContextRequired: "El contexto detallado es obligatorio.",
|
|
423
|
+
fieldRequired: "{fieldTitle} es obligatorio.",
|
|
424
|
+
fieldFormatInvalid: "El formato de {fieldTitle} no es válido.",
|
|
425
|
+
attachments: "Archivos adjuntos",
|
|
426
|
+
selectFile: "Seleccionar archivo",
|
|
427
|
+
fileSize: "{size} KB",
|
|
428
|
+
submissionFailed: "No se pudo enviar el ticket",
|
|
429
|
+
submissionFailedDescription: "Se produjo un error al enviar su ticket. Inténtelo de nuevo.",
|
|
430
|
+
fileTooLarge: "Archivo demasiado grande",
|
|
431
|
+
permissionDenied: "Permiso denegado",
|
|
432
|
+
validationFailed: "Error de validación",
|
|
433
|
+
pleaseCheckFields: "Revise los campos del formulario e inténtelo de nuevo.",
|
|
434
|
+
maxCharacters: "Máximo de caracteres",
|
|
435
|
+
embeddedFormSubmitted: "Su formulario se ha enviado correctamente.",
|
|
436
|
+
noEmbedConfigured: "No hay ninguna URL ni HTML de incrustación configurados para este formulario.",
|
|
437
|
+
embedSubmitTimeout: "No se pudo confirmar el envío del formulario. Inténtelo de nuevo.",
|
|
438
|
+
tryAgain: "Volver a intentar",
|
|
439
|
+
loading: "Cargando...",
|
|
440
|
+
contactFormCreated: "Se ha creado un formulario de contacto nuevo, rellénelo abajo.",
|
|
441
|
+
contactFormRejected: "No puede crear un ticket. Abajo se explica por qué.",
|
|
442
|
+
formPending: "Complete el formulario de arriba para continuar la conversación",
|
|
443
|
+
ticketCreatedBlocked: `Se ha creado un ticket para esta conversación.
|
|
444
|
+
Cree una conversación nueva para continuar.`,
|
|
445
|
+
newConversation: "Nueva conversación",
|
|
446
|
+
notAllowed: "No tiene permiso para crear un ticket.",
|
|
447
|
+
genericFormComingSoon: "Formulario genérico (Próximamente)",
|
|
448
|
+
unknownToolCall: "Tipo de herramienta desconocido: {type}",
|
|
449
|
+
removeFile: "Eliminar {filename}"
|
|
450
|
+
},
|
|
451
|
+
widget: {
|
|
452
|
+
home: "Inicio",
|
|
453
|
+
chats: "Chats",
|
|
454
|
+
history: "Historial",
|
|
455
|
+
newConversation: "Nueva conversación",
|
|
456
|
+
noHistory: "Aún no hay conversaciones",
|
|
457
|
+
askQuestion: "Haga una pregunta",
|
|
458
|
+
back: "Volver",
|
|
459
|
+
close: "Cerrar chat",
|
|
460
|
+
newChat: "Nuevo chat",
|
|
461
|
+
errorTitle: "Se produjo un error",
|
|
462
|
+
errorDescription: "No se pudo generar la respuesta. Inténtelo de nuevo.",
|
|
463
|
+
scrollToBottom: "Ir al final",
|
|
464
|
+
dismiss: "Cerrar",
|
|
465
|
+
attachFiles: "Adjuntar archivos",
|
|
466
|
+
tooManyFiles: "Demasiados archivos. Máximo permitido: {max}",
|
|
467
|
+
invalidFileType: "Tipo de archivo no válido: {name}",
|
|
468
|
+
fileTooLarge: "Archivo demasiado grande: {name} (máximo {max})"
|
|
469
|
+
},
|
|
470
|
+
timeAgo: {
|
|
471
|
+
minutes: "Hace {n} min",
|
|
472
|
+
hours: "Hace {n} h",
|
|
473
|
+
days: "Hace {n} días",
|
|
474
|
+
weeks: "Hace {n} semanas",
|
|
475
|
+
months: "Hace {n} meses"
|
|
476
|
+
},
|
|
477
|
+
feedback: {
|
|
478
|
+
helpful: "Útil",
|
|
479
|
+
notHelpful: "No es útil",
|
|
480
|
+
whatWentWrong: "¿Qué salió mal?",
|
|
481
|
+
reasons: {
|
|
482
|
+
inaccurate: "Incorrecto",
|
|
483
|
+
incomplete: "Incompleto",
|
|
484
|
+
information_not_found: "Información no encontrada",
|
|
485
|
+
technical_issue: "Problema técnico"
|
|
486
|
+
},
|
|
487
|
+
commentPlaceholder: "¿Algo más? (opcional)",
|
|
488
|
+
send: "Enviar",
|
|
489
|
+
thanks: "Gracias, se ha enviado su comentario."
|
|
490
|
+
},
|
|
491
|
+
speech: {
|
|
492
|
+
start: "Dictar un mensaje",
|
|
493
|
+
finish: "Finalizar grabación",
|
|
494
|
+
cancel: "Cancelar dictado",
|
|
495
|
+
requesting: "Esperando el micrófono…",
|
|
496
|
+
recording: "Grabando…",
|
|
497
|
+
transcribing: "Transcribiendo…",
|
|
498
|
+
limitApproaching: "La grabación terminará en 10 segundos.",
|
|
499
|
+
permissionDenied: "Permita el acceso al micrófono en su navegador para dictar un mensaje.",
|
|
500
|
+
recordingFailed: "No se pudo grabar audio. Revise su micrófono e inténtelo de nuevo.",
|
|
501
|
+
tooLarge: "La grabación es demasiado grande. Pruebe con un mensaje más corto.",
|
|
502
|
+
noSpeech: "No se grabó audio. Inténtelo de nuevo.",
|
|
503
|
+
transcriptionFailed: "La transcripción falló. Inténtelo de nuevo."
|
|
504
|
+
},
|
|
505
|
+
common: {
|
|
506
|
+
stopButton: "Detener",
|
|
507
|
+
close: "Cerrar",
|
|
508
|
+
attachFile: "Adjuntar archivo",
|
|
509
|
+
openTitle: "Abrir {title}",
|
|
510
|
+
closeTitle: "Cerrar {title}",
|
|
511
|
+
chat: "Chat",
|
|
512
|
+
welcome: "¡Hola! ¿Cómo puedo ayudarle hoy?",
|
|
513
|
+
prompt: "Hola, ¿cómo puedo ayudarle hoy?",
|
|
514
|
+
placeholder: "Escriba un mensaje...",
|
|
515
|
+
send: "Enviar",
|
|
516
|
+
stop: "Detener generación",
|
|
517
|
+
thinking: "Pensando...",
|
|
518
|
+
openChat: "Abrir chat",
|
|
519
|
+
openConversation: "Abrir la conversación",
|
|
520
|
+
collapseConversation: "Minimizar la conversación",
|
|
521
|
+
newMessage: "Nuevo mensaje",
|
|
522
|
+
jumpToLatest: "Ir al último mensaje",
|
|
523
|
+
formSubmitted: "Formulario enviado.",
|
|
524
|
+
sendFailed: "No se pudo enviar el mensaje"
|
|
525
|
+
}
|
|
526
|
+
}, le = {
|
|
527
|
+
form: {
|
|
528
|
+
noTicketForm: "Nessun modulo ticket trovato",
|
|
529
|
+
ticketSubmitted: "Il suo ticket è stato inviato con successo.",
|
|
530
|
+
findTicketHere: "Può trovarlo qui:",
|
|
531
|
+
useFormToCreateTicket: "Può usare il modulo seguente per creare un ticket",
|
|
532
|
+
detailedContext: "Contesto dettagliato",
|
|
533
|
+
submit: "Invia",
|
|
534
|
+
yourEmail: "La sua email",
|
|
535
|
+
emailPlaceholder: "Inserisca il suo indirizzo email",
|
|
536
|
+
emailRequired: "L’email è obbligatoria",
|
|
537
|
+
emailInvalid: "Inserisci un indirizzo email valido",
|
|
538
|
+
subject: "Oggetto",
|
|
539
|
+
subjectRequired: "L’oggetto è obbligatorio.",
|
|
540
|
+
typology: "Tipologia",
|
|
541
|
+
selectTypology: "Seleziona una tipologia",
|
|
542
|
+
typologyRequired: "La tipologia è obbligatoria.",
|
|
543
|
+
question: "Domanda",
|
|
544
|
+
task: "Attività",
|
|
545
|
+
incident: "Incidente",
|
|
546
|
+
priority: "Priorità",
|
|
547
|
+
selectPriority: "Seleziona una priorità",
|
|
548
|
+
priorityRequired: "La priorità è obbligatoria.",
|
|
549
|
+
low: "Bassa",
|
|
550
|
+
normal: "Normale",
|
|
551
|
+
high: "Alta",
|
|
552
|
+
urgent: "Urgente",
|
|
553
|
+
detailedContextRequired: "Il contesto dettagliato è obbligatorio.",
|
|
554
|
+
fieldRequired: "{fieldTitle} è obbligatorio.",
|
|
555
|
+
fieldFormatInvalid: "Il formato di {fieldTitle} non è valido.",
|
|
556
|
+
attachments: "Allegati",
|
|
557
|
+
selectFile: "Seleziona un file",
|
|
558
|
+
fileSize: "{size} KB",
|
|
559
|
+
submissionFailed: "Impossibile inviare il ticket",
|
|
560
|
+
submissionFailedDescription: "Si è verificato un errore durante l’invio del ticket. Riprovi.",
|
|
561
|
+
fileTooLarge: "File troppo grande",
|
|
562
|
+
permissionDenied: "Autorizzazione negata",
|
|
563
|
+
validationFailed: "Errore di convalida",
|
|
564
|
+
pleaseCheckFields: "Controlli i campi del modulo e riprovi.",
|
|
565
|
+
maxCharacters: "Numero massimo di caratteri",
|
|
566
|
+
embeddedFormSubmitted: "Il suo modulo è stato inviato con successo.",
|
|
567
|
+
noEmbedConfigured: "Per questo modulo non è configurato alcun URL o HTML di incorporamento.",
|
|
568
|
+
embedSubmitTimeout: "Non è stato possibile confermare l’invio del modulo. Riprovi.",
|
|
569
|
+
tryAgain: "Riprova",
|
|
570
|
+
loading: "Caricamento...",
|
|
571
|
+
contactFormCreated: "È stato creato un nuovo modulo di contatto, compilalo qui sotto.",
|
|
572
|
+
contactFormRejected: "Non Le è consentito creare un ticket. Qui sotto trova il motivo.",
|
|
573
|
+
formPending: "Compili il modulo qui sopra per continuare la conversazione",
|
|
574
|
+
ticketCreatedBlocked: `È stato creato un ticket per questa conversazione.
|
|
575
|
+
Crei una nuova conversazione per continuare.`,
|
|
576
|
+
newConversation: "Nuova conversazione",
|
|
577
|
+
notAllowed: "Non è autorizzato a creare un ticket.",
|
|
578
|
+
genericFormComingSoon: "Modulo generico (Prossimamente)",
|
|
579
|
+
unknownToolCall: "Tipo di strumento sconosciuto: {type}",
|
|
580
|
+
removeFile: "Rimuovi {filename}"
|
|
581
|
+
},
|
|
582
|
+
widget: {
|
|
583
|
+
home: "Home",
|
|
584
|
+
chats: "Chat",
|
|
585
|
+
history: "Cronologia",
|
|
586
|
+
newConversation: "Nuova conversazione",
|
|
587
|
+
noHistory: "Nessuna conversazione ancora",
|
|
588
|
+
askQuestion: "Faccia una domanda",
|
|
589
|
+
back: "Indietro",
|
|
590
|
+
close: "Chiudi chat",
|
|
591
|
+
newChat: "Nuova chat",
|
|
592
|
+
errorTitle: "Si è verificato un errore",
|
|
593
|
+
errorDescription: "Non è stato possibile generare la risposta. Riprovi.",
|
|
594
|
+
scrollToBottom: "Scorri in fondo",
|
|
595
|
+
dismiss: "Chiudi",
|
|
596
|
+
attachFiles: "Allega file",
|
|
597
|
+
tooManyFiles: "Troppi file. Massimo consentito: {max}",
|
|
598
|
+
invalidFileType: "Tipo di file non valido: {name}",
|
|
599
|
+
fileTooLarge: "File troppo grande: {name} (massimo {max})"
|
|
600
|
+
},
|
|
601
|
+
timeAgo: {
|
|
602
|
+
minutes: "{n} min fa",
|
|
603
|
+
hours: "{n} ore fa",
|
|
604
|
+
days: "{n} giorni fa",
|
|
605
|
+
weeks: "{n} settimane fa",
|
|
606
|
+
months: "{n} mesi fa"
|
|
607
|
+
},
|
|
608
|
+
feedback: {
|
|
609
|
+
helpful: "Utile",
|
|
610
|
+
notHelpful: "Non utile",
|
|
611
|
+
whatWentWrong: "Che cosa non ha funzionato?",
|
|
612
|
+
reasons: {
|
|
613
|
+
inaccurate: "Inesatto",
|
|
614
|
+
incomplete: "Incompleto",
|
|
615
|
+
information_not_found: "Informazione non trovata",
|
|
616
|
+
technical_issue: "Problema tecnico"
|
|
617
|
+
},
|
|
618
|
+
commentPlaceholder: "Altro? (facoltativo)",
|
|
619
|
+
send: "Invia",
|
|
620
|
+
thanks: "Grazie, la segnalazione è stata inviata."
|
|
621
|
+
},
|
|
622
|
+
speech: {
|
|
623
|
+
start: "Detta un messaggio",
|
|
624
|
+
finish: "Termina registrazione",
|
|
625
|
+
cancel: "Annulla dettatura",
|
|
626
|
+
requesting: "In attesa del microfono…",
|
|
627
|
+
recording: "Registrazione…",
|
|
628
|
+
transcribing: "Trascrizione…",
|
|
629
|
+
limitApproaching: "La registrazione terminerà tra 10 secondi.",
|
|
630
|
+
permissionDenied: "Consenta l’accesso al microfono nel browser per dettare un messaggio.",
|
|
631
|
+
recordingFailed: "Impossibile registrare l’audio. Controlli il microfono e riprovi.",
|
|
632
|
+
tooLarge: "La registrazione è troppo grande. Provi un messaggio più breve.",
|
|
633
|
+
noSpeech: "Non è stato registrato alcun audio. Riprovi.",
|
|
634
|
+
transcriptionFailed: "Trascrizione non riuscita. Riprovi."
|
|
635
|
+
},
|
|
636
|
+
common: {
|
|
637
|
+
stopButton: "Interrompi",
|
|
638
|
+
close: "Chiudi",
|
|
639
|
+
attachFile: "Allega file",
|
|
640
|
+
openTitle: "Apri {title}",
|
|
641
|
+
closeTitle: "Chiudi {title}",
|
|
642
|
+
chat: "Chat",
|
|
643
|
+
welcome: "Buongiorno! Come posso aiutarla oggi?",
|
|
644
|
+
prompt: "Buongiorno, come posso aiutarla oggi?",
|
|
645
|
+
placeholder: "Scriva un messaggio...",
|
|
646
|
+
send: "Invia",
|
|
647
|
+
stop: "Interrompi generazione",
|
|
648
|
+
thinking: "Elaborazione...",
|
|
649
|
+
openChat: "Apri chat",
|
|
650
|
+
openConversation: "Apri la conversazione",
|
|
651
|
+
collapseConversation: "Riduci la conversazione",
|
|
652
|
+
newMessage: "Nuovo messaggio",
|
|
653
|
+
jumpToLatest: "Vai all’ultimo messaggio",
|
|
654
|
+
formSubmitted: "Modulo inviato.",
|
|
655
|
+
sendFailed: "Impossibile inviare il messaggio"
|
|
656
|
+
}
|
|
657
|
+
}, ce = {
|
|
658
|
+
form: {
|
|
659
|
+
noTicketForm: "Nenhum formulário de ticket encontrado",
|
|
660
|
+
ticketSubmitted: "Seu ticket foi enviado com sucesso.",
|
|
661
|
+
findTicketHere: "Você pode encontrá-lo aqui:",
|
|
662
|
+
useFormToCreateTicket: "Você pode usar o formulário a seguir para criar um ticket",
|
|
663
|
+
detailedContext: "Contexto detalhado",
|
|
664
|
+
submit: "Enviar",
|
|
665
|
+
yourEmail: "Seu e-mail",
|
|
666
|
+
emailPlaceholder: "Digite seu endereço de e-mail",
|
|
667
|
+
emailRequired: "O e-mail é obrigatório",
|
|
668
|
+
emailInvalid: "Digite um endereço de e-mail válido",
|
|
669
|
+
subject: "Assunto",
|
|
670
|
+
subjectRequired: "O assunto é obrigatório.",
|
|
671
|
+
typology: "Tipologia",
|
|
672
|
+
selectTypology: "Selecione uma tipologia",
|
|
673
|
+
typologyRequired: "A tipologia é obrigatória.",
|
|
674
|
+
question: "Pergunta",
|
|
675
|
+
task: "Tarefa",
|
|
676
|
+
incident: "Incidente",
|
|
677
|
+
priority: "Prioridade",
|
|
678
|
+
selectPriority: "Selecione uma prioridade",
|
|
679
|
+
priorityRequired: "A prioridade é obrigatória.",
|
|
680
|
+
low: "Baixa",
|
|
681
|
+
normal: "Normal",
|
|
682
|
+
high: "Alta",
|
|
683
|
+
urgent: "Urgente",
|
|
684
|
+
detailedContextRequired: "O contexto detalhado é obrigatório.",
|
|
685
|
+
fieldRequired: "{fieldTitle} é obrigatório.",
|
|
686
|
+
fieldFormatInvalid: "O formato de {fieldTitle} é inválido.",
|
|
687
|
+
attachments: "Anexos",
|
|
688
|
+
selectFile: "Selecionar arquivo",
|
|
689
|
+
fileSize: "{size} KB",
|
|
690
|
+
submissionFailed: "Não foi possível enviar o ticket",
|
|
691
|
+
submissionFailedDescription: "Ocorreu um erro ao enviar seu ticket. Tente novamente.",
|
|
692
|
+
fileTooLarge: "Arquivo muito grande",
|
|
693
|
+
permissionDenied: "Permissão negada",
|
|
694
|
+
validationFailed: "Erro de validação",
|
|
695
|
+
pleaseCheckFields: "Verifique os campos do formulário e tente novamente.",
|
|
696
|
+
maxCharacters: "Máximo de caracteres",
|
|
697
|
+
embeddedFormSubmitted: "Seu formulário foi enviado com sucesso.",
|
|
698
|
+
noEmbedConfigured: "Nenhuma URL ou HTML de incorporação está configurado para este formulário.",
|
|
699
|
+
embedSubmitTimeout: "Não foi possível confirmar o envio do formulário. Tente novamente.",
|
|
700
|
+
tryAgain: "Tentar novamente",
|
|
701
|
+
loading: "Carregando...",
|
|
702
|
+
contactFormCreated: "Foi criado um novo formulário de contato, preencha-o abaixo.",
|
|
703
|
+
contactFormRejected: "Você não pode criar um ticket. Veja abaixo o motivo.",
|
|
704
|
+
formPending: "Preencha o formulário acima para continuar a conversa",
|
|
705
|
+
ticketCreatedBlocked: `Foi criado um ticket para esta conversa.
|
|
706
|
+
Crie uma nova conversa para continuar.`,
|
|
707
|
+
newConversation: "Nova conversa",
|
|
708
|
+
notAllowed: "Você não tem permissão para criar um ticket.",
|
|
709
|
+
genericFormComingSoon: "Formulário genérico (Em breve)",
|
|
710
|
+
unknownToolCall: "Tipo de ferramenta desconhecido: {type}",
|
|
711
|
+
removeFile: "Remover {filename}"
|
|
712
|
+
},
|
|
713
|
+
widget: {
|
|
714
|
+
home: "Início",
|
|
715
|
+
chats: "Conversas",
|
|
716
|
+
history: "Histórico",
|
|
717
|
+
newConversation: "Nova conversa",
|
|
718
|
+
noHistory: "Nenhuma conversa ainda",
|
|
719
|
+
askQuestion: "Faça uma pergunta",
|
|
720
|
+
back: "Voltar",
|
|
721
|
+
close: "Fechar conversa",
|
|
722
|
+
newChat: "Nova conversa",
|
|
723
|
+
errorTitle: "Ocorreu um erro",
|
|
724
|
+
errorDescription: "Não foi possível gerar a resposta. Tente novamente.",
|
|
725
|
+
scrollToBottom: "Ir para o final",
|
|
726
|
+
dismiss: "Dispensar",
|
|
727
|
+
attachFiles: "Anexar arquivos",
|
|
728
|
+
tooManyFiles: "Muitos arquivos. Máximo permitido: {max}",
|
|
729
|
+
invalidFileType: "Tipo de arquivo inválido: {name}",
|
|
730
|
+
fileTooLarge: "Arquivo muito grande: {name} (máximo {max})"
|
|
731
|
+
},
|
|
732
|
+
timeAgo: {
|
|
733
|
+
minutes: "Há {n} min",
|
|
734
|
+
hours: "Há {n} h",
|
|
735
|
+
days: "Há {n} dias",
|
|
736
|
+
weeks: "Há {n} semanas",
|
|
737
|
+
months: "Há {n} meses"
|
|
738
|
+
},
|
|
739
|
+
feedback: {
|
|
740
|
+
helpful: "Útil",
|
|
741
|
+
notHelpful: "Não foi útil",
|
|
742
|
+
whatWentWrong: "O que deu errado?",
|
|
743
|
+
reasons: {
|
|
744
|
+
inaccurate: "Incorreto",
|
|
745
|
+
incomplete: "Incompleto",
|
|
746
|
+
information_not_found: "Informação não encontrada",
|
|
747
|
+
technical_issue: "Problema técnico"
|
|
748
|
+
},
|
|
749
|
+
commentPlaceholder: "Algo mais? (opcional)",
|
|
750
|
+
send: "Enviar",
|
|
751
|
+
thanks: "Obrigado, seu comentário foi enviado."
|
|
752
|
+
},
|
|
753
|
+
speech: {
|
|
754
|
+
start: "Ditar uma mensagem",
|
|
755
|
+
finish: "Finalizar gravação",
|
|
756
|
+
cancel: "Cancelar ditado",
|
|
757
|
+
requesting: "Aguardando o microfone…",
|
|
758
|
+
recording: "Gravando…",
|
|
759
|
+
transcribing: "Transcrevendo…",
|
|
760
|
+
limitApproaching: "A gravação terminará em 10 segundos.",
|
|
761
|
+
permissionDenied: "Permita o acesso ao microfone no navegador para ditar uma mensagem.",
|
|
762
|
+
recordingFailed: "Não foi possível gravar o áudio. Verifique o microfone e tente novamente.",
|
|
763
|
+
tooLarge: "A gravação é muito grande. Tente uma mensagem mais curta.",
|
|
764
|
+
noSpeech: "Nenhum áudio foi gravado. Tente novamente.",
|
|
765
|
+
transcriptionFailed: "A transcrição falhou. Tente novamente."
|
|
766
|
+
},
|
|
767
|
+
common: {
|
|
768
|
+
stopButton: "Parar",
|
|
769
|
+
close: "Fechar",
|
|
770
|
+
attachFile: "Anexar arquivo",
|
|
771
|
+
openTitle: "Abrir {title}",
|
|
772
|
+
closeTitle: "Fechar {title}",
|
|
773
|
+
chat: "Conversa",
|
|
774
|
+
welcome: "Olá! Como posso ajudar você hoje?",
|
|
775
|
+
prompt: "Olá, como posso ajudar você hoje?",
|
|
776
|
+
placeholder: "Digite uma mensagem...",
|
|
777
|
+
send: "Enviar",
|
|
778
|
+
stop: "Parar geração",
|
|
779
|
+
thinking: "Pensando...",
|
|
780
|
+
openChat: "Abrir conversa",
|
|
781
|
+
openConversation: "Abrir a conversa",
|
|
782
|
+
collapseConversation: "Minimizar a conversa",
|
|
783
|
+
newMessage: "Nova mensagem",
|
|
784
|
+
jumpToLatest: "Ir para a última mensagem",
|
|
785
|
+
formSubmitted: "Formulário enviado.",
|
|
786
|
+
sendFailed: "Falha ao enviar a mensagem"
|
|
787
|
+
}
|
|
788
|
+
}, ue = {
|
|
789
|
+
en: Q,
|
|
790
|
+
fr: re,
|
|
791
|
+
de: ae,
|
|
792
|
+
es: se,
|
|
793
|
+
it: le,
|
|
794
|
+
pt: ce
|
|
795
|
+
};
|
|
796
|
+
function Le(e) {
|
|
797
|
+
return ue[ne(e)];
|
|
798
|
+
}
|
|
799
|
+
function U(e, t) {
|
|
800
|
+
return {
|
|
801
|
+
...e,
|
|
802
|
+
...Object.fromEntries(Object.entries(t ?? {}).filter(([, o]) => o !== void 0))
|
|
803
|
+
};
|
|
804
|
+
}
|
|
805
|
+
var P = /* @__PURE__ */ new WeakMap(), de = [
|
|
806
|
+
"position",
|
|
807
|
+
"top",
|
|
808
|
+
"left",
|
|
809
|
+
"right",
|
|
810
|
+
"width"
|
|
811
|
+
];
|
|
812
|
+
function V(e, t) {
|
|
813
|
+
return t.map((o) => ({
|
|
814
|
+
style: e,
|
|
815
|
+
prop: o,
|
|
816
|
+
value: e.getPropertyValue(o),
|
|
817
|
+
priority: e.getPropertyPriority(o)
|
|
818
|
+
}));
|
|
819
|
+
}
|
|
820
|
+
function me(e) {
|
|
821
|
+
for (const { style: t, prop: o, value: i, priority: n } of e) i ? t.setProperty(o, i, n) : t.removeProperty(o);
|
|
822
|
+
}
|
|
823
|
+
function Be(e, t = document) {
|
|
824
|
+
const o = P.get(t);
|
|
825
|
+
if (o) {
|
|
826
|
+
o.owners.add(e);
|
|
827
|
+
return;
|
|
828
|
+
}
|
|
829
|
+
const i = t.body, n = t.documentElement, s = t.defaultView?.scrollY ?? 0;
|
|
830
|
+
P.set(t, {
|
|
831
|
+
owners: /* @__PURE__ */ new Set([e]),
|
|
832
|
+
saved: [...V(i.style, de), ...V(n.style, ["overflow"])],
|
|
833
|
+
scrollY: s
|
|
834
|
+
}), i.style.position = "fixed", i.style.top = `-${s}px`, i.style.left = "0", i.style.right = "0", i.style.width = "100%", n.style.overflow = "hidden";
|
|
835
|
+
}
|
|
836
|
+
function He(e, t = document) {
|
|
837
|
+
const o = P.get(t);
|
|
838
|
+
!o || !o.owners.delete(e) || o.owners.size > 0 || (P.delete(t), me(o.saved), t.defaultView?.scrollTo(0, o.scrollY));
|
|
839
|
+
}
|
|
840
|
+
function ze(e, t) {
|
|
841
|
+
const o = e.replace("#", ""), i = Number.parseInt(o.substring(0, 2), 16), n = Number.parseInt(o.substring(2, 4), 16), s = Number.parseInt(o.substring(4, 6), 16), r = (d) => Math.min(255, Math.round(d + (255 - d) * (t / 100))), l = (d) => d.toString(16).padStart(2, "0");
|
|
842
|
+
return `#${l(r(i))}${l(r(n))}${l(r(s))}`;
|
|
843
|
+
}
|
|
844
|
+
function Pe(e) {
|
|
845
|
+
return /^#?[0-9A-F]{6}$/i.test(e);
|
|
846
|
+
}
|
|
847
|
+
function ge(e, t, o) {
|
|
848
|
+
const i = (1 - Math.abs(2 * o - 1)) * t, n = (e % 360 + 360) % 360 / 60, s = n | 0, r = i * (1 - Math.abs(n % 2 - 1)), [l, d, f] = [
|
|
849
|
+
[
|
|
850
|
+
i,
|
|
851
|
+
r,
|
|
852
|
+
0
|
|
853
|
+
],
|
|
854
|
+
[
|
|
855
|
+
r,
|
|
856
|
+
i,
|
|
857
|
+
0
|
|
858
|
+
],
|
|
859
|
+
[
|
|
860
|
+
0,
|
|
861
|
+
i,
|
|
862
|
+
r
|
|
863
|
+
],
|
|
864
|
+
[
|
|
865
|
+
0,
|
|
866
|
+
r,
|
|
867
|
+
i
|
|
868
|
+
],
|
|
869
|
+
[
|
|
870
|
+
r,
|
|
871
|
+
0,
|
|
872
|
+
i
|
|
873
|
+
],
|
|
874
|
+
[
|
|
875
|
+
i,
|
|
876
|
+
0,
|
|
877
|
+
r
|
|
878
|
+
]
|
|
879
|
+
][s], b = o - i / 2;
|
|
880
|
+
return [
|
|
881
|
+
Math.round((l + b) * 255),
|
|
882
|
+
Math.round((d + b) * 255),
|
|
883
|
+
Math.round((f + b) * 255)
|
|
884
|
+
];
|
|
885
|
+
}
|
|
886
|
+
function fe(e) {
|
|
887
|
+
const t = e.trim(), o = /^hsla?\(\s*([\d.-]+)(?:deg)?[\s,]+([\d.]+)%[\s,]+([\d.]+)%/i.exec(t);
|
|
888
|
+
if (o) {
|
|
889
|
+
const [r, l, d] = o.slice(1, 4).map(Number);
|
|
890
|
+
return [
|
|
891
|
+
r,
|
|
892
|
+
l,
|
|
893
|
+
d
|
|
894
|
+
].some(Number.isNaN) ? null : ge(r, Math.min(l, 100) / 100, Math.min(d, 100) / 100);
|
|
895
|
+
}
|
|
896
|
+
const i = /^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)/i.exec(t);
|
|
897
|
+
if (i) {
|
|
898
|
+
const r = i.slice(1, 4).map(Number);
|
|
899
|
+
return r.some((l) => Number.isNaN(l) || l < 0 || l > 255) ? null : r;
|
|
900
|
+
}
|
|
901
|
+
const n = t.replace("#", ""), s = n.length === 3 ? n.split("").map((r) => r + r).join("") : n;
|
|
902
|
+
return /^[0-9a-f]{6}$/i.test(s) ? [
|
|
903
|
+
Number.parseInt(s.substring(0, 2), 16),
|
|
904
|
+
Number.parseInt(s.substring(2, 4), 16),
|
|
905
|
+
Number.parseInt(s.substring(4, 6), 16)
|
|
906
|
+
] : null;
|
|
907
|
+
}
|
|
908
|
+
function Z(e) {
|
|
909
|
+
const t = fe(e);
|
|
910
|
+
if (!t) return null;
|
|
911
|
+
const [o, i, n] = t.map((s) => {
|
|
912
|
+
const r = s / 255;
|
|
913
|
+
return r <= 0.03928 ? r / 12.92 : ((r + 0.055) / 1.055) ** 2.4;
|
|
914
|
+
});
|
|
915
|
+
return 0.2126 * o + 0.7152 * i + 0.0722 * n;
|
|
916
|
+
}
|
|
917
|
+
function he(e, t) {
|
|
918
|
+
const o = Z(e), i = Z(t);
|
|
919
|
+
return o === null || i === null ? null : (Math.max(o, i) + 0.05) / (Math.min(o, i) + 0.05);
|
|
920
|
+
}
|
|
921
|
+
var pe = /(?:repeating-)?(?:linear|radial|conic)-gradient\(/i;
|
|
922
|
+
function ve(e) {
|
|
923
|
+
return !!e && pe.test(e);
|
|
924
|
+
}
|
|
925
|
+
function be(e) {
|
|
926
|
+
return e.match(/#[0-9a-f]{3,8}|(?:rgba?|hsla?)\([^()]*\)|\btransparent\b/gi) ?? [];
|
|
927
|
+
}
|
|
928
|
+
function ye(e) {
|
|
929
|
+
const t = e.trim().toLowerCase();
|
|
930
|
+
if (t === "transparent") return !0;
|
|
931
|
+
const o = /\/\s*([\d.]+)%?\s*\)$/.exec(t);
|
|
932
|
+
if (o) return Number.parseFloat(o[1]) === 0;
|
|
933
|
+
const i = /^(?:rgba|hsla)\([^)]*,\s*([\d.]+)%?\s*\)$/.exec(t);
|
|
934
|
+
if (i) return Number.parseFloat(i[1]) === 0;
|
|
935
|
+
if (!t.startsWith("#")) return !1;
|
|
936
|
+
const n = t.slice(1);
|
|
937
|
+
return /^[0-9a-f]+$/.test(n) ? n.length === 8 ? n.slice(6) === "00" : n.length === 4 ? n[3] === "0" : !1 : !1;
|
|
938
|
+
}
|
|
939
|
+
var z = "#FFFFFF", Te = "#000000", Ce = "#FFFFFF";
|
|
940
|
+
function ke(e) {
|
|
941
|
+
if (!e) return z;
|
|
942
|
+
const t = ve(e) ? be(e) : [e], o = (t.some(ye) ? [...t, Ce] : t).map((i) => he(i, z)).filter((i) => i !== null);
|
|
943
|
+
return o.length && Math.min(...o) < 3 ? Te : z;
|
|
944
|
+
}
|
|
945
|
+
var Fe = '"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', W = `var(--ago-font, ${Fe})`, K = {
|
|
946
|
+
font: "--ago-font",
|
|
947
|
+
radius: "--ago-radius",
|
|
948
|
+
messageRadius: "--ago-message-radius",
|
|
949
|
+
brand: "--ago-brand-color",
|
|
950
|
+
brandText: "--ago-brand-text-color",
|
|
951
|
+
headerBg: "--ago-header-background",
|
|
952
|
+
headerText: "--ago-header-text-color",
|
|
953
|
+
panelBg: "--ago-panel-background",
|
|
954
|
+
messagesBg: "--ago-messages-background",
|
|
955
|
+
text: "--ago-text-color",
|
|
956
|
+
mutedText: "--ago-muted-text-color",
|
|
957
|
+
border: "--ago-border-color",
|
|
958
|
+
accent: "--ago-accent-color",
|
|
959
|
+
agentBubbleBg: "--ago-agent-bubble-background",
|
|
960
|
+
agentBubbleText: "--ago-agent-bubble-text-color",
|
|
961
|
+
userBubbleBg: "--ago-user-bubble-background",
|
|
962
|
+
userBubbleText: "--ago-user-bubble-text-color",
|
|
963
|
+
launcherBg: "--ago-launcher-background",
|
|
964
|
+
launcherText: "--ago-launcher-text-color",
|
|
965
|
+
sendBg: "--ago-send-button-background",
|
|
966
|
+
panelWidth: "--ago-panel-width"
|
|
967
|
+
}, Ae = "var(--ago-brand-color, #03182f)", _e = "var(--ago-brand-text-color, #fff)", Oe = "var(--ago-header-background, var(--ago-brand-color, #03182f))", je = "var(--ago-header-text-color, #e8f0fe)", Ue = "var(--ago-panel-background, #fff)", Ve = "var(--ago-messages-background, #fbfbfb)", Ze = "var(--ago-text-color, #30373e)", J = "var(--ago-muted-text-color, #6b6d6f)", We = "var(--ago-border-color, #dee3e8)", Ke = "var(--ago-accent-color, #1b5fc4)", Ge = "var(--ago-agent-bubble-background, #f1f3f5)", G = "var(--ago-radius, 16px)", $e = "var(--ago-message-radius, 16px)", Ye = "var(--ago-message-radius, 20px)", Xe = "var(--ago-launcher-background, #007bff)", Qe = "var(--ago-launcher-text-color, #fff)", Je = "var(--ago-send-button-background, var(--ago-brand-color, #03182f))", et = "var(--ago-user-bubble-background, #fff)", tt = "var(--ago-user-bubble-text-color, #0a0a0a)", ot = "var(--ago-agent-bubble-text-color, var(--ago-text-color, #30373e))", it = "var(--ago-panel-background, #f8faff)", nt = "var(--ago-accent-color, #003edf)", rt = "#e3edff", at = "#e5e5e5", st = "var(--ago-border-color, #e4e4e7)", lt = "var(--ago-muted-text-color, #71717a)", ct = "var(--ago-panel-width, 550px)", ut = "0 1px 2px 0 rgba(0,0,0,0.05)", dt = "0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1)", mt = "0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)", gt = "rgba(15, 15, 15, 0.16) 0px 5px 40px 0px";
|
|
968
|
+
function ft(e, t) {
|
|
969
|
+
if (t)
|
|
970
|
+
for (const o of Object.keys(K)) {
|
|
971
|
+
const i = t[o];
|
|
972
|
+
i != null && e.style.setProperty(K[o], i);
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
function ht(e) {
|
|
976
|
+
if (!e) return {};
|
|
977
|
+
const t = {};
|
|
978
|
+
return e.button && (t.launcherBg = e.button, t.sendBg = e.button), e.header && (t.headerBg = e.header, t.headerText = ke(e.header)), e.agentMessage && (t.agentBubbleBg = e.agentMessage), e.agentMessageFont && (t.agentBubbleText = e.agentMessageFont), e.background && (t.panelBg = e.background, t.messagesBg = e.background), e.font && (t.text = e.font), e.userMessage && (t.userBubbleBg = e.userMessage), e.userMessageFont && (t.userBubbleText = e.userMessageFont), t;
|
|
979
|
+
}
|
|
980
|
+
function L(e, t) {
|
|
981
|
+
Object.assign(e.style, t);
|
|
982
|
+
}
|
|
983
|
+
function $(e = {}) {
|
|
984
|
+
const t = document.createElement("div");
|
|
985
|
+
return L(t, e), t;
|
|
986
|
+
}
|
|
987
|
+
var Y = "ago-chat-widget-keyframes";
|
|
988
|
+
function pt() {
|
|
989
|
+
if (typeof document > "u" || document.getElementById(Y)) return;
|
|
990
|
+
const e = document.createElement("style");
|
|
991
|
+
e.id = Y, e.textContent = "@keyframes ago-pulse { 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); } 40% { opacity: 1; transform: scale(1); } }@keyframes ago-spin { to { transform: rotate(360deg); } }@keyframes ago-scale-in { 50% { transform: translateX(-10px) translateY(-5px) scale(1.1); } }@keyframes ago-appear { 0%, 98% { opacity: 0; } 100% { opacity: 1; } }@keyframes ago-skeleton-pulse { 50% { opacity: 0.5; } }.ago-chat-input--embed textarea::placeholder { font-style: italic; color: #9ca3af; opacity: 1; }", document.head.appendChild(e);
|
|
992
|
+
}
|
|
993
|
+
var Se = "2147483000";
|
|
994
|
+
function we(e, t = "0px") {
|
|
995
|
+
return e === void 0 ? t : typeof e == "number" ? `${e}px` : e;
|
|
996
|
+
}
|
|
997
|
+
function xe(e) {
|
|
998
|
+
return `(max-width: ${e}px), (max-height: 500px) and (orientation: landscape)`;
|
|
999
|
+
}
|
|
1000
|
+
function vt(e = {}) {
|
|
1001
|
+
const t = e.breakpoint ?? 768, o = e.peekHeight ?? 152, i = we(e.bottomOffset), n = e.initialState ?? "peek", s = /* @__PURE__ */ new Set();
|
|
1002
|
+
let r = n, l = !1;
|
|
1003
|
+
const d = typeof window < "u" && typeof window.matchMedia == "function" ? window.matchMedia(xe(t)) : void 0;
|
|
1004
|
+
let f = c();
|
|
1005
|
+
const b = F(!1, n);
|
|
1006
|
+
function k(u, T) {
|
|
1007
|
+
if (!u) return {
|
|
1008
|
+
style: {},
|
|
1009
|
+
attrs: {
|
|
1010
|
+
role: null,
|
|
1011
|
+
"aria-modal": null,
|
|
1012
|
+
"aria-label": null
|
|
1013
|
+
}
|
|
1014
|
+
};
|
|
1015
|
+
const D = {
|
|
1016
|
+
position: "fixed",
|
|
1017
|
+
left: "0",
|
|
1018
|
+
right: "0",
|
|
1019
|
+
bottom: i,
|
|
1020
|
+
zIndex: Se,
|
|
1021
|
+
display: "flex",
|
|
1022
|
+
flexDirection: "column",
|
|
1023
|
+
borderRadius: T === "full" ? "0" : `${G} ${G} 0 0`,
|
|
1024
|
+
paddingBottom: "env(safe-area-inset-bottom)"
|
|
1025
|
+
};
|
|
1026
|
+
return T === "full" ? {
|
|
1027
|
+
style: {
|
|
1028
|
+
...D,
|
|
1029
|
+
top: "0",
|
|
1030
|
+
height: "auto",
|
|
1031
|
+
paddingTop: "env(safe-area-inset-top)"
|
|
1032
|
+
},
|
|
1033
|
+
attrs: {
|
|
1034
|
+
role: "dialog",
|
|
1035
|
+
"aria-modal": "true",
|
|
1036
|
+
tabindex: "-1"
|
|
1037
|
+
}
|
|
1038
|
+
} : {
|
|
1039
|
+
style: {
|
|
1040
|
+
...D,
|
|
1041
|
+
top: "auto",
|
|
1042
|
+
minHeight: `calc(${o}px + env(safe-area-inset-bottom))`,
|
|
1043
|
+
height: "auto"
|
|
1044
|
+
},
|
|
1045
|
+
attrs: {
|
|
1046
|
+
role: null,
|
|
1047
|
+
"aria-modal": null,
|
|
1048
|
+
tabindex: "-1"
|
|
1049
|
+
}
|
|
1050
|
+
};
|
|
1051
|
+
}
|
|
1052
|
+
function F(u, T) {
|
|
1053
|
+
return {
|
|
1054
|
+
compact: u,
|
|
1055
|
+
state: T,
|
|
1056
|
+
isModal: u && T === "full",
|
|
1057
|
+
surface: k(u, T)
|
|
1058
|
+
};
|
|
1059
|
+
}
|
|
1060
|
+
function c() {
|
|
1061
|
+
return F(!!d?.matches, r);
|
|
1062
|
+
}
|
|
1063
|
+
function m() {
|
|
1064
|
+
f = c();
|
|
1065
|
+
for (const u of s) u();
|
|
1066
|
+
}
|
|
1067
|
+
function v(u, T) {
|
|
1068
|
+
l || r === u || (r = u, m(), e.onStateChange?.(u, T));
|
|
1069
|
+
}
|
|
1070
|
+
function h() {
|
|
1071
|
+
if (!l) {
|
|
1072
|
+
if (!d?.matches && r !== n) {
|
|
1073
|
+
r = n, m(), e.onStateChange?.(n, "breakpoint");
|
|
1074
|
+
return;
|
|
1075
|
+
}
|
|
1076
|
+
m();
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
let y = !1;
|
|
1080
|
+
function A() {
|
|
1081
|
+
y || !d || (d.addEventListener("change", h), y = !0, f = c());
|
|
1082
|
+
}
|
|
1083
|
+
function S() {
|
|
1084
|
+
!y || !d || (d.removeEventListener("change", h), y = !1);
|
|
1085
|
+
}
|
|
1086
|
+
return {
|
|
1087
|
+
subscribe(u) {
|
|
1088
|
+
return s.add(u), s.size === 1 && A(), () => {
|
|
1089
|
+
s.delete(u), s.size === 0 && S();
|
|
1090
|
+
};
|
|
1091
|
+
},
|
|
1092
|
+
getSnapshot: () => f,
|
|
1093
|
+
getServerSnapshot: () => b,
|
|
1094
|
+
expand: (u = "api") => v("full", u),
|
|
1095
|
+
collapse: (u = "api") => v("peek", u),
|
|
1096
|
+
toggle: (u = "api") => v(r === "full" ? "peek" : "full", u),
|
|
1097
|
+
destroy() {
|
|
1098
|
+
l || (l = !0, S(), s.clear());
|
|
1099
|
+
}
|
|
1100
|
+
};
|
|
1101
|
+
}
|
|
1102
|
+
var B = "http://www.w3.org/2000/svg";
|
|
1103
|
+
function Ee(e = {}) {
|
|
1104
|
+
return N(["M9 5a3 3 0 0 1 6 0v7a3 3 0 0 1-6 0Z", "M5 10v2a7 7 0 0 0 14 0v-2M12 19v3M8 22h8"], e);
|
|
1105
|
+
}
|
|
1106
|
+
function Me(e = {}) {
|
|
1107
|
+
return N(["M5 12l4 4L19 6"], e);
|
|
1108
|
+
}
|
|
1109
|
+
function Re(e = {}) {
|
|
1110
|
+
return N(["M21 12a9 9 0 1 1-6.219-8.56"], e);
|
|
1111
|
+
}
|
|
1112
|
+
function H(e, t, o) {
|
|
1113
|
+
const i = document.createElementNS(B, "svg");
|
|
1114
|
+
return i.setAttribute("xmlns", B), i.setAttribute("viewBox", e), i.setAttribute("width", String(t)), i.setAttribute("height", String(t)), i.setAttribute("aria-hidden", "true"), i.setAttribute("focusable", "false"), i.style.flexShrink = "0", i.style.display = "block", o && i.setAttribute("class", o), i;
|
|
1115
|
+
}
|
|
1116
|
+
function q(e, t) {
|
|
1117
|
+
const o = document.createElementNS(B, "path");
|
|
1118
|
+
return o.setAttribute("d", e), o.setAttribute("fill", "currentColor"), t && o.setAttribute("data-ago-path", t), o;
|
|
1119
|
+
}
|
|
1120
|
+
function C(e, t = {}) {
|
|
1121
|
+
const o = H("0 -960 960 960", t.size ?? 24, t.className);
|
|
1122
|
+
return o.appendChild(q(e)), o;
|
|
1123
|
+
}
|
|
1124
|
+
function N(e, t = {}) {
|
|
1125
|
+
const o = H("0 0 24 24", t.size ?? 24, t.className);
|
|
1126
|
+
o.setAttribute("fill", "none"), o.setAttribute("stroke", "currentColor"), o.setAttribute("stroke-width", String(t.strokeWidth ?? 2)), o.setAttribute("stroke-linecap", "round"), o.setAttribute("stroke-linejoin", "round");
|
|
1127
|
+
for (const i of e) {
|
|
1128
|
+
const n = document.createElementNS(B, "path");
|
|
1129
|
+
n.setAttribute("d", i), o.appendChild(n);
|
|
1130
|
+
}
|
|
1131
|
+
return o;
|
|
1132
|
+
}
|
|
1133
|
+
var Ne = "M240-400h480v-80H240v80Zm0-120h480v-80H240v80Zm0-120h480v-80H240v80ZM880-80 720-240H160q-33 0-56.5-23.5T80-320v-480q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v720ZM160-320h594l46 45v-525H160v480Zm0 0v-480 480Z", ee = "M480-344 240-584l56-56 184 184 184-184 56 56-240 240Z";
|
|
1134
|
+
function bt() {
|
|
1135
|
+
const e = H("0 -960 960 960", 48);
|
|
1136
|
+
return e.appendChild(q(Ne, "open")), e.appendChild(q(ee, "close")), e;
|
|
1137
|
+
}
|
|
1138
|
+
function yt() {
|
|
1139
|
+
const e = H("0 -960 960 960", 48);
|
|
1140
|
+
return e.appendChild(q(ee, "close")), e;
|
|
1141
|
+
}
|
|
1142
|
+
function Tt(e) {
|
|
1143
|
+
return C("M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z", e);
|
|
1144
|
+
}
|
|
1145
|
+
function Ct(e) {
|
|
1146
|
+
return C("M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z", e);
|
|
1147
|
+
}
|
|
1148
|
+
function Ie(e) {
|
|
1149
|
+
return C("m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z", e);
|
|
1150
|
+
}
|
|
1151
|
+
function kt(e) {
|
|
1152
|
+
return C("M440-400h80v-120h120v-80H520v-120h-80v120H320v80h120v120ZM80-80v-720q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H240L80-80Zm126-240h594v-480H160v525l46-45Zm-46 0v-480 480Z", e);
|
|
1153
|
+
}
|
|
1154
|
+
function Ft(e) {
|
|
1155
|
+
return C("M440-160v-487L216-423l-56-57 320-320 320 320-56 57-224-224v487h-80Z", e);
|
|
1156
|
+
}
|
|
1157
|
+
function At(e) {
|
|
1158
|
+
return C("M440-800v487L216-537l-56 57 320 320 320-320-56-57-224 224v-487h-80Z", e);
|
|
1159
|
+
}
|
|
1160
|
+
function St(e) {
|
|
1161
|
+
return C("M240-240v-480h480v480H240Z", e);
|
|
1162
|
+
}
|
|
1163
|
+
function wt(e) {
|
|
1164
|
+
return C("M720-120H280v-520l280-280 50 50q7 7 11.5 19t4.5 23v14l-44 174h258q32 0 56 24t24 56v80q0 7-2 15t-4 15L794-168q-9 20-30 34t-44 14Zm-360-80h360l120-280v-80H480l54-220-174 174v406Zm0-406v406-406Zm-80-34v80H160v360h120v80H80v-520h200Z", e);
|
|
1165
|
+
}
|
|
1166
|
+
function xt(e) {
|
|
1167
|
+
return C("M240-840h440v520L400-40l-50-50q-7-7-11.5-19t-4.5-23v-14l44-174H120q-32 0-56-24t-24-56v-80q0-7 2-15t4-15l120-282q9-20 30-34t44-14Zm360 80H240L120-480v80h360l-54 220 174-174v-406Zm0 406v-406 406Zm80 34v-80h120v-360H680v-80h200v520H680Z", e);
|
|
1168
|
+
}
|
|
1169
|
+
function Et(e) {
|
|
1170
|
+
return C("M320-240h320v-80H320v80Zm0-160h320v-80H320v80ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z", e);
|
|
1171
|
+
}
|
|
1172
|
+
function Mt(e) {
|
|
1173
|
+
return C("M480-320 280-520l56-58 104 104v-326h80v326l104-104 56 58-200 200ZM240-160q-33 0-56.5-23.5T160-240v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-160H240Z", e);
|
|
1174
|
+
}
|
|
1175
|
+
function Rt(e) {
|
|
1176
|
+
return C("M720-330q0 104-73 177T470-80q-104 0-177-73t-73-177v-370q0-75 52.5-127.5T400-880q75 0 127.5 52.5T580-700v350q0 46-32 78t-78 32q-46 0-78-32t-32-78v-370h80v370q0 13 8.5 21.5T470-320q13 0 21.5-8.5T500-350v-350q-1-42-29.5-71T400-800q-42 0-71 29t-29 71v370q-1 71 49 120.5T470-160q70 0 119-49.5T640-330v-390h80v390Z", e);
|
|
1177
|
+
}
|
|
1178
|
+
function Nt(e) {
|
|
1179
|
+
return N(["M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", "M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"], {
|
|
1180
|
+
...e,
|
|
1181
|
+
strokeWidth: 1.5
|
|
1182
|
+
});
|
|
1183
|
+
}
|
|
1184
|
+
function It(e) {
|
|
1185
|
+
return N(["M7 7h10v10", "M7 17 17 7"], e);
|
|
1186
|
+
}
|
|
1187
|
+
function qt(e) {
|
|
1188
|
+
const t = N(["M12 8v4", "M12 16h.01"], e), o = document.createElementNS(B, "circle");
|
|
1189
|
+
return o.setAttribute("cx", "12"), o.setAttribute("cy", "12"), o.setAttribute("r", "10"), t.insertBefore(o, t.firstChild), t;
|
|
1190
|
+
}
|
|
1191
|
+
function Dt(e) {
|
|
1192
|
+
return N(["M12 3v3m6.366-.366-2.12 2.12M21 12h-3m.366 6.366-2.12-2.12M12 21v-3m-6.366.366 2.12-2.12M3 12h3m-.366-6.366 2.12 2.12"], {
|
|
1193
|
+
size: 20,
|
|
1194
|
+
...e,
|
|
1195
|
+
strokeWidth: 1.5
|
|
1196
|
+
});
|
|
1197
|
+
}
|
|
1198
|
+
function Lt(e) {
|
|
1199
|
+
const t = H("0 0 24 24", e?.size ?? 24, e?.className);
|
|
1200
|
+
return t.setAttribute("fill", "none"), t.appendChild(q("M21.5166 5.68457C21.5166 5.43995 21.4185 5.20337 21.2402 5.02734C21.0616 4.85106 20.8173 4.75009 20.5605 4.75H6.90723C6.65037 4.75 6.40524 4.85098 6.22656 5.02734C6.04838 5.20336 5.9502 5.44001 5.9502 5.68457V19.0518L7.58691 17.4365C8.04823 16.9811 8.67203 16.7267 9.32031 16.7266H20.5605C20.8173 16.7265 21.0616 16.6255 21.2402 16.4492C21.4185 16.2732 21.5166 16.0366 21.5166 15.792V5.68457ZM23.0166 15.792C23.0166 16.4408 22.7556 17.0608 22.2939 17.5166C21.8326 17.972 21.2088 18.2265 20.5605 18.2266H9.32031C9.09545 18.2266 8.87996 18.3038 8.70996 18.4414L8.64062 18.5039L6.76172 20.3584C6.57148 20.5461 6.32948 20.6733 6.06836 20.7246C5.80739 20.7758 5.53645 20.7492 5.29004 20.6484C5.0436 20.5476 4.83171 20.3759 4.68164 20.1543C4.53151 19.9325 4.45027 19.671 4.4502 19.4023V5.68457C4.4502 5.03587 4.71129 4.41572 5.17285 3.95996C5.63429 3.50449 6.25881 3.25 6.90723 3.25H20.5605C21.2088 3.25009 21.8326 3.50457 22.2939 3.95996C22.7556 4.41574 23.0166 5.0358 23.0166 5.68457V15.792Z")), t.appendChild(q("M1.25 7.81793C1.25 7.16923 1.5111 6.54909 1.97266 6.09332C2.4341 5.63785 3.05861 5.38336 3.70703 5.38336C4.12108 5.38356 4.45703 5.71927 4.45703 6.13336C4.45703 6.54745 4.12108 6.88316 3.70703 6.88336C3.45018 6.88336 3.20505 6.98434 3.02637 7.16071C2.84819 7.33672 2.75 7.57337 2.75 7.81793V19.1304C3.02293 19.0188 3.34839 19.0755 3.56836 19.2984C3.85897 19.5932 3.85612 20.0681 3.56152 20.3589C3.37129 20.5467 3.12929 20.6729 2.86816 20.7242C2.60717 20.7754 2.33628 20.7497 2.08984 20.649C1.84341 20.5482 1.63154 20.3764 1.48145 20.1548C1.33122 19.933 1.25004 19.6707 1.25 19.4019V7.81793Z")), t;
|
|
1201
|
+
}
|
|
1202
|
+
function qe() {
|
|
1203
|
+
const e = document.createElement("canvas");
|
|
1204
|
+
e.className = "ago-chat-input__waveform", e.setAttribute("aria-hidden", "true"), L(e, {
|
|
1205
|
+
width: "100%",
|
|
1206
|
+
height: "40px",
|
|
1207
|
+
display: "block",
|
|
1208
|
+
color: J
|
|
1209
|
+
});
|
|
1210
|
+
let t, o, i, n, s, r = null, l = [], d = 0;
|
|
1211
|
+
function f() {
|
|
1212
|
+
if (!r) return;
|
|
1213
|
+
r.clearRect(0, 0, d, 40), r.fillStyle = getComputedStyle(e).color;
|
|
1214
|
+
const c = Math.min(300, Math.floor(d / 4));
|
|
1215
|
+
for (let m = 0; m < c; m++) {
|
|
1216
|
+
const v = l[l.length - c + m] ?? 0, h = 2 + v * 30;
|
|
1217
|
+
r.globalAlpha = v > 0.02 ? 0.85 : 0.3, r.fillRect(m * 4, (40 - h) / 2, 2, h);
|
|
1218
|
+
}
|
|
1219
|
+
}
|
|
1220
|
+
function b() {
|
|
1221
|
+
d = e.clientWidth;
|
|
1222
|
+
const c = window.devicePixelRatio || 1;
|
|
1223
|
+
e.width = Math.round(d * c), e.height = 40 * c, r?.setTransform(c, 0, 0, c, 0, 0), f();
|
|
1224
|
+
}
|
|
1225
|
+
function k() {
|
|
1226
|
+
n !== void 0 && cancelAnimationFrame(n), n = void 0, s?.disconnect(), s = void 0, o?.disconnect(), o = void 0, i?.disconnect(), i = void 0, t && t.state !== "closed" && t.close().catch(() => {
|
|
1227
|
+
}), t = void 0;
|
|
1228
|
+
}
|
|
1229
|
+
function F(c) {
|
|
1230
|
+
if (k(), l = [], !(typeof AudioContext > "u"))
|
|
1231
|
+
try {
|
|
1232
|
+
if (r = e.getContext("2d"), !r || (b(), typeof ResizeObserver < "u" && (s = new ResizeObserver(b), s.observe(e)), window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)) return;
|
|
1233
|
+
t = new AudioContext(), o = t.createMediaStreamSource(c), i = t.createAnalyser(), i.fftSize = 256, o.connect(i), t.state === "suspended" && t.resume().catch(() => {
|
|
1234
|
+
});
|
|
1235
|
+
const m = new Uint8Array(i.fftSize);
|
|
1236
|
+
let v = 0;
|
|
1237
|
+
const h = (y) => {
|
|
1238
|
+
if (i) {
|
|
1239
|
+
if (y - v >= 50) {
|
|
1240
|
+
v = y, i.getByteTimeDomainData(m);
|
|
1241
|
+
let A = 0;
|
|
1242
|
+
for (const S of m) A += ((S - 128) / 128) ** 2;
|
|
1243
|
+
l.push(Math.min(1, Math.sqrt(A / m.length) * 4)), l.length > 300 && l.shift(), f();
|
|
1244
|
+
}
|
|
1245
|
+
n = requestAnimationFrame(h);
|
|
1246
|
+
}
|
|
1247
|
+
};
|
|
1248
|
+
n = requestAnimationFrame(h);
|
|
1249
|
+
} catch {
|
|
1250
|
+
k();
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
return {
|
|
1254
|
+
canvas: e,
|
|
1255
|
+
start: F,
|
|
1256
|
+
stop: k,
|
|
1257
|
+
reset() {
|
|
1258
|
+
k(), l = [], f();
|
|
1259
|
+
}
|
|
1260
|
+
};
|
|
1261
|
+
}
|
|
1262
|
+
var X = Q.speech;
|
|
1263
|
+
function Bt(e) {
|
|
1264
|
+
let t = U(X, e.labels), o;
|
|
1265
|
+
const i = $({
|
|
1266
|
+
display: "none",
|
|
1267
|
+
alignItems: "center",
|
|
1268
|
+
minWidth: "0",
|
|
1269
|
+
gap: "4px",
|
|
1270
|
+
flex: "1"
|
|
1271
|
+
});
|
|
1272
|
+
i.className = "ago-chat-input__speech";
|
|
1273
|
+
const n = document.createElement("button");
|
|
1274
|
+
n.type = "button", n.className = "ago-chat-input__microphone";
|
|
1275
|
+
const s = document.createElement("button");
|
|
1276
|
+
s.type = "button", s.append(Ie({ size: 18 }));
|
|
1277
|
+
for (const a of [n, s]) L(a, {
|
|
1278
|
+
width: "44px",
|
|
1279
|
+
height: "44px",
|
|
1280
|
+
border: "none",
|
|
1281
|
+
borderRadius: "50%",
|
|
1282
|
+
background: "transparent",
|
|
1283
|
+
color: Ae,
|
|
1284
|
+
cursor: "pointer",
|
|
1285
|
+
display: "flex",
|
|
1286
|
+
alignItems: "center",
|
|
1287
|
+
justifyContent: "center",
|
|
1288
|
+
flexShrink: "0"
|
|
1289
|
+
});
|
|
1290
|
+
const r = document.createElement("span");
|
|
1291
|
+
r.setAttribute("role", "status"), L(r, {
|
|
1292
|
+
position: "absolute",
|
|
1293
|
+
width: "1px",
|
|
1294
|
+
height: "1px",
|
|
1295
|
+
overflow: "hidden",
|
|
1296
|
+
clipPath: "inset(50%)",
|
|
1297
|
+
fontFamily: W
|
|
1298
|
+
});
|
|
1299
|
+
const l = qe(), d = $({
|
|
1300
|
+
flex: "1",
|
|
1301
|
+
minWidth: "0",
|
|
1302
|
+
padding: "0 8px"
|
|
1303
|
+
});
|
|
1304
|
+
d.append(l.canvas);
|
|
1305
|
+
const f = document.createElement("span");
|
|
1306
|
+
f.setAttribute("aria-hidden", "true"), L(f, {
|
|
1307
|
+
fontFamily: W,
|
|
1308
|
+
fontSize: "12px",
|
|
1309
|
+
color: J,
|
|
1310
|
+
fontVariantNumeric: "tabular-nums"
|
|
1311
|
+
}), i.append(d, f, r, s, n);
|
|
1312
|
+
let b = !1, k = !1, F = !1, c = "idle", m = 0, v, h, y, A, S, u = 0, T;
|
|
1313
|
+
function D() {
|
|
1314
|
+
return typeof MediaRecorder < "u" && !!navigator.mediaDevices?.getUserMedia;
|
|
1315
|
+
}
|
|
1316
|
+
function E() {
|
|
1317
|
+
T?.cancel(), T = void 0, i.style.display = b && D() ? "flex" : "none", n.disabled = k || c === "requesting" || c === "transcribing", n.style.opacity = n.disabled ? "0.5" : "1";
|
|
1318
|
+
const a = c === "recording", g = c !== "idle";
|
|
1319
|
+
i.style.flex = g ? "1" : "0 0 auto";
|
|
1320
|
+
const x = a ? t.finish : c === "requesting" ? t.requesting : c === "transcribing" ? t.transcribing : t.start;
|
|
1321
|
+
n.setAttribute("aria-label", x), n.title = x;
|
|
1322
|
+
const p = a ? Me({ size: 20 }) : g ? Re({ size: 20 }) : Ee({ size: 20 });
|
|
1323
|
+
g && !a && !window.matchMedia?.("(prefers-reduced-motion: reduce)").matches && (T = p.animate?.([{ transform: "rotate(0deg)" }, { transform: "rotate(360deg)" }], {
|
|
1324
|
+
duration: 800,
|
|
1325
|
+
iterations: 1 / 0
|
|
1326
|
+
})), n.replaceChildren(p), s.setAttribute("aria-label", t.cancel), s.title = t.cancel, s.style.display = c === "idle" ? "none" : "flex", d.style.display = g ? "block" : "none", f.style.display = a ? "inline" : "none", f.textContent = `${Math.floor(u / 60)}:${String(u % 60).padStart(2, "0")}`, r.textContent = a ? t.recording : c === "transcribing" ? t.transcribing : c === "requesting" ? t.requesting : "";
|
|
1327
|
+
}
|
|
1328
|
+
function _() {
|
|
1329
|
+
l.stop(), v?.getTracks().forEach((a) => a.stop()), v = void 0, A && clearTimeout(A), A = void 0, S && clearInterval(S), S = void 0;
|
|
1330
|
+
}
|
|
1331
|
+
function w() {
|
|
1332
|
+
m++, y?.abort(), y = void 0;
|
|
1333
|
+
const a = h;
|
|
1334
|
+
h = void 0, a && a.state !== "inactive" && a.stop(), _(), l.reset(), u = 0, c = "idle", e.onBusy(!1), E();
|
|
1335
|
+
}
|
|
1336
|
+
function I(a, g) {
|
|
1337
|
+
w(), o = g ? void 0 : a, e.onError(g || t[a]);
|
|
1338
|
+
}
|
|
1339
|
+
async function te() {
|
|
1340
|
+
if (!b || k || F || c !== "idle" || !D()) return;
|
|
1341
|
+
o = void 0;
|
|
1342
|
+
const a = ++m;
|
|
1343
|
+
c = "requesting", e.onBusy(!0), E(), s.focus();
|
|
1344
|
+
try {
|
|
1345
|
+
const g = await navigator.mediaDevices.getUserMedia({ audio: !0 });
|
|
1346
|
+
if (a !== m || F) {
|
|
1347
|
+
g.getTracks().forEach((R) => R.stop());
|
|
1348
|
+
return;
|
|
1349
|
+
}
|
|
1350
|
+
v = g;
|
|
1351
|
+
const x = [
|
|
1352
|
+
"audio/webm;codecs=opus",
|
|
1353
|
+
"audio/mp4",
|
|
1354
|
+
"audio/ogg;codecs=opus"
|
|
1355
|
+
].find((R) => MediaRecorder.isTypeSupported(R)), p = new MediaRecorder(g, x ? { mimeType: x } : void 0);
|
|
1356
|
+
h = p;
|
|
1357
|
+
const M = [];
|
|
1358
|
+
let j = 0;
|
|
1359
|
+
p.ondataavailable = (R) => {
|
|
1360
|
+
if (!(a !== m || !R.data.size)) {
|
|
1361
|
+
if (j += R.data.size, j > 25e6) {
|
|
1362
|
+
I("tooLarge");
|
|
1363
|
+
return;
|
|
1364
|
+
}
|
|
1365
|
+
M.push(R.data);
|
|
1366
|
+
}
|
|
1367
|
+
}, p.onerror = () => {
|
|
1368
|
+
a === m && I("recordingFailed");
|
|
1369
|
+
}, p.onstop = () => {
|
|
1370
|
+
a === m && (_(), h = void 0, oe(M, p.mimeType || x || "", a));
|
|
1371
|
+
}, p.start(1e3), c = "recording", E(), l.start(g), n.focus();
|
|
1372
|
+
const ie = Date.now();
|
|
1373
|
+
S = setInterval(() => {
|
|
1374
|
+
u = Math.floor((Date.now() - ie) / 1e3), f.textContent = `${Math.floor(u / 60)}:${String(u % 60).padStart(2, "0")}`, u === 110 && (r.textContent = t.limitApproaching);
|
|
1375
|
+
}, 1e3), A = setTimeout(() => {
|
|
1376
|
+
p.state === "recording" && p.stop();
|
|
1377
|
+
}, 12e4);
|
|
1378
|
+
} catch (g) {
|
|
1379
|
+
if (a !== m) return;
|
|
1380
|
+
I(typeof g == "object" && g !== null && "name" in g && g.name === "NotAllowedError" ? "permissionDenied" : "recordingFailed");
|
|
1381
|
+
}
|
|
1382
|
+
}
|
|
1383
|
+
async function oe(a, g, x) {
|
|
1384
|
+
const p = g.includes("mp4") ? "mp4" : g.includes("webm") ? "webm" : g.includes("ogg") ? "ogg" : void 0;
|
|
1385
|
+
if (!p || a.length === 0) {
|
|
1386
|
+
I("noSpeech");
|
|
1387
|
+
return;
|
|
1388
|
+
}
|
|
1389
|
+
c = "transcribing", E(), s.focus(), y = new AbortController();
|
|
1390
|
+
try {
|
|
1391
|
+
const { text: M } = await e.transcribe(new File(a, `recording.${p}`, { type: g }), { signal: y.signal });
|
|
1392
|
+
if (x !== m || F) return;
|
|
1393
|
+
M.trim() ? (w(), e.onText(M.trim())) : I("noSpeech");
|
|
1394
|
+
} catch (M) {
|
|
1395
|
+
if (x !== m || F) return;
|
|
1396
|
+
I("transcriptionFailed", M instanceof Error ? M.message : void 0);
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
n.addEventListener("click", () => {
|
|
1400
|
+
c === "recording" ? h?.state === "recording" && h.stop() : te();
|
|
1401
|
+
}), s.addEventListener("click", w), i.addEventListener("keydown", (a) => {
|
|
1402
|
+
a.key === "Escape" && c !== "idle" && (a.preventDefault(), a.stopPropagation(), w());
|
|
1403
|
+
});
|
|
1404
|
+
const O = () => {
|
|
1405
|
+
document.hidden && w();
|
|
1406
|
+
};
|
|
1407
|
+
return document.addEventListener("visibilitychange", O), E(), {
|
|
1408
|
+
el: i,
|
|
1409
|
+
cancel: w,
|
|
1410
|
+
clearError() {
|
|
1411
|
+
o = void 0;
|
|
1412
|
+
},
|
|
1413
|
+
setLabels(a) {
|
|
1414
|
+
t = U(X, a), o && e.onError(t[o]), E();
|
|
1415
|
+
},
|
|
1416
|
+
setEnabled(a) {
|
|
1417
|
+
b = a, a || w(), E();
|
|
1418
|
+
},
|
|
1419
|
+
setDisabled(a) {
|
|
1420
|
+
k = a, a && w(), E();
|
|
1421
|
+
},
|
|
1422
|
+
destroy() {
|
|
1423
|
+
F = !0, w(), document.removeEventListener("visibilitychange", O);
|
|
1424
|
+
}
|
|
1425
|
+
};
|
|
1426
|
+
}
|
|
1427
|
+
export {
|
|
1428
|
+
Ze as $,
|
|
1429
|
+
it as A,
|
|
1430
|
+
Ye as B,
|
|
1431
|
+
vt as C,
|
|
1432
|
+
We as D,
|
|
1433
|
+
ot as E,
|
|
1434
|
+
je as F,
|
|
1435
|
+
ct as G,
|
|
1436
|
+
at as H,
|
|
1437
|
+
Xe as I,
|
|
1438
|
+
G as J,
|
|
1439
|
+
nt as K,
|
|
1440
|
+
Qe as L,
|
|
1441
|
+
lt as M,
|
|
1442
|
+
W as N,
|
|
1443
|
+
Ae as O,
|
|
1444
|
+
Oe as P,
|
|
1445
|
+
ut as Q,
|
|
1446
|
+
Ve as R,
|
|
1447
|
+
xe as S,
|
|
1448
|
+
Ge as T,
|
|
1449
|
+
Ue as U,
|
|
1450
|
+
J as V,
|
|
1451
|
+
gt as W,
|
|
1452
|
+
dt as X,
|
|
1453
|
+
Je as Y,
|
|
1454
|
+
mt as Z,
|
|
1455
|
+
bt as _,
|
|
1456
|
+
At as a,
|
|
1457
|
+
$ as at,
|
|
1458
|
+
xt as b,
|
|
1459
|
+
Rt as c,
|
|
1460
|
+
ze as ct,
|
|
1461
|
+
Ie as d,
|
|
1462
|
+
He as dt,
|
|
1463
|
+
et,
|
|
1464
|
+
Lt as f,
|
|
1465
|
+
Le as ft,
|
|
1466
|
+
yt as g,
|
|
1467
|
+
Nt as h,
|
|
1468
|
+
qt as i,
|
|
1469
|
+
L as it,
|
|
1470
|
+
st as j,
|
|
1471
|
+
_e as k,
|
|
1472
|
+
Tt as l,
|
|
1473
|
+
ke as lt,
|
|
1474
|
+
Mt as m,
|
|
1475
|
+
Q as mt,
|
|
1476
|
+
Bt as n,
|
|
1477
|
+
ft as nt,
|
|
1478
|
+
It as o,
|
|
1479
|
+
pt as ot,
|
|
1480
|
+
Et as p,
|
|
1481
|
+
U as pt,
|
|
1482
|
+
rt as q,
|
|
1483
|
+
kt as r,
|
|
1484
|
+
ht as rt,
|
|
1485
|
+
Ft as s,
|
|
1486
|
+
Pe as st,
|
|
1487
|
+
X as t,
|
|
1488
|
+
tt,
|
|
1489
|
+
Ct as u,
|
|
1490
|
+
Be as ut,
|
|
1491
|
+
Dt as v,
|
|
1492
|
+
Ke as w,
|
|
1493
|
+
wt as x,
|
|
1494
|
+
St as y,
|
|
1495
|
+
$e as z
|
|
1496
|
+
};
|