@mobilon-dev/chotto 0.3.85 → 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 (151) 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/CommunicationPanel/CommunicationPanel.vue.js +174 -165
  10. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.js +21 -18
  11. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.js +32 -27
  12. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationSubMenu.js +44 -35
  13. package/dist/components/2_blocks/FeedSearch/FeedSearch.vue2.js +11 -10
  14. package/dist/components/2_chatinput_elements/ButtonCommandsSelector/ButtonCommandsSelector.vue2.js +4 -2
  15. package/dist/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue2.js +18 -16
  16. package/dist/components/2_chatinput_elements/ButtonTemplateSelector/ButtonTemplateSelector.vue2.js +16 -14
  17. package/dist/components/2_chatinput_elements/ButtonWabaTemplateSelector/ButtonWabaTemplateSelector.vue.js +4 -2
  18. package/dist/components/2_chatinput_elements/FilePreview/FilePreview.vue2.js +4 -2
  19. package/dist/components/2_chatinput_elements/FileUploader/FileUploader.vue2.js +4 -2
  20. package/dist/components/2_chatinput_elements/StickerPicker/StickerPicker.vue2.js +4 -2
  21. package/dist/components/2_chatinput_elements/TemplateSelector/TemplateSelector.vue.js +4 -2
  22. package/dist/components/2_chatinput_elements/TextFormatToolbar/TextFormatToolbar.vue2.js +4 -3
  23. package/dist/components/2_chatinput_elements/WABAAttachmentSection/WABAAttachmentSection.vue2.js +4 -2
  24. package/dist/components/2_chatlist_elements/ChatItem/ChatItem.vue2.js +3 -2
  25. package/dist/components/2_elements/AudioRecorder/AudioRecorder.vue2.js +4 -2
  26. package/dist/components/2_elements/ChannelSelector/ChannelSelector.vue.js +3 -2
  27. package/dist/components/2_elements/ThemeMode/ThemeMode.vue.js +7 -5
  28. package/dist/components/2_elements/VideoRecorder/VideoRecorder.vue2.js +4 -2
  29. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +1 -1
  30. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +387 -340
  31. package/dist/components/2_feed_elements/BaseEditMessage/BaseEditMessage.vue.js +7 -0
  32. package/dist/components/2_feed_elements/BaseEditMessage/BaseEditMessage.vue2.js +34 -0
  33. package/dist/components/2_feed_elements/CallMessage/CallMessage.vue.js +2 -2
  34. package/dist/components/2_feed_elements/CallMessage/CallMessage.vue2.js +388 -352
  35. package/dist/components/2_feed_elements/DeletedMessageContent/DeletedMessageContent.vue.js +7 -0
  36. package/dist/components/2_feed_elements/DeletedMessageContent/DeletedMessageContent.vue2.js +63 -0
  37. package/dist/components/2_feed_elements/DeletedMessageContent/icons/DeletedMessageIcon.vue.js +21 -0
  38. package/dist/components/2_feed_elements/EditTextMessage/EditTextMessage.vue.js +7 -0
  39. package/dist/components/2_feed_elements/EditTextMessage/EditTextMessage.vue2.js +35 -0
  40. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +2 -2
  41. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +204 -157
  42. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +3 -3
  43. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +273 -226
  44. package/dist/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue2.js +9 -7
  45. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue.js +2 -2
  46. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue2.js +141 -117
  47. package/dist/components/2_feed_elements/MessageReactions/icons/DeleteIcon.vue.js +32 -0
  48. package/dist/components/2_feed_elements/MessageReactions/icons/EditIcon.vue.js +32 -0
  49. package/dist/components/2_feed_elements/MessageReactions/icons/MessageActionsIcon.vue.js +21 -0
  50. package/dist/components/2_feed_elements/MissedCallMessage/MissedCallMessage.vue.js +4 -4
  51. package/dist/components/2_feed_elements/MissedCallMessage/MissedCallMessage.vue2.js +102 -66
  52. package/dist/components/2_feed_elements/ReplyAudioMessage/ReplyAudioMessage.vue2.js +11 -9
  53. package/dist/components/2_feed_elements/ReplyFileMessage/ReplyFileMessage.vue2.js +14 -12
  54. package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue2.js +11 -9
  55. package/dist/components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue2.js +13 -11
  56. package/dist/components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue2.js +11 -9
  57. package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue2.js +4 -2
  58. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +2 -2
  59. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +255 -210
  60. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +1 -1
  61. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +241 -140
  62. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +3 -3
  63. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +245 -200
  64. package/dist/components/2_modals/ConfirmDeleteMessage/ConfirmDeleteMessage.vue.js +7 -0
  65. package/dist/components/2_modals/ConfirmDeleteMessage/ConfirmDeleteMessage.vue3.js +58 -0
  66. package/dist/components/3_compounds/ChatInput/ChatInput.vue.js +2 -2
  67. package/dist/components/3_compounds/ChatInput/ChatInput.vue2.js +5 -4
  68. package/dist/components/3_compounds/ChatList/ChatListHeader.vue.js +8 -8
  69. package/dist/components/3_compounds/ChatList/icons/LogoIcon.vue.js +12 -13
  70. package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
  71. package/dist/components/3_compounds/Feed/Feed.vue2.js +187 -163
  72. package/dist/components/3_compounds/Feed/composables/useFeedComponents.js +41 -26
  73. package/dist/components/3_compounds/Feed/composables/useFeedReply.js +16 -11
  74. package/dist/components/3_compounds/Feed/utils/getDefaultMessageMenuActions.js +31 -0
  75. package/dist/hooks/messages/buildEditPayload.js +10 -0
  76. package/dist/hooks/messages/calculateMessageMenuPosition.js +70 -0
  77. package/dist/hooks/messages/getDeletedOriginalText.js +26 -0
  78. package/dist/hooks/messages/getEditTooltipLines.js +28 -0
  79. package/dist/hooks/messages/useMessageActions.js +94 -19
  80. package/dist/hooks/messages/useMessageMenuActions.js +18 -0
  81. package/dist/hooks/messages/useStartEdit.js +30 -0
  82. package/dist/hooks/messages/useStartReply.js +16 -14
  83. package/dist/hooks/modals/useConfirmDeleteMessage.js +24 -0
  84. package/dist/hooks/useMessageDraft.js +46 -66
  85. package/dist/hooks/validators/messages/messageValidator.js +29 -35
  86. package/dist/index.js +220 -194
  87. package/dist/locale/en.js +6 -1
  88. package/dist/locale/ru.js +6 -1
  89. package/dist/themes/dark.css +1 -1
  90. package/dist/themes/default.css +1 -1
  91. package/dist/themes/glass.css +1 -1
  92. package/dist/themes/green.css +1 -1
  93. package/dist/themes/mobilon1.css +1 -1
  94. package/dist/types/apps/data/messages.d.ts +0 -321
  95. package/dist/types/components/1_atoms/ContextMenu/ContextMenu.vue.d.ts +0 -2
  96. package/dist/types/components/1_atoms/ContextMenu/stories/ContextMenu.stories.d.ts +1 -0
  97. package/dist/types/components/1_atoms/ContextMenu/styles/types.d.ts +18 -0
  98. package/dist/types/components/1_atoms/LoadingIndicator/styles/types.d.ts +0 -2
  99. package/dist/types/components/1_atoms/Tooltip/Tooltip.vue.d.ts +12 -1
  100. package/dist/types/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.d.ts +2 -0
  101. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.d.ts +3 -1
  102. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.d.ts +3 -0
  103. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationSubMenu.d.ts +4 -2
  104. package/dist/types/components/2_blocks/CommunicationPanel/stories/CommunicationPanel.stories.d.ts +1 -0
  105. package/dist/types/components/2_feed_elements/BaseEditMessage/BaseEditMessage.vue.d.ts +23 -0
  106. package/dist/types/components/2_feed_elements/BaseEditMessage/stories/BaseEditMessage.stories.d.ts +6 -0
  107. package/dist/types/components/2_feed_elements/DeletedMessageContent/DeletedMessageContent.vue.d.ts +31 -0
  108. package/dist/types/components/2_feed_elements/DeletedMessageContent/icons/DeletedMessageIcon.vue.d.ts +2 -0
  109. package/dist/types/components/2_feed_elements/DeletedMessageContent/styles/types.d.ts +35 -0
  110. package/dist/types/components/2_feed_elements/EditTextMessage/EditTextMessage.vue.d.ts +13 -0
  111. package/dist/types/components/2_feed_elements/EditTextMessage/stories/EditTextMessage.stories.d.ts +7 -0
  112. package/dist/types/components/2_feed_elements/FeedKeyboard/FeedKeyboard.vue.d.ts +1 -1
  113. package/dist/types/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue.d.ts +1 -1
  114. package/dist/types/components/2_feed_elements/MessageReactions/MessageReactions.vue.d.ts +35 -0
  115. package/dist/types/components/2_feed_elements/MessageReactions/icons/DeleteIcon.vue.d.ts +2 -0
  116. package/dist/types/components/2_feed_elements/MessageReactions/icons/EditIcon.vue.d.ts +2 -0
  117. package/dist/types/components/2_feed_elements/MessageReactions/icons/MessageActionsIcon.vue.d.ts +2 -0
  118. package/dist/types/components/2_feed_elements/TextMessage/TextMessage.vue.d.ts +11 -3
  119. package/dist/types/components/2_feed_elements/TextMessage/stories/TextMessage.stories.d.ts +1 -0
  120. package/dist/types/components/2_feed_elements/TextMessage/styles/types.d.ts +22 -0
  121. package/dist/types/components/2_feed_elements/VideoMessage/stories/VideoMessage.stories.d.ts +2 -2
  122. package/dist/types/components/2_feed_elements/types/components.d.ts +1 -2
  123. package/dist/types/components/2_feed_elements/types/messages.d.ts +116 -9
  124. package/dist/types/components/2_modals/ConfirmDeleteMessage/ConfirmDeleteMessage.vue.d.ts +22 -0
  125. package/dist/types/components/2_modals/ConfirmDeleteMessage/stories/ConfirmDeleteMessage.stories.d.ts +37 -0
  126. package/dist/types/components/2_modals/ConfirmDeleteMessage/styles/types.d.ts +97 -0
  127. package/dist/types/components/3_compounds/ChatInput/types/IInputMessage.d.ts +2 -1
  128. package/dist/types/components/3_compounds/ChatList/styles/types.d.ts +2 -2
  129. package/dist/types/components/3_compounds/Feed/Feed.vue.d.ts +20 -3
  130. package/dist/types/components/3_compounds/Feed/composables/useFeedComponents.d.ts +6 -2
  131. package/dist/types/components/3_compounds/Feed/composables/useFeedGrouping.d.ts +0 -1
  132. package/dist/types/components/3_compounds/Feed/composables/useFeedReply.d.ts +7 -1
  133. package/dist/types/components/3_compounds/Feed/utils/getDefaultMessageMenuActions.d.ts +3 -0
  134. package/dist/types/components/3_compounds/SideBar/SideBar.vue.d.ts +2 -2
  135. package/dist/types/components/index.d.ts +4 -0
  136. package/dist/types/hooks/messages/buildEditPayload.d.ts +7 -0
  137. package/dist/types/hooks/messages/calculateMessageMenuPosition.d.ts +16 -0
  138. package/dist/types/hooks/messages/getDeletedOriginalText.d.ts +28 -0
  139. package/dist/types/hooks/messages/getEditTooltipLines.d.ts +17 -0
  140. package/dist/types/hooks/messages/index.d.ts +6 -0
  141. package/dist/types/hooks/messages/useMessageActions.d.ts +33 -39
  142. package/dist/types/hooks/messages/useMessageMenuActions.d.ts +10 -0
  143. package/dist/types/hooks/messages/useStartEdit.d.ts +6 -0
  144. package/dist/types/hooks/modals/index.d.ts +1 -0
  145. package/dist/types/hooks/modals/useConfirmDeleteMessage.d.ts +2 -0
  146. package/dist/types/hooks/useMessageDraft.d.ts +10 -1
  147. package/dist/types/hooks/validators/messages/types.d.ts +0 -6
  148. package/dist/types/locale/en.d.ts +5 -0
  149. package/dist/types/locale/ru.d.ts +5 -0
  150. package/dist/types/main.d.ts +1 -0
  151. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ import t from "./DeletedMessageContent.vue2.js";
