@talkjs/react-components 0.0.24 → 0.0.26

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/default.js CHANGED
@@ -1,33 +1,33 @@
1
1
  "use client";
2
- import Vn from "htm";
3
- import oe, { useMemo as Y, useRef as b, useState as B, useEffect as v, useCallback as H, createElement as te, Fragment as xn, useLayoutEffect as Ae, useContext as Xn, forwardRef as Ye, useImperativeHandle as Ft } from "react";
4
- import * as Gn from "universal-base64";
5
- import { jsx as A, jsxs as x, Fragment as me } from "react/jsx-runtime";
6
- import zn from "wavesurfer.js";
7
- import { Decoration as Vt, DecorationSet as xt, EditorView as Kn } from "prosemirror-view";
8
- import { Schema as Wn } from "prosemirror-model";
9
- import { PluginKey as Xt, Plugin as Gt, TextSelection as _t, EditorState as qn } from "prosemirror-state";
2
+ import Fn from "htm";
3
+ import oe, { useMemo as H, useRef as y, useState as b, useEffect as v, useCallback as B, createElement as te, Fragment as Vn, useLayoutEffect as Ae, useContext as xn, forwardRef as $e, useImperativeHandle as Ft } from "react";
4
+ import * as Xn from "universal-base64";
5
+ import { jsx as O, jsxs as x, Fragment as me } from "react/jsx-runtime";
6
+ import Gn from "wavesurfer.js";
7
+ import { Decoration as Vt, DecorationSet as xt, EditorView as zn } from "prosemirror-view";
8
+ import { Schema as Kn } from "prosemirror-model";
9
+ import { PluginKey as Xt, Plugin as Gt, TextSelection as _t, EditorState as Wn } from "prosemirror-state";
10
10
  import { keymap as ct } from "prosemirror-keymap";
11
- import { history as Jn, undo as Zn, redo as Qn } from "prosemirror-history";
11
+ import { history as qn, undo as Jn, redo as Zn } from "prosemirror-history";
12
12
  import { baseKeymap as ke } from "prosemirror-commands";
13
- import ea, { EmailMatch as ta, UrlMatch as na } from "autolinker";
14
- import { ReplaceStep as aa } from "prosemirror-transform";
15
- import { observable as U, opaqueObject as At, batch as le, observe as Ot, configureLegendState as ia, internal as sa } from "@legendapp/state";
16
- import { useSession as Ce, useStore as f, useController as Oe, useTheme as G, useEditorInternals as ge, useEmojiPicker as ra, usePopover as oa, EmojiPickerContext as zt, PopoverContext as Ea, useChatboxCallbacks as la, EditorInternalsContext as Kt, PermissionContext as Wt, StoreContext as qt, ThemeContext as Jt, ControllerContext as Zt, SessionContext as Qt, ChatboxCallbacksContext as _a } from "./globalConstants.js";
17
- import { useObservable as ee, useSelector as k, useObserveEffect as _e, For as Je } from "@legendapp/state/react";
18
- import { CSSTransition as ca } from "react-transition-group";
19
- import { useFloating as Aa } from "@floating-ui/react-dom";
20
- import * as xe from "@radix-ui/react-popover";
13
+ import Qn, { EmailMatch as ea, UrlMatch as ta } from "autolinker";
14
+ import { ReplaceStep as na } from "prosemirror-transform";
15
+ import { observable as U, opaqueObject as At, batch as le, observe as Ot, configureLegendState as aa, internal as ia } from "@legendapp/state";
16
+ import { useSession as Ce, useStore as f, useController as Oe, useTheme as G, useEditorInternals as ge, useEmojiPicker as sa, usePopover as ra, EmojiPickerContext as zt, PopoverContext as oa, useChatboxCallbacks as Ea, EditorInternalsContext as Kt, PermissionContext as Wt, StoreContext as qt, ThemeContext as Jt, ControllerContext as Zt, SessionContext as Qt, ChatboxCallbacksContext as la } from "./globalConstants.js";
17
+ import { useObservable as ee, useSelector as k, useObserveEffect as _e, For as Ze } from "@legendapp/state/react";
18
+ import { CSSTransition as _a } from "react-transition-group";
19
+ import { useFloating as ca } from "@floating-ui/react-dom";
20
+ import * as Xe from "@radix-ui/react-popover";
21
21
  import * as Pe from "@radix-ui/react-dropdown-menu";
22
22
  import { ErrorBoundary as en } from "react-error-boundary";
23
- import { getTalkSession as Oa } from "@talkjs/core";
24
- import Ta from "lodash.merge";
25
- import { polyfillCountryFlagEmojis as ua } from "country-flag-emoji-polyfill";
23
+ import { getTalkSession as Aa } from "@talkjs/core";
24
+ import Oa from "lodash.merge";
25
+ import { polyfillCountryFlagEmojis as Ta } from "country-flag-emoji-polyfill";
26
26
  import "react-dom/client";
27
- var da = { TALK_GMK: "AIzaSyAs_WXNLlj31EHJI_Lw8siO2B3ZJLUzBH0", BASE_URL: "/", MODE: "production", DEV: !1, PROD: !0, SSR: !1 };
28
- const Sa = function(e) {
29
- return da[e];
30
- }("TALK_GMK"), Ia = /[^a-zA-Z\u00C0-\u024F\u1E00-\u1EFF\u0400-\u044f\u0300-\u036e]+/, Na = (e) => e.split(Ia).filter((t) => t).map((t) => t[0]).join("") || e[Symbol.iterator]().next().value || "";
27
+ var ua = { TALK_GMK: "AIzaSyAs_WXNLlj31EHJI_Lw8siO2B3ZJLUzBH0", BASE_URL: "/", MODE: "production", DEV: !1, PROD: !0, SSR: !1 };
28
+ const da = function(e) {
29
+ return ua[e];
30
+ }("TALK_GMK"), Sa = /[^a-zA-Z\u00C0-\u024F\u1E00-\u1EFF\u0400-\u044f\u0300-\u036e]+/, Ia = (e) => e.split(Sa).filter((t) => t).map((t) => t[0]).join("") || e[Symbol.iterator]().next().value || "";
31
31
  function tn(e) {
32
32
  const t = function(n) {
33
33
  let a = 0;
@@ -50,9 +50,9 @@ function fe(e) {
50
50
  function Tt(e, t) {
51
51
  return e.localeCompare(t, void 0, { usage: "search", sensitivity: "base" }) === 0;
52
52
  }
53
- const ut = ["#996666", "#9A6E61", "#8D7662", "#8E775E", "#948771", "#8A8360", "#888D65", "#6F8E63", "#749378", "#678975", "#779E86", "#639A8F", "#6D92A1", "#65869F", "#697E9A", "#736C9F", "#8C6495", "#956387", "#B05D54", "#B16D52", "#AF8751", "#AC8A56", "#B7A458", "#B5B35C", "#83AA5D", "#4F9D5D", "#5FA777", "#66B58F", "#5FB3AC", "#589AAF", "#4E7F9E", "#456CAC", "#6456B7", "#714AB2", "#9771B5", "#C154C1", "#B05E81", "#B04C6A", "#B94E48", "#AF593E", "#C5994B", "#B8C25D", "#87AB39", "#4FA83D", "#40A860", "#41AA78", "#3AB09E", "#3FC1AA", "#56B4BE", "#3EABBF", "#4682B4", "#7A58C1", "#9966CC", "#C54B8C", "#B44668", "#AE4560", "#A3807B", "#AB917A", "#ACA586", "#A8AF8E", "#9EA587", "#8BA690", "#7DA98D", "#7CB0A1", "#8BA9A5", "#7CA1A6", "#859FAF", "#8D90A1", "#A397B4", "#AE809E", "#C08081", "#BB8983", "#B19461", "#B5A27F", "#B8B56A", "#9AB973", "#7AC488", "#7CB7BB", "#80B3C4", "#788BBA", "#7A89B8", "#9678B6", "#CB8FA9", "#B57281", "#C6726B", "#C88A65", "#C2955D", "#C8B568", "#B9C46A", "#74C365", "#6FD0C5", "#6093D1", "#7666C6", "#D06DA1"], Ra = Symbol("no_render");
53
+ const ut = ["#996666", "#9A6E61", "#8D7662", "#8E775E", "#948771", "#8A8360", "#888D65", "#6F8E63", "#749378", "#678975", "#779E86", "#639A8F", "#6D92A1", "#65869F", "#697E9A", "#736C9F", "#8C6495", "#956387", "#B05D54", "#B16D52", "#AF8751", "#AC8A56", "#B7A458", "#B5B35C", "#83AA5D", "#4F9D5D", "#5FA777", "#66B58F", "#5FB3AC", "#589AAF", "#4E7F9E", "#456CAC", "#6456B7", "#714AB2", "#9771B5", "#C154C1", "#B05E81", "#B04C6A", "#B94E48", "#AF593E", "#C5994B", "#B8C25D", "#87AB39", "#4FA83D", "#40A860", "#41AA78", "#3AB09E", "#3FC1AA", "#56B4BE", "#3EABBF", "#4682B4", "#7A58C1", "#9966CC", "#C54B8C", "#B44668", "#AE4560", "#A3807B", "#AB917A", "#ACA586", "#A8AF8E", "#9EA587", "#8BA690", "#7DA98D", "#7CB0A1", "#8BA9A5", "#7CA1A6", "#859FAF", "#8D90A1", "#A397B4", "#AE809E", "#C08081", "#BB8983", "#B19461", "#B5A27F", "#B8B56A", "#9AB973", "#7AC488", "#7CB7BB", "#80B3C4", "#788BBA", "#7A89B8", "#9678B6", "#CB8FA9", "#B57281", "#C6726B", "#C88A65", "#C2955D", "#C8B568", "#B9C46A", "#74C365", "#6FD0C5", "#6093D1", "#7666C6", "#D06DA1"], Na = Symbol("no_render");
54
54
  function V(e) {
55
- const t = ee(!1), n = b({ _value: typeof e == "function" ? e() : e.peek(), get value() {
55
+ const t = ee(!1), n = y({ _value: typeof e == "function" ? e() : e.peek(), get value() {
56
56
  return setTimeout(() => {
57
57
  t.set(!0);
58
58
  }), n.current._value;
@@ -60,14 +60,14 @@ function V(e) {
60
60
  n.current._value = a;
61
61
  } });
62
62
  return k(() => {
63
- if (!t.get()) return Ra;
63
+ if (!t.get()) return Na;
64
64
  const a = typeof e == "function" ? e() : e.get();
65
65
  return n.current.value = a, a;
66
66
  }), n.current;
67
67
  }
68
68
  function Te() {
69
- const e = Ce(), t = f(), n = Oe(), a = G(), i = V(t.app$.appMetadata), s = V(t.currentUser$), r = V(t.state$.currentConversation), o = V(t.t$), E = V(t.device$), l = V(t.themeCustom$), _ = V(() => t.state$.typing.child(t.state$.extCurrentConversationId.get()).get()), O = V(() => t.state$.participants.child(t.state$.extCurrentConversationId.get()).get());
70
- return Y(() => ({ session: e, store: t, chatbox: n, theme: a, get app() {
69
+ const e = Ce(), t = f(), n = Oe(), a = G(), i = V(t.app$.appMetadata), s = V(t.currentUser$), r = V(t.state$.currentConversation), o = V(t.t$), E = V(t.device$), l = V(t.themeCustom$), _ = V(() => t.state$.typing.child(t.state$.extCurrentConversationId.get()).get()), c = V(() => t.state$.participants.child(t.state$.extCurrentConversationId.get()).get());
70
+ return H(() => ({ session: e, store: t, chatbox: n, theme: a, get app() {
71
71
  return i.value;
72
72
  }, get currentUser() {
73
73
  return s.value;
@@ -82,12 +82,12 @@ function Te() {
82
82
  }, get typing() {
83
83
  return _.value;
84
84
  }, get participants() {
85
- return O.value;
86
- } }), [i, n, r, s, E, t, o, a, l, _, O, e]);
85
+ return c.value;
86
+ } }), [i, n, r, s, E, t, o, a, l, _, c, e]);
87
87
  }
88
88
  function nn() {
89
89
  const e = Ce(), t = f(), n = G(), a = Oe(), i = V(t.app$.appMetadata), s = V(t.currentUser$), r = V(t.t$), o = V(t.device$), E = V(t.themeCustom$);
90
- return Y(() => ({ session: e, store: t, theme: n, conversationList: a, get app() {
90
+ return H(() => ({ session: e, store: t, theme: n, conversationList: a, get app() {
91
91
  return i.value;
92
92
  }, get currentUser() {
93
93
  return s.value;
@@ -99,12 +99,12 @@ function nn() {
99
99
  return E.value.value;
100
100
  } }), [i, a, s, o, e, t, r, n, E]);
101
101
  }
102
- class $e {
102
+ class je {
103
103
  constructor(t = {}) {
104
104
  this._handlers = /* @__PURE__ */ new Set(), this._meta = t;
105
105
  }
106
106
  meta(t) {
107
- return new $e(t);
107
+ return new je(t);
108
108
  }
109
109
  _emit(t, n) {
110
110
  for (const a of this._handlers) a({ level: t, data: n, timestamp: Date.now(), meta: this._meta });
@@ -128,19 +128,19 @@ class $e {
128
128
  return this._handlers.add(t), () => this._handlers.delete(t);
129
129
  }
130
130
  }
131
- const Ze = new $e(), Q = new $e(), c = { code: "en-US", name: "English (US)", translation: { YESTERDAY: "Yesterday", TODAY: "Today", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "just now", LOCATION: "Location", CANCEL: "Cancel", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browser notifications", DESKTOP_NOTIFICATIONS_ERROR: "Can't enable browser notifications because your browser actively blocks them. Try looking in the settings or using a different browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notification`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "If you keep your browser tab open, you'll see this pop up when someone talks to you.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Only 10,000 characters are allowed.", ENTRYBOX_PLACEHOLDER: "Say something...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "This conversation is no longer active.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "You can read, but not send messages.", MESSAGELIST_LOADING_OLDER: "Loading older messages...", MESSAGELIST_SHOW_OLDER: "Show older messages", MESSAGELIST_NEW_MARKER: "New", MESSAGE_SENT_VIA_EMAIL: "This message was sent via email", YOU_MARKER: "you", UPLOAD_IN_PROGRESS: "Uploading...", UPLOAD_SEND_FILE: "Send file", UPLOAD_SHARE_LOCATION: "Share location", UPLOAD_ERROR: "Unfortunately, something went wrong uploading. The file might be unsupported or too large.", SHARE_LOCATION_ERROR: "Cannot share location: ", LOADING: "Loading...", HUB_EMPTY: "Your chat history will show up here", HUB_SHOW_EARLIER: "Show earlier chats", INBOX_NO_CHATS_TITLE: "No chats yet!", INBOX_NO_CHATS_BODY: "Once you've had one or more conversations, they will show up here.", ENABLE_TRANSLATION: "Translate this conversation to English", DISABLE_TRANSLATION: "Show original", SEARCH_PLACEHOLDER_TEXT: "Search...", SEARCH_SEARCHING: "Searching...", SEARCH_NO_RESULTS: "No results found", SEARCH_NO_MORE_RESULTS: "No more results", CHAT_NOT_FOUND: "Chat not found", DELETE_MESSAGE: "Delete message", DELETION_EXPLANATION: "If you delete this message, it will disappear for everybody.", EDIT_MESSAGE: "Edit message", SAVE: "Save", EDITED_INDICATOR: "edited", REPLY_TO_MESSAGE: "Reply", REPLY_TO_ARIA_LABEL: (e, t) => `Replying to ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Exit reply mode", ADD_REACTION: "Add reaction", AUTH_EXPIRED_OVERLAY_TITLE: "Your chat session has expired", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Refresh the page to continue", VOICE_MESSAGE: "Voice message", LEAVE_CONVERSATION: "Leave conversation", MARK_CONVERSATION_AS_UNREAD: "Mark as unread", STATUS_INDICATOR_ONLINE: "Active", STATUS_INDICATOR_OFFLINE: "Away", CONTACT_INFORMATION_HIDDEN: "hidden information" } }, La = { code: "ar", name: "Arabic", translation: { YESTERDAY: "الأمس", TODAY: "اليوم", DAYS: "يوم", HOURS: "ساعة", MINUTES: "دقيقة", JUST_NOW: "فقط الآن", LOCATION: "الموقع", CANCEL: "إلغاء", INBOX: "علبة الوارد", DESKTOP_NOTIFICATIONS: "إشعارات المتصفح", DESKTOP_NOTIFICATIONS_ERROR: "لا يمكن تمكين إشعارات المتصفح لأن متصفحك يمنعها بشكل نشط. جرّب البحث في الإعدادات أو استخدام متصفح آخر.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `إعلام ${e} التجريبي`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "إذا أبقيت علامة تبويب المتصفح مفتوحة ، فسترى هذا ينبثق عندما يتحدث شخص معك.", SEND_BUTTON_TEXT: "إرسال", ENTRYBOX_TEXT_LIMIT: "يُسمح فقط بـ 10.000 حرف.", ENTRYBOX_PLACEHOLDER: "قل شيئًا ...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "هذه المحادثة لم تعد نشطة.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "يمكنك القراءة ، لكن لا يمكنك إرسال الرسائل.", MESSAGELIST_LOADING_OLDER: "جارٍ تحميل الرسائل القديمة ...", MESSAGELIST_SHOW_OLDER: "عرض الرسائل الأقدم", MESSAGELIST_NEW_MARKER: "جديد", MESSAGE_SENT_VIA_EMAIL: "تم إرسال هذه الرسالة عبر البريد الإلكتروني", YOU_MARKER: "أنت", UPLOAD_IN_PROGRESS: "جارٍ التحميل ...", UPLOAD_SEND_FILE: "إرسال ملف", UPLOAD_SHARE_LOCATION: "مشاركة الموقع", UPLOAD_ERROR: "حدث خطأ ما في تحميل شيء. ربما يكون الملف غير متوافق أو كبير جدًا.", SHARE_LOCATION_ERROR: "لا يمكن مشاركة الموقع:", LOADING: "جارٍ التحميل ...", HUB_EMPTY: "سوف يظهر سجل الدردشات هنا", HUB_SHOW_EARLIER: "إظهار الدردشات السابقة", INBOX_NO_CHATS_TITLE: "لا توجد دردشات بعد!", INBOX_NO_CHATS_BODY: "بمجرد أن يكون لديك واحد أو أكثر من المحادثات ، سوف تظهر هنا.", ENABLE_TRANSLATION: "ترجم هذه المحادثة إلى العربية", DISABLE_TRANSLATION: "إظهار الأصلي", SEARCH_PLACEHOLDER_TEXT: "...بحث", SEARCH_SEARCHING: "...يتم الآن البحث", SEARCH_NO_RESULTS: "لم يتم العثور على نتائج", SEARCH_NO_MORE_RESULTS: "لا يوجد المزيد من النتائج", CHAT_NOT_FOUND: "لم يتم العثور على الدردشة", DELETE_MESSAGE: "احذف الرسالة", DELETION_EXPLANATION: "إذا قمت بحذف هذه الرسالة، فهي ستختفي للجميع.", EDIT_MESSAGE: "تعديل الرسالة", SAVE: "حفظ", EDITED_INDICATOR: "معدّلة", REPLY_TO_MESSAGE: "رد", ADD_REACTION: "أضف تفاعلاً", AUTH_EXPIRED_OVERLAY_TITLE: "انتهت جلسة الدردشة المخصصة لك", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "يُرجى إعادة تحميل الصفحة للمتابعة", VOICE_MESSAGE: "رسالة صوتية", CONTACT_INFORMATION_HIDDEN: "المعلومات المخفية", LEAVE_CONVERSATION: "الخروج من المحادثة", MARK_CONVERSATION_AS_UNREAD: "وضع علامة غير مقروءة", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ma = { code: "bg-BG", name: "Bulgarian", translation: { YESTERDAY: "Вчера", TODAY: "Днес", DAYS: "Ден", HOURS: "Час", MINUTES: "m", JUST_NOW: "Току-що", LOCATION: "местоположението", CANCEL: "Откажи", INBOX: "Кутия", DESKTOP_NOTIFICATIONS: "Известия на браузъра", DESKTOP_NOTIFICATIONS_ERROR: "Не можете да активирате известията на браузъра, защото браузърът ви ги блокира активно. Опитайте да погледнете в настройките или да използвате друг браузър.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} демо известие`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ако държите раздела на браузъра си отворен, ще видите този изскачащ прозорец, когато някой говори с вас.", SEND_BUTTON_TEXT: "Изпрати", ENTRYBOX_TEXT_LIMIT: "Разрешени са само до 10.000 знака.", ENTRYBOX_PLACEHOLDER: "Кажете нещо...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Този ​​разговор вече не е активен.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Можете да четете, но не и да изпращате съобщения.", MESSAGELIST_LOADING_OLDER: "Зареждане на по-стари съобщения...", MESSAGELIST_SHOW_OLDER: "Показване на по-стари съобщения", MESSAGELIST_NEW_MARKER: "Нови", MESSAGE_SENT_VIA_EMAIL: "Това съобщение беше изпратено по имейл", YOU_MARKER: "Вие", UPLOAD_IN_PROGRESS: "Качване...", UPLOAD_SEND_FILE: "Изпращане на файл", UPLOAD_SHARE_LOCATION: "Споделяне на местоположението", UPLOAD_ERROR: "За съжаление нещо се обърка при качването. Файлът може да не се поддържа или е твърде голям.", SHARE_LOCATION_ERROR: "Не може да се сподели местоположението: ", LOADING: "Зареждане...", HUB_EMPTY: "Историята на вашите разговори ще се покаже тук", HUB_SHOW_EARLIER: "Показване на по-ранни чатове", INBOX_NO_CHATS_TITLE: "Все още нямате разговори!", INBOX_NO_CHATS_BODY: "След като проведете един или повече разговори, те ще се покажат тук.", ENABLE_TRANSLATION: "Преведете този разговор на български", DISABLE_TRANSLATION: "Показване на оригинал", SEARCH_PLACEHOLDER_TEXT: "Търсене...", SEARCH_SEARCHING: "Търсене...", SEARCH_NO_RESULTS: "Няма намерени резултати", SEARCH_NO_MORE_RESULTS: "Няма повече резултати", CHAT_NOT_FOUND: "Чатът не е намерен", DELETE_MESSAGE: "Изтриване на съобщение", DELETION_EXPLANATION: "Ако изтриете това съобщение, то ще изчезне за всички.", EDIT_MESSAGE: "Редактиране на съобщението", SAVE: "Запиши", EDITED_INDICATOR: "редактирано", REPLY_TO_MESSAGE: "Отговори", ADD_REACTION: "Добави реакция", AUTH_EXPIRED_OVERLAY_TITLE: "Вашата чат сесия е изтекла", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Обновете страницата, за да продължите", VOICE_MESSAGE: "Гласово съобщение", CONTACT_INFORMATION_HIDDEN: "Скрита информация", LEAVE_CONVERSATION: "Напускане на разговора", MARK_CONVERSATION_AS_UNREAD: "Маркирай като непрочетено", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, pa = { code: "bs-BA", name: "Bosnian", translation: { YESTERDAY: "Jučer", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Obavijesti preglednika", DESKTOP_NOTIFICATIONS_ERROR: "Notifikacije preglednika se ne mogu omogućiti jer ih vaš preglednik aktivno blokira. Pokušajte pregledati postavke ili koristiti drugi preglednik.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu preglednika ostavite otvorenu, pojavit će se ovaj pop-up kada netko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Reci nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možeš čitati, ali ne i slati poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana e-poštom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podijeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podijeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovdje će se prikazati vaša povijest razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovdje.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na bosanski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Ćaskanje nije pronađeno", DELETE_MESSAGE: "Obriši poruku", DELETION_EXPLANATION: "Ako izbrišete ovu poruku, ona će nestati za sve.", EDIT_MESSAGE: "Uredi poruku", SAVE: "Sačuvati", EDITED_INDICATOR: "uređeno", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodajte reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša chat sesija je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvježite stranicu da nastavite", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Skrivene informacije", LEAVE_CONVERSATION: "Napusti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitano", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ha = { code: "ca-ES", name: "Catalan (ES)", translation: { YESTERDAY: "Ahir", TODAY: "Avui", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "ara mateix", LOCATION: "Ubicació", CANCEL: "Cancel·lar", INBOX: "Safata d'entrada", DESKTOP_NOTIFICATIONS: "Notificacions d'escriptori", DESKTOP_NOTIFICATIONS_ERROR: "No es poden habilitar les notificacions del navegador perquè el teu navegador les bloqueja activament. Prova de buscar a la configuració o utilitza un altre navegador.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notificació de demostració de ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si mantens la pestanya del navegador oberta, veuràs aquesta notificació quan algú et parli.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Només es permeten 10.000 caràcters.", ENTRYBOX_PLACEHOLDER: "Digues alguna cosa...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Aquesta conversa ja no està activa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Pots llegir, però no enviar missatges.", MESSAGELIST_LOADING_OLDER: "Carregant missatges antics...", MESSAGELIST_SHOW_OLDER: "Mostrar missatges més antics", MESSAGELIST_NEW_MARKER: "Nou", MESSAGE_SENT_VIA_EMAIL: "Aquest missatge s'ha enviat per correu electrònic", YOU_MARKER: "tu", UPLOAD_IN_PROGRESS: "S'està pujant...", UPLOAD_SEND_FILE: "Enviar arxiu", UPLOAD_SHARE_LOCATION: "Compartir ubicació", UPLOAD_ERROR: "Desafortunadament, alguna cosa ha anat malament en pujar. L'arxiu pot ser no compatible o massa gran.", SHARE_LOCATION_ERROR: "No es pot compartir la ubicació: ", LOADING: "Carregant...", HUB_EMPTY: "El teu historial de xat apareixerà aquí", HUB_SHOW_EARLIER: "Mostra xats anteriors", INBOX_NO_CHATS_TITLE: "Encara no hi ha xats!", INBOX_NO_CHATS_BODY: "Un cop hagis tingut una o més converses, apareixeran aquí.", ENABLE_TRANSLATION: "Traduir aquesta conversa al català", DISABLE_TRANSLATION: "Mostrar original", SEARCH_PLACEHOLDER_TEXT: "Cerca...", SEARCH_SEARCHING: "Buscant...", SEARCH_NO_RESULTS: "No s'han trobat resultats", SEARCH_NO_MORE_RESULTS: "No hi ha més resultats", CHAT_NOT_FOUND: "Xat no trobat", DELETE_MESSAGE: "Esborrar missatge", DELETION_EXPLANATION: "Si esborres aquest missatge, desapareixerà per a tothom.", EDIT_MESSAGE: "Editar missatge", SAVE: "Desar", EDITED_INDICATOR: "editat", REPLY_TO_MESSAGE: "Respondre", REPLY_TO_ARIA_LABEL: (e, t) => `Responent a ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Sortir del mode de resposta", ADD_REACTION: "Afegir reacció", VOICE_MESSAGE: "Missatge de veu", LEAVE_CONVERSATION: "Abandonar la conversa", MARK_CONVERSATION_AS_UNREAD: "marcar com no llegit", STATUS_INDICATOR_ONLINE: "Actiu", STATUS_INDICATOR_OFFLINE: "Absent", CONTACT_INFORMATION_HIDDEN: "informació oculta", AUTH_EXPIRED_OVERLAY_TITLE: "La teva sessió de xat ha caducat", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualitza la pàgina per continuar" } }, Da = { code: "cs-CZ", name: "Czech", translation: { YESTERDAY: "Včera", TODAY: "Dnes", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "právě teď", LOCATION: "Lokace", CANCEL: "Zrušit", INBOX: "Doručené", DESKTOP_NOTIFICATIONS: "Oznámení v prohlížeči", DESKTOP_NOTIFICATIONS_ERROR: "Nelze povolit notifikace prohlížeče, protože váš prohlížeč je aktivně blokuje. Zkuste se podívat na nastavení nebo zkuste použít jiný prohlížeč.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikace`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Pokud necháte kartu prohlížeče otevřenou, uvidíte tento popup jakmile s vámi bude někdo mluvit.", SEND_BUTTON_TEXT: "Odeslat", ENTRYBOX_TEXT_LIMIT: "Je povoleno Maximálně 10.000 znaků.", ENTRYBOX_PLACEHOLDER: "Napište něco...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Tato konverzace již není aktivní.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Můžete číst, ale nemůžete posílat zprávy.", MESSAGELIST_LOADING_OLDER: "Nahrávám starší zprávy...", MESSAGELIST_SHOW_OLDER: "Zobrazit starší zprávy", MESSAGELIST_NEW_MARKER: "Nové", MESSAGE_SENT_VIA_EMAIL: "Tato zpráva byla odeslána přes mail.", YOU_MARKER: "vy", UPLOAD_IN_PROGRESS: "Nahrávám...", UPLOAD_SEND_FILE: "Poslat soubor", UPLOAD_SHARE_LOCATION: "Sdílet pozici", UPLOAD_ERROR: "Nepodařilo se nahrát soubor. Ten je buď nepodporován a/nebo příliš velký.", SHARE_LOCATION_ERROR: "Není možné sdílet pozici: ", LOADING: "Nahrávám...", HUB_EMPTY: "Vaše historie se zde zobrazí", HUB_SHOW_EARLIER: "Zobrazit dřívější konverzace", INBOX_NO_CHATS_TITLE: "Zatím zde nejsou žádné konverzace!", INBOX_NO_CHATS_BODY: "Jakmile budete mít jednu nebo více konverzací, objeví se zde.", ENABLE_TRANSLATION: "Přeložit tuto konverzaci do češtiny", DISABLE_TRANSLATION: "Zobrazit původní", SEARCH_PLACEHOLDER_TEXT: "Hledat...", SEARCH_SEARCHING: "Hledání...", SEARCH_NO_RESULTS: "Nenašly se žádné výsledky", SEARCH_NO_MORE_RESULTS: "Žádné další výsledky", CHAT_NOT_FOUND: "Chat nenalezen", DELETE_MESSAGE: "Smazat zprávu", DELETION_EXPLANATION: "Pokud tuto zprávu smažete, zmizí pro všechny.", EDIT_MESSAGE: "Upravit zprávu", SAVE: "Uložit", EDITED_INDICATOR: "upraveno", REPLY_TO_MESSAGE: "Odpovědět", ADD_REACTION: "Reagovat", AUTH_EXPIRED_OVERLAY_TITLE: "Váš chat byl kvůli nečinnosti odpojen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Pro pokračování obnovte stránku", VOICE_MESSAGE: "Hlasová zpráva", CONTACT_INFORMATION_HIDDEN: "Skrytá informace", LEAVE_CONVERSATION: "Opustit konverzaci", MARK_CONVERSATION_AS_UNREAD: "Označit jako nepřečtené", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Ca = { code: "da-DK", name: "Danish", translation: { YESTERDAY: "I går", TODAY: "I dag", DAYS: "d", HOURS: "t", MINUTES: "m", JUST_NOW: "lige nu", LOCATION: "Placering", CANCEL: "Annuller", INBOX: "Indbakke", DESKTOP_NOTIFICATIONS: "Browsermeddelelser", DESKTOP_NOTIFICATIONS_ERROR: "Kan ikke aktivere Browsermeddelelser, fordi din browser aktivt blokerer dem. Prøv at kigge i indstillingerne eller benyt en anden browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demomeddelelse`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Hvis du holder dit browser-faneblad åben, vil du se det her komme op, når nogen taler til dig.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Kun 10.000 tegn er tilladt.", ENTRYBOX_PLACEHOLDER: "Sig noget...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Denne samtale er ikke længere aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan læse, men ikke sende beskeder.", MESSAGELIST_LOADING_OLDER: "Indlæser ældre beskeder...", MESSAGELIST_SHOW_OLDER: "Vis ældre beskeder", MESSAGELIST_NEW_MARKER: "Ny", MESSAGE_SENT_VIA_EMAIL: "Denne besked blev sendt via e-mail", YOU_MARKER: "dig", UPLOAD_IN_PROGRESS: "Overfører...", UPLOAD_SEND_FILE: "Send fil", UPLOAD_SHARE_LOCATION: "Del placering", UPLOAD_ERROR: "Der er sket noget forkert ved upload. Filen kan ikke understøttes eller filen er for stor.", SHARE_LOCATION_ERROR: "Kan ikke dele placering: ", LOADING: "Indlæser...", HUB_EMPTY: "Dine samtaler vises her", HUB_SHOW_EARLIER: "Vis tidligere chats", INBOX_NO_CHATS_TITLE: "Ingen chats endnu!", INBOX_NO_CHATS_BODY: "Når du har haft en eller flere samtaler, vises de her.", ENABLE_TRANSLATION: "Oversæt denne konversation til dansk", DISABLE_TRANSLATION: "Vis den oprindelige", SEARCH_PLACEHOLDER_TEXT: "Søg...", SEARCH_SEARCHING: "Søger...", SEARCH_NO_RESULTS: "Ingen resultater fundet", SEARCH_NO_MORE_RESULTS: "Ikke flere resultater", CHAT_NOT_FOUND: "Chat ikke fundet", DELETE_MESSAGE: "Slet besked", DELETION_EXPLANATION: "Hvis du sletter denne besked, vil ingen kunne se den.", EDIT_MESSAGE: "Rediger besked", SAVE: "Gem", EDITED_INDICATOR: "redigeret", REPLY_TO_MESSAGE: "Svar", ADD_REACTION: "Tilføj reaktion", AUTH_EXPIRED_OVERLAY_TITLE: "Din chatsession er udløbet", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Opdater siden for at fortsætte", VOICE_MESSAGE: "Talebesked", CONTACT_INFORMATION_HIDDEN: "Skjulte oplysninger", LEAVE_CONVERSATION: "Forlad samtale", MARK_CONVERSATION_AS_UNREAD: "Marker som ulæst", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ga = { code: "de-DE", name: "German", translation: { YESTERDAY: "Gestern", TODAY: "Heute", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "gerade jetzt", LOCATION: "Standort", CANCEL: "Abbrechen", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browser-Benachrichtigungen", DESKTOP_NOTIFICATIONS_ERROR: "Browser-Benachrichtigungen können nicht aktiviert werden, da Ihr Browser sie aktiv blockiert. Versuchen Sie, in den Einstellungen nachzuschlagen oder einen anderen Browser zu verwenden.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} Demo-Benachrichtigung`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Wenn Sie Ihre Browser-Registerkarte geöffnet lassen, wird dies angezeigt, wenn jemand mit Ihnen spricht.", SEND_BUTTON_TEXT: "Senden", ENTRYBOX_TEXT_LIMIT: "Nur 10.000 Zeichen sind erlaubt.", ENTRYBOX_PLACEHOLDER: "Sag etwas...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Diese Konversation ist nicht mehr aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Sie können Nachrichten lesen, aber nicht senden.", MESSAGELIST_LOADING_OLDER: "Ältere Nachrichten werden geladen...", MESSAGELIST_SHOW_OLDER: "Zeige ältere Nachrichten", MESSAGELIST_NEW_MARKER: "Neu", MESSAGE_SENT_VIA_EMAIL: "Diese Nachricht wurde per E-Mail gesendet", YOU_MARKER: "du", UPLOAD_IN_PROGRESS: "Hochladen...", UPLOAD_SEND_FILE: "Datei senden", UPLOAD_SHARE_LOCATION: "Standort teilen", UPLOAD_ERROR: "Beim Hochladen ist ein Fehler aufgetreten. Die Datei ist möglicherweise nicht unterstützt oder zu groß.", SHARE_LOCATION_ERROR: "Standort kann nicht freigegeben werden: ", LOADING: "Laden...", HUB_EMPTY: "Ihr Chat-Verlauf wird hier angezeigt", HUB_SHOW_EARLIER: "Zeige frühere Chats", INBOX_NO_CHATS_TITLE: "Noch keine Chats!", INBOX_NO_CHATS_BODY: "Sobald Sie eine oder mehrere Unterhaltungen geführt haben, werden sie hier angezeigt.", ENABLE_TRANSLATION: "Dieses Gespräch auf Deutsch übersetzen", DISABLE_TRANSLATION: "Originaltext anzeigen", SEARCH_PLACEHOLDER_TEXT: "Suche...", SEARCH_SEARCHING: "Suchen...", SEARCH_NO_RESULTS: "Keine Suchergebnisse gefunden", SEARCH_NO_MORE_RESULTS: "Keine weiteren Suchergebnisse", CHAT_NOT_FOUND: "Chat nicht gefunden", DELETE_MESSAGE: "Nachricht löschen", DELETION_EXPLANATION: "Wenn Sie diese Nachricht löschen, wird sie für alle verschwinden.", EDIT_MESSAGE: "Nachricht bearbeiten", SAVE: "Speichern", EDITED_INDICATOR: "bearbeitet", REPLY_TO_MESSAGE: "Antworten", ADD_REACTION: "Reaktion hinzufügen", AUTH_EXPIRED_OVERLAY_TITLE: "Ihre Chatsitzung ist abgelaufen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Laden Sie zum Fortfahren die Seite neu", VOICE_MESSAGE: "Sprachnachricht", CONTACT_INFORMATION_HIDDEN: "Geschützte Angaben", LEAVE_CONVERSATION: "Unterhaltung verlassen", MARK_CONVERSATION_AS_UNREAD: "als ungelesen markieren", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, va = { code: "el-GR", name: "Greek (Greece)", translation: { YESTERDAY: "Χθές", TODAY: "Σήμερα", DAYS: "Ημέρες", HOURS: "'Ωρες", MINUTES: "Λεπτά", JUST_NOW: "Μόλις τώρα", LOCATION: "Τοποθεσία", CANCEL: "Ακύρωση", INBOX: "Εισερχόμενα", DESKTOP_NOTIFICATIONS: "Ειδοποιήσεις περιηγητή", DESKTOP_NOTIFICATIONS_ERROR: "Δεν είναι δυνατή η ενεργοποίηση των ειδοποιήσεων του προγράμματος περιήγησης, επειδή το πρόγραμμα περιήγησης τις αποκλείει ενεργά. Δοκιμάστε να τσεκάρετε τις ρυθμίσεις ή να χρησιμοποιήσετε διαφορετικό πρόγραμμα περιήγησης.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} Δοκιμαστική επίδειξη`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Αν διατηρήσετε ανοιχτή τη σελίδα του προγράμματος περιήγησης, θα δείτε αυτό το pop up (παράθυρο) όταν κάποιος σας μιλάει.", SEND_BUTTON_TEXT: "Αποστολή", ENTRYBOX_TEXT_LIMIT: "Επιτρέπονται μόνο 10.000 χαρακτήρες.", ENTRYBOX_PLACEHOLDER: "Πείτε κάτι...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Αυτή η συζήτηση δεν είναι πλέον ενεργή.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Μπορείτε να διαβάσετε αλλά δεν μπορείτε να στείλετε μηνύματα.", MESSAGELIST_LOADING_OLDER: "Φόρτωση παλαιοτέρων μηνυμάτων...", MESSAGELIST_SHOW_OLDER: "Εμφάνιση παλαιότερων μηνυμάτων", MESSAGELIST_NEW_MARKER: "Νέο", MESSAGE_SENT_VIA_EMAIL: "Αυτό το μήνυμα εστάλη μέσω ηλεκτρονικού ταχυδρομείου", YOU_MARKER: "Εσείς", UPLOAD_IN_PROGRESS: "Ανέβασμα...", UPLOAD_SEND_FILE: "Αποστολή αρχείου", UPLOAD_SHARE_LOCATION: "Κοινή χρήση τοποθεσίας", UPLOAD_ERROR: "Κάτι πήγε στραβά κατά τη φόρτωση. Το αρχείο ενδέχεται να μην υποστηρίζεται ή να είναι υπερβολικά μεγάλο.", SHARE_LOCATION_ERROR: "Δεν είναι δυνατή η χρήση κοινής τοποθεσίας: ", LOADING: "Φόρτωση...", HUB_EMPTY: "Το ιστορικό των συνομιλιών σας θα εμφανιστεί εδώ", HUB_SHOW_EARLIER: "Εμφάνιση προηγούμενων συνομιλιών", INBOX_NO_CHATS_TITLE: "Δεν υπάρχουν ακόμα συζητήσεις!", INBOX_NO_CHATS_BODY: "Μόλις έχετε μία ή περισσότερες συνομιλίες, θα εμφανιστούν εδώ.", ENABLE_TRANSLATION: "Μετάφραση αυτής της συνομιλίας στα ελληνικά", DISABLE_TRANSLATION: "Προβολή πρωτοτύπου", SEARCH_PLACEHOLDER_TEXT: "Αναζήτηση...", SEARCH_SEARCHING: "Αναζήτηση...", SEARCH_NO_RESULTS: "Δεν βρέθηκαν αποτελέσματα", SEARCH_NO_MORE_RESULTS: "Δεν υπάρχουν περισσότερα αποτελέσματα", CHAT_NOT_FOUND: "Η συνομιλία δεν βρέθηκε", DELETE_MESSAGE: "Διαγραφή μηνύματος", DELETION_EXPLANATION: "Εάν διαγράψετε αυτό το μήνυμα, θα εξαφανιστεί για όλους.", EDIT_MESSAGE: "Επεξεργασία μηνύματος", SAVE: "Αποθήκευση", EDITED_INDICATOR: "επεξεργασμένο", REPLY_TO_MESSAGE: "Απάντηση", ADD_REACTION: "Προσθήκη αντίδρασης", AUTH_EXPIRED_OVERLAY_TITLE: "Η συνεδρία της συνομιλίας σας έχει λήξει", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Ανανεώστε τη σελίδα για να συνεχίσετε", VOICE_MESSAGE: "Ηχητικό μήνυμα", CONTACT_INFORMATION_HIDDEN: "Κρυμμένες πληροφορίες", LEAVE_CONVERSATION: "Αποσυρθείτε από τη συζήτηση", MARK_CONVERSATION_AS_UNREAD: "Επισήμανση ως μη αναγνωσμένα", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ka = { code: "es-ES", name: "Spanish", translation: { YESTERDAY: "Ayer", TODAY: "Hoy", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "justo ahora", LOCATION: "Ubicación", CANCEL: "Cancelar", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Notificaciones del navigator", DESKTOP_NOTIFICATIONS_ERROR: "No se logró habilitar las notificaciones del navigador, comprueba que tu navegador no las esté bloqueando o intenta con otro navegador.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} notificación de prueba`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si dejas esta pestaña abierta, verás este pop up cuando alguien te hable.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Sólo 10.000 caracteres permitidos.", ENTRYBOX_PLACEHOLDER: "Escribe algo...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Esta conversación ya no está activa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puedes leer pero no enviar mensajes.", MESSAGELIST_LOADING_OLDER: "Cargando mensajes pasados...", MESSAGELIST_SHOW_OLDER: "Ver mensajes pasados", MESSAGELIST_NEW_MARKER: "Nuevo", MESSAGE_SENT_VIA_EMAIL: "Este mensaje ha sido enviado vía email", YOU_MARKER: "tú", UPLOAD_IN_PROGRESS: "Subir...", UPLOAD_SEND_FILE: "Enviar archivo", UPLOAD_SHARE_LOCATION: "Compartir ubicación", UPLOAD_ERROR: "Ocurrió un problema subiendo el archivo. Puede que el archivo esté en un formato no soportado o que sea demasiado grande.", SHARE_LOCATION_ERROR: "No se logró compartir la ubicación: ", LOADING: "Cargando...", HUB_EMPTY: "Tu historial de conversaciones se mostrará aquí", HUB_SHOW_EARLIER: "Ver conversaciones pasadas", INBOX_NO_CHATS_TITLE: "¡Aún sin conversaciones!", INBOX_NO_CHATS_BODY: "Una vez que tengas una o más conversaciones, se mostrarán aquí.", ENABLE_TRANSLATION: "Traducir esta conversación al español", DISABLE_TRANSLATION: "Mostrar la conversación original", SEARCH_PLACEHOLDER_TEXT: "Buscar...", SEARCH_SEARCHING: "Buscando...", SEARCH_NO_RESULTS: "No se encontraron resultados", SEARCH_NO_MORE_RESULTS: "No hay más resultados", CHAT_NOT_FOUND: "Chat no encontrado", DELETE_MESSAGE: "Eliminar mensaje", DELETION_EXPLANATION: "Este mensaje desaparecerá para todos si lo borras.", EDIT_MESSAGE: "Editar mensaje", SAVE: "Guardar", EDITED_INDICATOR: "editado", REPLY_TO_MESSAGE: "Responder", ADD_REACTION: "Añadir reacción", AUTH_EXPIRED_OVERLAY_TITLE: "Su sesión de chat ha expirado", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualice la página para continuar", VOICE_MESSAGE: "Mensaje de voz", CONTACT_INFORMATION_HIDDEN: "Información oculta", LEAVE_CONVERSATION: "Abandonar conversación", MARK_CONVERSATION_AS_UNREAD: "Marcar como no leída", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, fa = { code: "et-EE", name: "Estonian", translation: { YESTERDAY: "Eile", TODAY: "Täna", DAYS: "p", HOURS: "t", MINUTES: "m", JUST_NOW: "Just nüüd", LOCATION: "Asukoht", CANCEL: "Katkesta", INBOX: "Postkast", DESKTOP_NOTIFICATIONS: "Veebibrauseri teated", DESKTOP_NOTIFICATIONS_ERROR: "Töölaua teatisi ei saa lubada, kuna Teie brauser blokeerib need aktiivselt. Proovige muuta seadeid või kasutada mõnda muud brauserit.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo teavitus`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Kui hoiate oma brauseri vahekaardi lahti ja näete seda hüpikakent, siis keegi soovib Teiega rääkida.", SEND_BUTTON_TEXT: "Saada", ENTRYBOX_TEXT_LIMIT: "Ainult kuni 10.000 tähemärki on lubatud.", ENTRYBOX_PLACEHOLDER: "Kirjuta midagi...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "See vestlus ei ole enam aktiivne.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Sa saad lugeda teateid, aga mitte kirjutada.", MESSAGELIST_LOADING_OLDER: "Laen vanemaid teateid...", MESSAGELIST_SHOW_OLDER: "Näita vanemaid teateid", MESSAGELIST_NEW_MARKER: "Uus", MESSAGE_SENT_VIA_EMAIL: "See teade on saadetud e-postiga", YOU_MARKER: "Sina", UPLOAD_IN_PROGRESS: "Laen...", UPLOAD_SEND_FILE: "Saada fail", UPLOAD_SHARE_LOCATION: "Jaga faili asukohta", UPLOAD_ERROR: "Nüüd läks midagi nihu, seoses faili ülesse laadimisega. Tundmatu fail või liiga suur.", SHARE_LOCATION_ERROR: "Ei suuda jagada faili asukohta: ", LOADING: "Laen...", HUB_EMPTY: "Siin on Sinu vestluste ajalugu", HUB_SHOW_EARLIER: "Näita vanemaid vestlusi", INBOX_NO_CHATS_TITLE: "Pole ühtegi vestlust!", INBOX_NO_CHATS_BODY: "Kui Sul tekib üks või rohkem vestlust, siis on need kuvatakse siin.", ENABLE_TRANSLATION: "Tõlgi see vestlus eesti keelde", DISABLE_TRANSLATION: "Näita algteksti", SEARCH_PLACEHOLDER_TEXT: "Otsi...", SEARCH_SEARCHING: "Otsin...", SEARCH_NO_RESULTS: "Otsingu tulemused puuduvad", SEARCH_NO_MORE_RESULTS: "Rohkem tulemusi ei ole ", CHAT_NOT_FOUND: "Vestlust ei leitud", DELETE_MESSAGE: "Kustuta sõnum", DELETION_EXPLANATION: "Kui kustutate selle sõnumi, kaob see kõigi jaoks.", EDIT_MESSAGE: "Redigeeri sõnumit", SAVE: "Salvesta", EDITED_INDICATOR: "muudetud", REPLY_TO_MESSAGE: "Vasta", ADD_REACTION: "Lisa reaktsioon", AUTH_EXPIRED_OVERLAY_TITLE: "Teie vestlussessioon on lõppenud", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Jätkamiseks värskendage lehte", VOICE_MESSAGE: "Häälsõnum", CONTACT_INFORMATION_HIDDEN: "Varjatud informatsioon", LEAVE_CONVERSATION: "Lahku vestlusest", MARK_CONVERSATION_AS_UNREAD: "Märgi mitteloetuks", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Ma = { code: "fa", name: "Persian (Farsi)", translation: { YESTERDAY: "دیروز", TODAY: "امروز", DAYS: "روز", HOURS: "ساعت", MINUTES: "دقیقه", JUST_NOW: "هم اکنون", LOCATION: "مکان", CANCEL: "لغو", INBOX: "صندوق", DESKTOP_NOTIFICATIONS: "اطلاعیه‌های مرورگر", DESKTOP_NOTIFICATIONS_ERROR: "خطا در فعال سازی اعلان های مرورگر، مرورگر شما آنها را مسدود می کند سعی کنید تنظیمات مرورگر را تغییر دهید یا از یک مرورگر دیگر استفاده کنید.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `نوتیفیکیشن دمو ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "اگر صفحه ی مرورگر را باز نگهدارید این را موقعه ای که کسی با شما صحبت کند خواهید دید", SEND_BUTTON_TEXT: "بفرست", ENTRYBOX_TEXT_LIMIT: "فقط ۱۰،۰۰۰ حروف مجاز می باشد.", ENTRYBOX_PLACEHOLDER: "...چیزی بنویسید", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: ".این مکالمه دیگر فعال نمی باشد", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "شما می توانید بخوانید اما نمی توانید پیام بفرستید", MESSAGELIST_LOADING_OLDER: "...در حال بارگذاری پیام های قدیمی تر", MESSAGELIST_SHOW_OLDER: "نشان دادن پیام های قدیمی", MESSAGELIST_NEW_MARKER: "جدید", MESSAGE_SENT_VIA_EMAIL: "پیام توسط ایمل ارسال شد", YOU_MARKER: "شما", UPLOAD_IN_PROGRESS: "...در حال بارگذاری", UPLOAD_SEND_FILE: "فرستادن پوشه", UPLOAD_SHARE_LOCATION: "اشتراک گذاری مکان", UPLOAD_ERROR: "متاسفانه بارگذاری با مشکل روبه رو شد. ممکن است فایل حجیم باشد یا ساپورت نشده باشد.", SHARE_LOCATION_ERROR: "خطا در اشتراک گذاری مکان: ", LOADING: "...بارگذاری", HUB_EMPTY: "تاریخچه گفتگو اینجا نمایان می شود", HUB_SHOW_EARLIER: "دیدن گفتگو های قبلی", INBOX_NO_CHATS_TITLE: "هنوز گفتگویی وجود ندارد", INBOX_NO_CHATS_BODY: "بعد از داشتن یک مکالمه یا بیشتر، آنها اینجا نمایان می شوند.", ENABLE_TRANSLATION: "این مکالمه را به فارسی ترجمه کن", DISABLE_TRANSLATION: "زبان اصلی را نشان بده", SEARCH_PLACEHOLDER_TEXT: "...جستجو", SEARCH_SEARCHING: "...در حال جستجو", SEARCH_NO_RESULTS: "نتیجه ای یافت نشد", SEARCH_NO_MORE_RESULTS: "نتیجه بیشتری وجود ندارد", CHAT_NOT_FOUND: "مکالمه پیدا نشد", DELETE_MESSAGE: "حذف پیام ", DELETION_EXPLANATION: "اگر این پیام را حذف کنید، برای همه ناپدید می شود.", EDIT_MESSAGE: "ویرایش پیام", SAVE: "ذخیره", EDITED_INDICATOR: "ویرایش‌شده", REPLY_TO_MESSAGE: "پاسخ دادن", ADD_REACTION: "واکنش را اضافه کنید", AUTH_EXPIRED_OVERLAY_TITLE: "جلسه چت شما منقضی شده است", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "برای ادامه صفحه را بازخوانی کنید", VOICE_MESSAGE: "پیام صوتی", CONTACT_INFORMATION_HIDDEN: "اطلاعات پنهان", LEAVE_CONVERSATION: "خروج از گفتگو", MARK_CONVERSATION_AS_UNREAD: "به عنوان خوانده نشده علامت گذاری کن", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Pa = { code: "fi-FI", name: "Finnish", translation: { YESTERDAY: "Eilen", TODAY: "Tänään", DAYS: "p", HOURS: "t", MINUTES: "m", JUST_NOW: "juuri nyt", LOCATION: "Sijainti", CANCEL: "Peruuta", INBOX: "Saapuneet", DESKTOP_NOTIFICATIONS: "Selaimen ilmoitukset", DESKTOP_NOTIFICATIONS_ERROR: "Työpöydän ilmoituksia ei voitu kytkeä päälle, koska selaimesi estää ne aktiivisesti. Koeta tutkia sen asetuksia tai vaihda selainta.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo ilmoitus`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jos pidät tämän sivun auki, näet vastaavan ilmoituksen kun joku puhuu sinulle.", SEND_BUTTON_TEXT: "Lähetä", ENTRYBOX_TEXT_LIMIT: "Maksimissaan 10000 merkkiä.", ENTRYBOX_PLACEHOLDER: "Sano jotain...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Tämä keskustelu ei ole enää aktiivinen.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Voit lukea, mutta et lähettää viestejä.", MESSAGELIST_LOADING_OLDER: "Ladataan vanhoja viestejä..", MESSAGELIST_SHOW_OLDER: "Näytä vanhat viestit", MESSAGELIST_NEW_MARKER: "Uusi", MESSAGE_SENT_VIA_EMAIL: "Tämä viesti on lähetetty sähköpostin välityksellä", YOU_MARKER: "sinä", UPLOAD_IN_PROGRESS: "Ladataan...", UPLOAD_SEND_FILE: "Lähetä tiedosto", UPLOAD_SHARE_LOCATION: "Jaa sijainti", UPLOAD_ERROR: "Valitettavasti jokin meni vikaan. Tiedostotyyppiä ei ehkä tueta tai se saattaa olla liian suuri.", SHARE_LOCATION_ERROR: "Sijaintia ei pystytty jakamaan: ", LOADING: "Ladataan...", HUB_EMPTY: "Keskusteluhistoriasi näkyy tässä", HUB_SHOW_EARLIER: "Näytä aiemmat keskustelut", INBOX_NO_CHATS_TITLE: "Ei keskusteluja, vielä!", INBOX_NO_CHATS_BODY: "Kun olet käynyt yhden tai useamman keskustelun, ne näkyvät täällä.", ENABLE_TRANSLATION: "Käännä keskustelu kielelle suomi", DISABLE_TRANSLATION: "Näytä alkuperäinen", SEARCH_PLACEHOLDER_TEXT: "Etsi...", SEARCH_SEARCHING: "Etsiminen...", SEARCH_NO_RESULTS: "Tuloksia ei löytynyt", SEARCH_NO_MORE_RESULTS: "Ei enempää tuloksia", CHAT_NOT_FOUND: "Keskustelua ei löytynyt", DELETE_MESSAGE: "Poista viesti", DELETION_EXPLANATION: "Jos poistat tämän viestin, se häviää kaikilta.", EDIT_MESSAGE: "Muokkaa viestiä", SAVE: "Tallenna", EDITED_INDICATOR: "muokattu", REPLY_TO_MESSAGE: "Vastaa", ADD_REACTION: "Lisää reaktio", AUTH_EXPIRED_OVERLAY_TITLE: "Istuntosi on vanhentunut", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Päivitä sivu jatkaaksesi", VOICE_MESSAGE: "Ääniviesti", CONTACT_INFORMATION_HIDDEN: "Piilotetut tiedot", LEAVE_CONVERSATION: "Poistu keskustelusta", MARK_CONVERSATION_AS_UNREAD: "Merkitse lukemattomaksi", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Ua = { code: "fr-FR", name: "French", translation: { YESTERDAY: "Hier", TODAY: "Aujourd'hui", DAYS: "j", HOURS: "h", MINUTES: "m", JUST_NOW: "maintenant", LOCATION: "Emplacement", CANCEL: "Annuler", INBOX: "Boîte de réception", DESKTOP_NOTIFICATIONS: "Notifications du navigateur", DESKTOP_NOTIFICATIONS_ERROR: "Impossible d'activer les notifications du navigateur car votre navigateur les bloque. Essayez de changer ses paramètres ou de changer de navigateur.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notification de démonstration ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si vous maintenez l'onglet ouvert dans votre navigateur vous verrez apparaître une alerte lorsque quelqu'un vous parlera.", SEND_BUTTON_TEXT: "Envoyer", ENTRYBOX_TEXT_LIMIT: "Seuls 10.000 caractères sont autorisés.", ENTRYBOX_PLACEHOLDER: "Ecrivez quelque chose...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Cette conversation n'est plus active.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Vous pouvez lire, mais pas envoyer de messages.", MESSAGELIST_LOADING_OLDER: "Chargement des anciens messages ...", MESSAGELIST_SHOW_OLDER: "Afficher les anciens messages", MESSAGELIST_NEW_MARKER: "Nouveau", MESSAGE_SENT_VIA_EMAIL: "Ce message a été envoyé par e-mail", YOU_MARKER: "vous", UPLOAD_IN_PROGRESS: "Envoi en cours...", UPLOAD_SEND_FILE: "Envoyer un fichier", UPLOAD_SHARE_LOCATION: "Partager mon emplacement", UPLOAD_ERROR: "Un problème est survenu lors de l'envoi: le fichier est peut-être non pris en charge ou trop volumineux.", SHARE_LOCATION_ERROR: "Impossible de partager votre emplacement: ", LOADING: "Chargement en cours...", HUB_EMPTY: "Votre historique de discussion apparaîtra ici", HUB_SHOW_EARLIER: "Afficher les conversations précédentes", INBOX_NO_CHATS_TITLE: "Aucune conversation pour l'instant!", INBOX_NO_CHATS_BODY: "Une fois que vous aurez eu une ou plusieurs conversations, elles apparaîtront ici.", ENABLE_TRANSLATION: "Traduire cette conversation en français", DISABLE_TRANSLATION: "Remontrer la conversation originale", SEARCH_PLACEHOLDER_TEXT: "Rechercher...", SEARCH_SEARCHING: "Recherche...", SEARCH_NO_RESULTS: "Aucun résultat trouvé", SEARCH_NO_MORE_RESULTS: "Il n’y a plus de résultats", CHAT_NOT_FOUND: "Conversation introuvable", DELETE_MESSAGE: "Supprimer le message", DELETION_EXPLANATION: "Si vous supprimez ce message, il disparaîtra pour tout le monde.", EDIT_MESSAGE: "Modifier le message", SAVE: "Enregistrer", EDITED_INDICATOR: "modifié", REPLY_TO_MESSAGE: "Répondre", ADD_REACTION: "Ajouter une réaction", AUTH_EXPIRED_OVERLAY_TITLE: "Votre session de chat a expiré", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualisez la page pour continuer", VOICE_MESSAGE: "Message vocal", CONTACT_INFORMATION_HIDDEN: "Informations masquées", LEAVE_CONVERSATION: "Quitter la conversation", MARK_CONVERSATION_AS_UNREAD: "Marquer comme non lu", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Ha = { code: "he-IL", name: "Hebrew", translation: { YESTERDAY: "אתמול", TODAY: "היום", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "עכשיו", LOCATION: "מיקום", CANCEL: "בטל", INBOX: "דואר נכנס", DESKTOP_NOTIFICATIONS: "התראות דפדפן", DESKTOP_NOTIFICATIONS_ERROR: "לא ניתן להפעיל התראות במרועה דפדפן מכיוון שהדפדפן שלך חוסם אותן באופן פעיל. נסה להסתכל בהגדרות או להשתמש בדפדפן אחר.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} הודעה על הדגמה`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "אם אתה שומר על כרטיסיית הדפדפן שלך פתוחה, תראה את זה צץ כשמישהו ידבר איתך.", SEND_BUTTON_TEXT: "שלח", ENTRYBOX_TEXT_LIMIT: "רק 10.000 תווים", ENTRYBOX_PLACEHOLDER: "תגיד משהו...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "שיחה זו אינה פעילה עוד.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "אתה יכול לקרוא, אך לא לשלוח הודעות.", MESSAGELIST_LOADING_OLDER: "טוען הודעות ישנות...", MESSAGELIST_SHOW_OLDER: "הצג הודעות ישנות", MESSAGELIST_NEW_MARKER: "חדש", MESSAGE_SENT_VIA_EMAIL: "הודעה זאת נשלחה דרך אימייל", YOU_MARKER: "אתה", UPLOAD_IN_PROGRESS: "מעלה ...", UPLOAD_SEND_FILE: "שלח קובץ", UPLOAD_SHARE_LOCATION: "שתף מיקום", UPLOAD_ERROR: "לרוע המזל משהו השתבש בהעלאה. ייתכן שהקובץ אינו נתמך או גדול מדי.", SHARE_LOCATION_ERROR: "לא ניתן לשתף מיקום: ", LOADING: "טוען...", HUB_EMPTY: "היסטוריית הצ'אט שלך תופיע כאן", HUB_SHOW_EARLIER: "הצג צ'אטים קודמים", INBOX_NO_CHATS_TITLE: "אין עדיין צ'אטים!", INBOX_NO_CHATS_BODY: "לאחר שניהלת שיחה אחת או יותר, הם יופיעו כאן.", ENABLE_TRANSLATION: "תרגם שיחה זו לעברית", DISABLE_TRANSLATION: "הצג מקור", SEARCH_PLACEHOLDER_TEXT: "...חפש", SEARCH_SEARCHING: "...מחפש", SEARCH_NO_RESULTS: "לא נמצאו תוצאות", SEARCH_NO_MORE_RESULTS: "אין תוצאות נוספות", CHAT_NOT_FOUND: "הצ'אט לא נמצא", DELETE_MESSAGE: "מחיקת הודעה", DELETION_EXPLANATION: "אם תמחק הודעה זו, היא תיעלם עבור כולם.", EDIT_MESSAGE: "עריכת הודעה", SAVE: "שמור", EDITED_INDICATOR: "ערוך", REPLY_TO_MESSAGE: "השב", ADD_REACTION: "הוספת תגובה", AUTH_EXPIRED_OVERLAY_TITLE: "הפעלת הצ׳אט שלכם פגה", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "רעננו את העמוד כדי להמשיך", VOICE_MESSAGE: "הודעה קולית", CONTACT_INFORMATION_HIDDEN: "מידע מוסתר", LEAVE_CONVERSATION: "צא מהשיחה", MARK_CONVERSATION_AS_UNREAD: "סמן כלא נקרא", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ba = { code: "hi-IN", name: "Hindi (IN)", translation: { YESTERDAY: "कल", TODAY: "आज", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "अभी", LOCATION: "जगह", CANCEL: "रद्द करें", INBOX: "इनबॉक्स", DESKTOP_NOTIFICATIONS: "ब्राउज़र सूचनाएं", DESKTOP_NOTIFICATIONS_ERROR: "ब्राउज़र सूचनाएं सक्षम नहीं कर सकता क्योंकि आपका ब्राउज़र सक्रिय रूप से उन्हें ब्लॉक करता है। सेटिंग्स में देखने या एक अलग ब्राउज़र का उपयोग करने का प्रयास करें।", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} डेमो अधिसूचना`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "यदि आप अपना ब्राउज़र टैब खुला रखते हैं, तो यह पॉप अप आपको तब दिखाई देगा जब कोई आपसे बात करेगा।", SEND_BUTTON_TEXT: "भेजें", ENTRYBOX_TEXT_LIMIT: "केवल 10,000 वर्णों की अनुमति है।", ENTRYBOX_PLACEHOLDER: "कुछ कहिए...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "यह चैट अब सक्रिय नहीं है।", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "आप पढ़ सकते हैं, लेकिन संदेश नहीं भेज सकते।", MESSAGELIST_LOADING_OLDER: "पुराने संदेश लोड हो रहे हैं ...", MESSAGELIST_SHOW_OLDER: "पुराने संदेश दिखाएं", MESSAGELIST_NEW_MARKER: "नया", MESSAGE_SENT_VIA_EMAIL: "यह संदेश ईमेल के माध्यम से भेजा गया था", YOU_MARKER: "आप", UPLOAD_IN_PROGRESS: "अपलोड हो रहा है...", UPLOAD_SEND_FILE: "फाइल भेजें", UPLOAD_SHARE_LOCATION: "जगह शेयर करें", UPLOAD_ERROR: "दुर्भाग्य से, अपलोड करते समय कुछ गलत हो गया। फ़ाइल असमर्थित या बहुत बड़ी हो सकती है।", SHARE_LOCATION_ERROR: "जगह शेयर नहीं हो पाया: ", LOADING: "लोड हो रहा है...", HUB_EMPTY: "आपका चैट इतिहास यहां दिखाई देगा", HUB_SHOW_EARLIER: "पहले की चैट दिखाओ", INBOX_NO_CHATS_TITLE: "अभी तक कोई चैट नहीं!", INBOX_NO_CHATS_BODY: "एक बार जब आप एक या अधिक चैट कर लेते हैं, तो वे यहां दिखाई देंगे।", ENABLE_TRANSLATION: "इस बातचीत का हिंदी में अनुवाद कीजिए", DISABLE_TRANSLATION: "मूल दिखाएँ", SEARCH_PLACEHOLDER_TEXT: "खोजें...", SEARCH_SEARCHING: "खोज जारी है...", SEARCH_NO_RESULTS: "कोई परिणाम नहीं मिला", SEARCH_NO_MORE_RESULTS: "और कोई परिणाम नहीं", CHAT_NOT_FOUND: "चैट नहीं मिली", DELETE_MESSAGE: "संदेश डिलीट करें", DELETION_EXPLANATION: "यदि आप इस संदेश को हटाते हैं, तो यह सभी के लिए गायब हो जाएगा.", EDIT_MESSAGE: "संदेश में बदलाव करें", SAVE: "सहेजें", EDITED_INDICATOR: "संपादित किया गया", REPLY_TO_MESSAGE: "जवाब दीजिए ।", ADD_REACTION: "प्रतिक्रिया जोड़ें", AUTH_EXPIRED_OVERLAY_TITLE: "आपका चैट सेशन समाप्त हो चुका है", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "आगे बढ़ने के लिए रिफ्रेश करें", VOICE_MESSAGE: "वॉयस मैसेज", CONTACT_INFORMATION_HIDDEN: "छुपी हुई जानकारी", LEAVE_CONVERSATION: "बातचीत को ख़त्म करें", MARK_CONVERSATION_AS_UNREAD: "अपठित के रूप में चिह्नित करें", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Ba = { code: "hr-HR", name: "Croatian", translation: { YESTERDAY: "Jučer", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Obavijesti preglednika", DESKTOP_NOTIFICATIONS_ERROR: "Notifikacije preglednika nisu omogućene jer ih vaš preglednik aktivno blokira. Pokušajte pogledati postavke ili koristiti neki drugi preglednik.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu preglednika ostavite otvorenu, pojavit će se ovaj pop-up kada netko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Reci nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možeš čitati, ali ne i slati poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana e-poštom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podijeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podijeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovdje će se prikazati vaša povijest razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovdje.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na hrvatski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Razgovor nije pronađen", DELETE_MESSAGE: "Obriši poruku", DELETION_EXPLANATION: "Ako izbrišete ovu poruku, nestat će za sve.", EDIT_MESSAGE: "Uredi poruku", SAVE: "Spremi", EDITED_INDICATOR: "uređivao", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodajte reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša sesija razgovora je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvježite stranicu za nastavak", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Skrivene informacije", LEAVE_CONVERSATION: "Napustiti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitano", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ya = { code: "hu-HU", name: "Hungarian", translation: { YESTERDAY: "Tegnap", TODAY: "Ma", DAYS: "n", HOURS: "ó", MINUTES: "p", JUST_NOW: "éppen most", LOCATION: "Helyszín", CANCEL: "Visszavonás", INBOX: "Postaláda", DESKTOP_NOTIFICATIONS: "Böngésző értesítések", DESKTOP_NOTIFICATIONS_ERROR: "Azért nem tudja bekapcsolni a böngésző értesítések funkciót, mert böngészője aktívan blokkolja azt. Tekintse meg a beállításokat vagy használjon másik böngészőt.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo értesítés`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ha nyitva hagyja böngészőjét, felugró ablak fog megjelenni, ha valaki beszélni szeretne Önnel.", SEND_BUTTON_TEXT: "Küldés", ENTRYBOX_TEXT_LIMIT: "Mindőssze 10.000 karakter megengedett.", ENTRYBOX_PLACEHOLDER: "Mondjon valamit...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ez a beszélgetés már nem aktív.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Elolvashatja az üzeneteket, de nem küldhet újat.", MESSAGELIST_LOADING_OLDER: "Korábbi üzenetek betöltése...", MESSAGELIST_SHOW_OLDER: "Korábbi üzenetek megjelenítése", MESSAGELIST_NEW_MARKER: "Új", MESSAGE_SENT_VIA_EMAIL: "Ez az üzenet e-mailben került elküldésre", YOU_MARKER: "Ön", UPLOAD_IN_PROGRESS: "Feltöltés...", UPLOAD_SEND_FILE: "Fájl küldése", UPLOAD_SHARE_LOCATION: "Helyszín megosztása", UPLOAD_ERROR: "Sajnos hiba történt a feltöltés során. A fájl nem támogatott vagy túl nagy.", SHARE_LOCATION_ERROR: "Helyszín megosztása nem lehetséges: ", LOADING: "Betöltés...", HUB_EMPTY: "A beszélgetések előzményei itt láthatók", HUB_SHOW_EARLIER: "Korábbi beszélgetések megjelenítése", INBOX_NO_CHATS_TITLE: "Még nincs megjeleníthető beszélgetés!", INBOX_NO_CHATS_BODY: "Amint egy vagy több beszélgetéssel rendelkezik, azok itt fognak megjelenni.", ENABLE_TRANSLATION: "A beszélgetés lefordítása erre a nyelvre: magyar", DISABLE_TRANSLATION: "Eredeti megjelenítése", SEARCH_PLACEHOLDER_TEXT: "Keresés...", SEARCH_SEARCHING: "Keresés...", SEARCH_NO_RESULTS: "Nincs találat", SEARCH_NO_MORE_RESULTS: "Nincs több találat", CHAT_NOT_FOUND: "A csevegés nem található", DELETE_MESSAGE: "Üzenet törlése", DELETION_EXPLANATION: "Ha törlöd ezt az üzenetet, az mindenki számára eltűnik.", EDIT_MESSAGE: "Üzenet szerkesztése", SAVE: "Mentés", EDITED_INDICATOR: "szerkesztve", REPLY_TO_MESSAGE: "Válaszadás", ADD_REACTION: "Reagálás erre", AUTH_EXPIRED_OVERLAY_TITLE: "Chat munkamenete lejárt", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Folytatáshoz frissítse az oldalt", VOICE_MESSAGE: "Hangüzenet", CONTACT_INFORMATION_HIDDEN: "Rejtett információ", LEAVE_CONVERSATION: "Kilépés a beszélgetésből", MARK_CONVERSATION_AS_UNREAD: "Megjelölés olvasatlanként", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, wa = { code: "id-ID", name: "Bahasa Indonesia", translation: { YESTERDAY: "Kemarin", TODAY: "Hari ini", DAYS: "h", HOURS: "j", MINUTES: "m", JUST_NOW: "sekarang", LOCATION: "Lokasi", CANCEL: "Batal", INBOX: "Kotak Masuk", DESKTOP_NOTIFICATIONS: "Notifikasi peramban", DESKTOP_NOTIFICATIONS_ERROR: "Tidak dapat mengaktifkan pemberitahuan browser karena browser Anda secara aktif memblokir mereka. Coba cari di pengaturan atau menggunakan browser yang berbeda.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `pemberitahuan demo ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jika Anda membiarkan tab browser tetap terbuka, Anda akan melihat ini muncul ketika seseorang berbicara kepada Anda.", SEND_BUTTON_TEXT: "Kirim", ENTRYBOX_TEXT_LIMIT: "Hanya 10.000 karakter yang diizinkan.", ENTRYBOX_PLACEHOLDER: "Katakan sesuatu...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Percakapan ini tidak lagi aktif.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Anda dapat membaca, tetapi tidak mengirim pesan.", MESSAGELIST_LOADING_OLDER: "Memuat pesan lama...", MESSAGELIST_SHOW_OLDER: "Tampilkan pesan yang lebih lama", MESSAGELIST_NEW_MARKER: "Baru", MESSAGE_SENT_VIA_EMAIL: "Pesan ini dikirim melalui email", YOU_MARKER: "Anda", UPLOAD_IN_PROGRESS: "Mengunggah...", UPLOAD_SEND_FILE: "Kirim mengajukan", UPLOAD_SHARE_LOCATION: "Bagikan lokasi", UPLOAD_ERROR: "Ada yang salah diunggah. File mungkin tidak didukung atau terlalu besar.", SHARE_LOCATION_ERROR: "Tidak dapat membagikan lokasi: ", LOADING: "Memuat...", HUB_EMPTY: "Riwayat obrolan Anda akan muncul di sini", HUB_SHOW_EARLIER: "Tampilkan obrolan sebelumnya", INBOX_NO_CHATS_TITLE: "Belum ada obrolan!", INBOX_NO_CHATS_BODY: "Setelah Anda melakukan satu atau lebih percakapan, mereka akan muncul di sini.", ENABLE_TRANSLATION: "Terjemahkan percakapan ini ke Indonesia", DISABLE_TRANSLATION: "Perlihatkan asli", SEARCH_PLACEHOLDER_TEXT: "Cari...", SEARCH_SEARCHING: "Mencari...", SEARCH_NO_RESULTS: "Tidak ditemukan hasil", SEARCH_NO_MORE_RESULTS: "Tidak ada hasil lainnya", CHAT_NOT_FOUND: "Obrolan tidak ditemukan", DELETE_MESSAGE: "Hapus pesan", DELETION_EXPLANATION: "Jika pesan ini Anda hapus, pesan ini akan tidak terlihat bagi siapa pun.", EDIT_MESSAGE: "Sunting pesan", SAVE: "Mentés", EDITED_INDICATOR: "diedit", REPLY_TO_MESSAGE: "Balas", ADD_REACTION: "Tambah reaksi", AUTH_EXPIRED_OVERLAY_TITLE: "Sesi obrolan Anda sudah lewat batas waktu", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Muat ulang halaman untuk melanjutkan", VOICE_MESSAGE: "Pesan suara", CONTACT_INFORMATION_HIDDEN: "Informasi tersembunyi", LEAVE_CONVERSATION: "Tinggalkan percakapan", MARK_CONVERSATION_AS_UNREAD: "Tandai sebagai Belum dibaca", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Ya = { code: "is-IS", name: "Íslenska", translation: { YESTERDAY: "Í gær", TODAY: "Í dag", DAYS: "dagar", HOURS: "klst.", MINUTES: "mín.", JUST_NOW: "núna", LOCATION: "Staðsetning", CANCEL: "Hætta við", INBOX: "Pósthólf", DESKTOP_NOTIFICATIONS: "Tilkynningar í vafra", DESKTOP_NOTIFICATIONS_ERROR: "Ekki er hægt að birta tilkynningar í vafra vegna þess að vafrinn sem þú notar hindrar það. Reyndu að leita að stillingum eða að nota annan vafra.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} prufutilkynning`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ef flipinn í vafranum er opinn muntu sjá þessa tilkynningu birtast þegar einhver sendir þér skilaboð.", SEND_BUTTON_TEXT: "Senda", ENTRYBOX_TEXT_LIMIT: "Aðeins 10.000 stafir komast fyrir.", ENTRYBOX_PLACEHOLDER: "Segðu eitthvað...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Þessar samræður eru ekki lengar virkar.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Þú getur lesið, en ekki sent skilaboð.", MESSAGELIST_LOADING_OLDER: "Sæki eldri skilaboð...", MESSAGELIST_SHOW_OLDER: "Sýna eldri skilaboð", MESSAGELIST_NEW_MARKER: "Ný", MESSAGE_SENT_VIA_EMAIL: "Þessi skilaboð voru send með tölvupósti", YOU_MARKER: "þú", UPLOAD_IN_PROGRESS: "Hleð upp...", UPLOAD_SEND_FILE: "Senda skrá", UPLOAD_SHARE_LOCATION: "Deila staðsetningu", UPLOAD_ERROR: "Því miður fór eitthvað úrskeiðis við að hlaða upp. Skráin gæti verið af rangri tegund eð of stór.", SHARE_LOCATION_ERROR: "Ekki er hægt að deila staðsetningu: ", LOADING: "Hleð...", HUB_EMPTY: "Fyrri samtöl munu birtast hér", HUB_SHOW_EARLIER: "Sýna fyrri samtöl", INBOX_NO_CHATS_TITLE: "Engin samtöl enn!", INBOX_NO_CHATS_BODY: "Þegar þú hefur átt eitt eða fleiri samtöl, munu þau birtast hér.", ENABLE_TRANSLATION: "Þýða þetta samtal á ensku", DISABLE_TRANSLATION: "Sýna upprunalegt", SEARCH_PLACEHOLDER_TEXT: "Leita...", SEARCH_SEARCHING: "Leita...", SEARCH_NO_RESULTS: "Ekkert fannst", SEARCH_NO_MORE_RESULTS: "Engar fleiri niðurstöður", CHAT_NOT_FOUND: "Samtal fannst ekki", DELETE_MESSAGE: "Eyða skilaboðum", DELETION_EXPLANATION: "Ef þú eyðir þessum skilaboðum munu þau hverfa hjá öllum.", EDIT_MESSAGE: "Breyta skilaboðum", SAVE: "Vista", EDITED_INDICATOR: "breytt", REPLY_TO_MESSAGE: "Svara", REPLY_TO_ARIA_LABEL: (e, t) => `Svara ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Fara úr svari", ADD_REACTION: "Setja inn viðbrögð", AUTH_EXPIRED_OVERLAY_TITLE: "Spjallið hefur runnið út", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Endurnýjaðu síðuna til að halda áfram", VOICE_MESSAGE: "Raddskilaboð", LEAVE_CONVERSATION: "Skilja eftir skilaboð", MARK_CONVERSATION_AS_UNREAD: "Merkja sem ólesið", STATUS_INDICATOR_ONLINE: "Virk", STATUS_INDICATOR_OFFLINE: "Ekki við", CONTACT_INFORMATION_HIDDEN: "faldar upplýsingar" } }, $a = { code: "it-IT", name: "Italian", translation: { YESTERDAY: "Ieri", TODAY: "Oggi", DAYS: "g", HOURS: "o", MINUTES: "m", JUST_NOW: "adesso", LOCATION: "Posizione", CANCEL: "Annulla", INBOX: "Posta in arrivo", DESKTOP_NOTIFICATIONS: "Notifiche browser", DESKTOP_NOTIFICATIONS_ERROR: "Impossibile abilitare le notifiche browser perché il browser le blocca attivamente. Prova a cercare le impostazioni o utilizzare un browser diverso.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notification`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Se si mantiene aperta la scheda del browser, questo verrà visualizzato quando qualcuno ti parla.", SEND_BUTTON_TEXT: "Invia", ENTRYBOX_TEXT_LIMIT: "Sono consentiti solo 10.000 caratteri.", ENTRYBOX_PLACEHOLDER: "Dì qualcosa...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Questa conversazione non è più attiva.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puoi leggere, ma non inviare messaggi.", MESSAGELIST_LOADING_OLDER: "Caricamento dei messaggi precedenti...", MESSAGELIST_SHOW_OLDER: "Mostra messaggi precedenti", MESSAGELIST_NEW_MARKER: "Nuovo", MESSAGE_SENT_VIA_EMAIL: "Questo messaggio è stato inviato via email", YOU_MARKER: "tu", UPLOAD_IN_PROGRESS: "Caricamento in corso...", UPLOAD_SEND_FILE: "Invia file", UPLOAD_SHARE_LOCATION: "Condividi posizione", UPLOAD_ERROR: "Qualcosa è andato storto durante il caricamento. Il file potrebbe non essere supportato o troppo grande.", SHARE_LOCATION_ERROR: "Impossibile condividere la posizione: ", LOADING: "Caricamento in corso...", HUB_EMPTY: "La cronologia della tua chat verrà mostrata qui", HUB_SHOW_EARLIER: "Mostra chat precedenti", INBOX_NO_CHATS_TITLE: "Non ci sono ancora chat!", INBOX_NO_CHATS_BODY: "Una volta che hai avuto una o più conversazioni, verranno visualizzate qui.", ENABLE_TRANSLATION: "Traduci questa conversazione in italiano", DISABLE_TRANSLATION: "Mostra l'originale", SEARCH_PLACEHOLDER_TEXT: "Cerca...", SEARCH_SEARCHING: "Cercando...", SEARCH_NO_RESULTS: "Nessun risultato trovato", SEARCH_NO_MORE_RESULTS: "Non ci sono più risultati", CHAT_NOT_FOUND: "Chat non trovata", DELETE_MESSAGE: "Elimina messaggio", DELETION_EXPLANATION: "Se elimini il messaggio, questo scomparirà per tutti.", EDIT_MESSAGE: "Modifica messaggio", SAVE: "Salva", EDITED_INDICATOR: "modificato", REPLY_TO_MESSAGE: "Rispondi", ADD_REACTION: "Aggiungi reazione", AUTH_EXPIRED_OVERLAY_TITLE: "La sessione di chat è scaduta", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Aggiorna la pagina per continuare", VOICE_MESSAGE: "Messaggio vocale", CONTACT_INFORMATION_HIDDEN: "Informazioni nascoste", LEAVE_CONVERSATION: "Abbandona la conversazione", MARK_CONVERSATION_AS_UNREAD: "Segna come non letto", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ja = { code: "ja-JP", name: "Japanese", translation: { YESTERDAY: "昨日", TODAY: "今日", DAYS: "日前", HOURS: "時間前", MINUTES: "分前", JUST_NOW: "たった今", LOCATION: "場所", CANCEL: "キャンセル", INBOX: "受信箱", DESKTOP_NOTIFICATIONS: "ブラウザの通知", DESKTOP_NOTIFICATIONS_ERROR: "ブラウザの通知はブロックされているため、ブラウザの通知を有効にできません。設定を確認するか、別のブラウザを使用してください。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} デモ通知`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "ブラウザのタブを開いたままにしておくと、誰かがあなたに話しかけたときにこのポップアップが表示されます。", SEND_BUTTON_TEXT: "送信", ENTRYBOX_TEXT_LIMIT: "許可されているのは10.000文字までです。", ENTRYBOX_PLACEHOLDER: "メッセージを入力してください", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "この会話はもうアクティブではありません。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "あなたは読むことはできますが、メッセージを送ることはできません。", MESSAGELIST_LOADING_OLDER: "古いメッセージを読み込んでいます...", MESSAGELIST_SHOW_OLDER: "古いメッセージを表示", MESSAGELIST_NEW_MARKER: "新着", MESSAGE_SENT_VIA_EMAIL: "このメッセージはメールで送信されました", YOU_MARKER: "あなたは", UPLOAD_IN_PROGRESS: "アップロード中...", UPLOAD_SEND_FILE: "ファイル送信", UPLOAD_SHARE_LOCATION: "共有場所", UPLOAD_ERROR: "アップロード中に問題が発生しました。ファイルがサポートされていないか、大きすぎる可能性があります。", SHARE_LOCATION_ERROR: "場所を共有できません: ", LOADING: "読み込み中...", HUB_EMPTY: "あなたのチャット履歴がここに表示されます", HUB_SHOW_EARLIER: "以前のチャットを表示", INBOX_NO_CHATS_TITLE: "まだチャットがありません!", INBOX_NO_CHATS_BODY: "会話が1つ以上あると、ここに表示されます", ENABLE_TRANSLATION: "この会話を日本語に翻訳する", DISABLE_TRANSLATION: "オリジナルを表示", SEARCH_PLACEHOLDER_TEXT: "検索...", SEARCH_SEARCHING: "検索中...", SEARCH_NO_RESULTS: "結果が見つかりません", SEARCH_NO_MORE_RESULTS: "これ以上結果はありません", CHAT_NOT_FOUND: "チャットが見つかりませんでした", DELETE_MESSAGE: "メッセージを削除する", DELETION_EXPLANATION: "このメッセージを削除すると、全ての人に表示されなくなります。", EDIT_MESSAGE: "メッセージを編集する", SAVE: "上書き保存", EDITED_INDICATOR: "編集", REPLY_TO_MESSAGE: "返信する", ADD_REACTION: "リアクションを追加", AUTH_EXPIRED_OVERLAY_TITLE: "チャットセッションの有効期限が切れました", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "続けるにはページを更新してください", VOICE_MESSAGE: "ボイスメッセージ", CONTACT_INFORMATION_HIDDEN: "機密情報", LEAVE_CONVERSATION: "会話をやめる", MARK_CONVERSATION_AS_UNREAD: "未読としてマーク", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Fa = { code: "ka-GE", name: "Georgian", translation: { YESTERDAY: "გუშინ", TODAY: "დღეს", DAYS: "დღ", HOURS: "სთ", MINUTES: "წთ", JUST_NOW: "ახლა", LOCATION: "ადგილმდებარეობა", CANCEL: "გაუქმება", INBOX: "მიღებული შეტყობინება", DESKTOP_NOTIFICATIONS: "ბრაუზერის შეტყობინებები", DESKTOP_NOTIFICATIONS_ERROR: "შეუძლებელია ბრაუზერის შეტკობინებების ჩართვა. ეს ბრაუზერი ბლოკავს მათ. სცადე ცვლილება ოპციებიდან ან გამოიყენე სხვა ბრაუზერი.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} შეტყობინებების დემო ვერსია`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "თუ დატოვებ ბრაუზერის ფანჯარას გახსნილს, როცა ვიღაც მოგწერს საუბარი ამოვარდება დესკტოპზე.", SEND_BUTTON_TEXT: "გაგზავნა", ENTRYBOX_TEXT_LIMIT: "დაშვებულია მხოლოდ 10.000 სიმბოლო.", ENTRYBOX_PLACEHOLDER: "დაწერე რაღაც...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "ეს დიალოგი აღარ არის ხელმისაწვდომი.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "შეგიძლია წაიკითხო, მაგრამ ვერ გააგზავნი შეტყობინებას.", MESSAGELIST_LOADING_OLDER: "იტვირთება ძველი შეტყობინებები...", MESSAGELIST_SHOW_OLDER: "ძველი შეტყობინებების ჩვენება", MESSAGELIST_NEW_MARKER: "ახალი", MESSAGE_SENT_VIA_EMAIL: "ეს შეტყობინება გამოგზავნილია იმეილით", YOU_MARKER: "you", UPLOAD_IN_PROGRESS: "იტვირთება...", UPLOAD_SEND_FILE: "ფაილის გაგზავნა", UPLOAD_SHARE_LOCATION: "ადგილმდებარეობის გაზიარება", UPLOAD_ERROR: "პრობლემაა ატვირთვისას. ფაილის შესაძლოა არის არათავსებადი ან ძალიან დიდი.", SHARE_LOCATION_ERROR: "შეუძლებელია ადგილმდებარეობის გაზიარება: ", LOADING: "იტვირთება...", HUB_EMPTY: "საუბრების ისტორია გამოჩნდება აქ", HUB_SHOW_EARLIER: "წინა საუბრების ნახვა", INBOX_NO_CHATS_TITLE: "ჯერ-ჯერობით არ არის საუბრები!", INBOX_NO_CHATS_BODY: "უკვე დასრულებული საუბარები გამოჩნდება აქ", ENABLE_TRANSLATION: "თარგმნეთ ეს საუბარი ინგლისურად", DISABLE_TRANSLATION: "ორიგინალის ჩვენება", SEARCH_PLACEHOLDER_TEXT: "ძიება...", SEARCH_SEARCHING: "მიმდინარეობს ძიება...", SEARCH_NO_RESULTS: "შედეგები ვერ ქართველი", SEARCH_NO_MORE_RESULTS: "სხვა შედეგი ვერ მოიძებნა", CHAT_NOT_FOUND: "ჩატი ვერ მოიძებნა", DELETE_MESSAGE: "შეტყობინების წაშლა ", DELETION_EXPLANATION: "თუ ამ შეტყობინებას წაშლით, ის ყველასთვის გაქრება.", EDIT_MESSAGE: "შეტყობინების რედაქტირება", SAVE: "შენახვა", EDITED_INDICATOR: "რედაქტირებულია", REPLY_TO_MESSAGE: "პასუხის გაცემა", ADD_REACTION: "დაამატეთ რეაქცია", AUTH_EXPIRED_OVERLAY_TITLE: "თქვენი ჩეთის სესიის ვადა ამოიწურა", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "განაახლეთ გვერდი გასაგრძელებლად", VOICE_MESSAGE: "ხმოვანი შეტყობინება", CONTACT_INFORMATION_HIDDEN: "ფარული ინფორმაცია", LEAVE_CONVERSATION: "საუბრის დატოვება", MARK_CONVERSATION_AS_UNREAD: "წაუკითხავად მონიშვნა", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Va = { code: "ko-KR", name: "Korean (South Korea)", translation: { YESTERDAY: "어제", TODAY: "오늘", DAYS: "일 전", HOURS: "시간 전", MINUTES: "분 전", JUST_NOW: "방금", LOCATION: "위치", CANCEL: "취소", INBOX: "대화 목록", DESKTOP_NOTIFICATIONS: "브라우저 알림", DESKTOP_NOTIFICATIONS_ERROR: "브라우저 알림을 표시할 수 없습니다. 브라우저 설정을 확인하거나 다른 브라우저를 사용해주세요.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 데모 알림`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "브라우저 탭을 열어 둔 상태에서 누군가 대화 할 때 이 팝업이 표시됩니다.", SEND_BUTTON_TEXT: "전송", ENTRYBOX_TEXT_LIMIT: "최대 10,000자까지 입력할 수 있습니다.", ENTRYBOX_PLACEHOLDER: "메세지를 입력하세요...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "채팅이 종료되었습니다.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "읽기만 가능하며 메시지를 보낼 수 없습니다.", MESSAGELIST_LOADING_OLDER: "이전 메시지 로드 중...", MESSAGELIST_SHOW_OLDER: "이전 메시지 표시", MESSAGELIST_NEW_MARKER: "새 메시지", MESSAGE_SENT_VIA_EMAIL: "이 메시지는 이메일을 통해 전송되었습니다.", YOU_MARKER: "나", UPLOAD_IN_PROGRESS: "업로드 중...", UPLOAD_SEND_FILE: "파일 전송", UPLOAD_SHARE_LOCATION: "위치 공유", UPLOAD_ERROR: "업로드가 실패했습니다. 파일이 지원되지 않거나 너무 클 수 있습니다.", SHARE_LOCATION_ERROR: "위치를 공유 할 수 없습니다: ", LOADING: "로드 중...", HUB_EMPTY: "채팅 기록이 여기에 표시됩니다", HUB_SHOW_EARLIER: "이전 채팅보기", INBOX_NO_CHATS_TITLE: "아직 채팅이 없습니다!", INBOX_NO_CHATS_BODY: "대화가 하나 이상 있으면 여기에 표시됩니다.", ENABLE_TRANSLATION: "이 대화를 한국어로 번역", DISABLE_TRANSLATION: "원본 표시", SEARCH_PLACEHOLDER_TEXT: "검색...", SEARCH_SEARCHING: "검색 중...", SEARCH_NO_RESULTS: "검색 결과 없음", SEARCH_NO_MORE_RESULTS: "추가 검색 결과 없음", CHAT_NOT_FOUND: "대화를 찾지 못했습니다", DELETE_MESSAGE: "메시지 삭제", DELETION_EXPLANATION: "이 메시지를 삭제하면 모든 사람이 볼 수 없게 됩니다.", EDIT_MESSAGE: "메시지 편집하기", SAVE: "저장", EDITED_INDICATOR: "편집", REPLY_TO_MESSAGE: "회신", ADD_REACTION: "반응 추가", AUTH_EXPIRED_OVERLAY_TITLE: "채팅 세션이 만료되었습니다", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "계속하려면 페이지를 새로고침하세요", VOICE_MESSAGE: "음성 메시지", CONTACT_INFORMATION_HIDDEN: "숨겨진 정보", LEAVE_CONVERSATION: "대화 떠나기", MARK_CONVERSATION_AS_UNREAD: "읽지 않은 상태로 표시", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, xa = { code: "nb-NO", name: "Norwegian (Bokmål)", translation: { YESTERDAY: "I går", TODAY: "I dag", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "Nå", LOCATION: "Plassering", CANCEL: "Avbryt", INBOX: "Innboks", DESKTOP_NOTIFICATIONS: "Nettleservarsler", DESKTOP_NOTIFICATIONS_ERROR: "Kan ikke aktivere Nettleservarsler fordi nettleseren din aktivt blokkerer dem. Prøv å se i innstillingene eller bruke en annen nettleser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo varslinger`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Hvis du holder nettleservinduet åpent, vil du se dette varsel når noen snakker til deg.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Kun 10.000 tegn er tillatt.", ENTRYBOX_PLACEHOLDER: "Si noe...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Denne samtale er ikke lengre aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan lese, men ikke sende meldinger.", MESSAGELIST_LOADING_OLDER: "Laster eldre meldinger...", MESSAGELIST_SHOW_OLDER: "Vis eldre meldinger", MESSAGELIST_NEW_MARKER: "Ny", MESSAGE_SENT_VIA_EMAIL: "Denne meldingen er sendt via e-post", YOU_MARKER: "deg", UPLOAD_IN_PROGRESS: "Laster opp...", UPLOAD_SEND_FILE: "Send fil", UPLOAD_SHARE_LOCATION: "Del din plassering", UPLOAD_ERROR: "Noe gikk galt i uplastingen. Det kan være filen ikke støttes eller for stor.", SHARE_LOCATION_ERROR: "Kan ikke dele plasseringen: ", LOADING: "Laster...", HUB_EMPTY: "Din chats historikk vil vises her", HUB_SHOW_EARLIER: "Vis tidligere chats", INBOX_NO_CHATS_TITLE: "Ingen chats enda!", INBOX_NO_CHATS_BODY: "Så snart du får en eller flere samtaler, vil de vises her.", ENABLE_TRANSLATION: "Oversett denne samtalen til norsk", DISABLE_TRANSLATION: "Vis original", SEARCH_PLACEHOLDER_TEXT: "Søk...", SEARCH_SEARCHING: "Søker...", SEARCH_NO_RESULTS: "Finner ingen resultater", SEARCH_NO_MORE_RESULTS: "Ingen flere resultater", CHAT_NOT_FOUND: "Chat ikke funnet", DELETE_MESSAGE: "Slett melding", DELETION_EXPLANATION: "Hvis du sletter denne meldingen, forsvinner den for alle.", EDIT_MESSAGE: "Rediger melding", SAVE: "Lagre", EDITED_INDICATOR: "redigert", REPLY_TO_MESSAGE: "Svar", ADD_REACTION: "Legg til reaksjon", AUTH_EXPIRED_OVERLAY_TITLE: "Chatøkten er utløpt", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Oppdater siden for å fortsette", VOICE_MESSAGE: "Lydmelding", CONTACT_INFORMATION_HIDDEN: "Skjult informasjon", LEAVE_CONVERSATION: "Forlat samtalen", MARK_CONVERSATION_AS_UNREAD: "Merk som ulest", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Xa = { code: "nl-NL", name: "Dutch", translation: { YESTERDAY: "Gisteren", TODAY: "Vandaag", DAYS: "d", HOURS: "u", MINUTES: "m", JUST_NOW: "zojuist", LOCATION: "Locatie", CANCEL: "Annuleren", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browsermeldingen", DESKTOP_NOTIFICATIONS_ERROR: "Browsermeldingen kunnen niet geactiveerd worden omdat de browser het blokkeert. Check de instellingen van je browser of probeer een andere browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notificatie`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Als je je browser open houdt, zie je deze popup als iemand tegen je praat.", SEND_BUTTON_TEXT: "Verzenden", ENTRYBOX_TEXT_LIMIT: "Maximaal 10.000 tekens toegestaan.", ENTRYBOX_PLACEHOLDER: "Typ een bericht...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Dit gesprek is niet actief meer.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Je kunt geen berichten sturen.", MESSAGELIST_LOADING_OLDER: "Eerdere berichten laden...", MESSAGELIST_SHOW_OLDER: "Laad eerdere berichten", MESSAGELIST_NEW_MARKER: "Nieuw", MESSAGE_SENT_VIA_EMAIL: "Dit bericht is verstuurd via e-mail", YOU_MARKER: "jij", UPLOAD_IN_PROGRESS: "Uploaden...", UPLOAD_SEND_FILE: "Verzend bestand", UPLOAD_SHARE_LOCATION: "Deel locatie", UPLOAD_ERROR: "Er ging iets mis. Het bestand wordt niet ondersteund of is te groot.", SHARE_LOCATION_ERROR: "Locatie delen mislukt: ", LOADING: "Bezig met laden...", HUB_EMPTY: "Berichtengeschiedenis wordt hier weergegeven", HUB_SHOW_EARLIER: "Laat eerdere berichten zien", INBOX_NO_CHATS_TITLE: "Nog geen chats!", INBOX_NO_CHATS_BODY: "Zodra je een of meerdere conversaties hebt gehad, worden deze hier weergegeven.", ENABLE_TRANSLATION: "Vertaal dit gesprek naar het Nederlands", DISABLE_TRANSLATION: "Toon oorspronkelijk gesprek", SEARCH_PLACEHOLDER_TEXT: "Zoek...", SEARCH_SEARCHING: "Zoeken...", SEARCH_NO_RESULTS: "Geen resultaten gevonden", SEARCH_NO_MORE_RESULTS: "Niet meer resultaten", CHAT_NOT_FOUND: "Chat niet gevonden", DELETE_MESSAGE: "Bericht verwijderen", DELETION_EXPLANATION: "Als je dit bericht verwijdert, zal het voor iedereen verdwijnen.", EDIT_MESSAGE: "Bericht bewerken", SAVE: "Opslaan", EDITED_INDICATOR: "bewerkt", REPLY_TO_MESSAGE: "Beantwoorden", ADD_REACTION: "Reactie toevoegen", AUTH_EXPIRED_OVERLAY_TITLE: "Je chatsessie is verlopen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Ververs de pagina om door te gaan", VOICE_MESSAGE: "Spraakbericht", CONTACT_INFORMATION_HIDDEN: "verborgen informatie", LEAVE_CONVERSATION: "Gesprek verlaten", MARK_CONVERSATION_AS_UNREAD: "Markeren als ongelezen", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Ga = { code: "pl-PL", name: "Polish", translation: { YESTERDAY: "Wczoraj", TODAY: "Dzisiaj", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "teraz", LOCATION: "Lokalizacja", CANCEL: "Anuluj", INBOX: "Skrzynka odbiorcza", DESKTOP_NOTIFICATIONS: "Powiadomienia", DESKTOP_NOTIFICATIONS_ERROR: "Nie można aktywować powiadomień, ponieważ twoja przeglądarka je blokuje. Proszę zmienić ustawienie lub spróbować innej przeglądarki.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} przykładowe powiadomienie`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jeśli zostawisz tę kartę otwartą, zobaczysz takie powiadomienie, gdy ktoś napisze do Ciebie.", SEND_BUTTON_TEXT: "Wyślij", ENTRYBOX_TEXT_LIMIT: "Nie można wysyłać więcej niż 10000 znaków.", ENTRYBOX_PLACEHOLDER: "Napisz coś...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ten czat nie jest aktywny.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Możesz czytać wiadomości, ale nie możesz ich wysyłać.", MESSAGELIST_LOADING_OLDER: "Wczytuję starsze wiadomości...", MESSAGELIST_SHOW_OLDER: "Zobacz starsze wiadomości", MESSAGELIST_NEW_MARKER: "Nowe", MESSAGE_SENT_VIA_EMAIL: "Ta wiadomość została wysłana przez email.", YOU_MARKER: "ty", UPLOAD_IN_PROGRESS: "Przesyłanie...", UPLOAD_SEND_FILE: "Prześlij plik", UPLOAD_SHARE_LOCATION: "Udostępnij lokalizację", UPLOAD_ERROR: "Coś poszło nie tak. Plik może być zbyt duży lub jest nieobsługiwany.", SHARE_LOCATION_ERROR: "Nie da się udostępnić lokalizacji: ", LOADING: "Ładowanie...", HUB_EMPTY: "Twoje czaty pojawią się tutaj", HUB_SHOW_EARLIER: "Zobacz starsze czaty", INBOX_NO_CHATS_TITLE: "Brak czatów!", INBOX_NO_CHATS_BODY: "Rozpoczęte konwersacje pojawią się tutaj.", ENABLE_TRANSLATION: "Przetłumacz tę konwersację na język polski", DISABLE_TRANSLATION: "Pokaż oryginał", SEARCH_PLACEHOLDER_TEXT: "Wyszukaj...", SEARCH_SEARCHING: "Wyszukiwanie...", SEARCH_NO_RESULTS: "Nie znaleziono wyników", SEARCH_NO_MORE_RESULTS: "Nie ma innych wyników", CHAT_NOT_FOUND: "Nie znaleziono konwersacji", DELETE_MESSAGE: "Usuń wiadomość", DELETION_EXPLANATION: "Jeśli usuniesz tę wiadomość, przestanie być widoczna dla wszystkich.", EDIT_MESSAGE: "Edytuj wiadomość", SAVE: "Zapisz", EDITED_INDICATOR: "edytowano", REPLY_TO_MESSAGE: "Odpowiedz", ADD_REACTION: "Dodaj reakcję", AUTH_EXPIRED_OVERLAY_TITLE: "Twoja sesja wygasła", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Odśwież stronę, aby kontynuować", VOICE_MESSAGE: "Wiadomość głosowa", CONTACT_INFORMATION_HIDDEN: "Ukryte informacje", LEAVE_CONVERSATION: "Opuść konwersację", MARK_CONVERSATION_AS_UNREAD: "Oznacz jako nieprzeczytane", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, za = { code: "pt-BR", name: "Portuguese (Brazil)", translation: { YESTERDAY: "Ontem", TODAY: "Hoje", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "agora mesmo", LOCATION: "Localização", CANCEL: "Cancelar", INBOX: "Caixa de entrada", DESKTOP_NOTIFICATIONS: "Notificações do navegador", DESKTOP_NOTIFICATIONS_ERROR: "Não é possível ativar as notificações da navegador porque seu navegador as bloqueia. Tente procurar nas configurações ou usar um navegador diferente.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} notificação de demonstração`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Se você mantiver a guia do navegador aberta, verá essa mensagem quando alguém falar com você.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Apenas 10.000 caracteres são permitidos.", ENTRYBOX_PLACEHOLDER: "Diga algo...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Esta conversa não está mais ativa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Você pode ler, mas não enviar mensagens.", MESSAGELIST_LOADING_OLDER: "Carregando mensagens antigas...", MESSAGELIST_SHOW_OLDER: "Mostrar mensagens mais antigas", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Esta mensagem foi enviada via email.", YOU_MARKER: "Você", UPLOAD_IN_PROGRESS: "Carregando...", UPLOAD_SEND_FILE: "Enviar arquivo", UPLOAD_SHARE_LOCATION: "Compartilhar localização", UPLOAD_ERROR: "Algo deu errado ao fazer o upload. O arquivo pode não ter suporte ou ser muito grande.", SHARE_LOCATION_ERROR: "Não é possível compartilhar o local: ", LOADING: "Carregando...", HUB_EMPTY: "Seu histórico de conversas será exibido aqui", HUB_SHOW_EARLIER: "Mostrar conversas anteriores", INBOX_NO_CHATS_TITLE: "Ainda não há chats!", INBOX_NO_CHATS_BODY: "Depois de ter uma ou mais conversas, elas serão exibidas aqui.", ENABLE_TRANSLATION: "Traduzir esta conversa para português", DISABLE_TRANSLATION: "Ver a conversa não traduzida", SEARCH_PLACEHOLDER_TEXT: "Busca...", SEARCH_SEARCHING: "Consultando...", SEARCH_NO_RESULTS: "Resultados nao encontrados", SEARCH_NO_MORE_RESULTS: "Não há mais resultados", CHAT_NOT_FOUND: "Conversa não encontrada", DELETE_MESSAGE: "Excluir mensagem", DELETION_EXPLANATION: "Se você excluir esta mensagem, ela desaparecerá para todos.", EDIT_MESSAGE: "Editar mensagem", SAVE: "Salvar", EDITED_INDICATOR: "editada", REPLY_TO_MESSAGE: "Responder", ADD_REACTION: "Adicionar reação", AUTH_EXPIRED_OVERLAY_TITLE: "Sua sessão de chat expirou", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Atualize a página para continuar", VOICE_MESSAGE: "Mensagem de voz", LEAVE_CONVERSATION: "Sair da conversa", MARK_CONVERSATION_AS_UNREAD: "Marcar como não lida", CONTACT_INFORMATION_HIDDEN: "Informação oculta", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Ka = { code: "ro-RO", name: "Romanian (Romania)", translation: { YESTERDAY: "Ieri", TODAY: "Astăzi", DAYS: "z", HOURS: "o", MINUTES: "m", JUST_NOW: "chiar acum", LOCATION: "Locație", CANCEL: "Anulare", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Notificări browser", DESKTOP_NOTIFICATIONS_ERROR: "Nu se pot activa notificări browser deoarece browserul dvs. le blochează în mod activ. Încercați să căutați în setări sau utilizând un alt browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notificare de debit ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Dacă țineți fișa browserului deschis, veți vedea acest pop-up atunci când cineva vorbește cu dvs.", SEND_BUTTON_TEXT: "Trimiteți", ENTRYBOX_TEXT_LIMIT: "Sunt permise numai 10.000 de caractere.", ENTRYBOX_PLACEHOLDER: "Spune ceva...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Această conversație nu mai este activă.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puteți citi, dar nu puteți trimite mesaje.", MESSAGELIST_LOADING_OLDER: "Încărcarea mesajelor mai vechi...", MESSAGELIST_SHOW_OLDER: "Afișați mesaje mai vechi", MESSAGELIST_NEW_MARKER: "Nou", MESSAGE_SENT_VIA_EMAIL: "Acest mesaj a fost trimis prin e-mail", YOU_MARKER: "voi", UPLOAD_IN_PROGRESS: "Încărcarea...", UPLOAD_SEND_FILE: "Trimiteți fișierul", UPLOAD_SHARE_LOCATION: "Distribuiți locația", UPLOAD_ERROR: "Sa încărcat ceva în mod greșit. Fișierul ar putea fi neacceptat sau prea mare.", SHARE_LOCATION_ERROR: "Nu se poate partaja locația: ", LOADING: "Încărcare...", HUB_EMPTY: "Istoricul chat-ului dvs. va apărea aici", HUB_SHOW_EARLIER: "Afișați discuțiile anterioare", INBOX_NO_CHATS_TITLE: "Încă nu vorbești!", INBOX_NO_CHATS_BODY: "După ce ați avut una sau mai multe conversații, acestea vor apărea aici.", ENABLE_TRANSLATION: "Traduceți această conversație în română", DISABLE_TRANSLATION: "Arată originalul", SEARCH_PLACEHOLDER_TEXT: "Căutare...", SEARCH_SEARCHING: "Se caută...", SEARCH_NO_RESULTS: "Nu s-au găsit rezultate", SEARCH_NO_MORE_RESULTS: "Nu mai există rezultate", CHAT_NOT_FOUND: "Conversația nu a fost găsită", DELETE_MESSAGE: "Șterge mesajul", DELETION_EXPLANATION: "Dacă ștergi acest mesaj, acesta va dispărea pentru toată lumea.", EDIT_MESSAGE: "Redactează mesajul", SAVE: "Salvare", EDITED_INDICATOR: "editat", REPLY_TO_MESSAGE: "Răspundeți", ADD_REACTION: "Adaugă o reacție", AUTH_EXPIRED_OVERLAY_TITLE: "Sesiunea dumneavoastră de chat a expirat", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Reîmprospătați pagina pentru a continua", VOICE_MESSAGE: "Mesaj vocal", CONTACT_INFORMATION_HIDDEN: "Informații ascunse", LEAVE_CONVERSATION: "Părăsește conversația", MARK_CONVERSATION_AS_UNREAD: "Marcheaza ca necitit", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Wa = { code: "ru-RU", name: "Russian", translation: { YESTERDAY: "Вчера", TODAY: "Сегодня", DAYS: "д", HOURS: "ч", MINUTES: "м", JUST_NOW: "только что", LOCATION: "Местоположение", CANCEL: "Отмена", INBOX: "Входящие", DESKTOP_NOTIFICATIONS: "Оповещения", DESKTOP_NOTIFICATIONS_ERROR: "Невозможно включить оповещения, потому что ваш браузер активно блокирует их. Проверьте ваши настройки или попробуйте другой браузер.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} демо-оповещение`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Если вкладка вашего браузера открыта, вы увидите всплывающее окошко оповещения когда кто-то отправит вам сообщение.", SEND_BUTTON_TEXT: "Отправить", ENTRYBOX_TEXT_LIMIT: "Разрешено использовать только 10 тысяч символов.", ENTRYBOX_PLACEHOLDER: "Напишите что-нибудь...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Этот разговор больше неактивен.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Вы можете читать, но не отправлять сообщения.", MESSAGELIST_LOADING_OLDER: "Загрузка старых сообщения...", MESSAGELIST_SHOW_OLDER: "Показать старые сообщения", MESSAGELIST_NEW_MARKER: "Новые", MESSAGE_SENT_VIA_EMAIL: "Это сообщение было отправлено по электронной почте", YOU_MARKER: "вы", UPLOAD_IN_PROGRESS: "Загрузка...", UPLOAD_SEND_FILE: "Отправить файл", UPLOAD_SHARE_LOCATION: "Поделиться местоположением", UPLOAD_ERROR: "Что-то пошло не так: такой файл не поддерживается или он слишком большой.", SHARE_LOCATION_ERROR: "Не удается поделиться местоположением: ", LOADING: "Загрузка...", HUB_EMPTY: "Здесь появится ваша история чата", HUB_SHOW_EARLIER: "Показать предыдущие чаты", INBOX_NO_CHATS_TITLE: "Пока нет чатов!", INBOX_NO_CHATS_BODY: "Как только у вас будет один или несколько разговоров, они появятся здесь.", ENABLE_TRANSLATION: "Переведите этот разговор на русский", DISABLE_TRANSLATION: "Show source", SEARCH_PLACEHOLDER_TEXT: "поиск...", SEARCH_SEARCHING: "Поиск...", SEARCH_NO_RESULTS: "Результаты не найдены", SEARCH_NO_MORE_RESULTS: "Больше результатов нет", CHAT_NOT_FOUND: "Чат не найден", DELETE_MESSAGE: "Удалить сообщение", DELETION_EXPLANATION: "Если вы удалите это сообщение, оно исчезнет для всех.", EDIT_MESSAGE: "Изменить сообщение", SAVE: "сохранить", EDITED_INDICATOR: "изменено", REPLY_TO_MESSAGE: "Ответить", ADD_REACTION: "Добавить реакцию", AUTH_EXPIRED_OVERLAY_TITLE: "Срок действия вашего сеанса чата истек", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Обновите страницу, чтобы продолжить", VOICE_MESSAGE: "Голосовое сообщение", CONTACT_INFORMATION_HIDDEN: "Информация скрыта", LEAVE_CONVERSATION: "Выйти из беседы", MARK_CONVERSATION_AS_UNREAD: "Отметить как непрочитанное", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, qa = { code: "sq-AL", name: "Albanian", translation: { YESTERDAY: "Dje", TODAY: "Sot", DAYS: "d", HOURS: "o", MINUTES: "m", JUST_NOW: "Tani", LOCATION: "Pozicion", CANCEL: "Anulo", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Njoftimet e shfletuesit", DESKTOP_NOTIFICATIONS_ERROR: "Nuk mund të aktivizohen njoftimet në shfletues sepse shfletuesi juaj i bllokon ato në mënyrë aktive. Provoni të shikoni cilësimet ose përdorni një shfletues të ndryshëm.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} njoftime në desktop`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Lënia e skedës së shfletuesit tuaj të hapur do të pop-up kur dikush flet me ju.", SEND_BUTTON_TEXT: "Dërgo", ENTRYBOX_TEXT_LIMIT: "Lejohen vetëm 10,000 karaktere", ENTRYBOX_PLACEHOLDER: "Thuaj diçka...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Kjo bisedë nuk është më aktive.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Mund të lexoni por jo të dërgoni mesazhe.", MESSAGELIST_LOADING_OLDER: "Duke ngarkuar mesazhe më të vjetra...", MESSAGELIST_SHOW_OLDER: "Trego mesazhe më të vjetra", MESSAGELIST_NEW_MARKER: "E ri", MESSAGE_SENT_VIA_EMAIL: "Ky mesazh u dërgua si email", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Ngarkim...", UPLOAD_SEND_FILE: "Dërgo datotekën", UPLOAD_SHARE_LOCATION: "Ndani lokacionin", UPLOAD_ERROR: "Na vjen keq, diçka nuk shkoi si duhet. Dosja mund të mos ket mbështetje ose mund të jetë shumë e madhe.", SHARE_LOCATION_ERROR: "Nuk mund të ndahet lokacioni: ", LOADING: "Ngarkim...", HUB_EMPTY: "Këtu do të paraqitet/ shfaqet historia e bisedës tuaj", HUB_SHOW_EARLIER: "Shfaqi bisedat e mëparshme", INBOX_NO_CHATS_TITLE: "Nuk ka biseda!", INBOX_NO_CHATS_BODY: "Pasi të keni një ose më shumë biseda, ato do të paraqiten/shfaqen këtu.", ENABLE_TRANSLATION: "Përkthejeni këtë bisedë në shqiptare", DISABLE_TRANSLATION: "Shikoni origjinalin", SEARCH_PLACEHOLDER_TEXT: "Kërko...", SEARCH_SEARCHING: "Kërko...", SEARCH_NO_RESULTS: "Nuk ka rezultate", SEARCH_NO_MORE_RESULTS: "Nuk ka më rezultate", CHAT_NOT_FOUND: "Biseda nuk u gjet", DELETE_MESSAGE: "Fshi mesazhin", DELETION_EXPLANATION: "Nëse e fshini këtë mesazh, ai do të zhduket për të gjithë.", EDIT_MESSAGE: "Redakto mesazhin", SAVE: "Ruaj", EDITED_INDICATOR: "redaktuar", REPLY_TO_MESSAGE: "Përgjigj", ADD_REACTION: "Shtoni reagimin", AUTH_EXPIRED_OVERLAY_TITLE: "Sesioni juaj i bisedës ka skaduar", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Rifresko faqen për të vazhduar", VOICE_MESSAGE: "Mesazh zanor", CONTACT_INFORMATION_HIDDEN: "informacione të fshehura", LEAVE_CONVERSATION: "Largohu nga bashkëbisedimi", MARK_CONVERSATION_AS_UNREAD: "Shëno si të palexuar", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Ja = { code: "sr-SP", name: "Serbian", translation: { YESTERDAY: "Juče", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Browser Notifikacija", DESKTOP_NOTIFICATIONS_ERROR: "Browser notifikacije nisu omogućene jer ih vaš pregledač aktivno blokira. Pokušajte pogledati postavke ili koristiti neki drugi pregledač.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu pregledača ostavite otvorenu, pojaviće se ovaj pop-up kada neko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Kaži nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možete da čitate, ali ne i da šaljete poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana imejlom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovde će biti prikazana istorija razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovde.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na srpski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Ćaskanje nije pronađeno", DELETE_MESSAGE: "Izbriši poruku", DELETION_EXPLANATION: "Ako obrišete ovu poruku, ona neće biti vidljiva ni za koga.", EDIT_MESSAGE: "Ispravi poruku", SAVE: "Sačuvaj", EDITED_INDICATOR: "ispravljeno", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodaj reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša sesija ćaskanja je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvežite stranicu da biste nastavili", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Sakrivene informacije", LEAVE_CONVERSATION: "Napusti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitanu", REPLY_TO_ARIA_LABEL: (e, t) => `Odgovarate korisniku ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Izađi iz moda pisanja odgovora", STATUS_INDICATOR_ONLINE: "Aktivan", STATUS_INDICATOR_OFFLINE: "Neaktivan" } }, Za = { code: "sv-SE", name: "Swedish (Sweden)", translation: { YESTERDAY: "Igår", TODAY: "Idag", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "just nu", LOCATION: "Plats", CANCEL: "Avbryt", INBOX: "Inkorg", DESKTOP_NOTIFICATIONS: "Webbläsarnotiser", DESKTOP_NOTIFICATIONS_ERROR: "Kan inte aktivera webbläsarnotiser eftersom din webbläsare aktivt blockerar dem. Se över inställningarna eller använd en annan webbläsare.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demonotis`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Om du har fliken i webbläsaren öppen så kommer den här notisen visas när någon pratar med dig.", SEND_BUTTON_TEXT: "Skicka", ENTRYBOX_TEXT_LIMIT: "Max 10 000 tecken är tillåtet.", ENTRYBOX_PLACEHOLDER: "Skriv ett meddelande...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Den här konversationen är inte längre aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan läsa men inte skicka meddelanden.", MESSAGELIST_LOADING_OLDER: "Läser in tidigare meddelanden...", MESSAGELIST_SHOW_OLDER: "Visa tidigare meddelanden", MESSAGELIST_NEW_MARKER: "Nytt", MESSAGE_SENT_VIA_EMAIL: "Detta meddelande skickades via e-post", YOU_MARKER: "du", UPLOAD_IN_PROGRESS: "Laddar upp...", UPLOAD_SEND_FILE: "Skicka fil", UPLOAD_SHARE_LOCATION: "Dela plats", UPLOAD_ERROR: "Något gick fel vid uppladdningen. Filen kan vara av en typ som inte stöds eller är för stor.", SHARE_LOCATION_ERROR: "Kan inte dela plats: ", LOADING: "Laddar...", HUB_EMPTY: "Din chatthistorik kommer att visas här", HUB_SHOW_EARLIER: "Visa tidigare chattar", INBOX_NO_CHATS_TITLE: "Inga chattar ännu!", INBOX_NO_CHATS_BODY: "När du har haft en eller flera konversationer kommer de att visas här.", ENABLE_TRANSLATION: "Översätt den här konversationen till svenska", DISABLE_TRANSLATION: "Visa original", SEARCH_PLACEHOLDER_TEXT: "Sök...", SEARCH_SEARCHING: "Söker...", SEARCH_NO_RESULTS: "Inga resultat hittades", SEARCH_NO_MORE_RESULTS: "Inga fler resultat", CHAT_NOT_FOUND: "Chatten hittades inte", DELETE_MESSAGE: "Radera meddelandet", DELETION_EXPLANATION: "Om du raderar det här meddelandet försvinner det för alla.", EDIT_MESSAGE: "Redigera meddelandet", SAVE: "Spara", EDITED_INDICATOR: "redigerad", REPLY_TO_MESSAGE: "Svara", ADD_REACTION: "Lägg till reaktion", AUTH_EXPIRED_OVERLAY_TITLE: "Din chatsession har gått ut", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Uppdatera sidan för att fortsätta", VOICE_MESSAGE: "Röstmeddelande", CONTACT_INFORMATION_HIDDEN: "Dold information", LEAVE_CONVERSATION: "Lämna konversationen", MARK_CONVERSATION_AS_UNREAD: "Markera som oläst", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, Qa = { code: "tr-TR", name: "Turkish", translation: { YESTERDAY: "Dün", TODAY: "Bugün", DAYS: "g", HOURS: "s", MINUTES: "d", JUST_NOW: "az önce", LOCATION: "Konum", CANCEL: "İptal", INBOX: "Gelen Kutusu", SEND_BUTTON_TEXT: "Gönder", ENTRYBOX_TEXT_LIMIT: "En fazla 10.000 karaktere izin veriliyor.", ENTRYBOX_PLACEHOLDER: "Bir şeyler söyle...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Bu konuşma artık aktif değil.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Mesajları okuyabilirsiniz ancak mesaj gönderemezsiniz.", MESSAGELIST_LOADING_OLDER: "Eski mesajlar yükleniyor...", MESSAGELIST_SHOW_OLDER: "Eski mesajları göster", MESSAGELIST_NEW_MARKER: "Yeni", DESKTOP_NOTIFICATIONS: "Tarayıcı bildirimleri", DESKTOP_NOTIFICATIONS_ERROR: "Tarayıcınız aktif olarak engellediğinden tarayıcı bildirimlerini etkinleştiremiyoruz. Ayarları kontrol etmeyi veya farklı bir tarayıcı kullanmayı deneyebilirsiniz.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} test bildirimi`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Eğer tarayıcınızın penceresini açık tutarsanız biri mesaj yazdığında bu bildirimi göreceksiniz.", MESSAGE_SENT_VIA_EMAIL: "Bu mesaj e-posta ile gönderilmiştir.", YOU_MARKER: "siz", UPLOAD_IN_PROGRESS: "Yükleniyor...", UPLOAD_SEND_FILE: "Dosya gönder", UPLOAD_SHARE_LOCATION: "Konum paylaş", UPLOAD_ERROR: "Yükleme sırasında bir şeyler yanlış gitti. Dosya desteklenmiyor veya izin verilenden büyük olabilir.", SHARE_LOCATION_ERROR: "Konum paylaşılamadı: ", LOADING: "Yükleniyor...", HUB_EMPTY: "Konuşma geçmişiniz burada görünecek", HUB_SHOW_EARLIER: "Önceki konuşmaları göster", INBOX_NO_CHATS_TITLE: "Henüz konuşma yok!", INBOX_NO_CHATS_BODY: "Bir veya daha fazla konuşma başlattığınız konuşmalar burada belirecek.", ENABLE_TRANSLATION: "Bu konuşmayı Türkçe'ye çevir", DISABLE_TRANSLATION: "Orijinali göster", SEARCH_PLACEHOLDER_TEXT: "Ara...", SEARCH_SEARCHING: "Arıyor...", SEARCH_NO_RESULTS: "Sonuç bulunamadı", SEARCH_NO_MORE_RESULTS: "Başka sonuç bulunamadı.", CHAT_NOT_FOUND: "Sohbet bulunamadı", DELETE_MESSAGE: "Mesajı sil", DELETION_EXPLANATION: "Bu mesajı silerseniz herkes için görünmez olacaktır.", EDIT_MESSAGE: "Mesajı düzenle", SAVE: "Kaydet", EDITED_INDICATOR: "düzenlenmiş", REPLY_TO_MESSAGE: "Yanıtla", ADD_REACTION: "Tepki ekle", AUTH_EXPIRED_OVERLAY_TITLE: "Sohbet oturumunuz sona erdi", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Devam etmek için sayfayı yenileyin", VOICE_MESSAGE: "Sesli mesaj", CONTACT_INFORMATION_HIDDEN: "Gizli bilgi", LEAVE_CONVERSATION: "Konuşmadan ayrıl", MARK_CONVERSATION_AS_UNREAD: "Okunmamış olarak işaretle", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ei = { code: "uk-UA", name: "Ukrainian (Ukraine)", translation: { YESTERDAY: "Вчора", TODAY: "Сьогодні", DAYS: "d", HOURS: "h", MINUTES: "м", JUST_NOW: "просто зараз", LOCATION: "Місцезнаходження", CANCEL: "Скасувати", INBOX: "Вхідні", DESKTOP_NOTIFICATIONS: "Сповіщення в браузері", DESKTOP_NOTIFICATIONS_ERROR: "Неможливо ввімкнути сповіщення в браузері, оскільки ваш веб-переглядач активно їх блокує. Спробуйте переглянути налаштування або використовувати інший браузер.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Демо-повідомлення про ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Якщо ви відкриєте вкладку веб-переглядача відкритою, ви побачите це спливаюче вікно, коли хтось спілкується з вами.", SEND_BUTTON_TEXT: "Надіслати", ENTRYBOX_TEXT_LIMIT: "Дозволено лише 10 000 символів.", ENTRYBOX_PLACEHOLDER: "Скажи щось...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ця розмова більше не активна.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Ви можете читати, але не надсилати повідомлення.", MESSAGELIST_LOADING_OLDER: "Завантаження старих повідомлень...", MESSAGELIST_SHOW_OLDER: "Показати старіші повідомлення", MESSAGELIST_NEW_MARKER: "Нові", MESSAGE_SENT_VIA_EMAIL: "Це повідомлення надіслано електронною поштою", YOU_MARKER: "ти", UPLOAD_IN_PROGRESS: "Завантаження...", UPLOAD_SEND_FILE: "Надіслати файл", UPLOAD_SHARE_LOCATION: "Поділитися місцезнаходженням", UPLOAD_ERROR: "На жаль, під час завантаження щось не вдалось. Файл може бути непідтримуваним або занадто великим.", SHARE_LOCATION_ERROR: "Неможливо поділити місцезнаходження: ", LOADING: "Завантаження...", HUB_EMPTY: "Тут відобразиться ваша історія чатів", HUB_SHOW_EARLIER: "Показати попередні чати", INBOX_NO_CHATS_TITLE: "Чатів ще немає!", INBOX_NO_CHATS_BODY: "Після того, як ви проведете одну чи кілька бесід, вони з’являться тут.", ENABLE_TRANSLATION: "Перекласти цю розмову англійською", DISABLE_TRANSLATION: "Показати оригінал", SEARCH_PLACEHOLDER_TEXT: "Пошук...", SEARCH_SEARCHING: "Пошук...", SEARCH_NO_RESULTS: "Не знайдено результатів", SEARCH_NO_MORE_RESULTS: "Більше немає результатів", CHAT_NOT_FOUND: "Чат не знайдено", DELETE_MESSAGE: "Видалити повідомлення", DELETION_EXPLANATION: "Якщо ви видалите це повідомлення, воно зникне для всіх.", EDIT_MESSAGE: "Редагувати повідомлення", SAVE: "Зберегти", EDITED_INDICATOR: "відредаговано", REPLY_TO_MESSAGE: "Відповісти", ADD_REACTION: "Додати реакцію", AUTH_EXPIRED_OVERLAY_TITLE: "Ваша сесія в чаті закінчилась", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Оновіть сторінку, щоб продовжити", VOICE_MESSAGE: "Голосове повідомлення", CONTACT_INFORMATION_HIDDEN: "Прихована інформація", LEAVE_CONVERSATION: "Залишити розмову", MARK_CONVERSATION_AS_UNREAD: "Відзначити як непрочитане", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ti = { code: "vi-VN", name: "Vietnamese", translation: { YESTERDAY: "Hôm qua", TODAY: "Hôm nay", DAYS: "ngày", HOURS: "giờ", MINUTES: "phút", JUST_NOW: "vừa xong", LOCATION: "Địa điểm", CANCEL: "Hủy", INBOX: "Hộp thư đến", DESKTOP_NOTIFICATIONS: "Thông báo trình duyệt", DESKTOP_NOTIFICATIONS_ERROR: "Không thể bật thông báo trên trình duyệt vì trình duyệt của bạn đang tắt chức năng này. Hãy thử tìm trong cài đặt trình duyệt hoặc sử dụng một trình duyệt khác.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} thông báo thử nghiệm`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Nếu bạn giữ tab trình duyệt của bạn mở, bạn sẽ thấy cửa sổ bật lên khi ai đó nói chuyện với bạn.", SEND_BUTTON_TEXT: "Gửi", ENTRYBOX_TEXT_LIMIT: "Tối đa 10.000 ký tự.", ENTRYBOX_PLACEHOLDER: "Nói gì đó...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Cuộc hội thoại này không còn hoạt động.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Bạn có thể đọc, nhưng không thể gửi tin nhắn.", MESSAGELIST_LOADING_OLDER: "Đang tải tin nhắn cũ...", MESSAGELIST_SHOW_OLDER: "Hiển thị tin nhắn trước đó", MESSAGELIST_NEW_MARKER: "Mới", MESSAGE_SENT_VIA_EMAIL: "Tin nhắn này đã được gửi qua email", YOU_MARKER: "bạn", UPLOAD_IN_PROGRESS: "Đang tải lên...", UPLOAD_SEND_FILE: "Gửi tệp", UPLOAD_SHARE_LOCATION: "Chia sẻ vị trí", UPLOAD_ERROR: "Thật không may, quá trình tải lên không thành công. Tệp không được hỗ trợ hoặc quá lớn.", SHARE_LOCATION_ERROR: "Không thể chia sẻ vị trí: ", LOADING: "Đang tải...", HUB_EMPTY: "Lịch sử trò chuyện của bạn sẽ hiển thị ở đây", HUB_SHOW_EARLIER: "Hiển thị các cuộc trò chuyện trước đó", INBOX_NO_CHATS_TITLE: "Chưa có cuộc trò chuyện nào!", INBOX_NO_CHATS_BODY: "Khi bạn đã có một hoặc nhiều cuộc trò chuyện, chúng sẽ hiển thị ở đây.", ENABLE_TRANSLATION: "Dịch cuộc hội thoại sang Tiếng Việt", DISABLE_TRANSLATION: "Hiển thị nội dung gốc", SEARCH_PLACEHOLDER_TEXT: "TÌm kiếm...", SEARCH_SEARCHING: "Đang tìm kiếm...", SEARCH_NO_RESULTS: "Không tìm thấy kết quả nào", SEARCH_NO_MORE_RESULTS: "Không có kết quả nào khác", CHAT_NOT_FOUND: "Không tìm thấy cuộc trò chuyện", DELETE_MESSAGE: "Xóa tin nhắn", DELETION_EXPLANATION: "Nếu bạn xóa tin nhắn này, tất cả mọi người sẽ không còn thấy nó.", EDIT_MESSAGE: "Chỉnh sửa tin nhắn", SAVE: "lưu", EDITED_INDICATOR: "đã chỉnh sửa", REPLY_TO_MESSAGE: "đáp lại", ADD_REACTION: "Thêm biểu tượng cảm xúc", AUTH_EXPIRED_OVERLAY_TITLE: "Phiên trò chuyện của bạn đã hết hạn", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Hãy làm mới trang để tiếp tục", VOICE_MESSAGE: "Tin nhắn thoại", CONTACT_INFORMATION_HIDDEN: "Thông tin ẩn", LEAVE_CONVERSATION: "Thoát khỏi cuộc trò chuyện", MARK_CONVERSATION_AS_UNREAD: "Đánh dấu là chưa đọc", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ni = { code: "zh-CN", name: "Chinese (Simplified)", translation: { YESTERDAY: "昨天", TODAY: "今天", DAYS: "天", HOURS: "小时", MINUTES: "分钟", JUST_NOW: "刚才", LOCATION: "地点", CANCEL: "取消", INBOX: "收件箱", DESKTOP_NOTIFICATIONS: "浏览器通知", DESKTOP_NOTIFICATIONS_ERROR: "因浏览器设置为阻止,所以无法激活浏览器提醒。请去设置里查看或者尝试其他的浏览器。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 演示提醒`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "只要保持浏览器开着,如果有人和你对话,将会自动弹出对话窗口。", SEND_BUTTON_TEXT: "发送", ENTRYBOX_TEXT_LIMIT: "不超过10,000个字符。", ENTRYBOX_PLACEHOLDER: "写点什么吧……", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "该对话已结束。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "你只能阅读信息,不能发送信息。", MESSAGELIST_LOADING_OLDER: "载入之前的信息……", MESSAGELIST_SHOW_OLDER: "显示之前的信息", MESSAGELIST_NEW_MARKER: "新消息", MESSAGE_SENT_VIA_EMAIL: "该信息已通过邮件发送。", YOU_MARKER: "你", UPLOAD_IN_PROGRESS: "上传中……", UPLOAD_SEND_FILE: "发送文件", UPLOAD_SHARE_LOCATION: "分享地址", UPLOAD_ERROR: "上传出错。文件格式不支持或者太大。", SHARE_LOCATION_ERROR: "无法分享地址: ", LOADING: "正在载入……", HUB_EMPTY: "你的聊天记录将在此显示。", HUB_SHOW_EARLIER: "显示之前的聊天记录。", INBOX_NO_CHATS_TITLE: "暂无任何聊天记录!", INBOX_NO_CHATS_BODY: "如果你有一个或多个对话窗口进行中,将显示在这里。", ENABLE_TRANSLATION: "翻译至简体中文", DISABLE_TRANSLATION: "查看原文", SEARCH_PLACEHOLDER_TEXT: "搜索...", SEARCH_SEARCHING: "正在搜索...", SEARCH_NO_RESULTS: "未找到结果", SEARCH_NO_MORE_RESULTS: "无更多结果", CHAT_NOT_FOUND: "未找到“聊天”", DELETE_MESSAGE: "删除消息", DELETION_EXPLANATION: "如果您删除此消息,那么所有人都将无法再看到它。", EDIT_MESSAGE: "编辑消息", SAVE: "保存", EDITED_INDICATOR: "本消息有改动", REPLY_TO_MESSAGE: "回复", ADD_REACTION: "添加反应", AUTH_EXPIRED_OVERLAY_TITLE: "您的聊天会话已过期", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "刷新页面以继续", VOICE_MESSAGE: "语音消息", CONTACT_INFORMATION_HIDDEN: "隐藏信息", LEAVE_CONVERSATION: "离开对话", MARK_CONVERSATION_AS_UNREAD: "标记为未读", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, ai = { code: "zh-TW", name: "Chinese (Traditional)", translation: { YESTERDAY: "昨天", TODAY: "昨天", DAYS: "天", HOURS: "小時", MINUTES: "分", JUST_NOW: "現在", LOCATION: "地點", CANCEL: "取消", INBOX: "收件箱", DESKTOP_NOTIFICATIONS: "瀏覽器通知", DESKTOP_NOTIFICATIONS_ERROR: "無法啟用瀏覽器通知,因為您的瀏覽器主動阻止它們。 嘗試查看設置或使用其他瀏覽器。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 演示通知`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "如果您持續打開瀏覽器標籤頁,當有人與您通話時,您會看到此彈出窗口。", SEND_BUTTON_TEXT: "發送", ENTRYBOX_TEXT_LIMIT: "只允許10.000個字符。", ENTRYBOX_PLACEHOLDER: "說些什麼...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "此對話不再有效。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "您可以閱讀,但不能發送消息。", MESSAGELIST_LOADING_OLDER: "加載舊訊息...", MESSAGELIST_SHOW_OLDER: "顯示較舊的訊息", MESSAGELIST_NEW_MARKER: "新的", MESSAGE_SENT_VIA_EMAIL: "此訊息是通過電郵發送的", YOU_MARKER: "您", UPLOAD_IN_PROGRESS: "上傳中...", UPLOAD_SEND_FILE: "發送文件", UPLOAD_SHARE_LOCATION: "共享位置", UPLOAD_ERROR: "不幸的是,上傳出了問題。 該文件可能不受支持或太大。", SHARE_LOCATION_ERROR: "無法分享位置:", LOADING: "載入中...", HUB_EMPTY: "您的聊天記錄將顯示在此處", HUB_SHOW_EARLIER: "顯示早先的聊天記錄", INBOX_NO_CHATS_TITLE: "還沒聊天!", INBOX_NO_CHATS_BODY: "一旦您進行了一次或多次對話,他們就會顯示在此處。", ENABLE_TRANSLATION: "翻譯此對話至繁體中文", DISABLE_TRANSLATION: "顯示原文", SEARCH_PLACEHOLDER_TEXT: "搜尋...", SEARCH_SEARCHING: "正在搜尋...", SEARCH_NO_RESULTS: "找不到任何結果", SEARCH_NO_MORE_RESULTS: "沒有其他結果", CHAT_NOT_FOUND: "查無對話", DELETE_MESSAGE: "刪除訊息", DELETION_EXPLANATION: "您如果刪除這條訊息,所有人都將看不到它。", EDIT_MESSAGE: "編輯訊息", SAVE: "儲存", EDITED_INDICATOR: "已編輯", REPLY_TO_MESSAGE: "回覆", ADD_REACTION: "加入表情回應", AUTH_EXPIRED_OVERLAY_TITLE: "您的會話過程已過期", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "請刷新頁面以繼續", VOICE_MESSAGE: "語音訊息", CONTACT_INFORMATION_HIDDEN: "隱藏訊息", LEAVE_CONVERSATION: "離開對話", MARK_CONVERSATION_AS_UNREAD: "標記為未讀", REPLY_TO_ARIA_LABEL: c.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: c.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: c.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: c.translation.STATUS_INDICATOR_OFFLINE } }, dt = { ar: La, bg: ma, bs: pa, ca: ha, cs: Da, da: Ca, de: ga, el: va, en: c, es: ka, et: fa, fa: Ma, fi: Pa, fr: Ua, he: Ha, hi: ba, hr: Ba, hu: ya, id: wa, is: Ya, it: $a, ja, ka: Fa, ko: Va, nb: xa, nl: Xa, pl: Ga, pt: za, ro: Ka, ru: Wa, sq: qa, sr: Ja, sv: Za, tr: Qa, uk: ei, vi: ti, zh: ni, zhTw: ai };
131
+ const be = new je(), Q = new je(), A = { code: "en-US", name: "English (US)", translation: { YESTERDAY: "Yesterday", TODAY: "Today", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "just now", LOCATION: "Location", CANCEL: "Cancel", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browser notifications", DESKTOP_NOTIFICATIONS_ERROR: "Can't enable browser notifications because your browser actively blocks them. Try looking in the settings or using a different browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notification`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "If you keep your browser tab open, you'll see this pop up when someone talks to you.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Only 10,000 characters are allowed.", ENTRYBOX_PLACEHOLDER: "Say something...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "This conversation is no longer active.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "You can read, but not send messages.", MESSAGELIST_LOADING_OLDER: "Loading older messages...", MESSAGELIST_SHOW_OLDER: "Show older messages", MESSAGELIST_NEW_MARKER: "New", MESSAGE_SENT_VIA_EMAIL: "This message was sent via email", YOU_MARKER: "you", UPLOAD_IN_PROGRESS: "Uploading...", UPLOAD_SEND_FILE: "Send file", UPLOAD_SHARE_LOCATION: "Share location", UPLOAD_ERROR: "Unfortunately, something went wrong uploading. The file might be unsupported or too large.", SHARE_LOCATION_ERROR: "Cannot share location: ", LOADING: "Loading...", HUB_EMPTY: "Your chat history will show up here", HUB_SHOW_EARLIER: "Show earlier chats", INBOX_NO_CHATS_TITLE: "No chats yet!", INBOX_NO_CHATS_BODY: "Once you've had one or more conversations, they will show up here.", ENABLE_TRANSLATION: "Translate this conversation to English", DISABLE_TRANSLATION: "Show original", SEARCH_PLACEHOLDER_TEXT: "Search...", SEARCH_SEARCHING: "Searching...", SEARCH_NO_RESULTS: "No results found", SEARCH_NO_MORE_RESULTS: "No more results", CHAT_NOT_FOUND: "Chat not found", DELETE_MESSAGE: "Delete message", DELETION_EXPLANATION: "If you delete this message, it will disappear for everybody.", EDIT_MESSAGE: "Edit message", SAVE: "Save", EDITED_INDICATOR: "edited", REPLY_TO_MESSAGE: "Reply", REPLY_TO_ARIA_LABEL: (e, t) => `Replying to ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Exit reply mode", ADD_REACTION: "Add reaction", AUTH_EXPIRED_OVERLAY_TITLE: "Your chat session has expired", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Refresh the page to continue", VOICE_MESSAGE: "Voice message", LEAVE_CONVERSATION: "Leave conversation", MARK_CONVERSATION_AS_UNREAD: "Mark as unread", STATUS_INDICATOR_ONLINE: "Active", STATUS_INDICATOR_OFFLINE: "Away", CONTACT_INFORMATION_HIDDEN: "hidden information" } }, Ra = { code: "ar", name: "Arabic", translation: { YESTERDAY: "الأمس", TODAY: "اليوم", DAYS: "يوم", HOURS: "ساعة", MINUTES: "دقيقة", JUST_NOW: "فقط الآن", LOCATION: "الموقع", CANCEL: "إلغاء", INBOX: "علبة الوارد", DESKTOP_NOTIFICATIONS: "إشعارات المتصفح", DESKTOP_NOTIFICATIONS_ERROR: "لا يمكن تمكين إشعارات المتصفح لأن متصفحك يمنعها بشكل نشط. جرّب البحث في الإعدادات أو استخدام متصفح آخر.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `إعلام ${e} التجريبي`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "إذا أبقيت علامة تبويب المتصفح مفتوحة ، فسترى هذا ينبثق عندما يتحدث شخص معك.", SEND_BUTTON_TEXT: "إرسال", ENTRYBOX_TEXT_LIMIT: "يُسمح فقط بـ 10.000 حرف.", ENTRYBOX_PLACEHOLDER: "قل شيئًا ...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "هذه المحادثة لم تعد نشطة.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "يمكنك القراءة ، لكن لا يمكنك إرسال الرسائل.", MESSAGELIST_LOADING_OLDER: "جارٍ تحميل الرسائل القديمة ...", MESSAGELIST_SHOW_OLDER: "عرض الرسائل الأقدم", MESSAGELIST_NEW_MARKER: "جديد", MESSAGE_SENT_VIA_EMAIL: "تم إرسال هذه الرسالة عبر البريد الإلكتروني", YOU_MARKER: "أنت", UPLOAD_IN_PROGRESS: "جارٍ التحميل ...", UPLOAD_SEND_FILE: "إرسال ملف", UPLOAD_SHARE_LOCATION: "مشاركة الموقع", UPLOAD_ERROR: "حدث خطأ ما في تحميل شيء. ربما يكون الملف غير متوافق أو كبير جدًا.", SHARE_LOCATION_ERROR: "لا يمكن مشاركة الموقع:", LOADING: "جارٍ التحميل ...", HUB_EMPTY: "سوف يظهر سجل الدردشات هنا", HUB_SHOW_EARLIER: "إظهار الدردشات السابقة", INBOX_NO_CHATS_TITLE: "لا توجد دردشات بعد!", INBOX_NO_CHATS_BODY: "بمجرد أن يكون لديك واحد أو أكثر من المحادثات ، سوف تظهر هنا.", ENABLE_TRANSLATION: "ترجم هذه المحادثة إلى العربية", DISABLE_TRANSLATION: "إظهار الأصلي", SEARCH_PLACEHOLDER_TEXT: "...بحث", SEARCH_SEARCHING: "...يتم الآن البحث", SEARCH_NO_RESULTS: "لم يتم العثور على نتائج", SEARCH_NO_MORE_RESULTS: "لا يوجد المزيد من النتائج", CHAT_NOT_FOUND: "لم يتم العثور على الدردشة", DELETE_MESSAGE: "احذف الرسالة", DELETION_EXPLANATION: "إذا قمت بحذف هذه الرسالة، فهي ستختفي للجميع.", EDIT_MESSAGE: "تعديل الرسالة", SAVE: "حفظ", EDITED_INDICATOR: "معدّلة", REPLY_TO_MESSAGE: "رد", ADD_REACTION: "أضف تفاعلاً", AUTH_EXPIRED_OVERLAY_TITLE: "انتهت جلسة الدردشة المخصصة لك", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "يُرجى إعادة تحميل الصفحة للمتابعة", VOICE_MESSAGE: "رسالة صوتية", CONTACT_INFORMATION_HIDDEN: "المعلومات المخفية", LEAVE_CONVERSATION: "الخروج من المحادثة", MARK_CONVERSATION_AS_UNREAD: "وضع علامة غير مقروءة", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, La = { code: "bg-BG", name: "Bulgarian", translation: { YESTERDAY: "Вчера", TODAY: "Днес", DAYS: "Ден", HOURS: "Час", MINUTES: "m", JUST_NOW: "Току-що", LOCATION: "местоположението", CANCEL: "Откажи", INBOX: "Кутия", DESKTOP_NOTIFICATIONS: "Известия на браузъра", DESKTOP_NOTIFICATIONS_ERROR: "Не можете да активирате известията на браузъра, защото браузърът ви ги блокира активно. Опитайте да погледнете в настройките или да използвате друг браузър.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} демо известие`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ако държите раздела на браузъра си отворен, ще видите този изскачащ прозорец, когато някой говори с вас.", SEND_BUTTON_TEXT: "Изпрати", ENTRYBOX_TEXT_LIMIT: "Разрешени са само до 10.000 знака.", ENTRYBOX_PLACEHOLDER: "Кажете нещо...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Този ​​разговор вече не е активен.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Можете да четете, но не и да изпращате съобщения.", MESSAGELIST_LOADING_OLDER: "Зареждане на по-стари съобщения...", MESSAGELIST_SHOW_OLDER: "Показване на по-стари съобщения", MESSAGELIST_NEW_MARKER: "Нови", MESSAGE_SENT_VIA_EMAIL: "Това съобщение беше изпратено по имейл", YOU_MARKER: "Вие", UPLOAD_IN_PROGRESS: "Качване...", UPLOAD_SEND_FILE: "Изпращане на файл", UPLOAD_SHARE_LOCATION: "Споделяне на местоположението", UPLOAD_ERROR: "За съжаление нещо се обърка при качването. Файлът може да не се поддържа или е твърде голям.", SHARE_LOCATION_ERROR: "Не може да се сподели местоположението: ", LOADING: "Зареждане...", HUB_EMPTY: "Историята на вашите разговори ще се покаже тук", HUB_SHOW_EARLIER: "Показване на по-ранни чатове", INBOX_NO_CHATS_TITLE: "Все още нямате разговори!", INBOX_NO_CHATS_BODY: "След като проведете един или повече разговори, те ще се покажат тук.", ENABLE_TRANSLATION: "Преведете този разговор на български", DISABLE_TRANSLATION: "Показване на оригинал", SEARCH_PLACEHOLDER_TEXT: "Търсене...", SEARCH_SEARCHING: "Търсене...", SEARCH_NO_RESULTS: "Няма намерени резултати", SEARCH_NO_MORE_RESULTS: "Няма повече резултати", CHAT_NOT_FOUND: "Чатът не е намерен", DELETE_MESSAGE: "Изтриване на съобщение", DELETION_EXPLANATION: "Ако изтриете това съобщение, то ще изчезне за всички.", EDIT_MESSAGE: "Редактиране на съобщението", SAVE: "Запиши", EDITED_INDICATOR: "редактирано", REPLY_TO_MESSAGE: "Отговори", ADD_REACTION: "Добави реакция", AUTH_EXPIRED_OVERLAY_TITLE: "Вашата чат сесия е изтекла", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Обновете страницата, за да продължите", VOICE_MESSAGE: "Гласово съобщение", CONTACT_INFORMATION_HIDDEN: "Скрита информация", LEAVE_CONVERSATION: "Напускане на разговора", MARK_CONVERSATION_AS_UNREAD: "Маркирай като непрочетено", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, ma = { code: "bs-BA", name: "Bosnian", translation: { YESTERDAY: "Jučer", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Obavijesti preglednika", DESKTOP_NOTIFICATIONS_ERROR: "Notifikacije preglednika se ne mogu omogućiti jer ih vaš preglednik aktivno blokira. Pokušajte pregledati postavke ili koristiti drugi preglednik.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu preglednika ostavite otvorenu, pojavit će se ovaj pop-up kada netko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Reci nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možeš čitati, ali ne i slati poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana e-poštom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podijeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podijeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovdje će se prikazati vaša povijest razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovdje.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na bosanski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Ćaskanje nije pronađeno", DELETE_MESSAGE: "Obriši poruku", DELETION_EXPLANATION: "Ako izbrišete ovu poruku, ona će nestati za sve.", EDIT_MESSAGE: "Uredi poruku", SAVE: "Sačuvati", EDITED_INDICATOR: "uređeno", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodajte reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša chat sesija je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvježite stranicu da nastavite", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Skrivene informacije", LEAVE_CONVERSATION: "Napusti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitano", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, pa = { code: "ca-ES", name: "Catalan (ES)", translation: { YESTERDAY: "Ahir", TODAY: "Avui", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "ara mateix", LOCATION: "Ubicació", CANCEL: "Cancel·lar", INBOX: "Safata d'entrada", DESKTOP_NOTIFICATIONS: "Notificacions d'escriptori", DESKTOP_NOTIFICATIONS_ERROR: "No es poden habilitar les notificacions del navegador perquè el teu navegador les bloqueja activament. Prova de buscar a la configuració o utilitza un altre navegador.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notificació de demostració de ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si mantens la pestanya del navegador oberta, veuràs aquesta notificació quan algú et parli.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Només es permeten 10.000 caràcters.", ENTRYBOX_PLACEHOLDER: "Digues alguna cosa...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Aquesta conversa ja no està activa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Pots llegir, però no enviar missatges.", MESSAGELIST_LOADING_OLDER: "Carregant missatges antics...", MESSAGELIST_SHOW_OLDER: "Mostrar missatges més antics", MESSAGELIST_NEW_MARKER: "Nou", MESSAGE_SENT_VIA_EMAIL: "Aquest missatge s'ha enviat per correu electrònic", YOU_MARKER: "tu", UPLOAD_IN_PROGRESS: "S'està pujant...", UPLOAD_SEND_FILE: "Enviar arxiu", UPLOAD_SHARE_LOCATION: "Compartir ubicació", UPLOAD_ERROR: "Desafortunadament, alguna cosa ha anat malament en pujar. L'arxiu pot ser no compatible o massa gran.", SHARE_LOCATION_ERROR: "No es pot compartir la ubicació: ", LOADING: "Carregant...", HUB_EMPTY: "El teu historial de xat apareixerà aquí", HUB_SHOW_EARLIER: "Mostra xats anteriors", INBOX_NO_CHATS_TITLE: "Encara no hi ha xats!", INBOX_NO_CHATS_BODY: "Un cop hagis tingut una o més converses, apareixeran aquí.", ENABLE_TRANSLATION: "Traduir aquesta conversa al català", DISABLE_TRANSLATION: "Mostrar original", SEARCH_PLACEHOLDER_TEXT: "Cerca...", SEARCH_SEARCHING: "Buscant...", SEARCH_NO_RESULTS: "No s'han trobat resultats", SEARCH_NO_MORE_RESULTS: "No hi ha més resultats", CHAT_NOT_FOUND: "Xat no trobat", DELETE_MESSAGE: "Esborrar missatge", DELETION_EXPLANATION: "Si esborres aquest missatge, desapareixerà per a tothom.", EDIT_MESSAGE: "Editar missatge", SAVE: "Desar", EDITED_INDICATOR: "editat", REPLY_TO_MESSAGE: "Respondre", REPLY_TO_ARIA_LABEL: (e, t) => `Responent a ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Sortir del mode de resposta", ADD_REACTION: "Afegir reacció", VOICE_MESSAGE: "Missatge de veu", LEAVE_CONVERSATION: "Abandonar la conversa", MARK_CONVERSATION_AS_UNREAD: "marcar com no llegit", STATUS_INDICATOR_ONLINE: "Actiu", STATUS_INDICATOR_OFFLINE: "Absent", CONTACT_INFORMATION_HIDDEN: "informació oculta", AUTH_EXPIRED_OVERLAY_TITLE: "La teva sessió de xat ha caducat", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualitza la pàgina per continuar" } }, ha = { code: "cs-CZ", name: "Czech", translation: { YESTERDAY: "Včera", TODAY: "Dnes", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "právě teď", LOCATION: "Lokace", CANCEL: "Zrušit", INBOX: "Doručené", DESKTOP_NOTIFICATIONS: "Oznámení v prohlížeči", DESKTOP_NOTIFICATIONS_ERROR: "Nelze povolit notifikace prohlížeče, protože váš prohlížeč je aktivně blokuje. Zkuste se podívat na nastavení nebo zkuste použít jiný prohlížeč.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikace`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Pokud necháte kartu prohlížeče otevřenou, uvidíte tento popup jakmile s vámi bude někdo mluvit.", SEND_BUTTON_TEXT: "Odeslat", ENTRYBOX_TEXT_LIMIT: "Je povoleno Maximálně 10.000 znaků.", ENTRYBOX_PLACEHOLDER: "Napište něco...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Tato konverzace již není aktivní.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Můžete číst, ale nemůžete posílat zprávy.", MESSAGELIST_LOADING_OLDER: "Nahrávám starší zprávy...", MESSAGELIST_SHOW_OLDER: "Zobrazit starší zprávy", MESSAGELIST_NEW_MARKER: "Nové", MESSAGE_SENT_VIA_EMAIL: "Tato zpráva byla odeslána přes mail.", YOU_MARKER: "vy", UPLOAD_IN_PROGRESS: "Nahrávám...", UPLOAD_SEND_FILE: "Poslat soubor", UPLOAD_SHARE_LOCATION: "Sdílet pozici", UPLOAD_ERROR: "Nepodařilo se nahrát soubor. Ten je buď nepodporován a/nebo příliš velký.", SHARE_LOCATION_ERROR: "Není možné sdílet pozici: ", LOADING: "Nahrávám...", HUB_EMPTY: "Vaše historie se zde zobrazí", HUB_SHOW_EARLIER: "Zobrazit dřívější konverzace", INBOX_NO_CHATS_TITLE: "Zatím zde nejsou žádné konverzace!", INBOX_NO_CHATS_BODY: "Jakmile budete mít jednu nebo více konverzací, objeví se zde.", ENABLE_TRANSLATION: "Přeložit tuto konverzaci do češtiny", DISABLE_TRANSLATION: "Zobrazit původní", SEARCH_PLACEHOLDER_TEXT: "Hledat...", SEARCH_SEARCHING: "Hledání...", SEARCH_NO_RESULTS: "Nenašly se žádné výsledky", SEARCH_NO_MORE_RESULTS: "Žádné další výsledky", CHAT_NOT_FOUND: "Chat nenalezen", DELETE_MESSAGE: "Smazat zprávu", DELETION_EXPLANATION: "Pokud tuto zprávu smažete, zmizí pro všechny.", EDIT_MESSAGE: "Upravit zprávu", SAVE: "Uložit", EDITED_INDICATOR: "upraveno", REPLY_TO_MESSAGE: "Odpovědět", ADD_REACTION: "Reagovat", AUTH_EXPIRED_OVERLAY_TITLE: "Váš chat byl kvůli nečinnosti odpojen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Pro pokračování obnovte stránku", VOICE_MESSAGE: "Hlasová zpráva", CONTACT_INFORMATION_HIDDEN: "Skrytá informace", LEAVE_CONVERSATION: "Opustit konverzaci", MARK_CONVERSATION_AS_UNREAD: "Označit jako nepřečtené", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Da = { code: "da-DK", name: "Danish", translation: { YESTERDAY: "I går", TODAY: "I dag", DAYS: "d", HOURS: "t", MINUTES: "m", JUST_NOW: "lige nu", LOCATION: "Placering", CANCEL: "Annuller", INBOX: "Indbakke", DESKTOP_NOTIFICATIONS: "Browsermeddelelser", DESKTOP_NOTIFICATIONS_ERROR: "Kan ikke aktivere Browsermeddelelser, fordi din browser aktivt blokerer dem. Prøv at kigge i indstillingerne eller benyt en anden browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demomeddelelse`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Hvis du holder dit browser-faneblad åben, vil du se det her komme op, når nogen taler til dig.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Kun 10.000 tegn er tilladt.", ENTRYBOX_PLACEHOLDER: "Sig noget...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Denne samtale er ikke længere aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan læse, men ikke sende beskeder.", MESSAGELIST_LOADING_OLDER: "Indlæser ældre beskeder...", MESSAGELIST_SHOW_OLDER: "Vis ældre beskeder", MESSAGELIST_NEW_MARKER: "Ny", MESSAGE_SENT_VIA_EMAIL: "Denne besked blev sendt via e-mail", YOU_MARKER: "dig", UPLOAD_IN_PROGRESS: "Overfører...", UPLOAD_SEND_FILE: "Send fil", UPLOAD_SHARE_LOCATION: "Del placering", UPLOAD_ERROR: "Der er sket noget forkert ved upload. Filen kan ikke understøttes eller filen er for stor.", SHARE_LOCATION_ERROR: "Kan ikke dele placering: ", LOADING: "Indlæser...", HUB_EMPTY: "Dine samtaler vises her", HUB_SHOW_EARLIER: "Vis tidligere chats", INBOX_NO_CHATS_TITLE: "Ingen chats endnu!", INBOX_NO_CHATS_BODY: "Når du har haft en eller flere samtaler, vises de her.", ENABLE_TRANSLATION: "Oversæt denne konversation til dansk", DISABLE_TRANSLATION: "Vis den oprindelige", SEARCH_PLACEHOLDER_TEXT: "Søg...", SEARCH_SEARCHING: "Søger...", SEARCH_NO_RESULTS: "Ingen resultater fundet", SEARCH_NO_MORE_RESULTS: "Ikke flere resultater", CHAT_NOT_FOUND: "Chat ikke fundet", DELETE_MESSAGE: "Slet besked", DELETION_EXPLANATION: "Hvis du sletter denne besked, vil ingen kunne se den.", EDIT_MESSAGE: "Rediger besked", SAVE: "Gem", EDITED_INDICATOR: "redigeret", REPLY_TO_MESSAGE: "Svar", ADD_REACTION: "Tilføj reaktion", AUTH_EXPIRED_OVERLAY_TITLE: "Din chatsession er udløbet", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Opdater siden for at fortsætte", VOICE_MESSAGE: "Talebesked", CONTACT_INFORMATION_HIDDEN: "Skjulte oplysninger", LEAVE_CONVERSATION: "Forlad samtale", MARK_CONVERSATION_AS_UNREAD: "Marker som ulæst", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Ca = { code: "de-DE", name: "German", translation: { YESTERDAY: "Gestern", TODAY: "Heute", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "gerade jetzt", LOCATION: "Standort", CANCEL: "Abbrechen", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browser-Benachrichtigungen", DESKTOP_NOTIFICATIONS_ERROR: "Browser-Benachrichtigungen können nicht aktiviert werden, da Ihr Browser sie aktiv blockiert. Versuchen Sie, in den Einstellungen nachzuschlagen oder einen anderen Browser zu verwenden.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} Demo-Benachrichtigung`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Wenn Sie Ihre Browser-Registerkarte geöffnet lassen, wird dies angezeigt, wenn jemand mit Ihnen spricht.", SEND_BUTTON_TEXT: "Senden", ENTRYBOX_TEXT_LIMIT: "Nur 10.000 Zeichen sind erlaubt.", ENTRYBOX_PLACEHOLDER: "Sag etwas...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Diese Konversation ist nicht mehr aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Sie können Nachrichten lesen, aber nicht senden.", MESSAGELIST_LOADING_OLDER: "Ältere Nachrichten werden geladen...", MESSAGELIST_SHOW_OLDER: "Zeige ältere Nachrichten", MESSAGELIST_NEW_MARKER: "Neu", MESSAGE_SENT_VIA_EMAIL: "Diese Nachricht wurde per E-Mail gesendet", YOU_MARKER: "du", UPLOAD_IN_PROGRESS: "Hochladen...", UPLOAD_SEND_FILE: "Datei senden", UPLOAD_SHARE_LOCATION: "Standort teilen", UPLOAD_ERROR: "Beim Hochladen ist ein Fehler aufgetreten. Die Datei ist möglicherweise nicht unterstützt oder zu groß.", SHARE_LOCATION_ERROR: "Standort kann nicht freigegeben werden: ", LOADING: "Laden...", HUB_EMPTY: "Ihr Chat-Verlauf wird hier angezeigt", HUB_SHOW_EARLIER: "Zeige frühere Chats", INBOX_NO_CHATS_TITLE: "Noch keine Chats!", INBOX_NO_CHATS_BODY: "Sobald Sie eine oder mehrere Unterhaltungen geführt haben, werden sie hier angezeigt.", ENABLE_TRANSLATION: "Dieses Gespräch auf Deutsch übersetzen", DISABLE_TRANSLATION: "Originaltext anzeigen", SEARCH_PLACEHOLDER_TEXT: "Suche...", SEARCH_SEARCHING: "Suchen...", SEARCH_NO_RESULTS: "Keine Suchergebnisse gefunden", SEARCH_NO_MORE_RESULTS: "Keine weiteren Suchergebnisse", CHAT_NOT_FOUND: "Chat nicht gefunden", DELETE_MESSAGE: "Nachricht löschen", DELETION_EXPLANATION: "Wenn Sie diese Nachricht löschen, wird sie für alle verschwinden.", EDIT_MESSAGE: "Nachricht bearbeiten", SAVE: "Speichern", EDITED_INDICATOR: "bearbeitet", REPLY_TO_MESSAGE: "Antworten", ADD_REACTION: "Reaktion hinzufügen", AUTH_EXPIRED_OVERLAY_TITLE: "Ihre Chatsitzung ist abgelaufen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Laden Sie zum Fortfahren die Seite neu", VOICE_MESSAGE: "Sprachnachricht", CONTACT_INFORMATION_HIDDEN: "Geschützte Angaben", LEAVE_CONVERSATION: "Unterhaltung verlassen", MARK_CONVERSATION_AS_UNREAD: "als ungelesen markieren", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, ga = { code: "el-GR", name: "Greek (Greece)", translation: { YESTERDAY: "Χθές", TODAY: "Σήμερα", DAYS: "Ημέρες", HOURS: "'Ωρες", MINUTES: "Λεπτά", JUST_NOW: "Μόλις τώρα", LOCATION: "Τοποθεσία", CANCEL: "Ακύρωση", INBOX: "Εισερχόμενα", DESKTOP_NOTIFICATIONS: "Ειδοποιήσεις περιηγητή", DESKTOP_NOTIFICATIONS_ERROR: "Δεν είναι δυνατή η ενεργοποίηση των ειδοποιήσεων του προγράμματος περιήγησης, επειδή το πρόγραμμα περιήγησης τις αποκλείει ενεργά. Δοκιμάστε να τσεκάρετε τις ρυθμίσεις ή να χρησιμοποιήσετε διαφορετικό πρόγραμμα περιήγησης.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} Δοκιμαστική επίδειξη`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Αν διατηρήσετε ανοιχτή τη σελίδα του προγράμματος περιήγησης, θα δείτε αυτό το pop up (παράθυρο) όταν κάποιος σας μιλάει.", SEND_BUTTON_TEXT: "Αποστολή", ENTRYBOX_TEXT_LIMIT: "Επιτρέπονται μόνο 10.000 χαρακτήρες.", ENTRYBOX_PLACEHOLDER: "Πείτε κάτι...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Αυτή η συζήτηση δεν είναι πλέον ενεργή.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Μπορείτε να διαβάσετε αλλά δεν μπορείτε να στείλετε μηνύματα.", MESSAGELIST_LOADING_OLDER: "Φόρτωση παλαιοτέρων μηνυμάτων...", MESSAGELIST_SHOW_OLDER: "Εμφάνιση παλαιότερων μηνυμάτων", MESSAGELIST_NEW_MARKER: "Νέο", MESSAGE_SENT_VIA_EMAIL: "Αυτό το μήνυμα εστάλη μέσω ηλεκτρονικού ταχυδρομείου", YOU_MARKER: "Εσείς", UPLOAD_IN_PROGRESS: "Ανέβασμα...", UPLOAD_SEND_FILE: "Αποστολή αρχείου", UPLOAD_SHARE_LOCATION: "Κοινή χρήση τοποθεσίας", UPLOAD_ERROR: "Κάτι πήγε στραβά κατά τη φόρτωση. Το αρχείο ενδέχεται να μην υποστηρίζεται ή να είναι υπερβολικά μεγάλο.", SHARE_LOCATION_ERROR: "Δεν είναι δυνατή η χρήση κοινής τοποθεσίας: ", LOADING: "Φόρτωση...", HUB_EMPTY: "Το ιστορικό των συνομιλιών σας θα εμφανιστεί εδώ", HUB_SHOW_EARLIER: "Εμφάνιση προηγούμενων συνομιλιών", INBOX_NO_CHATS_TITLE: "Δεν υπάρχουν ακόμα συζητήσεις!", INBOX_NO_CHATS_BODY: "Μόλις έχετε μία ή περισσότερες συνομιλίες, θα εμφανιστούν εδώ.", ENABLE_TRANSLATION: "Μετάφραση αυτής της συνομιλίας στα ελληνικά", DISABLE_TRANSLATION: "Προβολή πρωτοτύπου", SEARCH_PLACEHOLDER_TEXT: "Αναζήτηση...", SEARCH_SEARCHING: "Αναζήτηση...", SEARCH_NO_RESULTS: "Δεν βρέθηκαν αποτελέσματα", SEARCH_NO_MORE_RESULTS: "Δεν υπάρχουν περισσότερα αποτελέσματα", CHAT_NOT_FOUND: "Η συνομιλία δεν βρέθηκε", DELETE_MESSAGE: "Διαγραφή μηνύματος", DELETION_EXPLANATION: "Εάν διαγράψετε αυτό το μήνυμα, θα εξαφανιστεί για όλους.", EDIT_MESSAGE: "Επεξεργασία μηνύματος", SAVE: "Αποθήκευση", EDITED_INDICATOR: "επεξεργασμένο", REPLY_TO_MESSAGE: "Απάντηση", ADD_REACTION: "Προσθήκη αντίδρασης", AUTH_EXPIRED_OVERLAY_TITLE: "Η συνεδρία της συνομιλίας σας έχει λήξει", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Ανανεώστε τη σελίδα για να συνεχίσετε", VOICE_MESSAGE: "Ηχητικό μήνυμα", CONTACT_INFORMATION_HIDDEN: "Κρυμμένες πληροφορίες", LEAVE_CONVERSATION: "Αποσυρθείτε από τη συζήτηση", MARK_CONVERSATION_AS_UNREAD: "Επισήμανση ως μη αναγνωσμένα", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, va = { code: "es-ES", name: "Spanish", translation: { YESTERDAY: "Ayer", TODAY: "Hoy", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "justo ahora", LOCATION: "Ubicación", CANCEL: "Cancelar", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Notificaciones del navigator", DESKTOP_NOTIFICATIONS_ERROR: "No se logró habilitar las notificaciones del navigador, comprueba que tu navegador no las esté bloqueando o intenta con otro navegador.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} notificación de prueba`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si dejas esta pestaña abierta, verás este pop up cuando alguien te hable.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Sólo 10.000 caracteres permitidos.", ENTRYBOX_PLACEHOLDER: "Escribe algo...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Esta conversación ya no está activa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puedes leer pero no enviar mensajes.", MESSAGELIST_LOADING_OLDER: "Cargando mensajes pasados...", MESSAGELIST_SHOW_OLDER: "Ver mensajes pasados", MESSAGELIST_NEW_MARKER: "Nuevo", MESSAGE_SENT_VIA_EMAIL: "Este mensaje ha sido enviado vía email", YOU_MARKER: "tú", UPLOAD_IN_PROGRESS: "Subir...", UPLOAD_SEND_FILE: "Enviar archivo", UPLOAD_SHARE_LOCATION: "Compartir ubicación", UPLOAD_ERROR: "Ocurrió un problema subiendo el archivo. Puede que el archivo esté en un formato no soportado o que sea demasiado grande.", SHARE_LOCATION_ERROR: "No se logró compartir la ubicación: ", LOADING: "Cargando...", HUB_EMPTY: "Tu historial de conversaciones se mostrará aquí", HUB_SHOW_EARLIER: "Ver conversaciones pasadas", INBOX_NO_CHATS_TITLE: "¡Aún sin conversaciones!", INBOX_NO_CHATS_BODY: "Una vez que tengas una o más conversaciones, se mostrarán aquí.", ENABLE_TRANSLATION: "Traducir esta conversación al español", DISABLE_TRANSLATION: "Mostrar la conversación original", SEARCH_PLACEHOLDER_TEXT: "Buscar...", SEARCH_SEARCHING: "Buscando...", SEARCH_NO_RESULTS: "No se encontraron resultados", SEARCH_NO_MORE_RESULTS: "No hay más resultados", CHAT_NOT_FOUND: "Chat no encontrado", DELETE_MESSAGE: "Eliminar mensaje", DELETION_EXPLANATION: "Este mensaje desaparecerá para todos si lo borras.", EDIT_MESSAGE: "Editar mensaje", SAVE: "Guardar", EDITED_INDICATOR: "editado", REPLY_TO_MESSAGE: "Responder", ADD_REACTION: "Añadir reacción", AUTH_EXPIRED_OVERLAY_TITLE: "Su sesión de chat ha expirado", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualice la página para continuar", VOICE_MESSAGE: "Mensaje de voz", CONTACT_INFORMATION_HIDDEN: "Información oculta", LEAVE_CONVERSATION: "Abandonar conversación", MARK_CONVERSATION_AS_UNREAD: "Marcar como no leída", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, ka = { code: "et-EE", name: "Estonian", translation: { YESTERDAY: "Eile", TODAY: "Täna", DAYS: "p", HOURS: "t", MINUTES: "m", JUST_NOW: "Just nüüd", LOCATION: "Asukoht", CANCEL: "Katkesta", INBOX: "Postkast", DESKTOP_NOTIFICATIONS: "Veebibrauseri teated", DESKTOP_NOTIFICATIONS_ERROR: "Töölaua teatisi ei saa lubada, kuna Teie brauser blokeerib need aktiivselt. Proovige muuta seadeid või kasutada mõnda muud brauserit.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo teavitus`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Kui hoiate oma brauseri vahekaardi lahti ja näete seda hüpikakent, siis keegi soovib Teiega rääkida.", SEND_BUTTON_TEXT: "Saada", ENTRYBOX_TEXT_LIMIT: "Ainult kuni 10.000 tähemärki on lubatud.", ENTRYBOX_PLACEHOLDER: "Kirjuta midagi...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "See vestlus ei ole enam aktiivne.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Sa saad lugeda teateid, aga mitte kirjutada.", MESSAGELIST_LOADING_OLDER: "Laen vanemaid teateid...", MESSAGELIST_SHOW_OLDER: "Näita vanemaid teateid", MESSAGELIST_NEW_MARKER: "Uus", MESSAGE_SENT_VIA_EMAIL: "See teade on saadetud e-postiga", YOU_MARKER: "Sina", UPLOAD_IN_PROGRESS: "Laen...", UPLOAD_SEND_FILE: "Saada fail", UPLOAD_SHARE_LOCATION: "Jaga faili asukohta", UPLOAD_ERROR: "Nüüd läks midagi nihu, seoses faili ülesse laadimisega. Tundmatu fail või liiga suur.", SHARE_LOCATION_ERROR: "Ei suuda jagada faili asukohta: ", LOADING: "Laen...", HUB_EMPTY: "Siin on Sinu vestluste ajalugu", HUB_SHOW_EARLIER: "Näita vanemaid vestlusi", INBOX_NO_CHATS_TITLE: "Pole ühtegi vestlust!", INBOX_NO_CHATS_BODY: "Kui Sul tekib üks või rohkem vestlust, siis on need kuvatakse siin.", ENABLE_TRANSLATION: "Tõlgi see vestlus eesti keelde", DISABLE_TRANSLATION: "Näita algteksti", SEARCH_PLACEHOLDER_TEXT: "Otsi...", SEARCH_SEARCHING: "Otsin...", SEARCH_NO_RESULTS: "Otsingu tulemused puuduvad", SEARCH_NO_MORE_RESULTS: "Rohkem tulemusi ei ole ", CHAT_NOT_FOUND: "Vestlust ei leitud", DELETE_MESSAGE: "Kustuta sõnum", DELETION_EXPLANATION: "Kui kustutate selle sõnumi, kaob see kõigi jaoks.", EDIT_MESSAGE: "Redigeeri sõnumit", SAVE: "Salvesta", EDITED_INDICATOR: "muudetud", REPLY_TO_MESSAGE: "Vasta", ADD_REACTION: "Lisa reaktsioon", AUTH_EXPIRED_OVERLAY_TITLE: "Teie vestlussessioon on lõppenud", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Jätkamiseks värskendage lehte", VOICE_MESSAGE: "Häälsõnum", CONTACT_INFORMATION_HIDDEN: "Varjatud informatsioon", LEAVE_CONVERSATION: "Lahku vestlusest", MARK_CONVERSATION_AS_UNREAD: "Märgi mitteloetuks", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, fa = { code: "fa", name: "Persian (Farsi)", translation: { YESTERDAY: "دیروز", TODAY: "امروز", DAYS: "روز", HOURS: "ساعت", MINUTES: "دقیقه", JUST_NOW: "هم اکنون", LOCATION: "مکان", CANCEL: "لغو", INBOX: "صندوق", DESKTOP_NOTIFICATIONS: "اطلاعیه‌های مرورگر", DESKTOP_NOTIFICATIONS_ERROR: "خطا در فعال سازی اعلان های مرورگر، مرورگر شما آنها را مسدود می کند سعی کنید تنظیمات مرورگر را تغییر دهید یا از یک مرورگر دیگر استفاده کنید.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `نوتیفیکیشن دمو ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "اگر صفحه ی مرورگر را باز نگهدارید این را موقعه ای که کسی با شما صحبت کند خواهید دید", SEND_BUTTON_TEXT: "بفرست", ENTRYBOX_TEXT_LIMIT: "فقط ۱۰،۰۰۰ حروف مجاز می باشد.", ENTRYBOX_PLACEHOLDER: "...چیزی بنویسید", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: ".این مکالمه دیگر فعال نمی باشد", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "شما می توانید بخوانید اما نمی توانید پیام بفرستید", MESSAGELIST_LOADING_OLDER: "...در حال بارگذاری پیام های قدیمی تر", MESSAGELIST_SHOW_OLDER: "نشان دادن پیام های قدیمی", MESSAGELIST_NEW_MARKER: "جدید", MESSAGE_SENT_VIA_EMAIL: "پیام توسط ایمل ارسال شد", YOU_MARKER: "شما", UPLOAD_IN_PROGRESS: "...در حال بارگذاری", UPLOAD_SEND_FILE: "فرستادن پوشه", UPLOAD_SHARE_LOCATION: "اشتراک گذاری مکان", UPLOAD_ERROR: "متاسفانه بارگذاری با مشکل روبه رو شد. ممکن است فایل حجیم باشد یا ساپورت نشده باشد.", SHARE_LOCATION_ERROR: "خطا در اشتراک گذاری مکان: ", LOADING: "...بارگذاری", HUB_EMPTY: "تاریخچه گفتگو اینجا نمایان می شود", HUB_SHOW_EARLIER: "دیدن گفتگو های قبلی", INBOX_NO_CHATS_TITLE: "هنوز گفتگویی وجود ندارد", INBOX_NO_CHATS_BODY: "بعد از داشتن یک مکالمه یا بیشتر، آنها اینجا نمایان می شوند.", ENABLE_TRANSLATION: "این مکالمه را به فارسی ترجمه کن", DISABLE_TRANSLATION: "زبان اصلی را نشان بده", SEARCH_PLACEHOLDER_TEXT: "...جستجو", SEARCH_SEARCHING: "...در حال جستجو", SEARCH_NO_RESULTS: "نتیجه ای یافت نشد", SEARCH_NO_MORE_RESULTS: "نتیجه بیشتری وجود ندارد", CHAT_NOT_FOUND: "مکالمه پیدا نشد", DELETE_MESSAGE: "حذف پیام ", DELETION_EXPLANATION: "اگر این پیام را حذف کنید، برای همه ناپدید می شود.", EDIT_MESSAGE: "ویرایش پیام", SAVE: "ذخیره", EDITED_INDICATOR: "ویرایش‌شده", REPLY_TO_MESSAGE: "پاسخ دادن", ADD_REACTION: "واکنش را اضافه کنید", AUTH_EXPIRED_OVERLAY_TITLE: "جلسه چت شما منقضی شده است", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "برای ادامه صفحه را بازخوانی کنید", VOICE_MESSAGE: "پیام صوتی", CONTACT_INFORMATION_HIDDEN: "اطلاعات پنهان", LEAVE_CONVERSATION: "خروج از گفتگو", MARK_CONVERSATION_AS_UNREAD: "به عنوان خوانده نشده علامت گذاری کن", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Ma = { code: "fi-FI", name: "Finnish", translation: { YESTERDAY: "Eilen", TODAY: "Tänään", DAYS: "p", HOURS: "t", MINUTES: "m", JUST_NOW: "juuri nyt", LOCATION: "Sijainti", CANCEL: "Peruuta", INBOX: "Saapuneet", DESKTOP_NOTIFICATIONS: "Selaimen ilmoitukset", DESKTOP_NOTIFICATIONS_ERROR: "Työpöydän ilmoituksia ei voitu kytkeä päälle, koska selaimesi estää ne aktiivisesti. Koeta tutkia sen asetuksia tai vaihda selainta.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo ilmoitus`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jos pidät tämän sivun auki, näet vastaavan ilmoituksen kun joku puhuu sinulle.", SEND_BUTTON_TEXT: "Lähetä", ENTRYBOX_TEXT_LIMIT: "Maksimissaan 10000 merkkiä.", ENTRYBOX_PLACEHOLDER: "Sano jotain...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Tämä keskustelu ei ole enää aktiivinen.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Voit lukea, mutta et lähettää viestejä.", MESSAGELIST_LOADING_OLDER: "Ladataan vanhoja viestejä..", MESSAGELIST_SHOW_OLDER: "Näytä vanhat viestit", MESSAGELIST_NEW_MARKER: "Uusi", MESSAGE_SENT_VIA_EMAIL: "Tämä viesti on lähetetty sähköpostin välityksellä", YOU_MARKER: "sinä", UPLOAD_IN_PROGRESS: "Ladataan...", UPLOAD_SEND_FILE: "Lähetä tiedosto", UPLOAD_SHARE_LOCATION: "Jaa sijainti", UPLOAD_ERROR: "Valitettavasti jokin meni vikaan. Tiedostotyyppiä ei ehkä tueta tai se saattaa olla liian suuri.", SHARE_LOCATION_ERROR: "Sijaintia ei pystytty jakamaan: ", LOADING: "Ladataan...", HUB_EMPTY: "Keskusteluhistoriasi näkyy tässä", HUB_SHOW_EARLIER: "Näytä aiemmat keskustelut", INBOX_NO_CHATS_TITLE: "Ei keskusteluja, vielä!", INBOX_NO_CHATS_BODY: "Kun olet käynyt yhden tai useamman keskustelun, ne näkyvät täällä.", ENABLE_TRANSLATION: "Käännä keskustelu kielelle suomi", DISABLE_TRANSLATION: "Näytä alkuperäinen", SEARCH_PLACEHOLDER_TEXT: "Etsi...", SEARCH_SEARCHING: "Etsiminen...", SEARCH_NO_RESULTS: "Tuloksia ei löytynyt", SEARCH_NO_MORE_RESULTS: "Ei enempää tuloksia", CHAT_NOT_FOUND: "Keskustelua ei löytynyt", DELETE_MESSAGE: "Poista viesti", DELETION_EXPLANATION: "Jos poistat tämän viestin, se häviää kaikilta.", EDIT_MESSAGE: "Muokkaa viestiä", SAVE: "Tallenna", EDITED_INDICATOR: "muokattu", REPLY_TO_MESSAGE: "Vastaa", ADD_REACTION: "Lisää reaktio", AUTH_EXPIRED_OVERLAY_TITLE: "Istuntosi on vanhentunut", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Päivitä sivu jatkaaksesi", VOICE_MESSAGE: "Ääniviesti", CONTACT_INFORMATION_HIDDEN: "Piilotetut tiedot", LEAVE_CONVERSATION: "Poistu keskustelusta", MARK_CONVERSATION_AS_UNREAD: "Merkitse lukemattomaksi", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Pa = { code: "fr-FR", name: "French", translation: { YESTERDAY: "Hier", TODAY: "Aujourd'hui", DAYS: "j", HOURS: "h", MINUTES: "m", JUST_NOW: "maintenant", LOCATION: "Emplacement", CANCEL: "Annuler", INBOX: "Boîte de réception", DESKTOP_NOTIFICATIONS: "Notifications du navigateur", DESKTOP_NOTIFICATIONS_ERROR: "Impossible d'activer les notifications du navigateur car votre navigateur les bloque. Essayez de changer ses paramètres ou de changer de navigateur.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notification de démonstration ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si vous maintenez l'onglet ouvert dans votre navigateur vous verrez apparaître une alerte lorsque quelqu'un vous parlera.", SEND_BUTTON_TEXT: "Envoyer", ENTRYBOX_TEXT_LIMIT: "Seuls 10.000 caractères sont autorisés.", ENTRYBOX_PLACEHOLDER: "Ecrivez quelque chose...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Cette conversation n'est plus active.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Vous pouvez lire, mais pas envoyer de messages.", MESSAGELIST_LOADING_OLDER: "Chargement des anciens messages ...", MESSAGELIST_SHOW_OLDER: "Afficher les anciens messages", MESSAGELIST_NEW_MARKER: "Nouveau", MESSAGE_SENT_VIA_EMAIL: "Ce message a été envoyé par e-mail", YOU_MARKER: "vous", UPLOAD_IN_PROGRESS: "Envoi en cours...", UPLOAD_SEND_FILE: "Envoyer un fichier", UPLOAD_SHARE_LOCATION: "Partager mon emplacement", UPLOAD_ERROR: "Un problème est survenu lors de l'envoi: le fichier est peut-être non pris en charge ou trop volumineux.", SHARE_LOCATION_ERROR: "Impossible de partager votre emplacement: ", LOADING: "Chargement en cours...", HUB_EMPTY: "Votre historique de discussion apparaîtra ici", HUB_SHOW_EARLIER: "Afficher les conversations précédentes", INBOX_NO_CHATS_TITLE: "Aucune conversation pour l'instant!", INBOX_NO_CHATS_BODY: "Une fois que vous aurez eu une ou plusieurs conversations, elles apparaîtront ici.", ENABLE_TRANSLATION: "Traduire cette conversation en français", DISABLE_TRANSLATION: "Remontrer la conversation originale", SEARCH_PLACEHOLDER_TEXT: "Rechercher...", SEARCH_SEARCHING: "Recherche...", SEARCH_NO_RESULTS: "Aucun résultat trouvé", SEARCH_NO_MORE_RESULTS: "Il n’y a plus de résultats", CHAT_NOT_FOUND: "Conversation introuvable", DELETE_MESSAGE: "Supprimer le message", DELETION_EXPLANATION: "Si vous supprimez ce message, il disparaîtra pour tout le monde.", EDIT_MESSAGE: "Modifier le message", SAVE: "Enregistrer", EDITED_INDICATOR: "modifié", REPLY_TO_MESSAGE: "Répondre", ADD_REACTION: "Ajouter une réaction", AUTH_EXPIRED_OVERLAY_TITLE: "Votre session de chat a expiré", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualisez la page pour continuer", VOICE_MESSAGE: "Message vocal", CONTACT_INFORMATION_HIDDEN: "Informations masquées", LEAVE_CONVERSATION: "Quitter la conversation", MARK_CONVERSATION_AS_UNREAD: "Marquer comme non lu", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Ua = { code: "he-IL", name: "Hebrew", translation: { YESTERDAY: "אתמול", TODAY: "היום", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "עכשיו", LOCATION: "מיקום", CANCEL: "בטל", INBOX: "דואר נכנס", DESKTOP_NOTIFICATIONS: "התראות דפדפן", DESKTOP_NOTIFICATIONS_ERROR: "לא ניתן להפעיל התראות במרועה דפדפן מכיוון שהדפדפן שלך חוסם אותן באופן פעיל. נסה להסתכל בהגדרות או להשתמש בדפדפן אחר.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} הודעה על הדגמה`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "אם אתה שומר על כרטיסיית הדפדפן שלך פתוחה, תראה את זה צץ כשמישהו ידבר איתך.", SEND_BUTTON_TEXT: "שלח", ENTRYBOX_TEXT_LIMIT: "רק 10.000 תווים", ENTRYBOX_PLACEHOLDER: "תגיד משהו...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "שיחה זו אינה פעילה עוד.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "אתה יכול לקרוא, אך לא לשלוח הודעות.", MESSAGELIST_LOADING_OLDER: "טוען הודעות ישנות...", MESSAGELIST_SHOW_OLDER: "הצג הודעות ישנות", MESSAGELIST_NEW_MARKER: "חדש", MESSAGE_SENT_VIA_EMAIL: "הודעה זאת נשלחה דרך אימייל", YOU_MARKER: "אתה", UPLOAD_IN_PROGRESS: "מעלה ...", UPLOAD_SEND_FILE: "שלח קובץ", UPLOAD_SHARE_LOCATION: "שתף מיקום", UPLOAD_ERROR: "לרוע המזל משהו השתבש בהעלאה. ייתכן שהקובץ אינו נתמך או גדול מדי.", SHARE_LOCATION_ERROR: "לא ניתן לשתף מיקום: ", LOADING: "טוען...", HUB_EMPTY: "היסטוריית הצ'אט שלך תופיע כאן", HUB_SHOW_EARLIER: "הצג צ'אטים קודמים", INBOX_NO_CHATS_TITLE: "אין עדיין צ'אטים!", INBOX_NO_CHATS_BODY: "לאחר שניהלת שיחה אחת או יותר, הם יופיעו כאן.", ENABLE_TRANSLATION: "תרגם שיחה זו לעברית", DISABLE_TRANSLATION: "הצג מקור", SEARCH_PLACEHOLDER_TEXT: "...חפש", SEARCH_SEARCHING: "...מחפש", SEARCH_NO_RESULTS: "לא נמצאו תוצאות", SEARCH_NO_MORE_RESULTS: "אין תוצאות נוספות", CHAT_NOT_FOUND: "הצ'אט לא נמצא", DELETE_MESSAGE: "מחיקת הודעה", DELETION_EXPLANATION: "אם תמחק הודעה זו, היא תיעלם עבור כולם.", EDIT_MESSAGE: "עריכת הודעה", SAVE: "שמור", EDITED_INDICATOR: "ערוך", REPLY_TO_MESSAGE: "השב", ADD_REACTION: "הוספת תגובה", AUTH_EXPIRED_OVERLAY_TITLE: "הפעלת הצ׳אט שלכם פגה", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "רעננו את העמוד כדי להמשיך", VOICE_MESSAGE: "הודעה קולית", CONTACT_INFORMATION_HIDDEN: "מידע מוסתר", LEAVE_CONVERSATION: "צא מהשיחה", MARK_CONVERSATION_AS_UNREAD: "סמן כלא נקרא", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Ha = { code: "hi-IN", name: "Hindi (IN)", translation: { YESTERDAY: "कल", TODAY: "आज", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "अभी", LOCATION: "जगह", CANCEL: "रद्द करें", INBOX: "इनबॉक्स", DESKTOP_NOTIFICATIONS: "ब्राउज़र सूचनाएं", DESKTOP_NOTIFICATIONS_ERROR: "ब्राउज़र सूचनाएं सक्षम नहीं कर सकता क्योंकि आपका ब्राउज़र सक्रिय रूप से उन्हें ब्लॉक करता है। सेटिंग्स में देखने या एक अलग ब्राउज़र का उपयोग करने का प्रयास करें।", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} डेमो अधिसूचना`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "यदि आप अपना ब्राउज़र टैब खुला रखते हैं, तो यह पॉप अप आपको तब दिखाई देगा जब कोई आपसे बात करेगा।", SEND_BUTTON_TEXT: "भेजें", ENTRYBOX_TEXT_LIMIT: "केवल 10,000 वर्णों की अनुमति है।", ENTRYBOX_PLACEHOLDER: "कुछ कहिए...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "यह चैट अब सक्रिय नहीं है।", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "आप पढ़ सकते हैं, लेकिन संदेश नहीं भेज सकते।", MESSAGELIST_LOADING_OLDER: "पुराने संदेश लोड हो रहे हैं ...", MESSAGELIST_SHOW_OLDER: "पुराने संदेश दिखाएं", MESSAGELIST_NEW_MARKER: "नया", MESSAGE_SENT_VIA_EMAIL: "यह संदेश ईमेल के माध्यम से भेजा गया था", YOU_MARKER: "आप", UPLOAD_IN_PROGRESS: "अपलोड हो रहा है...", UPLOAD_SEND_FILE: "फाइल भेजें", UPLOAD_SHARE_LOCATION: "जगह शेयर करें", UPLOAD_ERROR: "दुर्भाग्य से, अपलोड करते समय कुछ गलत हो गया। फ़ाइल असमर्थित या बहुत बड़ी हो सकती है।", SHARE_LOCATION_ERROR: "जगह शेयर नहीं हो पाया: ", LOADING: "लोड हो रहा है...", HUB_EMPTY: "आपका चैट इतिहास यहां दिखाई देगा", HUB_SHOW_EARLIER: "पहले की चैट दिखाओ", INBOX_NO_CHATS_TITLE: "अभी तक कोई चैट नहीं!", INBOX_NO_CHATS_BODY: "एक बार जब आप एक या अधिक चैट कर लेते हैं, तो वे यहां दिखाई देंगे।", ENABLE_TRANSLATION: "इस बातचीत का हिंदी में अनुवाद कीजिए", DISABLE_TRANSLATION: "मूल दिखाएँ", SEARCH_PLACEHOLDER_TEXT: "खोजें...", SEARCH_SEARCHING: "खोज जारी है...", SEARCH_NO_RESULTS: "कोई परिणाम नहीं मिला", SEARCH_NO_MORE_RESULTS: "और कोई परिणाम नहीं", CHAT_NOT_FOUND: "चैट नहीं मिली", DELETE_MESSAGE: "संदेश डिलीट करें", DELETION_EXPLANATION: "यदि आप इस संदेश को हटाते हैं, तो यह सभी के लिए गायब हो जाएगा.", EDIT_MESSAGE: "संदेश में बदलाव करें", SAVE: "सहेजें", EDITED_INDICATOR: "संपादित किया गया", REPLY_TO_MESSAGE: "जवाब दीजिए ।", ADD_REACTION: "प्रतिक्रिया जोड़ें", AUTH_EXPIRED_OVERLAY_TITLE: "आपका चैट सेशन समाप्त हो चुका है", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "आगे बढ़ने के लिए रिफ्रेश करें", VOICE_MESSAGE: "वॉयस मैसेज", CONTACT_INFORMATION_HIDDEN: "छुपी हुई जानकारी", LEAVE_CONVERSATION: "बातचीत को ख़त्म करें", MARK_CONVERSATION_AS_UNREAD: "अपठित के रूप में चिह्नित करें", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, ba = { code: "hr-HR", name: "Croatian", translation: { YESTERDAY: "Jučer", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Obavijesti preglednika", DESKTOP_NOTIFICATIONS_ERROR: "Notifikacije preglednika nisu omogućene jer ih vaš preglednik aktivno blokira. Pokušajte pogledati postavke ili koristiti neki drugi preglednik.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu preglednika ostavite otvorenu, pojavit će se ovaj pop-up kada netko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Reci nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možeš čitati, ali ne i slati poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana e-poštom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podijeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podijeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovdje će se prikazati vaša povijest razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovdje.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na hrvatski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Razgovor nije pronađen", DELETE_MESSAGE: "Obriši poruku", DELETION_EXPLANATION: "Ako izbrišete ovu poruku, nestat će za sve.", EDIT_MESSAGE: "Uredi poruku", SAVE: "Spremi", EDITED_INDICATOR: "uređivao", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodajte reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša sesija razgovora je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvježite stranicu za nastavak", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Skrivene informacije", LEAVE_CONVERSATION: "Napustiti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitano", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Ba = { code: "hu-HU", name: "Hungarian", translation: { YESTERDAY: "Tegnap", TODAY: "Ma", DAYS: "n", HOURS: "ó", MINUTES: "p", JUST_NOW: "éppen most", LOCATION: "Helyszín", CANCEL: "Visszavonás", INBOX: "Postaláda", DESKTOP_NOTIFICATIONS: "Böngésző értesítések", DESKTOP_NOTIFICATIONS_ERROR: "Azért nem tudja bekapcsolni a böngésző értesítések funkciót, mert böngészője aktívan blokkolja azt. Tekintse meg a beállításokat vagy használjon másik böngészőt.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo értesítés`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ha nyitva hagyja böngészőjét, felugró ablak fog megjelenni, ha valaki beszélni szeretne Önnel.", SEND_BUTTON_TEXT: "Küldés", ENTRYBOX_TEXT_LIMIT: "Mindőssze 10.000 karakter megengedett.", ENTRYBOX_PLACEHOLDER: "Mondjon valamit...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ez a beszélgetés már nem aktív.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Elolvashatja az üzeneteket, de nem küldhet újat.", MESSAGELIST_LOADING_OLDER: "Korábbi üzenetek betöltése...", MESSAGELIST_SHOW_OLDER: "Korábbi üzenetek megjelenítése", MESSAGELIST_NEW_MARKER: "Új", MESSAGE_SENT_VIA_EMAIL: "Ez az üzenet e-mailben került elküldésre", YOU_MARKER: "Ön", UPLOAD_IN_PROGRESS: "Feltöltés...", UPLOAD_SEND_FILE: "Fájl küldése", UPLOAD_SHARE_LOCATION: "Helyszín megosztása", UPLOAD_ERROR: "Sajnos hiba történt a feltöltés során. A fájl nem támogatott vagy túl nagy.", SHARE_LOCATION_ERROR: "Helyszín megosztása nem lehetséges: ", LOADING: "Betöltés...", HUB_EMPTY: "A beszélgetések előzményei itt láthatók", HUB_SHOW_EARLIER: "Korábbi beszélgetések megjelenítése", INBOX_NO_CHATS_TITLE: "Még nincs megjeleníthető beszélgetés!", INBOX_NO_CHATS_BODY: "Amint egy vagy több beszélgetéssel rendelkezik, azok itt fognak megjelenni.", ENABLE_TRANSLATION: "A beszélgetés lefordítása erre a nyelvre: magyar", DISABLE_TRANSLATION: "Eredeti megjelenítése", SEARCH_PLACEHOLDER_TEXT: "Keresés...", SEARCH_SEARCHING: "Keresés...", SEARCH_NO_RESULTS: "Nincs találat", SEARCH_NO_MORE_RESULTS: "Nincs több találat", CHAT_NOT_FOUND: "A csevegés nem található", DELETE_MESSAGE: "Üzenet törlése", DELETION_EXPLANATION: "Ha törlöd ezt az üzenetet, az mindenki számára eltűnik.", EDIT_MESSAGE: "Üzenet szerkesztése", SAVE: "Mentés", EDITED_INDICATOR: "szerkesztve", REPLY_TO_MESSAGE: "Válaszadás", ADD_REACTION: "Reagálás erre", AUTH_EXPIRED_OVERLAY_TITLE: "Chat munkamenete lejárt", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Folytatáshoz frissítse az oldalt", VOICE_MESSAGE: "Hangüzenet", CONTACT_INFORMATION_HIDDEN: "Rejtett információ", LEAVE_CONVERSATION: "Kilépés a beszélgetésből", MARK_CONVERSATION_AS_UNREAD: "Megjelölés olvasatlanként", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, ya = { code: "id-ID", name: "Bahasa Indonesia", translation: { YESTERDAY: "Kemarin", TODAY: "Hari ini", DAYS: "h", HOURS: "j", MINUTES: "m", JUST_NOW: "sekarang", LOCATION: "Lokasi", CANCEL: "Batal", INBOX: "Kotak Masuk", DESKTOP_NOTIFICATIONS: "Notifikasi peramban", DESKTOP_NOTIFICATIONS_ERROR: "Tidak dapat mengaktifkan pemberitahuan browser karena browser Anda secara aktif memblokir mereka. Coba cari di pengaturan atau menggunakan browser yang berbeda.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `pemberitahuan demo ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jika Anda membiarkan tab browser tetap terbuka, Anda akan melihat ini muncul ketika seseorang berbicara kepada Anda.", SEND_BUTTON_TEXT: "Kirim", ENTRYBOX_TEXT_LIMIT: "Hanya 10.000 karakter yang diizinkan.", ENTRYBOX_PLACEHOLDER: "Katakan sesuatu...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Percakapan ini tidak lagi aktif.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Anda dapat membaca, tetapi tidak mengirim pesan.", MESSAGELIST_LOADING_OLDER: "Memuat pesan lama...", MESSAGELIST_SHOW_OLDER: "Tampilkan pesan yang lebih lama", MESSAGELIST_NEW_MARKER: "Baru", MESSAGE_SENT_VIA_EMAIL: "Pesan ini dikirim melalui email", YOU_MARKER: "Anda", UPLOAD_IN_PROGRESS: "Mengunggah...", UPLOAD_SEND_FILE: "Kirim mengajukan", UPLOAD_SHARE_LOCATION: "Bagikan lokasi", UPLOAD_ERROR: "Ada yang salah diunggah. File mungkin tidak didukung atau terlalu besar.", SHARE_LOCATION_ERROR: "Tidak dapat membagikan lokasi: ", LOADING: "Memuat...", HUB_EMPTY: "Riwayat obrolan Anda akan muncul di sini", HUB_SHOW_EARLIER: "Tampilkan obrolan sebelumnya", INBOX_NO_CHATS_TITLE: "Belum ada obrolan!", INBOX_NO_CHATS_BODY: "Setelah Anda melakukan satu atau lebih percakapan, mereka akan muncul di sini.", ENABLE_TRANSLATION: "Terjemahkan percakapan ini ke Indonesia", DISABLE_TRANSLATION: "Perlihatkan asli", SEARCH_PLACEHOLDER_TEXT: "Cari...", SEARCH_SEARCHING: "Mencari...", SEARCH_NO_RESULTS: "Tidak ditemukan hasil", SEARCH_NO_MORE_RESULTS: "Tidak ada hasil lainnya", CHAT_NOT_FOUND: "Obrolan tidak ditemukan", DELETE_MESSAGE: "Hapus pesan", DELETION_EXPLANATION: "Jika pesan ini Anda hapus, pesan ini akan tidak terlihat bagi siapa pun.", EDIT_MESSAGE: "Sunting pesan", SAVE: "Mentés", EDITED_INDICATOR: "diedit", REPLY_TO_MESSAGE: "Balas", ADD_REACTION: "Tambah reaksi", AUTH_EXPIRED_OVERLAY_TITLE: "Sesi obrolan Anda sudah lewat batas waktu", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Muat ulang halaman untuk melanjutkan", VOICE_MESSAGE: "Pesan suara", CONTACT_INFORMATION_HIDDEN: "Informasi tersembunyi", LEAVE_CONVERSATION: "Tinggalkan percakapan", MARK_CONVERSATION_AS_UNREAD: "Tandai sebagai Belum dibaca", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, wa = { code: "is-IS", name: "Íslenska", translation: { YESTERDAY: "Í gær", TODAY: "Í dag", DAYS: "dagar", HOURS: "klst.", MINUTES: "mín.", JUST_NOW: "núna", LOCATION: "Staðsetning", CANCEL: "Hætta við", INBOX: "Pósthólf", DESKTOP_NOTIFICATIONS: "Tilkynningar í vafra", DESKTOP_NOTIFICATIONS_ERROR: "Ekki er hægt að birta tilkynningar í vafra vegna þess að vafrinn sem þú notar hindrar það. Reyndu að leita að stillingum eða að nota annan vafra.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} prufutilkynning`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ef flipinn í vafranum er opinn muntu sjá þessa tilkynningu birtast þegar einhver sendir þér skilaboð.", SEND_BUTTON_TEXT: "Senda", ENTRYBOX_TEXT_LIMIT: "Aðeins 10.000 stafir komast fyrir.", ENTRYBOX_PLACEHOLDER: "Segðu eitthvað...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Þessar samræður eru ekki lengar virkar.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Þú getur lesið, en ekki sent skilaboð.", MESSAGELIST_LOADING_OLDER: "Sæki eldri skilaboð...", MESSAGELIST_SHOW_OLDER: "Sýna eldri skilaboð", MESSAGELIST_NEW_MARKER: "Ný", MESSAGE_SENT_VIA_EMAIL: "Þessi skilaboð voru send með tölvupósti", YOU_MARKER: "þú", UPLOAD_IN_PROGRESS: "Hleð upp...", UPLOAD_SEND_FILE: "Senda skrá", UPLOAD_SHARE_LOCATION: "Deila staðsetningu", UPLOAD_ERROR: "Því miður fór eitthvað úrskeiðis við að hlaða upp. Skráin gæti verið af rangri tegund eð of stór.", SHARE_LOCATION_ERROR: "Ekki er hægt að deila staðsetningu: ", LOADING: "Hleð...", HUB_EMPTY: "Fyrri samtöl munu birtast hér", HUB_SHOW_EARLIER: "Sýna fyrri samtöl", INBOX_NO_CHATS_TITLE: "Engin samtöl enn!", INBOX_NO_CHATS_BODY: "Þegar þú hefur átt eitt eða fleiri samtöl, munu þau birtast hér.", ENABLE_TRANSLATION: "Þýða þetta samtal á ensku", DISABLE_TRANSLATION: "Sýna upprunalegt", SEARCH_PLACEHOLDER_TEXT: "Leita...", SEARCH_SEARCHING: "Leita...", SEARCH_NO_RESULTS: "Ekkert fannst", SEARCH_NO_MORE_RESULTS: "Engar fleiri niðurstöður", CHAT_NOT_FOUND: "Samtal fannst ekki", DELETE_MESSAGE: "Eyða skilaboðum", DELETION_EXPLANATION: "Ef þú eyðir þessum skilaboðum munu þau hverfa hjá öllum.", EDIT_MESSAGE: "Breyta skilaboðum", SAVE: "Vista", EDITED_INDICATOR: "breytt", REPLY_TO_MESSAGE: "Svara", REPLY_TO_ARIA_LABEL: (e, t) => `Svara ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Fara úr svari", ADD_REACTION: "Setja inn viðbrögð", AUTH_EXPIRED_OVERLAY_TITLE: "Spjallið hefur runnið út", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Endurnýjaðu síðuna til að halda áfram", VOICE_MESSAGE: "Raddskilaboð", LEAVE_CONVERSATION: "Skilja eftir skilaboð", MARK_CONVERSATION_AS_UNREAD: "Merkja sem ólesið", STATUS_INDICATOR_ONLINE: "Virk", STATUS_INDICATOR_OFFLINE: "Ekki við", CONTACT_INFORMATION_HIDDEN: "faldar upplýsingar" } }, Ya = { code: "it-IT", name: "Italian", translation: { YESTERDAY: "Ieri", TODAY: "Oggi", DAYS: "g", HOURS: "o", MINUTES: "m", JUST_NOW: "adesso", LOCATION: "Posizione", CANCEL: "Annulla", INBOX: "Posta in arrivo", DESKTOP_NOTIFICATIONS: "Notifiche browser", DESKTOP_NOTIFICATIONS_ERROR: "Impossibile abilitare le notifiche browser perché il browser le blocca attivamente. Prova a cercare le impostazioni o utilizzare un browser diverso.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notification`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Se si mantiene aperta la scheda del browser, questo verrà visualizzato quando qualcuno ti parla.", SEND_BUTTON_TEXT: "Invia", ENTRYBOX_TEXT_LIMIT: "Sono consentiti solo 10.000 caratteri.", ENTRYBOX_PLACEHOLDER: "Dì qualcosa...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Questa conversazione non è più attiva.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puoi leggere, ma non inviare messaggi.", MESSAGELIST_LOADING_OLDER: "Caricamento dei messaggi precedenti...", MESSAGELIST_SHOW_OLDER: "Mostra messaggi precedenti", MESSAGELIST_NEW_MARKER: "Nuovo", MESSAGE_SENT_VIA_EMAIL: "Questo messaggio è stato inviato via email", YOU_MARKER: "tu", UPLOAD_IN_PROGRESS: "Caricamento in corso...", UPLOAD_SEND_FILE: "Invia file", UPLOAD_SHARE_LOCATION: "Condividi posizione", UPLOAD_ERROR: "Qualcosa è andato storto durante il caricamento. Il file potrebbe non essere supportato o troppo grande.", SHARE_LOCATION_ERROR: "Impossibile condividere la posizione: ", LOADING: "Caricamento in corso...", HUB_EMPTY: "La cronologia della tua chat verrà mostrata qui", HUB_SHOW_EARLIER: "Mostra chat precedenti", INBOX_NO_CHATS_TITLE: "Non ci sono ancora chat!", INBOX_NO_CHATS_BODY: "Una volta che hai avuto una o più conversazioni, verranno visualizzate qui.", ENABLE_TRANSLATION: "Traduci questa conversazione in italiano", DISABLE_TRANSLATION: "Mostra l'originale", SEARCH_PLACEHOLDER_TEXT: "Cerca...", SEARCH_SEARCHING: "Cercando...", SEARCH_NO_RESULTS: "Nessun risultato trovato", SEARCH_NO_MORE_RESULTS: "Non ci sono più risultati", CHAT_NOT_FOUND: "Chat non trovata", DELETE_MESSAGE: "Elimina messaggio", DELETION_EXPLANATION: "Se elimini il messaggio, questo scomparirà per tutti.", EDIT_MESSAGE: "Modifica messaggio", SAVE: "Salva", EDITED_INDICATOR: "modificato", REPLY_TO_MESSAGE: "Rispondi", ADD_REACTION: "Aggiungi reazione", AUTH_EXPIRED_OVERLAY_TITLE: "La sessione di chat è scaduta", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Aggiorna la pagina per continuare", VOICE_MESSAGE: "Messaggio vocale", CONTACT_INFORMATION_HIDDEN: "Informazioni nascoste", LEAVE_CONVERSATION: "Abbandona la conversazione", MARK_CONVERSATION_AS_UNREAD: "Segna come non letto", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, $a = { code: "ja-JP", name: "Japanese", translation: { YESTERDAY: "昨日", TODAY: "今日", DAYS: "日前", HOURS: "時間前", MINUTES: "分前", JUST_NOW: "たった今", LOCATION: "場所", CANCEL: "キャンセル", INBOX: "受信箱", DESKTOP_NOTIFICATIONS: "ブラウザの通知", DESKTOP_NOTIFICATIONS_ERROR: "ブラウザの通知はブロックされているため、ブラウザの通知を有効にできません。設定を確認するか、別のブラウザを使用してください。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} デモ通知`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "ブラウザのタブを開いたままにしておくと、誰かがあなたに話しかけたときにこのポップアップが表示されます。", SEND_BUTTON_TEXT: "送信", ENTRYBOX_TEXT_LIMIT: "許可されているのは10.000文字までです。", ENTRYBOX_PLACEHOLDER: "メッセージを入力してください", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "この会話はもうアクティブではありません。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "あなたは読むことはできますが、メッセージを送ることはできません。", MESSAGELIST_LOADING_OLDER: "古いメッセージを読み込んでいます...", MESSAGELIST_SHOW_OLDER: "古いメッセージを表示", MESSAGELIST_NEW_MARKER: "新着", MESSAGE_SENT_VIA_EMAIL: "このメッセージはメールで送信されました", YOU_MARKER: "あなたは", UPLOAD_IN_PROGRESS: "アップロード中...", UPLOAD_SEND_FILE: "ファイル送信", UPLOAD_SHARE_LOCATION: "共有場所", UPLOAD_ERROR: "アップロード中に問題が発生しました。ファイルがサポートされていないか、大きすぎる可能性があります。", SHARE_LOCATION_ERROR: "場所を共有できません: ", LOADING: "読み込み中...", HUB_EMPTY: "あなたのチャット履歴がここに表示されます", HUB_SHOW_EARLIER: "以前のチャットを表示", INBOX_NO_CHATS_TITLE: "まだチャットがありません!", INBOX_NO_CHATS_BODY: "会話が1つ以上あると、ここに表示されます", ENABLE_TRANSLATION: "この会話を日本語に翻訳する", DISABLE_TRANSLATION: "オリジナルを表示", SEARCH_PLACEHOLDER_TEXT: "検索...", SEARCH_SEARCHING: "検索中...", SEARCH_NO_RESULTS: "結果が見つかりません", SEARCH_NO_MORE_RESULTS: "これ以上結果はありません", CHAT_NOT_FOUND: "チャットが見つかりませんでした", DELETE_MESSAGE: "メッセージを削除する", DELETION_EXPLANATION: "このメッセージを削除すると、全ての人に表示されなくなります。", EDIT_MESSAGE: "メッセージを編集する", SAVE: "上書き保存", EDITED_INDICATOR: "編集", REPLY_TO_MESSAGE: "返信する", ADD_REACTION: "リアクションを追加", AUTH_EXPIRED_OVERLAY_TITLE: "チャットセッションの有効期限が切れました", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "続けるにはページを更新してください", VOICE_MESSAGE: "ボイスメッセージ", CONTACT_INFORMATION_HIDDEN: "機密情報", LEAVE_CONVERSATION: "会話をやめる", MARK_CONVERSATION_AS_UNREAD: "未読としてマーク", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, ja = { code: "ka-GE", name: "Georgian", translation: { YESTERDAY: "გუშინ", TODAY: "დღეს", DAYS: "დღ", HOURS: "სთ", MINUTES: "წთ", JUST_NOW: "ახლა", LOCATION: "ადგილმდებარეობა", CANCEL: "გაუქმება", INBOX: "მიღებული შეტყობინება", DESKTOP_NOTIFICATIONS: "ბრაუზერის შეტყობინებები", DESKTOP_NOTIFICATIONS_ERROR: "შეუძლებელია ბრაუზერის შეტკობინებების ჩართვა. ეს ბრაუზერი ბლოკავს მათ. სცადე ცვლილება ოპციებიდან ან გამოიყენე სხვა ბრაუზერი.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} შეტყობინებების დემო ვერსია`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "თუ დატოვებ ბრაუზერის ფანჯარას გახსნილს, როცა ვიღაც მოგწერს საუბარი ამოვარდება დესკტოპზე.", SEND_BUTTON_TEXT: "გაგზავნა", ENTRYBOX_TEXT_LIMIT: "დაშვებულია მხოლოდ 10.000 სიმბოლო.", ENTRYBOX_PLACEHOLDER: "დაწერე რაღაც...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "ეს დიალოგი აღარ არის ხელმისაწვდომი.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "შეგიძლია წაიკითხო, მაგრამ ვერ გააგზავნი შეტყობინებას.", MESSAGELIST_LOADING_OLDER: "იტვირთება ძველი შეტყობინებები...", MESSAGELIST_SHOW_OLDER: "ძველი შეტყობინებების ჩვენება", MESSAGELIST_NEW_MARKER: "ახალი", MESSAGE_SENT_VIA_EMAIL: "ეს შეტყობინება გამოგზავნილია იმეილით", YOU_MARKER: "you", UPLOAD_IN_PROGRESS: "იტვირთება...", UPLOAD_SEND_FILE: "ფაილის გაგზავნა", UPLOAD_SHARE_LOCATION: "ადგილმდებარეობის გაზიარება", UPLOAD_ERROR: "პრობლემაა ატვირთვისას. ფაილის შესაძლოა არის არათავსებადი ან ძალიან დიდი.", SHARE_LOCATION_ERROR: "შეუძლებელია ადგილმდებარეობის გაზიარება: ", LOADING: "იტვირთება...", HUB_EMPTY: "საუბრების ისტორია გამოჩნდება აქ", HUB_SHOW_EARLIER: "წინა საუბრების ნახვა", INBOX_NO_CHATS_TITLE: "ჯერ-ჯერობით არ არის საუბრები!", INBOX_NO_CHATS_BODY: "უკვე დასრულებული საუბარები გამოჩნდება აქ", ENABLE_TRANSLATION: "თარგმნეთ ეს საუბარი ინგლისურად", DISABLE_TRANSLATION: "ორიგინალის ჩვენება", SEARCH_PLACEHOLDER_TEXT: "ძიება...", SEARCH_SEARCHING: "მიმდინარეობს ძიება...", SEARCH_NO_RESULTS: "შედეგები ვერ ქართველი", SEARCH_NO_MORE_RESULTS: "სხვა შედეგი ვერ მოიძებნა", CHAT_NOT_FOUND: "ჩატი ვერ მოიძებნა", DELETE_MESSAGE: "შეტყობინების წაშლა ", DELETION_EXPLANATION: "თუ ამ შეტყობინებას წაშლით, ის ყველასთვის გაქრება.", EDIT_MESSAGE: "შეტყობინების რედაქტირება", SAVE: "შენახვა", EDITED_INDICATOR: "რედაქტირებულია", REPLY_TO_MESSAGE: "პასუხის გაცემა", ADD_REACTION: "დაამატეთ რეაქცია", AUTH_EXPIRED_OVERLAY_TITLE: "თქვენი ჩეთის სესიის ვადა ამოიწურა", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "განაახლეთ გვერდი გასაგრძელებლად", VOICE_MESSAGE: "ხმოვანი შეტყობინება", CONTACT_INFORMATION_HIDDEN: "ფარული ინფორმაცია", LEAVE_CONVERSATION: "საუბრის დატოვება", MARK_CONVERSATION_AS_UNREAD: "წაუკითხავად მონიშვნა", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Fa = { code: "ko-KR", name: "Korean (South Korea)", translation: { YESTERDAY: "어제", TODAY: "오늘", DAYS: "일 전", HOURS: "시간 전", MINUTES: "분 전", JUST_NOW: "방금", LOCATION: "위치", CANCEL: "취소", INBOX: "대화 목록", DESKTOP_NOTIFICATIONS: "브라우저 알림", DESKTOP_NOTIFICATIONS_ERROR: "브라우저 알림을 표시할 수 없습니다. 브라우저 설정을 확인하거나 다른 브라우저를 사용해주세요.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 데모 알림`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "브라우저 탭을 열어 둔 상태에서 누군가 대화 할 때 이 팝업이 표시됩니다.", SEND_BUTTON_TEXT: "전송", ENTRYBOX_TEXT_LIMIT: "최대 10,000자까지 입력할 수 있습니다.", ENTRYBOX_PLACEHOLDER: "메세지를 입력하세요...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "채팅이 종료되었습니다.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "읽기만 가능하며 메시지를 보낼 수 없습니다.", MESSAGELIST_LOADING_OLDER: "이전 메시지 로드 중...", MESSAGELIST_SHOW_OLDER: "이전 메시지 표시", MESSAGELIST_NEW_MARKER: "새 메시지", MESSAGE_SENT_VIA_EMAIL: "이 메시지는 이메일을 통해 전송되었습니다.", YOU_MARKER: "나", UPLOAD_IN_PROGRESS: "업로드 중...", UPLOAD_SEND_FILE: "파일 전송", UPLOAD_SHARE_LOCATION: "위치 공유", UPLOAD_ERROR: "업로드가 실패했습니다. 파일이 지원되지 않거나 너무 클 수 있습니다.", SHARE_LOCATION_ERROR: "위치를 공유 할 수 없습니다: ", LOADING: "로드 중...", HUB_EMPTY: "채팅 기록이 여기에 표시됩니다", HUB_SHOW_EARLIER: "이전 채팅보기", INBOX_NO_CHATS_TITLE: "아직 채팅이 없습니다!", INBOX_NO_CHATS_BODY: "대화가 하나 이상 있으면 여기에 표시됩니다.", ENABLE_TRANSLATION: "이 대화를 한국어로 번역", DISABLE_TRANSLATION: "원본 표시", SEARCH_PLACEHOLDER_TEXT: "검색...", SEARCH_SEARCHING: "검색 중...", SEARCH_NO_RESULTS: "검색 결과 없음", SEARCH_NO_MORE_RESULTS: "추가 검색 결과 없음", CHAT_NOT_FOUND: "대화를 찾지 못했습니다", DELETE_MESSAGE: "메시지 삭제", DELETION_EXPLANATION: "이 메시지를 삭제하면 모든 사람이 볼 수 없게 됩니다.", EDIT_MESSAGE: "메시지 편집하기", SAVE: "저장", EDITED_INDICATOR: "편집", REPLY_TO_MESSAGE: "회신", ADD_REACTION: "반응 추가", AUTH_EXPIRED_OVERLAY_TITLE: "채팅 세션이 만료되었습니다", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "계속하려면 페이지를 새로고침하세요", VOICE_MESSAGE: "음성 메시지", CONTACT_INFORMATION_HIDDEN: "숨겨진 정보", LEAVE_CONVERSATION: "대화 떠나기", MARK_CONVERSATION_AS_UNREAD: "읽지 않은 상태로 표시", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Va = { code: "nb-NO", name: "Norwegian (Bokmål)", translation: { YESTERDAY: "I går", TODAY: "I dag", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "Nå", LOCATION: "Plassering", CANCEL: "Avbryt", INBOX: "Innboks", DESKTOP_NOTIFICATIONS: "Nettleservarsler", DESKTOP_NOTIFICATIONS_ERROR: "Kan ikke aktivere Nettleservarsler fordi nettleseren din aktivt blokkerer dem. Prøv å se i innstillingene eller bruke en annen nettleser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo varslinger`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Hvis du holder nettleservinduet åpent, vil du se dette varsel når noen snakker til deg.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Kun 10.000 tegn er tillatt.", ENTRYBOX_PLACEHOLDER: "Si noe...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Denne samtale er ikke lengre aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan lese, men ikke sende meldinger.", MESSAGELIST_LOADING_OLDER: "Laster eldre meldinger...", MESSAGELIST_SHOW_OLDER: "Vis eldre meldinger", MESSAGELIST_NEW_MARKER: "Ny", MESSAGE_SENT_VIA_EMAIL: "Denne meldingen er sendt via e-post", YOU_MARKER: "deg", UPLOAD_IN_PROGRESS: "Laster opp...", UPLOAD_SEND_FILE: "Send fil", UPLOAD_SHARE_LOCATION: "Del din plassering", UPLOAD_ERROR: "Noe gikk galt i uplastingen. Det kan være filen ikke støttes eller for stor.", SHARE_LOCATION_ERROR: "Kan ikke dele plasseringen: ", LOADING: "Laster...", HUB_EMPTY: "Din chats historikk vil vises her", HUB_SHOW_EARLIER: "Vis tidligere chats", INBOX_NO_CHATS_TITLE: "Ingen chats enda!", INBOX_NO_CHATS_BODY: "Så snart du får en eller flere samtaler, vil de vises her.", ENABLE_TRANSLATION: "Oversett denne samtalen til norsk", DISABLE_TRANSLATION: "Vis original", SEARCH_PLACEHOLDER_TEXT: "Søk...", SEARCH_SEARCHING: "Søker...", SEARCH_NO_RESULTS: "Finner ingen resultater", SEARCH_NO_MORE_RESULTS: "Ingen flere resultater", CHAT_NOT_FOUND: "Chat ikke funnet", DELETE_MESSAGE: "Slett melding", DELETION_EXPLANATION: "Hvis du sletter denne meldingen, forsvinner den for alle.", EDIT_MESSAGE: "Rediger melding", SAVE: "Lagre", EDITED_INDICATOR: "redigert", REPLY_TO_MESSAGE: "Svar", ADD_REACTION: "Legg til reaksjon", AUTH_EXPIRED_OVERLAY_TITLE: "Chatøkten er utløpt", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Oppdater siden for å fortsette", VOICE_MESSAGE: "Lydmelding", CONTACT_INFORMATION_HIDDEN: "Skjult informasjon", LEAVE_CONVERSATION: "Forlat samtalen", MARK_CONVERSATION_AS_UNREAD: "Merk som ulest", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, xa = { code: "nl-NL", name: "Dutch", translation: { YESTERDAY: "Gisteren", TODAY: "Vandaag", DAYS: "d", HOURS: "u", MINUTES: "m", JUST_NOW: "zojuist", LOCATION: "Locatie", CANCEL: "Annuleren", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browsermeldingen", DESKTOP_NOTIFICATIONS_ERROR: "Browsermeldingen kunnen niet geactiveerd worden omdat de browser het blokkeert. Check de instellingen van je browser of probeer een andere browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notificatie`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Als je je browser open houdt, zie je deze popup als iemand tegen je praat.", SEND_BUTTON_TEXT: "Verzenden", ENTRYBOX_TEXT_LIMIT: "Maximaal 10.000 tekens toegestaan.", ENTRYBOX_PLACEHOLDER: "Typ een bericht...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Dit gesprek is niet actief meer.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Je kunt geen berichten sturen.", MESSAGELIST_LOADING_OLDER: "Eerdere berichten laden...", MESSAGELIST_SHOW_OLDER: "Laad eerdere berichten", MESSAGELIST_NEW_MARKER: "Nieuw", MESSAGE_SENT_VIA_EMAIL: "Dit bericht is verstuurd via e-mail", YOU_MARKER: "jij", UPLOAD_IN_PROGRESS: "Uploaden...", UPLOAD_SEND_FILE: "Verzend bestand", UPLOAD_SHARE_LOCATION: "Deel locatie", UPLOAD_ERROR: "Er ging iets mis. Het bestand wordt niet ondersteund of is te groot.", SHARE_LOCATION_ERROR: "Locatie delen mislukt: ", LOADING: "Bezig met laden...", HUB_EMPTY: "Berichtengeschiedenis wordt hier weergegeven", HUB_SHOW_EARLIER: "Laat eerdere berichten zien", INBOX_NO_CHATS_TITLE: "Nog geen chats!", INBOX_NO_CHATS_BODY: "Zodra je een of meerdere conversaties hebt gehad, worden deze hier weergegeven.", ENABLE_TRANSLATION: "Vertaal dit gesprek naar het Nederlands", DISABLE_TRANSLATION: "Toon oorspronkelijk gesprek", SEARCH_PLACEHOLDER_TEXT: "Zoek...", SEARCH_SEARCHING: "Zoeken...", SEARCH_NO_RESULTS: "Geen resultaten gevonden", SEARCH_NO_MORE_RESULTS: "Niet meer resultaten", CHAT_NOT_FOUND: "Chat niet gevonden", DELETE_MESSAGE: "Bericht verwijderen", DELETION_EXPLANATION: "Als je dit bericht verwijdert, zal het voor iedereen verdwijnen.", EDIT_MESSAGE: "Bericht bewerken", SAVE: "Opslaan", EDITED_INDICATOR: "bewerkt", REPLY_TO_MESSAGE: "Beantwoorden", ADD_REACTION: "Reactie toevoegen", AUTH_EXPIRED_OVERLAY_TITLE: "Je chatsessie is verlopen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Ververs de pagina om door te gaan", VOICE_MESSAGE: "Spraakbericht", CONTACT_INFORMATION_HIDDEN: "verborgen informatie", LEAVE_CONVERSATION: "Gesprek verlaten", MARK_CONVERSATION_AS_UNREAD: "Markeren als ongelezen", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Xa = { code: "pl-PL", name: "Polish", translation: { YESTERDAY: "Wczoraj", TODAY: "Dzisiaj", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "teraz", LOCATION: "Lokalizacja", CANCEL: "Anuluj", INBOX: "Skrzynka odbiorcza", DESKTOP_NOTIFICATIONS: "Powiadomienia", DESKTOP_NOTIFICATIONS_ERROR: "Nie można aktywować powiadomień, ponieważ twoja przeglądarka je blokuje. Proszę zmienić ustawienie lub spróbować innej przeglądarki.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} przykładowe powiadomienie`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jeśli zostawisz tę kartę otwartą, zobaczysz takie powiadomienie, gdy ktoś napisze do Ciebie.", SEND_BUTTON_TEXT: "Wyślij", ENTRYBOX_TEXT_LIMIT: "Nie można wysyłać więcej niż 10000 znaków.", ENTRYBOX_PLACEHOLDER: "Napisz coś...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ten czat nie jest aktywny.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Możesz czytać wiadomości, ale nie możesz ich wysyłać.", MESSAGELIST_LOADING_OLDER: "Wczytuję starsze wiadomości...", MESSAGELIST_SHOW_OLDER: "Zobacz starsze wiadomości", MESSAGELIST_NEW_MARKER: "Nowe", MESSAGE_SENT_VIA_EMAIL: "Ta wiadomość została wysłana przez email.", YOU_MARKER: "ty", UPLOAD_IN_PROGRESS: "Przesyłanie...", UPLOAD_SEND_FILE: "Prześlij plik", UPLOAD_SHARE_LOCATION: "Udostępnij lokalizację", UPLOAD_ERROR: "Coś poszło nie tak. Plik może być zbyt duży lub jest nieobsługiwany.", SHARE_LOCATION_ERROR: "Nie da się udostępnić lokalizacji: ", LOADING: "Ładowanie...", HUB_EMPTY: "Twoje czaty pojawią się tutaj", HUB_SHOW_EARLIER: "Zobacz starsze czaty", INBOX_NO_CHATS_TITLE: "Brak czatów!", INBOX_NO_CHATS_BODY: "Rozpoczęte konwersacje pojawią się tutaj.", ENABLE_TRANSLATION: "Przetłumacz tę konwersację na język polski", DISABLE_TRANSLATION: "Pokaż oryginał", SEARCH_PLACEHOLDER_TEXT: "Wyszukaj...", SEARCH_SEARCHING: "Wyszukiwanie...", SEARCH_NO_RESULTS: "Nie znaleziono wyników", SEARCH_NO_MORE_RESULTS: "Nie ma innych wyników", CHAT_NOT_FOUND: "Nie znaleziono konwersacji", DELETE_MESSAGE: "Usuń wiadomość", DELETION_EXPLANATION: "Jeśli usuniesz tę wiadomość, przestanie być widoczna dla wszystkich.", EDIT_MESSAGE: "Edytuj wiadomość", SAVE: "Zapisz", EDITED_INDICATOR: "edytowano", REPLY_TO_MESSAGE: "Odpowiedz", ADD_REACTION: "Dodaj reakcję", AUTH_EXPIRED_OVERLAY_TITLE: "Twoja sesja wygasła", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Odśwież stronę, aby kontynuować", VOICE_MESSAGE: "Wiadomość głosowa", CONTACT_INFORMATION_HIDDEN: "Ukryte informacje", LEAVE_CONVERSATION: "Opuść konwersację", MARK_CONVERSATION_AS_UNREAD: "Oznacz jako nieprzeczytane", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Ga = { code: "pt-BR", name: "Portuguese (Brazil)", translation: { YESTERDAY: "Ontem", TODAY: "Hoje", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "agora mesmo", LOCATION: "Localização", CANCEL: "Cancelar", INBOX: "Caixa de entrada", DESKTOP_NOTIFICATIONS: "Notificações do navegador", DESKTOP_NOTIFICATIONS_ERROR: "Não é possível ativar as notificações da navegador porque seu navegador as bloqueia. Tente procurar nas configurações ou usar um navegador diferente.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} notificação de demonstração`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Se você mantiver a guia do navegador aberta, verá essa mensagem quando alguém falar com você.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Apenas 10.000 caracteres são permitidos.", ENTRYBOX_PLACEHOLDER: "Diga algo...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Esta conversa não está mais ativa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Você pode ler, mas não enviar mensagens.", MESSAGELIST_LOADING_OLDER: "Carregando mensagens antigas...", MESSAGELIST_SHOW_OLDER: "Mostrar mensagens mais antigas", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Esta mensagem foi enviada via email.", YOU_MARKER: "Você", UPLOAD_IN_PROGRESS: "Carregando...", UPLOAD_SEND_FILE: "Enviar arquivo", UPLOAD_SHARE_LOCATION: "Compartilhar localização", UPLOAD_ERROR: "Algo deu errado ao fazer o upload. O arquivo pode não ter suporte ou ser muito grande.", SHARE_LOCATION_ERROR: "Não é possível compartilhar o local: ", LOADING: "Carregando...", HUB_EMPTY: "Seu histórico de conversas será exibido aqui", HUB_SHOW_EARLIER: "Mostrar conversas anteriores", INBOX_NO_CHATS_TITLE: "Ainda não há chats!", INBOX_NO_CHATS_BODY: "Depois de ter uma ou mais conversas, elas serão exibidas aqui.", ENABLE_TRANSLATION: "Traduzir esta conversa para português", DISABLE_TRANSLATION: "Ver a conversa não traduzida", SEARCH_PLACEHOLDER_TEXT: "Busca...", SEARCH_SEARCHING: "Consultando...", SEARCH_NO_RESULTS: "Resultados nao encontrados", SEARCH_NO_MORE_RESULTS: "Não há mais resultados", CHAT_NOT_FOUND: "Conversa não encontrada", DELETE_MESSAGE: "Excluir mensagem", DELETION_EXPLANATION: "Se você excluir esta mensagem, ela desaparecerá para todos.", EDIT_MESSAGE: "Editar mensagem", SAVE: "Salvar", EDITED_INDICATOR: "editada", REPLY_TO_MESSAGE: "Responder", ADD_REACTION: "Adicionar reação", AUTH_EXPIRED_OVERLAY_TITLE: "Sua sessão de chat expirou", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Atualize a página para continuar", VOICE_MESSAGE: "Mensagem de voz", LEAVE_CONVERSATION: "Sair da conversa", MARK_CONVERSATION_AS_UNREAD: "Marcar como não lida", CONTACT_INFORMATION_HIDDEN: "Informação oculta", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, za = { code: "ro-RO", name: "Romanian (Romania)", translation: { YESTERDAY: "Ieri", TODAY: "Astăzi", DAYS: "z", HOURS: "o", MINUTES: "m", JUST_NOW: "chiar acum", LOCATION: "Locație", CANCEL: "Anulare", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Notificări browser", DESKTOP_NOTIFICATIONS_ERROR: "Nu se pot activa notificări browser deoarece browserul dvs. le blochează în mod activ. Încercați să căutați în setări sau utilizând un alt browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notificare de debit ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Dacă țineți fișa browserului deschis, veți vedea acest pop-up atunci când cineva vorbește cu dvs.", SEND_BUTTON_TEXT: "Trimiteți", ENTRYBOX_TEXT_LIMIT: "Sunt permise numai 10.000 de caractere.", ENTRYBOX_PLACEHOLDER: "Spune ceva...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Această conversație nu mai este activă.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puteți citi, dar nu puteți trimite mesaje.", MESSAGELIST_LOADING_OLDER: "Încărcarea mesajelor mai vechi...", MESSAGELIST_SHOW_OLDER: "Afișați mesaje mai vechi", MESSAGELIST_NEW_MARKER: "Nou", MESSAGE_SENT_VIA_EMAIL: "Acest mesaj a fost trimis prin e-mail", YOU_MARKER: "voi", UPLOAD_IN_PROGRESS: "Încărcarea...", UPLOAD_SEND_FILE: "Trimiteți fișierul", UPLOAD_SHARE_LOCATION: "Distribuiți locația", UPLOAD_ERROR: "Sa încărcat ceva în mod greșit. Fișierul ar putea fi neacceptat sau prea mare.", SHARE_LOCATION_ERROR: "Nu se poate partaja locația: ", LOADING: "Încărcare...", HUB_EMPTY: "Istoricul chat-ului dvs. va apărea aici", HUB_SHOW_EARLIER: "Afișați discuțiile anterioare", INBOX_NO_CHATS_TITLE: "Încă nu vorbești!", INBOX_NO_CHATS_BODY: "După ce ați avut una sau mai multe conversații, acestea vor apărea aici.", ENABLE_TRANSLATION: "Traduceți această conversație în română", DISABLE_TRANSLATION: "Arată originalul", SEARCH_PLACEHOLDER_TEXT: "Căutare...", SEARCH_SEARCHING: "Se caută...", SEARCH_NO_RESULTS: "Nu s-au găsit rezultate", SEARCH_NO_MORE_RESULTS: "Nu mai există rezultate", CHAT_NOT_FOUND: "Conversația nu a fost găsită", DELETE_MESSAGE: "Șterge mesajul", DELETION_EXPLANATION: "Dacă ștergi acest mesaj, acesta va dispărea pentru toată lumea.", EDIT_MESSAGE: "Redactează mesajul", SAVE: "Salvare", EDITED_INDICATOR: "editat", REPLY_TO_MESSAGE: "Răspundeți", ADD_REACTION: "Adaugă o reacție", AUTH_EXPIRED_OVERLAY_TITLE: "Sesiunea dumneavoastră de chat a expirat", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Reîmprospătați pagina pentru a continua", VOICE_MESSAGE: "Mesaj vocal", CONTACT_INFORMATION_HIDDEN: "Informații ascunse", LEAVE_CONVERSATION: "Părăsește conversația", MARK_CONVERSATION_AS_UNREAD: "Marcheaza ca necitit", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Ka = { code: "ru-RU", name: "Russian", translation: { YESTERDAY: "Вчера", TODAY: "Сегодня", DAYS: "д", HOURS: "ч", MINUTES: "м", JUST_NOW: "только что", LOCATION: "Местоположение", CANCEL: "Отмена", INBOX: "Входящие", DESKTOP_NOTIFICATIONS: "Оповещения", DESKTOP_NOTIFICATIONS_ERROR: "Невозможно включить оповещения, потому что ваш браузер активно блокирует их. Проверьте ваши настройки или попробуйте другой браузер.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} демо-оповещение`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Если вкладка вашего браузера открыта, вы увидите всплывающее окошко оповещения когда кто-то отправит вам сообщение.", SEND_BUTTON_TEXT: "Отправить", ENTRYBOX_TEXT_LIMIT: "Разрешено использовать только 10 тысяч символов.", ENTRYBOX_PLACEHOLDER: "Напишите что-нибудь...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Этот разговор больше неактивен.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Вы можете читать, но не отправлять сообщения.", MESSAGELIST_LOADING_OLDER: "Загрузка старых сообщения...", MESSAGELIST_SHOW_OLDER: "Показать старые сообщения", MESSAGELIST_NEW_MARKER: "Новые", MESSAGE_SENT_VIA_EMAIL: "Это сообщение было отправлено по электронной почте", YOU_MARKER: "вы", UPLOAD_IN_PROGRESS: "Загрузка...", UPLOAD_SEND_FILE: "Отправить файл", UPLOAD_SHARE_LOCATION: "Поделиться местоположением", UPLOAD_ERROR: "Что-то пошло не так: такой файл не поддерживается или он слишком большой.", SHARE_LOCATION_ERROR: "Не удается поделиться местоположением: ", LOADING: "Загрузка...", HUB_EMPTY: "Здесь появится ваша история чата", HUB_SHOW_EARLIER: "Показать предыдущие чаты", INBOX_NO_CHATS_TITLE: "Пока нет чатов!", INBOX_NO_CHATS_BODY: "Как только у вас будет один или несколько разговоров, они появятся здесь.", ENABLE_TRANSLATION: "Переведите этот разговор на русский", DISABLE_TRANSLATION: "Show source", SEARCH_PLACEHOLDER_TEXT: "поиск...", SEARCH_SEARCHING: "Поиск...", SEARCH_NO_RESULTS: "Результаты не найдены", SEARCH_NO_MORE_RESULTS: "Больше результатов нет", CHAT_NOT_FOUND: "Чат не найден", DELETE_MESSAGE: "Удалить сообщение", DELETION_EXPLANATION: "Если вы удалите это сообщение, оно исчезнет для всех.", EDIT_MESSAGE: "Изменить сообщение", SAVE: "сохранить", EDITED_INDICATOR: "изменено", REPLY_TO_MESSAGE: "Ответить", ADD_REACTION: "Добавить реакцию", AUTH_EXPIRED_OVERLAY_TITLE: "Срок действия вашего сеанса чата истек", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Обновите страницу, чтобы продолжить", VOICE_MESSAGE: "Голосовое сообщение", CONTACT_INFORMATION_HIDDEN: "Информация скрыта", LEAVE_CONVERSATION: "Выйти из беседы", MARK_CONVERSATION_AS_UNREAD: "Отметить как непрочитанное", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Wa = { code: "sq-AL", name: "Albanian", translation: { YESTERDAY: "Dje", TODAY: "Sot", DAYS: "d", HOURS: "o", MINUTES: "m", JUST_NOW: "Tani", LOCATION: "Pozicion", CANCEL: "Anulo", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Njoftimet e shfletuesit", DESKTOP_NOTIFICATIONS_ERROR: "Nuk mund të aktivizohen njoftimet në shfletues sepse shfletuesi juaj i bllokon ato në mënyrë aktive. Provoni të shikoni cilësimet ose përdorni një shfletues të ndryshëm.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} njoftime në desktop`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Lënia e skedës së shfletuesit tuaj të hapur do të pop-up kur dikush flet me ju.", SEND_BUTTON_TEXT: "Dërgo", ENTRYBOX_TEXT_LIMIT: "Lejohen vetëm 10,000 karaktere", ENTRYBOX_PLACEHOLDER: "Thuaj diçka...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Kjo bisedë nuk është më aktive.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Mund të lexoni por jo të dërgoni mesazhe.", MESSAGELIST_LOADING_OLDER: "Duke ngarkuar mesazhe më të vjetra...", MESSAGELIST_SHOW_OLDER: "Trego mesazhe më të vjetra", MESSAGELIST_NEW_MARKER: "E ri", MESSAGE_SENT_VIA_EMAIL: "Ky mesazh u dërgua si email", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Ngarkim...", UPLOAD_SEND_FILE: "Dërgo datotekën", UPLOAD_SHARE_LOCATION: "Ndani lokacionin", UPLOAD_ERROR: "Na vjen keq, diçka nuk shkoi si duhet. Dosja mund të mos ket mbështetje ose mund të jetë shumë e madhe.", SHARE_LOCATION_ERROR: "Nuk mund të ndahet lokacioni: ", LOADING: "Ngarkim...", HUB_EMPTY: "Këtu do të paraqitet/ shfaqet historia e bisedës tuaj", HUB_SHOW_EARLIER: "Shfaqi bisedat e mëparshme", INBOX_NO_CHATS_TITLE: "Nuk ka biseda!", INBOX_NO_CHATS_BODY: "Pasi të keni një ose më shumë biseda, ato do të paraqiten/shfaqen këtu.", ENABLE_TRANSLATION: "Përkthejeni këtë bisedë në shqiptare", DISABLE_TRANSLATION: "Shikoni origjinalin", SEARCH_PLACEHOLDER_TEXT: "Kërko...", SEARCH_SEARCHING: "Kërko...", SEARCH_NO_RESULTS: "Nuk ka rezultate", SEARCH_NO_MORE_RESULTS: "Nuk ka më rezultate", CHAT_NOT_FOUND: "Biseda nuk u gjet", DELETE_MESSAGE: "Fshi mesazhin", DELETION_EXPLANATION: "Nëse e fshini këtë mesazh, ai do të zhduket për të gjithë.", EDIT_MESSAGE: "Redakto mesazhin", SAVE: "Ruaj", EDITED_INDICATOR: "redaktuar", REPLY_TO_MESSAGE: "Përgjigj", ADD_REACTION: "Shtoni reagimin", AUTH_EXPIRED_OVERLAY_TITLE: "Sesioni juaj i bisedës ka skaduar", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Rifresko faqen për të vazhduar", VOICE_MESSAGE: "Mesazh zanor", CONTACT_INFORMATION_HIDDEN: "informacione të fshehura", LEAVE_CONVERSATION: "Largohu nga bashkëbisedimi", MARK_CONVERSATION_AS_UNREAD: "Shëno si të palexuar", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, qa = { code: "sr-SP", name: "Serbian", translation: { YESTERDAY: "Juče", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Browser Notifikacija", DESKTOP_NOTIFICATIONS_ERROR: "Browser notifikacije nisu omogućene jer ih vaš pregledač aktivno blokira. Pokušajte pogledati postavke ili koristiti neki drugi pregledač.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu pregledača ostavite otvorenu, pojaviće se ovaj pop-up kada neko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Kaži nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možete da čitate, ali ne i da šaljete poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana imejlom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovde će biti prikazana istorija razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovde.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na srpski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Ćaskanje nije pronađeno", DELETE_MESSAGE: "Izbriši poruku", DELETION_EXPLANATION: "Ako obrišete ovu poruku, ona neće biti vidljiva ni za koga.", EDIT_MESSAGE: "Ispravi poruku", SAVE: "Sačuvaj", EDITED_INDICATOR: "ispravljeno", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodaj reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša sesija ćaskanja je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvežite stranicu da biste nastavili", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Sakrivene informacije", LEAVE_CONVERSATION: "Napusti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitanu", REPLY_TO_ARIA_LABEL: (e, t) => `Odgovarate korisniku ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Izađi iz moda pisanja odgovora", STATUS_INDICATOR_ONLINE: "Aktivan", STATUS_INDICATOR_OFFLINE: "Neaktivan" } }, Ja = { code: "sv-SE", name: "Swedish (Sweden)", translation: { YESTERDAY: "Igår", TODAY: "Idag", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "just nu", LOCATION: "Plats", CANCEL: "Avbryt", INBOX: "Inkorg", DESKTOP_NOTIFICATIONS: "Webbläsarnotiser", DESKTOP_NOTIFICATIONS_ERROR: "Kan inte aktivera webbläsarnotiser eftersom din webbläsare aktivt blockerar dem. Se över inställningarna eller använd en annan webbläsare.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demonotis`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Om du har fliken i webbläsaren öppen så kommer den här notisen visas när någon pratar med dig.", SEND_BUTTON_TEXT: "Skicka", ENTRYBOX_TEXT_LIMIT: "Max 10 000 tecken är tillåtet.", ENTRYBOX_PLACEHOLDER: "Skriv ett meddelande...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Den här konversationen är inte längre aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan läsa men inte skicka meddelanden.", MESSAGELIST_LOADING_OLDER: "Läser in tidigare meddelanden...", MESSAGELIST_SHOW_OLDER: "Visa tidigare meddelanden", MESSAGELIST_NEW_MARKER: "Nytt", MESSAGE_SENT_VIA_EMAIL: "Detta meddelande skickades via e-post", YOU_MARKER: "du", UPLOAD_IN_PROGRESS: "Laddar upp...", UPLOAD_SEND_FILE: "Skicka fil", UPLOAD_SHARE_LOCATION: "Dela plats", UPLOAD_ERROR: "Något gick fel vid uppladdningen. Filen kan vara av en typ som inte stöds eller är för stor.", SHARE_LOCATION_ERROR: "Kan inte dela plats: ", LOADING: "Laddar...", HUB_EMPTY: "Din chatthistorik kommer att visas här", HUB_SHOW_EARLIER: "Visa tidigare chattar", INBOX_NO_CHATS_TITLE: "Inga chattar ännu!", INBOX_NO_CHATS_BODY: "När du har haft en eller flera konversationer kommer de att visas här.", ENABLE_TRANSLATION: "Översätt den här konversationen till svenska", DISABLE_TRANSLATION: "Visa original", SEARCH_PLACEHOLDER_TEXT: "Sök...", SEARCH_SEARCHING: "Söker...", SEARCH_NO_RESULTS: "Inga resultat hittades", SEARCH_NO_MORE_RESULTS: "Inga fler resultat", CHAT_NOT_FOUND: "Chatten hittades inte", DELETE_MESSAGE: "Radera meddelandet", DELETION_EXPLANATION: "Om du raderar det här meddelandet försvinner det för alla.", EDIT_MESSAGE: "Redigera meddelandet", SAVE: "Spara", EDITED_INDICATOR: "redigerad", REPLY_TO_MESSAGE: "Svara", ADD_REACTION: "Lägg till reaktion", AUTH_EXPIRED_OVERLAY_TITLE: "Din chatsession har gått ut", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Uppdatera sidan för att fortsätta", VOICE_MESSAGE: "Röstmeddelande", CONTACT_INFORMATION_HIDDEN: "Dold information", LEAVE_CONVERSATION: "Lämna konversationen", MARK_CONVERSATION_AS_UNREAD: "Markera som oläst", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Za = { code: "tr-TR", name: "Turkish", translation: { YESTERDAY: "Dün", TODAY: "Bugün", DAYS: "g", HOURS: "s", MINUTES: "d", JUST_NOW: "az önce", LOCATION: "Konum", CANCEL: "İptal", INBOX: "Gelen Kutusu", SEND_BUTTON_TEXT: "Gönder", ENTRYBOX_TEXT_LIMIT: "En fazla 10.000 karaktere izin veriliyor.", ENTRYBOX_PLACEHOLDER: "Bir şeyler söyle...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Bu konuşma artık aktif değil.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Mesajları okuyabilirsiniz ancak mesaj gönderemezsiniz.", MESSAGELIST_LOADING_OLDER: "Eski mesajlar yükleniyor...", MESSAGELIST_SHOW_OLDER: "Eski mesajları göster", MESSAGELIST_NEW_MARKER: "Yeni", DESKTOP_NOTIFICATIONS: "Tarayıcı bildirimleri", DESKTOP_NOTIFICATIONS_ERROR: "Tarayıcınız aktif olarak engellediğinden tarayıcı bildirimlerini etkinleştiremiyoruz. Ayarları kontrol etmeyi veya farklı bir tarayıcı kullanmayı deneyebilirsiniz.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} test bildirimi`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Eğer tarayıcınızın penceresini açık tutarsanız biri mesaj yazdığında bu bildirimi göreceksiniz.", MESSAGE_SENT_VIA_EMAIL: "Bu mesaj e-posta ile gönderilmiştir.", YOU_MARKER: "siz", UPLOAD_IN_PROGRESS: "Yükleniyor...", UPLOAD_SEND_FILE: "Dosya gönder", UPLOAD_SHARE_LOCATION: "Konum paylaş", UPLOAD_ERROR: "Yükleme sırasında bir şeyler yanlış gitti. Dosya desteklenmiyor veya izin verilenden büyük olabilir.", SHARE_LOCATION_ERROR: "Konum paylaşılamadı: ", LOADING: "Yükleniyor...", HUB_EMPTY: "Konuşma geçmişiniz burada görünecek", HUB_SHOW_EARLIER: "Önceki konuşmaları göster", INBOX_NO_CHATS_TITLE: "Henüz konuşma yok!", INBOX_NO_CHATS_BODY: "Bir veya daha fazla konuşma başlattığınız konuşmalar burada belirecek.", ENABLE_TRANSLATION: "Bu konuşmayı Türkçe'ye çevir", DISABLE_TRANSLATION: "Orijinali göster", SEARCH_PLACEHOLDER_TEXT: "Ara...", SEARCH_SEARCHING: "Arıyor...", SEARCH_NO_RESULTS: "Sonuç bulunamadı", SEARCH_NO_MORE_RESULTS: "Başka sonuç bulunamadı.", CHAT_NOT_FOUND: "Sohbet bulunamadı", DELETE_MESSAGE: "Mesajı sil", DELETION_EXPLANATION: "Bu mesajı silerseniz herkes için görünmez olacaktır.", EDIT_MESSAGE: "Mesajı düzenle", SAVE: "Kaydet", EDITED_INDICATOR: "düzenlenmiş", REPLY_TO_MESSAGE: "Yanıtla", ADD_REACTION: "Tepki ekle", AUTH_EXPIRED_OVERLAY_TITLE: "Sohbet oturumunuz sona erdi", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Devam etmek için sayfayı yenileyin", VOICE_MESSAGE: "Sesli mesaj", CONTACT_INFORMATION_HIDDEN: "Gizli bilgi", LEAVE_CONVERSATION: "Konuşmadan ayrıl", MARK_CONVERSATION_AS_UNREAD: "Okunmamış olarak işaretle", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, Qa = { code: "uk-UA", name: "Ukrainian (Ukraine)", translation: { YESTERDAY: "Вчора", TODAY: "Сьогодні", DAYS: "d", HOURS: "h", MINUTES: "м", JUST_NOW: "просто зараз", LOCATION: "Місцезнаходження", CANCEL: "Скасувати", INBOX: "Вхідні", DESKTOP_NOTIFICATIONS: "Сповіщення в браузері", DESKTOP_NOTIFICATIONS_ERROR: "Неможливо ввімкнути сповіщення в браузері, оскільки ваш веб-переглядач активно їх блокує. Спробуйте переглянути налаштування або використовувати інший браузер.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Демо-повідомлення про ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Якщо ви відкриєте вкладку веб-переглядача відкритою, ви побачите це спливаюче вікно, коли хтось спілкується з вами.", SEND_BUTTON_TEXT: "Надіслати", ENTRYBOX_TEXT_LIMIT: "Дозволено лише 10 000 символів.", ENTRYBOX_PLACEHOLDER: "Скажи щось...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ця розмова більше не активна.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Ви можете читати, але не надсилати повідомлення.", MESSAGELIST_LOADING_OLDER: "Завантаження старих повідомлень...", MESSAGELIST_SHOW_OLDER: "Показати старіші повідомлення", MESSAGELIST_NEW_MARKER: "Нові", MESSAGE_SENT_VIA_EMAIL: "Це повідомлення надіслано електронною поштою", YOU_MARKER: "ти", UPLOAD_IN_PROGRESS: "Завантаження...", UPLOAD_SEND_FILE: "Надіслати файл", UPLOAD_SHARE_LOCATION: "Поділитися місцезнаходженням", UPLOAD_ERROR: "На жаль, під час завантаження щось не вдалось. Файл може бути непідтримуваним або занадто великим.", SHARE_LOCATION_ERROR: "Неможливо поділити місцезнаходження: ", LOADING: "Завантаження...", HUB_EMPTY: "Тут відобразиться ваша історія чатів", HUB_SHOW_EARLIER: "Показати попередні чати", INBOX_NO_CHATS_TITLE: "Чатів ще немає!", INBOX_NO_CHATS_BODY: "Після того, як ви проведете одну чи кілька бесід, вони з’являться тут.", ENABLE_TRANSLATION: "Перекласти цю розмову англійською", DISABLE_TRANSLATION: "Показати оригінал", SEARCH_PLACEHOLDER_TEXT: "Пошук...", SEARCH_SEARCHING: "Пошук...", SEARCH_NO_RESULTS: "Не знайдено результатів", SEARCH_NO_MORE_RESULTS: "Більше немає результатів", CHAT_NOT_FOUND: "Чат не знайдено", DELETE_MESSAGE: "Видалити повідомлення", DELETION_EXPLANATION: "Якщо ви видалите це повідомлення, воно зникне для всіх.", EDIT_MESSAGE: "Редагувати повідомлення", SAVE: "Зберегти", EDITED_INDICATOR: "відредаговано", REPLY_TO_MESSAGE: "Відповісти", ADD_REACTION: "Додати реакцію", AUTH_EXPIRED_OVERLAY_TITLE: "Ваша сесія в чаті закінчилась", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Оновіть сторінку, щоб продовжити", VOICE_MESSAGE: "Голосове повідомлення", CONTACT_INFORMATION_HIDDEN: "Прихована інформація", LEAVE_CONVERSATION: "Залишити розмову", MARK_CONVERSATION_AS_UNREAD: "Відзначити як непрочитане", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, ei = { code: "vi-VN", name: "Vietnamese", translation: { YESTERDAY: "Hôm qua", TODAY: "Hôm nay", DAYS: "ngày", HOURS: "giờ", MINUTES: "phút", JUST_NOW: "vừa xong", LOCATION: "Địa điểm", CANCEL: "Hủy", INBOX: "Hộp thư đến", DESKTOP_NOTIFICATIONS: "Thông báo trình duyệt", DESKTOP_NOTIFICATIONS_ERROR: "Không thể bật thông báo trên trình duyệt vì trình duyệt của bạn đang tắt chức năng này. Hãy thử tìm trong cài đặt trình duyệt hoặc sử dụng một trình duyệt khác.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} thông báo thử nghiệm`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Nếu bạn giữ tab trình duyệt của bạn mở, bạn sẽ thấy cửa sổ bật lên khi ai đó nói chuyện với bạn.", SEND_BUTTON_TEXT: "Gửi", ENTRYBOX_TEXT_LIMIT: "Tối đa 10.000 ký tự.", ENTRYBOX_PLACEHOLDER: "Nói gì đó...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Cuộc hội thoại này không còn hoạt động.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Bạn có thể đọc, nhưng không thể gửi tin nhắn.", MESSAGELIST_LOADING_OLDER: "Đang tải tin nhắn cũ...", MESSAGELIST_SHOW_OLDER: "Hiển thị tin nhắn trước đó", MESSAGELIST_NEW_MARKER: "Mới", MESSAGE_SENT_VIA_EMAIL: "Tin nhắn này đã được gửi qua email", YOU_MARKER: "bạn", UPLOAD_IN_PROGRESS: "Đang tải lên...", UPLOAD_SEND_FILE: "Gửi tệp", UPLOAD_SHARE_LOCATION: "Chia sẻ vị trí", UPLOAD_ERROR: "Thật không may, quá trình tải lên không thành công. Tệp không được hỗ trợ hoặc quá lớn.", SHARE_LOCATION_ERROR: "Không thể chia sẻ vị trí: ", LOADING: "Đang tải...", HUB_EMPTY: "Lịch sử trò chuyện của bạn sẽ hiển thị ở đây", HUB_SHOW_EARLIER: "Hiển thị các cuộc trò chuyện trước đó", INBOX_NO_CHATS_TITLE: "Chưa có cuộc trò chuyện nào!", INBOX_NO_CHATS_BODY: "Khi bạn đã có một hoặc nhiều cuộc trò chuyện, chúng sẽ hiển thị ở đây.", ENABLE_TRANSLATION: "Dịch cuộc hội thoại sang Tiếng Việt", DISABLE_TRANSLATION: "Hiển thị nội dung gốc", SEARCH_PLACEHOLDER_TEXT: "TÌm kiếm...", SEARCH_SEARCHING: "Đang tìm kiếm...", SEARCH_NO_RESULTS: "Không tìm thấy kết quả nào", SEARCH_NO_MORE_RESULTS: "Không có kết quả nào khác", CHAT_NOT_FOUND: "Không tìm thấy cuộc trò chuyện", DELETE_MESSAGE: "Xóa tin nhắn", DELETION_EXPLANATION: "Nếu bạn xóa tin nhắn này, tất cả mọi người sẽ không còn thấy nó.", EDIT_MESSAGE: "Chỉnh sửa tin nhắn", SAVE: "lưu", EDITED_INDICATOR: "đã chỉnh sửa", REPLY_TO_MESSAGE: "đáp lại", ADD_REACTION: "Thêm biểu tượng cảm xúc", AUTH_EXPIRED_OVERLAY_TITLE: "Phiên trò chuyện của bạn đã hết hạn", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Hãy làm mới trang để tiếp tục", VOICE_MESSAGE: "Tin nhắn thoại", CONTACT_INFORMATION_HIDDEN: "Thông tin ẩn", LEAVE_CONVERSATION: "Thoát khỏi cuộc trò chuyện", MARK_CONVERSATION_AS_UNREAD: "Đánh dấu là chưa đọc", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, ti = { code: "zh-CN", name: "Chinese (Simplified)", translation: { YESTERDAY: "昨天", TODAY: "今天", DAYS: "天", HOURS: "小时", MINUTES: "分钟", JUST_NOW: "刚才", LOCATION: "地点", CANCEL: "取消", INBOX: "收件箱", DESKTOP_NOTIFICATIONS: "浏览器通知", DESKTOP_NOTIFICATIONS_ERROR: "因浏览器设置为阻止,所以无法激活浏览器提醒。请去设置里查看或者尝试其他的浏览器。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 演示提醒`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "只要保持浏览器开着,如果有人和你对话,将会自动弹出对话窗口。", SEND_BUTTON_TEXT: "发送", ENTRYBOX_TEXT_LIMIT: "不超过10,000个字符。", ENTRYBOX_PLACEHOLDER: "写点什么吧……", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "该对话已结束。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "你只能阅读信息,不能发送信息。", MESSAGELIST_LOADING_OLDER: "载入之前的信息……", MESSAGELIST_SHOW_OLDER: "显示之前的信息", MESSAGELIST_NEW_MARKER: "新消息", MESSAGE_SENT_VIA_EMAIL: "该信息已通过邮件发送。", YOU_MARKER: "你", UPLOAD_IN_PROGRESS: "上传中……", UPLOAD_SEND_FILE: "发送文件", UPLOAD_SHARE_LOCATION: "分享地址", UPLOAD_ERROR: "上传出错。文件格式不支持或者太大。", SHARE_LOCATION_ERROR: "无法分享地址: ", LOADING: "正在载入……", HUB_EMPTY: "你的聊天记录将在此显示。", HUB_SHOW_EARLIER: "显示之前的聊天记录。", INBOX_NO_CHATS_TITLE: "暂无任何聊天记录!", INBOX_NO_CHATS_BODY: "如果你有一个或多个对话窗口进行中,将显示在这里。", ENABLE_TRANSLATION: "翻译至简体中文", DISABLE_TRANSLATION: "查看原文", SEARCH_PLACEHOLDER_TEXT: "搜索...", SEARCH_SEARCHING: "正在搜索...", SEARCH_NO_RESULTS: "未找到结果", SEARCH_NO_MORE_RESULTS: "无更多结果", CHAT_NOT_FOUND: "未找到“聊天”", DELETE_MESSAGE: "删除消息", DELETION_EXPLANATION: "如果您删除此消息,那么所有人都将无法再看到它。", EDIT_MESSAGE: "编辑消息", SAVE: "保存", EDITED_INDICATOR: "本消息有改动", REPLY_TO_MESSAGE: "回复", ADD_REACTION: "添加反应", AUTH_EXPIRED_OVERLAY_TITLE: "您的聊天会话已过期", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "刷新页面以继续", VOICE_MESSAGE: "语音消息", CONTACT_INFORMATION_HIDDEN: "隐藏信息", LEAVE_CONVERSATION: "离开对话", MARK_CONVERSATION_AS_UNREAD: "标记为未读", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, ni = { code: "zh-TW", name: "Chinese (Traditional)", translation: { YESTERDAY: "昨天", TODAY: "昨天", DAYS: "天", HOURS: "小時", MINUTES: "分", JUST_NOW: "現在", LOCATION: "地點", CANCEL: "取消", INBOX: "收件箱", DESKTOP_NOTIFICATIONS: "瀏覽器通知", DESKTOP_NOTIFICATIONS_ERROR: "無法啟用瀏覽器通知,因為您的瀏覽器主動阻止它們。 嘗試查看設置或使用其他瀏覽器。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 演示通知`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "如果您持續打開瀏覽器標籤頁,當有人與您通話時,您會看到此彈出窗口。", SEND_BUTTON_TEXT: "發送", ENTRYBOX_TEXT_LIMIT: "只允許10.000個字符。", ENTRYBOX_PLACEHOLDER: "說些什麼...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "此對話不再有效。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "您可以閱讀,但不能發送消息。", MESSAGELIST_LOADING_OLDER: "加載舊訊息...", MESSAGELIST_SHOW_OLDER: "顯示較舊的訊息", MESSAGELIST_NEW_MARKER: "新的", MESSAGE_SENT_VIA_EMAIL: "此訊息是通過電郵發送的", YOU_MARKER: "您", UPLOAD_IN_PROGRESS: "上傳中...", UPLOAD_SEND_FILE: "發送文件", UPLOAD_SHARE_LOCATION: "共享位置", UPLOAD_ERROR: "不幸的是,上傳出了問題。 該文件可能不受支持或太大。", SHARE_LOCATION_ERROR: "無法分享位置:", LOADING: "載入中...", HUB_EMPTY: "您的聊天記錄將顯示在此處", HUB_SHOW_EARLIER: "顯示早先的聊天記錄", INBOX_NO_CHATS_TITLE: "還沒聊天!", INBOX_NO_CHATS_BODY: "一旦您進行了一次或多次對話,他們就會顯示在此處。", ENABLE_TRANSLATION: "翻譯此對話至繁體中文", DISABLE_TRANSLATION: "顯示原文", SEARCH_PLACEHOLDER_TEXT: "搜尋...", SEARCH_SEARCHING: "正在搜尋...", SEARCH_NO_RESULTS: "找不到任何結果", SEARCH_NO_MORE_RESULTS: "沒有其他結果", CHAT_NOT_FOUND: "查無對話", DELETE_MESSAGE: "刪除訊息", DELETION_EXPLANATION: "您如果刪除這條訊息,所有人都將看不到它。", EDIT_MESSAGE: "編輯訊息", SAVE: "儲存", EDITED_INDICATOR: "已編輯", REPLY_TO_MESSAGE: "回覆", ADD_REACTION: "加入表情回應", AUTH_EXPIRED_OVERLAY_TITLE: "您的會話過程已過期", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "請刷新頁面以繼續", VOICE_MESSAGE: "語音訊息", CONTACT_INFORMATION_HIDDEN: "隱藏訊息", LEAVE_CONVERSATION: "離開對話", MARK_CONVERSATION_AS_UNREAD: "標記為未讀", REPLY_TO_ARIA_LABEL: A.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: A.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: A.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: A.translation.STATUS_INDICATOR_OFFLINE } }, dt = { ar: Ra, bg: La, bs: ma, ca: pa, cs: ha, da: Da, de: Ca, el: ga, en: A, es: va, et: ka, fa, fi: Ma, fr: Pa, he: Ua, hi: Ha, hr: ba, hu: Ba, id: ya, is: wa, it: Ya, ja: $a, ka: ja, ko: Fa, nb: Va, nl: xa, pl: Xa, pt: Ga, ro: za, ru: Ka, sq: Wa, sr: qa, sv: Ja, tr: Za, uk: Qa, vi: ei, zh: ti, zhTw: ni };
132
132
  function an(e) {
133
133
  const t = e.replace(/_/g, "-").toLowerCase(), n = dt[t];
134
134
  if (n) return { ...n.translation, locale: t };
135
135
  const a = t.slice(0, 2), i = dt[a];
136
- return i ? { ...i.translation, locale: a } : (Q.warn(`User locale '${e}' not supported; falling back to English.`), { ...c.translation, locale: "en-US" });
136
+ return i ? { ...i.translation, locale: a } : (Q.warn(`User locale '${e}' not supported; falling back to English.`), { ...A.translation, locale: "en-US" });
137
137
  }
138
138
  class sn extends Error {
139
139
  }
140
140
  function St(e, t) {
141
141
  if (!e) throw new sn(t != null ? t : "Assertion failed");
142
142
  }
143
- const M = Object.assign(St, { is: function(e, t, n) {
143
+ const P = Object.assign(St, { is: function(e, t, n) {
144
144
  return St(t, n);
145
145
  }, unreachable: function() {
146
146
  throw new Error("Unreachable code");
@@ -157,7 +157,7 @@ const M = Object.assign(St, { is: function(e, t, n) {
157
157
  const n = rn();
158
158
  return n.fillStyle = t, n.fillText(e, 0, 0), n.getImageData(0, 0, 1, 1).data;
159
159
  };
160
- function ii(e) {
160
+ function ai(e) {
161
161
  const t = It(e, "#000"), n = It(e, "#fff"), a = ((i) => !i.includes("‍") || rn().measureText(i).width < 160)(e);
162
162
  return t && n && a && ((i, s) => {
163
163
  const r = [...i].join(",");
@@ -166,7 +166,7 @@ function ii(e) {
166
166
  }
167
167
  function on(e) {
168
168
  try {
169
- return ii(e);
169
+ return ai(e);
170
170
  } catch (t) {
171
171
  return !0;
172
172
  }
@@ -229,16 +229,16 @@ class ln {
229
229
  };
230
230
  }
231
231
  }
232
- const si = { canReplyToMessage: !1, canEditMessage: !1, canDeleteMessage: !1, canAddReaction: !1 };
232
+ const ii = { canReplyToMessage: !1, canEditMessage: !1, canDeleteMessage: !1, canAddReaction: !1 };
233
233
  class _n extends ln {
234
234
  constructor(t, n) {
235
- super(t, n), this.messageSubscription = null, this.readyForNewMessagesPromise = Promise.resolve(), this.participantSubscription = null, this.onlineSubscriptions = {}, this.state$ = U({ extCurrentConversationId: null, editor: { isEmpty: !0, isTyping: !1, atTextLimit: !1, characterCount: 0, showEmojiPicker: !1, suggestEmojiQuery: void 0, suggestMentionQuery: void 0 }, referencedMessageId: null, editingMessageId: null, currentConversation: null, visibility: { isInView: !1, tabFocused: !0 }, messages: {}, participants: {}, typing: {}, isUserConnected: {}, ephemeralMessages: {}, ephemeralMessageIdMapping: {}, localFileBlobUrls: {}, userPermissions: () => {
235
+ super(t, n), this.type = "ChatboxStore", this.messageSubscription = null, this.readyForNewMessagesPromise = Promise.resolve(), this.participantSubscription = null, this.onlineSubscriptions = {}, this.state$ = U({ extCurrentConversationId: null, editor: { isEmpty: !0, isTyping: !1, atTextLimit: !1, characterCount: 0, showEmojiPicker: !1, suggestEmojiQuery: void 0, suggestMentionQuery: void 0 }, referencedMessageId: null, editingMessageId: null, currentConversation: null, visibility: { isInView: !1, tabFocused: !0 }, messages: {}, participants: {}, typing: {}, isUserConnected: {}, ephemeralMessages: {}, ephemeralMessageIdMapping: {}, localFileBlobUrls: {}, userPermissions: () => {
236
236
  const a = this.app$.role.general.get(), i = this.app$.role.permissions.get();
237
- return M.defined(a), M.defined(i), { showTypingIndicator: a.showTypingIndicators, canShareFile: a.enableFileTransfers, canShareLocation: a.enableLocation, canMention: a.enableMentions, showOnlineStatus: a.enablePresence !== !1, canSendVoiceMessage: a.enableVoiceRecording, canLeaveConversation: i.conversations.leave === "all", canMarkConversationAsUnread: i.conversations.markAsUnread === "all" };
237
+ return P.defined(a), P.defined(i), { showTypingIndicator: a.showTypingIndicators, canShareFile: a.enableFileTransfers, canShareLocation: a.enableLocation, canMention: a.enableMentions, showOnlineStatus: a.enablePresence !== !1, canSendVoiceMessage: a.enableVoiceRecording, canLeaveConversation: i.conversations.leave === "all", canMarkConversationAsUnread: i.conversations.markAsUnread === "all" };
238
238
  }, messagePermissions: () => {
239
239
  const a = this.app$.role.permissions.get();
240
- M.defined(a);
241
- const i = this.state$.userPermissions.get(), s = { ...si, ...i }, r = { canReplyToMessage: Z(a.messages.reply, !0), canEditMessage: Z(a.messages.edit, !0), canDeleteMessage: Z(a.messages.delete, !0), canAddReaction: Z(a.messages.emojiReactions, !0), ...i }, o = { ...r, canEditMessage: !1 }, E = { canReplyToMessage: Z(a.messages.reply, !1), canEditMessage: Z(a.messages.edit, !1), canDeleteMessage: Z(a.messages.delete, !1), canAddReaction: Z(a.messages.emojiReactions, !1), ...i };
240
+ P.defined(a);
241
+ const i = this.state$.userPermissions.get(), s = { ...ii, ...i }, r = { canReplyToMessage: Z(a.messages.reply, !0), canEditMessage: Z(a.messages.edit, !0), canDeleteMessage: Z(a.messages.delete, !0), canAddReaction: Z(a.messages.emojiReactions, !0), ...i }, o = { ...r, canEditMessage: !1 }, E = { canReplyToMessage: Z(a.messages.reply, !1), canEditMessage: Z(a.messages.edit, !1), canDeleteMessage: Z(a.messages.delete, !1), canAddReaction: Z(a.messages.emojiReactions, !1), ...i };
242
242
  return { system: s, own: r, ownWithoutEditing: o, other: E, otherWithoutEditing: { ...E, canEditMessage: !1 } };
243
243
  } }), this.locale$ = U(() => {
244
244
  var r, o;
@@ -254,26 +254,26 @@ class _n extends ln {
254
254
  const i = this.state$.currentConversation.readUntil.get(), s = (I = this.state$.messages.child(a).state.get()) != null ? I : [], r = Object.values((T = this.state$.ephemeralMessages.child(a).get()) != null ? T : {}), o = (r.length === 0 ? s : r.concat(s).sort((u, d) => d.createdAt - u.createdAt)).map((u) => {
255
255
  const d = u.content[0], N = d == null ? void 0 : d.type;
256
256
  if (!d || N !== "file") return u;
257
- const p = d.size + "," + d.filename, R = this.state$.localFileBlobUrls.child(a).child(p).url.get();
257
+ const m = d.size + "," + d.filename, R = this.state$.localFileBlobUrls.child(a).child(m).url.get();
258
258
  return R ? { ...u, content: [{ ...d, url: R }] } : u;
259
259
  });
260
260
  let E = null, l = 0, _ = !1;
261
- const O = [];
261
+ const c = [];
262
262
  for (const u of o) {
263
- const d = new Date(u.createdAt), N = new Date(d).setHours(0, 0, 0, 0), p = l && N !== l, R = d.getTime() > i, L = !(!_ || R || E != null && E.id.startsWith("ephemeral"));
264
- (L || p) && O.push(new Qe({ id: "border-before-" + u.id, isDayMarker: !!p, isReadMarker: !!L, timestamp: p ? l : void 0 })), O.push(u), _ = R, l = N, E = u;
263
+ const d = new Date(u.createdAt), N = new Date(d).setHours(0, 0, 0, 0), m = l && N !== l, R = d.getTime() > i, L = !(!_ || R || E != null && E.id.startsWith("ephemeral"));
264
+ (L || m) && c.push(new Qe({ id: "border-before-" + u.id, isDayMarker: !!m, isReadMarker: !!L, timestamp: m ? l : void 0 })), c.push(u), _ = R, l = N, E = u;
265
265
  }
266
266
  return function(u, d) {
267
267
  const N = [];
268
- let p = [];
268
+ let m = [];
269
269
  const R = Symbol("NO_KEY");
270
270
  let L = R;
271
- for (const m of u) {
272
- const C = d(m);
273
- L === R || L === C ? p.push(m) : (N.push(p), p = [m]), L = C;
271
+ for (const p of u) {
272
+ const C = d(p);
273
+ L === R || L === C ? m.push(p) : (N.push(m), m = [p]), L = C;
274
274
  }
275
- return p.length !== 0 && N.push(p), N;
276
- }(O, (u) => {
275
+ return m.length !== 0 && N.push(m), N;
276
+ }(c, (u) => {
277
277
  var d;
278
278
  return u instanceof Qe ? u.id : (d = u.sender) == null ? void 0 : d.id;
279
279
  }).map((u) => (u.id = u.map((d) => d.id).join(","), u));
@@ -306,28 +306,28 @@ class _n extends ln {
306
306
  le(() => {
307
307
  var E;
308
308
  const i = n.reduce((l, _) => (l[_.id] = _, l), {}), s = this.state$.extCurrentConversationId.peek(), r = this.extUserId$.peek();
309
- M(r && s), this.state$.messages.child(t).set({ state: n, lookup: i, loadedAll: a });
309
+ P(r && s), this.state$.messages.child(t).set({ state: n, lookup: i, loadedAll: a });
310
310
  const o = this.state$.ephemeralMessages.child(t);
311
311
  for (const l of n) {
312
312
  const _ = this.state$.ephemeralMessageIdMapping.child(t).child(l.id).peek();
313
313
  _ && o.child(_).delete();
314
- const O = l.content[0];
315
- if (((E = l.sender) == null ? void 0 : E.id) !== r || O.type !== "file") continue;
316
- const I = O.size + "," + O.filename, T = this.state$.localFileBlobUrls.child(s).child(I);
314
+ const c = l.content[0];
315
+ if (((E = l.sender) == null ? void 0 : E.id) !== r || c.type !== "file") continue;
316
+ const I = c.size + "," + c.filename, T = this.state$.localFileBlobUrls.child(s).child(I);
317
317
  if (T.fetching.peek() !== !1) continue;
318
318
  const u = () => T.delete();
319
- if (O.subtype === "image") {
319
+ if (c.subtype === "image") {
320
320
  T.fetching.set(!0);
321
321
  const d = document.createElement("img");
322
- d.addEventListener("load", u, { once: !0 }), d.src = O.url;
323
- } else if (O.subtype === "video") {
322
+ d.addEventListener("load", u, { once: !0 }), d.src = c.url;
323
+ } else if (c.subtype === "video") {
324
324
  T.fetching.set(!0);
325
325
  const d = document.createElement("video");
326
- d.addEventListener("loaddata", u, { once: !0 }), d.src = O.url;
327
- } else if (O.subtype === "audio") {
326
+ d.addEventListener("loaddata", u, { once: !0 }), d.src = c.url;
327
+ } else if (c.subtype === "audio") {
328
328
  T.fetching.set(!0);
329
329
  const d = document.createElement("audio");
330
- d.addEventListener("loaddata", u, { once: !0 }), d.src = O.url;
330
+ d.addEventListener("loaddata", u, { once: !0 }), d.src = c.url;
331
331
  }
332
332
  }
333
333
  });
@@ -341,20 +341,20 @@ class Qe {
341
341
  this.id = t, this.isDayMarker = n, this.isReadMarker = a, this.timestamp = n ? i : void 0;
342
342
  }
343
343
  }
344
- function be(e) {
344
+ function Be(e) {
345
345
  const t = f();
346
- return A(t instanceof _n ? ri : oi, { ...e });
346
+ return O(t instanceof _n ? si : ri, { ...e });
347
347
  }
348
- function ri(e) {
348
+ function si(e) {
349
349
  const t = G(), n = Te();
350
- return A(t.Icon, { common: n, ...e });
350
+ return O(t.Icon, { common: n, ...e });
351
351
  }
352
- function oi(e) {
352
+ function ri(e) {
353
353
  const t = G(), n = nn();
354
- return A(t.Icon, { common: n, ...e });
354
+ return O(t.Icon, { common: n, ...e });
355
355
  }
356
356
  function et({ src: e, onError: t, filename: n, className: a = "" }) {
357
- const i = b(null), s = b(), r = b(), [o, E] = B(!1), [l, _] = B(0), [O, I] = B(1), T = b(), [u, d] = B(!1);
357
+ const i = y(null), s = y(), r = y(), [o, E] = b(!1), [l, _] = b(0), [c, I] = b(1), T = y(), [u, d] = b(!1);
358
358
  v(() => {
359
359
  s.current = new Audio();
360
360
  const R = { normalize: !0, height: 50, container: i.current };
@@ -362,19 +362,19 @@ function et({ src: e, onError: t, filename: n, className: a = "" }) {
362
362
  const D = s.current;
363
363
  D && (D.error.message === "PIPELINE_ERROR_READ: FFmpegDemuxer: demuxer seek failed" ? (D.load(), E(!1)) : (d(!0), E(!1), t == null || t()));
364
364
  }
365
- const m = n.slice(n.lastIndexOf(".") + 1);
365
+ const p = n.slice(n.lastIndexOf(".") + 1);
366
366
  if (function(D) {
367
367
  return /(?:^|\/)talkjs_audio_message_[0-9]+_([0-9]+)[.](?:mp3|webm)$/.test(D);
368
- }(n) && m === "webm" && !s.current.canPlayType("audio/webm;codecs=opus")) R.backend = "WebAudio", r.current = new Audio("data:audio/mp3;base64,//MkxAAHiAICWABElBeKPL/RANb2w+yiT1g/gTok//lP/W/l3h8QO/OCdCqCW2Cw//MkxAQHkAIWUAhEmAQXWUOFW2dxPu//9mr60ElY5sseQ+xxesmHKtZr7bsqqX2L//MkxAgFwAYiQAhEAC2hq22d3///9FTV6tA36JdgBJoOGgc+7qvqej5Zu7/7uI9l//MkxBQHAAYi8AhEAO193vt9KGOq+6qcT7hhfN5FTInmwk8RkqKImTM55pRQHQSq//MkxBsGkgoIAABHhTACIJLf99nVI///yuW1uBqWfEu7CgNPWGpUadBmZ////4sL//MkxCMHMAH9iABEmAsKioqKigsLCwtVTEFNRTMuOTkuNVVVVVVVVVVVVVVVVVVV//MkxCkECAUYCAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"), r.current.controls = !1;
368
+ }(n) && p === "webm" && !s.current.canPlayType("audio/webm;codecs=opus")) R.backend = "WebAudio", r.current = new Audio("data:audio/mp3;base64,//MkxAAHiAICWABElBeKPL/RANb2w+yiT1g/gTok//lP/W/l3h8QO/OCdCqCW2Cw//MkxAQHkAIWUAhEmAQXWUOFW2dxPu//9mr60ElY5sseQ+xxesmHKtZr7bsqqX2L//MkxAgFwAYiQAhEAC2hq22d3///9FTV6tA36JdgBJoOGgc+7qvqej5Zu7/7uI9l//MkxBQHAAYi8AhEAO193vt9KGOq+6qcT7hhfN5FTInmwk8RkqKImTM55pRQHQSq//MkxBsGkgoIAABHhTACIJLf99nVI///yuW1uBqWfEu7CgNPWGpUadBmZ////4sL//MkxCMHMAH9iABEmAsKioqKigsLCwtVTEFNRTMuOTkuNVVVVVVVVVVVVVVVVVVV//MkxCkECAUYCAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"), r.current.controls = !1;
369
369
  else {
370
370
  const D = s.current;
371
371
  D.addEventListener("error", L), D.src = e, D.preload = "auto", D.preservesPitch = !0, R.media = D;
372
372
  }
373
373
  T.current = function(D) {
374
- var $, g, w, ue, ne, de, X, K;
374
+ var $, g, Y, ue, ne, de, X, K;
375
375
  if (!D.container) return;
376
- const h = getComputedStyle(D.container), P = ($ = pe.parse(h.color)) != null ? $ : new pe(255, 255, 255, 1), F = P.withAlpha(P.alpha / 2);
377
- return zn.create({ ...D, barGap: (g = D.barGap) != null ? g : 2, barRadius: (w = D.barRadius) != null ? w : 0, barWidth: (ue = D.barWidth) != null ? ue : 2, barHeight: D.barHeight, hideScrollbar: !0, cursorWidth: (ne = D.cursorWidth) != null ? ne : 0, cursorColor: D.cursorColor, height: (de = D.height) != null ? de : 24, progressColor: (X = D.progressColor) != null ? X : F.toRgbaString(), waveColor: (K = D.waveColor) != null ? K : F.toRgbaString() });
376
+ const h = getComputedStyle(D.container), M = ($ = pe.parse(h.color)) != null ? $ : new pe(255, 255, 255, 1), F = M.withAlpha(M.alpha / 2);
377
+ return Gn.create({ ...D, barGap: (g = D.barGap) != null ? g : 2, barRadius: (Y = D.barRadius) != null ? Y : 0, barWidth: (ue = D.barWidth) != null ? ue : 2, barHeight: D.barHeight, hideScrollbar: !0, cursorWidth: (ne = D.cursorWidth) != null ? ne : 0, cursorColor: D.cursorColor, height: (de = D.height) != null ? de : 24, progressColor: (X = D.progressColor) != null ? X : F.toRgbaString(), waveColor: (K = D.waveColor) != null ? K : F.toRgbaString() });
378
378
  }(R);
379
379
  const C = T.current;
380
380
  return C.on("finish", () => {
@@ -386,30 +386,30 @@ function et({ src: e, onError: t, filename: n, className: a = "" }) {
386
386
  (D = s.current) == null || D.removeEventListener("error", L), s.current = void 0, C.destroy(), T.current = void 0;
387
387
  };
388
388
  }, [e, n, t]);
389
- const N = H(() => {
389
+ const N = B(() => {
390
390
  var R;
391
391
  if (T.current.options.backend === "WebAudio") T.current.isPlaying() || r.current.play(), T.current.playPause(), E((R = T.current.isPlaying()) != null ? R : !1);
392
392
  else {
393
393
  const L = s.current;
394
394
  L.paused ? L.play() : L.pause(), L.loop = !1, !L.paused && L.ended && (L.load(), L.play()), E(!L.paused);
395
395
  }
396
- }, []), p = H((R) => {
396
+ }, []), m = B((R) => {
397
397
  T.current.setPlaybackRate(R), I(R);
398
398
  }, []);
399
- return u ? A("div", {}) : x("div", { className: `t-audio-player ${a}`, children: [A("button", { onClick: N, children: A(be, { className: "t-play-pause-icon", type: o ? "pause" : "play", "aria-label": o ? "pause audio" : "play audio" }) }), A("div", { className: "t-waveform", ref: i }), A("div", { className: "t-duration", children: Mn(l) }), x(Re, { type: "menu", popoverComponent: li, popoverProps: { playbackSpeed: O, selectPlaybackSpeed: p }, className: "t-playback-speed", "aria-label": "set playback speed", children: [O, "x", A(be, { type: "updown", className: "t-up-down-icon", "aria-hidden": !0 })] })] });
399
+ return u ? O("div", {}) : x("div", { className: `t-audio-player ${a}`, children: [O("button", { onClick: N, children: O(Be, { className: "t-play-pause-icon", type: o ? "pause" : "play", "aria-label": o ? "pause audio" : "play audio" }) }), O("div", { className: "t-waveform", ref: i }), O("div", { className: "t-duration", children: fn(l) }), x(Re, { type: "menu", popoverComponent: Ei, popoverProps: { playbackSpeed: c, selectPlaybackSpeed: m }, className: "t-playback-speed", "aria-label": "set playback speed", children: [c, "x", O(Be, { type: "updown", className: "t-up-down-icon", "aria-hidden": !0 })] })] });
400
400
  }
401
- const Ei = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2];
402
- function li({ playbackSpeed: e, selectPlaybackSpeed: t }) {
403
- return x("div", { className: "t-playback-speed-menu", children: [A("div", { className: "t-playback-heading", children: "Playback Speed" }), Ei.map((n) => x(ie, { className: "t-menu-item", onSelect: () => t(n), children: [A("span", { className: "t-playback-checkmark", children: e === n ? "✓ " : "" }), n, "x"] }, n))] });
401
+ const oi = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2];
402
+ function Ei({ playbackSpeed: e, selectPlaybackSpeed: t }) {
403
+ return x("div", { className: "t-playback-speed-menu", children: [O("div", { className: "t-playback-heading", children: "Playback Speed" }), oi.map((n) => x(ie, { className: "t-menu-item", onSelect: () => t(n), children: [O("span", { className: "t-playback-checkmark", children: e === n ? "✓ " : "" }), n, "x"] }, n))] });
404
404
  }
405
- const _i = /^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/, ci = /^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)$/;
405
+ const li = /^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/, _i = /^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)$/;
406
406
  class pe {
407
407
  constructor(t, n, a, i) {
408
408
  this.red = t, this.green = n, this.blue = a, this.alpha = i;
409
409
  }
410
410
  static parse(t) {
411
411
  var a;
412
- const n = (a = t.match(_i)) != null ? a : t.match(ci);
412
+ const n = (a = t.match(li)) != null ? a : t.match(_i);
413
413
  if (n) {
414
414
  const [i, s, r, o, E = "1"] = n;
415
415
  return new pe(Number(s), Number(r), Number(o), Number(E));
@@ -424,16 +424,16 @@ class pe {
424
424
  return i !== 1 ? `rgba(${t}, ${n}, ${a}, ${i})` : `rgb(${t}, ${n}, ${a})`;
425
425
  }
426
426
  }
427
- const y = new Wn({ nodes: { doc: { content: "paragraph+" }, paragraph: { code: !0, content: "inline*", parseDOM: [{ tag: "p" }], toDOM: () => ["p", 0] }, text: { group: "inline" }, mention: { group: "inline", inline: !0, attrs: { id: {}, name: {} }, content: "text*", toDOM: (e) => ["span", { "data-mention-id": e.attrs.id, class: "t-mention" }, `@${e.attrs.name}`], parseDOM: [{ tag: "span[data-mention-id]", getAttrs: (e) => ({ id: e.dataset["mention-id"] }) }] }, customemoji: { group: "inline", inline: !0, attrs: { name: {}, url: {} }, content: "text*", selectable: !1, toDOM: (e) => ["img", { src: e.attrs.url, alt: e.attrs.name, "data-custom-emoji": e.attrs.name }], parseDOM: [{ tag: "img[data-custom-emoji]", getAttrs: (e) => {
427
+ const w = new Kn({ nodes: { doc: { content: "paragraph+" }, paragraph: { code: !0, content: "inline*", parseDOM: [{ tag: "p" }], toDOM: () => ["p", 0] }, text: { group: "inline" }, mention: { group: "inline", inline: !0, attrs: { id: {}, name: {} }, content: "text*", toDOM: (e) => ["span", { "data-mention-id": e.attrs.id, class: "t-mention" }, `@${e.attrs.name}`], parseDOM: [{ tag: "span[data-mention-id]", getAttrs: (e) => ({ id: e.dataset["mention-id"] }) }] }, customemoji: { group: "inline", inline: !0, attrs: { name: {}, url: {} }, content: "text*", selectable: !1, toDOM: (e) => ["img", { src: e.attrs.url, alt: e.attrs.name, "data-custom-emoji": e.attrs.name }], parseDOM: [{ tag: "img[data-custom-emoji]", getAttrs: (e) => {
428
428
  const t = e;
429
429
  return { name: t.dataset.customEmoji, url: t.src };
430
- } }] } }, marks: { literal: { toDOM: () => ["span", { "data-literal": "" }], parseDOM: [{ tag: "span[data-literal]" }] }, bold: { toDOM: () => ["b"], parseDOM: [{ tag: "b" }] }, italic: { toDOM: () => ["i"], parseDOM: [{ tag: "i" }] }, strikethrough: { toDOM: () => ["del"], parseDOM: [{ tag: "del" }] }, emoji: { attrs: { emoji: {} }, toDOM: (e) => ["span", { "data-emoji": e.attrs.emoji }, e.attrs.emoji], parseDOM: [{ tag: "span[data-emoji]", getAttrs: (e) => ({ emoji: e.dataset.emoji }) }] } } }), Xe = new Xt("placeholder"), Nt = new Gt({ key: Xe, props: { decorations(e) {
430
+ } }] } }, marks: { literal: { toDOM: () => ["span", { "data-literal": "" }], parseDOM: [{ tag: "span[data-literal]" }] }, bold: { toDOM: () => ["b"], parseDOM: [{ tag: "b" }] }, italic: { toDOM: () => ["i"], parseDOM: [{ tag: "i" }] }, strikethrough: { toDOM: () => ["del"], parseDOM: [{ tag: "del" }] }, emoji: { attrs: { emoji: {} }, toDOM: (e) => ["span", { "data-emoji": e.attrs.emoji }, e.attrs.emoji], parseDOM: [{ tag: "span[data-emoji]", getAttrs: (e) => ({ emoji: e.dataset.emoji }) }] } } }), Ge = new Xt("placeholder"), Nt = new Gt({ key: Ge, props: { decorations(e) {
431
431
  if (cn(e.doc)) return;
432
- const t = e.doc.firstChild, n = Vt.node(0, t.nodeSize, { class: "empty-node", "data-placeholder": Xe.getState(e) });
432
+ const t = e.doc.firstChild, n = Vt.node(0, t.nodeSize, { class: "empty-node", "data-placeholder": Ge.getState(e) });
433
433
  return xt.create(e.doc, [n]);
434
434
  } }, state: { init: () => "", apply: (e, t) => {
435
435
  var n;
436
- return (n = e.getMeta(Xe)) != null ? n : t;
436
+ return (n = e.getMeta(Ge)) != null ? n : t;
437
437
  } } });
438
438
  function cn(e) {
439
439
  return e.childCount !== 1 || e.firstChild.childCount !== 0;
@@ -491,18 +491,18 @@ function An(e) {
491
491
  }
492
492
  const Rt = "’'()[]{}<>:,‒–—―…!.«»-‐?‘’“”;/⁄␠·&@*\\•^¤¢$€£¥₩₪†‡°¡¿¬#№%‰‱¶′§~¨_|¦⁂☞∴‽※".replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
493
493
  var tt = ((e) => (e[e.italic = 1] = "italic", e[e.strikethrough = 2] = "strikethrough", e[e.bold = 4] = "bold", e))(tt || {});
494
- const Ai = [0, 1, 2, 3, 4, 5, 6].map((e) => {
494
+ const ci = [0, 1, 2, 3, 4, 5, 6].map((e) => {
495
495
  const t = [];
496
496
  return 1 & e || t.push(/_([^\s_].*?[^\s_])_|_([^\s_])_/), 2 & e || t.push(/~([^\s~].*?[^\s~])~|~([^\s~])~/), 4 & e || t.push(/\*([^\s*].*?[^\s*])\*|\*([^\s*])\*/), new RegExp(t.map((n) => n.source).join("|"), "g");
497
- }), Oi = { _: 1, "*": 4, "~": 2 };
498
- function Ti(e) {
497
+ }), Ai = { _: 1, "*": 4, "~": 2 };
498
+ function Oi(e) {
499
499
  return On(e, 0);
500
500
  }
501
501
  function On(e, t = 0) {
502
- const n = Ai[t], a = n ? function(i) {
503
- const s = ui.getOrCompute(i, () => new RegExp(`(?:^|[\\s${Rt}])(?:${i.source})(?=[\\s${Rt}]|$)`, "g")), r = q(s, (o) => {
502
+ const n = ci[t], a = n ? function(i) {
503
+ const s = Ti.getOrCompute(i, () => new RegExp(`(?:^|[\\s${Rt}])(?:${i.source})(?=[\\s${Rt}]|$)`, "g")), r = q(s, (o) => {
504
504
  const E = o[0][1], l = o[1] || o[2] || o[3] || o[4] || o[5] || o[6];
505
- return [" ", { type: tt[Oi[E]], children: [l] }];
505
+ return [" ", { type: tt[Ai[E]], children: [l] }];
506
506
  });
507
507
  return (o) => {
508
508
  const [E, ...l] = r(" " + o);
@@ -511,7 +511,7 @@ function On(e, t = 0) {
511
511
  }(n) : () => [e];
512
512
  return Le(a(e), (i, s) => s === "bold" || s === "italic" || s === "strikethrough" ? On(i, t | tt[s]) : [i]);
513
513
  }
514
- const ui = function() {
514
+ const Ti = function() {
515
515
  const e = function() {
516
516
  try {
517
517
  return /* @__PURE__ */ new WeakMap();
@@ -530,18 +530,18 @@ const ui = function() {
530
530
  function Tn(e, t = e) {
531
531
  return { type: "autolink", url: e, text: t };
532
532
  }
533
- const di = q(/<!!mention:([^>\s]*?)\|(.*?)>/gm, ([e, t, n]) => /* @__PURE__ */ function(a, i) {
533
+ const ui = q(/<!!mention:([^>\s]*?)\|(.*?)>/gm, ([e, t, n]) => /* @__PURE__ */ function(a, i) {
534
534
  return { type: "mention", id: a, text: i };
535
- }(decodeURIComponent(t), n)), Si = q(/<!!customemoji:(.*?)>/gm, ([e, t]) => /* @__PURE__ */ function(n) {
535
+ }(decodeURIComponent(t), n)), di = q(/<!!customemoji:(.*?)>/gm, ([e, t]) => /* @__PURE__ */ function(n) {
536
536
  return { type: "customemoji", text: n };
537
537
  }(t)), un = q(/<((?:https?|mailto):.*?)\|(.*?)>/gi, ([e, t, n]) => /* @__PURE__ */ function(a, i = []) {
538
538
  return { type: "link", url: a, children: i };
539
- }(t, [n])), Ii = q(/<actionlink:([^|]+)[|]([^>]*)>/gi, ([e, t, n]) => {
539
+ }(t, [n])), Si = q(/<actionlink:([^|]+)[|]([^>]*)>/gi, ([e, t, n]) => {
540
540
  const { action: a, params: i } = dn(t);
541
541
  return /* @__PURE__ */ function(s, r, o = []) {
542
542
  return { type: "actionlink", action: s, params: r, children: o };
543
543
  }(a, i, [n]);
544
- }), Ni = q(/<actionbutton:([^|]+)[|]([^>]*)>/gi, ([e, t, n]) => {
544
+ }), Ii = q(/<actionbutton:([^|]+)[|]([^>]*)>/gi, ([e, t, n]) => {
545
545
  const { action: a, params: i } = dn(t);
546
546
  return /* @__PURE__ */ function(s, r, o = []) {
547
547
  return { type: "actionbutton", action: s, params: r, children: o };
@@ -551,10 +551,10 @@ function dn(e) {
551
551
  const t = e.indexOf("?");
552
552
  return t === -1 ? { action: e, params: {} } : { action: e.slice(0, t), params: Object.fromEntries(new URLSearchParams(e.slice(t))) };
553
553
  }
554
- const Ri = q(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e]) => /* @__PURE__ */ function(t = []) {
554
+ const Ni = q(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e]) => /* @__PURE__ */ function(t = []) {
555
555
  return { type: "bulletlist", children: t };
556
556
  }([e.startsWith(`
557
- `) ? e.slice(1) : e])), Li = q(/^\s*[-*+]\s+([^\n]+)(?:\n|$)/gm, ([e, t]) => ({ type: "bulletpoint", children: [t] })), mi = (e) => {
557
+ `) ? e.slice(1) : e])), Ri = q(/^\s*[-*+]\s+([^\n]+)(?:\n|$)/gm, ([e, t]) => ({ type: "bulletpoint", children: [t] })), Li = (e) => {
558
558
  const t = /(?:^|[^-:/\w])([(+]?[0-9](?:[-_+ ().]?[0-9]){5,11}[0-9])(?:[^-:/\w]|$)/g;
559
559
  let n = 0;
560
560
  const a = [];
@@ -565,22 +565,22 @@ const Ri = q(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e]) => /* @__PURE__ */
565
565
  a.push(E), n = o + r.length;
566
566
  }
567
567
  return n < e.length && a.push(e.substring(n)), a;
568
- }, pi = (e) => un(e).flatMap((t) => typeof t == "string" ? Ge(t) : ["<", ...Ge(t.url), ...Ge("|" + t.children[0] + ">")]), Ge = (e) => {
569
- const t = ea.parse(e, { urls: !0, email: !0, phone: !1, hashtag: !1, mention: !1 }), n = [];
568
+ }, mi = (e) => un(e).flatMap((t) => typeof t == "string" ? ze(t) : ["<", ...ze(t.url), ...ze("|" + t.children[0] + ">")]), ze = (e) => {
569
+ const t = Qn.parse(e, { urls: !0, email: !0, phone: !1, hashtag: !1, mention: !1 }), n = [];
570
570
  let a = 0;
571
571
  for (const i of t) {
572
572
  const s = i.getOffset(), r = i.getMatchedText(), o = r.length;
573
573
  let E = r;
574
- i instanceof ta ? E = "mailto:" + i.getEmail() : i instanceof na && (E = i.getUrl()), s > a && n.push(e.substring(a, s)), n.push(Tn(E, r)), a = s + o;
574
+ i instanceof ea ? E = "mailto:" + i.getEmail() : i instanceof ta && (E = i.getUrl()), s > a && n.push(e.substring(a, s)), n.push(Tn(E, r)), a = s + o;
575
575
  }
576
576
  return a < e.length && n.push(e.substring(a)), n;
577
- }, hi = ["Codeblock", "Codespan", "FormattedLink", "Wikitext", "Autolink", "Actions", "Mention", "Mention", "BulletPoint", "CustomEmoji"];
578
- function Di(e = { except: [] }) {
577
+ }, pi = ["Codeblock", "Codespan", "FormattedLink", "Wikitext", "Autolink", "Actions", "Mention", "Mention", "BulletPoint", "CustomEmoji"];
578
+ function hi(e = { except: [] }) {
579
579
  var a;
580
- const t = { multilineSteps: [], singlelineSteps: [] }, n = (a = e.except) != null ? a : hi.filter((i) => !e.only.includes(i));
581
- return n.includes("BulletPoint") || t.multilineSteps.push(Ri, Li), n.includes("Mention") || t.singlelineSteps.push(di), n.includes("CustomEmoji") || t.singlelineSteps.push(Si), n.includes("Codespan") || t.multilineSteps.push(q(/```([^]+?)```/g, ([i, s]) => ({ type: "codespan", text: An(s) }))), n.includes("FormattedLink") || t.singlelineSteps.push(un), n.includes("Actions") || (t.singlelineSteps.push(Ii), t.singlelineSteps.push(Ni)), n.includes("Wikitext") || t.singlelineSteps.push(Ti), n.includes("Autolink") || t.singlelineSteps.push(pi, mi), t;
580
+ const t = { multilineSteps: [], singlelineSteps: [] }, n = (a = e.except) != null ? a : pi.filter((i) => !e.only.includes(i));
581
+ return n.includes("BulletPoint") || t.multilineSteps.push(Ni, Ri), n.includes("Mention") || t.singlelineSteps.push(ui), n.includes("CustomEmoji") || t.singlelineSteps.push(di), n.includes("Codespan") || t.multilineSteps.push(q(/```([^]+?)```/g, ([i, s]) => ({ type: "codespan", text: An(s) }))), n.includes("FormattedLink") || t.singlelineSteps.push(un), n.includes("Actions") || (t.singlelineSteps.push(Si), t.singlelineSteps.push(Ii)), n.includes("Wikitext") || t.singlelineSteps.push(Oi), n.includes("Autolink") || t.singlelineSteps.push(mi, Li), t;
582
582
  }
583
- const Ci = function(e) {
583
+ const Di = function(e) {
584
584
  const t = RegExp(`[^${e}]+${e}?|${e}`, "g");
585
585
  return (n) => Array.from(n.match(t) || []);
586
586
  }(`
@@ -588,11 +588,11 @@ const Ci = function(e) {
588
588
  function Sn(e, t = { except: [] }) {
589
589
  let n = function(a, i) {
590
590
  let s = [a];
591
- return s = ze(s, i.multilineSteps), s = ze(s, [Ci]), s = ze(s, i.singlelineSteps), s = In(s), s;
592
- }(e, Di(t));
591
+ return s = Ke(s, i.multilineSteps), s = Ke(s, [Di]), s = Ke(s, i.singlelineSteps), s = In(s), s;
592
+ }(e, hi(t));
593
593
  return n = Nn(n, !1), n;
594
594
  }
595
- function ze(e, t) {
595
+ function Ke(e, t) {
596
596
  return t.reduce((n, a) => Le(n, a), e);
597
597
  }
598
598
  function In(e) {
@@ -606,25 +606,30 @@ function Nn(e, t) {
606
606
  let a = [];
607
607
  for (let i = 0; i < e.length; i++) {
608
608
  const s = e[i];
609
- typeof s == "string" ? a.push(s) : "children" in s ? (a.length > 0 && (n.push(a.join("")), a = []), s.children = Nn(s.children, t || s.type === "link" || s.type === "actionbutton" || s.type === "actionlink"), n.push(s)) : s.type === "autolink" && t ? a.push(s.text) : (a.length > 0 && (n.push(a.join("")), a = []), n.push(s));
609
+ if (typeof s == "string") a.push(s);
610
+ else if ("children" in s) {
611
+ a.length > 0 && (n.push(a.join("")), a = []);
612
+ const r = Nn(s.children, t || s.type === "link" || s.type === "actionbutton" || s.type === "actionlink");
613
+ n.push({ ...s, children: r });
614
+ } else s.type === "autolink" && t ? a.push(s.text) : (a.length > 0 && (n.push(a.join("")), a = []), n.push(s));
610
615
  }
611
616
  return a.length > 0 && (n.push(a.join("")), a = []), n;
612
617
  }
613
- function gi() {
618
+ function Ci() {
614
619
  let e, t = 0;
615
620
  return (n) => {
616
621
  const a = (s = Date.now()) => {
617
622
  window.clearTimeout(e), e = void 0, t = s;
618
623
  const r = function(o) {
619
- o = o.removeMark(0, o.doc.content.size, y.marks.bold), o = o.removeMark(0, o.doc.content.size, y.marks.italic), o = o.removeMark(0, o.doc.content.size, y.marks.strikethrough), o.doc.firstChild;
624
+ o = o.removeMark(0, o.doc.content.size, w.marks.bold), o = o.removeMark(0, o.doc.content.size, w.marks.italic), o = o.removeMark(0, o.doc.content.size, w.marks.strikethrough), o.doc.firstChild;
620
625
  const E = function(l) {
621
626
  const _ = [];
622
- let O, I = "";
623
- return l.descendants((T, u) => (T.isText ? (I += T.text, O != null || (O = u)) : I && O !== void 0 && (_.push({ text: I, pos: O }), I = "", O = void 0), T.type !== y.nodes.mention)), I && O !== void 0 && _.push({ text: I, pos: O }), _;
627
+ let c, I = "";
628
+ return l.descendants((T, u) => (T.isText ? (I += T.text, c != null || (c = u)) : I && c !== void 0 && (_.push({ text: I, pos: c }), I = "", c = void 0), T.type !== w.nodes.mention)), I && c !== void 0 && _.push({ text: I, pos: c }), _;
624
629
  }(o.doc);
625
630
  for (const { text: l, pos: _ } of E) {
626
- const O = Sn(l, { only: ["Wikitext"] });
627
- [o] = Rn(o, _, O);
631
+ const c = Sn(l, { only: ["Wikitext"] });
632
+ [o] = Rn(o, _, c);
628
633
  }
629
634
  return o;
630
635
  }(n.state.tr);
@@ -639,9 +644,9 @@ function Rn(e, t, n, a = 0, i = []) {
639
644
  a += s.length;
640
645
  } else if (s.type === "bold" || s.type === "italic" || s.type === "strikethrough") {
641
646
  a += 1;
642
- const r = y.marks[s.type], o = [...i, r];
647
+ const r = w.marks[s.type], o = [...i, r];
643
648
  [e, a] = Rn(e, t, s.children, a, o), a += 1;
644
- } else M.unreachable();
649
+ } else P.unreachable();
645
650
  return [e, a];
646
651
  }
647
652
  function Lt(e) {
@@ -649,20 +654,20 @@ function Lt(e) {
649
654
  if (!n) return !0;
650
655
  let a = t.tr;
651
656
  const i = _t.between(t.selection.$from, t.selection.$to);
652
- return a = a.replaceRangeWith(i.from, i.from, y.text(e, a.storedMarks)), a = a.replaceRangeWith(i.to + 1, i.to + 1, y.text(e, a.storedMarks)), a = a.setSelection(_t.near(a.doc.resolve(i.to + 1))), n(a), !0;
657
+ return a = a.replaceRangeWith(i.from, i.from, w.text(e, a.storedMarks)), a = a.replaceRangeWith(i.to + 1, i.to + 1, w.text(e, a.storedMarks)), a = a.setSelection(_t.near(a.doc.resolve(i.to + 1))), n(a), !0;
653
658
  };
654
659
  }
655
- function vi(e, t, n) {
660
+ function gi(e, t, n) {
656
661
  const a = t.clipboardData;
657
662
  if (!a) return !1;
658
663
  const i = function(s) {
659
- const r = s.items || [], o = { "image/gif": "gif", "image/png": "png", "image/jpeg": "jpg", "image/svg+xml": "svg" }, E = Array.from(r).filter((O) => O.kind === "file" && o[O.type]);
664
+ const r = s.items || [], o = { "image/gif": "gif", "image/png": "png", "image/jpeg": "jpg", "image/svg+xml": "svg" }, E = Array.from(r).filter((c) => c.kind === "file" && o[c.type]);
660
665
  if (E.length === 0 || s.types.includes("text/rtf")) return;
661
666
  const l = E[0];
662
667
  let _ = l.getAsFile();
663
668
  if (!_.name) {
664
- const O = "image." + o[l.type];
665
- _ = new File([_], O, { type: l.type, lastModified: Date.now() });
669
+ const c = "image." + o[l.type];
670
+ _ = new File([_], c, { type: l.type, lastModified: Date.now() });
666
671
  }
667
672
  return _;
668
673
  }(a);
@@ -671,7 +676,7 @@ function vi(e, t, n) {
671
676
  s.dispatch(o);
672
677
  }(e, a.getData("text/plain")), !0;
673
678
  }
674
- function ki(e, { allowSpaces: t = !1 }) {
679
+ function vi(e, { allowSpaces: t = !1 }) {
675
680
  return (n) => {
676
681
  const a = new RegExp(`\\s${e}$`), i = t ? new RegExp(`${e}.*?(?=\\s${e}|$)`, "g") : new RegExp(`(?:^)?${e}[^\\s${e}]*`, "g"), s = n.before(), r = n.end(), o = n.doc.textBetween(s, r, "\0", "\0");
677
682
  let E;
@@ -679,22 +684,22 @@ function ki(e, { allowSpaces: t = !1 }) {
679
684
  const l = E.input.slice(Math.max(0, E.index - 1), E.index);
680
685
  if (!/^[\s\0]?$/.test(l)) continue;
681
686
  const _ = E.index + n.start();
682
- let O = _ + E[0].length;
683
- if (t && a.test(o.slice(O - 1, O + 1)) && (E[0] += " ", O++), _ < n.pos && O >= n.pos) return { range: { from: _, to: O }, text: E[0] };
687
+ let c = _ + E[0].length;
688
+ if (t && a.test(o.slice(c - 1, c + 1)) && (E[0] += " ", c++), _ < n.pos && c >= n.pos) return { range: { from: _, to: c }, text: E[0] };
684
689
  }
685
690
  };
686
691
  }
687
- function mt({ matcher: e = ki("#"), suggestionClass: t = "ProseMirror-suggestion", onEnter: n = () => !1, onChange: a = () => !1, onExit: i = () => !1, onKeyDown: s = () => !1, debug: r = !1 }) {
692
+ function mt({ matcher: e = vi("#"), suggestionClass: t = "ProseMirror-suggestion", onEnter: n = () => !1, onChange: a = () => !1, onExit: i = () => !1, onKeyDown: s = () => !1, debug: r = !1 }) {
688
693
  return new Gt({ key: new Xt("suggestions"), view() {
689
694
  return { update: (o, E) => {
690
- const l = this.key.getState(E), _ = this.key.getState(o.state), O = l.active && _.active && l.range.from !== _.range.from, I = !l.active && _.active, T = l.active && !_.active, u = !I && !T && l.text !== _.text;
691
- (T || O) && i({ view: o, range: l.range, text: l.text }), u && !O && a({ view: o, range: _.range, text: _.text }), (I || O) && n({ view: o, range: _.range, text: _.text });
695
+ const l = this.key.getState(E), _ = this.key.getState(o.state), c = l.active && _.active && l.range.from !== _.range.from, I = !l.active && _.active, T = l.active && !_.active, u = !I && !T && l.text !== _.text;
696
+ (T || c) && i({ view: o, range: l.range, text: l.text }), u && !c && a({ view: o, range: _.range, text: _.text }), (I || c) && n({ view: o, range: _.range, text: _.text });
692
697
  } };
693
698
  }, state: { init: () => ({ active: !1, range: {}, text: null }), apply(o, E) {
694
699
  const { selection: l } = o, _ = { ...E };
695
700
  if (l.from === l.to) {
696
701
  (l.from < E.range.from || l.from > E.range.to) && (_.active = !1);
697
- const O = l.$from, I = e(O);
702
+ const c = l.$from, I = e(c);
698
703
  I ? (_.active = !0, _.range = I.range, _.text = I.text) : _.active = !1;
699
704
  } else _.active = !1;
700
705
  return _.active || (_.range = {}, _.text = null), _;
@@ -706,18 +711,18 @@ function mt({ matcher: e = ki("#"), suggestionClass: t = "ProseMirror-suggestion
706
711
  return E ? xt.create(o.doc, [Vt.inline(l.from, l.to, { nodeName: "span", class: t, style: r ? "background: rgba(0, 0, 255, 0.05); color: blue; border: 2px solid blue;" : null })]) : null;
707
712
  } } });
708
713
  }
709
- function fi({ placeholder: e, disabled: t, className: n = "", characterLimit: a, spellcheck: i }) {
710
- const s = ge(), r = b(), o = b(null);
711
- return v(() => (r.current = function(E, l, _, O, I) {
712
- const T = qn.create({ schema: y, plugins: [...I.filter(Mi), Jn(), ct({ ...ke, "Mod-z": Zn, "Mod-y": Qn, "Mod-b": Lt("*"), "Mod-i": Lt("_"), "Mod-Enter": ke.Enter, "Shift-Enter": ke.Enter, Enter: _ }), ct({ Enter: ke.Enter }), Nt] }), u = gi(), d = new Kn(E, { handlePaste: (N, p, R) => vi(N, p, O), clipboardTextSerializer(N) {
713
- const p = [];
714
+ function ki({ placeholder: e, disabled: t, className: n = "", characterLimit: a, spellcheck: i }) {
715
+ const s = ge(), r = y(), o = y(null);
716
+ return v(() => (r.current = function(E, l, _, c, I) {
717
+ const T = Wn.create({ schema: w, plugins: [...I.filter(fi), qn(), ct({ ...ke, "Mod-z": Jn, "Mod-y": Zn, "Mod-b": Lt("*"), "Mod-i": Lt("_"), "Mod-Enter": ke.Enter, "Shift-Enter": ke.Enter, Enter: _ }), ct({ Enter: ke.Enter }), Nt] }), u = Ci(), d = new zn(E, { handlePaste: (N, m, R) => gi(N, m, c), clipboardTextSerializer(N) {
718
+ const m = [];
714
719
  return N.content.forEach((R) => {
715
- R && p.push(An(R.textContent));
716
- }), p.join();
720
+ R && m.push(An(R.textContent));
721
+ }), m.join();
717
722
  }, state: T, dispatchTransaction(N) {
718
- N = (N = N.removeStoredMark(y.marks.literal)).removeStoredMark(y.marks.emoji);
719
- const p = d.state.apply(N);
720
- d.state.doc.eq(p.doc) || l(new Be(p.doc)), d.updateState(p), N.steps.some((R) => R instanceof aa) && setTimeout(() => u(d), 0);
723
+ N = (N = N.removeStoredMark(w.marks.literal)).removeStoredMark(w.marks.emoji);
724
+ const m = d.state.apply(N);
725
+ d.state.doc.eq(m.doc) || l(new ye(m.doc)), d.updateState(m), N.steps.some((R) => R instanceof na) && setTimeout(() => u(d), 0);
721
726
  } });
722
727
  return d;
723
728
  }(o.current, (E) => s.onChange(E), () => !!s.onEnter && (s.onEnter(), !0), (E) => s.onPasteImage(E), [s.emojiSuggesterPlugin(), s.mentionsPlugin()]), s.setEditorView(r.current), () => {
@@ -735,20 +740,20 @@ function fi({ placeholder: e, disabled: t, className: n = "", characterLimit: a,
735
740
  E == null || E.dispatch(E.state.tr.setMeta(Nt, (l = s.placeholder$.get()) != null ? l : e));
736
741
  }), [s, e]), v(() => {
737
742
  a && Number.isInteger(a) && s.setMaxLength(a);
738
- }, [a, s]), A("div", { className: `t-editor ${n}`, ref: o });
743
+ }, [a, s]), O("div", { className: `t-editor ${n}`, ref: o });
739
744
  }
740
745
  function pt(e) {
741
746
  if (e.startsWith(":")) throw new Error("Not implemented");
742
747
  {
743
- const t = y.marks.emoji.create({ emoji: e });
744
- return y.text(e, [t]);
748
+ const t = w.marks.emoji.create({ emoji: e });
749
+ return w.text(e, [t]);
745
750
  }
746
751
  }
747
752
  function ht(e, t) {
748
753
  const n = encodeURIComponent(e);
749
- return y.nodes.mention.create({ id: e, name: t }, y.text(`<!!mention:${n}|${t}>`));
754
+ return w.nodes.mention.create({ id: e, name: t }, w.text(`<!!mention:${n}|${t}>`));
750
755
  }
751
- const we = class we {
756
+ const Ye = class Ye {
752
757
  constructor(t) {
753
758
  this.doc = t, this.size = this.doc.content.size, this.hasContent = cn(this.doc);
754
759
  }
@@ -756,22 +761,22 @@ const we = class we {
756
761
  return this.doc.textContent.replace(/\xa0/g, " ");
757
762
  }
758
763
  };
759
- we.EMPTY = new we(y.topNodeType.create());
760
- let Be = we;
761
- function Mi(e) {
764
+ Ye.EMPTY = new Ye(w.topNodeType.create());
765
+ let ye = Ye;
766
+ function fi(e) {
762
767
  return e != null;
763
768
  }
764
769
  const Ln = /^\/.*[^\\]\/[im]*$/;
765
770
  function Dt(e) {
766
- return Ln.test(e) ? !ye(e).test("") : !1;
771
+ return Ln.test(e) ? !we(e).test("") : !1;
767
772
  }
768
- function ye(e) {
773
+ function we(e) {
769
774
  const t = e.match(/^\/(.*[^\\])\/(.*)$/);
770
775
  if (!t) throw new Error(`Expected ${e} to be a (non-empty) regex`);
771
776
  let n = t[2] || "";
772
777
  return n = n.replace(/[^im]/g, "") + "g", new RegExp(t[1], n);
773
778
  }
774
- function Pi(e, t) {
779
+ function Mi(e, t) {
775
780
  const n = function(i) {
776
781
  {
777
782
  const s = document.createElement("a");
@@ -783,8 +788,8 @@ function Pi(e, t) {
783
788
  }(e);
784
789
  return n !== void 0 && a.test(n);
785
790
  }
786
- const Ui = /^[]/g;
787
- function Hi(e) {
791
+ const Pi = /^[]/g;
792
+ function Ui(e) {
788
793
  return e.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
789
794
  }
790
795
  function nt(e, t) {
@@ -822,62 +827,44 @@ function nt(e, t) {
822
827
  }, e.never = function(a) {
823
828
  };
824
829
  })(nt || (nt = {}));
825
- const Ee = nt, bi = /\uFE0F/g, Bi = "‍";
826
- function yi(e) {
830
+ const Ee = nt, Hi = /\uFE0F/g, bi = "‍";
831
+ function Bi(e) {
827
832
  if (e === ":arslan:") return "https://cdn.talkjs.com/__assets/5461191341cea882b3f227c085d5772c.gif";
828
833
  const t = function(a) {
829
834
  const i = [];
830
835
  let s = 0, r = 0, o = 0;
831
836
  for (; o < a.length; ) s = a.charCodeAt(o++), r ? (i.push((65536 + (r - 55296 << 10) + (s - 56320)).toString(16)), r = 0) : 55296 <= s && s <= 56319 ? r = s : i.push(s.toString(16));
832
837
  return i.join("-");
833
- }((n = e).indexOf(Bi) < 0 ? n.replace(bi, "") : n);
838
+ }((n = e).indexOf(bi) < 0 ? n.replace(Hi, "") : n);
834
839
  var n;
835
840
  return `https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/${t}.svg`;
836
841
  }
837
- class wi {
842
+ class yi {
838
843
  constructor({ mode: t, allowedHostnames: n, allowedPhoneNrs: a, allowedMatches: i, forbiddenMatches: s, suppressLinks: r, suppressEmailAddresses: o, suppressPhoneNumbers: E, replacement: l }) {
839
- Ee.oneOf(t, ["all", "otherOnly", "off"]), this.mode = t, this.suppressLinks = r !== !1, this.suppressEmailAddresses = o !== !1, this.suppressPhoneNumbers = E !== !1, this.allowedHostnames = n || [], this.allowedPhoneNrs = (a || []).filter((_) => _).map((_) => _.replace(/[^0-9]/g, "")), this.allowedMatches = (i || []).filter(Dt).map((_) => ye(_)), this.forbiddenMatches = (s || []).filter(Dt).map((_) => ye(_)), Ee(() => this.allowedMatches.every((_) => _.flags.includes("g")), "All regexes in `suppressContactInfo.allowedMatches` must be global. Check `allowedMatches`!"), Ee(() => this.forbiddenMatches.every((_) => _.flags.includes("g")), "All regexes in `suppressContactInfo.forbiddenMatches` must be global. Check `forbiddenMatches`!"), l = l == null ? void 0 : l.trim(), this.replacement = l && l.length > 0 ? l : void 0;
844
+ Ee.oneOf(t, ["all", "otherOnly", "off"]), this.mode = t, this.suppressLinks = r !== !1, this.suppressEmailAddresses = o !== !1, this.suppressPhoneNumbers = E !== !1, this.allowedHostnames = n || [], this.allowedPhoneNrs = (a || []).filter((_) => _).map((_) => _.replace(/[^0-9]/g, "")), this.allowedMatches = (i || []).filter(Dt).map((_) => we(_)), this.forbiddenMatches = (s || []).filter(Dt).map((_) => we(_)), Ee(() => this.allowedMatches.every((_) => _.flags.includes("g")), "All regexes in `suppressContactInfo.allowedMatches` must be global. Check `allowedMatches`!"), Ee(() => this.forbiddenMatches.every((_) => _.flags.includes("g")), "All regexes in `suppressContactInfo.forbiddenMatches` must be global. Check `forbiddenMatches`!"), l = l == null ? void 0 : l.trim(), this.replacement = l && l.length > 0 ? l : void 0;
840
845
  }
841
846
  shouldSuppress({ isContentBySender: t }) {
842
847
  return this.mode === "all" || this.mode === "otherOnly" && !t;
843
848
  }
844
849
  }
845
850
  function mn(e) {
846
- var n, a, i, s, r, o, E, l, _, O, I, T, u;
851
+ var n, a, i, s, r, o, E, l, _, c, I, T, u;
847
852
  let t = "";
848
- return e.t && (t = `(${e.t("CONTACT_INFORMATION_HIDDEN")})`), { formattedLinks: (n = e.formattedLinks) != null ? n : "plaintext", markup: (a = e.markup) != null ? a : !1, useFallbackMentions: (i = e.useFallbackMentions) != null ? i : !1, sameTabLinkRules: (s = e.sameTabLinkRules) != null ? s : [], enableEmojiImageFallback: (r = e.enableEmojiImageFallback) != null ? r : !1, highlight: (o = e.highlight) != null ? o : [], contactInfo: (E = e.contactInfo) != null ? E : !1, suppression: (l = e.suppression) != null ? l : new wi({ mode: "off" }), contactInfoHiddenText: (I = (O = e.contactInfoHiddenText) != null ? O : (_ = e.suppression) == null ? void 0 : _.replacement) != null ? I : t, customEmojiUrls: (T = e.customEmojiUrls) != null ? T : {}, enableActions: (u = e.enableActions) != null ? u : !0 };
849
- }
850
- class pn extends ln {
851
- constructor() {
852
- super(...arguments), this.conversationListSubscription = null, this.extCurrentConversationId$ = U(null), this.conversationsArray$ = U([]), this.conversationsMap$ = U({});
853
- }
854
- listenForConversations(t) {
855
- const n = t.subscribeConversations((a) => {
856
- le(() => {
857
- this.conversationsArray$.set(a);
858
- const i = {};
859
- for (const s of a) i[s.id] = s;
860
- this.conversationsMap$.set(i);
861
- });
862
- });
863
- return this.conversationListSubscription = n, () => {
864
- n.unsubscribe(), this.conversationListSubscription = null;
865
- };
866
- }
853
+ return e.t && (t = `(${e.t("CONTACT_INFORMATION_HIDDEN")})`), { formattedLinks: (n = e.formattedLinks) != null ? n : "plaintext", markup: (a = e.markup) != null ? a : !1, useFallbackMentions: (i = e.useFallbackMentions) != null ? i : !1, sameTabLinkRules: (s = e.sameTabLinkRules) != null ? s : [], enableEmojiImageFallback: (r = e.enableEmojiImageFallback) != null ? r : !1, highlight: (o = e.highlight) != null ? o : [], contactInfo: (E = e.contactInfo) != null ? E : !1, suppression: (l = e.suppression) != null ? l : new yi({ mode: "off" }), contactInfoHiddenText: (I = (c = e.contactInfoHiddenText) != null ? c : (_ = e.suppression) == null ? void 0 : _.replacement) != null ? I : t, customEmojiUrls: (T = e.customEmojiUrls) != null ? T : {}, enableActions: (u = e.enableActions) != null ? u : !0 };
867
854
  }
868
- function Yi({ id: e, text: t }) {
855
+ function wi({ id: e, text: t }) {
869
856
  var s;
870
857
  const n = f(), a = k(() => {
871
858
  var E;
872
- if (n instanceof pn) return;
859
+ if (n.type === "ConversationListStore") return;
873
860
  const r = n.state$.extCurrentConversationId.get(), o = r && n.state$.participants.child(r).get();
874
861
  return (E = o == null ? void 0 : o.find((l) => l.user.id === e)) == null ? void 0 : E.user;
875
862
  }), i = k(n.extUserId$);
876
- return A("span", { className: "t-mention", "t-is-current-user": i === e ? "" : void 0, children: `@${(s = a == null ? void 0 : a.name) != null ? s : t}` });
863
+ return O("span", { className: "t-mention", "t-is-current-user": i === e ? "" : void 0, children: `@${(s = a == null ? void 0 : a.name) != null ? s : t}` });
877
864
  }
878
865
  function ce(e, t) {
879
866
  const n = e.flatMap((a) => {
880
- if (typeof a == "string") return Ke(a, t.highlight);
867
+ if (typeof a == "string") return We(a, t.highlight);
881
868
  switch (a.type) {
882
869
  case "bold":
883
870
  case "italic":
@@ -885,31 +872,31 @@ function ce(e, t) {
885
872
  case "blockquote":
886
873
  case "bulletpoint":
887
874
  case "bulletPoint":
888
- return $i(a, t);
875
+ return Yi(a, t);
889
876
  case "bulletlist":
890
877
  case "bulletList":
891
878
  return [te("ul", null, ...ce(a.children, t))];
892
879
  case "autolink":
893
880
  case "autoLink":
894
881
  case "link":
895
- return Fi(a, t);
882
+ return ji(a, t);
896
883
  case "codeblock":
897
884
  case "codeBlock":
898
- return [A("code", { "data-language": a.language, children: Ke(a.text, t.highlight) })];
885
+ return [O("code", { "data-language": a.language, children: We(a.text, t.highlight) })];
899
886
  case "codespan":
900
887
  case "codeSpan":
901
- return A("code", { children: Ke((i = a.text, i.replace(/^\s*\n/m, "").replace(/\n\s*$/m, "")), t.highlight) });
888
+ return O("code", { children: We((i = a.text, i.replace(/^\s*\n/m, "").replace(/\n\s*$/m, "")), t.highlight) });
902
889
  case "mention":
903
- return Ee.falsy(t.useFallbackMentions), A(Yi, { id: a.id, text: a.text }, a.id);
890
+ return Ee.falsy(t.useFallbackMentions), O(wi, { id: a.id, text: a.text }, a.id);
904
891
  case "suppressed":
905
- return [A("i", { children: t.contactInfoHiddenText })];
892
+ return [O("i", { children: t.contactInfoHiddenText })];
906
893
  case "emoji":
907
- return t.enableEmojiImageFallback ? [A(ji, { unicode: a.text })] : [a.text];
894
+ return t.enableEmojiImageFallback ? [O($i, { unicode: a.text })] : [a.text];
908
895
  case "actionlink":
909
896
  case "actionLink":
910
897
  case "actionbutton":
911
898
  case "actionButton":
912
- return Vi(a, t);
899
+ return Fi(a, t);
913
900
  case "customemoji":
914
901
  case "customEmoji":
915
902
  return a.text;
@@ -920,7 +907,7 @@ function ce(e, t) {
920
907
  });
921
908
  return n.every((a) => typeof a == "string") ? [n.join("")] : n;
922
909
  }
923
- function Ke(e, t) {
910
+ function We(e, t) {
924
911
  return t.length === 0 ? [e] : function(n, a, i) {
925
912
  let s = 0;
926
913
  const r = [];
@@ -928,56 +915,56 @@ function Ke(e, t) {
928
915
  return s < n.length && r.push(n.substring(s)), r;
929
916
  }(e, st(e, function(n) {
930
917
  const a = n.map((s) => s.trim()).filter((s) => s);
931
- if (a.length === 0) return Ui;
932
- const i = a.map(Hi).join("|");
918
+ if (a.length === 0) return Pi;
919
+ const i = a.map(Ui).join("|");
933
920
  return new RegExp(i, "gi");
934
- }(t)).map((n) => ({ offset: n.index, matchedText: n[0] })), ({ matchedText: n }) => [A("span", { className: "highlighted-text", children: n })]);
921
+ }(t)).map((n) => ({ offset: n.index, matchedText: n[0] })), ({ matchedText: n }) => [O("span", { className: "highlighted-text", children: n })]);
935
922
  }
936
- const $i = (e, t) => {
923
+ const Yi = (e, t) => {
937
924
  const n = { bold: "strong", italic: "em", strikethrough: "del", blockquote: "blockquote", bulletpoint: "li", bulletPoint: "li" }[e.type];
938
925
  return [te(n, null, ...ce(e.children, t))];
939
926
  };
940
- function ji({ unicode: e }) {
941
- const [t, n] = B(() => e !== ":arslan:");
927
+ function $i({ unicode: e }) {
928
+ const [t, n] = b(() => e !== ":arslan:");
942
929
  if (v(() => {
943
930
  t && !on(e) && n(!1);
944
- }, []), t) return A("span", { className: "t-emoji", children: e });
945
- const a = yi(e);
946
- return A("img", { className: "t-emoji", src: a, alt: e });
931
+ }, []), t) return O("span", { className: "t-emoji", children: e });
932
+ const a = Bi(e);
933
+ return O("img", { className: "t-emoji", src: a, alt: e });
947
934
  }
948
- const Fi = (e, t) => {
935
+ const ji = (e, t) => {
949
936
  const n = "children" in e ? e.children : [e.text];
950
937
  switch (t.formattedLinks) {
951
938
  case "link": {
952
939
  const a = function(i, s) {
953
940
  for (const r of i) if (Ln.test(r)) {
954
- if (ye(r).test(s)) return "_top";
955
- } else if (Pi(r, s)) return "_top";
941
+ if (we(r).test(s)) return "_top";
942
+ } else if (Mi(r, s)) return "_top";
956
943
  return "_blank";
957
944
  }(t.sameTabLinkRules, e.url);
958
945
  return [te("a", { target: a, href: e.url, rel: "noreferrer" }, ...ce(n, t))];
959
946
  }
960
947
  case "plaintext":
961
948
  case !1:
962
- return "children" in e && e.children.every((a) => typeof a == "string") ? [e.children.join("")] : [te(xn, null, ...ce(n, t))];
949
+ return "children" in e && e.children.every((a) => typeof a == "string") ? [e.children.join("")] : [te(Vn, null, ...ce(n, t))];
963
950
  default:
964
951
  Ee.never(t.formattedLinks);
965
952
  }
966
- }, Vi = (e, t) => t.enableActions ? [te("button", { "data-type": e.type, "data-action": e.action, "data-params": JSON.stringify(e.params), disabled: !0 }, ...ce(e.children, t))] : [null];
967
- function hn({ block: e, nonInteractive: t, className: n = "" }) {
953
+ }, Fi = (e, t) => t.enableActions ? [te("button", { "data-type": e.type, "data-action": e.action, "data-params": JSON.stringify(e.params), disabled: !0 }, ...ce(e.children, t))] : [null];
954
+ function pn({ block: e, nonInteractive: t, className: n = "" }) {
968
955
  const a = !t, i = function(s, r = {}) {
969
956
  return ce(s, mn(r));
970
957
  }(e.children, { enableEmojiImageFallback: !0, formattedLinks: a ? "link" : "plaintext", enableActions: a });
971
958
  return te("span", { className: `t-text ${n}` }, ...i);
972
959
  }
973
- function xi(e) {
960
+ function Vi(e) {
974
961
  const t = G(), n = f(), { className: a = "", ...i } = e, s = k(() => n.state$.messages.child(n.state$.extCurrentConversationId.get()).lookup.child(e.message.id).content.child(0).url.get());
975
- return A("div", { className: `t-message-content ${a}`, children: e.message.content.map((r) => {
962
+ return O("div", { className: `t-message-content ${a}`, children: e.message.content.map((r) => {
976
963
  var o;
977
- return A(Xi, { block: r, theme: t, downloadUrl: s, ...i }, e.message.createdAt + ((o = e.message.editedAt) != null ? o : 0));
964
+ return O(xi, { block: r, theme: t, downloadUrl: s, ...i }, e.message.createdAt + ((o = e.message.editedAt) != null ? o : 0));
978
965
  }) });
979
966
  }
980
- function Xi({ common: e, block: t, message: n, theme: a, downloadUrl: i }) {
967
+ function xi({ common: e, block: t, message: n, theme: a, downloadUrl: i }) {
981
968
  const s = function(r, o) {
982
969
  switch (o.type) {
983
970
  case "text":
@@ -998,15 +985,15 @@ function Xi({ common: e, block: t, message: n, theme: a, downloadUrl: i }) {
998
985
  return r.FileBlock;
999
986
  }
1000
987
  default:
1001
- M.never(o);
988
+ P.never(o);
1002
989
  }
1003
990
  }(a, t);
1004
- return A(s, { block: t, common: e, message: n, downloadUrl: i });
991
+ return O(s, { block: t, common: e, message: n, downloadUrl: i });
1005
992
  }
1006
- function je(e, t, n = !0) {
1007
- const a = H((s) => {
993
+ function Fe(e, t, n = !0) {
994
+ const a = B((s) => {
1008
995
  s.keyCode === 27 && e();
1009
- }, [e]), i = H((s) => {
996
+ }, [e]), i = B((s) => {
1010
997
  s.target instanceof HTMLElement && s.target.closest(t) === null && e();
1011
998
  }, [t, e]);
1012
999
  v(() => {
@@ -1015,8 +1002,8 @@ function je(e, t, n = !0) {
1015
1002
  };
1016
1003
  }, [a, i, n]);
1017
1004
  }
1018
- function Dn(e) {
1019
- const [t, n] = B();
1005
+ function hn(e) {
1006
+ const [t, n] = b();
1020
1007
  return v(() => {
1021
1008
  let a = !0;
1022
1009
  return e().then((i) => {
@@ -1028,35 +1015,35 @@ function Dn(e) {
1028
1015
  }
1029
1016
  function rt() {
1030
1017
  const e = f(), t = k(e.t$);
1031
- return A(be, { type: "spinner", "aria-label": t.LOADING, className: "t-loading-icon" });
1018
+ return O(Be, { type: "spinner", "aria-label": t.LOADING, className: "t-loading-icon" });
1032
1019
  }
1033
- const Gi = "https://cdn.jsdelivr.net/npm/emoji-picker-element@1.26.3/+esm", ot = /* @__PURE__ */ function(e) {
1020
+ const Xi = "https://cdn.jsdelivr.net/npm/emoji-picker-element@1.26.3/+esm", ot = /* @__PURE__ */ function(e) {
1034
1021
  let t;
1035
1022
  return () => (t === void 0 && (t = { value: e() }), t.value);
1036
1023
  }(async function() {
1037
1024
  if (typeof window == "undefined" || window.document === void 0) return new Promise(() => {
1038
1025
  });
1039
1026
  try {
1040
- const e = await import(/*webpackIgnore: true*/ /* @vite-ignore */Gi);
1027
+ const e = await import(/*webpackIgnore: true*/ /* @vite-ignore */Xi);
1041
1028
  return await new e.Database().ready(), e;
1042
1029
  } catch (e) {
1043
- return Ze.error("Failed to load emoji picker:", e), new Promise(() => {
1030
+ return be.error("Failed to load emoji picker:", e), new Promise(() => {
1044
1031
  });
1045
1032
  }
1046
1033
  });
1047
- function Cn(e) {
1048
- const { onClose: t, onEmojiSelected: n } = ra(), a = b(null), i = Dn(ot);
1034
+ function Dn(e) {
1035
+ const { onClose: t, onEmojiSelected: n } = sa(), a = y(null), i = hn(ot);
1049
1036
  return v(() => {
1050
1037
  if (!i) return;
1051
- M.defined(a.current);
1038
+ P.defined(a.current);
1052
1039
  const s = a.current, r = s.shadowRoot;
1053
1040
  (function(l, _) {
1054
- const O = document.createElement("style");
1055
- O.textContent = _, l.appendChild(O);
1041
+ const c = document.createElement("style");
1042
+ c.textContent = _, l.appendChild(c);
1056
1043
  })(r, ".search-row{margin-right:var(--emoji-padding)}.emoji-menu{grid-template-columns:repeat(auto-fill,var(--total-emoji-size));padding:var(--emoji-padding)}.emoji,button.emoji{border-radius:8px}.favorites{border-top-width:1px}input.search:focus{border-color:var(--input-focused-border-color);outline:0}.picker{container-type:size}@container (height < 300px){.favorites{display:none}}#skintone-button{margin:0 -3px 0 4px}.custom-emoji{padding:0}#emo-🏻,#emo-🏼,#emo-🏽,#emo-🏾,#emo-🏿{display:none}[data-has-mouse] .emoji:hover{background-color:var(--button-hover-background)}");
1057
1044
  const o = (l) => {
1058
- var O;
1059
- const _ = (O = l.detail.unicode) != null ? O : l.detail.name;
1045
+ var c;
1046
+ const _ = (c = l.detail.unicode) != null ? c : l.detail.name;
1060
1047
  n(_);
1061
1048
  };
1062
1049
  function E(l) {
@@ -1068,21 +1055,21 @@ function Cn(e) {
1068
1055
  }, [i, n]), v(() => {
1069
1056
  var s;
1070
1057
  i && a.current && ((s = a.current.shadowRoot.getElementById("search")) == null || s.focus());
1071
- }, [i]), je(() => t(), ".t-emoji-picker"), A("div", i ? { className: "t-emoji-picker", children: A("emoji-picker", { ref: a, class: e.colorScheme }) } : { className: "t-emoji-picker", "t-loading": "", children: A(rt, {}) });
1058
+ }, [i]), Fe(() => t(), ".t-emoji-picker"), O("div", i ? { className: "t-emoji-picker", children: O("emoji-picker", { ref: a, class: e.colorScheme }) } : { className: "t-emoji-picker", "t-loading": "", children: O(rt, {}) });
1072
1059
  }
1073
- function zi(e) {
1074
- const { messageId: t, colorScheme: n, ...a } = e, { closePopover: i } = oa(), s = Oe();
1075
- return A("div", { ...a, children: A(zt.Provider, { value: { onClose: i, onEmojiSelected: (r) => {
1060
+ function Gi(e) {
1061
+ const { messageId: t, colorScheme: n, ...a } = e, { closePopover: i } = ra(), s = Oe();
1062
+ return O("div", { ...a, children: O(zt.Provider, { value: { onClose: i, onEmojiSelected: (r) => {
1076
1063
  s.addReaction(t, r), i();
1077
- } }, children: A(Cn, { colorScheme: n }) }) });
1064
+ } }, children: O(Dn, { colorScheme: n }) }) });
1078
1065
  }
1079
- const Ki = { ltr: ["ArrowLeft", "ArrowRight"], rtl: ["ArrowRight", "ArrowLeft"], ttb: ["ArrowUp", "ArrowDown"] };
1080
- function gn(e, { focused: t, setFocused: n, itemCount: a, dir: i, onConfirm: s, onSpace: r }) {
1066
+ const zi = { ltr: ["ArrowLeft", "ArrowRight"], rtl: ["ArrowRight", "ArrowLeft"], ttb: ["ArrowUp", "ArrowDown"] };
1067
+ function Cn(e, { focused: t, setFocused: n, itemCount: a, dir: i, onConfirm: s, onSpace: r }) {
1081
1068
  if (a === 0) return !1;
1082
1069
  const o = (_) => {
1083
- var O, I, T;
1084
- O = 0, I = _, T = a - 1, _ = Math.max(O, Math.min(I, T)), n(_);
1085
- }, [E, l] = Ki[i];
1070
+ var c, I, T;
1071
+ c = 0, I = _, T = a - 1, _ = Math.max(c, Math.min(I, T)), n(_);
1072
+ }, [E, l] = zi[i];
1086
1073
  switch (e) {
1087
1074
  case E:
1088
1075
  return o(t - 1), !0;
@@ -1096,92 +1083,92 @@ function gn(e, { focused: t, setFocused: n, itemCount: a, dir: i, onConfirm: s,
1096
1083
  }
1097
1084
  return !1;
1098
1085
  }
1099
- function vn({ focused: e, setFocused: t, buttonId: n }) {
1086
+ function gn({ focused: e, setFocused: t, buttonId: n }) {
1100
1087
  Ae(() => {
1101
1088
  var s;
1102
1089
  const i = n(e);
1103
1090
  i && ((s = document.getElementById(i)) == null || s.scrollIntoView({ block: "nearest" }));
1104
1091
  }, [e, n]);
1105
- const a = H((i) => {
1092
+ const a = B((i) => {
1106
1093
  const s = i.currentTarget.dataset.index;
1107
1094
  t(+s);
1108
1095
  }, [t]);
1109
- return { containerProps: Y(() => ({ role: "menu", "aria-activedescendant": n(e) }), [e, n]), itemProps: H((i) => ({ onMouseMove: a, id: n(i), "data-index": i }), [a, n]) };
1096
+ return { containerProps: H(() => ({ role: "menu", "aria-activedescendant": n(e) }), [e, n]), itemProps: B((i) => ({ onMouseMove: a, id: n(i), "data-index": i }), [a, n]) };
1110
1097
  }
1111
- function Wi(e) {
1112
- const [t, n] = B([]), [a, i] = B([]), [s, r] = B(0), [o, E] = B(0), l = Dn(ot), _ = Y(() => l && new l.value.Database({}), [l]), O = ge(), I = k(O.state$.suggestEmojiQuery);
1098
+ function Ki(e) {
1099
+ const [t, n] = b([]), [a, i] = b([]), [s, r] = b(0), [o, E] = b(0), l = hn(ot), _ = H(() => l && new l.value.Database({}), [l]), c = ge(), I = k(c.state$.suggestEmojiQuery);
1113
1100
  v(() => {
1114
1101
  _ && (I ? async function() {
1115
1102
  const R = await _.getPreferredSkinTone();
1116
1103
  E(R);
1117
1104
  let L = await _.getEmojiBySearchQuery(I);
1118
- if (L = L.filter((m) => m.url || function(C) {
1119
- return C.version <= En && !Ji.includes(C.unicode);
1120
- }(m)), function(m, C) {
1105
+ if (L = L.filter((p) => p.url || function(C) {
1106
+ return C.version <= En && !qi.includes(C.unicode);
1107
+ }(p)), function(p, C) {
1121
1108
  C.sort((D, h) => {
1122
1109
  var $, g;
1123
- const P = ($ = D.shortcodes) == null ? void 0 : $.find((w) => w.startsWith(m)), F = (g = h.shortcodes) == null ? void 0 : g.find((w) => w.startsWith(m));
1124
- return P && !F ? -1 : !P && F ? 1 : P && F ? P.length - F.length : 0;
1110
+ const M = ($ = D.shortcodes) == null ? void 0 : $.find((Y) => Y.startsWith(p)), F = (g = h.shortcodes) == null ? void 0 : g.find((Y) => Y.startsWith(p));
1111
+ return M && !F ? -1 : !M && F ? 1 : M && F ? M.length - F.length : 0;
1125
1112
  });
1126
1113
  }(I.substring(1), L), r(0), n(L), L.length > 0 && i(L), I.endsWith(":")) {
1127
- const m = I.slice(1, -1), C = L.find((D) => {
1114
+ const p = I.slice(1, -1), C = L.find((D) => {
1128
1115
  var h;
1129
- return (h = D.shortcodes) == null ? void 0 : h.includes(m);
1116
+ return (h = D.shortcodes) == null ? void 0 : h.includes(p);
1130
1117
  });
1131
- C && O.selectEmoji(Ne(C, R));
1118
+ C && c.selectEmoji(Ne(C, R));
1132
1119
  }
1133
1120
  }() : n([]));
1134
- }, [I, O, _]);
1135
- const T = H((R) => {
1121
+ }, [I, c, _]);
1122
+ const T = B((R) => {
1136
1123
  const L = t[R];
1137
1124
  return L && "emoji-button-" + Ne(L, o);
1138
- }, [t, o]), { containerProps: u, itemProps: d } = vn({ focused: s, setFocused: r, buttonId: T }), N = t.length > 0;
1139
- je(() => O.closeSuggester(), ".t-emoji-suggest-bar", N), v(() => {
1140
- if (N) return O.listenKeydown("emoji", (R) => gn(R, { dir: "ltr", focused: s, setFocused: r, itemCount: t.length, onConfirm() {
1125
+ }, [t, o]), { containerProps: u, itemProps: d } = gn({ focused: s, setFocused: r, buttonId: T }), N = t.length > 0;
1126
+ Fe(() => c.closeSuggester(), ".t-emoji-suggest-bar", N), v(() => {
1127
+ if (N) return c.listenKeydown("emoji", (R) => Cn(R, { dir: "ltr", focused: s, setFocused: r, itemCount: t.length, onConfirm() {
1141
1128
  const L = t[s];
1142
- M.defined(L), O.selectEmoji(Ne(L, o));
1129
+ P.defined(L), c.selectEmoji(Ne(L, o));
1143
1130
  } })), () => {
1144
- O.listenKeydown("emoji", void 0);
1131
+ c.listenKeydown("emoji", void 0);
1145
1132
  };
1146
- O.listenKeydown("emoji", void 0);
1147
- }, [O, t, s, N, o]);
1148
- const p = b(null);
1149
- return A(ca, { in: N, timeout: 100, classNames: "slide", mountOnEnter: !0, unmountOnExit: !0, nodeRef: p, children: A("div", { className: "t-emoji-suggest-bar", ref: p, ...u, children: a.map((R, L) => A(qi, { emoji: R, skinTone: o, focused: L === s, onSelect: (m) => O.selectEmoji(m), ...d(L) }, Ne(R, o))) }) });
1133
+ c.listenKeydown("emoji", void 0);
1134
+ }, [c, t, s, N, o]);
1135
+ const m = y(null);
1136
+ return O(_a, { in: N, timeout: 100, classNames: "slide", mountOnEnter: !0, unmountOnExit: !0, nodeRef: m, children: O("div", { className: "t-emoji-suggest-bar", ref: m, ...u, children: a.map((R, L) => O(Wi, { emoji: R, skinTone: o, focused: L === s, onSelect: (p) => c.selectEmoji(p), ...d(L) }, Ne(R, o))) }) });
1150
1137
  }
1151
1138
  function Ne(e, t) {
1152
- return at(e) ? kn(e, t) : e.name;
1139
+ return at(e) ? vn(e, t) : e.name;
1153
1140
  }
1154
1141
  function at(e) {
1155
1142
  return !!e.unicode;
1156
1143
  }
1157
- function qi(e) {
1144
+ function Wi(e) {
1158
1145
  var l;
1159
- const { emoji: t, focused: n, skinTone: a, onSelect: i, ...s } = e, r = ((l = t.shortcodes) != null ? l : []).join(", "), o = at(t) ? [t.unicode, r].join(", ") : r, E = at(t) ? kn(t, a) : null;
1160
- return A("button", { "t-focused": n ? "" : void 0, title: r, "aria-label": o, onClick: () => i(Ne(t, a)), ...s, children: E });
1146
+ const { emoji: t, focused: n, skinTone: a, onSelect: i, ...s } = e, r = ((l = t.shortcodes) != null ? l : []).join(", "), o = at(t) ? [t.unicode, r].join(", ") : r, E = at(t) ? vn(t, a) : null;
1147
+ return O("button", { "t-focused": n ? "" : void 0, title: r, "aria-label": o, onClick: () => i(Ne(t, a)), ...s, children: E });
1161
1148
  }
1162
- function kn(e, t) {
1149
+ function vn(e, t) {
1163
1150
  var a, i;
1164
1151
  const n = (a = e.skins) == null ? void 0 : a.find((s) => s.tone === t);
1165
1152
  return (i = n == null ? void 0 : n.unicode) != null ? i : e.unicode;
1166
1153
  }
1167
- const Ji = ["🏻", "🏼", "🏽", "🏾", "🏿"];
1168
- function Zi(e) {
1169
- const { anchorSelector: t, children: n, ...a } = e, i = Y(() => document.querySelector(t), [t]), { refs: s, floatingStyles: r } = Aa({ placement: "top-start" });
1154
+ const qi = ["🏻", "🏼", "🏽", "🏾", "🏿"];
1155
+ function Ji(e) {
1156
+ const { anchorSelector: t, children: n, ...a } = e, i = H(() => document.querySelector(t), [t]), { refs: s, floatingStyles: r } = ca({ placement: "top-start" });
1170
1157
  return Ae(() => {
1171
1158
  i && s.setReference(i);
1172
- }, [s, i]), A("div", { ref: s.setFloating, style: { ...r, zIndex: 1e3 }, ...a, children: n });
1159
+ }, [s, i]), O("div", { ref: s.setFloating, style: { ...r, zIndex: 1e3 }, ...a, children: n });
1173
1160
  }
1174
- function Qi(e) {
1175
- const t = f(), n = k(() => t.mentionableUsers$.get()), [a, i] = B(0), s = ge(), r = k(s.state$.suggestMentionQuery), o = Y(() => Object.fromEntries(n.map((T) => {
1161
+ function Zi(e) {
1162
+ const t = f(), n = k(() => t.mentionableUsers$.get()), [a, i] = b(0), s = ge(), r = k(s.state$.suggestMentionQuery), o = H(() => Object.fromEntries(n.map((T) => {
1176
1163
  return [T.id, (u = T.name, [...u.matchAll(/^|\s+/g)].map((d) => d.index + d[0].length).map((d) => u.substring(d)))];
1177
1164
  var u;
1178
- })), [n]), E = Y(() => {
1165
+ })), [n]), E = H(() => {
1179
1166
  if (!r) return [];
1180
1167
  const T = Ct(r);
1181
- return T === "" ? n : n.filter((u) => o[u.id].some((d) => function(N, p) {
1182
- return Tt(N.substring(0, p.length), p);
1168
+ return T === "" ? n : n.filter((u) => o[u.id].some((d) => function(N, m) {
1169
+ return Tt(N.substring(0, m.length), m);
1183
1170
  }(d, T)));
1184
- }, [r, n, o]), l = b(void 0);
1171
+ }, [r, n, o]), l = y(void 0);
1185
1172
  v(() => {
1186
1173
  if (l.current) {
1187
1174
  const T = E.findIndex((u) => u.id === l.current);
@@ -1191,13 +1178,13 @@ function Qi(e) {
1191
1178
  var T;
1192
1179
  l.current = (T = E[a]) == null ? void 0 : T.id;
1193
1180
  }, [a, E]);
1194
- const _ = H((T) => {
1181
+ const _ = B((T) => {
1195
1182
  var d;
1196
1183
  const u = (d = E[T]) == null ? void 0 : d.id;
1197
1184
  return u && "mention-button-" + u;
1198
- }, [E]), { containerProps: O, itemProps: I } = vn({ focused: a, setFocused: i, buttonId: _ });
1185
+ }, [E]), { containerProps: c, itemProps: I } = gn({ focused: a, setFocused: i, buttonId: _ });
1199
1186
  return v(() => {
1200
- if (E.length !== 0) return s.listenKeydown("mention", (T) => gn(T, { dir: "ttb", focused: a, setFocused: i, itemCount: E.length, onSpace() {
1187
+ if (E.length !== 0) return s.listenKeydown("mention", (T) => Cn(T, { dir: "ttb", focused: a, setFocused: i, itemCount: E.length, onSpace() {
1201
1188
  if (r) {
1202
1189
  const u = E[a];
1203
1190
  if (Tt(u.name, Ct(r))) return s.selectMention(u), !0;
@@ -1209,28 +1196,28 @@ function Qi(e) {
1209
1196
  } })), () => {
1210
1197
  s.listenKeydown("mention", void 0);
1211
1198
  };
1212
- }, [s, a, E, r]), je(() => s.closeSuggester(), ".t-mention-suggest-list", E.length > 0), E.length === 0 ? null : A(Zi, { className: "t-mention-suggest-list", ...O, anchorSelector: ".ProseMirror-suggestion", children: E.map((T, u) => A(es, { user: T, isFocused: u === a, onSelect: () => s.selectMention(T), ...I(u) }, T.id)) });
1199
+ }, [s, a, E, r]), Fe(() => s.closeSuggester(), ".t-mention-suggest-list", E.length > 0), E.length === 0 ? null : O(Ji, { className: "t-mention-suggest-list", ...c, anchorSelector: ".ProseMirror-suggestion", children: E.map((T, u) => O(Qi, { user: T, isFocused: u === a, onSelect: () => s.selectMention(T), ...I(u) }, T.id)) });
1213
1200
  }
1214
- const es = oe.memo(function(e) {
1201
+ const Qi = oe.memo(function(e) {
1215
1202
  const { user: t, isFocused: n, onSelect: a, ...i } = e;
1216
- return A("button", { className: n ? "focused" : "", onClick: () => a(t.id), ...i, children: t.name });
1203
+ return O("button", { className: n ? "focused" : "", onClick: () => a(t.id), ...i, children: t.name });
1217
1204
  });
1218
1205
  function Ct(e) {
1219
- return M(e[0] === "@"), e.substring(1);
1206
+ return P(e[0] === "@"), e.substring(1);
1220
1207
  }
1221
1208
  function Re(e) {
1222
- const { popoverComponent: t, popoverProps: n, children: a, type: i = "popover", ...s } = e, [r, o] = B(void 0), [E, l] = B(!1);
1223
- let _, O, I;
1224
- return i === "menu" ? (_ = Pe.Root, O = Pe.Trigger, I = Pe.Content) : (_ = xe.Root, O = xe.Trigger, I = xe.Content), A(Ea.Provider, { value: { closePopover: () => l(!1) }, children: x(_, { modal: !0, open: E, onOpenChange: l, children: [A(O, { asChild: !0, children: A("button", { ...s, ref: (T) => ((u) => {
1209
+ const { popoverComponent: t, popoverProps: n, children: a, type: i = "popover", ...s } = e, [r, o] = b(void 0), [E, l] = b(!1);
1210
+ let _, c, I;
1211
+ return i === "menu" ? (_ = Pe.Root, c = Pe.Trigger, I = Pe.Content) : (_ = Xe.Root, c = Xe.Trigger, I = Xe.Content), O(oa.Provider, { value: { closePopover: () => l(!1) }, children: x(_, { modal: !1, open: E, onOpenChange: l, children: [O(c, { asChild: !0, children: O("button", { ...s, ref: (T) => ((u) => {
1225
1212
  var N;
1226
1213
  const d = (N = u == null ? void 0 : u.closest("[t-menu-boundary]")) != null ? N : void 0;
1227
1214
  o(d);
1228
- })(T), children: a }) }), A(I, { hideWhenDetached: !0, collisionBoundary: r, style: { zIndex: 1e3 }, onWheel: (T) => T.stopPropagation(), onTouchMove: (T) => T.stopPropagation(), children: A(t, { ...n }) })] }) });
1215
+ })(T), children: a }) }), O(I, { hideWhenDetached: !0, collisionBoundary: r, style: { zIndex: 1e3 }, onWheel: (T) => T.stopPropagation(), onTouchMove: (T) => T.stopPropagation(), children: O(t, { ...n }) })] }) });
1229
1216
  }
1230
1217
  function ie(e) {
1231
- return A(Pe.Item, { ...e });
1218
+ return O(Pe.Item, { ...e });
1232
1219
  }
1233
- function ts(e) {
1220
+ function es(e) {
1234
1221
  return tn(e);
1235
1222
  }
1236
1223
  function se(e) {
@@ -1240,43 +1227,43 @@ function se(e) {
1240
1227
  <rect x="0" y="0" width="100" height="100" fill="${tn(n)}"/>
1241
1228
  <text x="50%" y="54%" dominant-baseline="middle" font-size="34" font-family="San Francisco, Segoe UI, Helvetica Neue, Arial, Helvetica, sans-serif" fill="#fff" text-anchor="middle">${a}</text>
1242
1229
  </svg>`.replace(/\s+/g, " ");
1243
- return "data:image/svg+xml;base64," + Gn.encode(i);
1244
- }(e.id, Na(e.name));
1230
+ return "data:image/svg+xml;base64," + Xn.encode(i);
1231
+ }(e.id, Ia(e.name));
1245
1232
  }
1246
1233
  function Me(e) {
1247
1234
  return e < 1024 ? e + " B" : e < 1048576 ? Math.floor(e / 1024) + " KB" : e < 1073741824 ? Math.floor(e / 1048576) + " MB" : e < 1099511627776 ? Math.floor(e / 1073741824) + " GB" : Math.floor(e / 1099511627776) + " TB";
1248
1235
  }
1249
- function fn({ latitude: e, longitude: t }) {
1236
+ function kn({ latitude: e, longitude: t }) {
1250
1237
  const n = e + "," + t;
1251
- return { imageUrl: `https://maps.googleapis.com/maps/api/staticmap?center=${n}&zoom=15&size=300x200&scale=2&maptype=roadmap&markers=${n}&key=${Sa}`, linkUrl: `https://maps.google.com/maps?q=${n}&z=15` };
1238
+ return { imageUrl: `https://maps.googleapis.com/maps/api/staticmap?center=${n}&zoom=15&size=300x200&scale=2&maptype=roadmap&markers=${n}&key=${da}`, linkUrl: `https://maps.google.com/maps?q=${n}&z=15` };
1252
1239
  }
1253
- function ns(e, t) {
1254
- const [n, a] = B({ long: "", short: "" });
1240
+ function ts(e, t) {
1241
+ const [n, a] = b({ long: "", short: "" });
1255
1242
  return Ae(() => {
1256
1243
  let i, s = !0;
1257
1244
  const r = () => {
1258
- const E = Date.now(), l = function(_, O, I) {
1259
- const T = _ - O;
1245
+ const E = Date.now(), l = function(_, c, I) {
1246
+ const T = _ - c;
1260
1247
  let u, d, N;
1261
- const p = new Date(O), R = { month: "short", day: "numeric" };
1248
+ const m = new Date(c), R = { month: "short", day: "numeric" };
1262
1249
  if (T < gt) return { changeTimeout: 5e3, short: I.JUST_NOW, long: I.JUST_NOW };
1263
1250
  if (T < vt) u = gt, d = "MINUTES", N = I.MINUTES;
1264
1251
  else if (T < kt) u = vt, d = "HOURS", N = I.HOURS;
1265
1252
  else {
1266
- if (!(T < ss)) {
1267
- if (p.getFullYear() === new Date(_).getFullYear()) {
1268
- const m = p.toLocaleDateString(I.locale, R);
1269
- return { changeTimeout: void 0, short: m, long: m };
1253
+ if (!(T < is)) {
1254
+ if (m.getFullYear() === new Date(_).getFullYear()) {
1255
+ const p = m.toLocaleDateString(I.locale, R);
1256
+ return { changeTimeout: void 0, short: p, long: p };
1270
1257
  }
1271
1258
  {
1272
- const m = p.toLocaleDateString(I.locale, { ...R, year: "numeric" });
1273
- return { changeTimeout: void 0, short: m, long: m };
1259
+ const p = m.toLocaleDateString(I.locale, { ...R, year: "numeric" });
1260
+ return { changeTimeout: void 0, short: p, long: p };
1274
1261
  }
1275
1262
  }
1276
1263
  u = kt, d = "DAYS", N = I.DAYS;
1277
1264
  }
1278
1265
  const L = Math.floor(T / u);
1279
- return { changeTimeout: u, short: L + N, long: rs(L, d.toLowerCase(), I.locale) };
1266
+ return { changeTimeout: u, short: L + N, long: ss(L, d.toLowerCase(), I.locale) };
1280
1267
  }(E, e > E ? E - 2e3 : e, t);
1281
1268
  return a(l), l;
1282
1269
  }, o = () => {
@@ -1288,7 +1275,7 @@ function ns(e, t) {
1288
1275
  };
1289
1276
  }, [t, e]), n;
1290
1277
  }
1291
- function Mn(e) {
1278
+ function fn(e) {
1292
1279
  e = Math.floor(e);
1293
1280
  const t = Math.floor(e / 3600);
1294
1281
  e %= 3600;
@@ -1298,28 +1285,28 @@ function Mn(e) {
1298
1285
  let i = `${a(n)}:${a(e)}`;
1299
1286
  return t > 0 && (i = `${a(t)}:${i}`), i;
1300
1287
  }
1301
- const as = 864e5;
1302
- function is(e, t) {
1303
- const n = Date.now(), a = (i = e, s = n, Math.floor((s - i) / as));
1288
+ const ns = 864e5;
1289
+ function as(e, t) {
1290
+ const n = Date.now(), a = (i = e, s = n, Math.floor((s - i) / ns));
1304
1291
  var i, s;
1305
1292
  if (a < 0 || a === 0) return t.TODAY;
1306
1293
  if (a === 1) return t.YESTERDAY;
1307
1294
  const r = { weekday: "long" }, o = new Date(e);
1308
1295
  if (a < 7) return o.toLocaleDateString(t.locale, r);
1309
1296
  const E = new Date(n);
1310
- return function(_, O) {
1311
- return Math.floor((O - _) / 31536e6);
1297
+ return function(_, c) {
1298
+ return Math.floor((c - _) / 31536e6);
1312
1299
  }(E.setFullYear(E.getFullYear() - 1), e) === 0 ? o.toLocaleDateString(t.locale, { ...r, month: "long", day: "numeric" }) : o.toLocaleDateString(t.locale, { ...r, year: "numeric", month: "long", day: "numeric" });
1313
1300
  }
1314
- const gt = 6e4, vt = 36e5, kt = 864e5, ss = 6048e5;
1315
- function rs(e, t, n) {
1301
+ const gt = 6e4, vt = 36e5, kt = 864e5, is = 6048e5;
1302
+ function ss(e, t, n) {
1316
1303
  return new Intl.RelativeTimeFormat(n).format(-e, t);
1317
1304
  }
1318
1305
  function S(e, ...t) {
1319
- const n = Vn.bind(oe.createElement)(e, ...t);
1306
+ const n = Fn.bind(oe.createElement)(e, ...t);
1320
1307
  return Array.isArray(n) ? oe.createElement(oe.Fragment, {}, ...n) : n;
1321
1308
  }
1322
- function os(e) {
1309
+ function rs(e) {
1323
1310
  const { common: t } = e;
1324
1311
  return t.conversation.subject ? S`
1325
1312
  <div className="t-title">${t.conversation.subject}</div>
@@ -1346,7 +1333,7 @@ function ft({ common: e, isUserConnected: t, permissions: n }) {
1346
1333
  </span>
1347
1334
  ` : S`<span className="t-participants">${s.map(({ user: r }) => r.name).join(", ")}</span>`;
1348
1335
  }
1349
- function Es({ messageStatus: e, common: t }) {
1336
+ function os({ messageStatus: e, common: t }) {
1350
1337
  const { Icon: n } = t.theme;
1351
1338
  return e === "sending" ? S`
1352
1339
  <span className="t-status-icon">
@@ -1358,7 +1345,7 @@ function Es({ messageStatus: e, common: t }) {
1358
1345
  </span>
1359
1346
  ` : e === "sent" ? S`<span className="t-status-icon">✓</span>` : e === "everyoneRead" ? S`<span className="t-status-icon">✓✓</span>` : null;
1360
1347
  }
1361
- const ls = { attach: function({ className: e }) {
1348
+ const Es = { attach: function({ className: e }) {
1362
1349
  return S`
1363
1350
  <svg
1364
1351
  className=${e}
@@ -2063,10 +2050,10 @@ function Ht({ className: e }) {
2063
2050
  </svg>
2064
2051
  `;
2065
2052
  }
2066
- function _s({ message: e, common: t }) {
2053
+ function ls({ message: e, common: t }) {
2067
2054
  var r;
2068
2055
  const n = e.content[0], { theme: a, t: i } = t, { Icon: s } = a;
2069
- if (n.type === "text") return S`<${hn} block=${n} nonInteractive />`;
2056
+ if (n.type === "text") return S`<${pn} block=${n} nonInteractive />`;
2070
2057
  if (n.type === "location") return S`<${s} type="location" common=${t} /> ${i.LOCATION}`;
2071
2058
  if (n.type === "file") {
2072
2059
  if (n.subtype === "image") return S`
@@ -2083,7 +2070,7 @@ function _s({ message: e, common: t }) {
2083
2070
  `;
2084
2071
  if (n.subtype === "voice") return S`
2085
2072
  <${s} type="microphone" common=${t} />
2086
- ${i.VOICE_MESSAGE} (${Mn((r = n.duration) != null ? r : 0)})
2073
+ ${i.VOICE_MESSAGE} (${fn((r = n.duration) != null ? r : 0)})
2087
2074
  `;
2088
2075
  if (n.subtype === void 0) return S`
2089
2076
  <${s} type="attachment" common=${t} />
@@ -2092,7 +2079,7 @@ function _s({ message: e, common: t }) {
2092
2079
  }
2093
2080
  return null;
2094
2081
  }
2095
- function cs({ conversation: e }) {
2082
+ function _s({ conversation: e }) {
2096
2083
  const { isUnread: t, unreadMessageCount: n } = e;
2097
2084
  return t ? n === 0 ? S`<div className="t-unread-generic-dot" />` : n > 999 ? S`
2098
2085
  <div className="t-unread-dot">
@@ -2143,7 +2130,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2143
2130
  </div>
2144
2131
 
2145
2132
  <div className="t-info">
2146
- <${os} ...${e} />
2133
+ <${rs} ...${e} />
2147
2134
  </div>
2148
2135
  </div>
2149
2136
  </div>
@@ -2152,7 +2139,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2152
2139
  }, CompactMessageContent: function(e) {
2153
2140
  return S`
2154
2141
  <span className="t-theme-compact-message-content">
2155
- <${_s} ...${e} />
2142
+ <${ls} ...${e} />
2156
2143
  </span>
2157
2144
  `;
2158
2145
  }, ConversationImage: function({ common: e, conversation: t, participants: n }) {
@@ -2170,8 +2157,8 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2170
2157
  <${r} participants=${n} common=${e} />
2171
2158
  `;
2172
2159
  }, ConversationListItem: function(e) {
2173
- var R, L, m;
2174
- const { common: t, conversation: n, participants: a, isSelected: i } = e, { currentUser: s, theme: r, conversationList: o } = t, { TimeAgo: E, ConversationImage: l, CompactMessageContent: _ } = r, { lastMessage: O } = n, I = a.length >= 3, T = (R = O == null ? void 0 : O.sender) == null ? void 0 : R.name, u = (L = O == null ? void 0 : O.editedAt) != null ? L : O == null ? void 0 : O.createdAt, d = a.filter((C) => C.user.id !== s.id), N = d.length ? d : a, p = (m = n.subject) != null ? m : N.map((C) => C.user.name).join(", ");
2160
+ var R, L, p;
2161
+ const { common: t, conversation: n, participants: a, isSelected: i } = e, { currentUser: s, theme: r, conversationList: o } = t, { TimeAgo: E, ConversationImage: l, CompactMessageContent: _ } = r, { lastMessage: c } = n, I = a.length >= 3, T = (R = c == null ? void 0 : c.sender) == null ? void 0 : R.name, u = (L = c == null ? void 0 : c.editedAt) != null ? L : c == null ? void 0 : c.createdAt, d = a.filter((C) => C.user.id !== s.id), N = d.length ? d : a, m = (p = n.subject) != null ? p : N.map((C) => C.user.name).join(", ");
2175
2162
  return S`
2176
2163
  <div
2177
2164
  className="t-theme-conversation-list-item"
@@ -2187,7 +2174,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2187
2174
 
2188
2175
  <div className="t-inner">
2189
2176
  <div className="t-header">
2190
- <div className="t-conversation-name">${p}</div>
2177
+ <div className="t-conversation-name">${m}</div>
2191
2178
 
2192
2179
  ${u && S`
2193
2180
  <span className="t-timestamp">
@@ -2197,18 +2184,18 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2197
2184
  </div>
2198
2185
 
2199
2186
  <div className="t-body">
2200
- ${O && S`
2187
+ ${c && S`
2201
2188
  <div className="t-message">
2202
2189
  ${I && T && S`<span className="t-message-sender">${T}:</span>`}
2203
2190
 
2204
2191
  <${_}
2205
- message=${O}
2192
+ message=${c}
2206
2193
  common=${t}
2207
2194
  />
2208
2195
  </div>
2209
2196
  `}
2210
2197
 
2211
- <${cs} ...${e} />
2198
+ <${_s} ...${e} />
2212
2199
  </div>
2213
2200
  </div>
2214
2201
  </div>
@@ -2279,7 +2266,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2279
2266
  </div>
2280
2267
  `;
2281
2268
  }, Icon: function({ className: e = "", type: t }) {
2282
- return S`<${ls[t]} className=${`t-theme-icon ${e}`} />`;
2269
+ return S`<${Es[t]} className=${`t-theme-icon ${e}`} />`;
2283
2270
  }, ImageBlock: function({ block: e, downloadUrl: t, common: n }) {
2284
2271
  const { Icon: a } = n.theme, i = { "--img-w": e.width || 1, "--img-h": e.height || 1 };
2285
2272
  return S`
@@ -2303,7 +2290,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2303
2290
  </div>
2304
2291
  `;
2305
2292
  }, LocationBlock: function({ block: e }) {
2306
- const { imageUrl: t, linkUrl: n } = fn(e);
2293
+ const { imageUrl: t, linkUrl: n } = kn(e);
2307
2294
  return S`
2308
2295
  <div className="t-theme-location-block">
2309
2296
  <a
@@ -2321,12 +2308,12 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2321
2308
  </div>
2322
2309
  `;
2323
2310
  }, Message: function(e) {
2324
- const { message: t, messageStatus: n, permissions: a, common: i } = e, { currentUser: s, theme: r, participants: o, chatbox: E, t: l } = i, { Avatar: _, Icon: O, ReferencedMessage: I, TimeAgo: T, MessageActionMenu: u } = r, d = o.length >= 3, N = t.sender, p = (N == null ? void 0 : N.id) !== s.id && d, R = t.referencedMessage, L = n !== "sending" && (a.canReplyToMessage || a.canDeleteMessage);
2325
- let m;
2326
- return m = N ? N.id === s.id ? "currentUser" : "other" : "system", S`
2311
+ const { message: t, messageStatus: n, permissions: a, common: i } = e, { currentUser: s, theme: r, participants: o, chatbox: E, t: l } = i, { Avatar: _, Icon: c, ReferencedMessage: I, TimeAgo: T, MessageActionMenu: u } = r, d = o.length >= 3, N = t.sender, m = (N == null ? void 0 : N.id) !== s.id && d, R = t.referencedMessage, L = n !== "sending" && (a.canReplyToMessage || a.canDeleteMessage);
2312
+ let p;
2313
+ return p = N ? N.id === s.id ? "currentUser" : "other" : "system", S`
2327
2314
  <div
2328
2315
  className="t-theme-message"
2329
- t-sender=${m}
2316
+ t-sender=${p}
2330
2317
  t-message-id=${t.id}
2331
2318
  >
2332
2319
  <div className="t-message-row">
@@ -2337,9 +2324,9 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2337
2324
 
2338
2325
  <div className="t-message-body">
2339
2326
  <!-- in group chats, show the message sender name in a random color -->
2340
- ${N && p && S`<div
2327
+ ${N && m && S`<div
2341
2328
  className="t-message-sender-name"
2342
- style=${{ color: ts(N.id) }}
2329
+ style=${{ color: es(N.id) }}
2343
2330
  >
2344
2331
  ${N.name}
2345
2332
  </div>`}
@@ -2348,7 +2335,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2348
2335
  common=${i}
2349
2336
  />`}
2350
2337
 
2351
- <${xi}
2338
+ <${Vi}
2352
2339
  common=${i}
2353
2340
  message=${t}
2354
2341
  messageStatus=${n}
@@ -2356,7 +2343,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2356
2343
 
2357
2344
  <div className="t-message-status">
2358
2345
  <${T} timestamp=${t.createdAt} common=${i} />
2359
- ${m == "currentUser" && S`<${Es} ...${e} />`}
2346
+ ${p == "currentUser" && S`<${os} ...${e} />`}
2360
2347
  </div>
2361
2348
  </div>
2362
2349
 
@@ -2368,17 +2355,17 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2368
2355
  className="t-message-action-menu-button"
2369
2356
  aria-label="Message actions"
2370
2357
  >
2371
- <${O} className="t-action-menu-icon" type="horizontalDots" />
2358
+ <${c} className="t-action-menu-icon" type="horizontalDots" />
2372
2359
  </${Re}>
2373
2360
  `}
2374
2361
  ${a.canAddReaction && S`
2375
2362
  <${Re}
2376
2363
  className="t-add-reaction-button"
2377
- popoverComponent=${zi}
2364
+ popoverComponent=${Gi}
2378
2365
  popoverProps=${{ messageId: t.id, colorScheme: "light", className: "t-reaction-picker" }}
2379
2366
  aria-label="Add reaction"
2380
2367
  >
2381
- <${O} type="addEmoji" />
2368
+ <${c} type="addEmoji" />
2382
2369
  </${Re}>
2383
2370
  `}
2384
2371
  </div>
@@ -2433,7 +2420,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2433
2420
  <div className="t-line-segment" />
2434
2421
  </div>
2435
2422
  ${a && S`
2436
- <span className="t-day-marker">${is(t, s)}</span>
2423
+ <span className="t-day-marker">${as(t, s)}</span>
2437
2424
  `}
2438
2425
  <div className="t-line" t-side="right">
2439
2426
  <div className="t-line-segment" />
@@ -2444,23 +2431,26 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2444
2431
  </div>
2445
2432
  `;
2446
2433
  }, MessageField: function(e) {
2447
- const { common: t, referencedMessage: n, editor: a, permissions: i, editMessageId: s } = e, { chatbox: r, device: o, conversation: E, t: l, theme: _ } = t, { ReplyBar: O, Icon: I } = _, T = s ? "edit" : "send", u = T === "edit" && !a.atTextLimit && a.characterCount > 0, d = T === "send" && a.isEmpty && i.canShareLocation, N = T === "send" && a.isEmpty && i.canShareFile, p = T === "send" && o.supportsEmojiPicker && !o.isMobile;
2434
+ const { common: t, referencedMessage: n, editor: a, permissions: i, editMessageId: s } = e, { chatbox: r, device: o, conversation: E, t: l, theme: _ } = t, { ReplyBar: c, Icon: I } = _, T = s ? "edit" : "send", u = T === "edit" && !a.atTextLimit && a.characterCount > 0, d = T === "send" && a.isEmpty && i.canShareLocation, N = T === "send" && a.isEmpty && i.canShareFile, m = T === "send" && o.supportsEmojiPicker && !o.isMobile;
2448
2435
  return S`
2449
2436
  <div className="t-theme-message-field" t-mode=${T}>
2450
2437
  ${a.showEmojiPicker && S`
2451
2438
  <div className="t-emoji-picker-wrapper">
2452
- <${Cn} colorScheme="light" />
2439
+ <${Dn} colorScheme="light" />
2453
2440
  </div>
2454
2441
  `}
2455
- <${Wi} />
2456
- <${Qi} />
2442
+ <${Ki} />
2443
+ <${Zi} />
2457
2444
 
2458
- ${n && S`<${O}
2445
+ ${n && S`<${c}
2459
2446
  common=${t}
2460
2447
  referencedMessage=${n}
2461
2448
  />`}
2462
2449
 
2463
2450
  <div className="t-wrapper">
2451
+ ${a.atTextLimit && S`<div className="t-text-limit-indicator">
2452
+ ${l.ENTRYBOX_TEXT_LIMIT}
2453
+ </div>`}
2464
2454
  <div className="t-text-form">
2465
2455
  ${E.access === "Read" && S`
2466
2456
  <div className="t-readonly">
@@ -2469,7 +2459,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2469
2459
  `}
2470
2460
  ${E.access === "ReadWrite" && S`
2471
2461
  <div className="t-textbox-column">
2472
- <${fi} placeholder=${l.ENTRYBOX_PLACEHOLDER} />
2462
+ <${ki} placeholder=${l.ENTRYBOX_PLACEHOLDER} />
2473
2463
 
2474
2464
  <div className="t-button-overlay">
2475
2465
  ${d && S`<button
@@ -2490,7 +2480,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2490
2480
  >
2491
2481
  <${I} type="attach" common=${t} />
2492
2482
  </button>`}
2493
- ${p && S`<button
2483
+ ${m && S`<button
2494
2484
  className="t-emoji-button"
2495
2485
  t-kind="icon-button"
2496
2486
  aria-label="Insert an emoji"
@@ -2610,11 +2600,11 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2610
2600
  }, TextBlock: function({ block: e }) {
2611
2601
  return S`
2612
2602
  <div className="t-theme-text-block">
2613
- <${hn} block=${e} />
2603
+ <${pn} block=${e} />
2614
2604
  </div>
2615
2605
  `;
2616
2606
  }, TimeAgo: function({ timestamp: e, common: t }) {
2617
- const { t: n } = t, a = new Date(e).toLocaleString(n.locale, { weekday: "short", year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric" }), i = ns(e, n);
2607
+ const { t: n } = t, a = new Date(e).toLocaleString(n.locale, { weekday: "short", year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric" }), i = ts(e, n);
2618
2608
  return S`
2619
2609
  <span className="t-theme-time-ago">
2620
2610
  <span
@@ -2727,10 +2717,10 @@ const Bt = (e, t) => (n) => {
2727
2717
  const s = i[2], r = n.pos - s.length, o = n.pos;
2728
2718
  if (!n.doc.rangeHasMark(r, o, t.marks.literal))
2729
2719
  return { range: { from: r, to: o }, text: s };
2730
- }, As = /(^|\s)(:[^:\s]+:?)$/, Os = /(^|\s)(@[^@]*)$/;
2731
- class Pn {
2720
+ }, cs = /(^|\s)(:[^:\s]+:?)$/, As = /(^|\s)(@[^@]*)$/;
2721
+ class Mn {
2732
2722
  constructor(t, n, a) {
2733
- this.state$ = t, this.device$ = n, this.userPermissions$ = a, this.currentDoc = Be.EMPTY, this.maxLength = 1e3, this.markAsTyping = /* @__PURE__ */ function(i, s) {
2723
+ this.state$ = t, this.device$ = n, this.userPermissions$ = a, this.currentDoc = ye.EMPTY, this.maxLength = 1e4, this.markAsTyping = /* @__PURE__ */ function(i, s) {
2734
2724
  let r = !1;
2735
2725
  return (...o) => {
2736
2726
  if (!r) return r = !0, setTimeout(() => {
@@ -2749,21 +2739,21 @@ class Pn {
2749
2739
  this.editorView = t;
2750
2740
  }
2751
2741
  emojiSuggesterPlugin() {
2752
- if (this.device$.peek().supportsEmojiPicker) return mt({ debug: !1, matcher: Bt(As, y), onEnter: (t) => this.suggestEmoji(t.text, t.range), onChange: (t) => this.suggestEmoji(t.text, t.range), onExit: () => this.onExitSuggester(), onKeyDown: ({ event: t }) => {
2742
+ if (this.device$.peek().supportsEmojiPicker) return mt({ debug: !1, matcher: Bt(cs, w), onEnter: (t) => this.suggestEmoji(t.text, t.range), onChange: (t) => this.suggestEmoji(t.text, t.range), onExit: () => this.onExitSuggester(), onKeyDown: ({ event: t }) => {
2753
2743
  var n, a, i;
2754
2744
  return (i = (a = (n = this._suggesterKeydownHandlers).emoji) == null ? void 0 : a.call(n, t.key)) != null ? i : !1;
2755
2745
  } });
2756
2746
  }
2757
2747
  mentionsPlugin() {
2758
2748
  const t = this.userPermissions$.peek();
2759
- if (M.defined(t), t.canMention) return mt({ debug: !1, matcher: Bt(Os, y), onEnter: (n) => this.suggestMention(n.text, n.range), onChange: (n) => this.suggestMention(n.text, n.range), onExit: () => this.onExitSuggester(), onKeyDown: ({ event: n }) => {
2749
+ if (P.defined(t), t.canMention) return mt({ debug: !1, matcher: Bt(As, w), onEnter: (n) => this.suggestMention(n.text, n.range), onChange: (n) => this.suggestMention(n.text, n.range), onExit: () => this.onExitSuggester(), onKeyDown: ({ event: n }) => {
2760
2750
  var a, i, s;
2761
2751
  return (s = (i = (a = this._suggesterKeydownHandlers).mention) == null ? void 0 : i.call(a, n.key)) != null ? s : !1;
2762
2752
  } });
2763
2753
  }
2764
2754
  closeSuggester() {
2765
- M.defined(this._suggestionRange), function(t, n) {
2766
- const { from: a, to: i } = n, s = t.state.tr.addMark(a, i, y.marks.literal.create());
2755
+ P.defined(this._suggestionRange), function(t, n) {
2756
+ const { from: a, to: i } = n, s = t.state.tr.addMark(a, i, w.marks.literal.create());
2767
2757
  t.dispatch(s);
2768
2758
  }(this.editorView, this._suggestionRange);
2769
2759
  }
@@ -2780,7 +2770,7 @@ class Pn {
2780
2770
  t.length < 1 || (this._suggestionRange = n, this.state$.suggestMentionQuery.set(t));
2781
2771
  }
2782
2772
  onPasteImage(t) {
2783
- M.defined(this.uploadFile), this.uploadFile(t);
2773
+ P.defined(this.uploadFile), this.uploadFile(t);
2784
2774
  }
2785
2775
  onChange(t) {
2786
2776
  this.currentDoc = t;
@@ -2790,17 +2780,17 @@ class Pn {
2790
2780
  setMaxLength(t) {
2791
2781
  this.maxLength = t;
2792
2782
  }
2793
- focus() {
2794
- var t;
2795
- (t = this.editorView) == null || t.dom.focus();
2783
+ focus({ skipProseMirrorStuff: t } = { skipProseMirrorStuff: !1 }) {
2784
+ var n, a;
2785
+ t ? (n = this.editorView) == null || n.dom.focus() : (a = this.editorView) == null || a.focus();
2796
2786
  }
2797
2787
  setText(t) {
2798
2788
  this.editorView && function(n, a) {
2799
2789
  const i = n.state.doc.content.size, s = a.split(/(<!!(?:mention|customemoji):.*?>)/g).filter((o) => o || o.length).map((o) => {
2800
2790
  const [E, l, _] = o.match(/<!!mention:(.*)\|(.*)>/) || [null];
2801
2791
  if (E && l && _) return ht(l, _);
2802
- const [O, I] = o.match(/<!!customemoji:(.*?)>/) || [null];
2803
- return O && I ? pt(I) : y.text(o);
2792
+ const [c, I] = o.match(/<!!customemoji:(.*?)>/) || [null];
2793
+ return c && I ? pt(I) : w.text(o);
2804
2794
  }), r = n.state.tr.replaceWith(0, i, s);
2805
2795
  n.dispatch(r);
2806
2796
  }(this.editorView, t);
@@ -2821,7 +2811,7 @@ class Pn {
2821
2811
  }(this.editorView);
2822
2812
  }
2823
2813
  selectEmoji(t) {
2824
- M.defined(this.editorView), function(n, a, i) {
2814
+ P.defined(this.editorView), function(n, a, i) {
2825
2815
  const s = pt(a);
2826
2816
  let r;
2827
2817
  if (i) {
@@ -2832,7 +2822,7 @@ class Pn {
2832
2822
  }(this.editorView, t, this._suggestionRange), this.focus();
2833
2823
  }
2834
2824
  selectMention(t) {
2835
- M.defined(this.editorView), function(n, a, i) {
2825
+ P.defined(this.editorView), function(n, a, i) {
2836
2826
  const s = ht(a.id, a.name);
2837
2827
  let r = n.state.tr;
2838
2828
  if (i) {
@@ -2843,16 +2833,16 @@ class Pn {
2843
2833
  }(this.editorView, t, this._suggestionRange), this.focus();
2844
2834
  }
2845
2835
  }
2846
- function Un(e) {
2847
- const t = G(), n = f(), a = Te(), i = k(n.referencedMessage$), s = k(n.state$.userPermissions), r = ge(), { sendMessage: o } = la(), E = k(r.state$);
2836
+ function Pn(e) {
2837
+ const t = G(), n = f(), a = Te(), i = k(n.referencedMessage$), s = k(n.state$.userPermissions), r = ge(), { sendMessage: o } = Ea(), E = k(r.state$);
2848
2838
  let l;
2849
2839
  return l = e.editMessageId === void 0 ? new bt(E, o, e.attachFile, e.shareLocation, r.toggleEmojiPicker) : new bt(E, e.onEditMessage, () => {
2850
2840
  }, () => {
2851
2841
  }, () => {
2852
- }), A(zt.Provider, { value: { onClose: () => r.toggleEmojiPicker(!1), onEmojiSelected: (_) => r.selectEmoji(_) }, children: A(t.MessageField, { common: a, referencedMessage: i, permissions: s, editor: l, editMessageId: e.editMessageId }) });
2842
+ }), O(zt.Provider, { value: { onClose: () => r.toggleEmojiPicker(!1), onEmojiSelected: (_) => r.selectEmoji(_) }, children: O(t.MessageField, { common: a, referencedMessage: i, permissions: s, editor: l, editMessageId: e.editMessageId }) });
2853
2843
  }
2854
- function Ts({ message: e }) {
2855
- const t = f(), n = Oe(), a = k(t.state$.editingMessageId), i = Y(() => z(e.content[0].children), [e]), s = ee({ isEmpty: i.length === 0, isTyping: !1, atTextLimit: !1, characterCount: i.length, showEmojiPicker: !1, suggestEmojiQuery: void 0, suggestMentionQuery: void 0 }), r = Y(() => new Pn(s, t.device$, t.state$.userPermissions), [s, t]), o = H(async () => {
2844
+ function Os({ message: e }) {
2845
+ const t = f(), n = Oe(), a = k(t.state$.editingMessageId), i = H(() => z(e.content[0].children), [e]), s = ee({ isEmpty: i.length === 0, isTyping: !1, atTextLimit: !1, characterCount: i.length, showEmojiPicker: !1, suggestEmojiQuery: void 0, suggestMentionQuery: void 0 }), r = H(() => new Mn(s, t.device$, t.state$.userPermissions), [s, t]), o = B(async () => {
2856
2846
  const E = r.state$;
2857
2847
  if (E.isEmpty.peek() || E.atTextLimit.peek()) return;
2858
2848
  const l = r.getText();
@@ -2862,60 +2852,72 @@ function Ts({ message: e }) {
2862
2852
  r.onEnter = o;
2863
2853
  }, [r, o]), v(() => {
2864
2854
  r.focus(), r.setText(z(e.content[0].children, !0));
2865
- }, [r, e]), A(Kt.Provider, { value: r, children: A(Un, { editMessageId: a, onEditMessage: o }) });
2855
+ }, [r, e]), O(Kt.Provider, { value: r, children: O(Pn, { editMessageId: a, onEditMessage: o }) });
2866
2856
  }
2867
- function us() {
2857
+ function Ts() {
2868
2858
  const e = G(), t = Te();
2869
- return A(e.MessageListFooter, { common: t });
2859
+ return O(e.MessageListFooter, { common: t });
2870
2860
  }
2871
- function ds(e) {
2861
+ function us(e) {
2872
2862
  const t = G(), n = Te();
2873
- return A(t.MessageDivider, { common: n, ...e });
2863
+ return O(t.MessageDivider, { common: n, ...e });
2874
2864
  }
2875
- function Ss({ message: e }) {
2876
- const t = G(), n = f(), a = Te(), [i, s] = B("sent");
2865
+ function ds({ message: e }) {
2866
+ const t = G(), n = f(), a = Te(), [i, s] = b("sent");
2877
2867
  return _e((r) => {
2878
2868
  if (e.id.startsWith("ephemeral-")) return s("sending");
2879
2869
  const o = n.state$.currentConversation.everyoneReadUntil.get();
2880
2870
  return o !== void 0 ? e.createdAt <= o ? s("everyoneRead") : s("sent") : void 0;
2881
- }), A(t.Message, { common: a, message: e, messageStatus: i, permissions: n.messagePermissions$(e).get() });
2871
+ }), O(t.Message, { common: a, message: e, messageStatus: i, permissions: n.messagePermissions$(e).get() });
2882
2872
  }
2883
- function Is({ extConversationId: e }) {
2884
- const t = Ce(), n = f(), a = Oe(), i = b(!0), s = b(null);
2873
+ function Ss({ extConversationId: e }) {
2874
+ const t = Ce(), n = f(), a = Oe(), i = y(!0), s = y(null);
2885
2875
  Ae(() => {
2886
2876
  i.current = s.current.scrollTop > -30;
2887
2877
  }), v(() => {
2888
2878
  i.current && (s.current.scrollTop = 0);
2889
2879
  }), v(() => {
2890
- const E = new IntersectionObserver((l) => n.state$.visibility.isInView.set(l[0].isIntersecting), { threshold: 0.9 });
2891
- return E.observe(s.current), () => E.disconnect();
2880
+ const _ = new IntersectionObserver((c) => n.state$.visibility.isInView.set(c[0].isIntersecting), { threshold: 0.9 });
2881
+ return _.observe(s.current), () => _.disconnect();
2892
2882
  }, [n]), v(() => {
2893
- const E = () => n.state$.visibility.tabFocused.set(!document.hidden);
2894
- return document.addEventListener("visibilitychange", E), () => document.removeEventListener("visibilitychange", E);
2895
- }, [n]), _e((E) => {
2883
+ const _ = () => n.state$.visibility.tabFocused.set(!document.hidden);
2884
+ return document.addEventListener("visibilitychange", _), () => document.removeEventListener("visibilitychange", _);
2885
+ }, [n]);
2886
+ const [r, o] = b(!1);
2887
+ v(() => {
2888
+ o(!1);
2889
+ const _ = n.state$.currentConversation.peek();
2890
+ (_ == null ? void 0 : _.isUnread) === !0 && t.conversation(e).markAsRead().catch((c) => {
2891
+ be.warn("Could not mark conversation as read", c);
2892
+ });
2893
+ }, [e, t, n]), _e((_) => {
2896
2894
  if (!s.current) return;
2897
- const l = n.state$.visibility.tabFocused.get(), _ = n.state$.visibility.isInView.get(), O = function(T) {
2898
- if (T.checkVisibility) return T.checkVisibility({ contentVisibilityAuto: !0, opacityProperty: !0, visibilityProperty: !0, checkOpacity: !0, checkVisibilityCSS: !0 });
2895
+ const c = n.state$.currentConversation.get(), I = !(!c || !c.isUnread), T = c == null ? void 0 : c.unreadMessageCount;
2896
+ if (I && T === 0) return void o(!0);
2897
+ if (I && r) return;
2898
+ if (!I) return void o(!1);
2899
+ const u = n.state$.visibility.tabFocused.get(), d = n.state$.visibility.isInView.get(), N = function(m) {
2900
+ if (m.checkVisibility) return m.checkVisibility({ contentVisibilityAuto: !0, opacityProperty: !0, visibilityProperty: !0, checkOpacity: !0, checkVisibilityCSS: !0 });
2899
2901
  {
2900
- const u = window.getComputedStyle(T), d = u.visibility, N = u.opacity;
2901
- return !(T.getClientRects().length === 0 || d === "hidden" || N === "0");
2902
+ const R = window.getComputedStyle(m), L = R.visibility, p = R.opacity;
2903
+ return !(m.getClientRects().length === 0 || L === "hidden" || p === "0");
2902
2904
  }
2903
- }(s.current), I = n.state$.currentConversation.get();
2904
- return I && I.isUnread && l && _ && O ? t.conversation(I.id).markAsRead() : void 0;
2905
+ }(s.current);
2906
+ return u && d && N ? t.conversation(c.id).markAsRead() : void 0;
2905
2907
  });
2906
- const r = H((E) => {
2907
- const l = E.currentTarget;
2908
- l.scrollHeight - l.clientHeight + l.scrollTop < 90 && n.messageSubscription && n.messageSubscription.loadMore(10);
2909
- }, [n.messageSubscription]), o = k(n.state$.typing.child(e));
2910
- return x("div", { className: "t-message-list", ref: s, "t-menu-boundary": "", onScroll: r, children: [o && A(us, {}), A(Je, { each: n.chatItems$, children: (E) => A("div", { className: "t-message-group", children: A(Je, { each: E, item: Ns, itemProps: { controller: a, extConversationId: e } }) }) })] });
2908
+ const E = B((_) => {
2909
+ const c = _.currentTarget;
2910
+ c.scrollHeight - c.clientHeight + c.scrollTop < 90 && n.messageSubscription && n.messageSubscription.loadMore(10);
2911
+ }, [n.messageSubscription]), l = k(n.state$.typing.child(e));
2912
+ return x("div", { className: "t-message-list", ref: s, "t-menu-boundary": "", onScroll: E, children: [l && O(Ts, {}), O(Ze, { each: n.chatItems$, children: (_) => O("div", { className: "t-message-group", children: O(Ze, { each: _, item: Is, itemProps: { controller: a, extConversationId: e } }) }) })] });
2911
2913
  }
2912
- function Ns({ item$: e }) {
2914
+ function Is({ item$: e }) {
2913
2915
  const t = f(), n = k(e), a = k(t.state$.editingMessageId);
2914
- return n instanceof Qe ? A(ds, { timestamp: n.timestamp, isReadMarker: n.isReadMarker, isDayMarker: n.isDayMarker }) : a === n.id ? A(Ts, { message: n }) : A(Ss, { message: n });
2916
+ return n instanceof Qe ? O(us, { timestamp: n.timestamp, isReadMarker: n.isReadMarker, isDayMarker: n.isDayMarker }) : a === n.id ? O(Os, { message: n }) : O(ds, { message: n });
2915
2917
  }
2916
- const Rs = /* @__PURE__ */ new Set(["ByV39eoc", "B1FxElnd", "aW4c49tW", "qGfuGtx", "SbERe5ee", "ilaVEa15", "FOlWOSaH", "dao5gGmT", "DLUgAhzL", "fqXFumr6", "FtiWHMYT", "66iWOyWt", "1375amYi", "mWbJgzpt", "jO7GqAvL", "SkFIKxo5", "2z4ILc3y", "aDr8oPL1", "Hku1c4Pt"]);
2917
- function Fe({ appId: e, chatboxState: t }) {
2918
- const n = e.charAt(0) === "t" || Rs.has(e);
2918
+ const Ns = /* @__PURE__ */ new Set(["ByV39eoc", "B1FxElnd", "aW4c49tW", "qGfuGtx", "SbERe5ee", "ilaVEa15", "FOlWOSaH", "dao5gGmT", "DLUgAhzL", "fqXFumr6", "FtiWHMYT", "66iWOyWt", "1375amYi", "mWbJgzpt", "jO7GqAvL", "SkFIKxo5", "2z4ILc3y", "aDr8oPL1", "Hku1c4Pt"]);
2919
+ function Ve({ appId: e, chatboxState: t }) {
2920
+ const n = e.charAt(0) === "t" || Ns.has(e);
2919
2921
  return v(() => {
2920
2922
  switch (t.type) {
2921
2923
  case "auth-failed":
@@ -2933,28 +2935,28 @@ function Fe({ appId: e, chatboxState: t }) {
2933
2935
  case "server-error":
2934
2936
  break;
2935
2937
  default:
2936
- M.never(t);
2938
+ P.never(t);
2937
2939
  }
2938
- }, [t]), x("div", { className: "t-panel t-error-panel", children: [A("span", { className: "t-heading", children: "Something went wrong." }), A("p", { children: "Please reload the page and try again." }), n ? x("p", { style: { fontStyle: "italic" }, children: ["Developer note: check your browser's developer tools console for messages that may help solve the problem.", A("br", {}), A("small", { children: "This message only shows up in test mode." })] }) : A("p", { children: "If things keep not working, do not hesitate to get in touch with us." })] });
2940
+ }, [t]), x("div", { className: "t-panel t-error-panel", children: [O("span", { className: "t-heading", children: "Something went wrong." }), O("p", { children: "Please reload the page and try again." }), n ? x("p", { style: { fontStyle: "italic" }, children: ["Developer note: check your browser's developer tools console for messages that may help solve the problem.", O("br", {}), O("small", { children: "This message only shows up in test mode." })] }) : O("p", { children: "If things keep not working, do not hesitate to get in touch with us." })] });
2939
2941
  }
2940
- function Ls() {
2942
+ function Rs() {
2941
2943
  const e = f(), t = k(e.t$);
2942
- return A("div", { className: "t-panel t-error-panel", children: A("span", { className: "t-heading", style: { fontStyle: "italic" }, children: t.CHAT_NOT_FOUND }) });
2944
+ return O("div", { className: "t-panel t-error-panel", children: O("span", { className: "t-heading", style: { fontStyle: "italic" }, children: t.CHAT_NOT_FOUND }) });
2943
2945
  }
2944
- function Hn() {
2945
- return A("div", { className: "t-panel t-loading-panel", children: A(rt, {}) });
2946
+ function Un() {
2947
+ return O("div", { className: "t-panel t-loading-panel", children: O(rt, {}) });
2946
2948
  }
2947
- function bn() {
2949
+ function Hn() {
2948
2950
  const e = f(), t = k(e.t$);
2949
- return x("div", { className: "t-panel t-error-panel", children: [A("span", { className: "t-heading", style: { fontStyle: "italic" }, children: t.AUTH_EXPIRED_OVERLAY_TITLE }), A("p", { children: t.AUTH_EXPIRED_OVERLAY_DESCRIPTION })] });
2951
+ return x("div", { className: "t-panel t-error-panel", children: [O("span", { className: "t-heading", style: { fontStyle: "italic" }, children: t.AUTH_EXPIRED_OVERLAY_TITLE }), O("p", { children: t.AUTH_EXPIRED_OVERLAY_DESCRIPTION })] });
2950
2952
  }
2951
- const ms = () => !0;
2952
- async function lt(e, t, { initialDelay: n, maxDelay: a, log: i, shouldRetry: s = ms }) {
2953
+ const Ls = () => !0;
2954
+ async function lt(e, t, { initialDelay: n, maxDelay: a, log: i, shouldRetry: s = Ls }) {
2953
2955
  return t().catch(async (r) => {
2954
2956
  if (i && i(`[TalkJS] Retries left: ${e}. Error: ${JSON.stringify(r)}.`), e === 0 || !await s(r)) throw r;
2955
2957
  const o = 1e3 * n * 1.2, E = a ? Math.min(1e3 * a, o) : o, l = E * (1 - (_ = 0.05) + 2 * Math.random() * _);
2956
- var _, O;
2957
- return (O = l, O <= 0 ? Promise.resolve() : new Promise((I) => setTimeout(I, O))).then(() => lt(e - 1, t, { initialDelay: l / 1e3, maxDelay: a, log: i, shouldRetry: s }));
2958
+ var _, c;
2959
+ return (c = l, c <= 0 ? Promise.resolve() : new Promise((I) => setTimeout(I, c))).then(() => lt(e - 1, t, { initialDelay: l / 1e3, maxDelay: a, log: i, shouldRetry: s }));
2958
2960
  });
2959
2961
  }
2960
2962
  function he() {
@@ -2963,17 +2965,17 @@ function he() {
2963
2965
  });
2964
2966
  return e.promise = t, e;
2965
2967
  }
2966
- function ps(e, t, n) {
2967
- const { beforeBrowserPermissionPrompt: a, onMissingBrowserPermissionCallback: i } = Xn(Wt);
2968
- return H(async () => {
2968
+ function ms(e, t, n) {
2969
+ const { beforeBrowserPermissionPrompt: a, onMissingBrowserPermissionCallback: i } = xn(Wt);
2970
+ return B(async () => {
2969
2971
  function s(_) {
2970
2972
  _ === "denied" && i({ type: e });
2971
2973
  }
2972
2974
  if (!a || !await async function(_) {
2973
2975
  if (!("permissions" in navigator)) return !1;
2974
- const O = _;
2976
+ const c = _;
2975
2977
  try {
2976
- return (await navigator.permissions.query({ name: O })).state === "prompt";
2978
+ return (await navigator.permissions.query({ name: c })).state === "prompt";
2977
2979
  } catch (I) {
2978
2980
  return !1;
2979
2981
  }
@@ -2994,9 +2996,9 @@ function ps(e, t, n) {
2994
2996
  });
2995
2997
  }, [a, i, e, t, ...n]);
2996
2998
  }
2997
- function hs({ onClose: e }) {
2998
- const t = f(), n = Oe(), a = Ce(), [i, s] = B(null);
2999
- return { attachFile: H(async (o) => {
2999
+ function ps({ onClose: e }) {
3000
+ const t = f(), n = Oe(), a = Ce(), [i, s] = b(null);
3001
+ return { attachFile: B(async (o) => {
3000
3002
  try {
3001
3003
  if (o || (o = (await new Promise((u) => {
3002
3004
  const d = document.createElement("input");
@@ -3008,10 +3010,10 @@ function hs({ onClose: e }) {
3008
3010
  }))[0]), !o) return;
3009
3011
  const { uploadPromise: E, upload: l } = await async function(u, d) {
3010
3012
  const N = u.name;
3011
- if (function(m) {
3012
- return /\.(mp4|ts|mov|webm|ogv)$/i.test(m);
3013
+ if (function(p) {
3014
+ return /\.(mp4|ts|mov|webm|ogv)$/i.test(p);
3013
3015
  }(u.name)) {
3014
- const m = await We("video", u, (h) => ({ width: h.videoWidth, height: h.videoHeight, duration: h.duration, filename: N })), C = d.uploadVideo(u, m), D = function(h) {
3016
+ const p = await qe("video", u, (h) => ({ width: h.videoWidth, height: h.videoHeight, duration: h.duration, filename: N })), C = d.uploadVideo(u, p), D = function(h) {
3015
3017
  switch (h.name.split(".").pop()) {
3016
3018
  case "ts":
3017
3019
  return "video/MP2T";
@@ -3025,43 +3027,43 @@ function hs({ onClose: e }) {
3025
3027
  return "video/mp4";
3026
3028
  }
3027
3029
  }(u);
3028
- return { uploadPromise: C, upload: { type: "video", file: u, metadata: m, temporaryBlobUrl: URL.createObjectURL(new Blob([u], { type: D })) } };
3030
+ return { uploadPromise: C, upload: { type: "video", file: u, metadata: p, temporaryBlobUrl: URL.createObjectURL(new Blob([u], { type: D })) } };
3029
3031
  }
3030
- if (function(m) {
3031
- return /\.(mp3|m4a|ogg|oga|opus|flac|wav)$/i.test(m);
3032
+ if (function(p) {
3033
+ return /\.(mp3|m4a|ogg|oga|opus|flac|wav)$/i.test(p);
3032
3034
  }(u.name)) {
3033
- const m = await We("audio", u, (C) => ({ duration: C.duration, filename: N }));
3034
- return { uploadPromise: d.uploadAudio(u, m), upload: { type: "audio", file: u, metadata: m, temporaryBlobUrl: URL.createObjectURL(new Blob([u])) } };
3035
+ const p = await qe("audio", u, (C) => ({ duration: C.duration, filename: N }));
3036
+ return { uploadPromise: d.uploadAudio(u, p), upload: { type: "audio", file: u, metadata: p, temporaryBlobUrl: URL.createObjectURL(new Blob([u])) } };
3035
3037
  }
3036
- if (function(m) {
3037
- return /(gif|png|jpg|jpeg|svg|bmp|webp)$/i.test(m);
3038
+ if (function(p) {
3039
+ return /(gif|png|jpg|jpeg|svg|bmp|webp)$/i.test(p);
3038
3040
  }(u.name)) {
3039
- const m = await We("img", u, (C) => ({ width: C.naturalWidth, height: C.naturalHeight, filename: N }));
3040
- return { uploadPromise: d.uploadImage(u, m), upload: { type: "image", file: u, metadata: m, temporaryBlobUrl: URL.createObjectURL(new Blob([u])) } };
3041
+ const p = await qe("img", u, (C) => ({ width: C.naturalWidth, height: C.naturalHeight, filename: N }));
3042
+ return { uploadPromise: d.uploadImage(u, p), upload: { type: "image", file: u, metadata: p, temporaryBlobUrl: URL.createObjectURL(new Blob([u])) } };
3041
3043
  }
3042
- const p = { filename: N }, R = d.uploadFile(u, p), L = URL.createObjectURL(new Blob([u]));
3043
- return { uploadPromise: R, upload: { type: "file", file: u, metadata: p, temporaryBlobUrl: L } };
3044
+ const m = { filename: N }, R = d.uploadFile(u, m), L = URL.createObjectURL(new Blob([u]));
3045
+ return { uploadPromise: R, upload: { type: "file", file: u, metadata: m, temporaryBlobUrl: L } };
3044
3046
  }(o, a), _ = l.file.size + "," + l.file.name;
3045
3047
  t.state$.localFileBlobUrls.child(t.state$.extCurrentConversationId.peek()).child(_).set({ url: l.temporaryBlobUrl, fetching: !1 }), t.latestFileUpload = l;
3046
- const O = he(), I = { upload: l, closePreview: O.resolve, uploaded: !1 };
3048
+ const c = he(), I = { upload: l, closePreview: c.resolve, uploaded: !1 };
3047
3049
  let T;
3048
3050
  s(I);
3049
3051
  try {
3050
- T = await yt(E, O.promise), s({ ...I, uploaded: !0 });
3052
+ T = await yt(E, c.promise), s({ ...I, uploaded: !0 });
3051
3053
  } catch (u) {
3052
3054
  if (u === it) return;
3053
3055
  s((d) => ({ ...d, error: u.toString() }));
3054
3056
  }
3055
- if (await O.promise === "cancel") return;
3056
- M.defined(T), n.sendFileMessage({ fileToken: T });
3057
+ if (await c.promise === "cancel") return;
3058
+ P.defined(T), n.sendFileMessage({ fileToken: T });
3057
3059
  } finally {
3058
3060
  e(), s(null);
3059
3061
  }
3060
- }, [n, a, s, t, e]), shareLocation: ps("geolocation", async (o) => {
3062
+ }, [n, a, s, t, e]), shareLocation: ms("geolocation", async (o) => {
3061
3063
  try {
3062
3064
  const E = he(), l = { upload: { type: "location", location: void 0 }, uploaded: !1, closePreview: E.resolve };
3063
3065
  s(l);
3064
- const { permissionResult: _, location: O } = await yt(new Promise((I) => {
3066
+ const { permissionResult: _, location: c } = await yt(new Promise((I) => {
3065
3067
  navigator.geolocation.getCurrentPosition((T) => {
3066
3068
  const u = { latitude: T.coords.latitude, longitude: T.coords.longitude };
3067
3069
  I({ permissionResult: "granted", location: u });
@@ -3069,8 +3071,8 @@ function hs({ onClose: e }) {
3069
3071
  T.code === 1 ? I({ permissionResult: "denied" }) : I({ permissionResult: "granted" });
3070
3072
  });
3071
3073
  }), E.promise);
3072
- if (o(_), !O || (s({ ...l, upload: { type: "location", location: O }, uploaded: !0 }), await E.promise === "cancel")) return;
3073
- n.sendLocationMessage({ location: O });
3074
+ if (o(_), !c || (s({ ...l, upload: { type: "location", location: c }, uploaded: !0 }), await E.promise === "cancel")) return;
3075
+ n.sendLocationMessage({ location: c });
3074
3076
  } catch (E) {
3075
3077
  if (E === it) return;
3076
3078
  throw E;
@@ -3083,7 +3085,7 @@ const it = Symbol("cancelled");
3083
3085
  function yt(e, t) {
3084
3086
  return Promise.race([e, t.then(() => Promise.reject(it))]);
3085
3087
  }
3086
- async function We(e, t, n) {
3088
+ async function qe(e, t, n) {
3087
3089
  const a = document.createElement(e);
3088
3090
  try {
3089
3091
  return a.src = URL.createObjectURL(t), await new Promise((i, s) => {
@@ -3100,69 +3102,69 @@ async function We(e, t, n) {
3100
3102
  URL.revokeObjectURL(a.src);
3101
3103
  }
3102
3104
  }
3103
- function Bn({ children: e, className: t, ...n }) {
3104
- return A("div", { className: "t-attach-overlay " + t, ...n, children: e });
3105
+ function bn({ children: e, className: t, ...n }) {
3106
+ return O("div", { className: "t-attach-overlay " + t, ...n, children: e });
3105
3107
  }
3106
- function Ds({ uploadState: e }) {
3108
+ function hs({ uploadState: e }) {
3107
3109
  const t = e.error, n = e.uploaded;
3108
- je(() => e.closePreview("cancel"), ".t-upload-preview");
3109
- const a = b(null);
3110
+ Fe(() => e.closePreview("cancel"), ".t-upload-preview");
3111
+ const a = y(null);
3110
3112
  v(() => {
3111
3113
  n && a.current.focus();
3112
3114
  }, [n]);
3113
3115
  const i = f(), s = k(i.t$);
3114
- return A(Bn, { className: "t-upload-preview", children: x("div", { className: "t-preview", children: [A(Cs, { upload: e.upload, uploaded: n }), t !== void 0 && A("div", { className: "t-error-row", children: t }), x("div", { className: "t-send-row", children: [A("button", { className: "t-cancel", onClick: () => e.closePreview("cancel"), children: s.CANCEL }), t === void 0 && n && A("button", { className: "t-confirm-send test__confirm-upload-button", onClick: () => e.closePreview("send"), ref: a, children: s.SEND_BUTTON_TEXT })] })] }) });
3116
+ return O(bn, { className: "t-upload-preview", children: x("div", { className: "t-preview", children: [O(Ds, { upload: e.upload, uploaded: n }), t !== void 0 && O("div", { className: "t-error-row", children: t }), x("div", { className: "t-send-row", children: [O("button", { className: "t-cancel", onClick: () => e.closePreview("cancel"), children: s.CANCEL }), t === void 0 && n && O("button", { className: "t-confirm-send test__confirm-upload-button", onClick: () => e.closePreview("send"), ref: a, children: s.SEND_BUTTON_TEXT })] })] }) });
3115
3117
  }
3116
- function Cs({ upload: e, uploaded: t }) {
3118
+ function Ds({ upload: e, uploaded: t }) {
3117
3119
  const n = f(), a = k(n.t$);
3118
- return e.type !== "location" ? x(me, { children: [A(vs, { upload: e }), A(ks, { upload: e, uploaded: t, t: a })] }) : t ? A(gs, { location: e.location }) : A("div", { className: "t-loading", children: A(rt, {}) });
3120
+ return e.type !== "location" ? x(me, { children: [O(gs, { upload: e }), O(vs, { upload: e, uploaded: t, t: a })] }) : t ? O(Cs, { location: e.location }) : O("div", { className: "t-loading", children: O(rt, {}) });
3119
3121
  }
3120
- function gs({ location: e }) {
3121
- const { imageUrl: t, linkUrl: n } = fn(e), a = JSON.stringify(t);
3122
- return A("a", { href: n, target: "_blank", rel: "noreferrer", className: "t-location-upload-preview", style: { background: `url(${a}) center center / cover no-repeat` } });
3122
+ function Cs({ location: e }) {
3123
+ const { imageUrl: t, linkUrl: n } = kn(e), a = JSON.stringify(t);
3124
+ return O("a", { href: n, target: "_blank", rel: "noreferrer", className: "t-location-upload-preview", style: { background: `url(${a}) center center / cover no-repeat` } });
3123
3125
  }
3124
- const vs = oe.memo(function({ upload: e }) {
3126
+ const gs = oe.memo(function({ upload: e }) {
3125
3127
  let t = null;
3126
3128
  const n = e.file;
3127
3129
  if (e.type === "video") {
3128
3130
  const a = /[.]ts/i.test(n.name) ? "mpegts" : "native";
3129
- t = A("div", { className: "video-container", children: A(fs, { src: e.temporaryBlobUrl, videoType: a, playsInline: !0, controls: !0, preload: "auto" }) });
3131
+ t = O("div", { className: "video-container", children: O(ks, { src: e.temporaryBlobUrl, videoType: a, playsInline: !0, controls: !0, preload: "auto" }) });
3130
3132
  } else if (e.type === "image") {
3131
3133
  const a = URL.createObjectURL(n);
3132
- t = A("div", { className: "t-img-container", children: A("img", { src: a }) });
3134
+ t = O("div", { className: "t-img-container", children: O("img", { src: a }) });
3133
3135
  } else if (e.type === "audio") {
3134
3136
  const a = URL.createObjectURL(n);
3135
- t = A(et, { src: a, filename: n.name });
3137
+ t = O(et, { src: a, filename: n.name });
3136
3138
  }
3137
3139
  return t;
3138
- }), ks = oe.memo(function({ uploaded: e, upload: t, t: n }) {
3140
+ }), vs = oe.memo(function({ uploaded: e, upload: t, t: n }) {
3139
3141
  let a;
3140
3142
  a = e ? t.metadata.filename : n.UPLOAD_IN_PROGRESS;
3141
3143
  let i = "", s = "";
3142
- return t.type === "file" && (i = "is-file", e && (s = "file-block")), A("div", { className: `t-filename-row ${i}`, children: A("div", { className: s, children: a }) });
3144
+ return t.type === "file" && (i = "is-file", e && (s = "file-block")), O("div", { className: `t-filename-row ${i}`, children: O("div", { className: s, children: a }) });
3143
3145
  });
3144
- function fs(e) {
3146
+ function ks(e) {
3145
3147
  const { videoType: t, ...n } = e;
3146
- return A("video", { ...n });
3148
+ return O("video", { ...n });
3147
3149
  }
3148
- function Ms() {
3150
+ function fs() {
3149
3151
  const e = G(), t = f(), n = Te(), a = k(t.state$.isUserConnected), i = k(t.state$.userPermissions);
3150
- return A(e.ChatHeader, { common: n, isUserConnected: a, permissions: i });
3152
+ return O(e.ChatHeader, { common: n, isUserConnected: a, permissions: i });
3151
3153
  }
3152
- function Ps({ appId: e, chatHeaderVisible: t, messageFieldVisible: n }) {
3154
+ function Ms({ appId: e, chatHeaderVisible: t, messageFieldVisible: n }) {
3153
3155
  const a = ge(), i = function() {
3154
3156
  const T = f(), u = ee(() => {
3155
- const p = T.extUserId$.get(), R = T.errors$.get(), L = T.authTokenState$.get(), m = p && T.currentUser$.get(), C = T.state$.currentConversation.get(), D = T.state$.extCurrentConversationId.get(), h = D && T.state$.participants.child(D).get(), P = T.app$.get();
3156
- return T.device$.get(), R.serverError ? "server-error" : R.wrongAppId ? "wrong-app-id" : L === "loading" || L === "idle" ? "loading-token" : L === "invalid" ? "invalid-token" : L === "expired" ? "expired-token" : L === "valid" ? R.unknownUser ? "unknown-user" : R.unknownConversation ? "loading-conv-failed" : m && C && h && P ? "loaded" : "loading-data" : void M.unreachable();
3157
+ const m = T.extUserId$.get(), R = T.errors$.get(), L = T.authTokenState$.get(), p = m && T.currentUser$.get(), C = T.state$.currentConversation.get(), D = T.state$.extCurrentConversationId.get(), h = D && T.state$.participants.child(D).get(), M = T.app$.get();
3158
+ return T.device$.get(), R.serverError ? "server-error" : R.wrongAppId ? "wrong-app-id" : L === "loading" || L === "idle" ? "loading-token" : L === "invalid" ? "invalid-token" : L === "expired" ? "expired-token" : L === "valid" ? R.unknownUser ? "unknown-user" : R.unknownConversation ? "loading-conv-failed" : p && C && h && M ? "loaded" : "loading-data" : void P.unreachable();
3157
3159
  }), d = ee({ type: "loading" });
3158
- _e((p) => {
3159
- const R = u.get(), L = T.state$.extCurrentConversationId.peek(), m = T.extUserId$.peek(), C = T.appId$.peek();
3160
+ _e((m) => {
3161
+ const R = u.get(), L = T.state$.extCurrentConversationId.peek(), p = T.extUserId$.peek(), C = T.appId$.peek();
3160
3162
  function D(h) {
3161
3163
  d.set({ type: "loading" });
3162
- const P = setTimeout(() => {
3164
+ const M = setTimeout(() => {
3163
3165
  d.set(h);
3164
3166
  }, 5e3);
3165
- return () => clearTimeout(P);
3167
+ return () => clearTimeout(M);
3166
3168
  }
3167
3169
  switch (R) {
3168
3170
  case "invalid-token":
@@ -3182,44 +3184,44 @@ function Ps({ appId: e, chatHeaderVisible: t, messageFieldVisible: n }) {
3182
3184
  d.set({ type: "loading" });
3183
3185
  break;
3184
3186
  case "loaded":
3185
- d.set({ type: "loaded", conversationId: L, userId: m });
3187
+ d.set({ type: "loaded", conversationId: L, userId: p });
3186
3188
  break;
3187
3189
  case "loading-conv-failed":
3188
- p.onCleanup = D({ type: "inaccessible-conversation", userId: m, conversationId: L });
3190
+ m.onCleanup = D({ type: "inaccessible-conversation", userId: p, conversationId: L });
3189
3191
  break;
3190
3192
  case "unknown-user":
3191
- p.onCleanup = D({ type: "unknown-user", userId: m });
3193
+ m.onCleanup = D({ type: "unknown-user", userId: p });
3192
3194
  break;
3193
3195
  default:
3194
- M.never(R);
3196
+ P.never(R);
3195
3197
  }
3196
3198
  });
3197
3199
  const N = ee({ type: "loading" });
3198
- return _e((p) => {
3200
+ return _e((m) => {
3199
3201
  if (d.type.get() === "loading") {
3200
3202
  N.set({ type: "invisible-loading" });
3201
3203
  const R = setTimeout(() => {
3202
3204
  N.set({ type: "loading" });
3203
3205
  }, 1e3);
3204
- p.onCleanup = () => {
3206
+ m.onCleanup = () => {
3205
3207
  clearTimeout(R);
3206
3208
  };
3207
3209
  } else N.set(d.get());
3208
3210
  }), k(N);
3209
- }(), { attachFile: s, shareLocation: r, uploadState: o } = hs({ onClose: () => a.focus() });
3211
+ }(), { attachFile: s, shareLocation: r, uploadState: o } = ps({ onClose: () => a.focus() });
3210
3212
  v(() => {
3211
3213
  a.uploadFile = s;
3212
3214
  }, [a, s]);
3213
- const [E, l] = B(!1), _ = H((T) => {
3215
+ const [E, l] = b(!1), _ = B((T) => {
3214
3216
  s(T.dataTransfer.files[0]), T.preventDefault(), l(!1);
3215
- }, [s]), O = H((T) => {
3217
+ }, [s]), c = B((T) => {
3216
3218
  T.preventDefault(), l(!0);
3217
- }, []), I = H((T) => {
3219
+ }, []), I = B((T) => {
3218
3220
  T.preventDefault(), l(!1);
3219
3221
  }, []);
3220
- return i.type === "invisible-loading" ? A(me, {}) : i.type === "loading" ? A(Hn, {}) : i.type === "inaccessible-conversation" ? A(Ls, {}) : i.type === "unknown-user" || i.type === "auth-failed" || i.type === "wrong-app-id" || i.type === "server-error" || i.type === "unexpected-error" ? A(Fe, { appId: e, chatboxState: i }) : i.type == "expired-token" ? A(bn, {}) : i.type === "loaded" ? x("div", { className: "t-chatbox-content", onDragOver: O, onDragLeave: I, onDrop: _, children: [t && A(Ms, {}), A(Is, { extConversationId: i.conversationId }), n && A(Un, { attachFile: s, shareLocation: r }), o && A(Ds, { uploadState: o }), E && A(Bn, { className: "t-drop-overlay", children: A(be, { type: "attach" }) })] }) : A(me, {});
3222
+ return i.type === "invisible-loading" ? O(me, {}) : i.type === "loading" ? O(Un, {}) : i.type === "inaccessible-conversation" ? O(Rs, {}) : i.type === "unknown-user" || i.type === "auth-failed" || i.type === "wrong-app-id" || i.type === "server-error" || i.type === "unexpected-error" ? O(Ve, { appId: e, chatboxState: i }) : i.type == "expired-token" ? O(Hn, {}) : i.type === "loaded" ? x("div", { className: "t-chatbox-content", onDragOver: c, onDragLeave: I, onDrop: _, children: [t && O(fs, {}), O(Ss, { extConversationId: i.conversationId }), n && O(Pn, { attachFile: s, shareLocation: r }), o && O(hs, { uploadState: o }), E && O(bn, { className: "t-drop-overlay", children: O(Be, { type: "attach" }) })] }) : O(me, {});
3221
3223
  }
3222
- function Us(e, t) {
3224
+ function Ps(e, t) {
3223
3225
  return e.map((a) => function(i, s) {
3224
3226
  if (i.type === "text") return function(r, o) {
3225
3227
  const E = mn(o);
@@ -3276,11 +3278,11 @@ function Ue(e, t) {
3276
3278
  }
3277
3279
  }).join("");
3278
3280
  }
3279
- function yn() {
3281
+ function Bn() {
3280
3282
  const e = typeof window != "undefined" ? window.crypto : void 0, t = e ? () => e.getRandomValues(new Uint8Array(1))[0] : () => Math.floor(255 * Math.random());
3281
3283
  return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (n) => (n ^ t() & 15 >> n / 4).toString(16));
3282
3284
  }
3283
- class Hs {
3285
+ class Us {
3284
3286
  constructor(t, n, a, i, s) {
3285
3287
  this.store = t, this.talkSession = n, this.editorInternals = a, this.onSendMessage = i, this.onDeleteMessage = s;
3286
3288
  }
@@ -3299,15 +3301,15 @@ class Hs {
3299
3301
  await this.talkSession.conversation(a).message(t).edit(n);
3300
3302
  }
3301
3303
  setReferencedMessage(t) {
3302
- this.store.state$.referencedMessageId.set(t);
3304
+ this.store.state$.referencedMessageId.set(t), setTimeout(() => this.editorInternals.focus({ skipProseMirrorStuff: !0 }), 100);
3303
3305
  }
3304
3306
  async sendMessage(t) {
3305
3307
  const n = this.store.state$.extCurrentConversationId.peek(), a = await async function(r, o) {
3306
- var d, N, p, R, L;
3307
- const E = r.state$.extCurrentConversationId.peek(), l = r.state$.messages.child(E), _ = typeof o.referencedMessage == "string" ? l.lookup.child(o.referencedMessage).peek() : await ((N = (d = o.referencedMessage) == null ? void 0 : d.get()) != null ? N : null), O = _ && { ..._, type: "UserMessage", sender: _.sender, referencedMessageId: (R = (p = _.referencedMessage) == null ? void 0 : p.id) != null ? R : null };
3308
- O && delete O.referencedMessage;
3309
- const I = r.latestFileUpload, T = "content" in o ? [wt(I, o.content[0])] : [bs(o.text)], u = "text" in o ? o.text : Us(o.content.map((m) => wt(I, m)), {});
3310
- return { id: "ephemeral-" + yn(), type: "UserMessage", sender: r.currentUser$.peek(), createdAt: Date.now(), editedAt: null, custom: (L = o.custom) != null ? L : {}, origin: "web", referencedMessage: O, reactions: [], content: T, plaintext: u };
3308
+ var d, N, m, R, L;
3309
+ const E = r.state$.extCurrentConversationId.peek(), l = r.state$.messages.child(E), _ = typeof o.referencedMessage == "string" ? l.lookup.child(o.referencedMessage).peek() : await ((N = (d = o.referencedMessage) == null ? void 0 : d.get()) != null ? N : null), c = _ && { ..._, type: "UserMessage", sender: _.sender, referencedMessageId: (R = (m = _.referencedMessage) == null ? void 0 : m.id) != null ? R : null };
3310
+ c && delete c.referencedMessage;
3311
+ const I = r.latestFileUpload, T = "content" in o ? [wt(I, o.content[0])] : [Hs(o.text)], u = "text" in o ? o.text : Ps(o.content.map((p) => wt(I, p)), {});
3312
+ return { id: "ephemeral-" + Bn(), type: "UserMessage", sender: r.currentUser$.peek(), createdAt: Date.now(), editedAt: null, custom: (L = o.custom) != null ? L : {}, origin: "web", referencedMessage: c, reactions: [], content: T, plaintext: u };
3311
3313
  }(this.store, t);
3312
3314
  this.store.state$.ephemeralMessages.child(n).child(a.id).set(a);
3313
3315
  const i = he();
@@ -3346,7 +3348,7 @@ class Hs {
3346
3348
  return this.talkSession.conversation(a).message(t).reaction(n);
3347
3349
  }
3348
3350
  }
3349
- const bs = (e) => ({ type: "text", children: function(n) {
3351
+ const Hs = (e) => ({ type: "text", children: function(n) {
3350
3352
  return Sn(n, { except: ["FormattedLink", "Actions"] });
3351
3353
  }(e) });
3352
3354
  function wt(e, t) {
@@ -3363,7 +3365,7 @@ function wt(e, t) {
3363
3365
  function Yt(e) {
3364
3366
  return Object.keys(e);
3365
3367
  }
3366
- class qe extends Error {
3368
+ class Je extends Error {
3367
3369
  constructor(t, n) {
3368
3370
  const a = function(i) {
3369
3371
  if (typeof i == "string") return i;
@@ -3379,7 +3381,7 @@ class qe extends Error {
3379
3381
  }
3380
3382
  }
3381
3383
  const De = console;
3382
- class Bs {
3384
+ class bs {
3383
3385
  constructor(t, n, a, i) {
3384
3386
  this.apiUrls = t, this.appId = n, this.sessionId = a, this.authProvider = i, this._lastPutPromise = Promise.resolve();
3385
3387
  }
@@ -3423,14 +3425,14 @@ class Bs {
3423
3425
  }
3424
3426
  async handleResponse(t, n) {
3425
3427
  if (t.status >= 300) {
3426
- if (t.status === 404) throw Ze.error(`[${this.appId}][BackendRestClient] Couldn't find resource.`), new qe("Could not find app.", `Could not find given appId: "${this.appId}". You can find your appId on https://talkjs.com/dashboard.`);
3428
+ if (t.status === 404) throw be.error(`[${this.appId}][BackendRestClient] Couldn't find resource.`), new Je("Could not find app.", `Could not find given appId: "${this.appId}". You can find your appId on https://talkjs.com/dashboard.`);
3427
3429
  if (t.status === 401) {
3428
3430
  const a = await this.authProvider.getToken();
3429
- throw Ze.error(`[${this.appId}][BackendRestClient] Couldn't authenticate ${n} with token ${a}.`), new qe("User not authenticated.", "Could not authenticate user. Check if your signature is calculated correctly.");
3431
+ throw be.error(`[${this.appId}][BackendRestClient] Couldn't authenticate ${n} with token ${a}.`), new Je("User not authenticated.", "Could not authenticate user. Check if your signature is calculated correctly.");
3430
3432
  }
3431
3433
  if (t.status >= 300 && t.status < 500) {
3432
3434
  const { error: a } = await t.json();
3433
- throw new qe(a);
3435
+ throw new Je(a);
3434
3436
  }
3435
3437
  {
3436
3438
  const a = await t.text();
@@ -3448,30 +3450,30 @@ class Bs {
3448
3450
  return s.status !== 401 ? s : (De.error(`401 error from ${n == null ? void 0 : n.method} ${t}, ${i}`), this.authProvider.refreshToken(), a(await this.authProvider.getToken()));
3449
3451
  }
3450
3452
  }
3451
- function wn(e) {
3453
+ function yn(e) {
3452
3454
  return !e.userMessage;
3453
3455
  }
3454
3456
  function Ie(e, { retries: t = 30 } = {}) {
3455
- return lt(t, e, { shouldRetry: wn, log: De.warn.bind(De), maxDelay: 30, initialDelay: 0.2 });
3457
+ return lt(t, e, { shouldRetry: yn, log: De.warn.bind(De), maxDelay: 30, initialDelay: 0.2 });
3456
3458
  }
3457
3459
  async function $t(e, t) {
3458
3460
  try {
3459
3461
  return await e();
3460
3462
  } catch (a) {
3461
- if (!wn(a)) throw a;
3463
+ if (!yn(a)) throw a;
3462
3464
  }
3463
3465
  let n = !1;
3464
3466
  return t.then(() => {
3465
3467
  n = !0;
3466
3468
  }), lt(1e3, e, { initialDelay: 0.2, maxDelay: 30, shouldRetry: () => !n, log: De.warn.bind(De) });
3467
3469
  }
3468
- class ys {
3470
+ class Bs {
3469
3471
  constructor(t, n, a, i) {
3470
- this.backendRestClient = new Bs(t, n, a, i);
3472
+ this.backendRestClient = new bs(t, n, a, i);
3471
3473
  }
3472
3474
  async getApp(t) {
3473
3475
  return function(n) {
3474
- return { appMetadata: { ...n.appMetadata, id: n.appMetadata.id }, features: n.features, role: ws(n.configuration, n.features) };
3476
+ return { appMetadata: { ...n.appMetadata, id: n.appMetadata.id }, features: n.features, role: ys(n.configuration, n.features) };
3475
3477
  }(await this.backendRestClient.get("/app", { role_name: t }));
3476
3478
  }
3477
3479
  async checkIfAppExists() {
@@ -3481,7 +3483,7 @@ class ys {
3481
3483
  });
3482
3484
  }
3483
3485
  }
3484
- function ws(e, t) {
3486
+ function ys(e, t) {
3485
3487
  const n = { general: { enableFileTransfers: t.includes("file_sharing"), enableLocation: t.includes("location_sharing"), enableMentions: !1, showTypingIndicators: !0, enablePresence: !1, enableVoiceRecording: !1 }, theme: { version: "v2", name: "default" }, permissions: { messages: { delete: "own", edit: "own", reply: "all", emojiReactions: "all" }, messagesCustom: {}, conversations: { leave: "none", markAsUnread: "none" }, conversationsCustom: {} }, generalNotificationSettings: { timeout: "15" }, emailSettings: { enabled: !0, subject: "{{sender.name}} wants to chat with you on {{app.name}}", replySeparator: "--- Write ABOVE THIS LINE to post a reply via email ---", unsubscribeText: "Unsubscribe from all chat emails", senderName: "{{sender.name}} (via {{app.name}})", header: `Hi {{recipient.name}},
3486
3488
  {{sender.name}} wants to chat with you on {{app.name}}:`, includeMessages: !0, inboxUrl: "{{app.custom.websiteUrl}}", inboxLinkText: "Join the chat", footer: `On behalf of {{sender.name}},
3487
3489
  The {{app.name}} team`, enableReplyToEmail: t.includes("reply_via_email"), emailThemeType: t.includes("email_templates") ? "custom" : "standard", emailTheme: "default_email", emailAttachmentMode: "enabledExcludingImages", htmlTemplate: `<div>
@@ -3507,7 +3509,7 @@ function ws(e, t) {
3507
3509
 
3508
3510
  On behalf of {{sender.name}},
3509
3511
  The {{app.name}} team` }, smsSettings: { enabled: t.includes("sms_notifications"), smsTemplate: '({{app.name}}) {{sender.name}}: "{{messages}}". Reply here: {{app.custom.websiteUrl}}', maximumSegments: "1", enableAutoOptOutText: !1, optOutText: "To stop receiving these messages, reply STOP." }, suppressContactInfo: { mode: "off", suppressLinks: !0, suppressEmailAddresses: !0, suppressPhoneNumbers: !0 }, sameTabLinkRules: [] };
3510
- return Ta(n, e);
3512
+ return Oa(n, e);
3511
3513
  }
3512
3514
  class re {
3513
3515
  constructor(t, n, a) {
@@ -3529,34 +3531,34 @@ class re {
3529
3531
  t = ((a = window.top) != null ? a : window).location.host;
3530
3532
  }
3531
3533
  if (t.endsWith("talkjs.com")) {
3532
- const i = t.match(/\w+-(\w+)\.talkjs\.com/);
3534
+ const i = t.match(/^(?:\w+-)?([^.]+)\.talkjs\.com$/);
3533
3535
  if (i) {
3534
3536
  const s = i[1];
3535
- return new re(`wss://realtime-${s}.talkjs.com/v1`, `https://app-${s}.talkjs.com/api/v0`, `https://api-${s}.talkjs.com/v1`);
3537
+ return ["app", "cdn", "api", "realtime"].includes(s) ? n : new re(`wss://realtime-${s}.talkjs.com/v1`, `https://app-${s}.talkjs.com/api/v0`, `https://api-${s}.talkjs.com/v1`);
3536
3538
  }
3537
3539
  return n;
3538
3540
  }
3539
3541
  return t.includes("localhost") || t.includes("localtest.me") || /^\d+\.\d+\.\d+\.\d+(:\d+)?$/.test(t) ? new re(`ws://${t}/public_api/v1`, `http://${t}/api/v0`, `http://${t}/public_api/v1`) : new re(`wss://${t}/public_api/v1`, `https://${t}/api/v0`, `https://${t}/public_api/v1`);
3540
3542
  }
3541
3543
  }
3542
- function Yn(e, t) {
3543
- const n = t.appId, a = t.userId, i = "conversationId" in t ? t.conversationId : void 0, s = Y(() => re.fromHost(t.host), [t.host]), r = b(void 0), o = Y(() => {
3544
- const O = r.current, I = typeof O != typeof t.tokenFetcher ? t.tokenFetcher : O;
3544
+ function wn(e, t) {
3545
+ const n = t.appId, a = t.userId, i = "conversationId" in t ? t.conversationId : void 0, s = H(() => re.fromHost(t.host), [t.host]), r = y(void 0), o = H(() => {
3546
+ const c = r.current, I = typeof c != typeof t.tokenFetcher ? t.tokenFetcher : c;
3545
3547
  return r.current = I, I;
3546
3548
  }, [t.tokenFetcher]);
3547
3549
  Ae(() => {
3548
3550
  e.updateThemeCustom(t.themeCustom);
3549
3551
  }, [e, t.themeCustom]);
3550
- const E = Y(() => yn(), [t.appId, t.userId, t.token, o]), l = Oa({ apiUrls: s, appId: n, userId: a, token: t.token, tokenFetcher: o });
3552
+ const E = H(() => Bn(), [t.appId, t.userId, t.token, o]), l = Aa({ apiUrls: s, appId: n, userId: a, token: t.token, tokenFetcher: o });
3551
3553
  v(() => e.listenForErrors(l, i), [l, e, i]);
3552
- const _ = Y(() => new ys(s, n, E, l._authProvider), [n, E, l, s]);
3554
+ const _ = H(() => new Bs(s, n, E, l._authProvider), [n, E, l, s]);
3553
3555
  return v(() => e.listenForAuthChanges(l, o), [l, e, o]), v(() => e.listenForUserAndAppChanges(l, _), [e, _, l]), { session: l, restApi: _ };
3554
3556
  }
3555
3557
  function He(e, t, n) {
3556
- const a = b(e), i = b(n);
3558
+ const a = y(e), i = y(n);
3557
3559
  return Ae(() => {
3558
3560
  a.current = e, i.current = n;
3559
- }), H((s) => {
3561
+ }), B((s) => {
3560
3562
  a.current && a.current(s), (t == null ? void 0 : t.tagName) !== "T-CHATBOX" && (t == null ? void 0 : t.tagName) !== "T-CONVERSATION-LIST" || function(r, o, E) {
3561
3563
  for (const l of E) {
3562
3564
  const _ = new Event(l);
@@ -3565,72 +3567,71 @@ function He(e, t, n) {
3565
3567
  }(t, s, i.current);
3566
3568
  }, [t]);
3567
3569
  }
3568
- function $n(e) {
3570
+ function Yn(e) {
3569
3571
  v(() => {
3570
- if (window.cordova) {
3571
- const t = e.current;
3572
- M.defined(t);
3573
- const n = (a) => {
3574
- a.target instanceof HTMLAnchorElement && (a.preventDefault(), function(i) {
3575
- const s = window;
3576
- s.cordova.InAppBrowser ? s.cordova.InAppBrowser.open(i, "_system") : window.open(i, "_system", "location=yes");
3577
- }(a.target.href));
3572
+ const t = window, n = e.current;
3573
+ if (t.cordova && n) {
3574
+ const a = (i) => {
3575
+ i.target instanceof HTMLAnchorElement && (i.preventDefault(), function(s) {
3576
+ const r = window;
3577
+ r.cordova.InAppBrowser ? r.cordova.InAppBrowser.open(s, "_system") : window.open(s, "_system", "location=yes");
3578
+ }(i.target.href));
3578
3579
  };
3579
- return t.addEventListener("click", n), () => t.removeEventListener("click", n);
3580
+ return n.addEventListener("click", a), () => n.removeEventListener("click", a);
3580
3581
  }
3581
3582
  }, [e]);
3582
3583
  }
3583
- function jn() {
3584
- const [e, t] = B(!0);
3584
+ function $n() {
3585
+ const [e, t] = b(!0);
3585
3586
  return v(() => {
3586
3587
  t(!1);
3587
3588
  }, []), e;
3588
3589
  }
3589
- ua(), ot(), ia({ observableFunctions: { child: (e, t) => (M(typeof t == "string" || typeof t == "number", "Key should be a string or a number"), sa.getProxy(e, t.toString())) } }), Q.registerHandler(({ level: e, data: t }) => {
3590
+ Ta(), ot(), aa({ observableFunctions: { child: (e, t) => (P(typeof t == "string" || typeof t == "number", "Key should be a string or a number"), ia.getProxy(e, t.toString())) } }), Q.registerHandler(({ level: e, data: t }) => {
3590
3591
  console[e]("[TalkJS]", ...t);
3591
3592
  });
3592
- const Ys = Ye(function(e, t) {
3593
+ const ws = $e(function(e, t) {
3593
3594
  var C, D;
3594
3595
  const { onSendMessage: n, onDeleteMessage: a, beforeBrowserPermissionPrompt: i, onMissingBrowserPermission: s, messageFieldPlaceholder: r, messageFieldSpellcheck: o, __hostElement: E } = e;
3595
3596
  v(() => {
3596
3597
  var h;
3597
3598
  (h = e.__internalOnLoaded) == null || h.call(e);
3598
3599
  }, []);
3599
- const l = jn(), _ = b(null);
3600
- $n(_);
3601
- const O = He(a, E, ["deleteMessage", "delete-message", "deletemessage", "DeleteMessage"]), I = He(n, E, ["sendMessage", "send-message", "sendmessage", "SendMessage"]), T = { beforeBrowserPermissionPrompt: i, onMissingBrowserPermissionCallback: He(s, E, ["browserPermissionDenied", "browser-permission-denied", "browserpermissiondenied", "BrowserPermissionDenied"]) }, { store: u, controller: d, editorInternals: N, session: p } = function(h, P, F) {
3602
- const $ = h.conversationId, g = Y(() => new _n(h.appId, h.userId), []), { session: w, restApi: ue } = Yn(g, h), ne = Y(() => new Pn(g.state$.editor, g.device$, g.state$.userPermissions), [g]), de = Y(() => new Hs(g, w, ne, P, F), [w, g, ne, P, F]);
3600
+ const l = $n(), _ = y(E != null ? E : null);
3601
+ Yn(_);
3602
+ const c = He(a, E, ["deleteMessage", "delete-message", "deletemessage", "DeleteMessage"]), I = He(n, E, ["sendMessage", "send-message", "sendmessage", "SendMessage"]), T = { beforeBrowserPermissionPrompt: i, onMissingBrowserPermissionCallback: He(s, E, ["browserPermissionDenied", "browser-permission-denied", "browserpermissiondenied", "BrowserPermissionDenied"]) }, { store: u, controller: d, editorInternals: N, session: m } = function(h, M, F) {
3603
+ const $ = h.conversationId, g = H(() => new _n(h.appId, h.userId), []), { session: Y, restApi: ue } = wn(g, h), ne = H(() => new Mn(g.state$.editor, g.device$, g.state$.userPermissions), [g]), de = H(() => new Us(g, Y, ne, M, F), [Y, g, ne, M, F]);
3603
3604
  return ne.controller = de, v(() => {
3604
3605
  let X, K = !0;
3605
- const ve = w.currentUser.subscribe(async (J) => {
3606
+ const ve = Y.currentUser.subscribe(async (J) => {
3606
3607
  if (K && (g.errors$.unknownUser.set(!J), J && (g.currentUser$.set(J), J.role !== X))) {
3607
3608
  X = J.role;
3608
- const Ve = await ue.getApp(J.role);
3609
+ const xe = await ue.getApp(J.role);
3609
3610
  if (!K) return;
3610
- g.app$.set(Ve);
3611
+ g.app$.set(xe);
3611
3612
  }
3612
3613
  });
3613
3614
  return () => {
3614
3615
  K = !1, ve.unsubscribe();
3615
3616
  };
3616
- }, [ue, w, g]), v(() => {
3617
+ }, [ue, Y, g]), v(() => {
3617
3618
  let X = !0;
3618
3619
  le(() => {
3619
3620
  g.state$.extCurrentConversationId.set($), g.state$.currentConversation.set(null), g.state$.referencedMessageId.set(null);
3620
3621
  });
3621
- const K = w.conversation($).subscribeMessages(async (j, Se) => {
3622
+ const K = Y.conversation($).subscribeMessages(async (j, Se) => {
3622
3623
  X && j && (await g.readyForNewMessagesPromise, g.storeMessages($, j, Se));
3623
3624
  });
3624
3625
  g.messageSubscription = K;
3625
- const ve = w.conversation($).subscribeParticipants((j) => {
3626
+ const ve = Y.conversation($).subscribeParticipants((j) => {
3626
3627
  X && j && g.state$.participants.child($).set(j);
3627
3628
  });
3628
3629
  g.participantSubscription = ve;
3629
- const J = w.conversation($).subscribe(async (j) => {
3630
+ const J = Y.conversation($).subscribe(async (j) => {
3630
3631
  X && j && g.state$.currentConversation.set(j);
3631
- }), Ve = w.conversation($).subscribeTyping((j) => {
3632
+ }), xe = Y.conversation($).subscribeTyping((j) => {
3632
3633
  X && j && g.storeTyping($, j);
3633
- }), Fn = g.state$.participants.child($).onChange(({ value: j }) => {
3634
+ }), jn = g.state$.participants.child($).onChange(({ value: j }) => {
3634
3635
  if (!j) return;
3635
3636
  const Se = /* @__PURE__ */ new Set();
3636
3637
  for (const W of j) Se.add(W.user.id);
@@ -3638,45 +3639,49 @@ const Ys = Ye(function(e, t) {
3638
3639
  var W;
3639
3640
  for (const ae of Yt(g.onlineSubscriptions)) Se.has(ae) || ((W = g.onlineSubscriptions[ae]) == null || W.unsubscribe(), delete g.onlineSubscriptions[ae], g.state$.isUserConnected.child(ae).set(!1));
3640
3641
  });
3641
- for (const W of Se) g.onlineSubscriptions[W] || (g.onlineSubscriptions[W] = w.user(W).subscribeOnline((ae) => {
3642
+ for (const W of Se) g.onlineSubscriptions[W] || (g.onlineSubscriptions[W] = Y.user(W).subscribeOnline((ae) => {
3642
3643
  ae && g.state$.isUserConnected.child(W).set(ae.isConnected);
3643
3644
  }));
3644
3645
  }, { initial: !0 });
3645
3646
  return () => {
3646
- X = !1, ve.unsubscribe(), J.unsubscribe(), K.unsubscribe(), Ve.unsubscribe(), g.messageSubscription = null, g.participantSubscription = null, Fn();
3647
+ X = !1, ve.unsubscribe(), J.unsubscribe(), K.unsubscribe(), xe.unsubscribe(), g.messageSubscription = null, g.participantSubscription = null, jn();
3647
3648
  for (const j of Yt(g.onlineSubscriptions)) g.onlineSubscriptions[j].unsubscribe();
3648
3649
  g.onlineSubscriptions = {}, g.state$.isUserConnected.set({});
3649
3650
  };
3650
- }, [g, $, w]), { store: g, controller: de, editorInternals: ne, session: w };
3651
- }(e, I, O), R = H(async () => {
3651
+ }, [g, $, Y]), { store: g, controller: de, editorInternals: ne, session: Y };
3652
+ }(e, I, c), R = B(async () => {
3652
3653
  const h = N.state$;
3653
3654
  if (h.isEmpty.peek() || h.atTextLimit.peek()) return;
3654
- const P = N.getText(), F = u.state$.referencedMessageId.peek();
3655
- F && d.setReferencedMessage(null), N.clearText(), u.state$.editor.showEmojiPicker.set(!1), await d.sendMessage({ text: P, referencedMessage: F != null ? F : void 0 });
3655
+ const M = N.getText(), F = u.state$.referencedMessageId.peek();
3656
+ F && d.setReferencedMessage(null), N.clearText(), u.state$.editor.showEmojiPicker.set(!1), await d.sendMessage({ text: M, referencedMessage: F != null ? F : void 0 });
3656
3657
  }, [d, N, u]);
3657
3658
  v(() => {
3658
- var P;
3659
- const h = (P = e.enterSendsMessage) != null ? P : !0;
3659
+ var M;
3660
+ const h = (M = e.enterSendsMessage) != null ? M : !0;
3660
3661
  N.onEnter = h ? R : void 0;
3661
3662
  }, [N, e.enterSendsMessage, R]), v(() => {
3662
3663
  N.spellcheck$.set(o);
3663
3664
  }, [N, o]), v(() => {
3664
3665
  N.placeholder$.set(r);
3665
- }, [N, r]), Ft(t, () => ({ deleteMessage: (h) => d.deleteMessage(h), setEditing: (h) => d.setEditing(h), editMessage: (h, P) => d.editMessage(h, P), sendMessage: (h) => d.sendMessage(h), sendFileMessage: (h) => d.sendFileMessage(h), sendLocationMessage: (h) => d.sendLocationMessage(h), setReferencedMessage: (h) => d.setReferencedMessage(h), getMessageFieldText: () => N.getText(), setMessageFieldText: (h) => N.setText(h) }));
3666
- const L = H(({ error: h }) => A(Fe, { appId: e.appId, chatboxState: { type: "unexpected-error", error: h } }), [e.appId]), m = "t-chatbox" + (e.className ? ` ${e.className}` : "");
3667
- return A("div", l ? { className: m, style: e.style, ref: _ } : { className: m, style: e.style, ref: _, children: A(en, { fallbackRender: L, children: A(Kt.Provider, { value: N, children: A(qt.Provider, { value: u, children: A(Jt.Provider, { value: e.theme, children: A(Wt.Provider, { value: T, children: A(Zt.Provider, { value: d, children: A(Qt.Provider, { value: p, children: A(_a.Provider, { value: { sendMessage: R }, children: A(Ps, { appId: e.appId, chatHeaderVisible: (C = e.chatHeaderVisible) != null ? C : !0, messageFieldVisible: (D = e.messageFieldVisible) != null ? D : !0 }) }) }) }) }) }) }) }) }) });
3666
+ }, [N, r]), Ft(t, () => ({ deleteMessage: (h) => d.deleteMessage(h), setEditing: (h) => d.setEditing(h), editMessage: (h, M) => d.editMessage(h, M), sendMessage: (h) => d.sendMessage(h), sendFileMessage: (h) => d.sendFileMessage(h), sendLocationMessage: (h) => d.sendLocationMessage(h), setReferencedMessage: (h) => d.setReferencedMessage(h), getMessageFieldText: () => N.getText(), setMessageFieldText: (h) => N.setText(h) }));
3667
+ const L = B(({ error: h }) => O(Ve, { appId: e.appId, chatboxState: { type: "unexpected-error", error: h } }), [e.appId]), p = l ? null : O(en, { fallbackRender: L, children: O(Kt.Provider, { value: N, children: O(qt.Provider, { value: u, children: O(Jt.Provider, { value: e.theme, children: O(Wt.Provider, { value: T, children: O(Zt.Provider, { value: d, children: O(Qt.Provider, { value: m, children: O(la.Provider, { value: { sendMessage: R }, children: O(Ms, { appId: e.appId, chatHeaderVisible: (C = e.chatHeaderVisible) != null ? C : !0, messageFieldVisible: (D = e.messageFieldVisible) != null ? D : !0 }) }) }) }) }) }) }) }) });
3668
+ if (E) return p;
3669
+ {
3670
+ const h = "t-chatbox" + (e.className ? ` ${e.className}` : "");
3671
+ return O("div", { className: h, style: e.style, ref: _, children: p });
3672
+ }
3668
3673
  });
3669
- function $s({ conversation: e }) {
3670
- const t = f(), n = Ce(), a = G(), i = nn(), s = k(t.extCurrentConversationId$), [r, o] = B([]);
3674
+ function Ys({ conversation: e }) {
3675
+ const t = f(), n = Ce(), a = G(), i = nn(), s = k(t.extCurrentConversationId$), [r, o] = b([]);
3671
3676
  return v(() => {
3672
3677
  const E = n.conversation(e.id).subscribeParticipants(async (l) => {
3673
3678
  l && o(l);
3674
3679
  });
3675
3680
  return () => E.unsubscribe();
3676
- }, [n, e.id]), r ? A(a.ConversationListItem, { common: i, conversation: e, participants: r, isSelected: s === e.id }) : null;
3681
+ }, [n, e.id]), r ? O(a.ConversationListItem, { common: i, conversation: e, participants: r, isSelected: s === e.id }) : null;
3677
3682
  }
3678
- function js() {
3679
- const e = f(), t = b(null);
3683
+ function $s() {
3684
+ const e = f(), t = y(null);
3680
3685
  v(() => {
3681
3686
  let a = !0;
3682
3687
  const i = t.current;
@@ -3688,18 +3693,18 @@ function js() {
3688
3693
  a = !1;
3689
3694
  };
3690
3695
  }, [e]);
3691
- const n = H((a) => {
3696
+ const n = B((a) => {
3692
3697
  const i = a.currentTarget;
3693
3698
  i.scrollHeight - i.clientHeight - i.scrollTop < 15 && e.conversationListSubscription && e.conversationListSubscription.loadMore(20);
3694
3699
  }, [e]);
3695
- return A("div", { className: "t-conversation-list-scrollable", ref: t, "t-menu-boundary": "", onScroll: n, children: A(Je, { each: e.conversationsArray$, children: (a) => A($s, { conversation: a.get() }) }) });
3700
+ return O("div", { className: "t-conversation-list-scrollable", ref: t, "t-menu-boundary": "", onScroll: n, children: O(Ze, { each: e.conversationsArray$, children: (a) => O(Ys, { conversation: a.get() }) }) });
3696
3701
  }
3697
- function Fs({ appId: e }) {
3702
+ function js({ appId: e }) {
3698
3703
  f();
3699
3704
  const t = function() {
3700
3705
  const n = f(), a = ee(() => {
3701
3706
  const r = n.currentUser$.get(), o = n.app$.get(), E = n.errors$.get(), l = n.authTokenState$.get();
3702
- return E.serverError ? "server-error" : E.wrongAppId ? "wrong-app-id" : l === "loading" || l === "idle" ? "loading-token" : l === "invalid" ? "invalid-token" : l === "expired" ? "expired-token" : l === "valid" ? E.unknownUser ? "unknown-user" : r && o ? "loaded" : "loading-data" : void M.unreachable();
3707
+ return E.serverError ? "server-error" : E.wrongAppId ? "wrong-app-id" : l === "loading" || l === "idle" ? "loading-token" : l === "invalid" ? "invalid-token" : l === "expired" ? "expired-token" : l === "valid" ? E.unknownUser ? "unknown-user" : r && o ? "loaded" : "loading-data" : void P.unreachable();
3703
3708
  }), i = ee({ type: "loading" });
3704
3709
  _e((r) => {
3705
3710
  const o = a.get(), E = n.extUserId$.peek(), l = n.appId$.peek();
@@ -3726,14 +3731,14 @@ function Fs({ appId: e }) {
3726
3731
  case "unknown-user":
3727
3732
  r.onCleanup = function(_) {
3728
3733
  i.set({ type: "loading" });
3729
- const O = setTimeout(() => {
3734
+ const c = setTimeout(() => {
3730
3735
  i.set(_);
3731
3736
  }, 5e3);
3732
- return () => clearTimeout(O);
3737
+ return () => clearTimeout(c);
3733
3738
  }({ type: "unknown-user", userId: E });
3734
3739
  break;
3735
3740
  default:
3736
- M.never(o);
3741
+ P.never(o);
3737
3742
  }
3738
3743
  });
3739
3744
  const s = ee({ type: "loading" });
@@ -3749,7 +3754,25 @@ function Fs({ appId: e }) {
3749
3754
  } else s.set(i.get());
3750
3755
  }), k(s);
3751
3756
  }();
3752
- return t.type === "invisible-loading" ? A(me, {}) : t.type === "loading" ? A(Hn, {}) : t.type === "unknown-user" || t.type === "auth-failed" || t.type === "wrong-app-id" || t.type === "server-error" || t.type === "unexpected-error" ? A(Fe, { appId: e, chatboxState: t }) : t.type == "expired-token" ? A(bn, {}) : t.type === "loaded" ? A(js, {}) : A(me, {});
3757
+ return t.type === "invisible-loading" ? O(me, {}) : t.type === "loading" ? O(Un, {}) : t.type === "unknown-user" || t.type === "auth-failed" || t.type === "wrong-app-id" || t.type === "server-error" || t.type === "unexpected-error" ? O(Ve, { appId: e, chatboxState: t }) : t.type == "expired-token" ? O(Hn, {}) : t.type === "loaded" ? O($s, {}) : O(me, {});
3758
+ }
3759
+ class Fs extends ln {
3760
+ constructor() {
3761
+ super(...arguments), this.type = "ConversationListStore", this.conversationListSubscription = null, this.extCurrentConversationId$ = U(null), this.conversationsArray$ = U([]), this.conversationsMap$ = U({});
3762
+ }
3763
+ listenForConversations(t) {
3764
+ const n = t.subscribeConversations((a) => {
3765
+ le(() => {
3766
+ this.conversationsArray$.set(a);
3767
+ const i = {};
3768
+ for (const s of a) i[s.id] = s;
3769
+ this.conversationsMap$.set(i);
3770
+ });
3771
+ });
3772
+ return this.conversationListSubscription = n, () => {
3773
+ n.unsubscribe(), this.conversationListSubscription = null;
3774
+ };
3775
+ }
3753
3776
  }
3754
3777
  class Vs {
3755
3778
  constructor(t, n) {
@@ -3762,40 +3785,54 @@ class Vs {
3762
3785
  this.onSelectConversation(n);
3763
3786
  }
3764
3787
  }
3765
- const xs = Ye(function(e, t) {
3788
+ const xs = $e(function(e, t) {
3789
+ const { __hostElement: n, onSelectConversation: a } = e;
3766
3790
  v(() => {
3767
- var _;
3768
- (_ = e.__internalOnLoaded) == null || _.call(e);
3791
+ var I;
3792
+ (I = e.__internalOnLoaded) == null || I.call(e);
3769
3793
  }, []);
3770
- const n = jn(), a = b(null);
3771
- $n(a);
3772
- const i = He(e.onSelectConversation, e.__hostElement, ["selectConversation", "select-conversation", "selectconversation", "SelectConversation"]), s = Y(() => new pn(e.appId, e.userId), []);
3794
+ const i = $n(), s = y(n != null ? n : null);
3795
+ Yn(s);
3796
+ const r = He(a, n, ["selectConversation", "select-conversation", "selectconversation", "SelectConversation"]), o = H(() => new Fs(e.appId, e.userId), []);
3773
3797
  v(() => {
3774
3798
  le(() => {
3775
- s.extUserId$.set(e.userId), s.appId$.set(e.appId);
3799
+ o.extUserId$.set(e.userId), o.appId$.set(e.appId);
3776
3800
  });
3777
- }, [s, e.appId, e.userId]);
3778
- const { session: r } = Yn(s, e), o = Y(() => new Vs(s, i), [s, i]);
3779
- v(() => s.listenForConversations(r), [s, r]), v(() => {
3780
- e.selectedConversationId !== void 0 && s.extCurrentConversationId$.set(e.selectedConversationId);
3781
- }, [s, e.selectedConversationId]), Ft(t, () => ({ selectConversation: (_) => o.selectConversation(_) }));
3782
- const E = H(({ error: _ }) => A(Fe, { appId: e.appId, chatboxState: { type: "unexpected-error", error: _ } }), [e.appId]), l = "t-conversation-list" + (e.className ? ` ${e.className}` : "");
3783
- return A("div", n ? { className: l, style: e.style, ref: a } : { className: l, style: e.style, ref: a, children: A(en, { fallbackRender: E, children: A(qt.Provider, { value: s, children: A(Jt.Provider, { value: e.theme, children: A(Zt.Provider, { value: o, children: A(Qt.Provider, { value: r, children: A(Fs, { appId: e.appId }) }) }) }) }) }) });
3801
+ }, [o, e.appId, e.userId]);
3802
+ const { session: E } = wn(o, e), l = H(() => new Vs(o, r), [o, r]);
3803
+ v(() => o.listenForConversations(E), [o, E]), v(() => {
3804
+ e.selectedConversationId !== void 0 && o.extCurrentConversationId$.set(e.selectedConversationId);
3805
+ }, [o, e.selectedConversationId]), v(() => {
3806
+ const I = e.__hostElement;
3807
+ if (I)
3808
+ return o.extCurrentConversationId$.onChange(({ value: T }) => {
3809
+ I.selectedConversationId = T;
3810
+ });
3811
+ }, [o, e.__hostElement]), Ft(t, () => ({ selectConversation: (I) => l.selectConversation(I) }));
3812
+ const _ = B(({ error: I }) => O(Ve, { appId: e.appId, chatboxState: { type: "unexpected-error", error: I } }), [e.appId]), c = i ? null : O(en, { fallbackRender: _, children: O(qt.Provider, { value: o, children: O(Jt.Provider, { value: e.theme, children: O(Zt.Provider, { value: l, children: O(Qt.Provider, { value: E, children: O(js, { appId: e.appId }) }) }) }) }) });
3813
+ if (n) return c;
3814
+ {
3815
+ const I = "t-conversation-list" + (e.className ? ` ${e.className}` : "");
3816
+ return O("div", { className: I, style: e.style, ref: s, children: c });
3817
+ }
3784
3818
  });
3785
3819
  new Promise((e) => {
3786
3820
  typeof document != "undefined" && document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", e, { once: !0 }) : e(void 0);
3787
3821
  });
3788
- const Or = (jt = Et, Ye(function(e, t) {
3789
- var a, i;
3790
- const n = `${(a = e.key) != null ? a : ""}|${e.userId}|${e.appId}`;
3791
- return te(Ys, { ...e, key: n, theme: (i = e.theme) != null ? i : jt, ref: t });
3822
+ const Or = (jt = Et, $e(function(e, t) {
3823
+ var i;
3824
+ const n = H(() => {
3825
+ var s;
3826
+ return { ...jt, ...(s = e.theme) != null ? s : {} };
3827
+ }, [e.theme]), a = `${(i = e.key) != null ? i : ""}|${e.userId}|${e.appId}`;
3828
+ return te(ws, { ...e, key: a, theme: n, ref: t });
3792
3829
  }));
3793
3830
  var jt;
3794
3831
  const Tr = function(e) {
3795
- return Ye(function(t, n) {
3796
- var i, s;
3797
- const a = `${(i = t.key) != null ? i : ""}|${t.userId}|${t.appId}`;
3798
- return te(xs, { ...t, key: a, theme: (s = t.theme) != null ? s : e, ref: n });
3832
+ return $e(function(t, n) {
3833
+ var s;
3834
+ const a = `${(s = t.key) != null ? s : ""}|${t.userId}|${t.appId}`, i = H(() => t.theme ? { ...e, ...t.theme } : e, [t.theme]);
3835
+ return te(xs, { ...t, key: a, theme: i, ref: n });
3799
3836
  });
3800
3837
  }(Et), ur = Et;
3801
3838
  export {