@chat21/chat21-web-widget 5.1.34 → 5.2.1

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.
Files changed (191) hide show
  1. package/.angular-mcp-cache/package.json +1 -0
  2. package/.cursor/angular18-accessibility-auditor-skill.md +442 -0
  3. package/.cursor/mcp.json +15 -0
  4. package/.github/workflows/playwright.yml +27 -0
  5. package/CHANGELOG.md +25 -0
  6. package/Dockerfile +4 -5
  7. package/README.md +1 -1
  8. package/angular.json +21 -3
  9. package/docs/ACCESSIBILITY-STATEMENT.md +388 -0
  10. package/docs/TILEDESK_WIDGET_ACCESSIBILITY_ALIGNMENT.md +60 -0
  11. package/docs/TILEDESK_WIDGET_ACCESSIBILITY_STATEMENT_COMPLETE.md +386 -0
  12. package/env.sample +3 -2
  13. package/mocks/voice-websocket-mock/server.cjs +245 -0
  14. package/package.json +10 -3
  15. package/playwright.config.ts +41 -0
  16. package/src/app/app.component.html +2 -2
  17. package/src/app/app.component.scss +25 -14
  18. package/src/app/app.component.spec.ts +21 -6
  19. package/src/app/app.module.ts +13 -0
  20. package/src/app/component/conversation-detail/conversation/conversation.component.html +25 -11
  21. package/src/app/component/conversation-detail/conversation/conversation.component.scss +38 -0
  22. package/src/app/component/conversation-detail/conversation/conversation.component.spec.ts +644 -75
  23. package/src/app/component/conversation-detail/conversation/conversation.component.ts +70 -2
  24. package/src/app/component/conversation-detail/conversation-audio-recorder/conversation-audio-recorder.component.html +25 -13
  25. package/src/app/component/conversation-detail/conversation-audio-recorder/conversation-audio-recorder.component.spec.ts +123 -5
  26. package/src/app/component/conversation-detail/conversation-audio-recorder/conversation-audio-recorder.component.ts +1 -0
  27. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.html +23 -10
  28. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.scss +18 -0
  29. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.spec.ts +241 -149
  30. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.ts +8 -5
  31. package/src/app/component/conversation-detail/conversation-emojii/conversation-emojii.component.spec.ts +53 -3
  32. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.html +203 -110
  33. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.scss +212 -1
  34. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.spec.ts +458 -78
  35. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.ts +288 -76
  36. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.html +113 -53
  37. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.scss +12 -4
  38. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.spec.ts +274 -29
  39. package/src/app/component/conversation-detail/conversation-internal-frame/conversation-internal-frame.component.html +23 -9
  40. package/src/app/component/conversation-detail/conversation-internal-frame/conversation-internal-frame.component.spec.ts +80 -8
  41. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.html +29 -23
  42. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.spec.ts +185 -16
  43. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.ts +34 -14
  44. package/src/app/component/conversation-detail/stream-audio-spectrum/stream-audio-spectrum.component.html +46 -0
  45. package/src/app/component/conversation-detail/stream-audio-spectrum/stream-audio-spectrum.component.scss +83 -0
  46. package/src/app/component/conversation-detail/stream-audio-spectrum/stream-audio-spectrum.component.ts +192 -0
  47. package/src/app/component/error-alert/error-alert.component.spec.ts +65 -5
  48. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.html +16 -7
  49. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.scss +21 -0
  50. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.spec.ts +89 -7
  51. package/src/app/component/form/form-builder/form-builder.component.html +1 -1
  52. package/src/app/component/form/form-builder/form-builder.component.spec.ts +163 -21
  53. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.html +8 -4
  54. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.scss +10 -5
  55. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.spec.ts +90 -16
  56. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.ts +26 -0
  57. package/src/app/component/form/inputs/form-label/form-label.component.spec.ts +45 -11
  58. package/src/app/component/form/inputs/form-radio-button/form-radio-button.component.spec.ts +24 -6
  59. package/src/app/component/form/inputs/form-select/form-select.component.spec.ts +14 -5
  60. package/src/app/component/form/inputs/form-text/form-text.component.html +14 -12
  61. package/src/app/component/form/inputs/form-text/form-text.component.scss +11 -1
  62. package/src/app/component/form/inputs/form-text/form-text.component.spec.ts +113 -17
  63. package/src/app/component/form/inputs/form-text/form-text.component.ts +35 -3
  64. package/src/app/component/form/inputs/form-textarea/form-textarea.component.html +13 -11
  65. package/src/app/component/form/inputs/form-textarea/form-textarea.component.scss +6 -5
  66. package/src/app/component/form/inputs/form-textarea/form-textarea.component.spec.ts +149 -13
  67. package/src/app/component/form/inputs/form-textarea/form-textarea.component.ts +26 -0
  68. package/src/app/component/form/prechat-form/prechat-form.component.html +14 -11
  69. package/src/app/component/form/prechat-form/prechat-form.component.spec.ts +102 -10
  70. package/src/app/component/form/prechat-form/prechat-form.component.ts +8 -1
  71. package/src/app/component/form/prechat-form-test-mock.ts +35 -0
  72. package/src/app/component/home/home.component.html +38 -31
  73. package/src/app/component/home/home.component.scss +4 -2
  74. package/src/app/component/home/home.component.spec.ts +226 -11
  75. package/src/app/component/home-conversations/home-conversations.component.html +30 -26
  76. package/src/app/component/home-conversations/home-conversations.component.scss +3 -0
  77. package/src/app/component/home-conversations/home-conversations.component.spec.ts +212 -36
  78. package/src/app/component/last-message/last-message.component.html +15 -9
  79. package/src/app/component/last-message/last-message.component.scss +16 -2
  80. package/src/app/component/last-message/last-message.component.spec.ts +204 -23
  81. package/src/app/component/launcher-button/launcher-button.component.html +8 -13
  82. package/src/app/component/launcher-button/launcher-button.component.spec.ts +104 -8
  83. package/src/app/component/list-all-conversations/list-all-conversations.component.html +12 -17
  84. package/src/app/component/list-all-conversations/list-all-conversations.component.scss +2 -0
  85. package/src/app/component/list-conversations/list-conversations.component.html +22 -22
  86. package/src/app/component/menu-options/menu-options.component.html +30 -20
  87. package/src/app/component/menu-options/menu-options.component.spec.ts +125 -9
  88. package/src/app/component/message/audio/audio.component.html +13 -15
  89. package/src/app/component/message/audio/audio.component.spec.ts +140 -5
  90. package/src/app/component/message/audio/audio.component.ts +1 -5
  91. package/src/app/component/message/audio-sync/audio-sync.component.html +18 -0
  92. package/src/app/component/message/audio-sync/audio-sync.component.scss +65 -0
  93. package/src/app/component/message/audio-sync/audio-sync.component.spec.ts +112 -0
  94. package/src/app/component/message/audio-sync/audio-sync.component.ts +714 -0
  95. package/src/app/component/message/avatar/avatar.component.html +2 -2
  96. package/src/app/component/message/avatar/avatar.component.spec.ts +99 -7
  97. package/src/app/component/message/bubble-message/bubble-message.component.html +41 -51
  98. package/src/app/component/message/bubble-message/bubble-message.component.scss +54 -1
  99. package/src/app/component/message/bubble-message/bubble-message.component.spec.ts +147 -57
  100. package/src/app/component/message/bubble-message/bubble-message.component.ts +95 -13
  101. package/src/app/component/message/buttons/action-button/action-button.component.html +3 -4
  102. package/src/app/component/message/buttons/action-button/action-button.component.spec.ts +49 -5
  103. package/src/app/component/message/buttons/link-button/link-button.component.scss +5 -8
  104. package/src/app/component/message/buttons/link-button/link-button.component.spec.ts +50 -5
  105. package/src/app/component/message/buttons/text-button/text-button.component.spec.ts +44 -5
  106. package/src/app/component/message/carousel/carousel.component.html +29 -16
  107. package/src/app/component/message/carousel/carousel.component.scss +20 -8
  108. package/src/app/component/message/carousel/carousel.component.spec.ts +80 -3
  109. package/src/app/component/message/carousel/carousel.component.ts +16 -0
  110. package/src/app/component/message/frame/frame.component.html +9 -4
  111. package/src/app/component/message/frame/frame.component.spec.ts +34 -15
  112. package/src/app/component/message/frame/frame.component.ts +7 -2
  113. package/src/app/component/message/html/html.component.html +1 -1
  114. package/src/app/component/message/html/html.component.scss +1 -1
  115. package/src/app/component/message/html/html.component.spec.ts +24 -7
  116. package/src/app/component/message/image/image.component.html +12 -10
  117. package/src/app/component/message/image/image.component.scss +16 -0
  118. package/src/app/component/message/image/image.component.spec.ts +101 -15
  119. package/src/app/component/message/image/image.component.ts +90 -51
  120. package/src/app/component/message/info-message/info-message.component.spec.ts +26 -14
  121. package/src/app/component/message/json-sources/json-sources.component.html +6 -5
  122. package/src/app/component/message/json-sources/json-sources.component.scss +26 -18
  123. package/src/app/component/message/json-sources/json-sources.component.ts +41 -0
  124. package/src/app/component/message/like-unlike/like-unlike.component.html +7 -9
  125. package/src/app/component/message/like-unlike/like-unlike.component.spec.ts +31 -3
  126. package/src/app/component/message/return-receipt/return-receipt.component.spec.ts +38 -17
  127. package/src/app/component/message/text/text.component.html +3 -3
  128. package/src/app/component/message/text/text.component.scss +80 -86
  129. package/src/app/component/message/text/text.component.spec.ts +106 -13
  130. package/src/app/component/message-attachment/message-attachment.component.spec.ts +134 -13
  131. package/src/app/component/selection-department/selection-department.component.html +21 -23
  132. package/src/app/component/selection-department/selection-department.component.spec.ts +159 -14
  133. package/src/app/component/selection-department/selection-department.component.ts +8 -1
  134. package/src/app/component/send-button/send-button.component.html +5 -13
  135. package/src/app/component/send-button/send-button.component.spec.ts +2 -2
  136. package/src/app/component/star-rating-widget/star-rating-widget.component.html +51 -81
  137. package/src/app/directives/tooltip.directive.spec.ts +8 -4
  138. package/src/app/modals/confirm-close/confirm-close.component.html +20 -8
  139. package/src/app/modals/confirm-close/confirm-close.component.scss +3 -0
  140. package/src/app/modals/confirm-close/confirm-close.component.spec.ts +13 -4
  141. package/src/app/modals/confirm-close/confirm-close.component.ts +8 -1
  142. package/src/app/pipe/html-entites-encode.pipe.spec.ts +35 -2
  143. package/src/app/pipe/marked.pipe.spec.ts +38 -2
  144. package/src/app/pipe/marked.pipe.ts +51 -41
  145. package/src/app/providers/app-config.service.ts +4 -2
  146. package/src/app/providers/brand.service.spec.ts +23 -2
  147. package/src/app/providers/brand.service.ts +1 -1
  148. package/src/app/providers/global-settings.service.spec.ts +1009 -14
  149. package/src/app/providers/global-settings.service.ts +40 -2
  150. package/src/app/providers/json-sources-parser.service.ts +13 -1
  151. package/src/app/providers/translator.service.ts +24 -7
  152. package/src/app/providers/tts-audio-playback-coordinator.service.spec.ts +116 -0
  153. package/src/app/providers/tts-audio-playback-coordinator.service.ts +122 -0
  154. package/src/app/providers/voice/STT&TTS/openai-voice.config.ts +12 -0
  155. package/src/app/providers/voice/STT&TTS/openai-voice.provider.ts +156 -0
  156. package/src/app/providers/voice/STT&TTS/speech-provider.abstract.ts +39 -0
  157. package/src/app/providers/voice/audio.types.ts +40 -0
  158. package/src/app/providers/voice/vad.service.spec.ts +28 -0
  159. package/src/app/providers/voice/vad.service.ts +70 -0
  160. package/src/app/providers/voice/voice-streaming.service.spec.ts +23 -0
  161. package/src/app/providers/voice/voice-streaming.service.ts +702 -0
  162. package/src/app/providers/voice/voice-streaming.types.ts +112 -0
  163. package/src/app/providers/voice/voice.service.spec.ts +227 -0
  164. package/src/app/providers/voice/voice.service.ts +969 -0
  165. package/src/app/sass/_variables.scss +2 -0
  166. package/src/app/sass/animations.scss +19 -1
  167. package/src/app/shims/onnxruntime-web-wasm.ts +4 -0
  168. package/src/app/utils/globals.ts +14 -0
  169. package/src/app/utils/utils-resources.ts +1 -1
  170. package/src/assets/i18n/en.json +128 -100
  171. package/src/assets/i18n/es.json +128 -100
  172. package/src/assets/i18n/fr.json +128 -100
  173. package/src/assets/i18n/it.json +128 -98
  174. package/src/assets/onnx/ort-wasm-simd-threaded.mjs +59 -0
  175. package/src/assets/onnx/ort-wasm-simd-threaded.wasm +0 -0
  176. package/src/assets/sounds/keyboard.mp3 +0 -0
  177. package/src/assets/vad/silero_vad_legacy.onnx +0 -0
  178. package/src/assets/vad/vad.worklet.bundle.min.js +1 -0
  179. package/src/chat21-core/models/message.ts +2 -1
  180. package/src/chat21-core/providers/chat-manager.spec.ts +72 -0
  181. package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +3 -2
  182. package/src/chat21-core/providers/firebase/firebase-init-service.ts +5 -5
  183. package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +12 -0
  184. package/src/chat21-core/providers/scripts/script.service.spec.ts +12 -2
  185. package/src/chat21-core/utils/utils-message.ts +7 -0
  186. package/src/widget-config-template.json +3 -1
  187. package/src/widget-config.json +28 -27
  188. package/tests/widget-form-rich.spec.ts +67 -0
  189. package/tests/widget-index-dev-settings.spec.ts +52 -0
  190. package/tests/widget-twp-iframe.spec.ts +39 -0
  191. package/tsconfig.json +5 -0
