@mobilon-dev/chotto 0.3.86 → 0.3.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/1_atoms/ButtonContextMenu/ButtonContextMenu.vue2.js +15 -13
  3. package/dist/components/1_atoms/ContactContextMenu/ContactContextMenu.vue2.js +4 -2
  4. package/dist/components/1_atoms/ContextMenu/ContextMenu.vue.js +43 -39
  5. package/dist/components/1_atoms/EmojiGlyph/EmojiGlyph.vue.js +7 -5
  6. package/dist/components/1_atoms/LoadingIndicator/LoadingIndicator.vue.js +19 -18
  7. package/dist/components/1_atoms/Tooltip/Tooltip.vue.js +2 -2
  8. package/dist/components/1_atoms/Tooltip/Tooltip.vue2.js +83 -72
  9. package/dist/components/2_blocks/FeedSearch/FeedSearch.vue2.js +11 -10
  10. package/dist/components/2_chatinput_elements/ButtonCommandsSelector/ButtonCommandsSelector.vue2.js +4 -2
  11. package/dist/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue2.js +18 -16
  12. package/dist/components/2_chatinput_elements/ButtonTemplateSelector/ButtonTemplateSelector.vue2.js +16 -14
  13. package/dist/components/2_chatinput_elements/ButtonWabaTemplateSelector/ButtonWabaTemplateSelector.vue.js +4 -2
  14. package/dist/components/2_chatinput_elements/FilePreview/FilePreview.vue2.js +4 -2
  15. package/dist/components/2_chatinput_elements/FileUploader/FileUploader.vue2.js +4 -2
  16. package/dist/components/2_chatinput_elements/StickerPicker/StickerPicker.vue2.js +4 -2
  17. package/dist/components/2_chatinput_elements/TemplateSelector/TemplateSelector.vue.js +4 -2
  18. package/dist/components/2_chatinput_elements/TextFormatToolbar/TextFormatToolbar.vue2.js +4 -3
  19. package/dist/components/2_chatinput_elements/WABAAttachmentSection/WABAAttachmentSection.vue2.js +4 -2
  20. package/dist/components/2_chatlist_elements/ChatItem/ChatItem.vue2.js +3 -2
  21. package/dist/components/2_elements/AudioRecorder/AudioRecorder.vue2.js +4 -2
  22. package/dist/components/2_elements/ChannelSelector/ChannelSelector.vue.js +3 -2
  23. package/dist/components/2_elements/ThemeMode/ThemeMode.vue.js +7 -5
  24. package/dist/components/2_elements/VideoRecorder/VideoRecorder.vue2.js +4 -2
  25. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +1 -1
  26. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +387 -340
  27. package/dist/components/2_feed_elements/BaseEditMessage/BaseEditMessage.vue.js +7 -0
  28. package/dist/components/2_feed_elements/BaseEditMessage/BaseEditMessage.vue2.js +34 -0
  29. package/dist/components/2_feed_elements/CallMessage/CallMessage.vue.js +2 -2
  30. package/dist/components/2_feed_elements/CallMessage/CallMessage.vue2.js +388 -352
  31. package/dist/components/2_feed_elements/DeletedMessageContent/DeletedMessageContent.vue.js +7 -0
  32. package/dist/components/2_feed_elements/DeletedMessageContent/DeletedMessageContent.vue2.js +63 -0
  33. package/dist/components/2_feed_elements/DeletedMessageContent/icons/DeletedMessageIcon.vue.js +21 -0
  34. package/dist/components/2_feed_elements/EditTextMessage/EditTextMessage.vue.js +7 -0
  35. package/dist/components/2_feed_elements/EditTextMessage/EditTextMessage.vue2.js +35 -0
  36. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +2 -2
  37. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +204 -157
  38. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +3 -3
  39. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +273 -226
  40. package/dist/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue2.js +9 -7
  41. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue.js +2 -2
  42. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue2.js +141 -117
  43. package/dist/components/2_feed_elements/MessageReactions/icons/DeleteIcon.vue.js +32 -0
  44. package/dist/components/2_feed_elements/MessageReactions/icons/EditIcon.vue.js +32 -0
  45. package/dist/components/2_feed_elements/MessageReactions/icons/MessageActionsIcon.vue.js +21 -0
  46. package/dist/components/2_feed_elements/MissedCallMessage/MissedCallMessage.vue.js +4 -4
  47. package/dist/components/2_feed_elements/MissedCallMessage/MissedCallMessage.vue2.js +102 -66
  48. package/dist/components/2_feed_elements/ReplyAudioMessage/ReplyAudioMessage.vue2.js +11 -9
  49. package/dist/components/2_feed_elements/ReplyFileMessage/ReplyFileMessage.vue2.js +14 -12
  50. package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue2.js +11 -9
  51. package/dist/components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue2.js +13 -11
  52. package/dist/components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue2.js +11 -9
  53. package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue2.js +4 -2
  54. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +2 -2
  55. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +255 -210
  56. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +1 -1
  57. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +241 -140
  58. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +3 -3
  59. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +245 -200
  60. package/dist/components/2_modals/ConfirmDeleteMessage/ConfirmDeleteMessage.vue.js +7 -0
  61. package/dist/components/2_modals/ConfirmDeleteMessage/ConfirmDeleteMessage.vue3.js +58 -0
  62. package/dist/components/3_compounds/ChatInput/ChatInput.vue.js +2 -2
  63. package/dist/components/3_compounds/ChatInput/ChatInput.vue2.js +5 -4
  64. package/dist/components/3_compounds/ChatList/ChatListHeader.vue.js +8 -8
  65. package/dist/components/3_compounds/ChatList/icons/LogoIcon.vue.js +12 -13
  66. package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
  67. package/dist/components/3_compounds/Feed/Feed.vue2.js +187 -163
  68. package/dist/components/3_compounds/Feed/composables/useFeedComponents.js +41 -26
  69. package/dist/components/3_compounds/Feed/composables/useFeedReply.js +16 -11
  70. package/dist/components/3_compounds/Feed/utils/getDefaultMessageMenuActions.js +31 -0
  71. package/dist/hooks/messages/buildEditPayload.js +10 -0
  72. package/dist/hooks/messages/calculateMessageMenuPosition.js +70 -0
  73. package/dist/hooks/messages/getDeletedOriginalText.js +26 -0
  74. package/dist/hooks/messages/getEditTooltipLines.js +28 -0
  75. package/dist/hooks/messages/useMessageActions.js +94 -19
  76. package/dist/hooks/messages/useMessageMenuActions.js +18 -0
  77. package/dist/hooks/messages/useStartEdit.js +30 -0
  78. package/dist/hooks/messages/useStartReply.js +16 -14
  79. package/dist/hooks/modals/useConfirmDeleteMessage.js +24 -0
  80. package/dist/hooks/useMessageDraft.js +46 -66
  81. package/dist/hooks/validators/messages/messageValidator.js +29 -35
  82. package/dist/index.js +220 -194
  83. package/dist/locale/en.js +6 -1
  84. package/dist/locale/ru.js +6 -1
  85. package/dist/themes/dark.css +1 -1
  86. package/dist/themes/default.css +1 -1
  87. package/dist/themes/glass.css +1 -1
  88. package/dist/themes/green.css +1 -1
  89. package/dist/themes/mobilon1.css +1 -1
  90. package/dist/types/apps/data/messages.d.ts +0 -321
  91. package/dist/types/components/1_atoms/ContextMenu/ContextMenu.vue.d.ts +0 -2
  92. package/dist/types/components/1_atoms/ContextMenu/stories/ContextMenu.stories.d.ts +1 -0
  93. package/dist/types/components/1_atoms/ContextMenu/styles/types.d.ts +18 -0
  94. package/dist/types/components/1_atoms/LoadingIndicator/styles/types.d.ts +0 -2
  95. package/dist/types/components/1_atoms/Tooltip/Tooltip.vue.d.ts +12 -1
  96. package/dist/types/components/2_feed_elements/BaseEditMessage/BaseEditMessage.vue.d.ts +23 -0
  97. package/dist/types/components/2_feed_elements/BaseEditMessage/stories/BaseEditMessage.stories.d.ts +6 -0
  98. package/dist/types/components/2_feed_elements/DeletedMessageContent/DeletedMessageContent.vue.d.ts +31 -0
  99. package/dist/types/components/2_feed_elements/DeletedMessageContent/icons/DeletedMessageIcon.vue.d.ts +2 -0
  100. package/dist/types/components/2_feed_elements/DeletedMessageContent/styles/types.d.ts +35 -0
  101. package/dist/types/components/2_feed_elements/EditTextMessage/EditTextMessage.vue.d.ts +13 -0
  102. package/dist/types/components/2_feed_elements/EditTextMessage/stories/EditTextMessage.stories.d.ts +7 -0
  103. package/dist/types/components/2_feed_elements/FeedKeyboard/FeedKeyboard.vue.d.ts +1 -1
  104. package/dist/types/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue.d.ts +1 -1
  105. package/dist/types/components/2_feed_elements/MessageReactions/MessageReactions.vue.d.ts +35 -0
  106. package/dist/types/components/2_feed_elements/MessageReactions/icons/DeleteIcon.vue.d.ts +2 -0
  107. package/dist/types/components/2_feed_elements/MessageReactions/icons/EditIcon.vue.d.ts +2 -0
  108. package/dist/types/components/2_feed_elements/MessageReactions/icons/MessageActionsIcon.vue.d.ts +2 -0
  109. package/dist/types/components/2_feed_elements/TextMessage/TextMessage.vue.d.ts +11 -3
  110. package/dist/types/components/2_feed_elements/TextMessage/stories/TextMessage.stories.d.ts +1 -0
  111. package/dist/types/components/2_feed_elements/TextMessage/styles/types.d.ts +22 -0
  112. package/dist/types/components/2_feed_elements/VideoMessage/stories/VideoMessage.stories.d.ts +2 -2
  113. package/dist/types/components/2_feed_elements/types/components.d.ts +1 -2
  114. package/dist/types/components/2_feed_elements/types/messages.d.ts +116 -9
  115. package/dist/types/components/2_modals/ConfirmDeleteMessage/ConfirmDeleteMessage.vue.d.ts +22 -0
  116. package/dist/types/components/2_modals/ConfirmDeleteMessage/stories/ConfirmDeleteMessage.stories.d.ts +37 -0
  117. package/dist/types/components/2_modals/ConfirmDeleteMessage/styles/types.d.ts +97 -0
  118. package/dist/types/components/3_compounds/ChatInput/types/IInputMessage.d.ts +2 -1
  119. package/dist/types/components/3_compounds/ChatList/styles/types.d.ts +2 -2
  120. package/dist/types/components/3_compounds/Feed/Feed.vue.d.ts +20 -3
  121. package/dist/types/components/3_compounds/Feed/composables/useFeedComponents.d.ts +6 -2
  122. package/dist/types/components/3_compounds/Feed/composables/useFeedGrouping.d.ts +0 -1
  123. package/dist/types/components/3_compounds/Feed/composables/useFeedReply.d.ts +7 -1
  124. package/dist/types/components/3_compounds/Feed/utils/getDefaultMessageMenuActions.d.ts +3 -0
  125. package/dist/types/components/3_compounds/SideBar/SideBar.vue.d.ts +2 -2
  126. package/dist/types/components/index.d.ts +4 -0
  127. package/dist/types/hooks/messages/buildEditPayload.d.ts +7 -0
  128. package/dist/types/hooks/messages/calculateMessageMenuPosition.d.ts +16 -0
  129. package/dist/types/hooks/messages/getDeletedOriginalText.d.ts +28 -0
  130. package/dist/types/hooks/messages/getEditTooltipLines.d.ts +17 -0
  131. package/dist/types/hooks/messages/index.d.ts +6 -0
  132. package/dist/types/hooks/messages/useMessageActions.d.ts +33 -39
  133. package/dist/types/hooks/messages/useMessageMenuActions.d.ts +10 -0
  134. package/dist/types/hooks/messages/useStartEdit.d.ts +6 -0
  135. package/dist/types/hooks/modals/index.d.ts +1 -0
  136. package/dist/types/hooks/modals/useConfirmDeleteMessage.d.ts +2 -0
  137. package/dist/types/hooks/useMessageDraft.d.ts +10 -1
  138. package/dist/types/hooks/validators/messages/types.d.ts +0 -6
  139. package/dist/types/locale/en.d.ts +5 -0
  140. package/dist/types/locale/ru.d.ts +5 -0
  141. package/dist/types/main.d.ts +1 -0
  142. package/package.json +1 -1