2
+ /* empty css */
3
+ import e from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const s = /* @__PURE__ */ e(t, [["__scopeId", "data-v-ca0c3683"]]);
5
+ export {
6
+ s as default
7
+ };
@@ -0,0 +1,63 @@
1
+ import { defineComponent as u, computed as c, createBlock as f, createElementBlock as n, openBlock as t, withCtx as i, createElementVNode as o, createVNode as d, toDisplayString as s, createCommentVNode as m } from "vue";
2
+ import { useLocale as h } from "../../../locale/useLocale.js";
3
+ import x from "../../1_atoms/Tooltip/Tooltip.vue.js";
4
+ import r from "./icons/DeletedMessageIcon.vue.js";
5
+ const y = { class: "deleted-message-content__tooltip" }, b = {
6
+ key: 0,
7
+ class: "deleted-message-content__tooltip-original"
8
+ }, v = {
9
+ key: 1,
10
+ class: "deleted-message-content__tooltip-meta"
11
+ }, k = { class: "deleted-message-content" }, T = { class: "deleted-message-content__text" }, C = {
12
+ key: 1,
13
+ class: "deleted-message-content"
14
+ }, B = { class: "deleted-message-content__text" }, q = /* @__PURE__ */ u({
15
+ __name: "DeletedMessageContent",
16
+ props: {
17
+ /** Оригинальный текст удалённого сообщения */
18
+ originalText: {
19
+ type: String,
20
+ required: !1,
21
+ default: ""
22
+ },
23
+ /** Строка мета: «Имя, дата в время» */
24
+ meta: {
25
+ type: String,
26
+ required: !1,
27
+ default: ""
28
+ }
29
+ },
30
+ setup(e) {
31
+ const a = e, { t: _ } = h(), l = c(() => _("component.DeletedMessageContent.text")), g = c(() => !!(a.originalText || a.meta)), p = {
32
+ "--chotto-tooltip-border": "1px solid #5F5F5F"
33
+ };
34
+ return (D, S) => g.value ? (t(), f(x, {
35
+ key: 0,
36
+ position: "bottom-right",
37
+ offset: 8,
38
+ delay: 400,
39
+ "max-width": "280px",
40
+ "bubble-style": p
41
+ }, {
42
+ content: i(() => [
43
+ o("div", y, [
44
+ e.originalText ? (t(), n("div", b, s(e.originalText), 1)) : m("", !0),
45
+ e.meta ? (t(), n("div", v, s(e.meta), 1)) : m("", !0)
46
+ ])
47
+ ]),
48
+ default: i(() => [
49
+ o("div", k, [
50
+ d(r, { class: "deleted-message-content__icon" }),
51
+ o("span", T, s(l.value), 1)
52
+ ])
53
+ ]),
54
+ _: 1
55
+ })) : (t(), n("div", C, [
56
+ d(r, { class: "deleted-message-content__icon" }),
57
+ o("span", B, s(l.value), 1)
58
+ ]));
59
+ }
60
+ });
61
+ export {
62
+ q as default
63
+ };
@@ -0,0 +1,21 @@
1
+ import { createElementBlock as t, openBlock as o, createElementVNode as n } from "vue";
2
+ import r from "../../../../_virtual/_plugin-vue_export-helper.js";
3
+ const C = {}, l = {
4
+ width: "16",
5
+ height: "16",
6
+ viewBox: "0 0 16 16",
7
+ fill: "none",
8
+ xmlns: "http://www.w3.org/2000/svg"
9
+ };
10
+ function s(c, e) {
11
+ return o(), t("svg", l, [...e[0] || (e[0] = [
12
+ n("path", {
13
+ d: "M15 8C15.0024 6.31562 14.3949 4.68732 13.29 3.416L3.416 13.291C4.43021 14.1698 5.67567 14.7386 7.004 14.9295C8.33234 15.1205 9.68757 14.9255 10.9083 14.368C12.1289 13.8104 13.1636 12.9138 13.8891 11.7847C14.6145 10.6557 15.0001 9.34199 15 8ZM2.71 12.584L12.584 2.709C11.2462 1.55067 9.51928 0.942016 7.75082 1.00552C5.98235 1.06902 4.30356 1.79996 3.05226 3.05126C1.80096 4.30256 1.07002 5.98135 1.00652 7.74982C0.943016 9.51828 1.55167 11.2462 2.71 12.584ZM16 8C16 10.1217 15.1571 12.1566 13.6569 13.6569C12.1566 15.1571 10.1217 16 8 16C5.87827 16 3.84344 15.1571 2.34315 13.6569C0.842855 12.1566 0 10.1217 0 8C0 5.87827 0.842855 3.84344 2.34315 2.34315C3.84344 0.842855 5.87827 0 8 0C10.1217 0 12.1566 0.842855 13.6569 2.34315C15.1571 3.84344 16 5.87827 16 8Z",
14
+ fill: "currentColor"
15
+ }, null, -1)
16
+ ])]);
17
+ }
18
+ const d = /* @__PURE__ */ r(C, [["render", s]]);
19
+ export {
20
+ d as default
21
+ };
@@ -0,0 +1,7 @@
1
+ import t from "./EditTextMessage.vue2.js";
2
+ /* empty css */
3
+ import o from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const s = /* @__PURE__ */ o(t, [["__scopeId", "data-v-dac20c9a"]]);
5
+ export {
6
+ s as default
7
+ };
@@ -0,0 +1,35 @@
1
+ import { defineComponent as m, createElementBlock as l, openBlock as a, createElementVNode as n, unref as e } from "vue";
2
+ import "../../../locale/useLocale.js";
3
+ /* empty css */
4
+ import "../../../hooks/useTheme.js";
5
+ import { useMessageLinks as c } from "../../../hooks/messages/useMessageLinks.js";
6
+ import "../../../functions/parseMarkdown.js";
7
+ import "../../../hooks/useMessageDraft.js";
8
+ import "../../../hooks/useSearchModel.js";
9
+ import "../../../hooks/useEmojiNative.js";
10
+ /* empty css */
11
+ /* empty css */
12
+ const d = { class: "container" }, u = ["innerHTML"], B = /* @__PURE__ */ m({
13
+ __name: "EditTextMessage",
14
+ props: {
15
+ message: {
16
+ type: Object,
17
+ required: !0
18
+ }
19
+ },
20
+ setup(r) {
21
+ const i = r, { linkedHtml: s, inNewWindow: o } = c(() => i.message.text);
22
+ return (f, t) => (a(), l("div", d, [
23
+ t[1] || (t[1] = n("p", { textContent: "Редактирование сообщения" }, null, -1)),
24
+ n("p", {
25
+ class: "text",
26
+ onClick: t[0] || (t[0] = //@ts-ignore
27
+ (...p) => e(o) && e(o)(...p)),
28
+ innerHTML: e(s)
29
+ }, null, 8, u)
30
+ ]));
31
+ }
32
+ });
33
+ export {
34
+ B as default
35
+ };
@@ -1,7 +1,7 @@
1
1
  import o from "./FileMessage.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const a = /* @__PURE__ */ t(o, [["__scopeId", "data-v-9bb71d58"]]);
