vue-parley 4.2.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat.css +57 -35
- package/dist/chunks/{Call-D48LfnDv.cjs → Call-CDT92h1x.cjs} +62 -57
- package/dist/chunks/Call-CDT92h1x.cjs.map +1 -0
- package/dist/chunks/{Call-7lGaUPcp.mjs → Call-jiZGoCtR.mjs} +62 -57
- package/dist/chunks/Call-jiZGoCtR.mjs.map +1 -0
- package/dist/chunks/{index-C8N5eSUe.mjs → index-CHFzAdVI.mjs} +150 -145
- package/dist/chunks/index-CHFzAdVI.mjs.map +1 -0
- package/dist/chunks/{index-DrcpfLUy.cjs → index-efTNVoBF.cjs} +131 -126
- package/dist/chunks/index-efTNVoBF.cjs.map +1 -0
- package/dist/chunks/{session-B8Q7eiUV.mjs → session-CN61aKfb.mjs} +3 -2
- package/dist/chunks/{session-BwgUu6F3.cjs.map → session-CN61aKfb.mjs.map} +1 -1
- package/dist/chunks/{session-BwgUu6F3.cjs → session-DLxWccUj.cjs} +3 -2
- package/dist/chunks/{session-B8Q7eiUV.mjs.map → session-DLxWccUj.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +19 -19
- package/dist/types/app/components/ChatPage.vue.d.ts.map +1 -1
- package/dist/types/app/components/call/Call.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/ChatBubble.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/ChatInput.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/ChatMessages.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/ChatPageBar.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/ChatProfileOverview.vue.d.ts +5 -1
- package/dist/types/app/components/chat/ChatProfileOverview.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/ChatView.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/chat-bubbles/BubbleOptions.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/chat-bubbles/MediaViewer.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/chat-input/InputAttachement.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/contact/ChatList.vue.d.ts.map +1 -1
- package/dist/types/app/components/chat/messages/FloatingDateHeader.vue.d.ts +0 -1
- package/dist/types/app/components/chat/messages/FloatingDateHeader.vue.d.ts.map +1 -1
- package/dist/types/app/components/general/ResponsiveDialog.vue.d.ts.map +1 -1
- package/dist/types/app/composables/call/session.d.ts +2 -0
- package/dist/types/app/composables/call/session.d.ts.map +1 -1
- package/dist/types/app/composables/useFlippedVirtualScroll.d.ts +0 -1
- package/dist/types/app/composables/useFlippedVirtualScroll.d.ts.map +1 -1
- package/dist/types/app/stores/callStore.d.ts +9 -3
- package/dist/types/app/stores/callStore.d.ts.map +1 -1
- package/dist/types/i18n/locales/index.d.ts +10 -0
- package/dist/types/i18n/locales/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/Call-7lGaUPcp.mjs.map +0 -1
- package/dist/chunks/Call-D48LfnDv.cjs.map +0 -1
- package/dist/chunks/index-C8N5eSUe.mjs.map +0 -1
- package/dist/chunks/index-DrcpfLUy.cjs.map +0 -1
|
@@ -168,7 +168,7 @@ const general$2 = { "themes": { "light": "Light", "dark": "Dark" }, "all": "All"
|
|
|
168
168
|
const generalEn = {
|
|
169
169
|
general: general$2
|
|
170
170
|
};
|
|
171
|
-
const chat$2 = { "title": "Messages", "filters": { "active": "Active", "ended": "Ended", "online": "Online" }, "info": { "nationalCode": "National code", "phoneNumber": "Phone number", "age": "Age", "ageDisplay": "{year} years", "files": "Files", "media": "Images" }, "lastSeen": "Last seen {time}", "nationalId": "National code", "age": "Age", "ageText": "{years} years", "attachements": "Attachments", "options": { "end": "End", "voiceCall": "Call", "videoCall": "Video" }, "attachementTypes": { "image": "Photo", "file": "File", "voice": "Voice message", "video": "Video", "request": "Request" }, "messageOptions": { "edit": "Edit message", "delete": "Delete message", "copy": "Copy", "select": "Select", "reply": "Reply", "deselect": "Deselect" }, "barOptions": { "endChat": "End conversation", "deleteMessages": "Delete messages" }, "placeholder": "Write...", "chatLocked": "Conversation ended", "noConversationSelected": "No conversation selected yet", "noMessages": "No messages exchanged", "swipeToCancel": "Swipe to cancel", "cancel": "Cancel", "online": "Online", "file": { "calculating": "Calculating", "attachMedia": "Photo or video", "attachFile": "File", "sendImage": "Send image", "sendImages": "Send images", "sendFile": "Send file", "cancel": "Cancel" }, "permissions": { "permissionTitle": "Camera and microphone access", "description": "To join video calls or send voice messages, we need access to your camera and microphone.", "allow": "Allow access", "notNow": "Not now", "retry": "Try again", "mic": { "title": "Microphone access", "description": "We need microphone access to send voice messages and place video calls." }, "cam": { "title": "Camera access", "description": "We need camera access to send video messages and place video calls." }, "micError": { "title": "Your microphone is disabled", "description": "We need microphone permission to send voice messages or place calls." }, "camError": { "title": "Camera access error", "description": "We need camera permission to send video messages or place video calls." }, "screen": { "title": "Screen access", "description": "After tapping confirm, please select the screen or tab you want to share." }, "screenError": { "title": "Screen access error", "description": "Screen capture permission was denied. We need screen access permission to share your screen." } }, "you": "You", "copiedMessage": "Message copied to clipboard.", "editFailed": "Could not edit the message. Please try again.", "deleteFailed": "Could not delete the message. Please try again.", "unreadMessages": "Unread.", "caption": "Caption", "send": "Send", "delete": { "title": "Delete message", "singleMessage": "Are you sure you want to delete this message?", "multipleMessages": "Are you sure you want to delete {count} messages?", "confirm": "Delete", "requestTitle": "Cancel request", "request": "Are you sure you want to cancel this request?" }, "call": { "title": "Call", "you": "You", "deviceDoesntSupport": "Your device does not support this feature.", "errors": { "noMicDevice": "No microphone device detected", "noCameraDevice": "No camera device detected", "cameraDenied": "Camera access denied", "micDenied": "Microphone access denied", "noMicFound": "No microphone found", "micAccessError": "Error accessing microphone", "noCameraFound": "No camera found", "cameraAccessError": "Error accessing camera", "mediaInitError": "Error initializing media devices", "screenShareMobileUnsupported": "Screen sharing is not supported on mobile devices", "screenShareBrowserUnsupported": "Screen sharing is not supported in this browser", "screenShareDenied": "Screen sharing permission denied", "screenAccessError": "Unable to access screen", "screenShareMobileMaybeUnavailable": "Screen sharing may not be available on mobile devices", "screenShareStartFailed": "Failed to start screen sharing", "cameraUnavailable": "Camera not available", "flashlightToggleFailed": "Failed to toggle flashlight" }, "controls": { "endCall": "End call", "minimize": "Minimize", "maximize": "Return to call", "mute": "Mute", "unmute": "Unmute", "cameraOff": "Turn camera off", "cameraOn": "Turn camera on", "shareScreen": "Share screen", "stopSharing": "Stop sharing", "fullscreen": "Full screen", "exitFullscreen": "Exit full screen", "flashlight": "Flashlight", "cameras": "Available cameras", "chooseCamera": "Choose camera", "pauseVideo": "Pause video", "playVideo": "Play video", "nextParticipant": "Show next participant" } }, "board": { "title": "Board", "selectColor": "Select color", "page": "Page {page}", "addPage": "New page", "confirm": "Confirm", "savedSuccessfully": "Image saved successfully." } };
|
|
171
|
+
const chat$2 = { "title": "Messages", "filters": { "active": "Active", "ended": "Ended", "online": "Online" }, "info": { "nationalCode": "National code", "phoneNumber": "Phone number", "age": "Age", "ageDisplay": "{year} years", "files": "Files", "media": "Images" }, "lastSeen": "Last seen {time}", "nationalId": "National code", "age": "Age", "ageText": "{years} years", "attachements": "Attachments", "options": { "end": "End", "voiceCall": "Call", "videoCall": "Video" }, "attachementTypes": { "image": "Photo", "file": "File", "voice": "Voice message", "video": "Video", "request": "Request" }, "messageOptions": { "edit": "Edit message", "delete": "Delete message", "copy": "Copy", "select": "Select", "reply": "Reply", "deselect": "Deselect" }, "barOptions": { "endChat": "End conversation", "deleteMessages": "Delete messages" }, "placeholder": "Write...", "chatLocked": "Conversation ended", "noConversationSelected": "No conversation selected yet", "noMessages": "No messages exchanged", "swipeToCancel": "Swipe to cancel", "cancel": "Cancel", "online": "Online", "file": { "calculating": "Calculating", "attachMedia": "Photo or video", "attachFile": "File", "sendImage": "Send image", "sendImages": "Send images", "sendFile": "Send file", "cancel": "Cancel" }, "permissions": { "permissionTitle": "Camera and microphone access", "description": "To join video calls or send voice messages, we need access to your camera and microphone.", "allow": "Allow access", "notNow": "Not now", "retry": "Try again", "mic": { "title": "Microphone access", "description": "We need microphone access to send voice messages and place video calls." }, "cam": { "title": "Camera access", "description": "We need camera access to send video messages and place video calls." }, "micError": { "title": "Your microphone is disabled", "description": "We need microphone permission to send voice messages or place calls." }, "camError": { "title": "Camera access error", "description": "We need camera permission to send video messages or place video calls." }, "screen": { "title": "Screen access", "description": "After tapping confirm, please select the screen or tab you want to share." }, "screenError": { "title": "Screen access error", "description": "Screen capture permission was denied. We need screen access permission to share your screen." } }, "you": "You", "copiedMessage": "Message copied to clipboard.", "editFailed": "Could not edit the message. Please try again.", "deleteFailed": "Could not delete the message. Please try again.", "unreadMessages": "Unread.", "caption": "Caption", "send": "Send", "delete": { "title": "Delete message", "singleMessage": "Are you sure you want to delete this message?", "multipleMessages": "Are you sure you want to delete {count} messages?", "confirm": "Delete", "requestTitle": "Cancel request", "request": "Are you sure you want to cancel this request?" }, "call": { "title": "Call", "you": "You", "active": "Call active", "participants": "{count} participant | {count} participants", "yourPresentation": "Your presentation", "presentationOf": "Presented by {name}", "cameraIsOff": "Camera is off", "deviceDoesntSupport": "Your device does not support this feature.", "errors": { "noMicDevice": "No microphone device detected", "noCameraDevice": "No camera device detected", "cameraDenied": "Camera access denied", "micDenied": "Microphone access denied", "noMicFound": "No microphone found", "micAccessError": "Error accessing microphone", "noCameraFound": "No camera found", "cameraAccessError": "Error accessing camera", "mediaInitError": "Error initializing media devices", "screenShareMobileUnsupported": "Screen sharing is not supported on mobile devices", "screenShareBrowserUnsupported": "Screen sharing is not supported in this browser", "screenShareDenied": "Screen sharing permission denied", "screenAccessError": "Unable to access screen", "screenShareMobileMaybeUnavailable": "Screen sharing may not be available on mobile devices", "screenShareStartFailed": "Failed to start screen sharing", "cameraUnavailable": "Camera not available", "flashlightToggleFailed": "Failed to toggle flashlight" }, "controls": { "endCall": "End call", "minimize": "Minimize", "maximize": "Return to call", "mute": "Mute", "unmute": "Unmute", "cameraOff": "Turn camera off", "cameraOn": "Turn camera on", "shareScreen": "Share screen", "stopSharing": "Stop sharing", "fullscreen": "Full screen", "exitFullscreen": "Exit full screen", "flashlight": "Flashlight", "cameras": "Available cameras", "chooseCamera": "Choose camera", "pauseVideo": "Pause video", "playVideo": "Play video", "nextParticipant": "Show next participant" } }, "board": { "title": "Board", "selectColor": "Select color", "page": "Page {page}", "addPage": "New page", "confirm": "Confirm", "savedSuccessfully": "Image saved successfully." } };
|
|
172
172
|
const chatEn = {
|
|
173
173
|
chat: chat$2
|
|
174
174
|
};
|
|
@@ -176,7 +176,7 @@ const general$1 = { "themes": { "light": "روشن", "dark": "تاریک" }, "al
|
|
|
176
176
|
const generalFa = {
|
|
177
177
|
general: general$1
|
|
178
178
|
};
|
|
179
|
-
const chat$1 = { "title": "پیام ها", "filters": { "active": "فعال", "ended": "خاتمه یافته", "online": "آنلاین ها" }, "info": { "nationalCode": "کد ملی", "phoneNumber": "شماره تماس", "age": "سن", "ageDisplay": "{year} سال", "files": "فایل ها", "media": "تصاویر" }, "lastSeen": "آخرین بازدید {time}", "nationalId": "کد ملی", "age": "سن", "ageText": "{years} سال", "attachements": "پیوست ها", "options": { "end": "خاتمه", "voiceCall": "تماس", "videoCall": "تصویری" }, "attachementTypes": { "image": "عکس", "file": "فایل", "voice": "پیام صوتی", "video": "ویدیو", "request": "درخواست" }, "messageOptions": { "edit": "ویرایش پیام", "delete": "حذف پیام", "copy": "کپی", "select": "انتخاب", "reply": "پاسخ", "deselect": "لغو انتخاب" }, "barOptions": { "endChat": "خاتمه مکالمه", "deleteMessages": "حذف پیام ها" }, "placeholder": "بنویسید ...", "chatLocked": "گفتگو تمام شده", "noConversationSelected": "هنوز مکالمه ای انتخاب نشده", "noMessages": "هیچ پیامی تبادل نشده", "swipeToCancel": "برای لغو بکشید", "cancel": "لغو", "online": "آنلاین", "file": { "calculating": "در حال محاسبه", "attachMedia": "عکس یا ویدیو", "attachFile": "فایل", "sendImage": "ارسال تصویر", "sendImages": "ارسال تصاویر", "sendFile": "ارسال فایل", "cancel": "انصراف" }, "permissions": { "permissionTitle": "دسترسی دوربین و میکروفون", "description": " برای اینکه بتونی توی تماسهای تصویری شرکت کنی یا پیام صوتی بفرستی، نیاز داریم به دوربین و میکروفونت دسترسی داشته باشیم.", "allow": "تایید دسترسی", "notNow": "الان نه", "retry": "تلاش مجدد", "mic": { "title": "دسترسی میکروفون", "description": "برای ارسال پیام صوتی و برقراری تماس تصویری به دسترسی میکروفون شما نیاز داریم." }, "cam": { "title": "دسترسی دوربین", "description": "برای ارسال پیام ویدیویی و برقراری تماس تصویری به دسترسی دوربین شما نیاز داریم." }, "micError": { "title": "میکروفون شما غیرفعال است", "description": "برای ارسال پیام صوتی یا تماس، نیاز به تایید دسترسی میکروفون داریم." }, "camError": { "title": "خطای دسترسی به دوربین", "description": "برای ارسال پیام و تماس ویدیویی نیاز به تایید دسترسی دوربین داریم." }, "screen": { "title": "دسترسی به صفحه", "description": "بعد از زدن دکمه تایید لطفا صفحه یا زبانه انتخابی خویش را برای به اشتراک گذاری انتخاب نمایید." }, "screenError": { "title": "خطا در دسترسی به صفحه", "description": "دسترسی به تصویر صفحه با خطا مواجه شد. برای اشتراک گذاری تصویر صفحه شما نیازمند تایید دسترسی به صفحه هستیم." } }, "you": "شما", "copiedMessage": "پیام با موفقیت به کلیپ بورد الصاق شد.", "editFailed": "ویرایش پیام انجام نشد. دوباره تلاش کنید.", "deleteFailed": "حذف پیام انجام نشد. دوباره تلاش کنید.", "unreadMessages": "خوانده نشده.", "caption": "کپشن", "send": "ارسال", "delete": { "title": "حذف پیام", "singleMessage": "آیا از حذف پیام اطمینان دارید ؟", "multipleMessages": "آیا از حذف {count} پیام اطمینان دارید؟", "confirm": "حذف", "requestTitle": "لغو درخواست", "request": "آیا از لغو درخواست خود اطمینان دارید ؟" }, "call": { "title": "تماس", "you": "شما", "deviceDoesntSupport": "دستگاه شما از این قابلیت پشتیبانی نمیکند.", "errors": { "noMicDevice": "میکروفونی شناسایی نشد", "noCameraDevice": "دوربینی شناسایی نشد", "cameraDenied": "دسترسی به دوربین رد شد", "micDenied": "دسترسی به میکروفون رد شد", "noMicFound": "میکروفونی یافت نشد", "micAccessError": "خطا در دسترسی به میکروفون", "noCameraFound": "دوربینی یافت نشد", "cameraAccessError": "خطا در دسترسی به دوربین", "mediaInitError": "خطا در راهاندازی دستگاههای رسانهای", "screenShareMobileUnsupported": "اشتراکگذاری صفحه در دستگاههای موبایل پشتیبانی نمیشود", "screenShareBrowserUnsupported": "اشتراکگذاری صفحه در این مرورگر پشتیبانی نمیشود", "screenShareDenied": "دسترسی به اشتراکگذاری صفحه رد شد", "screenAccessError": "امکان دسترسی به صفحه وجود ندارد", "screenShareMobileMaybeUnavailable": "ممکن است اشتراکگذاری صفحه در دستگاههای موبایل در دسترس نباشد", "screenShareStartFailed": "راهاندازی اشتراکگذاری صفحه ناموفق بود", "cameraUnavailable": "دوربین در دسترس نیست", "flashlightToggleFailed": "تغییر حالت چراغ قوه ناموفق بود" }, "controls": { "endCall": "پایان تماس", "minimize": "کوچک کردن", "maximize": "بازگشت به تماس", "mute": "قطع میکروفون", "unmute": "وصل میکروفون", "cameraOff": "خاموش کردن دوربین", "cameraOn": "روشن کردن دوربین", "shareScreen": "اشتراکگذاری صفحه", "stopSharing": "توقف اشتراکگذاری", "fullscreen": "تمام صفحه", "exitFullscreen": "خروج از تمام صفحه", "flashlight": "چراغقوه", "cameras": "دوربینهای موجود", "chooseCamera": "انتخاب دوربین", "pauseVideo": "توقف ویدیو", "playVideo": "پخش ویدیو", "nextParticipant": "نمایش شرکتکننده بعدی" } }, "board": { "title": "تخته", "selectColor": "انتخاب رنگ", "page": "صفحه {page}", "addPage": "صفحه جدید", "confirm": "تایید", "savedSuccessfully": "تصویر با موفقیت ذخیره سازی شد." } };
|
|
179
|
+
const chat$1 = { "title": "پیام ها", "filters": { "active": "فعال", "ended": "خاتمه یافته", "online": "آنلاین ها" }, "info": { "nationalCode": "کد ملی", "phoneNumber": "شماره تماس", "age": "سن", "ageDisplay": "{year} سال", "files": "فایل ها", "media": "تصاویر" }, "lastSeen": "آخرین بازدید {time}", "nationalId": "کد ملی", "age": "سن", "ageText": "{years} سال", "attachements": "پیوست ها", "options": { "end": "خاتمه", "voiceCall": "تماس", "videoCall": "تصویری" }, "attachementTypes": { "image": "عکس", "file": "فایل", "voice": "پیام صوتی", "video": "ویدیو", "request": "درخواست" }, "messageOptions": { "edit": "ویرایش پیام", "delete": "حذف پیام", "copy": "کپی", "select": "انتخاب", "reply": "پاسخ", "deselect": "لغو انتخاب" }, "barOptions": { "endChat": "خاتمه مکالمه", "deleteMessages": "حذف پیام ها" }, "placeholder": "بنویسید ...", "chatLocked": "گفتگو تمام شده", "noConversationSelected": "هنوز مکالمه ای انتخاب نشده", "noMessages": "هیچ پیامی تبادل نشده", "swipeToCancel": "برای لغو بکشید", "cancel": "لغو", "online": "آنلاین", "file": { "calculating": "در حال محاسبه", "attachMedia": "عکس یا ویدیو", "attachFile": "فایل", "sendImage": "ارسال تصویر", "sendImages": "ارسال تصاویر", "sendFile": "ارسال فایل", "cancel": "انصراف" }, "permissions": { "permissionTitle": "دسترسی دوربین و میکروفون", "description": " برای اینکه بتونی توی تماسهای تصویری شرکت کنی یا پیام صوتی بفرستی، نیاز داریم به دوربین و میکروفونت دسترسی داشته باشیم.", "allow": "تایید دسترسی", "notNow": "الان نه", "retry": "تلاش مجدد", "mic": { "title": "دسترسی میکروفون", "description": "برای ارسال پیام صوتی و برقراری تماس تصویری به دسترسی میکروفون شما نیاز داریم." }, "cam": { "title": "دسترسی دوربین", "description": "برای ارسال پیام ویدیویی و برقراری تماس تصویری به دسترسی دوربین شما نیاز داریم." }, "micError": { "title": "میکروفون شما غیرفعال است", "description": "برای ارسال پیام صوتی یا تماس، نیاز به تایید دسترسی میکروفون داریم." }, "camError": { "title": "خطای دسترسی به دوربین", "description": "برای ارسال پیام و تماس ویدیویی نیاز به تایید دسترسی دوربین داریم." }, "screen": { "title": "دسترسی به صفحه", "description": "بعد از زدن دکمه تایید لطفا صفحه یا زبانه انتخابی خویش را برای به اشتراک گذاری انتخاب نمایید." }, "screenError": { "title": "خطا در دسترسی به صفحه", "description": "دسترسی به تصویر صفحه با خطا مواجه شد. برای اشتراک گذاری تصویر صفحه شما نیازمند تایید دسترسی به صفحه هستیم." } }, "you": "شما", "copiedMessage": "پیام با موفقیت به کلیپ بورد الصاق شد.", "editFailed": "ویرایش پیام انجام نشد. دوباره تلاش کنید.", "deleteFailed": "حذف پیام انجام نشد. دوباره تلاش کنید.", "unreadMessages": "خوانده نشده.", "caption": "کپشن", "send": "ارسال", "delete": { "title": "حذف پیام", "singleMessage": "آیا از حذف پیام اطمینان دارید ؟", "multipleMessages": "آیا از حذف {count} پیام اطمینان دارید؟", "confirm": "حذف", "requestTitle": "لغو درخواست", "request": "آیا از لغو درخواست خود اطمینان دارید ؟" }, "call": { "title": "تماس", "you": "شما", "active": "تماس برقرار است", "participants": "{count} شرکتکننده", "yourPresentation": "ارائه شما", "presentationOf": "ارائه {name}", "cameraIsOff": "دوربین خاموش است", "deviceDoesntSupport": "دستگاه شما از این قابلیت پشتیبانی نمیکند.", "errors": { "noMicDevice": "میکروفونی شناسایی نشد", "noCameraDevice": "دوربینی شناسایی نشد", "cameraDenied": "دسترسی به دوربین رد شد", "micDenied": "دسترسی به میکروفون رد شد", "noMicFound": "میکروفونی یافت نشد", "micAccessError": "خطا در دسترسی به میکروفون", "noCameraFound": "دوربینی یافت نشد", "cameraAccessError": "خطا در دسترسی به دوربین", "mediaInitError": "خطا در راهاندازی دستگاههای رسانهای", "screenShareMobileUnsupported": "اشتراکگذاری صفحه در دستگاههای موبایل پشتیبانی نمیشود", "screenShareBrowserUnsupported": "اشتراکگذاری صفحه در این مرورگر پشتیبانی نمیشود", "screenShareDenied": "دسترسی به اشتراکگذاری صفحه رد شد", "screenAccessError": "امکان دسترسی به صفحه وجود ندارد", "screenShareMobileMaybeUnavailable": "ممکن است اشتراکگذاری صفحه در دستگاههای موبایل در دسترس نباشد", "screenShareStartFailed": "راهاندازی اشتراکگذاری صفحه ناموفق بود", "cameraUnavailable": "دوربین در دسترس نیست", "flashlightToggleFailed": "تغییر حالت چراغ قوه ناموفق بود" }, "controls": { "endCall": "پایان تماس", "minimize": "کوچک کردن", "maximize": "بازگشت به تماس", "mute": "قطع میکروفون", "unmute": "وصل میکروفون", "cameraOff": "خاموش کردن دوربین", "cameraOn": "روشن کردن دوربین", "shareScreen": "اشتراکگذاری صفحه", "stopSharing": "توقف اشتراکگذاری", "fullscreen": "تمام صفحه", "exitFullscreen": "خروج از تمام صفحه", "flashlight": "چراغقوه", "cameras": "دوربینهای موجود", "chooseCamera": "انتخاب دوربین", "pauseVideo": "توقف ویدیو", "playVideo": "پخش ویدیو", "nextParticipant": "نمایش شرکتکننده بعدی" } }, "board": { "title": "تخته", "selectColor": "انتخاب رنگ", "page": "صفحه {page}", "addPage": "صفحه جدید", "confirm": "تایید", "savedSuccessfully": "تصویر با موفقیت ذخیره سازی شد." } };
|
|
180
180
|
const chatFa = {
|
|
181
181
|
chat: chat$1
|
|
182
182
|
};
|
|
@@ -552,7 +552,7 @@ const useCallStore = defineStore("call-modal", () => {
|
|
|
552
552
|
);
|
|
553
553
|
}, 1e3);
|
|
554
554
|
};
|
|
555
|
-
const startCall = (id) => {
|
|
555
|
+
const startCall = (id, { video = true } = {}) => {
|
|
556
556
|
if (isActive.value) {
|
|
557
557
|
isMinimized.value = false;
|
|
558
558
|
return;
|
|
@@ -568,7 +568,7 @@ const useCallStore = defineStore("call-modal", () => {
|
|
|
568
568
|
channelId.value = id;
|
|
569
569
|
isActive.value = true;
|
|
570
570
|
isMinimized.value = false;
|
|
571
|
-
void import("./session-
|
|
571
|
+
void import("./session-CN61aKfb.mjs").then(({ createCallSession }) => {
|
|
572
572
|
if (current !== attempt) return;
|
|
573
573
|
const call = createCallSession({
|
|
574
574
|
handlers: callHandlers,
|
|
@@ -578,7 +578,8 @@ const useCallStore = defineStore("call-modal", () => {
|
|
|
578
578
|
name: () => profileStore.userName ?? "",
|
|
579
579
|
avatar: () => profileStore.userAvatar
|
|
580
580
|
},
|
|
581
|
-
notify: (key) => openToast(t(key), "error")
|
|
581
|
+
notify: (key) => openToast(t(key), "error"),
|
|
582
|
+
video
|
|
582
583
|
});
|
|
583
584
|
session.value = markRaw(call);
|
|
584
585
|
void call.start();
|
|
@@ -1780,7 +1781,7 @@ const _hoisted_6$b = {
|
|
|
1780
1781
|
};
|
|
1781
1782
|
const _hoisted_7$a = { class: "text-chat-muted text-[11px]" };
|
|
1782
1783
|
const _hoisted_8$5 = { class: "w-full flex items-center justify-between mt-0.5" };
|
|
1783
|
-
const _hoisted_9$
|
|
1784
|
+
const _hoisted_9$3 = { class: "flex items-center gap-x-1.5 flex-1 overflow-hidden" };
|
|
1784
1785
|
const _hoisted_10$3 = {
|
|
1785
1786
|
key: 0,
|
|
1786
1787
|
class: "max-w-full truncate text-body-sm flex items-center gap-x-1"
|
|
@@ -1907,7 +1908,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
|
1907
1908
|
])) : createCommentVNode("", true)
|
|
1908
1909
|
]),
|
|
1909
1910
|
createElementVNode("div", _hoisted_8$5, [
|
|
1910
|
-
createElementVNode("div", _hoisted_9$
|
|
1911
|
+
createElementVNode("div", _hoisted_9$3, [
|
|
1911
1912
|
draft2.value ? (openBlock(), createElementBlock("div", _hoisted_10$3, [
|
|
1912
1913
|
createElementVNode("span", _hoisted_11$3, toDisplayString(unref(t)("draft")) + ":", 1),
|
|
1913
1914
|
createVNode(_sfc_main$J, {
|
|
@@ -2069,7 +2070,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
|
2069
2070
|
};
|
|
2070
2071
|
}
|
|
2071
2072
|
});
|
|
2072
|
-
const _hoisted_1$x =
|
|
2073
|
+
const _hoisted_1$x = ["dir"];
|
|
2073
2074
|
const _hoisted_2$u = { class: "flex w-full flex-1 flex-col overflow-hidden" };
|
|
2074
2075
|
const _hoisted_3$n = { class: "flex w-full shrink-0 items-center gap-x-2 px-5 py-2" };
|
|
2075
2076
|
const _hoisted_4$l = {
|
|
@@ -2084,6 +2085,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
2084
2085
|
__name: "ChatList",
|
|
2085
2086
|
setup(__props) {
|
|
2086
2087
|
const { t } = useLocalI18n(chatList);
|
|
2088
|
+
const { dir } = useDirection();
|
|
2087
2089
|
const chatStore = useChatStore();
|
|
2088
2090
|
const activeFilter = ref("");
|
|
2089
2091
|
const searchText = ref("");
|
|
@@ -2128,7 +2130,10 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
2128
2130
|
});
|
|
2129
2131
|
return (_ctx, _cache) => {
|
|
2130
2132
|
const _component_BVirtualVerticalList = _sfc_main$L;
|
|
2131
|
-
return openBlock(), createElementBlock("div",
|
|
2133
|
+
return openBlock(), createElementBlock("div", {
|
|
2134
|
+
dir: unref(dir),
|
|
2135
|
+
class: "vue-chat flex h-full w-full flex-col overflow-hidden border border-chat-outline-variant bg-chat-background"
|
|
2136
|
+
}, [
|
|
2132
2137
|
createVNode(_sfc_main$E, {
|
|
2133
2138
|
modelValue: searchText.value,
|
|
2134
2139
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchText.value = $event),
|
|
@@ -2176,7 +2181,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
2176
2181
|
}, null, 8, ["image-path", "title"])
|
|
2177
2182
|
]))
|
|
2178
2183
|
])
|
|
2179
|
-
]);
|
|
2184
|
+
], 8, _hoisted_1$x);
|
|
2180
2185
|
};
|
|
2181
2186
|
}
|
|
2182
2187
|
});
|
|
@@ -2266,6 +2271,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
2266
2271
|
const visible = useModel(__props, "visible");
|
|
2267
2272
|
const slotNames = Object.keys(useSlots());
|
|
2268
2273
|
const isSheet = useMediaQuery("(max-width: 767.98px)");
|
|
2274
|
+
const { dir } = useDirection();
|
|
2269
2275
|
return (_ctx, _cache) => {
|
|
2270
2276
|
return openBlock(), createBlock(unref(Dialog), mergeProps({
|
|
2271
2277
|
visible: visible.value,
|
|
@@ -2274,7 +2280,8 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
2274
2280
|
position: unref(isSheet) ? "bottom" : "center",
|
|
2275
2281
|
draggable: false,
|
|
2276
2282
|
style: { width: __props.width },
|
|
2277
|
-
breakpoints: { "767.98px": "100vw" }
|
|
2283
|
+
breakpoints: { "767.98px": "100vw" },
|
|
2284
|
+
dir: unref(dir)
|
|
2278
2285
|
}, _ctx.$attrs, {
|
|
2279
2286
|
class: ["vue-chat", unref(isSheet) && "m-0! rounded-b-none!"]
|
|
2280
2287
|
}), createSlots({ _: 2 }, [
|
|
@@ -2286,7 +2293,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
2286
2293
|
])
|
|
2287
2294
|
};
|
|
2288
2295
|
})
|
|
2289
|
-
]), 1040, ["visible", "position", "style", "class"]);
|
|
2296
|
+
]), 1040, ["visible", "position", "style", "dir", "class"]);
|
|
2290
2297
|
};
|
|
2291
2298
|
}
|
|
2292
2299
|
});
|
|
@@ -2574,15 +2581,15 @@ const _hoisted_5$e = { class: "h-29 w-full" };
|
|
|
2574
2581
|
const _hoisted_6$9 = { class: "p-1" };
|
|
2575
2582
|
const _hoisted_7$8 = { class: "flex w-full -translate-y-1/2 items-center justify-center absolute z-20" };
|
|
2576
2583
|
const _hoisted_8$4 = { class: "h-25 w-25 overflow-hidden rounded-full" };
|
|
2577
|
-
const _hoisted_9$
|
|
2584
|
+
const _hoisted_9$2 = { class: "flex w-full shrink-0 flex-col items-center justify-center gap-y-2 select-none mt-2" };
|
|
2578
2585
|
const _hoisted_10$2 = { class: "text-title-md text-chat-on-background" };
|
|
2579
2586
|
const _hoisted_11$2 = { class: "w-full shrink-0 px-6" };
|
|
2580
2587
|
const _hoisted_12$2 = { class: "flex w-full items-center justify-center gap-x-2 py-4" };
|
|
2581
2588
|
const _hoisted_13$2 = { class: "flex w-full flex-col gap-y-4 py-4" };
|
|
2582
2589
|
const _hoisted_14$2 = { class: "text-body-sm text-chat-muted" };
|
|
2583
2590
|
const _hoisted_15$1 = { class: "text-body-md text-chat-on-background" };
|
|
2584
|
-
const _hoisted_16
|
|
2585
|
-
const _hoisted_17
|
|
2591
|
+
const _hoisted_16 = { class: "flex min-h-0 w-full flex-1 flex-col select-none" };
|
|
2592
|
+
const _hoisted_17 = {
|
|
2586
2593
|
key: 0,
|
|
2587
2594
|
class: "flex h-full w-full min-h-0 flex-col gap-y-1"
|
|
2588
2595
|
};
|
|
@@ -2611,8 +2618,10 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
2611
2618
|
props: {
|
|
2612
2619
|
profile: { default: null }
|
|
2613
2620
|
},
|
|
2614
|
-
|
|
2621
|
+
emits: ["end"],
|
|
2622
|
+
setup(__props, { emit: __emit }) {
|
|
2615
2623
|
const props = __props;
|
|
2624
|
+
const emit = __emit;
|
|
2616
2625
|
const { getYearsPassed } = useDate();
|
|
2617
2626
|
const callStore = useCallStore();
|
|
2618
2627
|
const chatStore = useChatStore();
|
|
@@ -2659,7 +2668,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
2659
2668
|
{
|
|
2660
2669
|
title: t("options.end"),
|
|
2661
2670
|
icon: "PhX",
|
|
2662
|
-
active: localProfile.value ? localProfile.value.isActive : false,
|
|
2671
|
+
active: localProfile.value ? localProfile.value.isActive && chatStore.canEndConversation : false,
|
|
2663
2672
|
key: "end",
|
|
2664
2673
|
color: "error"
|
|
2665
2674
|
},
|
|
@@ -2746,11 +2755,14 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
2746
2755
|
if (!action.active) return;
|
|
2747
2756
|
switch (action.key) {
|
|
2748
2757
|
case "end":
|
|
2758
|
+
emit("end");
|
|
2749
2759
|
break;
|
|
2750
2760
|
case "voice-call":
|
|
2751
2761
|
case "video-call":
|
|
2752
2762
|
if (chatStore.activeConversationId && props.profile) {
|
|
2753
|
-
callStore.startCall(chatStore.activeConversationId
|
|
2763
|
+
callStore.startCall(chatStore.activeConversationId, {
|
|
2764
|
+
video: action.key === "video-call"
|
|
2765
|
+
});
|
|
2754
2766
|
}
|
|
2755
2767
|
break;
|
|
2756
2768
|
}
|
|
@@ -2808,7 +2820,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
2808
2820
|
]),
|
|
2809
2821
|
_cache[1] || (_cache[1] = createElementVNode("div", { class: "h-12.5 w-full" }, null, -1))
|
|
2810
2822
|
]),
|
|
2811
|
-
createElementVNode("div", _hoisted_9$
|
|
2823
|
+
createElementVNode("div", _hoisted_9$2, [
|
|
2812
2824
|
withDirectives((openBlock(), createElementBlock("div", _hoisted_10$2, [
|
|
2813
2825
|
createTextVNode(toDisplayString((_a = localProfile.value) == null ? void 0 : _a.name), 1)
|
|
2814
2826
|
])), [
|
|
@@ -2868,8 +2880,8 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
2868
2880
|
}), 128))
|
|
2869
2881
|
])
|
|
2870
2882
|
]),
|
|
2871
|
-
createElementVNode("div", _hoisted_16
|
|
2872
|
-
!shouldShowTabs.value ? (openBlock(), createElementBlock("div", _hoisted_17
|
|
2883
|
+
createElementVNode("div", _hoisted_16, [
|
|
2884
|
+
!shouldShowTabs.value ? (openBlock(), createElementBlock("div", _hoisted_17, [
|
|
2873
2885
|
fileAttachements.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_18, [
|
|
2874
2886
|
createElementVNode("div", _hoisted_19, toDisplayString(unref(t)("info.files")), 1),
|
|
2875
2887
|
(openBlock(true), createElementBlock(Fragment, null, renderList(fileAttachements.value, (file2, index) => {
|
|
@@ -3674,6 +3686,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
3674
3686
|
"onUpdate:activeIndex": _cache[4] || (_cache[4] = ($event) => activeIndex.value = $event),
|
|
3675
3687
|
value: __props.items,
|
|
3676
3688
|
"full-screen": "",
|
|
3689
|
+
dir: unref(dir),
|
|
3677
3690
|
"show-thumbnails": hasMany.value,
|
|
3678
3691
|
"show-item-navigators": hasMany.value,
|
|
3679
3692
|
"num-visible": __props.items.length,
|
|
@@ -3750,7 +3763,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
3750
3763
|
}, null, 8, ["item", "class"])
|
|
3751
3764
|
]),
|
|
3752
3765
|
_: 1
|
|
3753
|
-
}, 8, ["visible", "active-index", "value", "show-thumbnails", "show-item-navigators", "num-visible", "pt"]);
|
|
3766
|
+
}, 8, ["visible", "active-index", "value", "dir", "show-thumbnails", "show-item-navigators", "num-visible", "pt"]);
|
|
3754
3767
|
};
|
|
3755
3768
|
}
|
|
3756
3769
|
});
|
|
@@ -3772,7 +3785,7 @@ const _hoisted_8$3 = {
|
|
|
3772
3785
|
"data-testid": "message-reader",
|
|
3773
3786
|
class: "flex select-none items-center gap-x-2.5 px-2 py-1.5"
|
|
3774
3787
|
};
|
|
3775
|
-
const _hoisted_9$
|
|
3788
|
+
const _hoisted_9$1 = { class: "size-8 shrink-0" };
|
|
3776
3789
|
const _hoisted_10$1 = { class: "flex min-w-0 flex-1 flex-col" };
|
|
3777
3790
|
const _hoisted_11$1 = { class: "truncate text-label-md text-chat-on-background" };
|
|
3778
3791
|
const _hoisted_12$1 = {
|
|
@@ -3792,6 +3805,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
3792
3805
|
setup(__props, { expose: __expose }) {
|
|
3793
3806
|
const props = __props;
|
|
3794
3807
|
const { t } = useLocalI18n(bubbleOptions);
|
|
3808
|
+
const { dir } = useDirection();
|
|
3795
3809
|
const { formatDateShort, formatTime } = useDate();
|
|
3796
3810
|
const messagesStore = useMessagesStore();
|
|
3797
3811
|
const menu = ref(null);
|
|
@@ -3946,6 +3960,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
3946
3960
|
ref: menu,
|
|
3947
3961
|
model: items.value,
|
|
3948
3962
|
pt,
|
|
3963
|
+
dir: unref(dir),
|
|
3949
3964
|
class: "vue-chat",
|
|
3950
3965
|
onHide: onMenuClosed
|
|
3951
3966
|
}, {
|
|
@@ -4006,7 +4021,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
4006
4021
|
})
|
|
4007
4022
|
], 64))
|
|
4008
4023
|
], 16)) : item.reader ? (openBlock(), createElementBlock("div", _hoisted_8$3, [
|
|
4009
|
-
createElementVNode("span", _hoisted_9$
|
|
4024
|
+
createElementVNode("span", _hoisted_9$1, [
|
|
4010
4025
|
createVNode(_sfc_main$I, {
|
|
4011
4026
|
contact: readerAvatar(item.reader),
|
|
4012
4027
|
"show-online": false
|
|
@@ -4035,7 +4050,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
4035
4050
|
], 16))
|
|
4036
4051
|
]),
|
|
4037
4052
|
_: 1
|
|
4038
|
-
}, 8, ["model"]);
|
|
4053
|
+
}, 8, ["model", "dir"]);
|
|
4039
4054
|
};
|
|
4040
4055
|
}
|
|
4041
4056
|
});
|
|
@@ -5072,21 +5087,20 @@ const _hoisted_2$b = {
|
|
|
5072
5087
|
class: "py-3 w-full flex justify-center"
|
|
5073
5088
|
};
|
|
5074
5089
|
const _hoisted_3$8 = { class: "select-none md:select-auto w-full" };
|
|
5075
|
-
const _hoisted_4$8 = { class: "flex
|
|
5076
|
-
const _hoisted_5$5 = {
|
|
5077
|
-
const _hoisted_6$4 = {
|
|
5090
|
+
const _hoisted_4$8 = { class: "flex-1 min-w-0" };
|
|
5091
|
+
const _hoisted_5$5 = {
|
|
5078
5092
|
key: 1,
|
|
5079
5093
|
class: "max-w-full wrap-break-word px-2.5 py-1.5"
|
|
5080
5094
|
};
|
|
5081
|
-
const
|
|
5095
|
+
const _hoisted_6$4 = {
|
|
5082
5096
|
key: 5,
|
|
5083
5097
|
class: "flex justify-end px-2 pb-1"
|
|
5084
5098
|
};
|
|
5085
|
-
const
|
|
5099
|
+
const _hoisted_7$3 = {
|
|
5086
5100
|
key: 1,
|
|
5087
5101
|
class: "relative"
|
|
5088
5102
|
};
|
|
5089
|
-
const
|
|
5103
|
+
const _hoisted_8$2 = {
|
|
5090
5104
|
key: 0,
|
|
5091
5105
|
class: "size-8 shrink-0"
|
|
5092
5106
|
};
|
|
@@ -5132,12 +5146,15 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
5132
5146
|
const groupedWithNext = computed(
|
|
5133
5147
|
() => sameGroup(props.message, props.message.nextMessage)
|
|
5134
5148
|
);
|
|
5149
|
+
const sideClass = computed(
|
|
5150
|
+
() => isMine.value ? "justify-end rtl:justify-start" : "justify-start rtl:justify-end"
|
|
5151
|
+
);
|
|
5135
5152
|
const roundingClasses = computed(() => {
|
|
5136
5153
|
const prev = groupedWithPrev.value;
|
|
5137
5154
|
const next = groupedWithNext.value;
|
|
5138
5155
|
if (isMine.value)
|
|
5139
|
-
return [prev && "rounded-
|
|
5140
|
-
return [prev && "rounded-
|
|
5156
|
+
return [prev && "rounded-tr-md", next ? "rounded-br-md" : "rounded-br-xs"];
|
|
5157
|
+
return [prev && "rounded-tl-md", next ? "rounded-bl-md" : "rounded-bl-xs"];
|
|
5141
5158
|
});
|
|
5142
5159
|
const uploadData = computed(
|
|
5143
5160
|
() => messagesStore.uploadProgress.get(props.message.id)
|
|
@@ -5203,15 +5220,17 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
5203
5220
|
}, null, 8, ["message", "contact"])
|
|
5204
5221
|
])) : (openBlock(), createElementBlock("div", mergeProps({
|
|
5205
5222
|
key: 2,
|
|
5206
|
-
class: ["flex items-center flex-1 min-w-0 relative",
|
|
5223
|
+
class: ["flex items-center flex-1 min-w-0 relative", sideClass.value],
|
|
5207
5224
|
onClick: handleLeftClick
|
|
5208
5225
|
}, toHandlers(unref(longPress), true)), [
|
|
5209
5226
|
createElementVNode("div", _hoisted_3$8, [
|
|
5210
5227
|
createElementVNode("div", {
|
|
5211
|
-
class: normalizeClass(["w-full flex items-center",
|
|
5228
|
+
class: normalizeClass(["w-full flex items-center", sideClass.value])
|
|
5212
5229
|
}, [
|
|
5213
|
-
createElementVNode("div",
|
|
5214
|
-
|
|
5230
|
+
createElementVNode("div", {
|
|
5231
|
+
class: normalizeClass(["flex max-w-4/5 items-end gap-x-2", { "flex-row-reverse rtl:flex-row": !isMine.value }])
|
|
5232
|
+
}, [
|
|
5233
|
+
createElementVNode("div", _hoisted_4$8, [
|
|
5215
5234
|
isTextBased.value ? (openBlock(), createElementBlock("div", {
|
|
5216
5235
|
key: 0,
|
|
5217
5236
|
class: normalizeClass(["relative rounded-2xl p-1 shadow-xs", [
|
|
@@ -5227,7 +5246,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
5227
5246
|
"is-mine": isMine.value,
|
|
5228
5247
|
"current-user-id": currentUserId.value
|
|
5229
5248
|
}, null, 8, ["message", "contact", "is-mine", "current-user-id"])) : createCommentVNode("", true),
|
|
5230
|
-
messageType.value === "text" ? (openBlock(), createElementBlock("p",
|
|
5249
|
+
messageType.value === "text" ? (openBlock(), createElementBlock("p", _hoisted_5$5, [
|
|
5231
5250
|
createVNode(_sfc_main$J, {
|
|
5232
5251
|
text: __props.message.text
|
|
5233
5252
|
}, null, 8, ["text"]),
|
|
@@ -5254,13 +5273,13 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
5254
5273
|
"message-id": __props.message.id,
|
|
5255
5274
|
"is-sent": __props.message.isSent
|
|
5256
5275
|
}, null, 8, ["url", "message-id", "is-sent"])) : createCommentVNode("", true),
|
|
5257
|
-
messageType.value !== "text" ? (openBlock(), createElementBlock("div",
|
|
5276
|
+
messageType.value !== "text" ? (openBlock(), createElementBlock("div", _hoisted_6$4, [
|
|
5258
5277
|
createVNode(_sfc_main$h, {
|
|
5259
5278
|
message: __props.message,
|
|
5260
5279
|
"is-mine": isMine.value
|
|
5261
5280
|
}, null, 8, ["message", "is-mine"])
|
|
5262
5281
|
])) : createCommentVNode("", true)
|
|
5263
|
-
], 2)) : (openBlock(), createElementBlock("div",
|
|
5282
|
+
], 2)) : (openBlock(), createElementBlock("div", _hoisted_7$3, [
|
|
5264
5283
|
messageType.value === "image" || messageType.value === "multiImage" ? (openBlock(), createBlock(_sfc_main$l, {
|
|
5265
5284
|
key: 0,
|
|
5266
5285
|
items: media.value,
|
|
@@ -5284,14 +5303,14 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
5284
5303
|
message: __props.message
|
|
5285
5304
|
}, null, 8, ["message"])) : createCommentVNode("", true)
|
|
5286
5305
|
]),
|
|
5287
|
-
!isMine.value ? (openBlock(), createElementBlock("div",
|
|
5306
|
+
!isMine.value ? (openBlock(), createElementBlock("div", _hoisted_8$2, [
|
|
5288
5307
|
!groupedWithNext.value ? (openBlock(), createBlock(_sfc_main$I, {
|
|
5289
5308
|
key: 0,
|
|
5290
5309
|
contact: __props.contact,
|
|
5291
5310
|
"show-online": false
|
|
5292
5311
|
}, null, 8, ["contact"])) : createCommentVNode("", true)
|
|
5293
5312
|
])) : createCommentVNode("", true)
|
|
5294
|
-
])
|
|
5313
|
+
], 2)
|
|
5295
5314
|
], 2)
|
|
5296
5315
|
]),
|
|
5297
5316
|
viewerMounted.value && media.value.length > 0 ? (openBlock(), createBlock(_sfc_main$u, {
|
|
@@ -5378,19 +5397,18 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
5378
5397
|
__name: "FloatingDateHeader",
|
|
5379
5398
|
props: {
|
|
5380
5399
|
label: {},
|
|
5381
|
-
opacity: {}
|
|
5382
|
-
offset: { type: Boolean }
|
|
5400
|
+
opacity: {}
|
|
5383
5401
|
},
|
|
5384
5402
|
setup(__props) {
|
|
5385
5403
|
return (_ctx, _cache) => {
|
|
5386
5404
|
return openBlock(), createElementBlock("div", {
|
|
5387
|
-
class:
|
|
5405
|
+
class: "absolute top-4 left-0 right-0 z-20 flex justify-center pointer-events-none transition-opacity duration-200",
|
|
5388
5406
|
style: normalizeStyle({ opacity: __props.opacity })
|
|
5389
5407
|
}, [
|
|
5390
5408
|
__props.label ? (openBlock(), createElementBlock("div", _hoisted_1$b, [
|
|
5391
5409
|
createElementVNode("div", _hoisted_2$9, toDisplayString(__props.label), 1)
|
|
5392
5410
|
])) : createCommentVNode("", true)
|
|
5393
|
-
],
|
|
5411
|
+
], 4);
|
|
5394
5412
|
};
|
|
5395
5413
|
}
|
|
5396
5414
|
});
|
|
@@ -5562,7 +5580,6 @@ function useChatMessageList(chatId) {
|
|
|
5562
5580
|
function useFlippedVirtualScroll(options2) {
|
|
5563
5581
|
const {
|
|
5564
5582
|
scrollContainer,
|
|
5565
|
-
hasCall,
|
|
5566
5583
|
isLoading,
|
|
5567
5584
|
isLocked,
|
|
5568
5585
|
onLoadMore
|
|
@@ -5603,7 +5620,7 @@ function useFlippedVirtualScroll(options2) {
|
|
|
5603
5620
|
}
|
|
5604
5621
|
const items = virtualizer.value.getVirtualItems();
|
|
5605
5622
|
if (items.length > 0) {
|
|
5606
|
-
const targetOffset =
|
|
5623
|
+
const targetOffset = 44;
|
|
5607
5624
|
const physicalTopOfViewport = el.scrollHeight - el.clientHeight - el.scrollTop;
|
|
5608
5625
|
const targetPhysicalTop = physicalTopOfViewport + targetOffset;
|
|
5609
5626
|
let closestIndex = items[0].index;
|
|
@@ -5670,10 +5687,7 @@ function useFlippedVirtualScroll(options2) {
|
|
|
5670
5687
|
}
|
|
5671
5688
|
};
|
|
5672
5689
|
}
|
|
5673
|
-
const _hoisted_1$9 =
|
|
5674
|
-
key: 0,
|
|
5675
|
-
class: "vue-chat relative w-full h-full overflow-hidden"
|
|
5676
|
-
};
|
|
5690
|
+
const _hoisted_1$9 = ["dir"];
|
|
5677
5691
|
const _hoisted_2$8 = { class: "w-full max-w-dvw overflow-x-hidden" };
|
|
5678
5692
|
const _hoisted_3$7 = ["data-index"];
|
|
5679
5693
|
const _hoisted_4$7 = { class: "w-full shrink-0 flip-vertical" };
|
|
@@ -5687,22 +5701,20 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
5687
5701
|
setup(__props) {
|
|
5688
5702
|
const modal = ref(null);
|
|
5689
5703
|
const chatStore = useChatStore();
|
|
5690
|
-
const callStore = useCallStore();
|
|
5691
5704
|
const messagesStore = useMessagesStore();
|
|
5692
5705
|
const { t } = useLocalI18n(chatMessages, chat);
|
|
5706
|
+
const { dir } = useDirection();
|
|
5693
5707
|
const { openToast } = useAppToast();
|
|
5694
5708
|
const { formatDateShort } = useDate();
|
|
5695
5709
|
const profileStore = useProfileStore();
|
|
5696
5710
|
const currentUserId = computed(() => profileStore.userId);
|
|
5697
5711
|
const chatId = computed(() => chatStore.activeConversationId);
|
|
5698
|
-
const hasCall = computed(() => callStore.isActive);
|
|
5699
5712
|
const lockScroll = computed(() => messagesStore.isOptionMenuOpen);
|
|
5700
5713
|
const scrollContainer = ref(null);
|
|
5701
5714
|
const selectedToDelete = ref([]);
|
|
5702
5715
|
const msgList = useChatMessageList(chatId);
|
|
5703
5716
|
const scroll = useFlippedVirtualScroll({
|
|
5704
5717
|
scrollContainer,
|
|
5705
|
-
hasCall,
|
|
5706
5718
|
isLoading: msgList.isLoading,
|
|
5707
5719
|
isLocked: lockScroll,
|
|
5708
5720
|
onLoadMore: msgList.loadNextPage
|
|
@@ -5815,14 +5827,16 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
5815
5827
|
});
|
|
5816
5828
|
return (_ctx, _cache) => {
|
|
5817
5829
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
5818
|
-
__props.contact ? (openBlock(), createElementBlock("div",
|
|
5830
|
+
__props.contact ? (openBlock(), createElementBlock("div", {
|
|
5831
|
+
key: 0,
|
|
5832
|
+
dir: unref(dir),
|
|
5833
|
+
class: "vue-chat relative w-full h-full overflow-hidden"
|
|
5834
|
+
}, [
|
|
5819
5835
|
createVNode(_sfc_main$d, {
|
|
5820
5836
|
label: floatingHeader.value,
|
|
5821
|
-
opacity: unref(scroll).headerOpacity.value
|
|
5822
|
-
|
|
5823
|
-
}, null, 8, ["label", "opacity", "offset"]),
|
|
5837
|
+
opacity: unref(scroll).headerOpacity.value
|
|
5838
|
+
}, null, 8, ["label", "opacity"]),
|
|
5824
5839
|
createElementVNode("div", {
|
|
5825
|
-
dir: "rtl",
|
|
5826
5840
|
id: "list",
|
|
5827
5841
|
ref_key: "scrollContainer",
|
|
5828
5842
|
ref: scrollContainer,
|
|
@@ -5904,7 +5918,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
5904
5918
|
onClick: _cache[2] || (_cache[2] = ($event) => unref(scroll).resetScroll())
|
|
5905
5919
|
}, null, 8, ["visible", "unseen"])
|
|
5906
5920
|
])
|
|
5907
|
-
])) : createCommentVNode("", true),
|
|
5921
|
+
], 8, _hoisted_1$9)) : createCommentVNode("", true),
|
|
5908
5922
|
createVNode(_sfc_main$y, {
|
|
5909
5923
|
ref_key: "modal",
|
|
5910
5924
|
ref: modal,
|
|
@@ -5921,8 +5935,8 @@ const _export_sfc = (sfc, props) => {
|
|
|
5921
5935
|
}
|
|
5922
5936
|
return target;
|
|
5923
5937
|
};
|
|
5924
|
-
const ChatMessages = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-
|
|
5925
|
-
const _hoisted_1$8 =
|
|
5938
|
+
const ChatMessages = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-cb7cc93f"]]);
|
|
5939
|
+
const _hoisted_1$8 = ["dir"];
|
|
5926
5940
|
const _hoisted_2$7 = {
|
|
5927
5941
|
key: 0,
|
|
5928
5942
|
class: "relative z-50 flex h-16 w-full items-center justify-between gap-x-4 border-b border-b-chat-outline-variant bg-chat-background py-4 px-5 md:h-20"
|
|
@@ -5946,8 +5960,6 @@ const _hoisted_12 = { class: "h-full w-full" };
|
|
|
5946
5960
|
const _hoisted_13 = { class: "flex flex-col gap-y-1.5" };
|
|
5947
5961
|
const _hoisted_14 = { class: "h-4 w-32" };
|
|
5948
5962
|
const _hoisted_15 = { class: "h-3 w-20" };
|
|
5949
|
-
const _hoisted_16 = { class: "absolute bottom-0 z-20 h-0 w-full overflow-visible" };
|
|
5950
|
-
const _hoisted_17 = { class: "flex-1 select-none text-label-md text-white" };
|
|
5951
5963
|
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
5952
5964
|
__name: "ChatPageBar",
|
|
5953
5965
|
props: {
|
|
@@ -5970,15 +5982,12 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
5970
5982
|
const messagesStore = useMessagesStore();
|
|
5971
5983
|
const { formatRelativeDate } = useDate();
|
|
5972
5984
|
const { t } = useLocalI18n(chatPageBar);
|
|
5985
|
+
const { dir } = useDirection();
|
|
5973
5986
|
const callStore = useCallStore();
|
|
5974
5987
|
const chatStore = useChatStore();
|
|
5975
5988
|
const currentConversationId = computed(() => chatStore.activeConversationId);
|
|
5976
5989
|
const isSelectMode = computed(() => messagesStore.isSelectMode);
|
|
5977
5990
|
const selectedChat = computed(() => props.contact);
|
|
5978
|
-
const callData = computed(() => ({
|
|
5979
|
-
show: callStore.isActive,
|
|
5980
|
-
duration: formatDuration$1(callStore.elapsedTime)
|
|
5981
|
-
}));
|
|
5982
5991
|
const openProfile = () => {
|
|
5983
5992
|
emit("open-profile");
|
|
5984
5993
|
};
|
|
@@ -5990,13 +5999,20 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
5990
5999
|
callStore.startCall(currentConversationId.value);
|
|
5991
6000
|
}
|
|
5992
6001
|
};
|
|
5993
|
-
const backToCall = () => {
|
|
5994
|
-
callStore.maximize();
|
|
5995
|
-
};
|
|
5996
6002
|
return (_ctx, _cache) => {
|
|
5997
6003
|
const _component_BIcon = _sfc_main$K;
|
|
5998
|
-
return openBlock(), createElementBlock("div",
|
|
6004
|
+
return openBlock(), createElementBlock("div", {
|
|
6005
|
+
dir: unref(dir),
|
|
6006
|
+
class: "vue-chat relative z-20 w-full"
|
|
6007
|
+
}, [
|
|
5999
6008
|
selectedChat.value ? (openBlock(), createElementBlock("div", _hoisted_2$7, [
|
|
6009
|
+
createVNode(_sfc_main$F, {
|
|
6010
|
+
icon: "PhArrowLeft",
|
|
6011
|
+
"icon-class": "size-6 rtl:-scale-x-100",
|
|
6012
|
+
label: unref(t)("actions.back"),
|
|
6013
|
+
class: "shrink-0 md:hidden!",
|
|
6014
|
+
onClick: goBack
|
|
6015
|
+
}, null, 8, ["label"]),
|
|
6000
6016
|
createElementVNode("div", _hoisted_3$6, [
|
|
6001
6017
|
createVNode(unref(Button), {
|
|
6002
6018
|
text: "",
|
|
@@ -6051,6 +6067,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
6051
6067
|
ref: "optionsMenu",
|
|
6052
6068
|
model: menuItems.value,
|
|
6053
6069
|
popup: "",
|
|
6070
|
+
dir: unref(dir),
|
|
6054
6071
|
class: "vue-chat"
|
|
6055
6072
|
}, {
|
|
6056
6073
|
itemicon: withCtx(({ item }) => [
|
|
@@ -6060,18 +6077,11 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
6060
6077
|
}, null, 8, ["icon", "class"])
|
|
6061
6078
|
]),
|
|
6062
6079
|
_: 1
|
|
6063
|
-
}, 8, ["model"])
|
|
6080
|
+
}, 8, ["model", "dir"])
|
|
6064
6081
|
])
|
|
6065
6082
|
], 2)
|
|
6066
6083
|
])
|
|
6067
|
-
])
|
|
6068
|
-
createVNode(_sfc_main$F, {
|
|
6069
|
-
icon: "PhArrowLeft",
|
|
6070
|
-
"icon-class": "size-6",
|
|
6071
|
-
label: unref(t)("actions.back"),
|
|
6072
|
-
class: "md:hidden!",
|
|
6073
|
-
onClick: goBack
|
|
6074
|
-
}, null, 8, ["label"])
|
|
6084
|
+
])
|
|
6075
6085
|
])) : currentConversationId.value ? (openBlock(), createElementBlock("div", _hoisted_10, [
|
|
6076
6086
|
createElementVNode("div", _hoisted_11, [
|
|
6077
6087
|
withDirectives(createElementVNode("div", _hoisted_12, null, 512), [
|
|
@@ -6086,30 +6096,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
6086
6096
|
[unref(loadingDirective), true]
|
|
6087
6097
|
])
|
|
6088
6098
|
])
|
|
6089
|
-
])) : createCommentVNode("", true)
|
|
6090
|
-
|
|
6091
|
-
createElementVNode("div", {
|
|
6092
|
-
class: normalizeClass(["flex w-full items-center overflow-hidden whitespace-nowrap bg-diamond-primary-secondary text-wrap px-2 transition-all duration-200 ease-in-out", [callData.value.show ? "h-11" : "h-0"]])
|
|
6093
|
-
}, [
|
|
6094
|
-
createElementVNode("div", {
|
|
6095
|
-
class: normalizeClass(["flex w-full items-center gap-x-3 transition-all duration-200 ease-in-out", [callData.value.show ? "opacity-100" : "opacity-0"]])
|
|
6096
|
-
}, [
|
|
6097
|
-
createVNode(_component_BIcon, {
|
|
6098
|
-
icon: "PhPhoneCall",
|
|
6099
|
-
class: "h-5 w-5 shrink-0 fill-white"
|
|
6100
|
-
}),
|
|
6101
|
-
createElementVNode("div", _hoisted_17, toDisplayString(callData.value.duration), 1),
|
|
6102
|
-
createVNode(_sfc_main$F, {
|
|
6103
|
-
icon: "PhFrameCorners",
|
|
6104
|
-
label: unref(t)("actions.returnToCall"),
|
|
6105
|
-
size: "small",
|
|
6106
|
-
class: "shrink-0 text-white!",
|
|
6107
|
-
onClick: backToCall
|
|
6108
|
-
}, null, 8, ["label"])
|
|
6109
|
-
], 2)
|
|
6110
|
-
], 2)
|
|
6111
|
-
])
|
|
6112
|
-
]);
|
|
6099
|
+
])) : createCommentVNode("", true)
|
|
6100
|
+
], 8, _hoisted_1$8);
|
|
6113
6101
|
};
|
|
6114
6102
|
}
|
|
6115
6103
|
});
|
|
@@ -6244,6 +6232,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
6244
6232
|
const props = __props;
|
|
6245
6233
|
const emit = __emit;
|
|
6246
6234
|
const { t } = useLocalI18n(inputAttachement);
|
|
6235
|
+
const { dir } = useDirection();
|
|
6247
6236
|
const { openToast } = useAppToast();
|
|
6248
6237
|
const menu = ref(null);
|
|
6249
6238
|
const dialogOpen = ref(false);
|
|
@@ -6357,6 +6346,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
6357
6346
|
ref: menu,
|
|
6358
6347
|
model: menuItems.value,
|
|
6359
6348
|
popup: "",
|
|
6349
|
+
dir: unref(dir),
|
|
6360
6350
|
class: "vue-chat"
|
|
6361
6351
|
}, {
|
|
6362
6352
|
itemicon: withCtx(({ item }) => [
|
|
@@ -6366,7 +6356,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
6366
6356
|
}, null, 8, ["icon"])
|
|
6367
6357
|
]),
|
|
6368
6358
|
_: 1
|
|
6369
|
-
}, 8, ["model"]),
|
|
6359
|
+
}, 8, ["model", "dir"]),
|
|
6370
6360
|
createVNode(_sfc_main$C, {
|
|
6371
6361
|
visible: dialogOpen.value,
|
|
6372
6362
|
"onUpdate:visible": _cache[3] || (_cache[3] = ($event) => dialogOpen.value = $event),
|
|
@@ -7105,10 +7095,7 @@ function useInputDraft(editor, isEditing) {
|
|
|
7105
7095
|
});
|
|
7106
7096
|
return { restoreDraft };
|
|
7107
7097
|
}
|
|
7108
|
-
const _hoisted_1$2 =
|
|
7109
|
-
dir: "rtl",
|
|
7110
|
-
class: "vue-chat w-full relative"
|
|
7111
|
-
};
|
|
7098
|
+
const _hoisted_1$2 = ["dir"];
|
|
7112
7099
|
const _hoisted_2$2 = { class: "flex-1 flex items-end gap-x-5" };
|
|
7113
7100
|
const _hoisted_3$1 = { class: "min-h-11 flex items-center w-full" };
|
|
7114
7101
|
const _hoisted_4$1 = ["onKeydown", "data-placeholder"];
|
|
@@ -7123,6 +7110,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
7123
7110
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
7124
7111
|
const props = __props;
|
|
7125
7112
|
const { t } = useLocalI18n(chatInput, chat);
|
|
7113
|
+
const { dir } = useDirection();
|
|
7126
7114
|
const { requestWithPopup, checkMediaStatus } = useAppPermissions();
|
|
7127
7115
|
const messagesStore = useMessagesStore();
|
|
7128
7116
|
const chatStore = useChatStore();
|
|
@@ -7383,7 +7371,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
7383
7371
|
} });
|
|
7384
7372
|
return (_ctx, _cache) => {
|
|
7385
7373
|
const _component_BEmojiPicker = _sfc_main$9;
|
|
7386
|
-
return openBlock(), createElementBlock("div",
|
|
7374
|
+
return openBlock(), createElementBlock("div", {
|
|
7375
|
+
dir: unref(dir),
|
|
7376
|
+
class: "vue-chat w-full relative"
|
|
7377
|
+
}, [
|
|
7387
7378
|
createVNode(_sfc_main$6, {
|
|
7388
7379
|
ref: "videoDisplay",
|
|
7389
7380
|
stream: unref(mediaStream),
|
|
@@ -7435,7 +7426,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
7435
7426
|
onMouseup: _cache[3] || (_cache[3] = //@ts-ignore
|
|
7436
7427
|
(...args) => unref(editor).saveCursorPosition && unref(editor).saveCursorPosition(...args)),
|
|
7437
7428
|
"data-placeholder": inputPlaceholder.value,
|
|
7438
|
-
class: "text-body-md text-on-surface outline-none flex-1 bg-transparent z-10 max-h-[144px] overflow-y-auto hide-scrollbar leading-6 py-1 cursor-text whitespace-pre-wrap break-words empty:before:content-[attr(data-placeholder)] empty:before:text-chat-muted pointer-events-auto"
|
|
7429
|
+
class: "text-body-md text-on-surface outline-none flex-1 bg-transparent z-10 [unicode-bidi:plaintext] max-h-[144px] overflow-y-auto hide-scrollbar leading-6 py-1 cursor-text whitespace-pre-wrap break-words empty:before:content-[attr(data-placeholder)] empty:before:text-chat-muted pointer-events-auto"
|
|
7439
7430
|
}, null, 40, _hoisted_4$1)
|
|
7440
7431
|
]),
|
|
7441
7432
|
createElementVNode("div", _hoisted_5$1, [
|
|
@@ -7452,6 +7443,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
7452
7443
|
}, null, 8, ["label", "disabled"]),
|
|
7453
7444
|
createVNode(unref(Popover), {
|
|
7454
7445
|
ref: "emojiPopover",
|
|
7446
|
+
dir: unref(dir),
|
|
7455
7447
|
class: "vue-chat"
|
|
7456
7448
|
}, {
|
|
7457
7449
|
default: withCtx(() => [
|
|
@@ -7461,7 +7453,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
7461
7453
|
})) : createCommentVNode("", true)
|
|
7462
7454
|
]),
|
|
7463
7455
|
_: 1
|
|
7464
|
-
},
|
|
7456
|
+
}, 8, ["dir"]),
|
|
7465
7457
|
createVNode(_sfc_main$F, {
|
|
7466
7458
|
icon: "PhSmiley",
|
|
7467
7459
|
"icon-class": "size-6",
|
|
@@ -7500,11 +7492,11 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
7500
7492
|
onSelect: handleEmojiSelect
|
|
7501
7493
|
})) : createCommentVNode("", true)
|
|
7502
7494
|
], 2)
|
|
7503
|
-
]);
|
|
7495
|
+
], 8, _hoisted_1$2);
|
|
7504
7496
|
};
|
|
7505
7497
|
}
|
|
7506
7498
|
});
|
|
7507
|
-
const _hoisted_1$1 =
|
|
7499
|
+
const _hoisted_1$1 = ["dir"];
|
|
7508
7500
|
const _hoisted_2$1 = { class: "flex h-full w-full" };
|
|
7509
7501
|
const _hoisted_3 = { class: "h-16 w-full bg-chat-background md:h-20" };
|
|
7510
7502
|
const _hoisted_4 = {
|
|
@@ -7526,6 +7518,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
7526
7518
|
setup(__props) {
|
|
7527
7519
|
const chatStore = useChatStore();
|
|
7528
7520
|
const { t } = useLocalI18n(chatView);
|
|
7521
|
+
const { dir } = useDirection();
|
|
7529
7522
|
const chatInput2 = ref(null);
|
|
7530
7523
|
const chatId = computed(() => chatStore.activeConversationId);
|
|
7531
7524
|
const isProfile = computed(() => chatStore.profileViewOpen);
|
|
@@ -7588,9 +7581,15 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
7588
7581
|
return (_ctx, _cache) => {
|
|
7589
7582
|
var _a, _b;
|
|
7590
7583
|
const _component_BIcon = _sfc_main$K;
|
|
7591
|
-
return openBlock(), createElementBlock("div",
|
|
7584
|
+
return openBlock(), createElementBlock("div", {
|
|
7585
|
+
dir: unref(dir),
|
|
7586
|
+
class: "vue-chat h-full w-full bg-chat-surface"
|
|
7587
|
+
}, [
|
|
7592
7588
|
createElementVNode("div", _hoisted_2$1, [
|
|
7593
|
-
createVNode(_sfc_main$z, {
|
|
7589
|
+
createVNode(_sfc_main$z, {
|
|
7590
|
+
profile: selectedChat.value,
|
|
7591
|
+
onEnd: _cache[0] || (_cache[0] = ($event) => handleOption("end-chat"))
|
|
7592
|
+
}, null, 8, ["profile"]),
|
|
7594
7593
|
withDirectives(createElementVNode("div", {
|
|
7595
7594
|
class: normalizeClass(["h-full flex-1 flex-col items-center justify-between", isProfile.value ? "hidden md:flex" : "flex"])
|
|
7596
7595
|
}, [
|
|
@@ -7656,13 +7655,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
7656
7655
|
createVNode(unref(Toast), {
|
|
7657
7656
|
group: unref(TOAST_GROUP),
|
|
7658
7657
|
position: "bottom-center",
|
|
7658
|
+
dir: unref(dir),
|
|
7659
7659
|
class: "vue-chat"
|
|
7660
|
-
}, null, 8, ["group"])
|
|
7661
|
-
]);
|
|
7660
|
+
}, null, 8, ["group", "dir"])
|
|
7661
|
+
], 8, _hoisted_1$1);
|
|
7662
7662
|
};
|
|
7663
7663
|
}
|
|
7664
7664
|
});
|
|
7665
|
-
const _hoisted_1 =
|
|
7665
|
+
const _hoisted_1 = ["dir"];
|
|
7666
7666
|
const _hoisted_2 = {
|
|
7667
7667
|
key: 1,
|
|
7668
7668
|
class: "w-full h-full flex items-center justify-center"
|
|
@@ -7673,16 +7673,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
7673
7673
|
renderCall: { type: Boolean, default: true }
|
|
7674
7674
|
},
|
|
7675
7675
|
setup(__props) {
|
|
7676
|
-
const Call2 = defineAsyncComponent(() => import("./Call-
|
|
7676
|
+
const Call2 = defineAsyncComponent(() => import("./Call-jiZGoCtR.mjs"));
|
|
7677
7677
|
const props = __props;
|
|
7678
7678
|
const slots = useSlots();
|
|
7679
7679
|
const chatStore = useChatStore();
|
|
7680
7680
|
const callStore = useCallStore();
|
|
7681
7681
|
const { t } = useLocalI18n(chatPage);
|
|
7682
|
+
const { dir } = useDirection();
|
|
7682
7683
|
const isInChat = computed(() => chatStore.activeConversationId !== null);
|
|
7683
7684
|
return (_ctx, _cache) => {
|
|
7684
7685
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
7685
|
-
createElementVNode("div",
|
|
7686
|
+
createElementVNode("div", {
|
|
7687
|
+
dir: unref(dir),
|
|
7688
|
+
class: "vue-chat flex w-full h-full max-h-full overflow-hidden font-chat-family text-chat-base text-chat-on-background bg-chat-background"
|
|
7689
|
+
}, [
|
|
7686
7690
|
createElementVNode("div", {
|
|
7687
7691
|
class: normalizeClass(["relative h-full flex-1", isInChat.value ? "block" : "hidden md:block"])
|
|
7688
7692
|
}, [
|
|
@@ -7722,7 +7726,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
7722
7726
|
}, [
|
|
7723
7727
|
createVNode(_sfc_main$D)
|
|
7724
7728
|
], 2)
|
|
7725
|
-
]),
|
|
7729
|
+
], 8, _hoisted_1),
|
|
7726
7730
|
props.renderCall && unref(callStore).session ? (openBlock(), createBlock(unref(Call2), { key: 0 })) : createCommentVNode("", true)
|
|
7727
7731
|
], 64);
|
|
7728
7732
|
};
|
|
@@ -7786,32 +7790,33 @@ function createChat(options2) {
|
|
|
7786
7790
|
}
|
|
7787
7791
|
};
|
|
7788
7792
|
}
|
|
7789
|
-
const Call = defineAsyncComponent(() => import("./Call-
|
|
7793
|
+
const Call = defineAsyncComponent(() => import("./Call-jiZGoCtR.mjs"));
|
|
7790
7794
|
export {
|
|
7791
7795
|
CallMessageType as C,
|
|
7792
7796
|
_sfc_main$F as _,
|
|
7793
7797
|
useLocalI18n as a,
|
|
7794
7798
|
useDirection as b,
|
|
7795
7799
|
chat as c,
|
|
7796
|
-
|
|
7797
|
-
_sfc_main$
|
|
7798
|
-
|
|
7799
|
-
_sfc_main$
|
|
7800
|
-
|
|
7801
|
-
_sfc_main$
|
|
7802
|
-
|
|
7803
|
-
_sfc_main$
|
|
7804
|
-
_sfc_main$
|
|
7805
|
-
_sfc_main$
|
|
7806
|
-
|
|
7807
|
-
_sfc_main as o,
|
|
7808
|
-
|
|
7809
|
-
|
|
7810
|
-
|
|
7811
|
-
|
|
7812
|
-
|
|
7800
|
+
useChatStore as d,
|
|
7801
|
+
_sfc_main$K as e,
|
|
7802
|
+
formatDuration$1 as f,
|
|
7803
|
+
_sfc_main$C as g,
|
|
7804
|
+
_sfc_main$9 as h,
|
|
7805
|
+
_sfc_main$L as i,
|
|
7806
|
+
Call as j,
|
|
7807
|
+
_sfc_main$f as k,
|
|
7808
|
+
_sfc_main$1 as l,
|
|
7809
|
+
_sfc_main$a as m,
|
|
7810
|
+
_sfc_main$2 as n,
|
|
7811
|
+
_sfc_main$D as o,
|
|
7812
|
+
ChatMessages as p,
|
|
7813
|
+
_sfc_main as q,
|
|
7814
|
+
createChat as r,
|
|
7815
|
+
messageMedia as s,
|
|
7816
|
+
provideCallHandlers as t,
|
|
7813
7817
|
useCallStore as u,
|
|
7814
|
-
|
|
7815
|
-
|
|
7818
|
+
useMediaStore as v,
|
|
7819
|
+
useMessagesStore as w,
|
|
7820
|
+
useProfileStore as x
|
|
7816
7821
|
};
|
|
7817
|
-
//# sourceMappingURL=index-
|
|
7822
|
+
//# sourceMappingURL=index-CHFzAdVI.mjs.map
|