@@ -1,39 +1,47 @@
1
- import { defineComponent as ie, inject as le, ref as w, computed as p, watch as me, createElementBlock as r, openBlock as o, Fragment as re, createElementVNode as l, createBlock as c, unref as a, normalizeStyle as B, normalizeClass as y, createCommentVNode as i, createVNode as m, withCtx as d, createTextVNode as ue, toDisplayString as R, Transition as b, withModifiers as F, Teleport as de } from "vue";
2
- import ce from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
- import ge from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
- import ve from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
- import fe from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
- import ye from "../../2_modals/ModalFullscreen/ModalFullscreen.vue.js";
7
- import be from "../MessageReactions/MessageReactions.vue.js";
8
- import ke from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
9
- import we from "../MessageSmsInvite/MessageSmsInvite.vue.js";
10
- import pe from "../../1_atoms/Tooltip/Tooltip.vue.js";
11
- import { useMessageActions as he } from "../../../hooks/messages/useMessageActions.js";
12
- import { useMessageLinks as xe } from "../../../hooks/messages/useMessageLinks.js";
13
- import { useChannelAccentColor as Me } from "../../../hooks/messages/useChannelAccentColor.js";
14
- import { useSubtextTooltip as Re } from "../../../hooks/messages/useSubtextTooltip.js";
1
+ import { defineComponent as Me, inject as pe, ref as M, computed as p, watch as we, createElementBlock as m, openBlock as n, Fragment as S, createElementVNode as l, createBlock as d, unref as s, normalizeStyle as C, normalizeClass as y, createCommentVNode as i, createVNode as r, withCtx as c, createTextVNode as xe, toDisplayString as w, Transition as b, withModifiers as j, Teleport as D } from "vue";
2
+ import Re from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
+ import Te from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
+ import Se from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
+ import Ce from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
+ import Ie from "../../2_modals/ModalFullscreen/ModalFullscreen.vue.js";
7
+ import Ae from "../MessageReactions/MessageReactions.vue.js";
8
+ import H from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
9
+ import Ee from "../MessageSmsInvite/MessageSmsInvite.vue.js";
10
+ import Le from "../DeletedMessageContent/DeletedMessageContent.vue.js";
11
+ import Pe from "../../1_atoms/Tooltip/Tooltip.vue.js";
12
+ import { useMessageActions as Be } from "../../../hooks/messages/useMessageActions.js";
13
+ import { useMessageMenuActions as Fe } from "../../../hooks/messages/useMessageMenuActions.js";
14
+ import { useMessageLinks as Ne } from "../../../hooks/messages/useMessageLinks.js";
15
+ import { useChannelAccentColor as Ue } from "../../../hooks/messages/useChannelAccentColor.js";
16
+ import { useSubtextTooltip as Oe } from "../../../hooks/messages/useSubtextTooltip.js";
17
+ import { useStartReply as $e } from "../../../hooks/messages/useStartReply.js";
15
18
  import "../../../hooks/useMessageDraft.js";