4
+ const r = /* @__PURE__ */ t(o, [["__scopeId", "data-v-bff725ab"]]);
5
5
  export {
6
- a as default
6
+ r as default
7
7
  };
@@ -1,34 +1,42 @@
1
- import { defineComponent as q, computed as w, createElementBlock as r, openBlock as o, unref as s, normalizeStyle as k, normalizeClass as g, createCommentVNode as l, createElementVNode as a, createVNode as d, withCtx as T, createTextVNode as D, toDisplayString as f, createBlock as b, withModifiers as z, Transition as W } from "vue";
2
- import G from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
- import J from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
- import K from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
- import Q from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
- import X from "../MessageReactions/MessageReactions.vue.js";
7
- import Y from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
8
- import Z from "../MessageSmsInvite/MessageSmsInvite.vue.js";
9
- import _ from "../../1_atoms/Tooltip/Tooltip.vue.js";
10
- import { useMessageActions as ee } from "../../../hooks/messages/useMessageActions.js";
11
- import { useMessageLinks as se } from "../../../hooks/messages/useMessageLinks.js";
12
- import { useChannelAccentColor as te } from "../../../hooks/messages/useChannelAccentColor.js";
13
- import { useSubtextTooltip as ie } from "../../../hooks/messages/useSubtextTooltip.js";
1
+ import { defineComponent as te, inject as ae, computed as w, createElementBlock as m, openBlock as i, unref as s, normalizeStyle as v, normalizeClass as d, createCommentVNode as l, createElementVNode as n, createVNode as u, withCtx as A, createTextVNode as ne, toDisplayString as f, Fragment as E, createBlock as y, withModifiers as ie, Teleport as oe, Transition as le } from "vue";
2
+ import me from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
+ import re from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
+ import ue from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
+ import ce from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
+ import ge from "../MessageReactions/MessageReactions.vue.js";
7
+ import L from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
8
+ import de from "../MessageSmsInvite/MessageSmsInvite.vue.js";
9
+ import fe from "../DeletedMessageContent/DeletedMessageContent.vue.js";
10
+ import ye from "../../1_atoms/Tooltip/Tooltip.vue.js";
11
+ import { useMessageActions as be } from "../../../hooks/messages/useMessageActions.js";
12
+ import { useMessageMenuActions as ve } from "../../../hooks/messages/useMessageMenuActions.js";
13
+ import { useMessageLinks as he } from "../../../hooks/messages/useMessageLinks.js";
14
+ import { useChannelAccentColor as ke } from "../../../hooks/messages/useChannelAccentColor.js";
15
+ import { useSubtextTooltip as we } from "../../../hooks/messages/useSubtextTooltip.js";
16
+ import { useStartReply as Me } from "../../../hooks/messages/useStartReply.js";
14
17
  import "../../../hooks/useMessageDraft.js";