@@ -1,101 +1,129 @@
1
1
  {
2
- "LABEL_PLACEHOLDER": "Écrivez votre question ...",
3
- "LABEL_START_NW_CONV": "Nouvelle conversation",
4
- "LABEL_WHATSAPP": "Contactez-nous",
5
- "LABEL_SELECT_TOPIC": "Sélectionnez un sujet",
6
- "LABEL_COMPLETE_FORM": "Remplissez le formulaire pour démarrer une conversation avec le prochain agent disponible.",
7
- "LABEL_FIELD_NAME": "Prenom",
8
- "LABEL_ERROR_FIELD_NAME": "Nom demandé (minimum 2 caractères).",
9
- "LABEL_FIELD_EMAIL": "Email",
10
- "LABEL_ERROR_FIELD_EMAIL": "Entrer une adresse email valide.",
11
- "LABEL_ERROR_FIELD_REQUIRED": "Champ obligatoire",
12
- "LABEL_WRITING": "écrit ...",
13
- "LABEL_SEND_NEW_MESSAGE": "Envoyez un nouveau message",
14
- "AGENT_NOT_AVAILABLE": " Hors ligne",
15
- "AGENT_AVAILABLE": " En ligne",
16
- "GUEST_LABEL": "Hôte",
17
- "ALL_AGENTS_OFFLINE_LABEL": "Tous les opérateurs sont actuellement hors ligne",
18
- "LABEL_LOADING": "Chargement en cours ...",
19
- "LABEL_THINKING": "en train de reflechir",
20
- "CALLOUT_TITLE_PLACEHOLDER": "🖐 Besoin d'aide?",
21
- "CALLOUT_MSG_PLACEHOLDER": "Cliquez ici et commencez à discuter avec nous!",
22
- "CUSTOMER_SATISFACTION": "Évaluation des services",
23
- "YOUR_OPINION_ON_OUR_CUSTOMER_SERVICE": "votre avis sur notre service client",
24
- "DOWNLOAD_TRANSCRIPT": "Télécharger la transcription",
25
- "BACK": "En arrière",
26
- "CONTINUE": "Continue",
27
- "YOUR_RATING": "votre vote",
28
- "WRITE_YOUR_OPINION": "Écrivez votre opinion ... (facultatif)",
29
- "SUBMIT": "Soumettre",
30
- "THANK_YOU_FOR_YOUR_EVALUATION": "Merci pour votre évaluation",
31
- "YOUR_RATING_HAS_BEEN_RECEIVED": "votre vote a été reçu",
32
- "ALERT_LEAVE_CHAT": "Voulez-vous quitter la conversation?",
33
- "YES": "Oui",
34
- "NO": "Non",
35
- "BUTTON_CLOSE_TO_ICON": "Minimisez la discussion",
36
- "BUTTON_EDIT_PROFILE": "Modifier le profil",
37
- "RATE_CHAT": "évaluer la conversation",
38
- "WELCOME_TITLE": "Salut, bienvenue à Tiledesk 👋",
39
- "WELCOME_MSG": "Comment pouvons-nous vous aider?",
40
- "WELCOME": "Bienvenue",
41
- "OPTIONS": "options",
42
- "SOUND_OFF": "Sound off",
43
- "SOUND_ON": "Sound on",
44
- "LOGOUT": "Connectez-out",
45
- "CLOSE": "Fermer",
46
- "RESTART":"Redémarrer",
47
- "PREV_CONVERSATIONS": "Vos conversations",
48
- "YOU": "Tu",
49
- "SHOW_ALL_CONV": "voir tout",
50
- "START_A_CONVERSATION": "Démarrer une conversation",
51
- "NO_CONVERSATION": "Aucune conversation active",
52
- "SEE_PREVIOUS": "voir les conversations précédentes",
53
- "WAITING_TIME_FOUND": "L'équipe répond généralement en $reply_time",
54
- "WAITING_TIME_NOT_FOUND": "Nous vous répondrons dans les plus brefs délais",
55
- "CLOSED": "Fermé",
56
- "CLOSE_CHAT": "Fermer la discussion",
57
- "MINIMIZE":"Réduire la fenêtre",
58
- "MAXIMIZE":"Agrandir la fenêtre",
59
- "CENTER":"Centrer",
60
- "CONFIRM_CLOSE_CHAT":"Etes-vous sûr de vouloir fermer cette discussion?",
61
-
62
- "INFO_SUPPORT_USER_ADDED_SUBJECT":"tu",
63
- "INFO_SUPPORT_USER_ADDED_YOU_VERB":"ont été ajoutés à ",
64
- "INFO_SUPPORT_USER_ADDED_COMPLEMENT":"rejointe",
65
- "INFO_SUPPORT_USER_ADDED_VERB":"la discussion",
66
- "INFO_SUPPORT_CHAT_REOPENED":"Discussion rouvert",
67
- "INFO_SUPPORT_CHAT_CLOSED":"Discussion fermé",
68
- "INFO_SUPPORT_LEAD_UPDATED":"Prospect mis à jour",
69
- "INFO_SUPPORT_MEMBER_LEFT_GROUP":"supprimé du groupe",
70
- "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"a quitté la conversation",
71
- "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "Une nouvelle demande de support vous a été attribuée",
72
-
73
- "LABEL_PRECHAT_USER_FULLNAME": "Nom complet",
74
- "LABEL_PRECHAT_USER_EMAIL": "E-mail",
75
- "LABEL_PRECHAT_USER_EMAIL_ERROR": "Adresse e-mail invalide",
76
- "LABEL_PRECHAT_USER_PHONE": "Téléphone",
77
- "LABEL_PRECHAT_USER_PHONE_ERROR": "Le téléphone est requis",
78
- "LABEL_PRECHAT_FIRST_MESSAGE": "Votre message pour l'équipe d'assistance",
79
- "LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Avant de poursuivre la conversation, veuillez accepter nos <a href='https://tiledesk.com/termsofservice/' target='_blank'>Conditions</a> et <a href='https:/ /tiledesk.com/privacy.html' target='_blank'>Politique de confidentialité</a>",
80
- "LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Je suis d'accord",
81
- "PRECHAT_REQUIRED_ERROR": "Ce champ est obligatoire",
82
-
83
- "TICKET_TAKING":"La demande a été reçue et le personnel d'assistance la traite.\nPour ajouter d'autres commentaires, répondez à cet e-mail.",
84
-
85
- "LABEL_TODAY": "aujourd'hui",
86
- "LABEL_TOMORROW": "hier",
87
- "LABEL_LAST_ACCESS": "dernier accès",
88
- "LABEL_TO": "à",
89
- "ARRAY_DAYS": ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"],
90
-
91
- "SENT_AN_ATTACHMENT": "envoyé une pièce jointe",
92
- "SENT_AN_IMAGE": "envoyé une image",
93
-
94
- "LABEL_PREVIEW": "Aperçu",
95
- "SWITCH_TO":"Ou passer à:",
96
- "CONNECTION_NETWORK_ERROR": "Nos excuses. Il y a eu des problèmes de connexion au réseau",
97
- "EMOJI_NOT_ELLOWED":"Emoji non autorisé",
98
- "DOMAIN_NOT_ALLOWED":"L'URL contient un domaine non autorisé",
99
- "MAX_ATTACHMENT": "Taille maximale autorisée {{FILE_SIZE_LIMIT}}Mo",
100
- "EMOJI": "Emoji"
101
- }
2
+ "LABEL_PLACEHOLDER": "Écrivez votre question ...",
3
+ "LABEL_START_NW_CONV": "Nouvelle conversation",
4
+ "LABEL_WHATSAPP": "Contactez-nous",
5
+ "LABEL_SELECT_TOPIC": "Sélectionnez un sujet",
6
+ "LABEL_COMPLETE_FORM": "Remplissez le formulaire pour démarrer une conversation avec le prochain agent disponible.",
7
+ "LABEL_FIELD_NAME": "Prenom",
8
+ "LABEL_ERROR_FIELD_NAME": "Nom demandé (minimum 2 caractères).",
9
+ "LABEL_FIELD_EMAIL": "Email",
10
+ "LABEL_ERROR_FIELD_EMAIL": "Entrer une adresse email valide.",
11
+ "LABEL_ERROR_FIELD_REQUIRED": "Champ obligatoire",
12
+ "LABEL_WRITING": "écrit ...",
13
+ "LABEL_SEND_NEW_MESSAGE": "Envoyez un nouveau message",
14
+ "AGENT_NOT_AVAILABLE": " Hors ligne",
15
+ "AGENT_AVAILABLE": " En ligne",
16
+ "GUEST_LABEL": "Hôte",
17
+ "ALL_AGENTS_OFFLINE_LABEL": "Tous les opérateurs sont actuellement hors ligne",
18
+ "LABEL_LOADING": "Chargement en cours ...",
19
+ "LABEL_THINKING": "en train de reflechir",
20
+ "CALLOUT_TITLE_PLACEHOLDER": "🖐 Besoin d'aide?",
21
+ "CALLOUT_MSG_PLACEHOLDER": "Cliquez ici et commencez à discuter avec nous!",
22
+ "CUSTOMER_SATISFACTION": "Évaluation des services",
23
+ "YOUR_OPINION_ON_OUR_CUSTOMER_SERVICE": "votre avis sur notre service client",
24
+ "DOWNLOAD_TRANSCRIPT": "Télécharger la transcription",
25
+ "BACK": "En arrière",
26
+ "CONTINUE": "Continue",
27
+ "YOUR_RATING": "votre vote",
28
+ "WRITE_YOUR_OPINION": "Écrivez votre opinion ... (facultatif)",
29
+ "SUBMIT": "Soumettre",
30
+ "THANK_YOU_FOR_YOUR_EVALUATION": "Merci pour votre évaluation",
31
+ "YOUR_RATING_HAS_BEEN_RECEIVED": "votre vote a été reçu",
32
+ "ALERT_LEAVE_CHAT": "Voulez-vous quitter la conversation?",
33
+ "YES": "Oui",
34
+ "NO": "Non",
35
+ "BUTTON_CLOSE_TO_ICON": "Minimisez la discussion",
36
+ "BUTTON_EDIT_PROFILE": "Modifier le profil",
37
+ "RATE_CHAT": "évaluer la conversation",
38
+ "WELCOME_TITLE": "Salut, bienvenue à Tiledesk 👋",
39
+ "WELCOME_MSG": "Comment pouvons-nous vous aider?",
40
+ "WELCOME": "Bienvenue",
41
+ "OPTIONS": "options",
42
+ "SOUND_OFF": "Sound off",
43
+ "SOUND_ON": "Sound on",
44
+ "LOGOUT": "Connectez-out",
45
+ "CLOSE": "Fermer",
46
+ "RESTART": "Redémarrer",
47
+ "PREV_CONVERSATIONS": "Vos conversations",
48
+ "YOU": "Tu",
49
+ "SHOW_ALL_CONV": "voir tout",
50
+ "START_A_CONVERSATION": "Démarrer une conversation",
51
+ "NO_CONVERSATION": "Aucune conversation active",
52
+ "SEE_PREVIOUS": "voir les conversations précédentes",
53
+ "WAITING_TIME_FOUND": "L'équipe répond généralement en $reply_time",
54
+ "WAITING_TIME_NOT_FOUND": "Nous vous répondrons dans les plus brefs délais",
55
+ "CLOSED": "Fermé",
56
+ "CLOSE_CHAT": "Fermer la discussion",
57
+ "MINIMIZE": "Réduire la fenêtre",
58
+ "MAXIMIZE": "Agrandir la fenêtre",
59
+ "CENTER": "Centrer",
60
+ "CONFIRM_CLOSE_CHAT": "Etes-vous sûr de vouloir fermer cette discussion?",
61
+ "INFO_SUPPORT_USER_ADDED_SUBJECT": "tu",
62
+ "INFO_SUPPORT_USER_ADDED_YOU_VERB": "ont été ajoutés à ",
63
+ "INFO_SUPPORT_USER_ADDED_COMPLEMENT": "rejointe",
64
+ "INFO_SUPPORT_USER_ADDED_VERB": "la discussion",
65
+ "INFO_SUPPORT_CHAT_REOPENED": "Discussion rouvert",
66
+ "INFO_SUPPORT_CHAT_CLOSED": "Discussion fermé",
67
+ "INFO_SUPPORT_LEAD_UPDATED": "Prospect mis à jour",
68
+ "INFO_SUPPORT_MEMBER_LEFT_GROUP": "supprimé du groupe",
69
+ "INFO_SUPPORT_MEMBER_ABANDONED_GROUP": "a quitté la conversation",
70
+ "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "Une nouvelle demande de support vous a été attribuée",
71
+ "LABEL_PRECHAT_USER_FULLNAME": "Nom complet",
72
+ "LABEL_PRECHAT_USER_EMAIL": "E-mail",
73
+ "LABEL_PRECHAT_USER_EMAIL_ERROR": "Adresse e-mail invalide",
74
+ "LABEL_PRECHAT_USER_PHONE": "Téléphone",
75
+ "LABEL_PRECHAT_USER_PHONE_ERROR": "Le téléphone est requis",
76
+ "LABEL_PRECHAT_FIRST_MESSAGE": "Votre message pour l'équipe d'assistance",
77
+ "LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Avant de poursuivre la conversation, veuillez accepter nos <a href='https://tiledesk.com/termsofservice/' target='_blank'>Conditions</a> et <a href='https:/ /tiledesk.com/privacy.html' target='_blank'>Politique de confidentialité</a>",
78
+ "LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Je suis d'accord",
79
+ "PRECHAT_REQUIRED_ERROR": "Ce champ est obligatoire",
80
+ "TICKET_TAKING": "La demande a été reçue et le personnel d'assistance la traite.\nPour ajouter d'autres commentaires, répondez à cet e-mail.",
81
+ "LABEL_TODAY": "aujourd'hui",
82
+ "LABEL_TOMORROW": "hier",
83
+ "LABEL_LAST_ACCESS": "dernier accès",
84
+ "LABEL_TO": "à",
85
+ "ARRAY_DAYS": [
86
+ "Lundi",
87
+ "Mardi",
88
+ "Mercredi",
89
+ "Jeudi",
90
+ "Vendredi",
91
+ "Samedi",
92
+ "Dimanche"
93
+ ],
94
+ "SENT_AN_ATTACHMENT": "envoyé une pièce jointe",
95
+ "SENT_AN_IMAGE": "envoyé une image",
96
+ "LABEL_PREVIEW": "Aperçu",
97
+ "SWITCH_TO": "Ou passer à:",
98
+ "CONNECTION_NETWORK_ERROR": "Nos excuses. Il y a eu des problèmes de connexion au réseau",
99
+ "EMOJI_NOT_ELLOWED": "Emoji non autorisé",
100
+ "DOMAIN_NOT_ALLOWED": "L'URL contient un domaine non autorisé",
101
+ "MAX_ATTACHMENT": "Taille maximale autorisée {{FILE_SIZE_LIMIT}}Mo",
102
+ "MAX_ATTACHMENT_ERROR": "Le fichier dépasse la taille maximale autorisée",
103
+ "EMOJI": "Emoji",
104
+ "BUTTON_ATTACH_FILE": "Joindre un fichier",
105
+ "BUTTON_SEND_MESSAGE": "Envoyer le message",
106
+ "BUTTON_RECORD_AUDIO": "Maintenez pour enregistrer un message audio",
107
+ "BUTTON_DELETE_AUDIO": "Supprimer l'enregistrement",
108
+ "BUTTON_SEND_AUDIO": "Envoyer le message audio",
109
+ "BUTTON_PLAY_AUDIO": "Lire l'audio",
110
+ "BUTTON_PAUSE_AUDIO": "Mettre l'audio en pause",
111
+ "BUTTON_LIKE_MESSAGE": "J'aime",
112
+ "BUTTON_UNLIKE_MESSAGE": "Je n'aime pas",
113
+ "BUTTON_OPEN_CHAT": "Ouvrir le chat",
114
+ "BUTTON_CLOSE_PANEL": "Fermer le panneau",
115
+ "CONVERSATION_LOG_LABEL": "Messages de la conversation",
116
+ "BUTTON_OPEN_DETAIL": "Ouvrir le détail de la conversation",
117
+ "BUTTON_ALL_CONVERSATIONS": "Toutes les conversations",
118
+ "BUTTON_SCROLL_TO_BOTTOM": "Aller au dernier message",
119
+ "BUTTON_CLOSE_PREVIEW": "Fermer l'aperçu",
120
+ "CAROUSEL_PREVIOUS": "Diapositive précédente",
121
+ "CAROUSEL_NEXT": "Diapositive suivante",
122
+ "CAROUSEL_LABEL": "Carrousel de cartes",
123
+ "CAROUSEL_SLIDE_LABEL": "Diapositive {current} sur {total}",
124
+ "SKIP_TO_COMPOSER": "Aller à la zone de message",
125
+ "STREAM_AUDIO": "Utiliser le mode vocal",
126
+ "VOICE_CONNECTING": "Connexion...",
127
+ "VOICE_LISTENING": "Écoute...",
128
+ "VOICE_PROCESSING": "Traitement..."
129
+ }
@@ -1,99 +1,129 @@
1
1
  {
2
- "LABEL_PLACEHOLDER": "Scrivi la tua domanda...",
3
- "LABEL_START_NW_CONV": "Nuova conversazione",
4
- "LABEL_WHATSAPP": "Contattaci",
5
- "LABEL_SELECT_TOPIC": "Seleziona un argomento",
6
- "LABEL_COMPLETE_FORM": "Completa il form per iniziare una conversazione con il prossimo agente disponibile.",
7
- "LABEL_FIELD_NAME": "Nome",
8
- "LABEL_ERROR_FIELD_NAME": "Nome richiesto (minimo 2 caratteri).",
9
- "LABEL_FIELD_EMAIL": "Email",
10
- "LABEL_ERROR_FIELD_EMAIL": "Inserisci un indirizzo email valido.",
11
- "LABEL_ERROR_FIELD_REQUIRED": "Campo richiesto",
12
- "LABEL_WRITING": "sta scrivendo...",
13
- "LABEL_SEND_NEW_MESSAGE": "Invia un nuovo messaggio",
14
- "AGENT_NOT_AVAILABLE": " Offline",
15
- "AGENT_AVAILABLE": " Online",
16
- "GUEST_LABEL": "Ospite",
17
- "ALL_AGENTS_OFFLINE_LABEL": "Tutti gli operatori sono offline al momento",
18
- "LABEL_LOADING": "Caricamento...",
19
- "LABEL_THINKING": "sto pensando",
20
- "CALLOUT_TITLE_PLACEHOLDER": "🖐 Bisogno di aiuto?",
21
- "CALLOUT_MSG_PLACEHOLDER": "Clicca qui e inizia a chattare con noi!",
22
- "CUSTOMER_SATISFACTION": "Valutazione servizio",
23
- "YOUR_OPINION_ON_OUR_CUSTOMER_SERVICE": "il tuo giudizio sul nostro servizio clienti",
24
- "DOWNLOAD_TRANSCRIPT": "Scarica transcript",
25
- "BACK": "Indietro",
26
- "CONTINUE":"Continua",
27
- "YOUR_RATING": "il tuo voto",
28
- "WRITE_YOUR_OPINION": "Scrivi la tua opinione...(opzionale)",
29
- "SUBMIT": "Invia",
30
- "THANK_YOU_FOR_YOUR_EVALUATION": "Grazie per la tua valutazione",
31
- "YOUR_RATING_HAS_BEEN_RECEIVED": "il tuo voto è stato ricevuto",
32
- "ALERT_LEAVE_CHAT": "Vuoi abbandonare la conversazione?",
33
- "YES": "Si",
34
- "NO": "No",
35
- "BUTTON_CLOSE_TO_ICON": "Riduci a icona la chat",
36
- "BUTTON_EDIT_PROFILE": "Modifica profilo",
37
- "RATE_CHAT": "Valuta chat",
38
- "WELCOME_TITLE": "Ciao, benvenuto su Tiledesk 👋",
39
- "WELCOME_MSG": "Come possiamo aiutarti?",
40
- "WELCOME": "Benvenuto",
41
- "OPTIONS": "opzioni",
42
- "SOUND_OFF": "Suono spento",
43
- "SOUND_ON": "Suono acceso",
44
- "LOGOUT": "Disconnetti",
45
- "CLOSE": "Chiudi",
46
- "RESTART":"Ricomincia",
47
- "PREV_CONVERSATIONS": "Le tue conversazioni",
48
- "YOU": "Tu",
49
- "SHOW_ALL_CONV": "vedi tutte",
50
- "START_A_CONVERSATION": "Inizia una conversazione",
51
- "NO_CONVERSATION": "Nessuna conversazione attiva",
52
- "SEE_PREVIOUS": "vedi precedenti",
53
- "WAITING_TIME_FOUND": "Il team tipicamente risponde in $reply_time",
54
- "WAITING_TIME_NOT_FOUND": "Vi risponderemo appena possibile",
55
- "CLOSED": "Chiusa",
56
- "CLOSE_CHAT": "Chiudi chat",
57
- "MINIMIZE":"Comprimi finestra",
58
- "MAXIMIZE":"Espandi finestra",
59
- "CENTER":"Centra",
60
- "CONFIRM_CLOSE_CHAT":"Sei sicuro di voler chiudere questa chat?",
61
-
62
- "INFO_SUPPORT_USER_ADDED_SUBJECT":"tu",
63
- "INFO_SUPPORT_USER_ADDED_YOU_VERB":"sei stato aggiunto ",
64
- "INFO_SUPPORT_USER_ADDED_COMPLEMENT":"si è unito",
65
- "INFO_SUPPORT_USER_ADDED_VERB":"alla chat",
66
- "INFO_SUPPORT_CHAT_REOPENED":"Chat riaperta",
67
- "INFO_SUPPORT_CHAT_CLOSED":"Chat chiusa",
68
- "INFO_SUPPORT_LEAD_UPDATED":"Contatto aggiornato",
69
- "INFO_SUPPORT_MEMBER_LEFT_GROUP":"ha lasciato il gruppo",
70
- "INFO_SUPPORT_MEMBER_ABANDONED_GROUP": "ha abbandonato la conversazione",
71
- "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "Una nuova richiesta di supporto è stata assegnata a te",
72
-
73
- "LABEL_PRECHAT_USER_FULLNAME": "Nome completo",
74
- "LABEL_PRECHAT_USER_EMAIL": "E-mail",
75
- "LABEL_PRECHAT_USER_EMAIL_ERROR": "Indirizzo email non valido",
76
- "LABEL_PRECHAT_USER_PHONE": "Telefono",
77
- "LABEL_PRECHAT_USER_PHONE_ERROR": "Telefono richiesto",
78
- "LABEL_PRECHAT_FIRST_MESSAGE": "Il tuo messaggio per il team di supporto",
79
- "LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Prima di procedere nella conversazione, accetta i nostri <a href='https://tiledesk.com/termsofservice/' target='_blank'>Termini</a> e <a href='https:/ /tiledesk.com/privacy.html' target='_blank'>Norme sulla privacy</a>",
80
- "LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Sono d'accordo",
81
- "PRECHAT_REQUIRED_ERROR": "Questo campo è obbligatorio",
82
-
83
- "TICKET_TAKING":"La richiesta è stata ricevuta e il personale di assistenza se ne sta occupando.\nPer aggiungere ulteriori commenti, rispondi a questa email.",
84
-
85
- "LABEL_TODAY": "oggi",
86
- "LABEL_TOMORROW": "ieri",
87
- "LABEL_LAST_ACCESS": "ultimo accesso",
88
- "LABEL_TO": "a",
89
- "ARRAY_DAYS": ["Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica"],
90
- "SENT_AN_ATTACHMENT": "ha inviato un allegato",
91
- "SENT_AN_IMAGE":"ha inviato un'immagine",
92
- "LABEL_PREVIEW": "Anteprima",
93
- "SWITCH_TO":"Oppure passa a:",
94
- "CONNECTION_NETWORK_ERROR": "Ci scusiamo. Si sono verificati problemi di connessione di rete",
95
- "EMOJI_NOT_ELLOWED":"Emoji non consentiti",
96
- "DOMAIN_NOT_ALLOWED":"L'URL contiene un dominio non consentito",
97
- "MAX_ATTACHMENT": "Dimensione massima consentita {{FILE_SIZE_LIMIT}}Mb",
98
- "EMOJI": "Emoji"
99
- }
2
+ "LABEL_PLACEHOLDER": "Scrivi la tua domanda...",
3
+ "LABEL_START_NW_CONV": "Nuova conversazione",
4
+ "LABEL_WHATSAPP": "Contattaci",
5
+ "LABEL_SELECT_TOPIC": "Seleziona un argomento",
6
+ "LABEL_COMPLETE_FORM": "Completa il form per iniziare una conversazione con il prossimo agente disponibile.",
7
+ "LABEL_FIELD_NAME": "Nome",
8
+ "LABEL_ERROR_FIELD_NAME": "Nome richiesto (minimo 2 caratteri).",
9
+ "LABEL_FIELD_EMAIL": "Email",
10
+ "LABEL_ERROR_FIELD_EMAIL": "Inserisci un indirizzo email valido.",
11
+ "LABEL_ERROR_FIELD_REQUIRED": "Campo richiesto",
12
+ "LABEL_WRITING": "sta scrivendo...",
13
+ "LABEL_SEND_NEW_MESSAGE": "Invia un nuovo messaggio",
14
+ "AGENT_NOT_AVAILABLE": " Offline",
15
+ "AGENT_AVAILABLE": " Online",
16
+ "GUEST_LABEL": "Ospite",
17
+ "ALL_AGENTS_OFFLINE_LABEL": "Tutti gli operatori sono offline al momento",
18
+ "LABEL_LOADING": "Caricamento...",
19
+ "LABEL_THINKING": "sto pensando",
20
+ "CALLOUT_TITLE_PLACEHOLDER": "🖐 Bisogno di aiuto?",
21
+ "CALLOUT_MSG_PLACEHOLDER": "Clicca qui e inizia a chattare con noi!",
22
+ "CUSTOMER_SATISFACTION": "Valutazione servizio",
23
+ "YOUR_OPINION_ON_OUR_CUSTOMER_SERVICE": "il tuo giudizio sul nostro servizio clienti",
24
+ "DOWNLOAD_TRANSCRIPT": "Scarica transcript",
25
+ "BACK": "Indietro",
26
+ "CONTINUE": "Continua",
27
+ "YOUR_RATING": "il tuo voto",
28
+ "WRITE_YOUR_OPINION": "Scrivi la tua opinione...(opzionale)",
29
+ "SUBMIT": "Invia",
30
+ "THANK_YOU_FOR_YOUR_EVALUATION": "Grazie per la tua valutazione",
31
+ "YOUR_RATING_HAS_BEEN_RECEIVED": "il tuo voto è stato ricevuto",
32
+ "ALERT_LEAVE_CHAT": "Vuoi abbandonare la conversazione?",
33
+ "YES": "Si",
34
+ "NO": "No",
35
+ "BUTTON_CLOSE_TO_ICON": "Riduci a icona la chat",
36
+ "BUTTON_EDIT_PROFILE": "Modifica profilo",
37
+ "RATE_CHAT": "Valuta chat",
38
+ "WELCOME_TITLE": "Ciao, benvenuto su Tiledesk 👋",
39
+ "WELCOME_MSG": "Come possiamo aiutarti?",
40
+ "WELCOME": "Benvenuto",
41
+ "OPTIONS": "opzioni",
42
+ "SOUND_OFF": "Suono spento",
43
+ "SOUND_ON": "Suono acceso",
44
+ "LOGOUT": "Disconnetti",
45
+ "CLOSE": "Chiudi",
46
+ "RESTART": "Ricomincia",
47
+ "PREV_CONVERSATIONS": "Le tue conversazioni",
48
+ "YOU": "Tu",
49
+ "SHOW_ALL_CONV": "vedi tutte",
50
+ "START_A_CONVERSATION": "Inizia una conversazione",
51
+ "NO_CONVERSATION": "Nessuna conversazione attiva",
52
+ "SEE_PREVIOUS": "vedi precedenti",
53
+ "WAITING_TIME_FOUND": "Il team tipicamente risponde in $reply_time",
54
+ "WAITING_TIME_NOT_FOUND": "Vi risponderemo appena possibile",
55
+ "CLOSED": "Chiusa",
56
+ "CLOSE_CHAT": "Chiudi chat",
57
+ "MINIMIZE": "Comprimi finestra",
58
+ "MAXIMIZE": "Espandi finestra",
59
+ "CENTER": "Centra",
60
+ "CONFIRM_CLOSE_CHAT": "Sei sicuro di voler chiudere questa chat?",
61
+ "INFO_SUPPORT_USER_ADDED_SUBJECT": "tu",
62
+ "INFO_SUPPORT_USER_ADDED_YOU_VERB": "sei stato aggiunto ",
63
+ "INFO_SUPPORT_USER_ADDED_COMPLEMENT": "si è unito",
64
+ "INFO_SUPPORT_USER_ADDED_VERB": "alla chat",
65
+ "INFO_SUPPORT_CHAT_REOPENED": "Chat riaperta",
66
+ "INFO_SUPPORT_CHAT_CLOSED": "Chat chiusa",
67
+ "INFO_SUPPORT_LEAD_UPDATED": "Contatto aggiornato",
68
+ "INFO_SUPPORT_MEMBER_LEFT_GROUP": "ha lasciato il gruppo",
69
+ "INFO_SUPPORT_MEMBER_ABANDONED_GROUP": "ha abbandonato la conversazione",
70
+ "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "Una nuova richiesta di supporto è stata assegnata a te",
71
+ "LABEL_PRECHAT_USER_FULLNAME": "Nome completo",
72
+ "LABEL_PRECHAT_USER_EMAIL": "E-mail",
73
+ "LABEL_PRECHAT_USER_EMAIL_ERROR": "Indirizzo email non valido",
74
+ "LABEL_PRECHAT_USER_PHONE": "Telefono",
75
+ "LABEL_PRECHAT_USER_PHONE_ERROR": "Telefono richiesto",
76
+ "LABEL_PRECHAT_FIRST_MESSAGE": "Il tuo messaggio per il team di supporto",
77
+ "LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Prima di procedere nella conversazione, accetta i nostri <a href='https://tiledesk.com/termsofservice/' target='_blank'>Termini</a> e <a href='https:/ /tiledesk.com/privacy.html' target='_blank'>Norme sulla privacy</a>",
78
+ "LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Sono d'accordo",
79
+ "PRECHAT_REQUIRED_ERROR": "Questo campo è obbligatorio",
80
+ "TICKET_TAKING": "La richiesta è stata ricevuta e il personale di assistenza se ne sta occupando.\nPer aggiungere ulteriori commenti, rispondi a questa email.",
81
+ "LABEL_TODAY": "oggi",
82
+ "LABEL_TOMORROW": "ieri",
83
+ "LABEL_LAST_ACCESS": "ultimo accesso",
84
+ "LABEL_TO": "a",
85
+ "ARRAY_DAYS": [
86
+ "Lunedì",
87
+ "Martedì",
88
+ "Mercoledì",
89
+ "Giovedì",
90
+ "Venerdì",
91
+ "Sabato",
92
+ "Domenica"
93
+ ],
94
+ "SENT_AN_ATTACHMENT": "ha inviato un allegato",
95
+ "SENT_AN_IMAGE": "ha inviato un'immagine",
96
+ "LABEL_PREVIEW": "Anteprima",
97
+ "SWITCH_TO": "Oppure passa a:",
98
+ "CONNECTION_NETWORK_ERROR": "Ci scusiamo. Si sono verificati problemi di connessione di rete",
99
+ "EMOJI_NOT_ELLOWED": "Emoji non consentiti",
100
+ "DOMAIN_NOT_ALLOWED": "L'URL contiene un dominio non consentito",
101
+ "MAX_ATTACHMENT": "Dimensione massima consentita {{FILE_SIZE_LIMIT}}Mb",
102
+ "MAX_ATTACHMENT_ERROR": "Il file supera la dimensione massima consentita",
103
+ "EMOJI": "Emoji",
104
+ "BUTTON_ATTACH_FILE": "Allega un file",
105
+ "BUTTON_SEND_MESSAGE": "Invia messaggio",
106
+ "BUTTON_RECORD_AUDIO": "Tieni premuto per registrare un audio",
107
+ "BUTTON_DELETE_AUDIO": "Elimina registrazione",
108
+ "BUTTON_SEND_AUDIO": "Invia messaggio audio",
109
+ "BUTTON_PLAY_AUDIO": "Riproduci audio",
110
+ "BUTTON_PAUSE_AUDIO": "Metti in pausa l'audio",
111
+ "BUTTON_LIKE_MESSAGE": "Mi piace",
112
+ "BUTTON_UNLIKE_MESSAGE": "Non mi piace",
113
+ "BUTTON_OPEN_CHAT": "Apri chat",
114
+ "BUTTON_CLOSE_PANEL": "Chiudi pannello",
115
+ "CONVERSATION_LOG_LABEL": "Messaggi della conversazione",
116
+ "BUTTON_OPEN_DETAIL": "Apri dettaglio conversazione",
117
+ "BUTTON_ALL_CONVERSATIONS": "Tutte le conversazioni",
118
+ "BUTTON_SCROLL_TO_BOTTOM": "Vai all'ultimo messaggio",
119
+ "BUTTON_CLOSE_PREVIEW": "Chiudi anteprima",
120
+ "CAROUSEL_PREVIOUS": "Diapositiva precedente",
121
+ "CAROUSEL_NEXT": "Diapositiva successiva",
122
+ "CAROUSEL_LABEL": "Carosello di card",
123
+ "CAROUSEL_SLIDE_LABEL": "Diapositiva {current} di {total}",
124
+ "SKIP_TO_COMPOSER": "Salta al campo del messaggio",
125
+ "STREAM_AUDIO": "Usa la modalità vocale",
126
+ "VOICE_CONNECTING": "Connessione...",
127
+ "VOICE_LISTENING": "In ascolto...",
128
+ "VOICE_PROCESSING": "Elaborazione..."
129
+ }
@@ -0,0 +1,59 @@
1
+ async function ortWasmThreaded(moduleArg={}){var moduleRtn;var h=moduleArg,aa=!!globalThis.window,k=!!globalThis.WorkerGlobalScope,m=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type,n=k&&self.name?.startsWith("em-pthread");if(m){const {createRequire:a}=await import("module");var require=a(import.meta.url),ba=require("worker_threads");global.Worker=ba.Worker;n=(k=!ba.ic)&&"em-pthread"==ba.workerData}h.mountExternalData=(a,b)=>{a.startsWith("./")&&(a=a.substring(2));(h.Sb||(h.Sb=new Map)).set(a,b)};
2
+ h.unmountExternalData=()=>{delete h.Sb};var SharedArrayBuffer=globalThis.SharedArrayBuffer??(new WebAssembly.Memory({initial:0,maximum:0,kc:!0})).buffer.constructor,ca="./this.program",da=(a,b)=>{throw b;},ea=import.meta.url,fa="",ha,ia;
3
+ if(m){var fs=require("fs");ea.startsWith("file:")&&(fa=require("path").dirname(require("url").fileURLToPath(ea))+"/");ia=a=>{a=ja(a)?new URL(a):a;return fs.readFileSync(a)};ha=async a=>{a=ja(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(ca=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);da=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||k){try{fa=(new URL(".",ea)).href}catch{}m||(k&&(ia=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";
4
+ b.send(null);return new Uint8Array(b.response)}),ha=async a=>{if(ja(a))return new Promise((d,c)=>{var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=()=>{200==e.status||0==e.status&&e.response?d(e.response):c(e.status)};e.onerror=c;e.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);})}var ka=console.log.bind(console),la=console.error.bind(console);
5
+ if(m){var ma=require("util"),na=a=>"object"==typeof a?ma.inspect(a):a;ka=(...a)=>fs.writeSync(1,a.map(na).join(" ")+"\n");la=(...a)=>fs.writeSync(2,a.map(na).join(" ")+"\n")}var oa=ka,p=la,q,r,pa=!1,t,ja=a=>a.startsWith("file://");function v(){x.buffer!=z.buffer&&qa()}var ra,sa;
6
+ if(m&&n){var ta=ba.parentPort;ta.on("message",a=>global.onmessage?.({data:a}));Object.assign(globalThis,{self:global,postMessage:a=>ta.postMessage(a)});process.on("uncaughtException",a=>{postMessage({Qb:"uncaughtException",error:a});process.exit(1)})}var ua;
7
+ if(n){var va=!1;self.onunhandledrejection=b=>{throw b.reason||b;};function a(b){try{var d=b.data,c=d.Qb;if("load"===c){let e=[];self.onmessage=f=>e.push(f);ua=()=>{postMessage({Qb:"loaded"});for(let f of e)a(f);self.onmessage=a};for(const f of d.$b)if(!h[f]||h[f].proxy)h[f]=(...g)=>{postMessage({Qb:"callHandler",Zb:f,args:g})},"print"==f&&(oa=h[f]),"printErr"==f&&(p=h[f]);x=d.ec;qa();r=d.fc;wa();xa()}else if("run"===c){ya(d.Pb);za(d.Pb,0,0,1,0,0);Aa();Ba(d.Pb);va||=!0;try{Ca(d.cc,d.Ub)}catch(e){if("unwind"!=
8
+ e)throw e;}}else"setimmediate"!==d.target&&("checkMailbox"===c?va&&Da():c&&(p(`worker: received unknown command ${c}`),p(d)))}catch(e){throw Ea(),e;}}self.onmessage=a}var z,A,Fa,C,D,Ga,G,H,Ha=!1;function qa(){var a=x.buffer;h.HEAP8=z=new Int8Array(a);Fa=new Int16Array(a);h.HEAPU8=A=new Uint8Array(a);new Uint16Array(a);h.HEAP32=C=new Int32Array(a);h.HEAPU32=D=new Uint32Array(a);Ga=new Float32Array(a);G=new Float64Array(a);H=new BigInt64Array(a);new BigUint64Array(a)}
9
+ function Ia(){Ha=!0;n?ua():I.Ua()}function J(a){a="Aborted("+a+")";p(a);pa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");sa?.(a);throw a;}var Ja;async function Ka(a){if(!q)try{var b=await ha(a);return new Uint8Array(b)}catch{}if(a==Ja&&q)a=new Uint8Array(q);else if(ia)a=ia(a);else throw"both async and sync fetching of the wasm failed";return a}
10
+ async function La(a,b){try{var d=await Ka(a);return await WebAssembly.instantiate(d,b)}catch(c){p(`failed to asynchronously prepare wasm: ${c}`),J(c)}}async function Na(a){var b=Ja;if(!q&&!ja(b)&&!m)try{var d=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(d,a)}catch(c){p(`wasm streaming compile failed: ${c}`),p("falling back to ArrayBuffer instantiation")}return La(b,a)}
11
+ function Oa(){Pa={S:Qa,f:Ra,w:Sa,e:Ta,j:Ua,g:Va,T:Wa,b:Xa,G:Ya,ua:Za,k:$a,K:ab,Ka:bb,qa:cb,sa:db,La:eb,Ia:fb,Ba:gb,Ha:hb,Z:ib,ra:jb,oa:kb,Ja:lb,pa:mb,Qa:nb,Ea:ob,ma:pb,va:qb,ja:rb,U:sb,Da:Ba,Na:tb,ya:ub,za:vb,Aa:wb,wa:xb,xa:yb,ka:zb,Sa:Ab,Pa:Bb,W:Cb,V:Db,Oa:Eb,F:Fb,Ma:Gb,na:Hb,u:Ib,H:Jb,R:Kb,la:Lb,da:Mb,Ta:Nb,Fa:Ob,Ga:Pb,ta:Qb,L:Rb,Y:Sb,Ca:Tb,X:Ub,$:Vb,M:Wb,aa:Xb,N:Yb,v:Zb,c:$b,m:ac,n:bc,r:cc,ea:dc,x:ec,o:fc,O:gc,D:hc,I:ic,ba:jc,ca:kc,Q:lc,P:mc,fa:nc,z:oc,E:pc,d:qc,q:rc,i:sc,_:tc,l:uc,p:vc,s:wc,t:xc,
12
+ y:yc,ga:zc,B:Ac,J:Bc,C:Cc,ha:Dc,ia:Ec,A:Fc,h:Gc,a:x,Ra:Hc};return{a:Pa}}
13
+ async function wa(){function a(c,e){I=c.exports;I=Ic();Jc.push(I.wb);c=I;h._OrtInit=c.Va;h._OrtGetLastError=c.Wa;h._OrtCreateSessionOptions=c.Xa;h._OrtAppendExecutionProvider=c.Ya;h._OrtAddFreeDimensionOverride=c.Za;h._OrtAddSessionConfigEntry=c._a;h._OrtReleaseSessionOptions=c.$a;h._OrtCreateSession=c.ab;h._OrtReleaseSession=c.bb;h._OrtGetInputOutputCount=c.cb;h._OrtGetInputOutputMetadata=c.db;h._OrtFree=c.eb;h._OrtCreateTensor=c.fb;h._OrtGetTensorData=c.gb;h._OrtReleaseTensor=c.hb;h._OrtCreateRunOptions=
14
+ c.ib;h._OrtAddRunConfigEntry=c.jb;h._OrtReleaseRunOptions=c.kb;h._OrtCreateBinding=c.lb;h._OrtBindInput=c.mb;h._OrtBindOutput=c.nb;h._OrtClearBoundOutputs=c.ob;h._OrtReleaseBinding=c.pb;h._OrtRunWithBinding=c.qb;h._OrtRun=c.rb;h._OrtEndProfiling=c.sb;Kc=c.tb;Lc=h._free=c.ub;Mc=h._malloc=c.vb;za=c.yb;Ea=c.zb;Nc=c.Ab;Oc=c.Bb;Pc=c.Cb;Qc=c.Db;Rc=c.Eb;K=c.Fb;L=c.Gb;Sc=c.Hb;M=c.Ib;Tc=c.Jb;N=c.Kb;Uc=c.Lb;Vc=c.Mb;Wc=c.Nb;Xc=c.Ob;Yc=c.xb;r=e;return I}var b=Oa();if(h.instantiateWasm)return new Promise(c=>{h.instantiateWasm(b,
15
+ (e,f)=>{c(a(e,f))})});if(n){var d=new WebAssembly.Instance(r,Oa());return a(d,r)}Ja??=h.locateFile?h.locateFile?h.locateFile("ort-wasm-simd-threaded.wasm",fa):fa+"ort-wasm-simd-threaded.wasm":(new URL("ort-wasm-simd-threaded.wasm",import.meta.url)).href;return function(c){return a(c.instance,c.module)}(await Na(b))}class Zc{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}
16
+ var $c=a=>{a.terminate();a.onmessage=()=>{}},ad=[],O=0,P=null,dd=a=>{0==Q.length&&(bd(),cd(Q[0]));var b=Q.pop();if(!b)return 6;R.push(b);S[a.Pb]=b;b.Pb=a.Pb;var d={Qb:"run",cc:a.bc,Ub:a.Ub,Pb:a.Pb};m&&b.unref();b.postMessage(d,a.Yb);return 0},T=0,U=(a,b,...d)=>{var c=16*d.length,e=N(),f=Tc(c),g=f>>>3,l;for(l of d)"bigint"==typeof l?((v(),H)[g++>>>0]=1n,(v(),H)[g++>>>0]=l):((v(),H)[g++>>>0]=0n,(v(),G)[g++>>>0]=l);a=Nc(a,0,c,f,b);M(e);return a};
17
+ function Hc(a){if(n)return U(0,1,a);t=a;if(!(0<T)){for(var b of R)$c(b);for(b of Q)$c(b);Q=[];R=[];S={};pa=!0}da(a,new Zc(a))}function ed(a){if(n)return U(1,0,a);Qb(a)}var Qb=a=>{t=a;if(n)throw ed(a),"unwind";Hc(a)},Q=[],R=[],Jc=[],S={};function fd(){for(var a=h.numThreads-1;a--;)bd();ad.push(async()=>{var b=gd();O++;await b;O--;0==O&&P&&(b=P,P=null,b())})}var hd=a=>{var b=a.Pb;delete S[b];Q.push(a);R.splice(R.indexOf(a),1);a.Pb=0;Oc(b)};function Aa(){Jc.forEach(a=>a())}
18
+ var cd=a=>new Promise(b=>{a.onmessage=f=>{var g=f.data;f=g.Qb;if(g.Tb&&g.Tb!=Kc()){var l=S[g.Tb];l?l.postMessage(g,g.Yb):p(`Internal error! Worker sent a message "${f}" to target pthread ${g.Tb}, but that thread no longer exists!`)}else if("checkMailbox"===f)Da();else if("spawnThread"===f)dd(g);else if("cleanupThread"===f)jd(()=>{hd(S[g.dc])});else if("loaded"===f)a.loaded=!0,m&&!a.Pb&&a.unref(),b(a);else if("setimmediate"===g.target)a.postMessage(g);else if("uncaughtException"===f)a.onerror(g.error);
19
+ else if("callHandler"===f)h[g.Zb](...g.args);else f&&p(`worker sent an unknown command ${f}`)};a.onerror=f=>{p(`${"worker sent an error!"} ${f.filename}:${f.lineno}: ${f.message}`);throw f;};m&&(a.on("message",f=>a.onmessage({data:f})),a.on("error",f=>a.onerror(f)));var d=[],c=[],e;for(e of c)h.propertyIsEnumerable(e)&&d.push(e);a.postMessage({Qb:"load",$b:d,ec:x,fc:r})});async function gd(){if(!n)return Promise.all(Q.map(cd))}
20
+ function bd(){var a=new Worker(new URL(import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});Q.push(a)}function ya(a){var b=(v(),D)[a+52>>>2>>>0];a=(v(),D)[a+56>>>2>>>0];Sc(b,b-a);M(b)}var kd=[],V=a=>{var b=kd[a];b||(kd[a]=b=Yc.get(a));return b},Ca=(a,b)=>{T=0;a=V(a)(b);0<T?t=a:Pc(a)},x,ld=[],md=0;function Ra(a){a>>>=0;var b=new nd(a);0==(v(),z)[b.Rb+12>>>0]&&(od(b,!0),md--);pd(b,!1);ld.push(b);return Xc(a)}
21
+ var W=0,Sa=()=>{K(0,0);var a=ld.pop();Uc(a.Vb);W=0};function od(a,b){b=b?1:0;(v(),z)[a.Rb+12>>>0]=b}function pd(a,b){b=b?1:0;(v(),z)[a.Rb+13>>>0]=b}class nd{constructor(a){this.Vb=a;this.Rb=a-24}}var qd=a=>{var b=W;if(!b)return L(0),0;var d=new nd(b);(v(),D)[d.Rb+16>>>2>>>0]=b;var c=(v(),D)[d.Rb+4>>>2>>>0];if(!c)return L(0),b;for(var e of a){if(0===e||e===c)break;if(Wc(e,c,d.Rb+16))return L(e),b}L(c);return b};function Ta(){return qd([])}function Ua(a){return qd([a>>>0])}
22
+ function Va(a,b,d,c){return qd([a>>>0,b>>>0,d>>>0,c>>>0])}var Wa=()=>{var a=ld.pop();a||J("no exception to throw");var b=a.Vb;0==(v(),z)[a.Rb+13>>>0]&&(ld.push(a),pd(a,!0),od(a,!1),md++);Vc(b);W=b;throw W;};function Xa(a,b,d){a>>>=0;var c=new nd(a);b>>>=0;d>>>=0;(v(),D)[c.Rb+16>>>2>>>0]=0;(v(),D)[c.Rb+4>>>2>>>0]=b;(v(),D)[c.Rb+8>>>2>>>0]=d;Vc(a);W=a;md++;throw W;}var Ya=()=>md;function rd(a,b,d,c){return n?U(2,1,a,b,d,c):Za(a,b,d,c)}
23
+ function Za(a,b,d,c){a>>>=0;b>>>=0;d>>>=0;c>>>=0;if(!globalThis.SharedArrayBuffer)return 6;var e=[];if(n&&0===e.length)return rd(a,b,d,c);a={bc:d,Pb:a,Ub:c,Yb:e};return n?(a.Qb="spawnThread",postMessage(a,e),0):dd(a)}function $a(a){W||=a>>>0;throw W;}
24
+ var sd=globalThis.TextDecoder&&new TextDecoder,td=(a,b=0,d,c)=>{b>>>=0;var e=b;d=e+d;if(c)c=d;else{for(;a[e]&&!(e>=d);)++e;c=e}if(16<c-b&&a.buffer&&sd)return sd.decode(a.buffer instanceof ArrayBuffer?a.subarray(b,c):a.slice(b,c));for(e="";b<c;)if(d=a[b++],d&128){var f=a[b++]&63;if(192==(d&224))e+=String.fromCharCode((d&31)<<6|f);else{var g=a[b++]&63;d=224==(d&240)?(d&15)<<12|f<<6|g:(d&7)<<18|f<<12|g<<6|a[b++]&63;65536>d?e+=String.fromCharCode(d):(d-=65536,e+=String.fromCharCode(55296|d>>10,56320|
25
+ d&1023))}}else e+=String.fromCharCode(d);return e},ud=(a,b,d)=>(a>>>=0)?td((v(),A),a,b,d):"";function ab(a,b,d){return n?U(3,1,a,b,d):0}function bb(a,b){if(n)return U(4,1,a,b)}function cb(a,b){if(n)return U(5,1,a,b)}function db(a,b,d){if(n)return U(6,1,a,b,d)}function eb(a,b,d){return n?U(7,1,a,b,d):0}function fb(a,b){if(n)return U(8,1,a,b)}function gb(a,b,d){if(n)return U(9,1,a,b,d)}function hb(a,b,d,c){if(n)return U(10,1,a,b,d,c)}function ib(a,b,d,c){if(n)return U(11,1,a,b,d,c)}
26
+ function jb(a,b,d,c){if(n)return U(12,1,a,b,d,c)}function kb(a){if(n)return U(13,1,a)}function lb(a,b){if(n)return U(14,1,a,b)}function mb(a,b,d){if(n)return U(15,1,a,b,d)}var nb=()=>J("");function ob(a){za(a>>>0,!k,1,!aa,131072,!1);Aa()}
27
+ var jd=a=>{if(!pa)try{if(a(),!(0<T))try{n?Kc()&&Pc(t):Qb(t)}catch(b){b instanceof Zc||"unwind"==b||da(1,b)}}catch(b){b instanceof Zc||"unwind"==b||da(1,b)}},vd=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Ba(a){a>>>=0;vd||(Atomics.waitAsync((v(),C),a>>>2,a).value.then(Da),a+=128,Atomics.store((v(),C),a>>>2,1))}var Da=()=>jd(()=>{var a=Kc();a&&(Ba(a),Rc())});
28
+ function pb(a,b){a>>>=0;a==b>>>0?setTimeout(Da):n?postMessage({Tb:a,Qb:"checkMailbox"}):(a=S[a])&&a.postMessage({Qb:"checkMailbox"})}var wd=[];function qb(a,b,d,c,e){b>>>=0;e>>>=0;wd.length=0;d=e>>>3;for(c=e+c>>>3;d<c;){var f;(v(),H)[d++>>>0]?f=(v(),H)[d++>>>0]:f=(v(),G)[d++>>>0];wd.push(f)}return(b?xd[b]:yd[a])(...wd)}var rb=()=>{T=0};function sb(a){a>>>=0;n?postMessage({Qb:"cleanupThread",dc:a}):hd(S[a])}function tb(a){m&&S[a>>>0].ref()}
29
+ function ub(a,b){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);b>>>=0;a=new Date(1E3*a);(v(),C)[b>>>2>>>0]=a.getUTCSeconds();(v(),C)[b+4>>>2>>>0]=a.getUTCMinutes();(v(),C)[b+8>>>2>>>0]=a.getUTCHours();(v(),C)[b+12>>>2>>>0]=a.getUTCDate();(v(),C)[b+16>>>2>>>0]=a.getUTCMonth();(v(),C)[b+20>>>2>>>0]=a.getUTCFullYear()-1900;(v(),C)[b+24>>>2>>>0]=a.getUTCDay();a=(a.getTime()-Date.UTC(a.getUTCFullYear(),0,1,0,0,0,0))/864E5|0;(v(),C)[b+28>>>2>>>0]=a}
30
+ var zd=a=>0===a%4&&(0!==a%100||0===a%400),Ad=[0,31,60,91,121,152,182,213,244,274,305,335],Bd=[0,31,59,90,120,151,181,212,243,273,304,334];
31
+ function vb(a,b){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);b>>>=0;a=new Date(1E3*a);(v(),C)[b>>>2>>>0]=a.getSeconds();(v(),C)[b+4>>>2>>>0]=a.getMinutes();(v(),C)[b+8>>>2>>>0]=a.getHours();(v(),C)[b+12>>>2>>>0]=a.getDate();(v(),C)[b+16>>>2>>>0]=a.getMonth();(v(),C)[b+20>>>2>>>0]=a.getFullYear()-1900;(v(),C)[b+24>>>2>>>0]=a.getDay();var d=(zd(a.getFullYear())?Ad:Bd)[a.getMonth()]+a.getDate()-1|0;(v(),C)[b+28>>>2>>>0]=d;(v(),C)[b+36>>>2>>>0]=-(60*a.getTimezoneOffset());d=(new Date(a.getFullYear(),
32
+ 6,1)).getTimezoneOffset();var c=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();a=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0;(v(),C)[b+32>>>2>>>0]=a}
33
+ function wb(a){a>>>=0;var b=new Date((v(),C)[a+20>>>2>>>0]+1900,(v(),C)[a+16>>>2>>>0],(v(),C)[a+12>>>2>>>0],(v(),C)[a+8>>>2>>>0],(v(),C)[a+4>>>2>>>0],(v(),C)[a>>>2>>>0],0),d=(v(),C)[a+32>>>2>>>0],c=b.getTimezoneOffset(),e=(new Date(b.getFullYear(),6,1)).getTimezoneOffset(),f=(new Date(b.getFullYear(),0,1)).getTimezoneOffset(),g=Math.min(f,e);0>d?(v(),C)[a+32>>>2>>>0]=Number(e!=f&&g==c):0<d!=(g==c)&&(e=Math.max(f,e),b.setTime(b.getTime()+6E4*((0<d?g:e)-c)));(v(),C)[a+24>>>2>>>0]=b.getDay();d=(zd(b.getFullYear())?
34
+ Ad:Bd)[b.getMonth()]+b.getDate()-1|0;(v(),C)[a+28>>>2>>>0]=d;(v(),C)[a>>>2>>>0]=b.getSeconds();(v(),C)[a+4>>>2>>>0]=b.getMinutes();(v(),C)[a+8>>>2>>>0]=b.getHours();(v(),C)[a+12>>>2>>>0]=b.getDate();(v(),C)[a+16>>>2>>>0]=b.getMonth();(v(),C)[a+20>>>2>>>0]=b.getYear();a=b.getTime();return BigInt(isNaN(a)?-1:a/1E3)}function xb(a,b,d,c,e,f,g){return n?U(16,1,a,b,d,c,e,f,g):-52}function yb(a,b,d,c,e,f){if(n)return U(17,1,a,b,d,c,e,f)}var X={},Ib=()=>performance.timeOrigin+performance.now();
35
+ function zb(a,b){if(n)return U(18,1,a,b);X[a]&&(clearTimeout(X[a].id),delete X[a]);if(!b)return 0;var d=setTimeout(()=>{delete X[a];jd(()=>Qc(a,performance.timeOrigin+performance.now()))},b);X[a]={id:d,lc:b};return 0}
36
+ var Y=(a,b,d)=>{var c=(v(),A);b>>>=0;if(0<d){var e=b;d=b+d-1;for(var f=0;f<a.length;++f){var g=a.codePointAt(f);if(127>=g){if(b>=d)break;c[b++>>>0]=g}else if(2047>=g){if(b+1>=d)break;c[b++>>>0]=192|g>>6;c[b++>>>0]=128|g&63}else if(65535>=g){if(b+2>=d)break;c[b++>>>0]=224|g>>12;c[b++>>>0]=128|g>>6&63;c[b++>>>0]=128|g&63}else{if(b+3>=d)break;c[b++>>>0]=240|g>>18;c[b++>>>0]=128|g>>12&63;c[b++>>>0]=128|g>>6&63;c[b++>>>0]=128|g&63;f++}}c[b>>>0]=0;a=b-e}else a=0;return a};
37
+ function Ab(a,b,d,c){a>>>=0;b>>>=0;d>>>=0;c>>>=0;var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);(v(),D)[a>>>2>>>0]=60*g;(v(),C)[b>>>2>>>0]=Number(f!=e);b=l=>{var u=Math.abs(l);return`UTC${0<=l?"-":"+"}${String(Math.floor(u/60)).padStart(2,"0")}${String(u%60).padStart(2,"0")}`};a=b(f);b=b(e);e<f?(Y(a,d,17),Y(b,c,17)):(Y(a,c,17),Y(b,d,17))}var Eb=()=>Date.now(),Cd=1;
38
+ function Bb(a,b,d){d>>>=0;if(!(0<=a&&3>=a))return 28;if(0===a)a=Date.now();else if(Cd)a=performance.timeOrigin+performance.now();else return 52;a=Math.round(1E6*a);(v(),H)[d>>>3>>>0]=BigInt(a);return 0}var Dd=[];function Cb(a,b,d){a>>>=0;b>>>=0;d>>>=0;Dd.length=0;for(var c;c=(v(),A)[b++>>>0];){var e=105!=c;e&=112!=c;d+=e&&d%8?4:0;Dd.push(112==c?(v(),D)[d>>>2>>>0]:106==c?(v(),H)[d>>>3>>>0]:105==c?(v(),C)[d>>>2>>>0]:(v(),G)[d>>>3>>>0]);d+=e?8:4}return xd[a](...Dd)}var Db=()=>{};
39
+ function Fb(a,b){return p(ud(a>>>0,b>>>0))}var Gb=()=>{T+=1;throw"unwind";};function Hb(){return 4294901760}var Jb=()=>m?require("os").cpus().length:navigator.hardwareConcurrency,Z={},Ed=a=>{for(var b=0,d=0;d<a.length;++d){var c=a.charCodeAt(d);127>=c?b++:2047>=c?b+=2:55296<=c&&57343>=c?(b+=4,++d):b+=3}return b},Fd=a=>{var b;return(b=/\bwasm-function\[\d+\]:(0x[0-9a-f]+)/.exec(a))?+b[1]:(b=/:(\d+):\d+(?:\)|$)/.exec(a))?2147483648|+b[1]:0},Gd=a=>{for(var b of a)(a=Fd(b))&&(Z[a]=b)};
40
+ function Mb(){var a=Error().stack.toString().split("\n");"Error"==a[0]&&a.shift();Gd(a);Z.Wb=Fd(a[3]);Z.ac=a;return Z.Wb}function Kb(a){a=Z[a>>>0];if(!a)return 0;var b;if(b=/^\s+at .*\.wasm\.(.*) \(.*\)$/.exec(a))a=b[1];else if(b=/^\s+at (.*) \(.*\)$/.exec(a))a=b[1];else if(b=/^(.+?)@/.exec(a))a=b[1];else return 0;Lc(Kb.Xb??0);b=Ed(a)+1;var d=Mc(b);d&&Y(a,d,b);Kb.Xb=d;return Kb.Xb}
41
+ function Lb(a){a>>>=0;var b=(v(),A).length;if(a<=b||4294901760<a)return!1;for(var d=1;4>=d;d*=2){var c=b*(1+.2/d);c=Math.min(c,a+100663296);a:{c=(Math.min(4294901760,65536*Math.ceil(Math.max(a,c)/65536))-x.buffer.byteLength+65535)/65536|0;try{x.grow(c);qa();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1}
42
+ function Nb(a,b,d){a>>>=0;b>>>=0;if(Z.Wb==a)var c=Z.ac;else c=Error().stack.toString().split("\n"),"Error"==c[0]&&c.shift(),Gd(c);for(var e=3;c[e]&&Fd(c[e])!=a;)++e;for(a=0;a<d&&c[a+e];++a)(v(),C)[b+4*a>>>2>>>0]=Fd(c[a+e]);return a}
43
+ var Hd={},Jd=()=>{if(!Id){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:ca||"./this.program"},b;for(b in Hd)void 0===Hd[b]?delete a[b]:a[b]=Hd[b];var d=[];for(b in a)d.push(`${b}=${a[b]}`);Id=d}return Id},Id;function Ob(a,b){if(n)return U(19,1,a,b);a>>>=0;b>>>=0;var d=0,c=0,e;for(e of Jd()){var f=b+d;(v(),D)[a+c>>>2>>>0]=f;d+=Y(e,f,Infinity)+1;c+=4}return 0}
44
+ function Pb(a,b){if(n)return U(20,1,a,b);a>>>=0;b>>>=0;var d=Jd();(v(),D)[a>>>2>>>0]=d.length;a=0;for(var c of d)a+=Ed(c)+1;(v(),D)[b>>>2>>>0]=a;return 0}function Rb(a){return n?U(21,1,a):52}function Sb(a,b,d,c){return n?U(22,1,a,b,d,c):52}function Tb(a,b,d,c){return n?U(23,1,a,b,d,c):70}var Kd=[null,[],[]];
45
+ function Ub(a,b,d,c){if(n)return U(24,1,a,b,d,c);b>>>=0;d>>>=0;c>>>=0;for(var e=0,f=0;f<d;f++){var g=(v(),D)[b>>>2>>>0],l=(v(),D)[b+4>>>2>>>0];b+=8;for(var u=0;u<l;u++){var w=a,y=(v(),A)[g+u>>>0],B=Kd[w];0===y||10===y?((1===w?oa:p)(td(B)),B.length=0):B.push(y)}e+=l}(v(),D)[c>>>2>>>0]=e;return 0}function Gc(a){return a>>>0}n||fd();n||(x=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),qa());h.wasmBinary&&(q=h.wasmBinary);h.stackSave=()=>N();h.stackRestore=a=>M(a);h.stackAlloc=a=>Tc(a);
46
+ h.setValue=function(a,b,d="i8"){d.endsWith("*")&&(d="*");switch(d){case "i1":(v(),z)[a>>>0]=b;break;case "i8":(v(),z)[a>>>0]=b;break;case "i16":(v(),Fa)[a>>>1>>>0]=b;break;case "i32":(v(),C)[a>>>2>>>0]=b;break;case "i64":(v(),H)[a>>>3>>>0]=BigInt(b);break;case "float":(v(),Ga)[a>>>2>>>0]=b;break;case "double":(v(),G)[a>>>3>>>0]=b;break;case "*":(v(),D)[a>>>2>>>0]=b;break;default:J(`invalid type for setValue: ${d}`)}};
47
+ h.getValue=function(a,b="i8"){b.endsWith("*")&&(b="*");switch(b){case "i1":return(v(),z)[a>>>0];case "i8":return(v(),z)[a>>>0];case "i16":return(v(),Fa)[a>>>1>>>0];case "i32":return(v(),C)[a>>>2>>>0];case "i64":return(v(),H)[a>>>3>>>0];case "float":return(v(),Ga)[a>>>2>>>0];case "double":return(v(),G)[a>>>3>>>0];case "*":return(v(),D)[a>>>2>>>0];default:J(`invalid type for getValue: ${b}`)}};h.UTF8ToString=ud;h.stringToUTF8=Y;h.lengthBytesUTF8=Ed;
48
+ var yd=[Hc,ed,rd,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb,mb,xb,yb,zb,Ob,Pb,Rb,Sb,Tb,Ub],xd={887900:(a,b,d,c,e)=>{if("undefined"==typeof h||!h.Sb)return 1;a=ud(Number(a>>>0));a.startsWith("./")&&(a=a.substring(2));a=h.Sb.get(a);if(!a)return 2;b=Number(b>>>0);d=Number(d>>>0);c=Number(c>>>0);if(b+d>a.byteLength)return 3;try{const f=a.subarray(b,b+d);switch(e){case 0:(v(),A).set(f,c>>>0);break;case 1:h.hc?h.hc(c,f):h.jc(c,f);break;default:return 4}return 0}catch{return 4}},888724:()=>"undefined"!==typeof wasmOffsetConverter};
49
+ function Qa(){return"undefined"!==typeof wasmOffsetConverter}var Kc,Lc,Mc,za,Ea,Nc,Oc,Pc,Qc,Rc,K,L,Sc,M,Tc,N,Uc,Vc,Wc,Xc,Yc,Pa;function bc(a,b,d,c){var e=N();try{return V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function ac(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function sc(a,b,d){var c=N();try{V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function $b(a,b){var d=N();try{return V(a)(b)}catch(c){M(d);if(c!==c+0)throw c;K(1,0)}}
50
+ function qc(a){var b=N();try{V(a)()}catch(d){M(b);if(d!==d+0)throw d;K(1,0)}}function fc(a,b,d,c,e,f,g){var l=N();try{return V(a)(b,d,c,e,f,g)}catch(u){M(l);if(u!==u+0)throw u;K(1,0)}}function rc(a,b){var d=N();try{V(a)(b)}catch(c){M(d);if(c!==c+0)throw c;K(1,0)}}function wc(a,b,d,c,e,f){var g=N();try{V(a)(b,d,c,e,f)}catch(l){M(g);if(l!==l+0)throw l;K(1,0)}}function uc(a,b,d,c){var e=N();try{V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}
51
+ function vc(a,b,d,c,e){var f=N();try{V(a)(b,d,c,e)}catch(g){M(f);if(g!==g+0)throw g;K(1,0)}}function xc(a,b,d,c,e,f,g){var l=N();try{V(a)(b,d,c,e,f,g)}catch(u){M(l);if(u!==u+0)throw u;K(1,0)}}function Ec(a,b,d,c,e,f,g){var l=N();try{V(a)(b,d,c,e,f,g)}catch(u){M(l);if(u!==u+0)throw u;K(1,0)}}function Dc(a,b,d,c,e,f,g,l){var u=N();try{V(a)(b,d,c,e,f,g,l)}catch(w){M(u);if(w!==w+0)throw w;K(1,0)}}function cc(a,b,d,c,e){var f=N();try{return V(a)(b,d,c,e)}catch(g){M(f);if(g!==g+0)throw g;K(1,0)}}
52
+ function yc(a,b,d,c,e,f,g,l){var u=N();try{V(a)(b,d,c,e,f,g,l)}catch(w){M(u);if(w!==w+0)throw w;K(1,0)}}function Bc(a,b,d,c,e,f,g,l,u,w,y,B){var E=N();try{V(a)(b,d,c,e,f,g,l,u,w,y,B)}catch(F){M(E);if(F!==F+0)throw F;K(1,0)}}function ec(a,b,d,c,e,f){var g=N();try{return V(a)(b,d,c,e,f)}catch(l){M(g);if(l!==l+0)throw l;K(1,0)}}function oc(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0);return 0n}}
53
+ function zc(a,b,d,c,e,f,g,l,u){var w=N();try{V(a)(b,d,c,e,f,g,l,u)}catch(y){M(w);if(y!==y+0)throw y;K(1,0)}}function Zb(a){var b=N();try{return V(a)()}catch(d){M(b);if(d!==d+0)throw d;K(1,0)}}function lc(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function nc(a,b){var d=N();try{return V(a)(b)}catch(c){M(d);if(c!==c+0)throw c;K(1,0);return 0n}}function Fc(a,b,d,c,e){var f=N();try{V(a)(b,d,c,e)}catch(g){M(f);if(g!==g+0)throw g;K(1,0)}}
54
+ function mc(a){var b=N();try{return V(a)()}catch(d){M(b);if(d!==d+0)throw d;K(1,0);return 0n}}function ic(a,b,d,c,e,f){var g=N();try{return V(a)(b,d,c,e,f)}catch(l){M(g);if(l!==l+0)throw l;K(1,0)}}function dc(a,b,d,c,e,f){var g=N();try{return V(a)(b,d,c,e,f)}catch(l){M(g);if(l!==l+0)throw l;K(1,0)}}function gc(a,b,d,c,e,f,g,l){var u=N();try{return V(a)(b,d,c,e,f,g,l)}catch(w){M(u);if(w!==w+0)throw w;K(1,0)}}
55
+ function pc(a,b,d,c,e){var f=N();try{return V(a)(b,d,c,e)}catch(g){M(f);if(g!==g+0)throw g;K(1,0);return 0n}}function Yb(a,b,d,c){var e=N();try{return V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function Wb(a,b,d,c){var e=N();try{return V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function hc(a,b,d,c,e,f,g,l,u,w,y,B){var E=N();try{return V(a)(b,d,c,e,f,g,l,u,w,y,B)}catch(F){M(E);if(F!==F+0)throw F;K(1,0)}}
56
+ function Ac(a,b,d,c,e,f,g,l,u,w,y){var B=N();try{V(a)(b,d,c,e,f,g,l,u,w,y)}catch(E){M(B);if(E!==E+0)throw E;K(1,0)}}function Cc(a,b,d,c,e,f,g,l,u,w,y,B,E,F,Ld,Md){var Nd=N();try{V(a)(b,d,c,e,f,g,l,u,w,y,B,E,F,Ld,Md)}catch(Ma){M(Nd);if(Ma!==Ma+0)throw Ma;K(1,0)}}function kc(a,b,d,c){var e=N();try{return V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function jc(a,b,d,c,e){var f=N();try{return V(a)(b,d,c,e)}catch(g){M(f);if(g!==g+0)throw g;K(1,0)}}
57
+ function Xb(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function Vb(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function tc(a,b,d,c){var e=N();try{V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function Ic(){var a=I;a=Object.assign({},a);var b=c=>()=>c()>>>0,d=c=>e=>c(e)>>>0;a.tb=b(a.tb);a.vb=d(a.vb);a.Jb=d(a.Jb);a.Kb=b(a.Kb);a.Ob=d(a.Ob);return a}
58
+ function xa(){if(0<O)P=xa;else if(n)ra?.(h),Ia();else{for(var a=ad;0<a.length;)a.shift()(h);0<O?P=xa:(h.calledRun=!0,pa||(Ia(),ra?.(h)))}}var I;n||(I=await (wa()),xa());h.PTR_SIZE=4;Ha?moduleRtn=h:moduleRtn=new Promise((a,b)=>{ra=a;sa=b});
59
+ ;return moduleRtn}export default ortWasmThreaded;var isPthread=globalThis.self?.name?.startsWith("em-pthread");var isNode=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(isNode)isPthread=(await import("worker_threads")).workerData==="em-pthread";isPthread&&ortWasmThreaded();
Binary file
@@ -0,0 +1 @@
1
+ (()=>{"use strict";var e={710:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.log=void 0;const s=e=>t=>{console.log(`VAD | ${e} >`,t)};t.log={error:s("error"),debug:s("debug"),warn:s("warn")}},954:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.Message=void 0,function(e){e.AudioFrame="AUDIO_FRAME",e.SpeechStart="SPEECH_START",e.VADMisfire="VAD_MISFIRE",e.SpeechEnd="SPEECH_END",e.SpeechStop="SPEECH_STOP",e.SpeechRealStart="SPEECH_REAL_START",e.FrameProcessed="FRAME_PROCESSED"}(s||(t.Message=s={}))},825:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Resampler=void 0;const r=s(710);t.Resampler=class{constructor(e){this.options=e,this.process=e=>{const t=[];for(const s of e)for(this.inputBuffer.push(s);this.hasEnoughDataForFrame();){const e=this.generateOutputFrame();t.push(e)}return t},e.nativeSampleRate<16e3&&r.log.error("nativeSampleRate is too low. Should have 16000 = targetSampleRate <= nativeSampleRate"),this.inputBuffer=[]}async*stream(e){for(const t of e)for(this.inputBuffer.push(t);this.hasEnoughDataForFrame();){const e=this.generateOutputFrame();yield e}}hasEnoughDataForFrame(){return this.inputBuffer.length*this.options.targetSampleRate/this.options.nativeSampleRate>=this.options.targetFrameSize}generateOutputFrame(){const e=new Float32Array(this.options.targetFrameSize);let t=0,s=0;for(;t<this.options.targetFrameSize;){let r=0,o=0;for(;s<Math.min(this.inputBuffer.length,(t+1)*this.options.nativeSampleRate/this.options.targetSampleRate);){const e=this.inputBuffer[s];void 0!==e&&(r+=e,o++),s++}e[t]=r/o,t++}return this.inputBuffer=this.inputBuffer.slice(s),e}}}},t={};function s(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,s),a.exports}(()=>{const e=s(710),t=s(954),r=s(825);class o extends AudioWorkletProcessor{constructor(s){super(),this._stopProcessing=!1,this.options=s.processorOptions,this.port.onmessage=s=>{s.data===t.Message.SpeechStop&&(e.log.debug("Worklet received speech stop message"),this._stopProcessing=!0)},this.resampler=new r.Resampler({nativeSampleRate:sampleRate,targetSampleRate:16e3,targetFrameSize:this.options.frameSamples})}process(e){if(this._stopProcessing)return!1;const s=e[0];if(void 0===s)return!0;const r=s[0];if(void 0===r)return!0;const o=this.resampler.process(r);for(const e of o)this.port.postMessage({message:t.Message.AudioFrame,data:e.buffer},[e.buffer]);return!0}}registerProcessor("vad-helper-worklet",o)})()})();
@@ -14,6 +14,7 @@ export class MessageModel {
14
14
  public attributes: any,
15
15
  public channel_type: string,
16
16
  public isSender: boolean,
17
- public emoticon?: boolean
17
+ public emoticon?: boolean,
18
+ public isJustRecived?: boolean
18
19
  ) { }
19
20
  }