16
19
  import "../../../hooks/useSearchModel.js";
17
- import { useTheme as Te } from "../../../hooks/useTheme.js";
20
+ import { useTheme as je } from "../../../hooks/useTheme.js";
18
21
  import "../../../hooks/useEmojiNative.js";
19
22
  /* empty css */
20
23
  /* empty css */
21
- import { buildReplyPayload as Se } from "../../../hooks/messages/buildReplyPayload.js";
22
- import { getStatus as Ce, getStatusTitle as Ie } from "../../../functions/getStatusMessage.js";
23
- import { safeMediaPlayVoid as N } from "../../../functions/safeMediaPlay.js";
24
- import { getMessageClass as Ae } from "../../../functions/getMessageClass.js";
25
- import { createReactionHandlers as Ee } from "../../../functions/createReactionHandlers.js";
24
+ import "../../../locale/useLocale.js";
25
+ /* empty css */
26
+ import { buildReplyPayload as V } from "../../../hooks/messages/buildReplyPayload.js";
27
+ import { getStatus as De, getStatusTitle as He } from "../../../functions/getStatusMessage.js";
28
+ import { safeMediaPlayVoid as q } from "../../../functions/safeMediaPlay.js";
29
+ import { getMessageClass as Ve } from "../../../functions/getMessageClass.js";
30
+ import { createReactionHandlers as qe } from "../../../functions/createReactionHandlers.js";
26
31
  import "../../../functions/parseMarkdown.js";