15
18
  import "../../../hooks/useSearchModel.js";
16
19
  import "../../../hooks/useTheme.js";
17
20
  import "../../../hooks/useEmojiNative.js";
18
21
  /* empty css */
19
22
  /* empty css */
20
- import { buildReplyPayload as ae } from "../../../hooks/messages/buildReplyPayload.js";
21
- import { getStatus as ne, getStatusTitle as oe } from "../../../functions/getStatusMessage.js";
22
- import { getMessageClass as le } from "../../../functions/getMessageClass.js";
23
- import { createReactionHandlers as me } from "../../../functions/createReactionHandlers.js";
23
+ import "../../../locale/useLocale.js";
24
+ /* empty css */
25
+ import { buildReplyPayload as U } from "../../../hooks/messages/buildReplyPayload.js";
26
+ import { getStatus as Re, getStatusTitle as Se } from "../../../functions/getStatusMessage.js";
27
+ import { getMessageClass as Ce } from "../../../functions/getMessageClass.js";
28
+ import { createReactionHandlers as Te } from "../../../functions/createReactionHandlers.js";
24
29
  import "../../../functions/parseMarkdown.js";
25
- const re = ["messageId"], ce = ["src"], ue = {
30
+ const xe = ["messageId"], Ie = ["src"], pe = {
26
31
  key: 1,
27
32
  class: "file-message__subtext"
28
- }, ge = ["href"], de = { class: "file-message__filename-text" }, fe = {
33
+ }, Ae = { class: "file-message__footer" }, Ee = { class: "file-message__info-container" }, Le = {
34
+ key: 0,
35
+ class: "file-message__time"
36
+ }, Ue = ["href"], Fe = { class: "file-message__filename-text" }, Ne = {
29
37
  key: 1,
30
38
  class: "file-message__text-container"
31
- }, be = ["innerHTML"], ye = { class: "file-message__footer" }, ve = { class: "file-message__info-container" }, we = { class: "file-message__time" }, De = /* @__PURE__ */ q({
39
+ }, Oe = ["innerHTML"], Be = { class: "file-message__footer" }, je = { class: "file-message__info-container" }, Pe = { class: "file-message__time" }, fs = /* @__PURE__ */ te({
32
40
  __name: "FileMessage",
33
41
  props: {
34
42
  message: {
@@ -72,174 +80,213 @@ const re = ["messageId"], ce = ["src"], ue = {
72
80
  }
73
81
  },
74
82
  emits: ["action", "reply", "sms-invite"],
75
- setup(e, { emit: I }) {
76
- const i = e, y = I, { linkedHtml: U, inNewWindow: h } = se(() => i.message.text), {
77
- isOpenMenu: v,
78
- buttonMenuVisible: L,
83
+ setup(e, { emit: F }) {
84
+ const t = e, h = F, { linkedHtml: N, inNewWindow: M } = he(() => t.message.text), { menuActions: b } = ve(() => t.message), O = ae("chatAppId"), { startReply: B } = Me(O || ""), {
85
+ isOpenMenu: j,
86
+ buttonMenuVisible: P,
87
+ menuAnchorRef: V,
88
+ menuRef: H,
89
+ menuStyle: D,
90
+ menuTheme: q,
79
91
  showMenu: R,
80
92
  hideMenu: S,
81
- clickAction: A,
82
- viewsAction: M,
83
- handleClickReplied: E
84
- } = ee(i.message, y), F = w(() => ne(i.message.status)), N = w(() => oe(i.message.status, i.message.statusMsg)), { bubbleStyle: O } = te(
85
- w(() => i.message),
93
+ openMenu: $,
94
+ toggleMenu: C,
95
+ onMenuMouseEnter: z,
96
+ onMenuMouseLeave: W,
97
+ clickAction: G,
98
+ viewsAction: T,
99
+ handleClickReplied: J
100
+ } = be(t.message, h, {
101
+ onReply: () => B(U(t.message, "message.file"))
102
+ }), x = w(() => Re(t.message.status)), I = w(() => Se(t.message.status, t.message.statusMsg)), { bubbleStyle: K } = ke(
103
+ w(() => t.message),
86
104
  { cssVariable: "--chotto-filemessage-right-bg", position: "right" }
87
105
  );
88
- function x(m) {
89
- return le(m.position, "file-message");
106
+ function k(r) {
107
+ return Ce(r.position, "file-message");
90
108
  }
91
- const { onToggleReaction: B, onAddReaction: P, onRemoveReaction: V } = me(y), j = async () => {
92
- if (i.message.url)
109
+ const { onToggleReaction: Q, onAddReaction: X, onRemoveReaction: Y } = Te(h), Z = async () => {
110
+ if (t.message.url)
93
111
  try {
94
- const m = new URL(i.message.url, window.location.href);
95
- if (m.origin === window.location.origin) {
96
- const u = document.createElement("a");
97
- u.href = m.toString(), u.download = i.message.filename || `file-${i.message.messageId}`, document.body.appendChild(u), u.click(), document.body.removeChild(u);
112
+ const r = new URL(t.message.url, window.location.href);
113
+ if (r.origin === window.location.origin) {
114
+ const g = document.createElement("a");
115
+ g.href = r.toString(), g.download = t.message.filename || `file-${t.message.messageId}`, document.body.appendChild(g), g.click(), document.body.removeChild(g);
98
116
  return;
99
117
  }
100
- const n = await fetch(i.message.url);
101
- if (!n.ok)
102
- throw new Error(`HTTP error! status: ${n.status}`);
103
- const $ = await n.blob(), C = window.URL.createObjectURL($), c = document.createElement("a");
104
- c.href = C, c.download = i.message.filename || `file-${i.message.messageId}`, document.body.appendChild(c), c.click(), document.body.removeChild(c), window.URL.revokeObjectURL(C);
105
- } catch (m) {
106
- console.error("Ошибка при скачивании файла:", m), window.open(i.message.url, "_blank");
118
+ const o = await fetch(t.message.url);
119
+ if (!o.ok)
120
+ throw new Error(`HTTP error! status: ${o.status}`);
121
+ const se = await o.blob(), p = window.URL.createObjectURL(se), c = document.createElement("a");
122
+ c.href = p, c.download = t.message.filename || `file-${t.message.messageId}`, document.body.appendChild(c), c.click(), document.body.removeChild(c), window.URL.revokeObjectURL(p);
123
+ } catch (r) {
124
+ console.error("Ошибка при скачивании файла:", r), window.open(t.message.url, "_blank");
107
125
  }
108
- }, p = ie(() => i.message, () => i.subtextTooltipData);
109
- function H() {
110
- y("sms-invite", i.message);
126
+ }, _ = we(() => t.message, () => t.subtextTooltipData);
127
+ function ee() {
128
+ h("sms-invite", t.message);
111
129
  }
112
- return (m, t) => (o(), r("div", {
113
- class: g(["file-message", [
114
- x(e.message),
130
+ return (r, a) => (i(), m("div", {
131
+ ref_key: "menuAnchorRef",
132
+ ref: V,
133
+ class: d(["file-message", [
134
+ k(e.message),
115
135
  e.applyStyle(e.message)
116
136
  ]]),
117
137
  messageId: e.message.messageId,
118
- style: k(s(O)),
119
- onMouseleave: t[4] || (t[4] = //@ts-ignore
120
- (...n) => s(S) && s(S)(...n))
138
+ style: v(s(K)),
139
+ onMouseleave: a[4] || (a[4] = //@ts-ignore
140
+ (...o) => s(S) && s(S)(...o))
121
141
  }, [
122
- e.message.avatar && e.isFirstInSeries ? (o(), r("img", {
142
+ e.message.avatar && e.isFirstInSeries ? (i(), m("img", {
123
143
  key: 0,
124
144
  class: "file-message__avatar",
125
145
  src: e.message.avatar,
126
146
  height: "32",
127
147
  width: "32",
128
- style: k({ gridRow: e.message.subText ? "2" : "1" })
129
- }, null, 12, ce)) : l("", !0),
130
- e.message.subText && e.isFirstInSeries ? (o(), r("p", ue, [
131
- d(_, {
132
- text: s(p),
148
+ style: v({ gridRow: e.message.subText ? "2" : "1" })
149
+ }, null, 12, Ie)) : l("", !0),
150
+ e.message.subText && e.isFirstInSeries ? (i(), m("p", pe, [
151
+ u(ye, {
152
+ text: s(_),
133
153
  position: e.message.position === "left" ? "right" : "left",
134
154
  offset: 8
135
155
  }, {
136
- default: T(() => [
137
- D(f(e.message.subText), 1)
156
+ default: A(() => [
157
+ ne(f(e.message.subText), 1)
138
158
  ]),
139
159
  _: 1
140
160
  }, 8, ["text", "position"])
141
161
  ])) : l("", !0),
142
- a("div", {
143
- class: g(["file-message__content", { "is-first": e.isFirstInSeries, "with-avatar-indent": !e.isFirstInSeries && e.message.avatar }]),
144
- style: k({ gridRow: e.message.subText ? "2" : "1" }),
145
- onMouseenter: t[3] || (t[3] = //@ts-ignore
146
- (...n) => s(R) && s(R)(...n))
162
+ n("div", {
163
+ class: d(["file-message__content", { "is-first": e.isFirstInSeries, "with-avatar-indent": !e.isFirstInSeries && e.message.avatar }]),
164
+ style: v({ gridRow: e.message.subText ? "2" : "1" }),
165
+ onMouseenter: a[3] || (a[3] = //@ts-ignore
166
+ (...o) => s(R) && s(R)(...o))
147
167
  }, [
148
- e.message.reply ? (o(), b(Q, {
149
- key: 0,
150
- message: e.message.reply,
151
- class: g(e.message.position),
152
- onReply: s(E)
153
- }, null, 8, ["message", "class", "onReply"])) : l("", !0),
154
- a("a", {
155
- class: "file-message__link",
156
- href: e.message.url,
157
- onClick: z(j, ["prevent"])
158
- }, [
159
- t[5] || (t[5] = a("span", { class: "pi pi-file" }, null, -1)),
160
- a("p", de, f(e.message.filename), 1),
161
- t[6] || (t[6] = a("div", { class: "file-message__download-button" }, [
162
- a("span", { class: "pi pi-download" })
163
- ], -1))
164
- ], 8, ge),
165
- e.message.text ? (o(), r("div", fe, [
166
- a("p", {
167
- onClick: t[0] || (t[0] = //@ts-ignore
168
- (...n) => s(h) && s(h)(...n)),
169
- innerHTML: s(U)
170
- }, null, 8, be)
171
- ])) : l("", !0),
172
- e.message.linkPreview ? (o(), b(J, {
173
- key: 2,
174
- class: g(e.message.position),
175
- "link-preview": e.message.linkPreview
176
- }, null, 8, ["class", "link-preview"])) : l("", !0),
177
- e.message.embed ? (o(), b(K, {
178
- key: 3,
179
- class: g(e.message.position),
180
- embed: e.message.embed
181
- }, null, 8, ["class", "embed"])) : l("", !0),
182
- a("div", ye, [
183
- d(X, {
184
- reactions: e.message.reactions,
185
- "message-id": e.message.messageId,
186
- reply: s(ae)(e.message, "message.file"),
187
- enabled: e.reactionsEnabled,
188
- mode: e.reactionsMode,
189
- "current-user-id": e.currentUserId,
190
- "reaction-user-names": e.reactionUserNames,
191
- onToggleReaction: s(B),
192
- onAddReaction: s(P),
193
- onRemoveReaction: s(V)
194
- }, null, 8, ["reactions", "message-id", "reply", "enabled", "mode", "current-user-id", "reaction-user-names", "onToggleReaction", "onAddReaction", "onRemoveReaction"]),
195
- a("div", ve, [
196
- e.message.views ? (o(), r("div", {
197
- key: 0,
198
- class: "file-message__views",
199
- onClick: t[1] || (t[1] = //@ts-ignore
200
- (...n) => s(M) && s(M)(...n))
201
- }, [
202
- t[7] || (t[7] = a("span", { class: "pi pi-eye" }, null, -1)),
203
- a("p", null, f(e.message.views), 1)
204
- ])) : l("", !0),
205
- a("span", we, f(e.message.time), 1),
206
- d(Y, {
207
- "base-class": "file-message",
208
- "message-class": x(e.message),
209
- "message-status": e.message.status,
210
- "status-class": F.value,
211
- "status-title": N.value
212
- }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
168
+ e.message.deleted ? (i(), m(E, { key: 0 }, [
169
+ u(fe),
170
+ n("div", Ae, [
171
+ n("div", Ee, [
172
+ e.message.time ? (i(), m("span", Le, f(e.message.time), 1)) : l("", !0),
173
+ u(L, {
174
+ "base-class": "file-message",
175
+ "message-class": k(e.message),
176
+ "message-status": e.message.status,
177
+ "status-class": x.value,
178
+ "status-title": I.value
179
+ }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
180
+ ])
213
181
  ])
214
- ]),
215
- d(Z, {
216
- status: e.message.status,
217
- "has-messenger-account": e.message.hasMessengerAccount,
218
- channel: e.channel,
219
- onSmsInvite: H
220
- }, null, 8, ["status", "has-messenger-account", "channel"]),
221
- s(L) && e.message.actions ? (o(), r("button", {
222
- key: 4,
223
- class: "file-message__menu-button",
224
- onClick: t[2] || (t[2] = (n) => v.value = !s(v))
225
- }, [...t[8] || (t[8] = [
226
- a("span", { class: "pi pi-ellipsis-h" }, null, -1)
227
- ])])) : l("", !0),
228
- d(W, null, {
229
- default: T(() => [
230
- s(v) && e.message.actions ? (o(), b(G, {
231
- key: 0,
232
- class: "file-message__context-menu",
233
- actions: e.message.actions,
234
- onClick: s(A)
235
- }, null, 8, ["actions", "onClick"])) : l("", !0)
182
+ ], 64)) : (i(), m(E, { key: 1 }, [
183
+ e.message.reply ? (i(), y(ce, {
184
+ key: 0,
185
+ message: e.message.reply,
186
+ class: d(e.message.position),
187
+ onReply: s(J)
188
+ }, null, 8, ["message", "class", "onReply"])) : l("", !0),
189
+ n("a", {
190
+ class: "file-message__link",
191
+ href: e.message.url,
192
+ onClick: ie(Z, ["prevent"])
193
+ }, [
194
+ a[5] || (a[5] = n("span", { class: "pi pi-file" }, null, -1)),
195
+ n("p", Fe, f(e.message.filename), 1),
196
+ a[6] || (a[6] = n("div", { class: "file-message__download-button" }, [
197
+ n("span", { class: "pi pi-download" })
198
+ ], -1))
199
+ ], 8, Ue),
200
+ e.message.text ? (i(), m("div", Ne, [
201
+ n("p", {
202
+ onClick: a[0] || (a[0] = //@ts-ignore
203
+ (...o) => s(M) && s(M)(...o)),
204
+ innerHTML: s(N)
205
+ }, null, 8, Oe)
206
+ ])) : l("", !0),
207
+ e.message.linkPreview ? (i(), y(re, {
208
+ key: 2,
209
+ class: d(e.message.position),
210
+ "link-preview": e.message.linkPreview
211
+ }, null, 8, ["class", "link-preview"])) : l("", !0),
212
+ e.message.embed ? (i(), y(ue, {
213
+ key: 3,
214
+ class: d(e.message.position),
215
+ embed: e.message.embed
216
+ }, null, 8, ["class", "embed"])) : l("", !0),
217
+ n("div", Be, [
218
+ u(ge, {
219
+ reactions: e.message.reactions,
220
+ "message-id": e.message.messageId,
221
+ reply: s(U)(e.message, "message.file"),
222
+ enabled: e.reactionsEnabled,
223
+ mode: e.reactionsMode,
224
+ "current-user-id": e.currentUserId,
225
+ "reaction-user-names": e.reactionUserNames,
226
+ "menu-enabled": s(b).length > 0,
227
+ onToggleReaction: s(Q),
228
+ onAddReaction: s(X),
229
+ onRemoveReaction: s(Y),
230
+ onMenu: s($)
231
+ }, null, 8, ["reactions", "message-id", "reply", "enabled", "mode", "current-user-id", "reaction-user-names", "menu-enabled", "onToggleReaction", "onAddReaction", "onRemoveReaction", "onMenu"]),
232
+ n("div", je, [
233
+ e.message.views ? (i(), m("div", {
234
+ key: 0,
235
+ class: "file-message__views",
236
+ onClick: a[1] || (a[1] = //@ts-ignore
237
+ (...o) => s(T) && s(T)(...o))
238
+ }, [
239
+ a[7] || (a[7] = n("span", { class: "pi pi-eye" }, null, -1)),
240
+ n("p", null, f(e.message.views), 1)
241
+ ])) : l("", !0),
242
+ n("span", Pe, f(e.message.time), 1),
243
+ u(L, {
244
+ "base-class": "file-message",
245
+ "message-class": k(e.message),
246
+ "message-status": e.message.status,
247
+ "status-class": x.value,
248
+ "status-title": I.value
249
+ }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
250
+ ])
236
251
  ]),
237
- _: 1
238
- })
252
+ u(de, {
253
+ status: e.message.status,
254
+ "has-messenger-account": e.message.hasMessengerAccount,
255
+ channel: e.channel,
256
+ onSmsInvite: ee
257
+ }, null, 8, ["status", "has-messenger-account", "channel"]),
258
+ s(P) && s(b).length && !e.reactionsEnabled ? (i(), m("button", {
259
+ key: 4,
260
+ class: "file-message__menu-button",
261
+ onClick: a[2] || (a[2] = //@ts-ignore
262
+ (...o) => s(C) && s(C)(...o))
263
+ }, [...a[8] || (a[8] = [
264
+ n("span", { class: "pi pi-ellipsis-h" }, null, -1)
265
+ ])])) : l("", !0),
266
+ (i(), y(oe, { to: "body" }, [
267
+ u(le, null, {
268
+ default: A(() => [
269
+ s(j) && s(b).length ? (i(), y(me, {
270
+ key: 0,
271
+ ref_key: "menuRef",
272
+ ref: H,
273
+ class: "file-message__context-menu message-actions-menu",
274
+ style: v(s(D)),
275
+ "data-theme": s(q),
276
+ actions: s(b),
277
+ onClick: s(G),
278
+ onMouseenter: s(z),
279
+ onMouseleave: s(W)
280
+ }, null, 8, ["style", "data-theme", "actions", "onClick", "onMouseenter", "onMouseleave"])) : l("", !0)
281
+ ]),
282
+ _: 1
283
+ })
284
+ ]))
285
+ ], 64))
239
286
  ], 38)
240
- ], 46, re));
287
+ ], 46, xe));
241
288
  }
242
289
  });
243
290
  export {
244
- De as default
291
+ fs as default
245
292
  };
@@ -1,7 +1,7 @@
1
- import o from "./ImageMessage.vue2.js";
1
+ import e from "./ImageMessage.vue2.js";
2
2
  /* empty css */
3
- import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const r = /* @__PURE__ */ t(o, [["__scopeId", "data-v-4249c63d"]]);
3
+ import o from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const r = /* @__PURE__ */ o(e, [["__scopeId", "data-v-e77e944b"]]);
5
5
  export {
6
6
  r as default
7
7
  };