@connectycube/chat-widget 0.42.1 → 0.42.3
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/dist/index.es.js
CHANGED
|
@@ -10,7 +10,7 @@ import { clsx as KV } from "clsx";
|
|
|
10
10
|
import { twMerge as RV } from "tailwind-merge";
|
|
11
11
|
import { Slot as zV } from "@radix-ui/react-slot";
|
|
12
12
|
import { cva as JV } from "class-variance-authority";
|
|
13
|
-
import { LoaderCircle as pt, Loader as Et, VideoOff as ht, Video as WA, MicOff as Bt, Mic as
|
|
13
|
+
import { LoaderCircle as pt, Loader as Et, VideoOff as ht, Video as WA, MicOff as Bt, Mic as kt, Phone as eA, ScreenShareOff as Ct, ScreenShare as It, Minimize as St, Maximize as Qt, PictureInPicture2 as ft, PhoneOff as Ut, ChevronRightIcon as yt, Ellipsis as Dt, LogOut as RA, Paperclip as Tt, FilePlusCorner as Nt, WandSparkles as xt, SendHorizontal as Gt, FileXCorner as bt, File as vt, PhoneOutgoing as Yt, PhoneIncoming as Ft, PhoneMissed as Kt, Ban as Rt, CheckCheck as zt, Check as Jt, Clock as Lt, Globe as jt, Sparkles as Ot, CheckIcon as Wt, XIcon as Zt, Users as Pt, Search as Ht, X as Xt } from "lucide-react";
|
|
14
14
|
import { toast as nq, Toaster as $t } from "sonner";
|
|
15
15
|
import { createPortal as _t } from "react-dom";
|
|
16
16
|
import * as zA from "@radix-ui/react-avatar";
|
|
@@ -35,9 +35,9 @@ const EV = (q = []) => q.slice().filter(Boolean).sort((A, V) => A.id - V.id).red
|
|
|
35
35
|
(A, V) => V.trim()
|
|
36
36
|
), lq = () => typeof window < "u" && typeof document < "u";
|
|
37
37
|
var $q = /* @__PURE__ */ ((q) => (q.WRAPPER = "data-connectycube-chat-widget-wrapper", q.FOCUSED = "data-connectycube-chat-widget-focused", q))($q || {});
|
|
38
|
-
const hV = "15px", BV = "400", wA = "external_id",
|
|
38
|
+
const hV = "15px", BV = "400", wA = "external_id", kV = "::current_user";
|
|
39
39
|
var Sq = /* @__PURE__ */ ((q) => (q.GET_SUMMARY = "ai:get-summary", q.CHANGE_TONE = "ai:change-tone", q.DEFAULT = "ai:default", q))(Sq || {}), vq = /* @__PURE__ */ ((q) => (q.LAST_7_DAYS = "last-7-days", q.LAST_DAY = "last-day", q.UNREADS = "unreads", q))(vq || {}), uA = /* @__PURE__ */ ((q) => (q.POSITIVE = "positive", q.NEGATIVE = "negative", q.CRINGE = "cringe", q))(uA || {}), AV = /* @__PURE__ */ ((q) => (q.AI_TEXT_SUMMARY = "ai-text-summary", q))(AV || {});
|
|
40
|
-
const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "Chat name", wa = "Chat name is required", Ma = "Chat", pa = "Chats", Ea = "Choose a chat", ha = "Continue", Ba = "Create group chat",
|
|
40
|
+
const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "Chat name", wa = "Chat name is required", Ma = "Chat", pa = "Chats", Ea = "Choose a chat", ha = "Continue", Ba = "Create group chat", ka = "Delete", Ca = "Draft", Ia = "Enter message", Sa = "Enter user name", Qa = "Exit chat", fa = "Are you sure you want to leave this chat?", Ua = "File format is not supported", ya = "is typing", Da = "me", Ta = "Members", Na = "members", xa = "New group", Ga = "New message", ba = "Begin your first chat and see what happens!", va = "No messages yet", Ya = "No online users", Fa = "Profile", Ka = "Remove members", Ra = "Reset", za = "Search", Ja = "Select", La = "Send", ja = "Start chat", Oa = "Send message to user", Wa = "Start a new Group", Za = "typing", Pa = "Users", Ha = "you", Xa = "Video", $a = "Call", _a = "Block", qo = "Unblock", Ao = "Report", Vo = "Report user", eo = "What's wrong with this user?", to = "Reason for reporting", ao = "Report has been created successfully", oo = "Failed to submit report", ro = "My profile", no = "You are blocked by this user", io = "Block list", so = "Add to block list", lo = "Remove from block list", co = "Block list is empty", go = "Notification settings", mo = "Notifications", uo = "Notification sound", wo = "Push notifications", Mo = "Please wait", po = "Available", Eo = "Busy", ho = "Away", Bo = "Online", ko = "Incoming call", Co = "Incoming audio call from {{name}}", Io = "Incoming video call from {{name}}", So = "Accept", Qo = "Reject", fo = "{{name}} rejected the call", Uo = "Missed call from {{name}}", yo = { Login: "Login", Password: "Password", Register: "Register", Registration: "Registration", LoginRequired: "Login is required", LoginMinLimit: "Login must be at least {{limit}} symbols", LoginMaxLimit: "Login must be at most {{limit}} symbols", PasswordRequired: "Login is required", PasswordMinLimit: "Password must be at least {{limit}} symbols", PasswordMaxLimit: "Password must be at most {{limit}} symbols", LoginDescription: "Enter your login and password to access your account", RegisterDescription: "Fill in the form below to sign up", "ToRegister?": "Don't have an account?", "ToLogin?": "Already have an account?" }, Do = { Title: "Submit your contact data to start a chat", Subtitle: "We will not share your email address. Your email address is used solely to contact you", NamePlaceholder: "Name", NameRequired: "Name is required", EmailPlaceholder: "Email", EmailRequired: "Email is required", EmailInvalid: "Invalid email format", AcceptTermsAndConditions: "Accept terms and conditions", AcceptTermsAndConditionsError: "You must accept the terms and conditions", TermsAndConditionsText: "By clicking this checkbox, you agree to the", TermsAndConditionsLink: "terms and conditions", RememberMe: "Remember me", RememberMeText: "This is my private device", Next: "Next" }, To = "Opponent(s) for the chat not found", No = "Information", xo = { GetSummary: "Get summary", ChangeMessageTone: "Change message tone", SummaryMessageTitle: "Only you can see this message", forLast7Days: "for last 7 days", forLastDay: "for last day", forUnreads: "for unreads", MessageTone: "Change message tone", EmptyMessageTone: "Can't change tone of empty message", positive: "positive", negative: "negative", cringe: "cringe" }, Go = { RejectedIncoming: "Rejected incoming", RejectedOutgoing: "Rejected outgoing", Unanswered: "Unanswered", Missed: "Missed", Canceled: "Canceled", Ended: "Ended", videoCall: "video call", audioCall: "audio call", defaultCall: "call" }, bo = "Drop files here", vo = {
|
|
41
41
|
AddMembers: ca,
|
|
42
42
|
Admin: ga,
|
|
43
43
|
areTyping: ma,
|
|
@@ -49,8 +49,8 @@ const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "
|
|
|
49
49
|
ChooseChat: Ea,
|
|
50
50
|
Continue: ha,
|
|
51
51
|
CreateGroupChat: Ba,
|
|
52
|
-
Delete:
|
|
53
|
-
Draft:
|
|
52
|
+
Delete: ka,
|
|
53
|
+
Draft: Ca,
|
|
54
54
|
EnterMessage: Ia,
|
|
55
55
|
EnterUserName: Sa,
|
|
56
56
|
ExitChat: Qa,
|
|
@@ -105,8 +105,8 @@ const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "
|
|
|
105
105
|
Busy: Eo,
|
|
106
106
|
Away: ho,
|
|
107
107
|
Online: Bo,
|
|
108
|
-
IncomingCall:
|
|
109
|
-
IncomingAudioCall:
|
|
108
|
+
IncomingCall: ko,
|
|
109
|
+
IncomingAudioCall: Co,
|
|
110
110
|
IncomingVideoCall: Io,
|
|
111
111
|
Accept: So,
|
|
112
112
|
Reject: Qo,
|
|
@@ -119,7 +119,7 @@ const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "
|
|
|
119
119
|
AI: xo,
|
|
120
120
|
CallHistory: Go,
|
|
121
121
|
DragAndDrop: bo
|
|
122
|
-
}, Yo = "Προσθήκη μελών", Fo = "Διαχειριστής", Ko = "είναι", Ro = "Ακύρωση", zo = "Όνομα συνομιλίας", Jo = "Το όνομα συνομιλίας είναι υποχρεωτικό", Lo = "Συνομιλία", jo = "Συνομιλίες", Oo = "Επιλέξτε συνομιλία", Wo = "Συνέχεια", Zo = "Δημιουργία ομαδικής συνομιλίας", Po = "Διαγραφή", Ho = "Πρόχειρο", Xo = "Εισάγετε μήνυμα", $o = "Εισάγετε όνομα χρήστη", _o = "Έξοδος από τη συνομιλία", qr = "Είστε σίγουροι ότι θέλετε να φύγετε από αυτή τη συνομιλία;", Ar = "Η μορφή αρχείου δεν υποστηρίζεται", Vr = "είναι", er = "εγώ", tr = "Μέλη", ar = "μέλη", or = "Νέα ομάδα", rr = "Νέο μήνυμα", nr = "Επιλέξτε κάποιο χρήστη από τη λίστα Χρήστες και ξεκινήστε την πρώτη σας συνομιλία!", ir = "Δεν υπάρχουν μηνύματα", sr = "Δεν υπάρχουν συνδεδεμένοι χρήστες", lr = "Προφίλ", cr = "Αφαίρεση μελών", gr = "Επαναφορά", mr = "Αναζήτηση", ur = "Επιλογή", dr = "Αποστολή", wr = "Έναρξη συνομιλίας", Mr = "Αποστολή μηνύματος σε μέλος", pr = "Δημιουργία νέας ομάδας", Er = "πληκτρολογεί", hr = "Χρήστες", Br = "εσύ",
|
|
122
|
+
}, Yo = "Προσθήκη μελών", Fo = "Διαχειριστής", Ko = "είναι", Ro = "Ακύρωση", zo = "Όνομα συνομιλίας", Jo = "Το όνομα συνομιλίας είναι υποχρεωτικό", Lo = "Συνομιλία", jo = "Συνομιλίες", Oo = "Επιλέξτε συνομιλία", Wo = "Συνέχεια", Zo = "Δημιουργία ομαδικής συνομιλίας", Po = "Διαγραφή", Ho = "Πρόχειρο", Xo = "Εισάγετε μήνυμα", $o = "Εισάγετε όνομα χρήστη", _o = "Έξοδος από τη συνομιλία", qr = "Είστε σίγουροι ότι θέλετε να φύγετε από αυτή τη συνομιλία;", Ar = "Η μορφή αρχείου δεν υποστηρίζεται", Vr = "είναι", er = "εγώ", tr = "Μέλη", ar = "μέλη", or = "Νέα ομάδα", rr = "Νέο μήνυμα", nr = "Επιλέξτε κάποιο χρήστη από τη λίστα Χρήστες και ξεκινήστε την πρώτη σας συνομιλία!", ir = "Δεν υπάρχουν μηνύματα", sr = "Δεν υπάρχουν συνδεδεμένοι χρήστες", lr = "Προφίλ", cr = "Αφαίρεση μελών", gr = "Επαναφορά", mr = "Αναζήτηση", ur = "Επιλογή", dr = "Αποστολή", wr = "Έναρξη συνομιλίας", Mr = "Αποστολή μηνύματος σε μέλος", pr = "Δημιουργία νέας ομάδας", Er = "πληκτρολογεί", hr = "Χρήστες", Br = "εσύ", kr = "Βίντεο", Cr = "Κλήση", Ir = "Block", Sr = "Unblock", Qr = "Αναφορά", fr = "Αναφορά χρήστη", Ur = "Τι θέλετε να αναφέρετε για αυτόν το χρήστη;", yr = "Λόγος αναφοράς", Dr = "Η αναφορά για το χρήστη έγινε", Tr = "Σφάλμα στη δημιουργία αναφοράς", Nr = "Το προφίλ μου", xr = "Αυτός ο χρήστης σας έχει κάνει Block", Gr = "Λίστα Blocked χρηστών", br = "Προσθήκη στη λίστα Blocked", vr = "Αφαίρεση από τη λίστα Blocked", Yr = "Η Blocked λίστα είναι άδεια", Fr = "Ρυθμίσεις ειδοποιήσεων", Kr = "Ειδοποιήσεις", Rr = "Ήχος ειδοποίησης", zr = "Ειδοποιήσεις push", Jr = "Παρακαλώ περιμένετε", Lr = "Διαθέσιμος/η", jr = "Απασχολημένος/η", Or = "Απουσιάζω", Wr = "Συνδεδεμένος/η", Zr = "Εισερχόμενη κλήση", Pr = "Εισερχόμενη κλήση ήχου από τον χρήστη {{name}}", Hr = "Εισερχόμενη κλήση βίντεο από τον χρήστη {{name}}", Xr = "Αποδοχή", $r = "Απόρριψη", _r = "Ο χρήστης {{name}} απέρριψε την κλήση", qn = "Αναπάντητη κλήση από τον χρήστη {{name}}", An = { Login: "Σύνδεση", Password: "Κωδικός πρόσβασης", Register: "Εγγραφή", Registration: "Εγγραφή", LoginRequired: "Το όνομα χρήστη είναι υποχρεωτικό", LoginMinLimit: "Το όνομα χρήστη πρέπει να έχει τουλάχιστον {{limit}} χαρακτήρες", LoginMaxLimit: "Το όνομα χρήστη πρέπει να έχει το πολύ {{limit}} χαρακτήρες", PasswordRequired: "Ο κωδικός πρόσβασης είναι υποχρεωτικός", PasswordMinLimit: "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον {{limit}} χαρακτήρες", PasswordMaxLimit: "Ο κωδικός πρόσβασης πρέπει να έχει το πολύ {{limit}} χαρακτήρες", LoginDescription: "Εισάγετε το όνομα χρήστη και τον κωδικό πρόσβασης για να αποκτήσετε πρόσβαση στον λογαριασμό σας", RegisterDescription: "Συμπληρώστε την παρακάτω φόρμα για να εγγραφείτε", "ToRegister?": "Δεν έχετε λογαριασμό;", "ToLogin?": "Έχετε ήδη λογαριασμό;" }, Vn = { Title: "Υποβάλετε τα στοιχεία επικοινωνίας σας για να ξεκινήσετε μια συνομιλία", Subtitle: "Δεν θα κοινοποιήσουμε τη διεύθυνση email σας. Η διεύθυνση email σας χρησιμοποιείται αποκλειστικά για να επικοινωνήσουμε μαζί σας.", NamePlaceholder: "Όνομα", NameRequired: "Το όνομα είναι υποχρεωτικό", EmailPlaceholder: "E-mail", EmailRequired: "Απαιτείται email", Emailnvalid: "Μη έγκυρη μορφή email", AcceptTermsAndConditions: "Αποδοχή όρων και προϋποθέσεων", AcceptTermsAndConditionsError: "Πρέπει να αποδεχτείτε τους όρους και τις προϋποθέσεις", TermsAndConditionsText: "Κάνοντας κλικ σε αυτό το πλαίσιο, συμφωνείτε με τους", TermsAndConditionsLink: "όρους και προϋποθέσεις", RememberMe: "Να με θυμάσαι", RememberMeText: "Αυτή είναι η προσωπική μου συσκευή", Next: "Επόμενο" }, en = "Δεν βρέθηκαν αντίπαλοι για τη συνομιλία", tn = "Πληροφορίες", an = { GetSummary: "Λήψη σύνοψης", ChangeMessageTone: "Αλλαγή τόνου μηνύματος", SummaryMessageTitle: "Μόνο εσείς μπορείτε να δείτε αυτό το μήνυμα", forLast7Days: "για τις τελευταίες 7 ημέρες", forLastDay: "για την τελευταία ημέρα", forUnreads: "για μη αναγνωσμένα", MessageTone: "Αλλαγή τόνου μηνύματος", EmptyMessageTone: "Δεν είναι δυνατή η αλλαγή του τόνου ενός κενού μηνύματος", positive: "θετικός", negative: "αρνητικός", cringe: "κρίμα" }, on = { RejectedIncoming: "Απορρίφθηκε εισερχόμενη κλήση", RejectedOutgoing: "Απορρίφθηκε εξερχόμενη κλήση", Unanswered: "Μη απαντημένη κλήση", Missed: "Αναπάντητη κλήση", Canceled: "Ακυρώθηκε", Ended: "Ολοκληρώθηκε", videoCall: "βιντεοκλήση", audioCall: "ηχητική κλήση", defaultCall: "κλήση" }, rn = "Αποθέστε αρχεία εδώ", nn = {
|
|
123
123
|
AddMembers: Yo,
|
|
124
124
|
Admin: Fo,
|
|
125
125
|
areTyping: Ko,
|
|
@@ -160,8 +160,8 @@ const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "
|
|
|
160
160
|
typing: Er,
|
|
161
161
|
Users: hr,
|
|
162
162
|
you: Br,
|
|
163
|
-
Video:
|
|
164
|
-
Call:
|
|
163
|
+
Video: kr,
|
|
164
|
+
Call: Cr,
|
|
165
165
|
Block: Ir,
|
|
166
166
|
UnBlock: Sr,
|
|
167
167
|
Report: Qr,
|
|
@@ -201,7 +201,7 @@ const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "
|
|
|
201
201
|
AI: an,
|
|
202
202
|
CallHistory: on,
|
|
203
203
|
DragAndDrop: rn
|
|
204
|
-
}, sn = "Додати учасників", ln = "Адмін", cn = "пишуть", gn = "Скасувати", mn = "Назва чату", un = "Назва чату є обов'язковою", dn = "Чат", wn = "Чати", Mn = "Оберіть чат", pn = "Продовжити", En = "Створити груповий чат", hn = "Видалити", Bn = "Чернетка",
|
|
204
|
+
}, sn = "Додати учасників", ln = "Адмін", cn = "пишуть", gn = "Скасувати", mn = "Назва чату", un = "Назва чату є обов'язковою", dn = "Чат", wn = "Чати", Mn = "Оберіть чат", pn = "Продовжити", En = "Створити груповий чат", hn = "Видалити", Bn = "Чернетка", kn = "Введіть повідомлення", Cn = "Введіть ім'я користувача", In = "Вийти з чату", Sn = "Ви впевнені, що хочете вийти з цього чату?", Qn = "Формат файлу не підтримується", fn = "пише", Un = "я", yn = "Учасники", Dn = "учасники", Tn = "Нова група", Nn = "Нове повідомлення", xn = "Почніть свою першу розмову та подивіться, що станеться!", Gn = "Поки що немає повідомлень", bn = "Немає онлайн-користувачів", vn = "Профіль", Yn = "Видалити учасників", Fn = "Скинути", Kn = "Пошук", Rn = "Вибрати", zn = "Надіслати", Jn = "Розпочати чат", Ln = "Новий чат з користувачем", jn = "Нова група", On = "друкує", Wn = "Користувачі", Zn = "ви", Pn = "Відео", Hn = "Виклик", Xn = "Заблокувати", $n = "Розблокувати", _n = "Поскаржитися", qi = "Поскаржитися на користувача", Ai = "Що не так з цим користувачем?", Vi = "Підстава", ei = "Звіт поданий успішно", ti = "Помилка при поданні звіту", ai = "Мій профіль", oi = "Цей користувача вас заблокував", ri = "Список заблокованих", ni = "Додати до списку заблокованих", ii = "Видалити зі списку заблокованих", si = "Список заблокованих порожній", li = "Налаштування сповіщень", ci = "Сповіщення", gi = "Звук сповіщення", mi = "Push-сповіщення", ui = "Будь ласка, зачекайте", di = "Присутній", wi = "Зайнятий", Mi = "Відсутній", pi = "В мережі", Ei = "Вхідний виклик", hi = "Вхідний аудіо виклик від {{name}}", Bi = "Вхідний відео виклик від {{name}}", ki = "Прийняти", Ci = "Відхилити", Ii = "{{name}} відхилив виклик", Si = "Пропущений виклик від {{name}}", Qi = { Login: "Логін", Password: "Пароль", Register: "Зареєструвати", Registration: "Реєстрація", LoginRequired: "Логін є обов'язковим", LoginMinLimit: "Логін має містити щонайменше {{limit}} символів", LoginMaxLimit: "Логін має містити не більше {{limit}} символів", PasswordRequired: "Пароль є обов'язковим", PasswordMinLimit: "Пароль має містити щонайменше {{limit}} символів", PasswordMaxLimit: "Пароль має містити не більше {{limit}} символів", LoginDescription: "Введіть ваш логін та пароль для доступу до акаунту", RegisterDescription: "Заповніть форму нижче для реєстрації", "ToRegister?": "Ще не маєте акаунту?", "ToLogin?": "Вже маєте акаунт?" }, fi = { Title: "Введіть свою електронну пошту, щоб почати чат", Subtitle: "Ми не будемо передавати вашу електронну пошту. Ваша електронна пошта використовується виключно для зв'язку з вами", NamePlaceholder: "Ім'я", NameRequired: "Ім'я є обов'язковим", EmailPlaceholder: "Електронна пошта", EmailRequired: "Електронна пошта є обов'язковою", EmailInvalid: "Невірний формат електронної пошти", AcceptTermsAndConditions: "Прийняти умови та положення", AcceptTermsAndConditionsError: "Ви повинні прийняти умови та положення", TermsAndConditionsText: "Натискаючи цю галочку, ви погоджуєтесь з", TermsAndConditionsLink: "умовами та положеннями", RememberMe: "Запам'ятати мене", RememberMeText: "Це мій приватний пристрій", Next: "Далі" }, Ui = "Опонента(ів) для чату не знайдено", yi = "Інформація", Di = { GetSummary: "Отримати резюме", ChangeMessageTone: "Змінити тон повідомлення", SummaryMessageTitle: "Тільки ти можеш бачити це повідомлення", forLast7Days: "за останні 7 днів", forLastDay: "за останній день", forUnreads: "для непрочитаних", MessageTone: "Змінити тон повідомлення", EmptyMessageTone: "Неможливо змінити тон пустого повідомлення", positive: "позитивний", negative: "негативний", cringe: "крінж" }, Ti = { RejectedIncoming: "Відхилений вхідний", RejectedOutgoing: "Відхилений вихідний", Unanswered: "Неприйнятий", Missed: "Пропущений", Canceled: "Скасований", Ended: "Завершений", videoCall: "відео виклик", audioCall: "аудіо виклик", defaultCall: "виклик" }, Ni = "Перетягніть файли сюди", xi = {
|
|
205
205
|
AddMembers: sn,
|
|
206
206
|
Admin: ln,
|
|
207
207
|
areTyping: cn,
|
|
@@ -215,8 +215,8 @@ const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "
|
|
|
215
215
|
CreateGroupChat: En,
|
|
216
216
|
Delete: hn,
|
|
217
217
|
Draft: Bn,
|
|
218
|
-
EnterMessage:
|
|
219
|
-
EnterUserName:
|
|
218
|
+
EnterMessage: kn,
|
|
219
|
+
EnterUserName: Cn,
|
|
220
220
|
ExitChat: In,
|
|
221
221
|
ExitChatConfirm: Sn,
|
|
222
222
|
FileTypeNotSupported: Qn,
|
|
@@ -272,8 +272,8 @@ const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "
|
|
|
272
272
|
IncomingCall: Ei,
|
|
273
273
|
IncomingAudioCall: hi,
|
|
274
274
|
IncomingVideoCall: Bi,
|
|
275
|
-
Accept:
|
|
276
|
-
Reject:
|
|
275
|
+
Accept: ki,
|
|
276
|
+
Reject: Ci,
|
|
277
277
|
RejectedCall: Ii,
|
|
278
278
|
MissedCall: Si,
|
|
279
279
|
AuthForm: Qi,
|
|
@@ -283,7 +283,7 @@ const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "
|
|
|
283
283
|
AI: Di,
|
|
284
284
|
CallHistory: Ti,
|
|
285
285
|
DragAndDrop: Ni
|
|
286
|
-
}, Gi = "Añadir miembros", bi = "Administrador", vi = "están escribiendo", Yi = "Cancelar", Fi = "Nombre del chat", Ki = "El nombre del chat es obligatorio", Ri = "Chat", zi = "Chats", Ji = "Elegir un chat", Li = "Continuar", ji = "Crear chat de grupo", Oi = "Eliminar", Wi = "Borrador", Zi = "Escribe un mensaje", Pi = "Introduce el nombre de usuario", Hi = "Salir del chat", Xi = "¿Estás seguro de que quieres salir de este chat?", $i = "El formato de archivo no es compatible", _i = "está escribiendo", qs = "yo", As = "Miembros", Vs = "miembros", es = "Nuevo grupo", ts = "Nuevo mensaje", as = "¡Inicia tu primer chat y mira qué pasa!", os = "Aún no hay mensajes", rs = "No hay usuarios en línea", ns = "Perfil", is = "Eliminar miembros", ss = "Restablecer", ls = "Buscar", cs = "Seleccionar", gs = "Enviar", ms = "Iniciar chat", us = "Enviar mensaje al usuario", ds = "Iniciar un nuevo grupo", ws = "escribiendo", Ms = "Usuarios", ps = "tú", Es = "Vídeo", hs = "Llamada", Bs = "Bloquear",
|
|
286
|
+
}, Gi = "Añadir miembros", bi = "Administrador", vi = "están escribiendo", Yi = "Cancelar", Fi = "Nombre del chat", Ki = "El nombre del chat es obligatorio", Ri = "Chat", zi = "Chats", Ji = "Elegir un chat", Li = "Continuar", ji = "Crear chat de grupo", Oi = "Eliminar", Wi = "Borrador", Zi = "Escribe un mensaje", Pi = "Introduce el nombre de usuario", Hi = "Salir del chat", Xi = "¿Estás seguro de que quieres salir de este chat?", $i = "El formato de archivo no es compatible", _i = "está escribiendo", qs = "yo", As = "Miembros", Vs = "miembros", es = "Nuevo grupo", ts = "Nuevo mensaje", as = "¡Inicia tu primer chat y mira qué pasa!", os = "Aún no hay mensajes", rs = "No hay usuarios en línea", ns = "Perfil", is = "Eliminar miembros", ss = "Restablecer", ls = "Buscar", cs = "Seleccionar", gs = "Enviar", ms = "Iniciar chat", us = "Enviar mensaje al usuario", ds = "Iniciar un nuevo grupo", ws = "escribiendo", Ms = "Usuarios", ps = "tú", Es = "Vídeo", hs = "Llamada", Bs = "Bloquear", ks = "Desbloquear", Cs = "Reportar", Is = "Reportar usuario", Ss = "¿Qué ocurre con este usuario?", Qs = "Motivo del reporte", fs = "El reporte se ha creado correctamente", Us = "Error al enviar el reporte", ys = "Mi perfil", Ds = "Este usuario te ha bloqueado", Ts = "Lista de bloqueados", Ns = "Añadir a la lista de bloqueados", xs = "Eliminar de la lista de bloqueados", Gs = "La lista de bloqueados está vacía", bs = "Configuración de notificaciones", vs = "Notificaciones", Ys = "Sonido de notificación", Fs = "Notificaciones push", Ks = "Por favor, espera", Rs = "Disponible", zs = "Ocupado", Js = "Ausente", Ls = "En línea", js = "Llamada entrante", Os = "Llamada de audio entrante de {{name}}", Ws = "Llamada de vídeo entrante de {{name}}", Zs = "Aceptar", Ps = "Rechazar", Hs = "{{name}} rechazó la llamada", Xs = "Llamada perdida de {{name}}", $s = { Login: "Iniciar sesión", Password: "Contraseña", Register: "Registrarse", Registration: "Registro", LoginRequired: "El usuario es obligatorio", LoginMinLimit: "El usuario debe tener al menos {{limit}} caracteres", LoginMaxLimit: "El usuario debe tener como máximo {{limit}} caracteres", PasswordRequired: "La contraseña es obligatoria", PasswordMinLimit: "La contraseña debe tener al menos {{limit}} caracteres", PasswordMaxLimit: "La contraseña debe tener como máximo {{limit}} caracteres", LoginDescription: "Introduce tu usuario y contraseña para acceder a tu cuenta", RegisterDescription: "Rellena el formulario para registrarte", "ToRegister?": "¿No tienes una cuenta?", "ToLogin?": "¿Ya tienes una cuenta?" }, _s = { Title: "Envía tus datos de contacto para iniciar un chat", Subtitle: "No compartiremos tu dirección de correo electrónico. Se utilizará únicamente para contactarte", NamePlaceholder: "Nombre", NameRequired: "El nombre es obligatorio", EmailPlaceholder: "Correo electrónico", EmailRequired: "El correo electrónico es obligatorio", EmailInvalid: "Formato de correo electrónico no válido", AcceptTermsAndConditions: "Aceptar términos y condiciones", AcceptTermsAndConditionsError: "Debes aceptar los términos y condiciones", TermsAndConditionsText: "Al marcar esta casilla, aceptas los", TermsAndConditionsLink: "términos y condiciones", RememberMe: "Recordarme", RememberMeText: "Este es mi dispositivo privado", Next: "Siguiente" }, ql = "No se encontraron los participantes del chat", Al = "Información", Vl = { GetSummary: "Obtener resumen", ChangeMessageTone: "Cambiar el tono del mensaje", SummaryMessageTitle: "Solo tú puedes ver este mensaje", forLast7Days: "de los últimos 7 días", forLastDay: "del último día", forUnreads: "de los no leídos", MessageTone: "Cambiar tono del mensaje", EmptyMessageTone: "No se puede cambiar el tono de un mensaje vacío", positive: "positivo", negative: "negativo", cringe: "vergonzoso" }, el = { RejectedIncoming: "Entrante rechazada", RejectedOutgoing: "Saliente rechazada", Unanswered: "No respondida", Missed: "Perdida", Canceled: "Cancelada", Ended: "Finalizada", videoCall: "videollamada", audioCall: "llamada de audio", defaultCall: "llamada" }, tl = "Suelta los archivos aquí", al = {
|
|
287
287
|
AddMembers: Gi,
|
|
288
288
|
Admin: bi,
|
|
289
289
|
areTyping: vi,
|
|
@@ -327,8 +327,8 @@ const ca = "Add members", ga = "Admin", ma = "are typing", ua = "Cancel", da = "
|
|
|
327
327
|
Video: Es,
|
|
328
328
|
Call: hs,
|
|
329
329
|
Block: Bs,
|
|
330
|
-
UnBlock:
|
|
331
|
-
Report:
|
|
330
|
+
UnBlock: ks,
|
|
331
|
+
Report: Cs,
|
|
332
332
|
ReportUser: Is,
|
|
333
333
|
WhatsWrongWithThisUser: Ss,
|
|
334
334
|
ProvideReason: Qs,
|
|
@@ -385,13 +385,13 @@ ct.use(gt).init({
|
|
|
385
385
|
}
|
|
386
386
|
});
|
|
387
387
|
var Iq = /* @__PURE__ */ ((q) => (q.CHATS = "chats", q.USERS = "users", q))(Iq || {});
|
|
388
|
-
const
|
|
388
|
+
const CV = {
|
|
389
389
|
activeTab: "chats"
|
|
390
390
|
/* CHATS */
|
|
391
391
|
}, BA = _((q) => ({
|
|
392
|
-
...
|
|
392
|
+
...CV,
|
|
393
393
|
setActiveTab: (A) => q({ activeTab: A }),
|
|
394
|
-
resetActiveTab: () => q({ activeTab:
|
|
394
|
+
resetActiveTab: () => q({ activeTab: CV.activeTab })
|
|
395
395
|
})), rl = () => {
|
|
396
396
|
BA.setState({
|
|
397
397
|
activeTab: "chats"
|
|
@@ -400,12 +400,12 @@ const kV = {
|
|
|
400
400
|
}, ZA = {
|
|
401
401
|
visible: !1,
|
|
402
402
|
title: ""
|
|
403
|
-
},
|
|
403
|
+
}, kA = _((q) => ({
|
|
404
404
|
...ZA,
|
|
405
405
|
showAlertBusy: (A = "") => q({ visible: !0, title: A }),
|
|
406
406
|
hideAlertBusy: () => q({ visible: !1, title: ZA.title })
|
|
407
407
|
})), nl = () => {
|
|
408
|
-
|
|
408
|
+
kA.setState({ visible: !1, title: ZA.title });
|
|
409
409
|
}, il = { CHAT_WIDGET_CONNECTYCUBE_SINGLE_VIEW_CHAT_EXTERNAL_ID: "EXTERNAL-id-012345", CHAT_WIDGET_CONNECTYCUBE_SINGLE_VIEW_CHAT_NAME: "Test Store Name - PROD", CHAT_WIDGET_CONNECTYCUBE_SINGLE_VIEW_CHAT_OPPONENTS_IDS: "4Ja3BiEWTo,bfoosyJijU,o8k9iLdYiI", CHAT_WIDGET_CONNECTYCUBE_SINGLE_VIEW_CHAT_PHOTO: "/logo.png" }, {
|
|
410
410
|
CHAT_WIDGET_CONNECTYCUBE_SINGLE_VIEW_CHAT_EXTERNAL_ID: sl,
|
|
411
411
|
CHAT_WIDGET_CONNECTYCUBE_SINGLE_VIEW_CHAT_NAME: ll,
|
|
@@ -469,9 +469,9 @@ const Wq = {
|
|
|
469
469
|
X.setState(q);
|
|
470
470
|
}, wl = () => {
|
|
471
471
|
X.setState(z);
|
|
472
|
-
},
|
|
472
|
+
}, CA = "@connectycube/chat-widget:draftMessages", Ml = () => {
|
|
473
473
|
try {
|
|
474
|
-
const q = lq() ? localStorage?.getItem(
|
|
474
|
+
const q = lq() ? localStorage?.getItem(CA) : null;
|
|
475
475
|
return q ? JSON.parse(q) : {};
|
|
476
476
|
} catch (q) {
|
|
477
477
|
return console.error("Could not load state from localStorage", q), {};
|
|
@@ -480,14 +480,14 @@ const Wq = {
|
|
|
480
480
|
if (lq())
|
|
481
481
|
try {
|
|
482
482
|
const A = JSON.stringify(q);
|
|
483
|
-
localStorage?.setItem(
|
|
483
|
+
localStorage?.setItem(CA, A);
|
|
484
484
|
} catch (A) {
|
|
485
485
|
console.error("Could not save state to localStorage", A);
|
|
486
486
|
}
|
|
487
487
|
}, pl = () => {
|
|
488
488
|
if (lq())
|
|
489
489
|
try {
|
|
490
|
-
localStorage?.removeItem(
|
|
490
|
+
localStorage?.removeItem(CA);
|
|
491
491
|
} catch (q) {
|
|
492
492
|
console.error("Could not clear state from localStorage", q);
|
|
493
493
|
}
|
|
@@ -553,7 +553,7 @@ const eV = "@connectycube/chat-widget:session", PA = "@connectycube/chat-widget:
|
|
|
553
553
|
const e = { login: q, password: A, full_name: V?.userName || q };
|
|
554
554
|
return V?.userId && (e.external_id = V.userId.toString()), V?.userEmail && (e.email = V.userEmail), V?.userAvatar && (e.avatar = V.userAvatar), V?.userProfileLink && (e.website = V.userProfileLink), await aq.users.signup(e), SA(q, A);
|
|
555
555
|
}, Bl = (q = {}) => aq.service?.sdkInstance?.config?.set?.(q), XA = async (q, A) => {
|
|
556
|
-
const V = A?.user_id ?? Ve(), e = A?.token ??
|
|
556
|
+
const V = A?.user_id ?? Ve(), e = A?.token ?? kl(), o = V && e ? { userId: V, password: e } : null;
|
|
557
557
|
return o ? q(o) : Promise.reject(new Error("[useConnectyCube.connect] Missing userId and password"));
|
|
558
558
|
}, _V = async (q, A) => {
|
|
559
559
|
const V = {};
|
|
@@ -568,7 +568,7 @@ const eV = "@connectycube/chat-widget:session", PA = "@connectycube/chat-widget:
|
|
|
568
568
|
const q = lq() && localStorage.getItem(eV);
|
|
569
569
|
return q ? JSON.parse(q) : oA() ? XV() : null;
|
|
570
570
|
}, tV = () => {
|
|
571
|
-
lq() && (localStorage.removeItem(eV), localStorage.removeItem(
|
|
571
|
+
lq() && (localStorage.removeItem(eV), localStorage.removeItem(CA));
|
|
572
572
|
}, Tq = () => {
|
|
573
573
|
const q = Dq();
|
|
574
574
|
return q ? q.user : null;
|
|
@@ -587,7 +587,7 @@ const eV = "@connectycube/chat-widget:session", PA = "@connectycube/chat-widget:
|
|
|
587
587
|
const V = Ae(), e = Object.assign({}, V, q), o = JSON.stringify(e), r = Dq();
|
|
588
588
|
let n = Tq();
|
|
589
589
|
return n && A ? n = { ...n, custom_data: o } : n = (await aq.users.update({ custom_data: o })).user, r && QA({ ...r, user: n }, oA()), n;
|
|
590
|
-
},
|
|
590
|
+
}, kl = () => {
|
|
591
591
|
const q = Dq();
|
|
592
592
|
return q ? q.token : null;
|
|
593
593
|
}, Ve = () => {
|
|
@@ -596,7 +596,7 @@ const eV = "@connectycube/chat-widget:session", PA = "@connectycube/chat-widget:
|
|
|
596
596
|
}, ee = () => {
|
|
597
597
|
const A = (oA() ? null : Dq())?.updated_at ?? (/* @__PURE__ */ new Date(0)).toISOString(), V = new Date(A).getTime(), o = Date.now() - V, r = 6e4 * 119;
|
|
598
598
|
return o > r;
|
|
599
|
-
},
|
|
599
|
+
}, Cl = (q) => {
|
|
600
600
|
const A = Dq();
|
|
601
601
|
return A ? !!(q && A.user?.external_id !== q) : !1;
|
|
602
602
|
}, te = async (q) => {
|
|
@@ -712,26 +712,26 @@ const eV = "@connectycube/chat-widget:session", PA = "@connectycube/chat-widget:
|
|
|
712
712
|
aV.setState(q);
|
|
713
713
|
}, Jl = () => {
|
|
714
714
|
aV.setState(MA);
|
|
715
|
-
},
|
|
715
|
+
}, Cq = {
|
|
716
716
|
requestOnlineUsersInterval: 300,
|
|
717
717
|
// in seconds
|
|
718
718
|
enableOnlineUsersBadge: !1,
|
|
719
719
|
onlineUsersCount: 0
|
|
720
720
|
}, rA = _((q) => ({
|
|
721
|
-
requestOnlineUsersInterval:
|
|
721
|
+
requestOnlineUsersInterval: Cq.requestOnlineUsersInterval,
|
|
722
722
|
// in seconds
|
|
723
|
-
enableOnlineUsersBadge:
|
|
724
|
-
onlineUsersCount:
|
|
723
|
+
enableOnlineUsersBadge: Cq.enableOnlineUsersBadge,
|
|
724
|
+
onlineUsersCount: Cq.onlineUsersCount,
|
|
725
725
|
setRequestOnlineUsersInterval: (A) => {
|
|
726
726
|
q({
|
|
727
|
-
requestOnlineUsersInterval: typeof A == "number" ? A > 30 ? A : 30 :
|
|
727
|
+
requestOnlineUsersInterval: typeof A == "number" ? A > 30 ? A : 30 : Cq.requestOnlineUsersInterval
|
|
728
728
|
});
|
|
729
729
|
},
|
|
730
730
|
setEnableOnlineUsersBadge: (A) => q({ enableOnlineUsersBadge: A }),
|
|
731
731
|
setOnlineUsersCount: (A) => q({ onlineUsersCount: A }),
|
|
732
|
-
resetRequestOnlineUsersInterval: () => q({ requestOnlineUsersInterval:
|
|
733
|
-
resetEnableOnlineUsersBadge: () => q({ enableOnlineUsersBadge:
|
|
734
|
-
resetOnlineUsersCount: () => q({ onlineUsersCount:
|
|
732
|
+
resetRequestOnlineUsersInterval: () => q({ requestOnlineUsersInterval: Cq.requestOnlineUsersInterval }),
|
|
733
|
+
resetEnableOnlineUsersBadge: () => q({ enableOnlineUsersBadge: Cq.enableOnlineUsersBadge }),
|
|
734
|
+
resetOnlineUsersCount: () => q({ onlineUsersCount: Cq.onlineUsersCount })
|
|
735
735
|
})), Ll = () => {
|
|
736
736
|
rA.setState({ onlineUsersCount: 0 });
|
|
737
737
|
}, oe = {
|
|
@@ -871,7 +871,7 @@ const eV = "@connectycube/chat-widget:session", PA = "@connectycube/chat-widget:
|
|
|
871
871
|
}, Ac = ({ creds: q, config: A = {}, user: V = {}, enableUserLogin: e }) => {
|
|
872
872
|
const o = W(!1), r = Object.assign(qc, A), n = X((s) => s.singleView), i = J((s) => s.setUserAuthorized);
|
|
873
873
|
Dl(n), U(() => {
|
|
874
|
-
o.current || (o.current = !0, dt(q, r), ae({ userAuthorized: !ee() }), !e &&
|
|
874
|
+
o.current || (o.current = !0, dt(q, r), ae({ userAuthorized: !ee() }), !e && Cl(V.userId) ? (console.info(`[useAppAuthorization] user changed to id: ${V.userId}, name: ${V.userName}`), tV(), i(!1)) : hl(V));
|
|
875
875
|
}, []);
|
|
876
876
|
}, SV = (q) => Symbol.iterator in q, QV = (q) => (
|
|
877
877
|
// HACK: avoid checking entries type
|
|
@@ -925,8 +925,8 @@ const tc = ({
|
|
|
925
925
|
webPushNotifications: M = rq.webPushNotifications,
|
|
926
926
|
serviceWorkerPath: w = rq.serviceWorkerPath,
|
|
927
927
|
webPushVapidPublicKey: d = rq.webPushVapidPublicKey,
|
|
928
|
-
attachmentsAccept:
|
|
929
|
-
enableUserLogin:
|
|
928
|
+
attachmentsAccept: C = R.attachmentsAccept,
|
|
929
|
+
enableUserLogin: k = R.enableUserLogin,
|
|
930
930
|
enableCalls: I = R.enableCalls,
|
|
931
931
|
enableUserStatuses: h = R.enableUserStatuses,
|
|
932
932
|
enableLastSeen: B = R.enableLastSeen,
|
|
@@ -938,8 +938,8 @@ const tc = ({
|
|
|
938
938
|
quickActions: D = MA.quickActions,
|
|
939
939
|
defaultChat: Q = Wq.defaultChat,
|
|
940
940
|
singleViewChat: b = Wq.singleViewChat,
|
|
941
|
-
enableOnlineUsersBadge: Z =
|
|
942
|
-
getOnlineUsersInterval: O =
|
|
941
|
+
enableOnlineUsersBadge: Z = Cq.enableOnlineUsersBadge,
|
|
942
|
+
getOnlineUsersInterval: O = Cq.requestOnlineUsersInterval,
|
|
943
943
|
ai: Y = _q,
|
|
944
944
|
onUnreadCountChange: mq,
|
|
945
945
|
onOnlineUsersCountChange: qq,
|
|
@@ -947,7 +947,7 @@ const tc = ({
|
|
|
947
947
|
onMessageBeforeSend: uq,
|
|
948
948
|
onMessageBeforeDisplay: Rq
|
|
949
949
|
}) => {
|
|
950
|
-
const [zq,
|
|
950
|
+
const [zq, kq, Gq] = X(
|
|
951
951
|
x((K) => [K.opened, K.setOpened, K.toggleOpened])
|
|
952
952
|
), Jq = fA((K) => K.unreadCount), [sA, Hq, y] = rA(
|
|
953
953
|
x((K) => [
|
|
@@ -996,8 +996,8 @@ const tc = ({
|
|
|
996
996
|
});
|
|
997
997
|
}, [g, m, u, M, d, w]), U(() => {
|
|
998
998
|
ae({
|
|
999
|
-
attachmentsAccept:
|
|
1000
|
-
enableUserLogin:
|
|
999
|
+
attachmentsAccept: C,
|
|
1000
|
+
enableUserLogin: k,
|
|
1001
1001
|
enableCalls: I,
|
|
1002
1002
|
enableUserStatuses: h,
|
|
1003
1003
|
enableLastSeen: B,
|
|
@@ -1008,8 +1008,8 @@ const tc = ({
|
|
|
1008
1008
|
termsAndConditions: N
|
|
1009
1009
|
});
|
|
1010
1010
|
}, [
|
|
1011
|
-
k,
|
|
1012
1011
|
C,
|
|
1012
|
+
k,
|
|
1013
1013
|
I,
|
|
1014
1014
|
h,
|
|
1015
1015
|
B,
|
|
@@ -1036,14 +1036,14 @@ const tc = ({
|
|
|
1036
1036
|
}, [Jq, mq]), U(() => {
|
|
1037
1037
|
xq?.(zq);
|
|
1038
1038
|
}, [zq, xq]), U(() => {
|
|
1039
|
-
typeof window?.ConnectyCubeChatWidget == "object" ? (window.ConnectyCubeChatWidget.open = () =>
|
|
1040
|
-
open: () =>
|
|
1041
|
-
close: () =>
|
|
1039
|
+
typeof window?.ConnectyCubeChatWidget == "object" ? (window.ConnectyCubeChatWidget.open = () => kq(!0), window.ConnectyCubeChatWidget.close = () => kq(!1), window.ConnectyCubeChatWidget.toggle = Gq) : window.ConnectyCubeChatWidget = {
|
|
1040
|
+
open: () => kq(!0),
|
|
1041
|
+
close: () => kq(!1),
|
|
1042
1042
|
toggle: Gq
|
|
1043
1043
|
}, setTimeout(() => {
|
|
1044
1044
|
window.ConnectyCubeChatWidget?.initialNotification && window?.ConnectyCubeChatWidget?.open?.();
|
|
1045
1045
|
}, 1e3);
|
|
1046
|
-
}, [
|
|
1046
|
+
}, [kq, Gq]);
|
|
1047
1047
|
};
|
|
1048
1048
|
function yA(q) {
|
|
1049
1049
|
const A = W(null), [V, e] = Fq(x((g) => [g.muted, g.playSound])), o = J((g) => g.enableUserStatuses), [r, n] = Pq(
|
|
@@ -1087,9 +1087,9 @@ function me() {
|
|
|
1087
1087
|
resetSessionData: i
|
|
1088
1088
|
} = v(), [s, c, l] = rc(
|
|
1089
1089
|
x((d) => [d.startCallDate, d.setStartCallDate, d.resetStartCallDate])
|
|
1090
|
-
), g = (d,
|
|
1091
|
-
const I = s ? Math.floor((Date.now() - s) / 1e3) : 0, h = { callHistory: !0, callType:
|
|
1092
|
-
|
|
1090
|
+
), g = (d, C, k) => {
|
|
1091
|
+
const I = s ? Math.floor((Date.now() - s) / 1e3) : 0, h = { callHistory: !0, callType: k, duration: I };
|
|
1092
|
+
C ? A(d, C, h) : q(d, void 0, h), l();
|
|
1093
1093
|
}, m = () => {
|
|
1094
1094
|
c();
|
|
1095
1095
|
}, u = (d) => {
|
|
@@ -1129,17 +1129,17 @@ const nc = () => {
|
|
|
1129
1129
|
if (Date.now() - g.current < 3e4)
|
|
1130
1130
|
return;
|
|
1131
1131
|
const w = /* @__PURE__ */ new Set(), d = [...A].sort(
|
|
1132
|
-
(
|
|
1132
|
+
(k, I) => new Date(I.updated_at).getTime() - new Date(k.updated_at).getTime()
|
|
1133
1133
|
);
|
|
1134
|
-
for (let
|
|
1135
|
-
const I = e(d[
|
|
1134
|
+
for (let k = 0; k < d.length; k++) {
|
|
1135
|
+
const I = e(d[k]);
|
|
1136
1136
|
if (typeof I == "number" && (w.add(I), w.size >= 10))
|
|
1137
1137
|
break;
|
|
1138
1138
|
}
|
|
1139
|
-
const
|
|
1139
|
+
const C = async () => {
|
|
1140
1140
|
await Promise.all([...w].map(o)), g.current = Date.now();
|
|
1141
1141
|
};
|
|
1142
|
-
q ? await
|
|
1142
|
+
q ? await C() : l.current.fetchLastActivities = C;
|
|
1143
1143
|
}, u = () => {
|
|
1144
1144
|
const w = e();
|
|
1145
1145
|
if (!w)
|
|
@@ -1186,19 +1186,19 @@ function ue() {
|
|
|
1186
1186
|
])
|
|
1187
1187
|
), i = J((h) => h.enableUserStatuses), [s, c] = Pq(
|
|
1188
1188
|
x((h) => [h.userStatus, h.isNotifications])
|
|
1189
|
-
), l = i && (s === $.BUSY || s === $.AWAY), g = q || l, { users: m, dialogs: u, fetchDialogs: M } = v(), w = yA(ic), d = async (h) => u.find(({ _id: B }) => B === h) ?? (await M({ _id: h }))?.[0],
|
|
1189
|
+
), l = i && (s === $.BUSY || s === $.AWAY), g = q || l, { users: m, dialogs: u, fetchDialogs: M } = v(), w = yA(ic), d = async (h) => u.find(({ _id: B }) => B === h) ?? (await M({ _id: h }))?.[0], C = async (h = "", B = "", S = "/logo.png") => {
|
|
1190
1190
|
if (Notification.permission === "granted") {
|
|
1191
1191
|
const p = V ? await ne(V) : null;
|
|
1192
1192
|
return p ? p.showNotification(h, { body: B, icon: S }) : new Notification(h, { body: B, icon: S });
|
|
1193
1193
|
} else
|
|
1194
1194
|
console.warn("Notifications are disabled");
|
|
1195
|
-
},
|
|
1195
|
+
}, k = async (h = "", B = "", S = "/logo.png") => {
|
|
1196
1196
|
if (!g && (w.play(), A && c))
|
|
1197
|
-
return
|
|
1197
|
+
return C(h, B, S);
|
|
1198
1198
|
}, I = async (h, { body: B, dialog_id: S }) => {
|
|
1199
1199
|
if (typeof S == "string" && typeof B == "string") {
|
|
1200
1200
|
const p = await d(S), T = m[h], f = T?.full_name || T?.login || "Unknown", N = p?.type === 3, D = N ? p?.name || f : `${f} in ${p?.name}`, Q = N && T?.avatar || p?.photo || void 0;
|
|
1201
|
-
return
|
|
1201
|
+
return k(D, B, Q);
|
|
1202
1202
|
}
|
|
1203
1203
|
};
|
|
1204
1204
|
return U(() => {
|
|
@@ -1215,8 +1215,8 @@ function ue() {
|
|
|
1215
1215
|
r,
|
|
1216
1216
|
n
|
|
1217
1217
|
]), {
|
|
1218
|
-
showNotification:
|
|
1219
|
-
notifyWithSound:
|
|
1218
|
+
showNotification: C,
|
|
1219
|
+
notifyWithSound: k,
|
|
1220
1220
|
notifyOnMessage: I,
|
|
1221
1221
|
playAudio: w.play
|
|
1222
1222
|
};
|
|
@@ -1422,7 +1422,7 @@ const gq = ({ loading: q = !1, layout: A = "flow", type: V = "default", ...e })
|
|
|
1422
1422
|
};
|
|
1423
1423
|
gq.displayName = "Spinner";
|
|
1424
1424
|
const hc = () => {
|
|
1425
|
-
const [q, A] =
|
|
1425
|
+
const [q, A] = kA(x((V) => [V.visible, V.title]));
|
|
1426
1426
|
return /* @__PURE__ */ t.createElement(uc, { open: q }, /* @__PURE__ */ t.createElement(Mc, { className: "size-auto" }, /* @__PURE__ */ t.createElement(pc, null, /* @__PURE__ */ t.createElement(Ec, { className: "self-center" }, /* @__PURE__ */ t.createElement("div", { className: "flex items-center space-x-4" }, /* @__PURE__ */ t.createElement("span", null, A), /* @__PURE__ */ t.createElement(gq, { loading: !0 }))))));
|
|
1427
1427
|
}, UV = ({ customButton: q }) => {
|
|
1428
1428
|
const {
|
|
@@ -1443,12 +1443,12 @@ const hc = () => {
|
|
|
1443
1443
|
g ? l() : c();
|
|
1444
1444
|
}, [g, c, l]), d = tq(() => {
|
|
1445
1445
|
A(), u(V?.initiatorID);
|
|
1446
|
-
}, [V, A, u]),
|
|
1446
|
+
}, [V, A, u]), C = tq(() => {
|
|
1447
1447
|
m ? e() : o();
|
|
1448
1448
|
}, [m, o, e]);
|
|
1449
|
-
return /* @__PURE__ */ t.createElement("div", { className: "flex flex-row items-center justify-center bg-gray-800 rounded-full p-2 gap-x-4" }, /* @__PURE__ */ t.createElement("button", { onClick: M, className: "bg-gray-600 hover:bg-gray-500 rounded-full p-2" }, s ? /* @__PURE__ */ t.createElement(ht, { className: "text-background" }) : /* @__PURE__ */ t.createElement(WA, { className: "text-background" })), /* @__PURE__ */ t.createElement("button", { onClick: w, className: "bg-gray-600 hover:bg-gray-500 rounded-full p-2" }, g ? /* @__PURE__ */ t.createElement(Bt, { className: "text-background" }) : /* @__PURE__ */ t.createElement(
|
|
1449
|
+
return /* @__PURE__ */ t.createElement("div", { className: "flex flex-row items-center justify-center bg-gray-800 rounded-full p-2 gap-x-4" }, /* @__PURE__ */ t.createElement("button", { onClick: M, className: "bg-gray-600 hover:bg-gray-500 rounded-full p-2" }, s ? /* @__PURE__ */ t.createElement(ht, { className: "text-background" }) : /* @__PURE__ */ t.createElement(WA, { className: "text-background" })), /* @__PURE__ */ t.createElement("button", { onClick: w, className: "bg-gray-600 hover:bg-gray-500 rounded-full p-2" }, g ? /* @__PURE__ */ t.createElement(Bt, { className: "text-background" }) : /* @__PURE__ */ t.createElement(kt, { className: "text-background" })), /* @__PURE__ */ t.createElement("button", { onClick: d, className: "bg-red-600 hover:bg-red-700 rounded-full p-2" }, /* @__PURE__ */ t.createElement(eA, { className: "text-background", style: { transform: "rotate(135deg)" } })), q || /* @__PURE__ */ t.createElement("div", { className: "p-1.5" }, /* @__PURE__ */ t.createElement("div", { className: "size-7" })), /* @__PURE__ */ t.createElement("button", { onClick: C, className: "bg-gray-600 hover:bg-gray-500 rounded-full p-2" }, m ? /* @__PURE__ */ t.createElement(Ct, { className: "text-background" }) : /* @__PURE__ */ t.createElement(It, { className: "text-background" })));
|
|
1450
1450
|
}, Bc = "data:audio/mpeg;base64,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D6RsJdYoZLgO0eSQEIbLAm5rWyaK/fdS7LX/pIPJ5BRXx/PfH1O9f6////////////Uc//5n/kUQAfSzTpKDJbGCyqetHhkUWGPBuUAZklv/84JkGA1dLU4D7lABDvMSzl/NaAHVPzDurONSxElKhkBN+BEQAHvA5g0MYksTRtLJeMRoLSROldb0zVFFFvKNaU2RbSU9NLRHSL4njVFLrNbf/R+///b//lArPSXTzE0UTWefdPf/1cBbUBKgigLhaL6jMGYvDAn6SkL7KJLROsTQhAsktqs29vqVf///5NIiT///6X///////////////k00akABEHKDh4AfmagmgkqqQ5vOhgTJEKBSCobVWeonWuf3cB8wp4/OtVMtfYHUz//zgmQtDJVRVR9o6KsNWxa6NpgF5gz/Czqh+h00WOb1es1L38o5VlxT/80Cpn6kZ2d/QAJ51TmO9+n//+KnyTOZyQIw1GQXUM9cT5JIACkDKEAYPqEVDoGIcePOYHkbXke1jjlgBNiwmruy3qnE6/b/+r/6Itrf//9H///////hHiUgE2B206/gN37FuMOOEBh/QqHBCg7sMrlE3SNVltf9bZT3V2AZc0owhAGgKza5b2rl3ebaJCc1D1zhCLpvk2UsaYgKfv1EABZR//r/gtal//OCZE8MyYtVH23ngw1jFtr+UAXmSz+qf///hYtrTyyKhtW2f9fS///9wkPUgNopDejuAnG27BC0xTBGG4Xw1IuFz0ZQllv6t7/Fw1v6+kr/8XBf/v+v+d9v/////+LxF6JAAZC5FLOAIajr4UL4JSjsUafApPAQDKwtOKdzkNZCB7//TYLW44z7OHDMR4aHIXezcI72NKeG3lzsAoxHlt8qTw1jGaXN2o1UtMFPLH2t6YLJ3+t/Mf1R3PS0UPW1/2//1k8dHposrVus2okQAH3/84Jkbw2RN08fbe2FDoMSyl45lEqA7qZeIB9QUC993NWAxucXdbgMjrfebPlRDV2DwT5utPdxUf/42//r/r///3//6mf////////yWhAACcK3d+EAynIHgRa4sAgYQ51qLxhyBYqDKAqGQ3JIylI3efw7gkNYxnomwUYBTEvMBDLhTNQxOTaXTjMLg57vRGkDiaLszkQpWOk02BUkdBPpdQsQyIpfX9T/zFq9/////1jSUX////6wApaAHcrsKB9j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";
|
|
1451
|
-
function
|
|
1451
|
+
function kc({ id: q, stream: A, mirror: V, className: e, muted: o, ...r }, n) {
|
|
1452
1452
|
const i = a.useRef(null), s = a.useMemo(() => q ?? `stream-${Kq()}`, [q]), c = typeof o == "boolean" ? o : !1, l = "size-full object-contain", g = V ? "scale-x-[-1]" : "";
|
|
1453
1453
|
return a.useImperativeHandle(n, () => i.current || {}, []), a.useEffect(() => {
|
|
1454
1454
|
if (i.current && A) {
|
|
@@ -1477,13 +1477,13 @@ function Cc({ id: q, stream: A, mirror: V, className: e, muted: o, ...r }, n) {
|
|
|
1477
1477
|
}
|
|
1478
1478
|
) : null;
|
|
1479
1479
|
}
|
|
1480
|
-
const rV = a.forwardRef(
|
|
1480
|
+
const rV = a.forwardRef(kc);
|
|
1481
1481
|
rV.displayName = "StreamView";
|
|
1482
|
-
function
|
|
1482
|
+
function Cc({ muted: q, mirror: A, ...V }, e) {
|
|
1483
1483
|
const o = typeof q == "boolean" ? q : !0, r = typeof A == "boolean" ? A : !0;
|
|
1484
1484
|
return /* @__PURE__ */ a.createElement(rV, { ref: e, muted: o, mirror: r, ...V });
|
|
1485
1485
|
}
|
|
1486
|
-
const $A = a.forwardRef(
|
|
1486
|
+
const $A = a.forwardRef(Cc);
|
|
1487
1487
|
$A.displayName = "LocalStreamView";
|
|
1488
1488
|
function Ic({ muted: q, mirror: A, ...V }, e) {
|
|
1489
1489
|
const o = typeof q == "boolean" ? q : !1, r = typeof A == "boolean" ? A : !1;
|
|
@@ -1504,7 +1504,7 @@ function Sc({
|
|
|
1504
1504
|
pipButtonIconProps: c,
|
|
1505
1505
|
...l
|
|
1506
1506
|
}, g) {
|
|
1507
|
-
const m = a.useRef(null), [u, M] = a.useState(!1), [w, d] = a.useState(!1),
|
|
1507
|
+
const m = a.useRef(null), [u, M] = a.useState(!1), [w, d] = a.useState(!1), C = a.useCallback(async () => {
|
|
1508
1508
|
const I = m.current;
|
|
1509
1509
|
if (I)
|
|
1510
1510
|
try {
|
|
@@ -1512,7 +1512,7 @@ function Sc({
|
|
|
1512
1512
|
} catch (h) {
|
|
1513
1513
|
console.error("Fullscreen error:", h);
|
|
1514
1514
|
}
|
|
1515
|
-
}, []),
|
|
1515
|
+
}, []), k = a.useCallback(() => {
|
|
1516
1516
|
A && d((I) => !I);
|
|
1517
1517
|
}, [A]);
|
|
1518
1518
|
return a.useImperativeHandle(
|
|
@@ -1521,10 +1521,10 @@ function Sc({
|
|
|
1521
1521
|
...m.current || {},
|
|
1522
1522
|
isFullscreen: u,
|
|
1523
1523
|
isPictureInPicture: w,
|
|
1524
|
-
toggleFullscreen:
|
|
1525
|
-
togglePictureInPicture:
|
|
1524
|
+
toggleFullscreen: C,
|
|
1525
|
+
togglePictureInPicture: k
|
|
1526
1526
|
}),
|
|
1527
|
-
[u, w,
|
|
1527
|
+
[u, w, C, k]
|
|
1528
1528
|
), a.useEffect(() => {
|
|
1529
1529
|
const I = () => {
|
|
1530
1530
|
M(!!document.fullscreenElement), d(!!document.fullscreenElement);
|
|
@@ -1541,7 +1541,7 @@ function Sc({
|
|
|
1541
1541
|
/* @__PURE__ */ a.createElement(
|
|
1542
1542
|
"button",
|
|
1543
1543
|
{
|
|
1544
|
-
onClick:
|
|
1544
|
+
onClick: C,
|
|
1545
1545
|
...r,
|
|
1546
1546
|
className: E(
|
|
1547
1547
|
"absolute top-2 right-2 p-1 rounded-md bg-black/50 text-white hover:bg-black/80 z-10 shadow-xs shadow-white/25",
|
|
@@ -1563,7 +1563,7 @@ function Sc({
|
|
|
1563
1563
|
), /* @__PURE__ */ a.createElement(
|
|
1564
1564
|
"button",
|
|
1565
1565
|
{
|
|
1566
|
-
onClick:
|
|
1566
|
+
onClick: k,
|
|
1567
1567
|
...s,
|
|
1568
1568
|
className: E(
|
|
1569
1569
|
"absolute bottom-2 right-2 p-1 rounded-md bg-black/50 text-white hover:bg-black/80 z-10 shadow-xs shadow-white/25",
|
|
@@ -1633,24 +1633,24 @@ const Qc = () => {
|
|
|
1633
1633
|
return Vq(h);
|
|
1634
1634
|
},
|
|
1635
1635
|
[A, V]
|
|
1636
|
-
),
|
|
1636
|
+
), C = tq(async () => {
|
|
1637
1637
|
let I = g;
|
|
1638
1638
|
if (r) {
|
|
1639
1639
|
const h = await d(r.initiatorID), B = r.callType === VA.VIDEO ? "IncomingVideoCall" : "IncomingAudioCall";
|
|
1640
1640
|
I = q(B, { name: h });
|
|
1641
1641
|
}
|
|
1642
1642
|
queueMicrotask(() => u(I));
|
|
1643
|
-
}, [q, r, g, d]),
|
|
1643
|
+
}, [q, r, g, d]), k = tq(async () => {
|
|
1644
1644
|
if (n) {
|
|
1645
1645
|
const { userID: I } = n, h = await d(I);
|
|
1646
1646
|
nq.info(q("MissedCall", { name: h })), i(mA.ON_STOP_CALLING);
|
|
1647
1647
|
}
|
|
1648
1648
|
}, [q, n, d, i]);
|
|
1649
1649
|
return U(() => {
|
|
1650
|
-
k();
|
|
1651
|
-
}, [k]), U(() => {
|
|
1652
1650
|
C();
|
|
1653
1651
|
}, [C]), U(() => {
|
|
1652
|
+
k();
|
|
1653
|
+
}, [k]), U(() => {
|
|
1654
1654
|
r ? l.play(!0) : l.stop();
|
|
1655
1655
|
}, [r, l]), r ? /* @__PURE__ */ t.createElement("div", { className: "bg-black/50 fixed inset-0 z-101 flex items-center justify-center" }, /* @__PURE__ */ t.createElement("div", { className: "bg-white p-4 rounded-lg shadow-xl text-center" }, /* @__PURE__ */ t.createElement("h2", { className: "text-xl font-bold mb-4" }, m), /* @__PURE__ */ t.createElement("div", { className: "flex justify-center gap-2" }, /* @__PURE__ */ t.createElement(
|
|
1656
1656
|
"button",
|
|
@@ -1733,33 +1733,30 @@ var he = {
|
|
|
1733
1733
|
}, yV = t.createContext && /* @__PURE__ */ t.createContext(he), xc = ["attr", "size", "title"];
|
|
1734
1734
|
function Gc(q, A) {
|
|
1735
1735
|
if (q == null) return {};
|
|
1736
|
-
var V = bc(q, A)
|
|
1736
|
+
var V, e, o = bc(q, A);
|
|
1737
1737
|
if (Object.getOwnPropertySymbols) {
|
|
1738
1738
|
var r = Object.getOwnPropertySymbols(q);
|
|
1739
|
-
for (
|
|
1740
|
-
e = r[o], !(A.indexOf(e) >= 0) && Object.prototype.propertyIsEnumerable.call(q, e) && (V[e] = q[e]);
|
|
1739
|
+
for (e = 0; e < r.length; e++) V = r[e], A.indexOf(V) === -1 && {}.propertyIsEnumerable.call(q, V) && (o[V] = q[V]);
|
|
1741
1740
|
}
|
|
1742
|
-
return
|
|
1741
|
+
return o;
|
|
1743
1742
|
}
|
|
1744
1743
|
function bc(q, A) {
|
|
1745
1744
|
if (q == null) return {};
|
|
1746
1745
|
var V = {};
|
|
1747
|
-
for (var e in q)
|
|
1748
|
-
if (
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
}
|
|
1746
|
+
for (var e in q) if ({}.hasOwnProperty.call(q, e)) {
|
|
1747
|
+
if (A.indexOf(e) !== -1) continue;
|
|
1748
|
+
V[e] = q[e];
|
|
1749
|
+
}
|
|
1752
1750
|
return V;
|
|
1753
1751
|
}
|
|
1754
1752
|
function pA() {
|
|
1755
1753
|
return pA = Object.assign ? Object.assign.bind() : function(q) {
|
|
1756
1754
|
for (var A = 1; A < arguments.length; A++) {
|
|
1757
1755
|
var V = arguments[A];
|
|
1758
|
-
for (var e in V)
|
|
1759
|
-
Object.prototype.hasOwnProperty.call(V, e) && (q[e] = V[e]);
|
|
1756
|
+
for (var e in V) ({}).hasOwnProperty.call(V, e) && (q[e] = V[e]);
|
|
1760
1757
|
}
|
|
1761
1758
|
return q;
|
|
1762
|
-
}, pA.apply(
|
|
1759
|
+
}, pA.apply(null, arguments);
|
|
1763
1760
|
}
|
|
1764
1761
|
function DV(q, A) {
|
|
1765
1762
|
var V = Object.keys(q);
|
|
@@ -1783,7 +1780,7 @@ function EA(q) {
|
|
|
1783
1780
|
return q;
|
|
1784
1781
|
}
|
|
1785
1782
|
function vc(q, A, V) {
|
|
1786
|
-
return A = Yc(A)
|
|
1783
|
+
return (A = Yc(A)) in q ? Object.defineProperty(q, A, { value: V, enumerable: !0, configurable: !0, writable: !0 }) : q[A] = V, q;
|
|
1787
1784
|
}
|
|
1788
1785
|
function Yc(q) {
|
|
1789
1786
|
var A = Fc(q, "string");
|
|
@@ -1832,12 +1829,12 @@ function Kc(q) {
|
|
|
1832
1829
|
};
|
|
1833
1830
|
return yV !== void 0 ? /* @__PURE__ */ t.createElement(yV.Consumer, null, (V) => A(V)) : A(he);
|
|
1834
1831
|
}
|
|
1835
|
-
function Ce(q) {
|
|
1836
|
-
return hq({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "M217.9 256L345 129c9.4-9.4 9.4-24.6 0-33.9-9.4-9.4-24.6-9.3-34 0L167 239c-9.1 9.1-9.3 23.7-.7 33.1L310.9 417c4.7 4.7 10.9 7 17 7s12.3-2.3 17-7c9.4-9.4 9.4-24.6 0-33.9L217.9 256z" }, child: [] }] })(q);
|
|
1837
|
-
}
|
|
1838
1832
|
function Rc(q) {
|
|
1839
1833
|
return hq({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "M312 372c-7.7 0-14 6.3-14 14 0 9.9-8.1 18-18 18H94c-9.9 0-18-8.1-18-18V126c0-9.9 8.1-18 18-18h186c9.9 0 18 8.1 18 18 0 7.7 6.3 14 14 14s14-6.3 14-14c0-25.4-20.6-46-46-46H94c-25.4 0-46 20.6-46 46v260c0 25.4 20.6 46 46 46h186c25.4 0 46-20.6 46-46 0-7.7-6.3-14-14-14z" }, child: [] }, { tag: "path", attr: { d: "M372.9 158.1c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-5.5 5.5-5.5 14.3 0 19.8l65.2 64.2H162c-7.7 0-14 6.3-14 14s6.3 14 14 14h256.6L355 334.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l82.6-82.4c4.3-4.3 6.5-9.3 6.5-14.7 0-5.3-2.3-10.3-6.5-14.5l-84.5-84.2z" }, child: [] }] })(q);
|
|
1840
1834
|
}
|
|
1835
|
+
function ke(q) {
|
|
1836
|
+
return hq({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "M217.9 256L345 129c9.4-9.4 9.4-24.6 0-33.9-9.4-9.4-24.6-9.3-34 0L167 239c-9.1 9.1-9.3 23.7-.7 33.1L310.9 417c4.7 4.7 10.9 7 17 7s12.3-2.3 17-7c9.4-9.4 9.4-24.6 0-33.9L217.9 256z" }, child: [] }] })(q);
|
|
1837
|
+
}
|
|
1841
1838
|
function nV({ status: q, ...A }) {
|
|
1842
1839
|
switch (q) {
|
|
1843
1840
|
case "available":
|
|
@@ -2008,7 +2005,7 @@ function iq({
|
|
|
2008
2005
|
}
|
|
2009
2006
|
);
|
|
2010
2007
|
}
|
|
2011
|
-
function
|
|
2008
|
+
function Ce({ ...q }) {
|
|
2012
2009
|
return /* @__PURE__ */ a.createElement(Uq.Sub, { "data-slot": "dropdown-menu-sub", ...q });
|
|
2013
2010
|
}
|
|
2014
2011
|
function Ie({
|
|
@@ -2068,8 +2065,8 @@ function jc({
|
|
|
2068
2065
|
headerProps: M,
|
|
2069
2066
|
titleProps: w,
|
|
2070
2067
|
descriptionProps: d,
|
|
2071
|
-
footerProps:
|
|
2072
|
-
cancelProps:
|
|
2068
|
+
footerProps: C,
|
|
2069
|
+
cancelProps: k,
|
|
2073
2070
|
cancelButtonProps: I,
|
|
2074
2071
|
actionProps: h,
|
|
2075
2072
|
actionButtonProps: B,
|
|
@@ -2127,10 +2124,10 @@ function jc({
|
|
|
2127
2124
|
/* @__PURE__ */ a.createElement(
|
|
2128
2125
|
"div",
|
|
2129
2126
|
{
|
|
2130
|
-
...
|
|
2131
|
-
className: E("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
2127
|
+
...C,
|
|
2128
|
+
className: E("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", C?.className)
|
|
2132
2129
|
},
|
|
2133
|
-
/* @__PURE__ */ a.createElement(oq.Cancel, { ...
|
|
2130
|
+
/* @__PURE__ */ a.createElement(oq.Cancel, { ...k, onClick: o }, /* @__PURE__ */ a.createElement(sq, { variant: "outline", ...I }, V)),
|
|
2134
2131
|
/* @__PURE__ */ a.createElement(oq.Action, { ...h, onClick: r }, /* @__PURE__ */ a.createElement(sq, { ...B }, e))
|
|
2135
2132
|
)
|
|
2136
2133
|
))
|
|
@@ -2205,13 +2202,13 @@ const Oc = () => {
|
|
|
2205
2202
|
}
|
|
2206
2203
|
));
|
|
2207
2204
|
}, Wc = () => {
|
|
2208
|
-
const { t: q } = G(), A = nA((
|
|
2209
|
-
x((
|
|
2210
|
-
), o = X((
|
|
2205
|
+
const { t: q } = G(), A = nA((k) => k.showProfile), [V, e] = J(
|
|
2206
|
+
x((k) => [k.enableUserStatuses, k.enableLastSeen])
|
|
2207
|
+
), o = X((k) => k.singleView), { users: r, selectedDialog: n, lastActivity: i, getDialogOpponentId: s, unselectDialog: c } = v(), l = s(), g = de(n), m = e && l && i[l], u = m === "Online", M = m === "Online" ? q("Online") : m, w = g || M, d = V && l && u ? aA(r[l]) : void 0, C = () => {
|
|
2211
2208
|
A(l);
|
|
2212
2209
|
};
|
|
2213
2210
|
return /* @__PURE__ */ t.createElement("div", { className: "flex justify-between relative items-center" }, /* @__PURE__ */ t.createElement("div", { className: "flex items-center relative" }, !o && /* @__PURE__ */ t.createElement(
|
|
2214
|
-
|
|
2211
|
+
ke,
|
|
2215
2212
|
{
|
|
2216
2213
|
onClick: () => {
|
|
2217
2214
|
c();
|
|
@@ -2222,7 +2219,7 @@ const Oc = () => {
|
|
|
2222
2219
|
"div",
|
|
2223
2220
|
{
|
|
2224
2221
|
className: "flex items-center justify-center mr-3 size-13 rounded-full cursor-pointer",
|
|
2225
|
-
onClick:
|
|
2222
|
+
onClick: C
|
|
2226
2223
|
},
|
|
2227
2224
|
/* @__PURE__ */ t.createElement(
|
|
2228
2225
|
Bq,
|
|
@@ -2234,7 +2231,7 @@ const Oc = () => {
|
|
|
2234
2231
|
presence: d
|
|
2235
2232
|
}
|
|
2236
2233
|
)
|
|
2237
|
-
), /* @__PURE__ */ t.createElement("div", { className: "flex flex-col items-start" }, /* @__PURE__ */ t.createElement("span", { className: "text-black font-medium cursor-pointer line-clamp-1 break-all", onClick:
|
|
2234
|
+
), /* @__PURE__ */ t.createElement("div", { className: "flex flex-col items-start" }, /* @__PURE__ */ t.createElement("span", { className: "text-black font-medium cursor-pointer line-clamp-1 break-all", onClick: C }, n?.name ?? ""), !o && /* @__PURE__ */ t.createElement("div", { className: "flex items-center pt-1 max-h-5" }, /* @__PURE__ */ t.createElement("span", { className: "text-xs text-gray-500 italic line-clamp-2 min-h-5 text-left leading-none pl-0.5" }, w)))), /* @__PURE__ */ t.createElement(Oc, null));
|
|
2238
2235
|
}, Zc = t.memo(Wc);
|
|
2239
2236
|
function Pc({ ...q }, A) {
|
|
2240
2237
|
return /* @__PURE__ */ a.createElement(
|
|
@@ -2342,17 +2339,17 @@ function $c({
|
|
|
2342
2339
|
I.preventDefault(), I.stopPropagation();
|
|
2343
2340
|
}, d = (I) => {
|
|
2344
2341
|
w(I), M(!1), Qe(I.dataTransfer.files, e, V, q, A), I.dataTransfer.clearData();
|
|
2345
|
-
}, k = (I) => {
|
|
2346
|
-
w(I), I.dataTransfer.items && I.dataTransfer.items.length > 0 && M(!0);
|
|
2347
2342
|
}, C = (I) => {
|
|
2343
|
+
w(I), I.dataTransfer.items && I.dataTransfer.items.length > 0 && M(!0);
|
|
2344
|
+
}, k = (I) => {
|
|
2348
2345
|
I.currentTarget.contains(I.relatedTarget) || M(!1);
|
|
2349
2346
|
};
|
|
2350
2347
|
return /* @__PURE__ */ a.createElement(
|
|
2351
2348
|
"div",
|
|
2352
2349
|
{
|
|
2353
2350
|
ref: m,
|
|
2354
|
-
onDragEnter:
|
|
2355
|
-
onDragLeave:
|
|
2351
|
+
onDragEnter: C,
|
|
2352
|
+
onDragLeave: k,
|
|
2356
2353
|
onDragOver: w,
|
|
2357
2354
|
...g,
|
|
2358
2355
|
className: E("relative size-full min-h-0", g?.className)
|
|
@@ -2397,17 +2394,17 @@ function $c({
|
|
|
2397
2394
|
}
|
|
2398
2395
|
const Ue = a.forwardRef($c);
|
|
2399
2396
|
Ue.displayName = "FilePickerDropzone";
|
|
2400
|
-
function Zq(q) {
|
|
2401
|
-
return hq({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { fill: "none", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "48", d: "m184 112 144 144-144 144" }, child: [] }] })(q);
|
|
2402
|
-
}
|
|
2403
2397
|
function _c(q) {
|
|
2404
|
-
return hq({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "
|
|
2398
|
+
return hq({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "M48 176v.66a17.38 17.38 0 0 1-4.2 11.23v.05C38.4 194.32 32 205.74 32 224c0 16.55 5.3 28.23 11.68 35.91A19 19 0 0 1 48 272a32 32 0 0 0 32 32h8a8 8 0 0 0 8-8V152a8 8 0 0 0-8-8h-8a32 32 0 0 0-32 32zm404.18 10.55-.93-.17a4 4 0 0 1-3.25-3.93V62c0-12.64-8.39-24-20.89-28.32-11.92-4.11-24.34-.76-31.68 8.53a431.18 431.18 0 0 1-51.31 51.69c-23.63 20-46.24 34.25-67 42.31a8 8 0 0 0-5.15 7.47V299a16 16 0 0 0 9.69 14.69c19.34 8.29 40.24 21.83 62 40.28a433.74 433.74 0 0 1 51.68 52.16 26.22 26.22 0 0 0 21.1 9.87 33.07 33.07 0 0 0 10.44-1.74C439.71 410 448 399.05 448 386.4V265.53a4 4 0 0 1 3.33-3.94l.85-.14C461.8 258.84 480 247.67 480 224s-18.2-34.84-27.82-37.45zM240 320V152a8 8 0 0 0-8-8h-96a8 8 0 0 0-8 8v304a24 24 0 0 0 24 24h52.45a32.66 32.66 0 0 0 25.93-12.45 31.65 31.65 0 0 0 5.21-29.05c-1.62-5.18-3.63-11-5.77-17.19-7.91-22.9-18.34-37.07-21.12-69.32A32 32 0 0 0 240 320z" }, child: [] }] })(q);
|
|
2405
2399
|
}
|
|
2406
2400
|
function qg(q) {
|
|
2407
|
-
return hq({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "
|
|
2401
|
+
return hq({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "M256 256c-13.47 0-26.94-2.39-37.44-7.17l-148-67.49C63.79 178.26 48 169.25 48 152.24s15.79-26 22.58-29.12l149.28-68.07c20.57-9.4 51.61-9.4 72.19 0l149.37 68.07c6.79 3.09 22.58 12.1 22.58 29.12s-15.79 26-22.58 29.11l-148 67.48C282.94 253.61 269.47 256 256 256zm176.76-100.86z" }, child: [] }, { tag: "path", attr: { d: "M441.36 226.81 426.27 220l-38.77 17.74-94 43c-10.5 4.8-24 7.19-37.44 7.19s-26.93-2.39-37.42-7.19l-94.07-43L85.79 220l-15.22 6.84C63.79 229.93 48 239 48 256s15.79 26.08 22.56 29.17l148 67.63C229 357.6 242.49 360 256 360s26.94-2.4 37.44-7.19l147.87-67.61c6.81-3.09 22.69-12.11 22.69-29.2s-15.77-26.07-22.64-29.19z" }, child: [] }, { tag: "path", attr: { d: "m441.36 330.8-15.09-6.8-38.77 17.73-94 42.95c-10.5 4.78-24 7.18-37.44 7.18s-26.93-2.39-37.42-7.18l-94.07-43L85.79 324l-15.22 6.84C63.79 333.93 48 343 48 360s15.79 26.07 22.56 29.15l148 67.59C229 461.52 242.54 464 256 464s26.88-2.48 37.38-7.27l147.92-67.57c6.82-3.08 22.7-12.1 22.7-29.16s-15.77-26.07-22.64-29.2z" }, child: [] }] })(q);
|
|
2402
|
+
}
|
|
2403
|
+
function Zq(q) {
|
|
2404
|
+
return hq({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { fill: "none", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "48", d: "m184 112 144 144-144 144" }, child: [] }] })(q);
|
|
2408
2405
|
}
|
|
2409
2406
|
const Ag = ({ activeKey: q, setActiveKey: A, enabled: V, aiModel: e }) => {
|
|
2410
|
-
const { i18n: o, t: r } = G(), n = OV[o.language], i = W(""), { users: s, messages: c, selectedDialog: l, currentUserId: g, addTempMessage: m, updateTempMessage: u, generateTempMessageId: M } = v(), w = l?._id ?? "", d = H(() => c[w] ?? [], [c, w]),
|
|
2407
|
+
const { i18n: o, t: r } = G(), n = OV[o.language], i = W(""), { users: s, messages: c, selectedDialog: l, currentUserId: g, addTempMessage: m, updateTempMessage: u, generateTempMessageId: M } = v(), w = l?._id ?? "", d = H(() => c[w] ?? [], [c, w]), C = q === Sq.GET_SUMMARY, k = tq(
|
|
2411
2408
|
(h) => A(h ? Sq.GET_SUMMARY : Sq.DEFAULT),
|
|
2412
2409
|
[A]
|
|
2413
2410
|
), I = tq(
|
|
@@ -2436,7 +2433,7 @@ const Ag = ({ activeKey: q, setActiveKey: A, enabled: V, aiModel: e }) => {
|
|
|
2436
2433
|
}
|
|
2437
2434
|
p.forEach(({ sender_id: f, message: N }) => {
|
|
2438
2435
|
const D = Vq(s[f]);
|
|
2439
|
-
T += `- ${f === g ? `${D}${
|
|
2436
|
+
T += `- ${f === g ? `${D}${kV}` : D}: ${N}
|
|
2440
2437
|
`;
|
|
2441
2438
|
}), i.current = M(), m(i.current, l, {
|
|
2442
2439
|
tag: AV.AI_TEXT_SUMMARY,
|
|
@@ -2451,7 +2448,7 @@ const Ag = ({ activeKey: q, setActiveKey: A, enabled: V, aiModel: e }) => {
|
|
|
2451
2448
|
prompt: `
|
|
2452
2449
|
You are a helpful assistant. Please provide a concise summary of the following chat messages in ${n}.
|
|
2453
2450
|
Use bullet points or a short paragraph. Focus on meaningful conversation and skip system messages or irrelevant technical info.
|
|
2454
|
-
Each line is a message from a participant. If a username ends with "${
|
|
2451
|
+
Each line is a message from a participant. If a username ends with "${kV}", it means that message was sent by ME (the user requesting this summary). In this summary, I will address you informally, using "you" in a familiar way.
|
|
2455
2452
|
If a message includes attachments (serialized as JSON), try to understand what they are and include relevant info in the summary — for example, if it contains an image, video, or file name.
|
|
2456
2453
|
Messages: ${T}
|
|
2457
2454
|
`
|
|
@@ -2482,7 +2479,7 @@ const Ag = ({ activeKey: q, setActiveKey: A, enabled: V, aiModel: e }) => {
|
|
|
2482
2479
|
]
|
|
2483
2480
|
);
|
|
2484
2481
|
if (V)
|
|
2485
|
-
return /* @__PURE__ */ t.createElement(
|
|
2482
|
+
return /* @__PURE__ */ t.createElement(Ce, { key: "ai:get-summary", open: C, onOpenChange: k }, /* @__PURE__ */ t.createElement(Ie, { className: "flex items-center gap-2 cursor-pointer text-sm" }, /* @__PURE__ */ t.createElement(qg, { className: "text-gray-700 size-6" }), r("AI.GetSummary")), /* @__PURE__ */ t.createElement(iV, null, /* @__PURE__ */ t.createElement(Se, null, /* @__PURE__ */ t.createElement(
|
|
2486
2483
|
iq,
|
|
2487
2484
|
{
|
|
2488
2485
|
className: "flex items-center gap-2 cursor-pointer",
|
|
@@ -2546,7 +2543,7 @@ const Ag = ({ activeKey: q, setActiveKey: A, enabled: V, aiModel: e }) => {
|
|
|
2546
2543
|
[s, c, e, o, r, n]
|
|
2547
2544
|
);
|
|
2548
2545
|
if (V)
|
|
2549
|
-
return /* @__PURE__ */ t.createElement(
|
|
2546
|
+
return /* @__PURE__ */ t.createElement(Ce, { key: Sq.CHANGE_TONE, open: l, onOpenChange: g }, /* @__PURE__ */ t.createElement(Ie, { className: "flex items-center gap-2 cursor-pointer text-sm" }, /* @__PURE__ */ t.createElement(_c, { className: "text-gray-700 size-6" }), s("AI.MessageTone")), /* @__PURE__ */ t.createElement(iV, null, /* @__PURE__ */ t.createElement(Se, null, /* @__PURE__ */ t.createElement(
|
|
2550
2547
|
iq,
|
|
2551
2548
|
{
|
|
2552
2549
|
className: "flex items-center gap-2 cursor-pointer",
|
|
@@ -2638,14 +2635,14 @@ function ag({
|
|
|
2638
2635
|
children: c,
|
|
2639
2636
|
...l
|
|
2640
2637
|
}, g) {
|
|
2641
|
-
const [m, u] = a.useState(), M = a.useRef(null), w = a.useRef(0), d = a.useRef(!1),
|
|
2642
|
-
d.current = !1, o(!1),
|
|
2638
|
+
const [m, u] = a.useState(), M = a.useRef(null), w = a.useRef(0), d = a.useRef(!1), C = a.useRef(void 0), k = () => {
|
|
2639
|
+
d.current = !1, o(!1), C.current && (clearTimeout(C.current), C.current = void 0);
|
|
2643
2640
|
}, I = (p) => {
|
|
2644
2641
|
l.onChange?.(p);
|
|
2645
2642
|
const { data: T } = p.nativeEvent;
|
|
2646
|
-
u(p.target.value), !d.current && typeof T == "string" && T.length > 0 && (d.current = !0, o(!0)), clearTimeout(
|
|
2643
|
+
u(p.target.value), !d.current && typeof T == "string" && T.length > 0 && (d.current = !0, o(!0)), clearTimeout(C.current), C.current = setTimeout(k, 5e3);
|
|
2647
2644
|
}, h = async () => {
|
|
2648
|
-
|
|
2645
|
+
k(), typeof m == "string" && m.length > 0 && (V(m.trim()), u(""), M.current?.focus());
|
|
2649
2646
|
}, B = (p, T) => {
|
|
2650
2647
|
if (l.onHeightChange?.(p, T), !(!p && !T)) {
|
|
2651
2648
|
if (p !== w.current) {
|
|
@@ -2659,7 +2656,7 @@ function ag({
|
|
|
2659
2656
|
};
|
|
2660
2657
|
return a.useEffect(() => {
|
|
2661
2658
|
const p = M.current;
|
|
2662
|
-
return
|
|
2659
|
+
return k(), queueMicrotask(() => u(A)), p?.focus(), () => {
|
|
2663
2660
|
e(p?.value);
|
|
2664
2661
|
};
|
|
2665
2662
|
}, [l.key]), a.useEffect(() => {
|
|
@@ -2693,9 +2690,9 @@ De.displayName = "ChatInput";
|
|
|
2693
2690
|
const og = ({ onSendMessage: q, onSendAttachment: A, onHeightGrow: V }) => {
|
|
2694
2691
|
const { t: e } = G(), o = J((p) => p.attachmentsAccept), [r, n, i] = IA(
|
|
2695
2692
|
x((p) => [p.draftMessages, p.upsertDraftMessage, p.deleteDraftMessage])
|
|
2696
|
-
), { selectedDialog: s, sendTypingStatus: c } = v(), l = s?._id ?? "", g = r[l] ?? "", [m, u] = t.useState(g), [M, w] = t.useState(!1), d = W(null),
|
|
2693
|
+
), { selectedDialog: s, sendTypingStatus: c } = v(), l = s?._id ?? "", g = r[l] ?? "", [m, u] = t.useState(g), [M, w] = t.useState(!1), d = W(null), C = (p = "") => {
|
|
2697
2694
|
u(p), d.current?.focus();
|
|
2698
|
-
},
|
|
2695
|
+
}, k = (p) => {
|
|
2699
2696
|
p && q(p.trim());
|
|
2700
2697
|
}, I = (p = "") => {
|
|
2701
2698
|
p.length > 0 ? n({ [l]: p }) : i(l);
|
|
@@ -2715,7 +2712,7 @@ const og = ({ onSendMessage: q, onSendAttachment: A, onHeightGrow: V }) => {
|
|
|
2715
2712
|
pending: M,
|
|
2716
2713
|
placeholder: `${e("EnterMessage")}...`,
|
|
2717
2714
|
draft: g,
|
|
2718
|
-
onSend:
|
|
2715
|
+
onSend: k,
|
|
2719
2716
|
onDraft: I,
|
|
2720
2717
|
onTyping: h,
|
|
2721
2718
|
onHeightGrow: V,
|
|
@@ -2732,7 +2729,7 @@ const og = ({ onSendMessage: q, onSendAttachment: A, onHeightGrow: V }) => {
|
|
|
2732
2729
|
onInvalidFile: () => nq.warning(e("FileTypeNotSupported"))
|
|
2733
2730
|
}
|
|
2734
2731
|
),
|
|
2735
|
-
/* @__PURE__ */ t.createElement(eg, { inputMessage: m, changeInputMessage:
|
|
2732
|
+
/* @__PURE__ */ t.createElement(eg, { inputMessage: m, changeInputMessage: C, setProcessing: w })
|
|
2736
2733
|
);
|
|
2737
2734
|
}, rg = t.memo(og);
|
|
2738
2735
|
function ng({ title: q, titles: A = [], rowProps: V, ...e }, o) {
|
|
@@ -2797,7 +2794,7 @@ function cg({ uid: q, url: A, maxSize: V = 360, pending: e = !1, onReady: o = ()
|
|
|
2797
2794
|
}), u = (M) => {
|
|
2798
2795
|
const w = l.current;
|
|
2799
2796
|
if (w) {
|
|
2800
|
-
const { videoWidth: d, videoHeight:
|
|
2797
|
+
const { videoWidth: d, videoHeight: C } = w, k = d / C || 1, I = k < 1 ? c : `${Math.round(V / k)}px`, h = k < 1 ? `${Math.round(V * k)}px` : c;
|
|
2801
2798
|
m({ height: I, width: h, maxHeight: I, maxWidth: h }), n.onCanPlay?.(M), o();
|
|
2802
2799
|
}
|
|
2803
2800
|
};
|
|
@@ -3066,7 +3063,7 @@ function Ke(q, A, V) {
|
|
|
3066
3063
|
);
|
|
3067
3064
|
return +NV(e, V) == +NV(o, V);
|
|
3068
3065
|
}
|
|
3069
|
-
const
|
|
3066
|
+
const kg = {
|
|
3070
3067
|
lessThanXSeconds: {
|
|
3071
3068
|
one: "λιγότερο από ένα δευτερόλεπτο",
|
|
3072
3069
|
other: "λιγότερο από {{count}} δευτερόλεπτα"
|
|
@@ -3128,9 +3125,9 @@ const Cg = {
|
|
|
3128
3125
|
one: "περίπου 1 χρόνο",
|
|
3129
3126
|
other: "περίπου {{count}} χρόνια"
|
|
3130
3127
|
}
|
|
3131
|
-
},
|
|
3128
|
+
}, Cg = (q, A, V) => {
|
|
3132
3129
|
let e;
|
|
3133
|
-
const o =
|
|
3130
|
+
const o = kg[q];
|
|
3134
3131
|
return typeof o == "string" ? e = o : A === 1 ? e = o.one : e = o.other.replace("{{count}}", String(A)), V?.addSuffix ? V.comparison && V.comparison > 0 ? "σε " + e : e + " πριν" : e;
|
|
3135
3132
|
}, Ig = {
|
|
3136
3133
|
full: "EEEE, d MMMM y",
|
|
@@ -3417,7 +3414,7 @@ const Cg = {
|
|
|
3417
3414
|
})
|
|
3418
3415
|
}, $g = {
|
|
3419
3416
|
code: "el",
|
|
3420
|
-
formatDistance:
|
|
3417
|
+
formatDistance: Cg,
|
|
3421
3418
|
formatLong: fg,
|
|
3422
3419
|
formatRelative: yg,
|
|
3423
3420
|
localize: Yg,
|
|
@@ -3716,7 +3713,7 @@ const Cg = {
|
|
|
3716
3713
|
evening: /evening/i,
|
|
3717
3714
|
night: /night/i
|
|
3718
3715
|
}
|
|
3719
|
-
},
|
|
3716
|
+
}, km = {
|
|
3720
3717
|
ordinalNumber: GA({
|
|
3721
3718
|
matchPattern: lm,
|
|
3722
3719
|
parsePattern: cm,
|
|
@@ -3753,7 +3750,7 @@ const Cg = {
|
|
|
3753
3750
|
parsePatterns: Bm,
|
|
3754
3751
|
defaultParseWidth: "any"
|
|
3755
3752
|
})
|
|
3756
|
-
},
|
|
3753
|
+
}, Cm = {
|
|
3757
3754
|
full: "EEEE, MMMM do, y",
|
|
3758
3755
|
long: "MMMM do, y",
|
|
3759
3756
|
medium: "MMM d, y",
|
|
@@ -3770,7 +3767,7 @@ const Cg = {
|
|
|
3770
3767
|
short: "{{date}}, {{time}}"
|
|
3771
3768
|
}, Qm = {
|
|
3772
3769
|
date: cq({
|
|
3773
|
-
formats:
|
|
3770
|
+
formats: Cm,
|
|
3774
3771
|
defaultWidth: "full"
|
|
3775
3772
|
}),
|
|
3776
3773
|
time: cq({
|
|
@@ -3787,7 +3784,7 @@ const Cg = {
|
|
|
3787
3784
|
formatLong: Qm,
|
|
3788
3785
|
formatRelative: Vm,
|
|
3789
3786
|
localize: sm,
|
|
3790
|
-
match:
|
|
3787
|
+
match: km,
|
|
3791
3788
|
options: {
|
|
3792
3789
|
weekStartsOn: 0,
|
|
3793
3790
|
firstWeekContainsDate: 1
|
|
@@ -4506,7 +4503,7 @@ const mu = (q, A, V) => {
|
|
|
4506
4503
|
"п’ятниця",
|
|
4507
4504
|
"субота"
|
|
4508
4505
|
]
|
|
4509
|
-
},
|
|
4506
|
+
}, ku = {
|
|
4510
4507
|
narrow: {
|
|
4511
4508
|
am: "ДП",
|
|
4512
4509
|
pm: "ПП",
|
|
@@ -4537,7 +4534,7 @@ const mu = (q, A, V) => {
|
|
|
4537
4534
|
evening: "вечір",
|
|
4538
4535
|
night: "ніч"
|
|
4539
4536
|
}
|
|
4540
|
-
},
|
|
4537
|
+
}, Cu = {
|
|
4541
4538
|
narrow: {
|
|
4542
4539
|
am: "ДП",
|
|
4543
4540
|
pm: "ПП",
|
|
@@ -4594,9 +4591,9 @@ const mu = (q, A, V) => {
|
|
|
4594
4591
|
defaultWidth: "wide"
|
|
4595
4592
|
}),
|
|
4596
4593
|
dayPeriod: L({
|
|
4597
|
-
values:
|
|
4594
|
+
values: ku,
|
|
4598
4595
|
defaultWidth: "any",
|
|
4599
|
-
formattingValues:
|
|
4596
|
+
formattingValues: Cu,
|
|
4600
4597
|
defaultFormattingWidth: "wide"
|
|
4601
4598
|
})
|
|
4602
4599
|
}, Qu = /^(\d+)(-?(е|й|є|а|я))?/i, fu = /\d+/i, Uu = {
|
|
@@ -4781,7 +4778,7 @@ function ju({
|
|
|
4781
4778
|
children: u,
|
|
4782
4779
|
...M
|
|
4783
4780
|
}, w) {
|
|
4784
|
-
const d = !!((s || o) && !A),
|
|
4781
|
+
const d = !!((s || o) && !A), C = !!((s || o) && A);
|
|
4785
4782
|
return /* @__PURE__ */ a.createElement(
|
|
4786
4783
|
Je,
|
|
4787
4784
|
{
|
|
@@ -4810,7 +4807,7 @@ function ju({
|
|
|
4810
4807
|
className: E(
|
|
4811
4808
|
"relative flex flex-col min-w-50 max-w-120 rounded-xl px-2 pt-2 pb-6 shadow-sm",
|
|
4812
4809
|
q ? "bg-gray-200" : "bg-blue-200",
|
|
4813
|
-
|
|
4810
|
+
C && "ml-9",
|
|
4814
4811
|
c?.className
|
|
4815
4812
|
)
|
|
4816
4813
|
},
|
|
@@ -4880,10 +4877,10 @@ function Wu({
|
|
|
4880
4877
|
imageProps: u,
|
|
4881
4878
|
...M
|
|
4882
4879
|
}, w) {
|
|
4883
|
-
const [d,
|
|
4880
|
+
const [d, C] = a.useState(e), [k, I] = a.useState(r), h = (p) => {
|
|
4884
4881
|
u?.onLoad?.(p), n();
|
|
4885
4882
|
}, B = (p) => {
|
|
4886
|
-
s?.onError?.(p),
|
|
4883
|
+
s?.onError?.(p), C(void 0);
|
|
4887
4884
|
}, S = (p) => {
|
|
4888
4885
|
u?.onError?.(p), I(void 0);
|
|
4889
4886
|
};
|
|
@@ -4932,13 +4929,13 @@ function Wu({
|
|
|
4932
4929
|
...g,
|
|
4933
4930
|
className: E(
|
|
4934
4931
|
"text-sm line-clamp-5",
|
|
4935
|
-
q ?
|
|
4932
|
+
q ? k ? "col-span-2" : "col-span-3" : "col-span-1",
|
|
4936
4933
|
g?.className
|
|
4937
4934
|
)
|
|
4938
4935
|
},
|
|
4939
4936
|
xV(V)
|
|
4940
4937
|
),
|
|
4941
|
-
|
|
4938
|
+
k && /* @__PURE__ */ a.createElement(
|
|
4942
4939
|
"div",
|
|
4943
4940
|
{
|
|
4944
4941
|
...m,
|
|
@@ -4948,7 +4945,7 @@ function Wu({
|
|
|
4948
4945
|
"img",
|
|
4949
4946
|
{
|
|
4950
4947
|
alt: "banner",
|
|
4951
|
-
src:
|
|
4948
|
+
src: k,
|
|
4952
4949
|
...u,
|
|
4953
4950
|
onLoad: h,
|
|
4954
4951
|
onError: S,
|
|
@@ -4972,7 +4969,7 @@ const Zu = ({ id: q, text: A = "", onReady: V = () => {
|
|
|
4972
4969
|
}, [n]), /* @__PURE__ */ t.createElement("div", { className: "flex flex-col gap-1" }, i.map((c, l, g) => {
|
|
4973
4970
|
const m = r.get(c);
|
|
4974
4971
|
if (m) {
|
|
4975
|
-
const u = `link_preview_${q || Kq()}_${l}`, M = g.length > 1, { url: w, title: d, description:
|
|
4972
|
+
const u = `link_preview_${q || Kq()}_${l}`, M = g.length > 1, { url: w, title: d, description: C, images: k, favicons: I } = m;
|
|
4976
4973
|
return /* @__PURE__ */ t.createElement(
|
|
4977
4974
|
Oe,
|
|
4978
4975
|
{
|
|
@@ -4980,9 +4977,9 @@ const Zu = ({ id: q, text: A = "", onReady: V = () => {
|
|
|
4980
4977
|
href: w,
|
|
4981
4978
|
thin: M,
|
|
4982
4979
|
title: d,
|
|
4983
|
-
description:
|
|
4980
|
+
description: C,
|
|
4984
4981
|
icon: I?.[0],
|
|
4985
|
-
image:
|
|
4982
|
+
image: k?.[0],
|
|
4986
4983
|
onReady: V
|
|
4987
4984
|
}
|
|
4988
4985
|
);
|
|
@@ -4996,7 +4993,7 @@ function Pu(q) {
|
|
|
4996
4993
|
}
|
|
4997
4994
|
const Hu = ({ isLast: q, message: A, prevMessage: V, scrollToBottom: e = () => {
|
|
4998
4995
|
} }) => {
|
|
4999
|
-
const { isConnected: o, selectedDialog: r, currentUserId: n, users: i, readMessage: s } = v(), c = J((Y) => Y.enableUrlPreview), l = UA((Y) => Y.onMessageBeforeDisplay), { t: g, i18n: m } = G(), u = m.language, M = r?._id ?? "", w = A._id, d = A.message || A.body,
|
|
4996
|
+
const { isConnected: o, selectedDialog: r, currentUserId: n, users: i, readMessage: s } = v(), c = J((Y) => Y.enableUrlPreview), l = UA((Y) => Y.onMessageBeforeDisplay), { t: g, i18n: m } = G(), u = m.language, M = r?._id ?? "", w = A._id, d = A.message || A.body, C = typeof d == "string" && typeof l == "function" ? l(d) : d, k = (Y) => {
|
|
5000
4997
|
e(w, Y);
|
|
5001
4998
|
}, I = () => {
|
|
5002
4999
|
o && !h && !Q && !A.read && !A.callHistory && s(w, A.sender_id, M);
|
|
@@ -5028,7 +5025,7 @@ const Hu = ({ isLast: q, message: A, prevMessage: V, scrollToBottom: e = () => {
|
|
|
5028
5025
|
}
|
|
5029
5026
|
);
|
|
5030
5027
|
}
|
|
5031
|
-
const p = r?.type === Yq.GROUP, T = V?.sender_id === A.sender_id && !V.callHistory && !V.custom, f = p && !h ? i[A.sender_id] : void 0, N = f ? Vq(f, !0) : void 0, D = f ? pq(f?.avatar) : void 0, Q = A.custom && A.tag === AV.AI_TEXT_SUMMARY, b = A.attachments?.[0], Z = Q ? { fallbackIconElement: /* @__PURE__ */ t.createElement(Ot, { className: "text-orange-500" }) } : void 0, O = b ? { className: "mb-2" } : void 0;
|
|
5028
|
+
const p = r?.type === Yq.GROUP, T = V?.sender_id === A.sender_id && !V.callHistory && !V.custom, f = p && !h ? i[A.sender_id] : void 0, N = f ? Vq(f, !0) : void 0, D = f ? pq(f?.avatar) : void 0, Q = !!A.custom && A.tag === AV.AI_TEXT_SUMMARY, b = A.attachments?.[0], Z = Q ? { fallbackIconElement: /* @__PURE__ */ t.createElement(Ot, { className: "text-orange-500" }) } : void 0, O = b ? { className: "mb-2" } : void 0;
|
|
5032
5029
|
return /* @__PURE__ */ t.createElement(
|
|
5033
5030
|
Le,
|
|
5034
5031
|
{
|
|
@@ -5051,10 +5048,10 @@ const Hu = ({ isLast: q, message: A, prevMessage: V, scrollToBottom: e = () => {
|
|
|
5051
5048
|
url: b.url,
|
|
5052
5049
|
mimeType: b.type,
|
|
5053
5050
|
pending: A.pending,
|
|
5054
|
-
onReady:
|
|
5051
|
+
onReady: k
|
|
5055
5052
|
}
|
|
5056
|
-
) : /* @__PURE__ */ t.createElement(ve, { text:
|
|
5057
|
-
c && /* @__PURE__ */ t.createElement(Zu, { id: w, text:
|
|
5053
|
+
) : /* @__PURE__ */ t.createElement(ve, { text: C, pending: A.pending, onReady: k }),
|
|
5054
|
+
c && /* @__PURE__ */ t.createElement(Zu, { id: w, text: C, onReady: k })
|
|
5058
5055
|
);
|
|
5059
5056
|
};
|
|
5060
5057
|
function Xu({
|
|
@@ -5115,14 +5112,14 @@ function _u({
|
|
|
5115
5112
|
quickActionsVisible: M,
|
|
5116
5113
|
minItemsCount: w = 1,
|
|
5117
5114
|
shift: d = !1,
|
|
5118
|
-
...
|
|
5119
|
-
},
|
|
5120
|
-
const I = c ? Ue : $u, h = c ? g : l, B = Array.isArray(u) ? u.length : Array.isArray(
|
|
5115
|
+
...C
|
|
5116
|
+
}, k) {
|
|
5117
|
+
const I = c ? Ue : $u, h = c ? g : l, B = Array.isArray(u) ? u.length : Array.isArray(C.data) ? C.data.length : 0, S = a.useRef(0), p = a.useRef(void 0), [T, f] = a.useState(!1), [N, D] = a.useState(d), Q = a.useRef(null), b = () => {
|
|
5121
5118
|
queueMicrotask(() => {
|
|
5122
5119
|
f(!0), queueMicrotask(() => f(!1));
|
|
5123
5120
|
});
|
|
5124
5121
|
}, Z = async (Y) => {
|
|
5125
|
-
|
|
5122
|
+
C.onScroll?.(Y), Q.current && (typeof o == "function" && Y < e && o(), typeof r == "function" && Q.current.viewportSize + Y + e > Q.current.scrollSize && r());
|
|
5126
5123
|
}, O = a.useCallback(
|
|
5127
5124
|
(Y = !1) => {
|
|
5128
5125
|
!Q.current || B === 0 || (Y || Q.current.scrollSize - Q.current.scrollOffset < Q.current.viewportSize * 2) && requestAnimationFrame(() => {
|
|
@@ -5141,10 +5138,10 @@ function _u({
|
|
|
5141
5138
|
}, [B, N, i, s, O]), a.useEffect(() => {
|
|
5142
5139
|
Q.current?.scrollBy(V.shift);
|
|
5143
5140
|
}, [V]), a.useImperativeHandle(
|
|
5144
|
-
|
|
5141
|
+
k,
|
|
5145
5142
|
() => ({ ...Q.current || {}, scrollToBottom: O, setShift: D }),
|
|
5146
5143
|
[O]
|
|
5147
|
-
), T ? null : w > B ? M ? /* @__PURE__ */ a.createElement(We, { ...m }) : /* @__PURE__ */ a.createElement(gq, { loading: !0, layout: "centered" }) : /* @__PURE__ */ a.createElement(I, { ...h }, /* @__PURE__ */ a.createElement(gq, { loading: A, className: "my-5" }), /* @__PURE__ */ a.createElement("div", { className: "flex flex-col h-full overflow-y-auto px-2" }, /* @__PURE__ */ a.createElement("div", { className: "grow" }), /* @__PURE__ */ a.createElement(na, { ref: Q, onScroll: Z, shift: N, ...
|
|
5144
|
+
), T ? null : w > B ? M ? /* @__PURE__ */ a.createElement(We, { ...m }) : /* @__PURE__ */ a.createElement(gq, { loading: !0, layout: "centered" }) : /* @__PURE__ */ a.createElement(I, { ...h }, /* @__PURE__ */ a.createElement(gq, { loading: A, className: "my-5" }), /* @__PURE__ */ a.createElement("div", { className: "flex flex-col h-full overflow-y-auto px-2" }, /* @__PURE__ */ a.createElement("div", { className: "grow" }), /* @__PURE__ */ a.createElement(na, { ref: Q, onScroll: Z, shift: N, ...C }, u)));
|
|
5148
5145
|
}
|
|
5149
5146
|
const Ze = a.forwardRef(_u);
|
|
5150
5147
|
Ze.displayName = "ChatList";
|
|
@@ -5155,13 +5152,13 @@ const qd = ({
|
|
|
5155
5152
|
}) => {
|
|
5156
5153
|
const { t: e } = G(), { selectedDialog: o, messages: r, fetchNextMessages: n, totalMessagesReached: i } = v(), s = X((Q) => Q.singleView), [c, l] = J(
|
|
5157
5154
|
x((Q) => [Q.attachmentsAccept, Q.enableUrlPreview])
|
|
5158
|
-
), g = oV((Q) => Q.matchUrlsFromMessage), m = aV((Q) => Q.quickActions), u = o?._id ?? "", M = H(() => r[u] ?? [], [r, u]), w = i.includes(u), d = W(/* @__PURE__ */ new Set()),
|
|
5155
|
+
), g = oV((Q) => Q.matchUrlsFromMessage), m = aV((Q) => Q.quickActions), u = o?._id ?? "", M = H(() => r[u] ?? [], [r, u]), w = i.includes(u), d = W(/* @__PURE__ */ new Set()), C = W(null), [k, I] = P(!1), h = W(!1), B = W(null), S = async () => {
|
|
5159
5156
|
w || h.current || (h.current = !0, I(!0), B.current?.setShift(!0), await n(u), I(!1), h.current = !1);
|
|
5160
5157
|
}, p = tq((Q, b = !1) => {
|
|
5161
|
-
d.current.has(Q) && !b || (d.current.add(Q),
|
|
5158
|
+
d.current.has(Q) && !b || (d.current.add(Q), C.current && clearTimeout(C.current), C.current = setTimeout(
|
|
5162
5159
|
() => {
|
|
5163
5160
|
requestAnimationFrame(() => {
|
|
5164
|
-
B.current?.scrollToBottom(b),
|
|
5161
|
+
B.current?.scrollToBottom(b), C.current = null;
|
|
5165
5162
|
});
|
|
5166
5163
|
},
|
|
5167
5164
|
b ? 100 : 300
|
|
@@ -5195,7 +5192,7 @@ const qd = ({
|
|
|
5195
5192
|
{
|
|
5196
5193
|
ref: B,
|
|
5197
5194
|
key: u,
|
|
5198
|
-
loading:
|
|
5195
|
+
loading: k,
|
|
5199
5196
|
keepMounted: f,
|
|
5200
5197
|
minItemsCount: s ? 2 : 1,
|
|
5201
5198
|
onScrollStartReached: S,
|
|
@@ -5318,7 +5315,7 @@ Email: ${g.email}`), typeof r == "boolean")
|
|
|
5318
5315
|
getDialogOpponentId: g,
|
|
5319
5316
|
messages: m,
|
|
5320
5317
|
isBlockedUser: u
|
|
5321
|
-
} = v(), M = IA((D) => D.deleteDraftMessage), w = UA((D) => D.onMessageBeforeSend), d = J((D) => D.enableUserStatuses),
|
|
5318
|
+
} = v(), M = IA((D) => D.deleteDraftMessage), w = UA((D) => D.onMessageBeforeSend), d = J((D) => D.enableUserStatuses), C = X((D) => D.singleView), k = n ? g(n) : null, I = k ? u(k) : !1, h = k && d ? aA(e[k]) : $.AVAILABLE, B = n && !I && h !== $.AWAY, S = n?._id ?? "", p = C && m[S]?.length === 0, T = async (D) => {
|
|
5322
5319
|
const Q = typeof w == "function" ? w(D) : D;
|
|
5323
5320
|
if (S.startsWith(wA)) {
|
|
5324
5321
|
const b = await N();
|
|
@@ -5345,8 +5342,8 @@ Email: ${g.email}`), typeof r == "boolean")
|
|
|
5345
5342
|
return await c(D), D;
|
|
5346
5343
|
};
|
|
5347
5344
|
return U(() => {
|
|
5348
|
-
d &&
|
|
5349
|
-
}, [d,
|
|
5345
|
+
d && k && o(k);
|
|
5346
|
+
}, [d, k]), /* @__PURE__ */ t.createElement("div", { className: "flex size-full bg-white flex-row-reverse overflow-hidden relative" }, /* @__PURE__ */ t.createElement("div", { className: "flex flex-col justify-between size-full overflow-hidden bg-white transition-all duration-200" }, /* @__PURE__ */ t.createElement("div", { className: "h-auto bg-white border-b border-gray-300 py-2 mx-2" }, n ? /* @__PURE__ */ t.createElement(Zc, null) : /* @__PURE__ */ t.createElement("div", { className: "flex items-center justify-center w-full h-13" }, /* @__PURE__ */ t.createElement("span", { className: "text-center text-lg font-semibold " }, V(C ? "Chat" : "Chats")))), p ? /* @__PURE__ */ t.createElement(ed, { onSendMessage: T }) : /* @__PURE__ */ t.createElement(t.Fragment, null, /* @__PURE__ */ t.createElement(
|
|
5350
5347
|
qd,
|
|
5351
5348
|
{
|
|
5352
5349
|
onSendMessage: T,
|
|
@@ -5527,7 +5524,7 @@ const gd = ({
|
|
|
5527
5524
|
}
|
|
5528
5525
|
), r.name && /* @__PURE__ */ t.createElement("span", { className: "text-red-500 text-sm" }, r.name.message), /* @__PURE__ */ t.createElement("div", { className: "flex flex-wrap w-full mx-auto mt-4 overflow-x-auto" }, i), /* @__PURE__ */ t.createElement("div", { className: "text-center mt-4" }, /* @__PURE__ */ t.createElement(sq, { type: "submit", className: "px-3 bg-blue-500 hover:bg-blue-700", disabled: n }, V("CreateGroupChat"))));
|
|
5529
5526
|
}, Md = t.memo(wd), vV = 3, pd = ({ chatType: q, addUsersMode: A, onFinish: V }) => {
|
|
5530
|
-
const { t: e } = G(), { searchUsers: o, createChat: r, createGroupChat: n, addUsersToGroupChat: i, selectDialog: s, selectedDialog: c } = v(), [l, g] = P({}), [m, u] = P(""), [M, w] = P([]), [d,
|
|
5527
|
+
const { t: e } = G(), { searchUsers: o, createChat: r, createGroupChat: n, addUsersToGroupChat: i, selectDialog: s, selectedDialog: c } = v(), [l, g] = P({}), [m, u] = P(""), [M, w] = P([]), [d, C] = P(!1), k = async (B) => {
|
|
5531
5528
|
if (B.preventDefault(), m.length < vV) {
|
|
5532
5529
|
nq.warning(`Min search term is ${vV} chars`);
|
|
5533
5530
|
return;
|
|
@@ -5561,13 +5558,13 @@ const gd = ({
|
|
|
5561
5558
|
onChange: (B) => u(B.target.value),
|
|
5562
5559
|
className: "selection:bg-blue-300 selection:text-blue-950"
|
|
5563
5560
|
}
|
|
5564
|
-
)), /* @__PURE__ */ t.createElement(sq, { type: "submit", size: "sm", className: "px-3 bg-blue-500 hover:bg-blue-700", onClick:
|
|
5561
|
+
)), /* @__PURE__ */ t.createElement(sq, { type: "submit", size: "sm", className: "px-3 bg-blue-500 hover:bg-blue-700", onClick: k }, /* @__PURE__ */ t.createElement(cd, null))), /* @__PURE__ */ t.createElement("div", { className: `max-h-[50vh] px-2 pt-4 pb-2 overflow-y-auto ${M.length > 0 ? "border-y" : ""}` }, I), q === "group" && Object.values(l).length > 0 && /* @__PURE__ */ t.createElement(t.Fragment, null, /* @__PURE__ */ t.createElement("div", { className: "flex py-4 gap-2 overflow-x-auto" }, Object.values(l).map((B) => /* @__PURE__ */ t.createElement(Pe, { key: B.id, avatar: B.avatar || "", name: Vq(B) }))), /* @__PURE__ */ t.createElement("div", { className: "text-center" }, /* @__PURE__ */ t.createElement(
|
|
5565
5562
|
sq,
|
|
5566
5563
|
{
|
|
5567
5564
|
type: "button",
|
|
5568
5565
|
className: "px-4 mt-4 items-center bg-blue-500 hover:bg-blue-700",
|
|
5569
5566
|
onClick: async () => {
|
|
5570
|
-
A ? (V(), await i(Object.values(l).map((B) => B.id))) :
|
|
5567
|
+
A ? (V(), await i(Object.values(l).map((B) => B.id))) : C(!0);
|
|
5571
5568
|
}
|
|
5572
5569
|
},
|
|
5573
5570
|
e(A ? "AddMembers" : "CreateGroupChat")
|
|
@@ -5626,8 +5623,8 @@ function Bd({
|
|
|
5626
5623
|
draft: M,
|
|
5627
5624
|
draftLabel: w = "Draft",
|
|
5628
5625
|
unreadCount: d = 0,
|
|
5629
|
-
language:
|
|
5630
|
-
divider:
|
|
5626
|
+
language: C = "en",
|
|
5627
|
+
divider: k = "bottom",
|
|
5631
5628
|
avatarProps: I,
|
|
5632
5629
|
contentProps: h,
|
|
5633
5630
|
headerProps: B,
|
|
@@ -5645,7 +5642,7 @@ function Bd({
|
|
|
5645
5642
|
dividerProps: mq,
|
|
5646
5643
|
...qq
|
|
5647
5644
|
}, xq) {
|
|
5648
|
-
const uq = r || I?.src, Rq = o || I?.name, zq = A ? n || I?.online : !1,
|
|
5645
|
+
const uq = r || I?.src, Rq = o || I?.name, zq = A ? n || I?.online : !1, kq = A ? i || I?.presence : void 0, Gq = k === "top" || k === "both" && q === 0, Jq = k === "bottom" || k === "both";
|
|
5649
5646
|
return /* @__PURE__ */ a.createElement(
|
|
5650
5647
|
"div",
|
|
5651
5648
|
{
|
|
@@ -5665,7 +5662,7 @@ function Bd({
|
|
|
5665
5662
|
src: uq,
|
|
5666
5663
|
name: Rq,
|
|
5667
5664
|
online: zq,
|
|
5668
|
-
presence:
|
|
5665
|
+
presence: kq,
|
|
5669
5666
|
...I,
|
|
5670
5667
|
className: E(`size-13 my-2 ${r ? "bg-ring/10" : "bg-ring/30"}`, I?.className)
|
|
5671
5668
|
}
|
|
@@ -5700,7 +5697,7 @@ function Bd({
|
|
|
5700
5697
|
},
|
|
5701
5698
|
o
|
|
5702
5699
|
)
|
|
5703
|
-
), /* @__PURE__ */ a.createElement("div", { ...f, className: E("flex items-center gap-1", f?.className) }, /* @__PURE__ */ a.createElement(gV, { status: c, ...N }), /* @__PURE__ */ a.createElement(bA, { date: l, language:
|
|
5700
|
+
), /* @__PURE__ */ a.createElement("div", { ...f, className: E("flex items-center gap-1", f?.className) }, /* @__PURE__ */ a.createElement(gV, { status: c, ...N }), /* @__PURE__ */ a.createElement(bA, { date: l, language: C, ...D }))),
|
|
5704
5701
|
/* @__PURE__ */ a.createElement("div", { ...Q, className: E("flex items-start justify-between gap-1 min-w-0", Q?.className) }, /* @__PURE__ */ a.createElement(
|
|
5705
5702
|
"span",
|
|
5706
5703
|
{
|
|
@@ -5743,10 +5740,10 @@ function Bd({
|
|
|
5743
5740
|
}
|
|
5744
5741
|
const Xe = a.memo(a.forwardRef(Bd));
|
|
5745
5742
|
Xe.displayName = "DialogItem";
|
|
5746
|
-
const
|
|
5743
|
+
const kd = ({ index: q, dialog: A }) => {
|
|
5747
5744
|
const { t: V, i18n: e } = G(), o = IA((Q) => Q.draftMessages), [r, n] = J(
|
|
5748
5745
|
x((Q) => [Q.enableUserStatuses, Q.enableLastSeen])
|
|
5749
|
-
), { users: i, selectedDialog: s, selectDialog: c, currentUserId: l, lastActivity: g, getDialogOpponentId: m } = v(), u = m(A), M = de(A, !0), w = A.type === Yq.PRIVATE, d = A.last_message_user_id === l,
|
|
5746
|
+
), { users: i, selectedDialog: s, selectDialog: c, currentUserId: l, lastActivity: g, getDialogOpponentId: m } = v(), u = m(A), M = de(A, !0), w = A.type === Yq.PRIVATE, d = A.last_message_user_id === l, C = u ? g[u] === "Online" : !1, k = A._id === s?._id, I = r && u && C ? aA(i[u]) : void 0, h = o[A._id], B = UA((Q) => Q.onMessageBeforeDisplay), S = A.last_message || V("NoMessages"), p = typeof S == "string" && typeof B == "function" ? B(S) : S, T = A.last_message_date_sent ? A.last_message_date_sent * 1e3 : A.created_at, f = d ? A.last_message_status : void 0, N = A.type === Yq.GROUP && A.last_message_user_id ? d ? V("me") : Vq(i[A.last_message_user_id]) : "", D = async () => {
|
|
5750
5747
|
await c(A);
|
|
5751
5748
|
};
|
|
5752
5749
|
return /* @__PURE__ */ t.createElement(
|
|
@@ -5754,10 +5751,10 @@ const Cd = ({ index: q, dialog: A }) => {
|
|
|
5754
5751
|
{
|
|
5755
5752
|
index: q,
|
|
5756
5753
|
isPrivateDialog: w,
|
|
5757
|
-
selected:
|
|
5754
|
+
selected: k,
|
|
5758
5755
|
onSelect: D,
|
|
5759
5756
|
photo: pq(A.photo),
|
|
5760
|
-
userOnline: n &&
|
|
5757
|
+
userOnline: n && C,
|
|
5761
5758
|
userPresence: I,
|
|
5762
5759
|
name: A.name,
|
|
5763
5760
|
hasGroupIcon: !0,
|
|
@@ -5774,7 +5771,7 @@ const Cd = ({ index: q, dialog: A }) => {
|
|
|
5774
5771
|
}
|
|
5775
5772
|
);
|
|
5776
5773
|
};
|
|
5777
|
-
function
|
|
5774
|
+
function Cd({
|
|
5778
5775
|
onSearch: q = () => {
|
|
5779
5776
|
},
|
|
5780
5777
|
onCancel: A = () => {
|
|
@@ -5830,7 +5827,7 @@ function kd({
|
|
|
5830
5827
|
}
|
|
5831
5828
|
));
|
|
5832
5829
|
}
|
|
5833
|
-
const dV = a.forwardRef(
|
|
5830
|
+
const dV = a.forwardRef(Cd);
|
|
5834
5831
|
dV.displayName = "Search";
|
|
5835
5832
|
const Id = () => /* @__PURE__ */ a.createElement("div", { className: "flex flex-row gap-2 mx-2 border-b" }, /* @__PURE__ */ a.createElement("div", { className: "size-13 my-2 rounded-full bg-muted animate-pulse" }), /* @__PURE__ */ a.createElement("div", { className: "flex-1 text-muted" }, /* @__PURE__ */ a.createElement("div", { className: "flex flex-row items-center justify-between h-6" }, /* @__PURE__ */ a.createElement("div", { className: "w-2/3 h-4 rounded-full bg-muted animate-pulse" }), /* @__PURE__ */ a.createElement("div", { className: "w-1/6 h-3.5 rounded-full bg-muted animate-pulse" })), /* @__PURE__ */ a.createElement("div", { className: "flex flex-col items-start justify-around h-10" }, /* @__PURE__ */ a.createElement("div", { className: "w-7/8 h-3.5 rounded-full bg-muted animate-pulse" }), /* @__PURE__ */ a.createElement("div", { className: "w-5/6 h-3.5 rounded-full bg-muted animate-pulse" }))));
|
|
5836
5833
|
function Sd({
|
|
@@ -5855,8 +5852,8 @@ const Qd = () => {
|
|
|
5855
5852
|
const { t: q } = G(), { isConnected: A, dialogs: V, fetchNextDialogs: e, totalDialogsReached: o } = v(), [r, n] = P(!1), [i, s] = P(""), c = [`${q("NoMessages")}.`, q("NoChats")], l = V.length === 0, g = l && !A, m = async () => {
|
|
5856
5853
|
!r && !o && (n(!0), await e(), n(!1));
|
|
5857
5854
|
}, u = H(() => V.reduce((M, w, d) => {
|
|
5858
|
-
const { _id:
|
|
5859
|
-
return (!i || h || B) && M.push(/* @__PURE__ */ t.createElement(
|
|
5855
|
+
const { _id: C, name: k, extensions: I } = w, h = i && k.toLowerCase().includes(i), B = i && I && Object.values(I).some((S) => new String(S).toLowerCase().includes(i));
|
|
5856
|
+
return (!i || h || B) && M.push(/* @__PURE__ */ t.createElement(kd, { key: C, index: d, dialog: w })), M;
|
|
5860
5857
|
}, []), [V, i]);
|
|
5861
5858
|
return /* @__PURE__ */ t.createElement(t.Fragment, null, /* @__PURE__ */ t.createElement(
|
|
5862
5859
|
dV,
|
|
@@ -6030,7 +6027,7 @@ _e.displayName = "StatusIndicator";
|
|
|
6030
6027
|
const YV = "w-[50%] h-9 hover:bg-blue-50 data-[state=active]:bg-blue-200", Gd = () => {
|
|
6031
6028
|
const { t: q } = G(), A = Nq((p) => p.shadowPortal), [V, e] = BA(x((p) => [p.activeTab, p.setActiveTab])), o = J((p) => p.enableUserStatuses), [r, n] = X(
|
|
6032
6029
|
x((p) => [p.showChatStatus, p.showOnlineUsersTab])
|
|
6033
|
-
), i = nA((p) => p.showProfile), { fetchDialogs: s, unselectDialog: c, currentUserId: l, chatStatus: g, unreadMessagesCount: m } = v(), { notifyWithSound: u } = ue(), M = W(null), w = W(m.total), d = W(m.total),
|
|
6030
|
+
), i = nA((p) => p.showProfile), { fetchDialogs: s, unselectDialog: c, currentUserId: l, chatStatus: g, unreadMessagesCount: m } = v(), { notifyWithSound: u } = ue(), M = W(null), w = W(m.total), d = W(m.total), C = Tq(), k = Vq(C), I = o ? aA(C) : void 0, h = (p) => {
|
|
6034
6031
|
c(), e(p === "chats" ? Iq.CHATS : Iq.USERS);
|
|
6035
6032
|
}, B = () => {
|
|
6036
6033
|
i(l);
|
|
@@ -6068,13 +6065,13 @@ const YV = "w-[50%] h-9 hover:bg-blue-50 data-[state=active]:bg-blue-200", Gd =
|
|
|
6068
6065
|
/* @__PURE__ */ t.createElement(
|
|
6069
6066
|
Bq,
|
|
6070
6067
|
{
|
|
6071
|
-
src: pq(
|
|
6072
|
-
name:
|
|
6073
|
-
className: `size-13 ${
|
|
6068
|
+
src: pq(C?.avatar),
|
|
6069
|
+
name: k,
|
|
6070
|
+
className: `size-13 ${C?.avatar ? "bg-blue-100" : "bg-blue-300"}`,
|
|
6074
6071
|
presence: I
|
|
6075
6072
|
}
|
|
6076
6073
|
),
|
|
6077
|
-
/* @__PURE__ */ t.createElement("p", { className: "text-center font-medium ml-2 truncate" },
|
|
6074
|
+
/* @__PURE__ */ t.createElement("p", { className: "text-center font-medium ml-2 truncate" }, k)
|
|
6078
6075
|
), /* @__PURE__ */ t.createElement(
|
|
6079
6076
|
ad,
|
|
6080
6077
|
{
|
|
@@ -6101,10 +6098,10 @@ const YV = "w-[50%] h-9 hover:bg-blue-50 data-[state=active]:bg-blue-200", Gd =
|
|
|
6101
6098
|
));
|
|
6102
6099
|
};
|
|
6103
6100
|
function bd(q) {
|
|
6104
|
-
return hq({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }, child: [] }, { tag: "circle", attr: { cx: "8.5", cy: "7", r: "4" }, child: [] }, { tag: "line", attr: { x1: "23", y1: "11", x2: "17", y2: "11" }, child: [] }] })(q);
|
|
6101
|
+
return hq({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }, child: [] }, { tag: "circle", attr: { cx: "8.5", cy: "7", r: "4" }, child: [] }, { tag: "line", attr: { x1: "20", y1: "8", x2: "20", y2: "14" }, child: [] }, { tag: "line", attr: { x1: "23", y1: "11", x2: "17", y2: "11" }, child: [] }] })(q);
|
|
6105
6102
|
}
|
|
6106
6103
|
function vd(q) {
|
|
6107
|
-
return hq({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }, child: [] }, { tag: "circle", attr: { cx: "8.5", cy: "7", r: "4" }, child: [] }, { tag: "line", attr: { x1: "
|
|
6104
|
+
return hq({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }, child: [] }, { tag: "circle", attr: { cx: "8.5", cy: "7", r: "4" }, child: [] }, { tag: "line", attr: { x1: "23", y1: "11", x2: "17", y2: "11" }, child: [] }] })(q);
|
|
6108
6105
|
}
|
|
6109
6106
|
const Yd = ({ userId: q, name: A, avatar: V }) => {
|
|
6110
6107
|
const { t: e } = G(), o = Nq((M) => M.shadowPortal), { lastActivity: r, selectedDialog: n, currentUserId: i, removeUsersFromGroupChat: s } = v(), c = () => {
|
|
@@ -6113,7 +6110,7 @@ const Yd = ({ userId: q, name: A, avatar: V }) => {
|
|
|
6113
6110
|
return /* @__PURE__ */ t.createElement("div", { className: "flex items-center p-2 gap-2" }, /* @__PURE__ */ t.createElement(Bq, { src: pq(V), name: A, className: "size-13 bg-blue-300" }), /* @__PURE__ */ t.createElement("div", { className: "flex items-center justify-between w-full" }, /* @__PURE__ */ t.createElement("div", { className: "flex flex-col items-start" }, /* @__PURE__ */ t.createElement("p", { className: "text-black font-medium" }, A), /* @__PURE__ */ t.createElement("p", { className: "text-gray-500 text-sm" }, u)), m && /* @__PURE__ */ t.createElement(
|
|
6114
6111
|
xA,
|
|
6115
6112
|
{
|
|
6116
|
-
triggerElement: /* @__PURE__ */ t.createElement(
|
|
6113
|
+
triggerElement: /* @__PURE__ */ t.createElement(vd, { className: "cursor-pointer text-gray-700 size-6" }),
|
|
6117
6114
|
title: e("RemoveMembers"),
|
|
6118
6115
|
description: e("RemoveMembers?"),
|
|
6119
6116
|
cancelTitle: e("Cancel"),
|
|
@@ -6131,7 +6128,7 @@ const Yd = ({ userId: q, name: A, avatar: V }) => {
|
|
|
6131
6128
|
}),
|
|
6132
6129
|
[e, r]
|
|
6133
6130
|
);
|
|
6134
|
-
return /* @__PURE__ */ t.createElement("div", { className: "flex flex-col h-3/5" }, /* @__PURE__ */ t.createElement("div", { className: "flex items-center justify-between border-b py-2 px-4" }, /* @__PURE__ */ t.createElement("span", { className: "font-medium" }, V("Members")), /* @__PURE__ */ t.createElement(vA, { modal: !0, open: q, onOpenChange: A }, /* @__PURE__ */ t.createElement(tA, { asChild: !0 }, /* @__PURE__ */ t.createElement(
|
|
6131
|
+
return /* @__PURE__ */ t.createElement("div", { className: "flex flex-col h-3/5" }, /* @__PURE__ */ t.createElement("div", { className: "flex items-center justify-between border-b py-2 px-4" }, /* @__PURE__ */ t.createElement("span", { className: "font-medium" }, V("Members")), /* @__PURE__ */ t.createElement(vA, { modal: !0, open: q, onOpenChange: A }, /* @__PURE__ */ t.createElement(tA, { asChild: !0 }, /* @__PURE__ */ t.createElement(bd, { className: "cursor-pointer size-7" })), /* @__PURE__ */ t.createElement(YA, null, /* @__PURE__ */ t.createElement(He, { chatType: "group", addUsersMode: !0, onFinish: () => A(!1) })))), /* @__PURE__ */ t.createElement("div", { className: "overflow-y-auto pr-3" }, n));
|
|
6135
6132
|
}, Rd = t.memo(Kd), zd = ({ userId: q }) => {
|
|
6136
6133
|
const { t: A } = G(), [V, e] = t.useState(""), o = async () => {
|
|
6137
6134
|
const r = V.trim();
|
|
@@ -6154,7 +6151,7 @@ const Yd = ({ userId: q, name: A, avatar: V }) => {
|
|
|
6154
6151
|
}, Jd = t.memo(zd), Ld = ({ user: q }) => {
|
|
6155
6152
|
const { t: A } = G(), V = Nq((w) => w.shadowPortal), { isBlockedUser: e, blockUser: o, unblockUser: r } = v(), { id: n = 0, website: i = "" } = q ?? {}, s = Vq(q), c = e(n), [l, g] = J(
|
|
6156
6153
|
x((w) => [w.enableContentReporting, w.enableBlockList])
|
|
6157
|
-
), [m, u] =
|
|
6154
|
+
), [m, u] = kA(
|
|
6158
6155
|
x((w) => [w.showAlertBusy, w.hideAlertBusy])
|
|
6159
6156
|
), M = async () => {
|
|
6160
6157
|
try {
|
|
@@ -6240,9 +6237,9 @@ const Pd = () => {
|
|
|
6240
6237
|
h.setIsNotificationSound,
|
|
6241
6238
|
h.setIsPushNotifications
|
|
6242
6239
|
])
|
|
6243
|
-
), g = A || !V, m = A || !e, u = A || !o, [M, w] = t.useState(!1), d = (h) => `transition-all duration-200 ease-out hover:bg-ring/10 rounded-full p-2.5 w-full flex! items-between justify-between ${h ? "text-muted-foreground cursor-not-allowed" : "cursor-pointer"}`,
|
|
6240
|
+
), g = A || !V, m = A || !e, u = A || !o, [M, w] = t.useState(!1), d = (h) => `transition-all duration-200 ease-out hover:bg-ring/10 rounded-full p-2.5 w-full flex! items-between justify-between ${h ? "text-muted-foreground cursor-not-allowed" : "cursor-pointer"}`, C = async () => {
|
|
6244
6241
|
w(!0), await s(!r), w(!1);
|
|
6245
|
-
},
|
|
6242
|
+
}, k = async () => {
|
|
6246
6243
|
w(!0), await c(!n), w(!1);
|
|
6247
6244
|
}, I = async () => {
|
|
6248
6245
|
w(!0), await l(!i), w(!1);
|
|
@@ -6252,7 +6249,7 @@ const Pd = () => {
|
|
|
6252
6249
|
{
|
|
6253
6250
|
id: "notifications-state",
|
|
6254
6251
|
checked: r && !g,
|
|
6255
|
-
onCheckedChange:
|
|
6252
|
+
onCheckedChange: C,
|
|
6256
6253
|
disabled: g
|
|
6257
6254
|
}
|
|
6258
6255
|
)), /* @__PURE__ */ t.createElement(Mq, { htmlFor: "notification-sounds-state", className: d(m) }, /* @__PURE__ */ t.createElement("span", null, q("NotificationSound")), /* @__PURE__ */ t.createElement(
|
|
@@ -6260,7 +6257,7 @@ const Pd = () => {
|
|
|
6260
6257
|
{
|
|
6261
6258
|
id: "notification-sounds-state",
|
|
6262
6259
|
checked: n && !m,
|
|
6263
|
-
onCheckedChange:
|
|
6260
|
+
onCheckedChange: k,
|
|
6264
6261
|
disabled: m
|
|
6265
6262
|
}
|
|
6266
6263
|
)), /* @__PURE__ */ t.createElement(Mq, { htmlFor: "push-notifications-state", className: d(u) }, /* @__PURE__ */ t.createElement("span", null, q("PushNotifications")), /* @__PURE__ */ t.createElement(
|
|
@@ -6301,7 +6298,7 @@ const Pd = () => {
|
|
|
6301
6298
|
x((B) => [B.enableUserStatuses, B.enableUserLogin, B.resetUserAuthorized])
|
|
6302
6299
|
), [c, l, g] = nA(
|
|
6303
6300
|
x((B) => [B.visible, B.userId, B.hideProfile])
|
|
6304
|
-
), m = X((B) => B.singleView), u = r === l, M = e?.type === Yq.GROUP && !l, w = u ? Tq() : l ? V[l] : null, d = `profile:${l || e?._id}`,
|
|
6301
|
+
), m = X((B) => B.singleView), u = r === l, M = e?.type === Yq.GROUP && !l, w = u ? Tq() : l ? V[l] : null, d = `profile:${l || e?._id}`, C = pq(w?.avatar || e?.photo), k = w ? Vq(w, !1) : e?.name, I = k ? k.slice(0, 2).toUpperCase() : "NA";
|
|
6305
6302
|
U(() => {
|
|
6306
6303
|
re();
|
|
6307
6304
|
}, [e]);
|
|
@@ -6313,8 +6310,8 @@ const Pd = () => {
|
|
|
6313
6310
|
{
|
|
6314
6311
|
className: `flex flex-col absolute right-0 top-0 size-full z-20 border-l border-gray-200 bg-white transition-transform duration-200 ${c ? "translate-x-0" : "translate-x-full"} ${q}`
|
|
6315
6312
|
},
|
|
6316
|
-
/* @__PURE__ */ t.createElement("div", { className: "border-b p-2" }, /* @__PURE__ */ t.createElement("div", { className: "flex items-center h-13" }, /* @__PURE__ */ t.createElement(
|
|
6317
|
-
/* @__PURE__ */ t.createElement("div", { className: "h-2/5 w-full relative overflow-hidden" },
|
|
6313
|
+
/* @__PURE__ */ t.createElement("div", { className: "border-b p-2" }, /* @__PURE__ */ t.createElement("div", { className: "flex items-center h-13" }, /* @__PURE__ */ t.createElement(ke, { onClick: g, className: "cursor-pointer size-6" }), /* @__PURE__ */ t.createElement("span", { className: "mx-auto text-lg font-medium" }, A(m ? "Information" : u ? "MyProfile" : "Profile")), i && u ? /* @__PURE__ */ t.createElement(Rc, { onClick: h, className: "cursor-pointer size-6" }) : /* @__PURE__ */ t.createElement("span", { className: "size-6" }))),
|
|
6314
|
+
/* @__PURE__ */ t.createElement("div", { className: "h-2/5 w-full relative overflow-hidden" }, C ? /* @__PURE__ */ t.createElement("img", { src: C, key: d, alt: "User Photo", className: "size-full object-cover" }) : /* @__PURE__ */ t.createElement("div", { className: "flex items-center justify-center size-full bg-blue-300 text-white text-6xl" }, /* @__PURE__ */ t.createElement("span", null, I)), n && u ? /* @__PURE__ */ t.createElement(Xd, null) : /* @__PURE__ */ t.createElement("div", { className: "absolute bottom-2 left-5 text-white z-10" }, /* @__PURE__ */ t.createElement("p", { className: "text-left" }, k), m ? /* @__PURE__ */ t.createElement(t.Fragment, null) : M ? /* @__PURE__ */ t.createElement("p", { className: "text-sm text-gray-300 text-left" }, `${e?.occupants_ids.length} ${A("members")}`) : /* @__PURE__ */ t.createElement("p", { className: "text-sm text-gray-300 text-left" }, l && o[l])), /* @__PURE__ */ t.createElement("div", { className: "absolute bottom-0 left-0 w-full h-[33%] bg-linear-to-t from-blue-700 to-transparent" })),
|
|
6318
6315
|
u ? /* @__PURE__ */ t.createElement(Hd, null) : m ? /* @__PURE__ */ t.createElement(t.Fragment, null) : M ? /* @__PURE__ */ t.createElement(Rd, null) : /* @__PURE__ */ t.createElement(jd, { user: w })
|
|
6319
6316
|
);
|
|
6320
6317
|
}, _d = t.memo($d), qw = () => {
|
|
@@ -6332,8 +6329,8 @@ const Pd = () => {
|
|
|
6332
6329
|
currentUserId: M,
|
|
6333
6330
|
fetchDialogs: w,
|
|
6334
6331
|
dialogs: d,
|
|
6335
|
-
selectDialog:
|
|
6336
|
-
chatStatus:
|
|
6332
|
+
selectDialog: C,
|
|
6333
|
+
chatStatus: k
|
|
6337
6334
|
} = v(), I = J((y) => y.enableUserStatuses), [h, B] = Pq(
|
|
6338
6335
|
x((y) => [y.userStatus, y.setUserStatus])
|
|
6339
6336
|
), [S, p, T] = rA(
|
|
@@ -6348,7 +6345,7 @@ const Pd = () => {
|
|
|
6348
6345
|
), zq = H(
|
|
6349
6346
|
() => Q ? "size-full" : uq ? "w-3/5 flex-1" : `${s ? "w-full" : "hidden"}`,
|
|
6350
6347
|
[uq, s, Q]
|
|
6351
|
-
),
|
|
6348
|
+
), kq = H(() => uq ? "w-3/5 min-w-[calc(100%-360px)]" : "", [uq]);
|
|
6352
6349
|
nc();
|
|
6353
6350
|
const Gq = async () => {
|
|
6354
6351
|
const y = await ZV();
|
|
@@ -6399,7 +6396,7 @@ const Pd = () => {
|
|
|
6399
6396
|
);
|
|
6400
6397
|
Hq(lt);
|
|
6401
6398
|
}, Hq = async (y) => {
|
|
6402
|
-
await
|
|
6399
|
+
await C(y), Y(Iq.CHATS);
|
|
6403
6400
|
};
|
|
6404
6401
|
return U(() => {
|
|
6405
6402
|
XA(c), S && r(), ce();
|
|
@@ -6428,11 +6425,11 @@ const Pd = () => {
|
|
|
6428
6425
|
if (m !== V.current) {
|
|
6429
6426
|
V.current = m;
|
|
6430
6427
|
const { message: y } = m || {};
|
|
6431
|
-
y && I && y.body === WV.UPDATE_USER && (M === y.userId && y.extension?.userStatus !== h ? B(y.extension
|
|
6428
|
+
y && I && y.body === WV.UPDATE_USER && (M === y.userId && y.extension?.userStatus !== h ? B(y.extension?.userStatus, !0) : n(y.userId, !0));
|
|
6432
6429
|
}
|
|
6433
6430
|
}, [m, I, h, M, n, B]), U(() => {
|
|
6434
|
-
|
|
6435
|
-
}, [
|
|
6431
|
+
k === yq.NOT_AUTHORIZED && Gq();
|
|
6432
|
+
}, [k]), U(() => {
|
|
6436
6433
|
f(l?.total ?? 0);
|
|
6437
6434
|
}, [l, f]), U(() => {
|
|
6438
6435
|
p(o);
|
|
@@ -6441,7 +6438,7 @@ const Pd = () => {
|
|
|
6441
6438
|
});
|
|
6442
6439
|
}, [b]), U(() => {
|
|
6443
6440
|
Q && Jq();
|
|
6444
|
-
}, [Q]), /* @__PURE__ */ t.createElement("div", { className: "flex size-full" }, !Q && /* @__PURE__ */ t.createElement("div", { className: Rq }, /* @__PURE__ */ t.createElement(Gd, null)), /* @__PURE__ */ t.createElement("div", { className: zq }, /* @__PURE__ */ t.createElement(td, null)), /* @__PURE__ */ t.createElement(_d, { profileClassName:
|
|
6441
|
+
}, [Q]), /* @__PURE__ */ t.createElement("div", { className: "flex size-full" }, !Q && /* @__PURE__ */ t.createElement("div", { className: Rq }, /* @__PURE__ */ t.createElement(Gd, null)), /* @__PURE__ */ t.createElement("div", { className: zq }, /* @__PURE__ */ t.createElement(td, null)), /* @__PURE__ */ t.createElement(_d, { profileClassName: kq }));
|
|
6445
6442
|
};
|
|
6446
6443
|
function qt({ className: q, ...A }) {
|
|
6447
6444
|
return /* @__PURE__ */ a.createElement(
|
|
@@ -6489,8 +6486,8 @@ function at({ className: q, ...A }) {
|
|
|
6489
6486
|
return /* @__PURE__ */ a.createElement("div", { "data-slot": "card-footer", className: F("flex items-center px-6 [.border-t]:pt-6", q), ...A });
|
|
6490
6487
|
}
|
|
6491
6488
|
const Vw = () => {
|
|
6492
|
-
const { t: q } = G(), A = X((
|
|
6493
|
-
x((
|
|
6489
|
+
const { t: q } = G(), A = X((C) => C.imgLogoSource), V = J((C) => C.setUserAuthorized), [e, o] = kA(
|
|
6490
|
+
x((C) => [C.showAlertBusy, C.hideAlertBusy])
|
|
6494
6491
|
), r = Tq(), [n, i] = a.useState(!!r), {
|
|
6495
6492
|
reset: s,
|
|
6496
6493
|
register: c,
|
|
@@ -6517,10 +6514,10 @@ const Vw = () => {
|
|
|
6517
6514
|
value: 40,
|
|
6518
6515
|
message: q("AuthForm.PasswordMaxLimit", { limit: 40 })
|
|
6519
6516
|
}
|
|
6520
|
-
}), w = async ({ login:
|
|
6517
|
+
}), w = async ({ login: C, password: k }) => {
|
|
6521
6518
|
e(`${q("PleaseWait")}...`);
|
|
6522
6519
|
try {
|
|
6523
|
-
n ? await SA(
|
|
6520
|
+
n ? await SA(C, k) : await $V(C, k), V(!0);
|
|
6524
6521
|
} catch (I) {
|
|
6525
6522
|
const { info: h } = I ?? { info: { errors: [] } }, B = h?.errors ?? [];
|
|
6526
6523
|
let S, p, T, f;
|
|
@@ -6718,11 +6715,11 @@ const Nw = ({
|
|
|
6718
6715
|
overlayStyle: M = {},
|
|
6719
6716
|
buttonStyle: w = {},
|
|
6720
6717
|
badgeStyle: d = {},
|
|
6721
|
-
onlineBadgeStyle:
|
|
6722
|
-
...
|
|
6718
|
+
onlineBadgeStyle: C = {},
|
|
6719
|
+
...k
|
|
6723
6720
|
}) => {
|
|
6724
|
-
const { i18n: I } = G(), h = !!
|
|
6725
|
-
tc(
|
|
6721
|
+
const { i18n: I } = G(), h = !!k.enableCalls, B = !!k.enableUserLogin, S = !!k.embedView, p = { userId: e, userName: o, userEmail: r, userAvatar: n, userProfileLink: i }, T = { appId: q, authKey: A };
|
|
6722
|
+
tc(k), Ac({ creds: T, config: V, user: p, enableUserLogin: B });
|
|
6726
6723
|
const [f, N] = X(x((D) => [D.opened, D.resetOpened]));
|
|
6727
6724
|
return U(() => {
|
|
6728
6725
|
I.changeLanguage(s);
|
|
@@ -6743,7 +6740,7 @@ const Nw = ({
|
|
|
6743
6740
|
title: m,
|
|
6744
6741
|
style: w,
|
|
6745
6742
|
badgeStyle: d,
|
|
6746
|
-
onlineBadgeStyle:
|
|
6743
|
+
onlineBadgeStyle: C
|
|
6747
6744
|
}
|
|
6748
6745
|
), h && /* @__PURE__ */ t.createElement(yc, null));
|
|
6749
6746
|
};
|