27
- const Le = ["messageId"], Pe = ["src"], Be = {
32
+ const ze = ["messageId"], We = ["src"], Ge = {
28
33
  key: 1,
29
34
  class: "video-message__subtext"
30
- }, Fe = ["src"], Ne = {
35
+ }, Je = { class: "video-message__info-container" }, Ke = {
36
+ key: 0,
37
+ class: "video-message__time"
38
+ }, Qe = ["src"], Xe = {
31
39
  key: 0,
32
40
  class: "video-message__info-container"
33
- }, Ue = { class: "video-message__time" }, $e = {
41
+ }, Ye = { class: "video-message__time" }, Ze = {
34
42
  key: 1,
35
43
  class: "video-message__text-container"
36
- }, Oe = ["innerHTML"], je = ["src", "alt"], gs = /* @__PURE__ */ ie({
44
+ }, _e = ["innerHTML"], es = ["src", "alt"], Bs = /* @__PURE__ */ Me({
37
45
  inheritAttrs: !1,
38
46
  __name: "VideoMessage",
39
47
  props: {
@@ -78,85 +86,97 @@ const Le = ["messageId"], Pe = ["src"], Be = {
78
86
  }
79
87
  },
80
88
  emits: ["action", "reply", "sms-invite"],
81
- setup(e, { emit: U }) {
82
- const $ = le("chatAppId"), { getTheme: T } = Te($), t = e, h = U;
83
- function S(u) {
84
- return Ae(u.position, "video-message");
89
+ setup(e, { emit: z }) {
90
+ const I = pe("chatAppId"), { getTheme: A } = je(I || ""), { menuActions: k } = Fe(() => a.message), { startReply: W } = $e(I || ""), a = e, x = z;
91
+ function R(u) {
92
+ return Ve(u.position, "video-message");
85
93
  }
86
- const C = w(), g = w(), x = w(!1), v = w(!1), { linkedHtml: O, inNewWindow: I } = xe(() => t.message.text), {
87
- isOpenMenu: M,
88
- buttonMenuVisible: j,
89
- showMenu: H,
90
- hideMenu: A,
91
- clickAction: V,
92
- viewsAction: E,
93
- handleClickReplied: q
94
- } = he(t.message, h), D = () => {
95
- H(), v.value = !0;
96
- }, z = p(() => Ce(t.message.status)), W = p(() => Ie(t.message.status, t.message.statusMsg)), { bubbleStyle: G } = Me(
97
- p(() => t.message),
94
+ const E = M(), g = M(), T = M(!1), v = M(!1), { linkedHtml: G, inNewWindow: L } = Ne(() => a.message.text), {
95
+ isOpenMenu: J,
96
+ buttonMenuVisible: K,
97
+ menuAnchorRef: Q,
98
+ menuRef: X,
99
+ menuStyle: Y,
100
+ menuTheme: Z,
101
+ showMenu: _,
102
+ hideMenu: P,
103
+ openMenu: ee,
104
+ toggleMenu: B,
105
+ onMenuMouseEnter: se,
106
+ onMenuMouseLeave: te,
107
+ clickAction: ae,
108
+ viewsAction: F,
109
+ handleClickReplied: ne
110
+ } = Be(a.message, x, {
111
+ onReply: () => W(V(a.message, "message.video"))
112
+ }), oe = () => {
113
+ _(), v.value = !0;
114
+ }, N = p(() => De(a.message.status)), U = p(() => He(a.message.status, a.message.statusMsg)), { bubbleStyle: ie } = Ue(
115
+ p(() => a.message),
98
116
  { cssVariable: "--chotto-videomessage-right-bg", position: "right" }
99
- ), J = () => {
100
- g.value && (g.value.currentTime = 0, N(g.value));
117
+ ), le = () => {
118
+ g.value && (g.value.currentTime = 0, q(g.value));
101
119
  };
102
- me([C, g], ([u, s]) => {
103
- u ? s && (s.pause(), s.currentTime = 0) : s && (s.currentTime = 0, N(s));
120
+ we([E, g], ([u, t]) => {
121
+ u ? t && (t.pause(), t.currentTime = 0) : t && (t.currentTime = 0, q(t));
104
122
  });
105
- const K = p(() => t.message.reply && t.message.text ? "0" : t.message.text ? "5px 5px 0 0" : t.message.reply ? "0 0 5px 5px" : "8px"), Q = () => x.value = !1, { onToggleReaction: X, onAddReaction: Y, onRemoveReaction: Z } = Ee(h), _ = async () => {
106
- var u, s;
107
- if (t.message.url)
123
+ const me = p(() => a.message.reply && a.message.text ? "0" : a.message.text ? "5px 5px 0 0" : a.message.reply ? "0 0 5px 5px" : "8px"), re = () => T.value = !1, { onToggleReaction: ue, onAddReaction: de, onRemoveReaction: ce } = qe(x), ge = async () => {
124
+ var u, t;
125
+ if (a.message.url)
108
126
  try {
109
- const n = await fetch(t.message.url, {
127
+ const o = await fetch(a.message.url, {
110
128
  headers: {
111
129
  Accept: "video/*"
112
130
  }
113
131
  });
114
- if (!n.ok)
115
- throw new Error(`HTTP error! status: ${n.status}`);
116
- const te = n.headers.get("content-type") || "", ae = await n.blob(), k = ((s = (u = t.message.url.split(".").pop()) == null ? void 0 : u.split("?")[0]) == null ? void 0 : s.toLowerCase()) || "", ne = {
132
+ if (!o.ok)
133
+ throw new Error(`HTTP error! status: ${o.status}`);
134
+ const ye = o.headers.get("content-type") || "", be = await o.blob(), h = ((t = (u = a.message.url.split(".").pop()) == null ? void 0 : u.split("?")[0]) == null ? void 0 : t.toLowerCase()) || "", ke = {
117
135
  "video/mp4": "mp4",
118
136
  "video/webm": "webm",
119
137
  "video/ogg": "ogv",
120
138
  "video/quicktime": "mov",
121
139
  "video/x-matroska": "mkv",
122
- "application/octet-stream": k || "mp4"
140
+ "application/octet-stream": h || "mp4"
123
141
  };
124
- let L = k && ["mp4", "mov", "webm", "ogv", "mkv"].includes(k) ? k : ne[te] || "mp4";
125
- const oe = t.message.alt ? t.message.alt.includes(".") ? t.message.alt : `${t.message.alt}.${L}` : `video-${t.message.messageId}.${L}`, P = window.URL.createObjectURL(ae), f = document.createElement("a");
126
- f.href = P, f.download = oe, document.body.appendChild(f), f.click(), document.body.removeChild(f), window.URL.revokeObjectURL(P);
127
- } catch (n) {
128
- console.error("Ошибка при скачивании видео:", n), window.open(t.message.url, "_blank");
142
+ let O = h && ["mp4", "mov", "webm", "ogv", "mkv"].includes(h) ? h : ke[ye] || "mp4";
143
+ const he = a.message.alt ? a.message.alt.includes(".") ? a.message.alt : `${a.message.alt}.${O}` : `video-${a.message.messageId}.${O}`, $ = window.URL.createObjectURL(be), f = document.createElement("a");
144
+ f.href = $, f.download = he, document.body.appendChild(f), f.click(), document.body.removeChild(f), window.URL.revokeObjectURL($);
145
+ } catch (o) {
146
+ console.error("Ошибка при скачивании видео:", o), window.open(a.message.url, "_blank");
129
147
  }
130
- }, ee = Re(() => t.message, () => t.subtextTooltipData);
131
- function se() {
132
- h("sms-invite", t.message);
148
+ }, ve = Oe(() => a.message, () => a.subtextTooltipData);
149
+ function fe() {
150
+ x("sms-invite", a.message);
133
151
  }
134
- return (u, s) => (o(), r(re, null, [
152
+ return (u, t) => (n(), m(S, null, [
135
153
  l("div", {
154
+ ref_key: "menuAnchorRef",
155
+ ref: Q,
136
156
  class: y(["video-message", [
137
- S(e.message),
157
+ R(e.message),
138
158
  e.applyStyle(e.message)
139
159
  ]]),
140
160
  messageId: e.message.messageId,
141
- style: B(a(G)),
142
- onMouseleave: s[5] || (s[5] = //@ts-ignore
143
- (...n) => a(A) && a(A)(...n))
161
+ style: C(s(ie)),
162
+ onMouseleave: t[5] || (t[5] = //@ts-ignore
163
+ (...o) => s(P) && s(P)(...o))
144
164
  }, [
145
- e.message.avatar && e.isFirstInSeries ? (o(), r("img", {
165
+ e.message.avatar && e.isFirstInSeries ? (n(), m("img", {
146
166
  key: 0,
147
167
  class: "video-message__avatar",
148
168
  src: e.message.avatar,
149
169
  height: "32",
150
170
  width: "32"
151
- }, null, 8, Pe)) : i("", !0),
152
- e.message.subText && e.isFirstInSeries ? (o(), r("p", Be, [
153
- m(pe, {
154
- text: a(ee),
171
+ }, null, 8, We)) : i("", !0),
172
+ e.message.subText && e.isFirstInSeries ? (n(), m("p", Ge, [
173
+ r(Pe, {
174
+ text: s(ve),
155
175
  position: e.message.position === "left" ? "right" : "left",
156
176
  offset: 8
157
177
  }, {
158
- default: d(() => [
159
- ue(R(e.message.subText), 1)
178
+ default: c(() => [
179
+ xe(w(e.message.subText), 1)
160
180
  ]),
161
181
  _: 1
162
182
  }, 8, ["text", "position"])
@@ -164,149 +184,174 @@ const Le = ["messageId"], Pe = ["src"], Be = {
164
184
  l("div", {
165
185
  class: y(["video-message__content", { "is-first": e.isFirstInSeries, "with-avatar-indent": !e.isFirstInSeries && e.message.avatar }])
166
186
  }, [
167
- e.message.reply ? (o(), c(fe, {
168
- key: 0,
169
- style: { margin: "10px 10px 4px 16px" },
170
- class: y(e.message.position),
171
- message: e.message.reply,
172
- onReply: a(q)
173
- }, null, 8, ["class", "message", "onReply"])) : i("", !0),
174
- l("div", {
175
- class: "video-message__preview-button",
176
- onClick: s[1] || (s[1] = (n) => x.value = !0),
177
- onMouseenter: D,
178
- onMouseleave: s[2] || (s[2] = (n) => v.value = !v.value)
179
- }, [
180
- l("video", {
181
- ref_key: "previewPlayer",
182
- ref: g,
183
- class: "video-message__video",
184
- style: B({ borderRadius: K.value }),
185
- src: e.message.url,
186
- muted: !0,
187
- autoplay: "",
188
- onEnded: J
189
- }, null, 44, Fe),
190
- m(b, { name: "modal-fade" }, {
191
- default: d(() => [
192
- v.value ? (o(), r("div", Ne, [
193
- e.message.views ? (o(), r("div", {
187
+ e.message.deleted ? (n(), m(S, { key: 0 }, [
188
+ r(Le),
189
+ l("div", Je, [
190
+ e.message.time ? (n(), m("span", Ke, w(e.message.time), 1)) : i("", !0),
191
+ r(H, {
192
+ "base-class": "video-message",
193
+ "message-class": R(e.message),
194
+ "message-status": e.message.status,
195
+ "status-class": N.value,
196
+ "status-title": U.value
197
+ }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
198
+ ])
199
+ ], 64)) : (n(), m(S, { key: 1 }, [
200
+ e.message.reply ? (n(), d(Ce, {
201
+ key: 0,
202
+ style: { margin: "10px 10px 4px 16px" },
203
+ class: y(e.message.position),
204
+ message: e.message.reply,
205
+ onReply: s(ne)
206
+ }, null, 8, ["class", "message", "onReply"])) : i("", !0),
207
+ l("div", {
208
+ class: "video-message__preview-button",
209
+ onClick: t[1] || (t[1] = (o) => T.value = !0),
210
+ onMouseenter: oe,
211
+ onMouseleave: t[2] || (t[2] = (o) => v.value = !v.value)
212
+ }, [
213
+ l("video", {
214
+ ref_key: "previewPlayer",
215
+ ref: g,
216
+ class: "video-message__video",
217
+ style: C({ borderRadius: me.value }),
218
+ src: e.message.url,
219
+ muted: !0,
220
+ autoplay: "",
221
+ onEnded: le
222
+ }, null, 44, Qe),
223
+ r(b, { name: "modal-fade" }, {
224
+ default: c(() => [
225
+ v.value ? (n(), m("div", Xe, [
226
+ e.message.views ? (n(), m("div", {
227
+ key: 0,
228
+ class: "video-message__views",
229
+ onClick: t[0] || (t[0] = j(
230
+ //@ts-ignore
231
+ (...o) => s(F) && s(F)(...o),
232
+ ["stop"]
233
+ ))
234
+ }, [
235
+ t[6] || (t[6] = l("span", { class: "pi pi-eye" }, null, -1)),
236
+ l("p", null, w(e.message.views), 1)
237
+ ])) : i("", !0),
238
+ l("span", Ye, w(e.message.time), 1),
239
+ r(H, {
240
+ "base-class": "video-message",
241
+ "message-class": R(e.message),
242
+ "message-status": e.message.status,
243
+ "status-class": N.value,
244
+ "status-title": U.value
245
+ }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
246
+ ])) : i("", !0)
247
+ ]),
248
+ _: 1
249
+ }),
250
+ r(b, { name: "modal-fade" }, {
251
+ default: c(() => [
252
+ v.value ? (n(), m("button", {
194
253
  key: 0,
195
- class: "video-message__views",
196
- onClick: s[0] || (s[0] = F(
197
- //@ts-ignore
198
- (...n) => a(E) && a(E)(...n),
199
- ["stop"]
200
- ))
201
- }, [
202
- s[6] || (s[6] = l("span", { class: "pi pi-eye" }, null, -1)),
203
- l("p", null, R(e.message.views), 1)
204
- ])) : i("", !0),
205
- l("span", Ue, R(e.message.time), 1),
206
- m(ke, {
207
- "base-class": "video-message",
208
- "message-class": S(e.message),
209
- "message-status": e.message.status,
210
- "status-class": z.value,
211
- "status-title": W.value
212
- }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
213
- ])) : i("", !0)
214
- ]),
215
- _: 1
216
- }),
217
- m(b, { name: "modal-fade" }, {
218
- default: d(() => [
219
- v.value ? (o(), r("button", {
254
+ class: "video-message__download-button",
255
+ type: "button",
256
+ onClick: j(ge, ["stop"])
257
+ }, [...t[7] || (t[7] = [
258
+ l("span", { class: "pi pi-download" }, null, -1)
259
+ ])])) : i("", !0)
260
+ ]),
261
+ _: 1
262
+ })
263
+ ], 32),
264
+ r(b, { name: "modal-fade" }, {
265
+ default: c(() => [
266
+ s(K) && s(k).length && !e.reactionsEnabled ? (n(), m("button", {
220
267
  key: 0,
221
- class: "video-message__download-button",
222
- type: "button",
223
- onClick: F(_, ["stop"])
224
- }, [...s[7] || (s[7] = [
225
- l("span", { class: "pi pi-download" }, null, -1)
268
+ class: "video-message__menu-button",
269
+ onClick: t[3] || (t[3] = //@ts-ignore
270
+ (...o) => s(B) && s(B)(...o))
271
+ }, [...t[8] || (t[8] = [
272
+ l("span", { class: "pi pi-ellipsis-h" }, null, -1)
226
273
  ])])) : i("", !0)
227
274
  ]),
228
275
  _: 1
229
- })
230
- ], 32),
231
- m(b, { name: "modal-fade" }, {
232
- default: d(() => [
233
- a(j) && e.message.actions ? (o(), r("button", {
234
- key: 0,
235
- class: "video-message__menu-button",
236
- onClick: s[3] || (s[3] = (n) => M.value = !a(M))
237
- }, [...s[8] || (s[8] = [
238
- l("span", { class: "pi pi-ellipsis-h" }, null, -1)
239
- ])])) : i("", !0)
240
- ]),
241
- _: 1
242
- }),
243
- m(b, { name: "context-menu" }, {
244
- default: d(() => [
245
- a(M) && e.message.actions ? (o(), c(ce, {
246
- key: 0,
247
- class: "video-message__context-menu",
248
- actions: e.message.actions,
249
- onClick: a(V)
250
- }, null, 8, ["actions", "onClick"])) : i("", !0)
251
- ]),
252
- _: 1
253
- }),
254
- e.message.text ? (o(), r("div", $e, [
255
- l("p", {
256
- onClick: s[4] || (s[4] = //@ts-ignore
257
- (...n) => a(I) && a(I)(...n)),
258
- innerHTML: a(O)
259
- }, null, 8, Oe)
260
- ])) : i("", !0),
261
- m(we, {
262
- status: e.message.status,
263
- "has-messenger-account": e.message.hasMessengerAccount,
264
- channel: e.channel,
265
- onSmsInvite: se
266
- }, null, 8, ["status", "has-messenger-account", "channel"]),
267
- e.message.linkPreview ? (o(), c(ge, {
268
- key: 2,
269
- class: y(["video-message__link-preview", e.message.position]),
270
- "link-preview": e.message.linkPreview
271
- }, null, 8, ["class", "link-preview"])) : i("", !0),
272
- e.message.embed ? (o(), c(ve, {
273
- key: 3,
274
- class: y(e.message.position),
275
- embed: e.message.embed
276
- }, null, 8, ["class", "embed"])) : i("", !0),
277
- m(be, {
278
- reactions: e.message.reactions,
279
- "message-id": e.message.messageId,
280
- reply: a(Se)(e.message, "message.video"),
281
- enabled: e.reactionsEnabled,
282
- mode: e.reactionsMode,
283
- "current-user-id": e.currentUserId,
284
- "reaction-user-names": e.reactionUserNames,
285
- onToggleReaction: a(X),
286
- onAddReaction: a(Y),
287
- onRemoveReaction: a(Z)
288
- }, null, 8, ["reactions", "message-id", "reply", "enabled", "mode", "current-user-id", "reaction-user-names", "onToggleReaction", "onAddReaction", "onRemoveReaction"])
276
+ }),
277
+ (n(), d(D, { to: "body" }, [
278
+ r(b, { name: "context-menu" }, {
279
+ default: c(() => [
280
+ s(J) && s(k).length ? (n(), d(Re, {
281
+ key: 0,
282
+ ref_key: "menuRef",
283
+ ref: X,
284
+ class: "video-message__context-menu message-actions-menu",
285
+ style: C(s(Y)),
286
+ "data-theme": s(Z),
287
+ actions: s(k),
288
+ onClick: s(ae),
289
+ onMouseenter: s(se),
290
+ onMouseleave: s(te)
291
+ }, null, 8, ["style", "data-theme", "actions", "onClick", "onMouseenter", "onMouseleave"])) : i("", !0)
292
+ ]),
293
+ _: 1
294
+ })
295
+ ])),
296
+ e.message.text ? (n(), m("div", Ze, [
297
+ l("p", {
298
+ onClick: t[4] || (t[4] = //@ts-ignore
299
+ (...o) => s(L) && s(L)(...o)),
300
+ innerHTML: s(G)
301
+ }, null, 8, _e)
302
+ ])) : i("", !0),
303
+ r(Ee, {
304
+ status: e.message.status,
305
+ "has-messenger-account": e.message.hasMessengerAccount,
306
+ channel: e.channel,
307
+ onSmsInvite: fe
308
+ }, null, 8, ["status", "has-messenger-account", "channel"]),
309
+ e.message.linkPreview ? (n(), d(Te, {
310
+ key: 2,
311
+ class: y(["video-message__link-preview", e.message.position]),
312
+ "link-preview": e.message.linkPreview
313
+ }, null, 8, ["class", "link-preview"])) : i("", !0),
314
+ e.message.embed ? (n(), d(Se, {
315
+ key: 3,
316
+ class: y(e.message.position),
317
+ embed: e.message.embed
318
+ }, null, 8, ["class", "embed"])) : i("", !0),
319
+ r(Ae, {
320
+ reactions: e.message.reactions,
321
+ "message-id": e.message.messageId,
322
+ reply: s(V)(e.message, "message.video"),
323
+ enabled: e.reactionsEnabled,
324
+ mode: e.reactionsMode,
325
+ "current-user-id": e.currentUserId,
326
+ "reaction-user-names": e.reactionUserNames,
327
+ "menu-enabled": s(k).length > 0,
328
+ onToggleReaction: s(ue),
329
+ onAddReaction: s(de),
330
+ onRemoveReaction: s(ce),
331
+ onMenu: s(ee)
332
+ }, null, 8, ["reactions", "message-id", "reply", "enabled", "mode", "current-user-id", "reaction-user-names", "menu-enabled", "onToggleReaction", "onAddReaction", "onRemoveReaction", "onMenu"])
333
+ ], 64))
289
334
  ], 2)
290
- ], 46, Le),
291
- (o(), c(de, { to: "body" }, [
292
- m(b, { name: "modal-fade" }, {
293
- default: d(() => [
294
- x.value ? (o(), c(ye, {
335
+ ], 46, ze),
336
+ (n(), d(D, { to: "body" }, [
337
+ r(b, { name: "modal-fade" }, {
338
+ default: c(() => [
339
+ T.value && !e.message.deleted ? (n(), d(Ie, {
295
340
  key: 0,
296
- "data-theme": a(T)().theme ? a(T)().theme : "light",
341
+ "data-theme": s(A)().theme ? s(A)().theme : "light",
297
342
  title: e.message.alt,
298
- onClose: Q
343
+ onClose: re
299
344
  }, {
300
- default: d(() => [
345
+ default: c(() => [
301
346
  l("video", {
302
347
  ref_key: "player",
303
- ref: C,
348
+ ref: E,
304
349
  class: "video-message__modal-video",
305
350
  src: e.message.url,
306
351
  alt: e.message.alt,
307
352
  controls: "",
308
353
  autoplay: ""
309
- }, null, 8, je)
354
+ }, null, 8, es)
310
355
  ]),
311
356
  _: 1
312
357
  }, 8, ["data-theme", "title"])) : i("", !0)
@@ -318,5 +363,5 @@ const Le = ["messageId"], Pe = ["src"], Be = {
318
363
  }
319
364
  });
320
365
  export {
321
- gs as default
366
+ Bs as default
322
367
  };
@@ -0,0 +1,7 @@
1
+ import o from "./ConfirmDeleteMessage.vue3.js";
2
+ /* empty css */
3
+ import e from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ e(o, [["__scopeId", "data-v-34fc434c"]]);
5
+ export {
6
+ m as default
7
+ };
@@ -0,0 +1,58 @@
1
+ import { defineComponent as f, createBlock as _, openBlock as p, Transition as g, withCtx as u, createElementVNode as t, withModifiers as b, toDisplayString as o, unref as i } from "vue";
2
+ import { useLocale as C } from "../../../locale/useLocale.js";
3
+ const k = ["data-theme"], D = {
4
+ id: "confirmDeleteMessageTitle",
5
+ class: "confirm-delete-message__title"
6
+ }, M = { class: "confirm-delete-message__actions" }, y = /* @__PURE__ */ f({
7
+ __name: "ConfirmDeleteMessage",
8
+ props: {
9
+ theme: {
10
+ type: String,
11
+ required: !1,
12
+ default: "light"
13
+ }
14
+ },
15
+ emits: ["confirm", "cancel"],
16
+ setup(a, { emit: c }) {
17
+ const m = a, s = c, { t: n } = C(), r = (l) => {
18
+ l.target.classList.contains("confirm-delete-message__backdrop") && s("cancel");
19
+ };
20
+ return (l, e) => (p(), _(g, { name: "confirm-delete-message-fade" }, {
21
+ default: u(() => [
22
+ t("div", {
23
+ class: "confirm-delete-message__backdrop",
24
+ "data-theme": m.theme,
25
+ role: "presentation",
26
+ onClick: r
27
+ }, [
28
+ t("div", {
29
+ class: "confirm-delete-message",
30
+ role: "dialog",
31
+ "aria-modal": "true",
32
+ "aria-labelledby": "confirmDeleteMessageTitle",
33
+ onClick: e[2] || (e[2] = b(() => {
34
+ }, ["stop"]))
35
+ }, [
36
+ t("p", D, o(i(n)("component.ConfirmDeleteMessage.title")), 1),
37
+ t("div", M, [
38
+ t("button", {
39
+ type: "button",
40
+ class: "confirm-delete-message__btn confirm-delete-message__btn--delete",
41
+ onClick: e[0] || (e[0] = (d) => s("confirm"))
42
+ }, o(i(n)("component.ConfirmDeleteMessage.delete")), 1),
43
+ t("button", {
44
+ type: "button",
45
+ class: "confirm-delete-message__btn confirm-delete-message__btn--cancel",
46
+ onClick: e[1] || (e[1] = (d) => s("cancel"))
47
+ }, o(i(n)("component.ConfirmDeleteMessage.cancel")), 1)
48
+ ])
49
+ ])
50
+ ], 8, k)
51
+ ]),
52
+ _: 1
53
+ }));
54
+ }
55
+ });
56
+ export {
57
+ y as default
58
+ };
@@ -1,7 +1,7 @@
1
1
  import t from "./ChatInput.vue2.js";
2
2
  /* empty css */
3
3
  import o from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const f = /* @__PURE__ */ o(t, [["__scopeId", "data-v-db02cef9"]]);
4
+ const m = /* @__PURE__ */ o(t, [["__scopeId", "data-v-ab7a7750"]]);
5
5
  export {
6
- f as default
6
+ m as default
7
7
  };