@mobilon-dev/chotto 0.3.42 → 0.3.43

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 (28) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +3 -3
  3. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +99 -89
  4. package/dist/components/2_feed_elements/MessageSmsInvite/MessageSmsInvite.vue.js +7 -0
  5. package/dist/components/2_feed_elements/MessageSmsInvite/MessageSmsInvite.vue2.js +64 -0
  6. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +1 -1
  7. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +74 -64
  8. package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
  9. package/dist/components/3_compounds/Feed/Feed.vue2.js +134 -128
  10. package/dist/locale/en.js +2 -1
  11. package/dist/locale/ru.js +2 -1
  12. package/dist/themes/dark.css +1 -1
  13. package/dist/themes/default.css +1 -1
  14. package/dist/themes/glass.css +1 -1
  15. package/dist/themes/green.css +1 -1
  16. package/dist/themes/mobilon1.css +1 -1
  17. package/dist/types/apps/data/messages.d.ts +135 -7
  18. package/dist/types/components/2_feed_elements/FileMessage/FileMessage.vue.d.ts +2 -0
  19. package/dist/types/components/2_feed_elements/FileMessage/styles/types.d.ts +2 -0
  20. package/dist/types/components/2_feed_elements/MessageSmsInvite/MessageSmsInvite.vue.d.ts +11 -0
  21. package/dist/types/components/2_feed_elements/MessageSmsInvite/styles/types.d.ts +49 -0
  22. package/dist/types/components/2_feed_elements/TextMessage/TextMessage.vue.d.ts +2 -0
  23. package/dist/types/components/2_feed_elements/types/messages.d.ts +12 -0
  24. package/dist/types/components/3_compounds/Feed/Feed.vue.d.ts +4 -2
  25. package/dist/types/hooks/validators/messages/types.d.ts +1 -0
  26. package/dist/types/locale/en.d.ts +1 -0
  27. package/dist/types/locale/ru.d.ts +1 -0
  28. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
- import a from "./FileMessage.vue2.js";
1
+ import o from "./FileMessage.vue2.js";
2
2
  /* empty css */
3
- import o from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const s = /* @__PURE__ */ o(a, [["__scopeId", "data-v-aad85a6d"]]);
3
+ import a from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const s = /* @__PURE__ */ a(o, [["__scopeId", "data-v-2f66aab8"]]);
5
5
  export {
6
6
  s as default
7
7
  };
@@ -1,26 +1,27 @@
1
- import { defineComponent as p, computed as y, createElementBlock as r, openBlock as o, unref as t, normalizeStyle as k, normalizeClass as u, createCommentVNode as l, createElementVNode as n, createVNode as d, withCtx as S, createTextVNode as D, toDisplayString as f, createBlock as b, withModifiers as q, Transition as z } from "vue";
2
- import W from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
- import G from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
- import J from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
- import K from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
- import Q from "../MessageReactions/MessageReactions.vue.js";
7
- import X from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
8
- import Y from "../../1_atoms/Tooltip/Tooltip.vue.js";
9
- import { useMessageActions as Z } from "../../../hooks/messages/useMessageActions.js";
10
- import { useMessageLinks as _ } from "../../../hooks/messages/useMessageLinks.js";
11
- import { useChannelAccentColor as ee } from "../../../hooks/messages/useChannelAccentColor.js";
12
- import { useSubtextTooltip as se } from "../../../hooks/messages/useSubtextTooltip.js";
13
- import { getStatus as te, getStatusTitle as ie } from "../../../functions/getStatusMessage.js";
14
- import { getMessageClass as ae } from "../../../functions/getMessageClass.js";
15
- import { createReactionHandlers as ne } from "../../../functions/createReactionHandlers.js";
1
+ import { defineComponent as z, computed as y, createElementBlock as r, openBlock as o, unref as s, normalizeStyle as k, normalizeClass as u, createCommentVNode as l, createElementVNode as n, createVNode as d, withCtx as T, createTextVNode as p, toDisplayString as f, createBlock as b, withModifiers as W, Transition as G } from "vue";
2
+ import J from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
+ import K from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
+ import Q from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
+ import X from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
+ import Y from "../MessageReactions/MessageReactions.vue.js";
7
+ import Z from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
8
+ import _ from "../MessageSmsInvite/MessageSmsInvite.vue.js";
9
+ import ee from "../../1_atoms/Tooltip/Tooltip.vue.js";
10
+ import { useMessageActions as se } from "../../../hooks/messages/useMessageActions.js";
11
+ import { useMessageLinks as te } from "../../../hooks/messages/useMessageLinks.js";
12
+ import { useChannelAccentColor as ae } from "../../../hooks/messages/useChannelAccentColor.js";
13
+ import { useSubtextTooltip as ie } from "../../../hooks/messages/useSubtextTooltip.js";
14
+ import { getStatus as ne, getStatusTitle as oe } from "../../../functions/getStatusMessage.js";
15
+ import { getMessageClass as le } from "../../../functions/getMessageClass.js";
16
+ import { createReactionHandlers as me } from "../../../functions/createReactionHandlers.js";
16
17
  import "../../../functions/parseMarkdown.js";
17
- const oe = ["messageId"], le = ["src"], me = {
18
+ const re = ["messageId"], ge = ["src"], ce = {
18
19
  key: 1,
19
20
  class: "file-message__subtext"
20
- }, re = ["href"], ge = { class: "file-message__filename-text" }, ce = {
21
+ }, ue = ["href"], de = { class: "file-message__filename-text" }, fe = {
21
22
  key: 1,
22
23
  class: "file-message__text-container"
23
- }, ue = ["innerHTML"], de = { class: "file-message__info-container" }, fe = { class: "file-message__time" }, Ae = /* @__PURE__ */ p({
24
+ }, be = ["innerHTML"], we = { class: "file-message__info-container" }, ve = { class: "file-message__time" }, Ve = /* @__PURE__ */ z({
24
25
  __name: "FileMessage",
25
26
  props: {
26
27
  message: {
@@ -45,50 +46,53 @@ const oe = ["messageId"], le = ["src"], me = {
45
46
  default: () => ({})
46
47
  }
47
48
  },
48
- emits: ["action", "reply"],
49
+ emits: ["action", "reply", "sms-invite"],
49
50
  setup(e, { emit: I }) {
50
- const i = e, v = I, { linkedHtml: L, inNewWindow: R } = _(() => i.message.text), {
51
- isOpenMenu: w,
52
- buttonMenuVisible: E,
53
- showMenu: h,
54
- hideMenu: x,
55
- clickAction: F,
56
- viewsAction: C,
57
- handleClickReplied: A
58
- } = Z(i.message, v), B = y(() => te(i.message.status)), O = y(() => ie(i.message.status, i.message.statusMsg)), { bubbleStyle: U } = ee(
59
- y(() => i.message),
51
+ const a = e, w = I, { linkedHtml: L, inNewWindow: h } = te(() => a.message.text), {
52
+ isOpenMenu: v,
53
+ buttonMenuVisible: A,
54
+ showMenu: R,
55
+ hideMenu: C,
56
+ clickAction: E,
57
+ viewsAction: x,
58
+ handleClickReplied: F
59
+ } = se(a.message, w), B = y(() => ne(a.message.status)), O = y(() => oe(a.message.status, a.message.statusMsg)), { bubbleStyle: U, messageChannelId: V } = ae(
60
+ y(() => a.message),
60
61
  { cssVariable: "--chotto-filemessage-right-bg", position: "right" }
61
62
  );
62
- function T(m) {
63
- return ae(m.position, "file-message");
63
+ function S(m) {
64
+ return le(m.position, "file-message");
64
65
  }
65
- const { onToggleReaction: V, onAddReaction: H, onRemoveReaction: N } = ne(v), P = async () => {
66
- if (i.message.url)
66
+ const { onToggleReaction: H, onAddReaction: N, onRemoveReaction: P } = me(w), $ = async () => {
67
+ if (a.message.url)
67
68
  try {
68
- const m = new URL(i.message.url, window.location.href);
69
+ const m = new URL(a.message.url, window.location.href);
69
70
  if (m.origin === window.location.origin) {
70
71
  const c = document.createElement("a");
71
- c.href = m.toString(), c.download = i.message.filename || `file-${i.message.messageId}`, document.body.appendChild(c), c.click(), document.body.removeChild(c);
72
+ c.href = m.toString(), c.download = a.message.filename || `file-${a.message.messageId}`, document.body.appendChild(c), c.click(), document.body.removeChild(c);
72
73
  return;
73
74
  }
74
- const a = await fetch(i.message.url);
75
- if (!a.ok)
76
- throw new Error(`HTTP error! status: ${a.status}`);
77
- const j = await a.blob(), M = window.URL.createObjectURL(j), g = document.createElement("a");
78
- g.href = M, g.download = i.message.filename || `file-${i.message.messageId}`, document.body.appendChild(g), g.click(), document.body.removeChild(g), window.URL.revokeObjectURL(M);
75
+ const i = await fetch(a.message.url);
76
+ if (!i.ok)
77
+ throw new Error(`HTTP error! status: ${i.status}`);
78
+ const q = await i.blob(), M = window.URL.createObjectURL(q), g = document.createElement("a");
79
+ g.href = M, g.download = a.message.filename || `file-${a.message.messageId}`, document.body.appendChild(g), g.click(), document.body.removeChild(g), window.URL.revokeObjectURL(M);
79
80
  } catch (m) {
80
- console.error("Ошибка при скачивании файла:", m), window.open(i.message.url, "_blank");
81
+ console.error("Ошибка при скачивании файла:", m), window.open(a.message.url, "_blank");
81
82
  }
82
- }, $ = se(() => i.message, () => i.subtextTooltipData);
83
- return (m, s) => (o(), r("div", {
83
+ }, j = ie(() => a.message, () => a.subtextTooltipData);
84
+ function D() {
85
+ w("sms-invite", a.message);
86
+ }
87
+ return (m, t) => (o(), r("div", {
84
88
  class: u(["file-message", [
85
- T(e.message),
89
+ S(e.message),
86
90
  e.applyStyle(e.message)
87
91
  ]]),
88
92
  messageId: e.message.messageId,
89
- style: k(t(U)),
90
- onMouseleave: s[4] || (s[4] = //@ts-ignore
91
- (...a) => t(x) && t(x)(...a))
93
+ style: k(s(U)),
94
+ onMouseleave: t[4] || (t[4] = //@ts-ignore
95
+ (...i) => s(C) && s(C)(...i))
92
96
  }, [
93
97
  e.message.avatar && e.isFirstInSeries ? (o(), r("img", {
94
98
  key: 0,
@@ -97,15 +101,15 @@ const oe = ["messageId"], le = ["src"], me = {
97
101
  height: "32",
98
102
  width: "32",
99
103
  style: k({ gridRow: e.message.subText ? "2" : "1" })
100
- }, null, 12, le)) : l("", !0),
101
- e.message.subText && e.isFirstInSeries ? (o(), r("p", me, [
102
- d(Y, {
103
- text: t($),
104
+ }, null, 12, ge)) : l("", !0),
105
+ e.message.subText && e.isFirstInSeries ? (o(), r("p", ce, [
106
+ d(ee, {
107
+ text: s(j),
104
108
  position: e.message.position === "left" ? "right" : "left",
105
109
  offset: 8
106
110
  }, {
107
- default: S(() => [
108
- D(f(e.message.subText), 1)
111
+ default: T(() => [
112
+ p(f(e.message.subText), 1)
109
113
  ]),
110
114
  _: 1
111
115
  }, 8, ["text", "position"])
@@ -113,92 +117,98 @@ const oe = ["messageId"], le = ["src"], me = {
113
117
  n("div", {
114
118
  class: u(["file-message__content", { "is-first": e.isFirstInSeries, "with-avatar-indent": !e.isFirstInSeries && e.message.avatar }]),
115
119
  style: k({ gridRow: e.message.subText ? "2" : "1" }),
116
- onMouseenter: s[3] || (s[3] = //@ts-ignore
117
- (...a) => t(h) && t(h)(...a))
120
+ onMouseenter: t[3] || (t[3] = //@ts-ignore
121
+ (...i) => s(R) && s(R)(...i))
118
122
  }, [
119
- e.message.reply ? (o(), b(K, {
123
+ e.message.reply ? (o(), b(X, {
120
124
  key: 0,
121
125
  message: e.message.reply,
122
126
  class: u(e.message.position),
123
- onReply: t(A)
127
+ onReply: s(F)
124
128
  }, null, 8, ["message", "class", "onReply"])) : l("", !0),
125
129
  n("a", {
126
130
  class: "file-message__link",
127
131
  href: e.message.url,
128
- onClick: q(P, ["prevent"])
132
+ onClick: W($, ["prevent"])
129
133
  }, [
130
- s[5] || (s[5] = n("span", { class: "pi pi-file" }, null, -1)),
131
- n("p", ge, f(e.message.filename), 1),
132
- s[6] || (s[6] = n("div", { class: "file-message__download-button" }, [
134
+ t[5] || (t[5] = n("span", { class: "pi pi-file" }, null, -1)),
135
+ n("p", de, f(e.message.filename), 1),
136
+ t[6] || (t[6] = n("div", { class: "file-message__download-button" }, [
133
137
  n("span", { class: "pi pi-download" })
134
138
  ], -1))
135
- ], 8, re),
136
- e.message.text ? (o(), r("div", ce, [
139
+ ], 8, ue),
140
+ e.message.text ? (o(), r("div", fe, [
137
141
  n("p", {
138
- onClick: s[0] || (s[0] = //@ts-ignore
139
- (...a) => t(R) && t(R)(...a)),
140
- innerHTML: t(L)
141
- }, null, 8, ue)
142
+ onClick: t[0] || (t[0] = //@ts-ignore
143
+ (...i) => s(h) && s(h)(...i)),
144
+ innerHTML: s(L)
145
+ }, null, 8, be)
142
146
  ])) : l("", !0),
143
- e.message.linkPreview ? (o(), b(G, {
147
+ e.message.linkPreview ? (o(), b(K, {
144
148
  key: 2,
145
149
  class: u(e.message.position),
146
150
  "link-preview": e.message.linkPreview
147
151
  }, null, 8, ["class", "link-preview"])) : l("", !0),
148
- e.message.embed ? (o(), b(J, {
152
+ e.message.embed ? (o(), b(Q, {
149
153
  key: 3,
150
154
  class: u(e.message.position),
151
155
  embed: e.message.embed
152
156
  }, null, 8, ["class", "embed"])) : l("", !0),
153
- d(Q, {
157
+ d(Y, {
154
158
  reactions: e.message.reactions,
155
159
  "message-id": e.message.messageId,
156
160
  enabled: e.reactionsEnabled,
157
- onToggleReaction: t(V),
158
- onAddReaction: t(H),
159
- onRemoveReaction: t(N)
161
+ onToggleReaction: s(H),
162
+ onAddReaction: s(N),
163
+ onRemoveReaction: s(P)
160
164
  }, null, 8, ["reactions", "message-id", "enabled", "onToggleReaction", "onAddReaction", "onRemoveReaction"]),
161
- n("div", de, [
165
+ n("div", we, [
162
166
  e.message.views ? (o(), r("div", {
163
167
  key: 0,
164
168
  class: "file-message__views",
165
- onClick: s[1] || (s[1] = //@ts-ignore
166
- (...a) => t(C) && t(C)(...a))
169
+ onClick: t[1] || (t[1] = //@ts-ignore
170
+ (...i) => s(x) && s(x)(...i))
167
171
  }, [
168
- s[7] || (s[7] = n("span", { class: "pi pi-eye" }, null, -1)),
172
+ t[7] || (t[7] = n("span", { class: "pi pi-eye" }, null, -1)),
169
173
  n("p", null, f(e.message.views), 1)
170
174
  ])) : l("", !0),
171
- n("span", fe, f(e.message.time), 1),
172
- d(X, {
175
+ n("span", ve, f(e.message.time), 1),
176
+ d(Z, {
173
177
  "base-class": "file-message",
174
- "message-class": T(e.message),
178
+ "message-class": S(e.message),
175
179
  "message-status": e.message.status,
176
180
  "status-class": B.value,
177
181
  "status-title": O.value
178
182
  }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
179
183
  ]),
180
- t(E) && e.message.actions ? (o(), r("button", {
184
+ d(_, {
185
+ status: e.message.status,
186
+ "has-messenger-account": e.message.hasMessengerAccount,
187
+ channel: s(V),
188
+ onSmsInvite: D
189
+ }, null, 8, ["status", "has-messenger-account", "channel"]),
190
+ s(A) && e.message.actions ? (o(), r("button", {
181
191
  key: 4,
182
192
  class: "file-message__menu-button",
183
- onClick: s[2] || (s[2] = (a) => w.value = !t(w))
184
- }, [...s[8] || (s[8] = [
193
+ onClick: t[2] || (t[2] = (i) => v.value = !s(v))
194
+ }, [...t[8] || (t[8] = [
185
195
  n("span", { class: "pi pi-ellipsis-h" }, null, -1)
186
196
  ])])) : l("", !0),
187
- d(z, null, {
188
- default: S(() => [
189
- t(w) && e.message.actions ? (o(), b(W, {
197
+ d(G, null, {
198
+ default: T(() => [
199
+ s(v) && e.message.actions ? (o(), b(J, {
190
200
  key: 0,
191
201
  class: "file-message__context-menu",
192
202
  actions: e.message.actions,
193
- onClick: t(F)
203
+ onClick: s(E)
194
204
  }, null, 8, ["actions", "onClick"])) : l("", !0)
195
205
  ]),
196
206
  _: 1
197
207
  })
198
208
  ], 38)
199
- ], 46, oe));
209
+ ], 46, re));
200
210
  }
201
211
  });
202
212
  export {
203
- Ae as default
213
+ Ve as default
204
214
  };
@@ -0,0 +1,7 @@
1
+ import o from "./MessageSmsInvite.vue2.js";
2
+ /* empty css */
3
+ import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const r = /* @__PURE__ */ t(o, [["__scopeId", "data-v-97de4533"]]);
5
+ export {
6
+ r as default
7
+ };
@@ -0,0 +1,64 @@
1
+ import { defineComponent as _, inject as m, computed as p, createElementBlock as b, createCommentVNode as C, openBlock as M, createElementVNode as k, toDisplayString as D, unref as A } from "vue";
2
+ import { useLocale as T } from "../../../locale/useLocale.js";
3
+ import { useMessageDraft as $ } from "../../../hooks/useMessageDraft.js";
4
+ import "../../../hooks/useSearchModel.js";
5
+ import "../../../hooks/useTheme.js";
6
+ /* empty css */
7
+ /* empty css */
8
+ import "../../../node_modules/linkifyjs/dist/linkify.js";
9
+ import "../../../functions/parseMarkdown.js";
10
+ const I = ["data-channel-type"], j = { class: "message-sms-invite__text" }, F = /* @__PURE__ */ _({
11
+ __name: "MessageSmsInvite",
12
+ props: {
13
+ status: {},
14
+ hasMessengerAccount: { type: Boolean },
15
+ channel: {}
16
+ },
17
+ emits: ["sms-invite"],
18
+ setup(h, { emit: f }) {
19
+ const i = h, d = f, { t: v } = T(), g = m("chatAppId"), c = m("selectedChat"), { setMessageText: r } = $(g || ""), x = p(() => i.status === "error" && i.hasMessengerAccount === !1), s = p(() => {
20
+ var a;
21
+ const n = ((a = i.channel) == null ? void 0 : a.toLowerCase()) ?? "";
22
+ return n.includes("whatsapp") || n.includes("waba") ? "whatsapp" : n.includes("max") ? "max" : "telegram";
23
+ }), u = p(() => {
24
+ const n = c && c.value ? c.value : null;
25
+ if (!n || !n.contact || !n.contact.attributes) return null;
26
+ const a = n.contact.attributes, l = (e) => {
27
+ if (!e) return null;
28
+ if (typeof e == "string")
29
+ return e.startsWith("+") ? e : `+${e}`;
30
+ if (typeof e == "object") {
31
+ const t = e;
32
+ if (t.phone)
33
+ return t.phone.startsWith("+") ? t.phone : `+${t.phone}`;
34
+ }
35
+ return null;
36
+ };
37
+ let o = null;
38
+ if (s.value === "whatsapp") {
39
+ const e = a.find((t) => t.type === "whatsapp" || t.type === "waba");
40
+ o = l((e == null ? void 0 : e.data) ?? (e == null ? void 0 : e.value));
41
+ } else if (s.value === "telegram") {
42
+ const e = a.find((t) => t.type === "telegram");
43
+ o = l((e == null ? void 0 : e.data) ?? (e == null ? void 0 : e.value));
44
+ } else if (s.value === "max") {
45
+ const e = a.find((t) => t.type === "max");
46
+ o = l((e == null ? void 0 : e.data) ?? (e == null ? void 0 : e.value));
47
+ }
48
+ return o ? s.value === "whatsapp" ? `Перейдите в WhatsApp https://wa.me/+${o.replace("+", "")}, чтобы продолжить общение` : s.value === "telegram" ? `Перейдите в Telegram https://t.me/+${o.replace("+", "")}, чтобы продолжить общение` : s.value === "max" ? `Перейдите в Max https://max.ru/ и найдите нас по номеру ${o}, чтобы продолжить общение` : null : null;
49
+ }), y = () => {
50
+ u.value && r && r(u.value), d("sms-invite");
51
+ };
52
+ return (n, a) => x.value ? (M(), b("div", {
53
+ key: 0,
54
+ class: "message-sms-invite",
55
+ "data-channel-type": s.value,
56
+ onClick: y
57
+ }, [
58
+ k("span", j, D(A(v)("component.TextMessage.sendSmsInvite")), 1)
59
+ ], 8, I)) : C("", !0);
60
+ }
61
+ });
62
+ export {
63
+ F as default
64
+ };
@@ -1,7 +1,7 @@
1
1
  import o from "./TextMessage.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-b39b6898"]]);
4
+ const a = /* @__PURE__ */ t(o, [["__scopeId", "data-v-d7760eb4"]]);
5
5
  export {
6
6
  a as default
7
7
  };
@@ -1,26 +1,27 @@
1
- import { defineComponent as P, computed as d, createElementBlock as l, openBlock as a, unref as s, normalizeStyle as T, normalizeClass as g, createCommentVNode as i, createElementVNode as m, createVNode as u, withCtx as M, createTextVNode as D, toDisplayString as f, createBlock as r, Transition as O } from "vue";
2
- import j from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
- import q from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
- import z from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
- import $ from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
- import W from "../MessageReactions/MessageReactions.vue.js";
7
- import G from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
8
- import J from "../../1_atoms/Tooltip/Tooltip.vue.js";
9
- import { useMessageActions as K } from "../../../hooks/messages/useMessageActions.js";
10
- import { useMessageLinks as Q } from "../../../hooks/messages/useMessageLinks.js";
11
- import { useChannelAccentColor as U } from "../../../hooks/messages/useChannelAccentColor.js";
12
- import { useSubtextTooltip as X } from "../../../hooks/messages/useSubtextTooltip.js";
13
- import { getStatus as Y, getStatusTitle as Z } from "../../../functions/getStatusMessage.js";
14
- import { getMessageClass as p } from "../../../functions/getMessageClass.js";
15
- import { createReactionHandlers as _ } from "../../../functions/createReactionHandlers.js";
1
+ import { defineComponent as O, computed as f, createElementBlock as l, openBlock as a, unref as s, normalizeStyle as S, normalizeClass as g, createCommentVNode as i, createElementVNode as m, createVNode as u, withCtx as w, createTextVNode as j, toDisplayString as v, createBlock as c, Transition as q } from "vue";
2
+ import z from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
+ import $ from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
+ import W from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
+ import G from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
+ import J from "../MessageReactions/MessageReactions.vue.js";
7
+ import K from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
8
+ import Q from "../MessageSmsInvite/MessageSmsInvite.vue.js";
9
+ import U from "../../1_atoms/Tooltip/Tooltip.vue.js";
10
+ import { useMessageActions as X } from "../../../hooks/messages/useMessageActions.js";
11
+ import { useMessageLinks as Y } from "../../../hooks/messages/useMessageLinks.js";
12
+ import { useChannelAccentColor as Z } from "../../../hooks/messages/useChannelAccentColor.js";
13
+ import { useSubtextTooltip as p } from "../../../hooks/messages/useSubtextTooltip.js";
14
+ import { getStatus as _, getStatusTitle as ee } from "../../../functions/getStatusMessage.js";
15
+ import { getMessageClass as se } from "../../../functions/getMessageClass.js";
16
+ import { createReactionHandlers as te } from "../../../functions/createReactionHandlers.js";
16
17
  import "../../../functions/parseMarkdown.js";
17
- const ee = ["messageId"], se = ["src"], te = {
18
+ const ae = ["messageId"], ne = ["src"], ie = {
18
19
  key: 1,
19
20
  class: "text-message__subtext"
20
- }, ae = ["innerHTML"], ie = { class: "text-message__info-container" }, ne = {
21
+ }, oe = ["innerHTML"], le = { class: "text-message__info-container" }, me = {
21
22
  key: 1,
22
23
  class: "text-message__time"
23
- }, Te = /* @__PURE__ */ P({
24
+ }, Ce = /* @__PURE__ */ O({
24
25
  __name: "TextMessage",
25
26
  props: {
26
27
  message: {
@@ -45,33 +46,36 @@ const ee = ["messageId"], se = ["src"], te = {
45
46
  default: () => ({})
46
47
  }
47
48
  },
48
- emits: ["action", "reply"],
49
- setup(e, { emit: C }) {
50
- const n = e, x = C, { linkedHtml: S, inNewWindow: y } = Q(() => n.message.text), {
51
- isOpenMenu: c,
52
- buttonMenuVisible: I,
53
- showMenu: b,
54
- hideMenu: v,
55
- clickAction: h,
49
+ emits: ["action", "reply", "sms-invite"],
50
+ setup(e, { emit: T }) {
51
+ const n = e, r = T, { linkedHtml: h, inNewWindow: x } = Y(() => n.message.text), {
52
+ isOpenMenu: d,
53
+ buttonMenuVisible: C,
54
+ showMenu: y,
55
+ hideMenu: b,
56
+ clickAction: I,
56
57
  viewsAction: k,
57
58
  handleClickReplied: A
58
- } = K(n.message, x), B = d(() => Y(n.message.status)), F = d(() => Z(n.message.status, n.message.statusMsg)), { bubbleStyle: V } = U(
59
- d(() => n.message),
59
+ } = X(n.message, r), B = f(() => _(n.message.status)), F = f(() => ee(n.message.status, n.message.statusMsg)), { bubbleStyle: V, messageChannelId: E } = Z(
60
+ f(() => n.message),
60
61
  { cssVariable: "--chotto-textmessage-right-bg", position: "right" }
61
62
  );
62
- function R(w) {
63
- return p(w.position, "text-message");
63
+ function R(M) {
64
+ return se(M.position, "text-message");
64
65
  }
65
- const { onToggleReaction: E, onAddReaction: N, onRemoveReaction: H } = _(x), L = X(() => n.message, () => n.subtextTooltipData);
66
- return (w, t) => (a(), l("div", {
66
+ const { onToggleReaction: N, onAddReaction: H, onRemoveReaction: L } = te(r), P = p(() => n.message, () => n.subtextTooltipData);
67
+ function D() {
68
+ r("sms-invite", n.message);
69
+ }
70
+ return (M, t) => (a(), l("div", {
67
71
  class: g(["text-message", [
68
72
  R(e.message),
69
73
  e.applyStyle(e.message)
70
74
  ]]),
71
75
  messageId: e.message.messageId,
72
- style: T(s(V)),
76
+ style: S(s(V)),
73
77
  onMouseleave: t[4] || (t[4] = //@ts-ignore
74
- (...o) => s(v) && s(v)(...o))
78
+ (...o) => s(b) && s(b)(...o))
75
79
  }, [
76
80
  e.message.avatar && e.isFirstInSeries ? (a(), l("img", {
77
81
  key: 0,
@@ -79,16 +83,16 @@ const ee = ["messageId"], se = ["src"], te = {
79
83
  src: e.message.avatar,
80
84
  height: "32",
81
85
  width: "32",
82
- style: T({ gridRow: e.message.subText && e.isFirstInSeries ? "2" : "1" })
83
- }, null, 12, se)) : i("", !0),
84
- e.message.subText && e.isFirstInSeries ? (a(), l("p", te, [
85
- u(J, {
86
- text: s(L),
86
+ style: S({ gridRow: e.message.subText && e.isFirstInSeries ? "2" : "1" })
87
+ }, null, 12, ne)) : i("", !0),
88
+ e.message.subText && e.isFirstInSeries ? (a(), l("p", ie, [
89
+ u(U, {
90
+ text: s(P),
87
91
  position: e.message.position === "left" ? "right" : "left",
88
92
  offset: 8
89
93
  }, {
90
- default: M(() => [
91
- D(f(e.message.subText), 1)
94
+ default: w(() => [
95
+ j(v(e.message.subText), 1)
92
96
  ]),
93
97
  _: 1
94
98
  }, 8, ["text", "position"])
@@ -96,9 +100,9 @@ const ee = ["messageId"], se = ["src"], te = {
96
100
  m("div", {
97
101
  class: g(["text-message__content", { "is-first": e.isFirstInSeries, "with-avatar-indent": !e.isFirstInSeries && e.message.avatar }]),
98
102
  onMouseenter: t[3] || (t[3] = //@ts-ignore
99
- (...o) => s(b) && s(b)(...o))
103
+ (...o) => s(y) && s(y)(...o))
100
104
  }, [
101
- e.message.reply ? (a(), r($, {
105
+ e.message.reply ? (a(), c(G, {
102
106
  key: 0,
103
107
  class: g(e.message.position),
104
108
  message: e.message.reply,
@@ -107,28 +111,28 @@ const ee = ["messageId"], se = ["src"], te = {
107
111
  m("p", {
108
112
  class: "text-message__text",
109
113
  onClick: t[0] || (t[0] = //@ts-ignore
110
- (...o) => s(y) && s(y)(...o)),
111
- innerHTML: s(S)
112
- }, null, 8, ae),
113
- e.message.linkPreview ? (a(), r(q, {
114
+ (...o) => s(x) && s(x)(...o)),
115
+ innerHTML: s(h)
116
+ }, null, 8, oe),
117
+ e.message.linkPreview ? (a(), c($, {
114
118
  key: 1,
115
119
  class: g(e.message.position),
116
120
  "link-preview": e.message.linkPreview
117
121
  }, null, 8, ["class", "link-preview"])) : i("", !0),
118
- e.message.embed ? (a(), r(z, {
122
+ e.message.embed ? (a(), c(W, {
119
123
  key: 2,
120
124
  class: g(e.message.position),
121
125
  embed: e.message.embed
122
126
  }, null, 8, ["class", "embed"])) : i("", !0),
123
- u(W, {
127
+ u(J, {
124
128
  reactions: e.message.reactions,
125
129
  "message-id": e.message.messageId,
126
130
  enabled: e.reactionsEnabled,
127
- onToggleReaction: s(E),
128
- onAddReaction: s(N),
129
- onRemoveReaction: s(H)
131
+ onToggleReaction: s(N),
132
+ onAddReaction: s(H),
133
+ onRemoveReaction: s(L)
130
134
  }, null, 8, ["reactions", "message-id", "enabled", "onToggleReaction", "onAddReaction", "onRemoveReaction"]),
131
- m("div", ie, [
135
+ m("div", le, [
132
136
  e.message.views ? (a(), l("div", {
133
137
  key: 0,
134
138
  class: "text-message__views",
@@ -136,10 +140,10 @@ const ee = ["messageId"], se = ["src"], te = {
136
140
  (...o) => s(k) && s(k)(...o))
137
141
  }, [
138
142
  t[5] || (t[5] = m("span", { class: "pi pi-eye" }, null, -1)),
139
- m("p", null, f(e.message.views), 1)
143
+ m("p", null, v(e.message.views), 1)
140
144
  ])) : i("", !0),
141
- e.message.time ? (a(), l("span", ne, f(e.message.time), 1)) : i("", !0),
142
- u(G, {
145
+ e.message.time ? (a(), l("span", me, v(e.message.time), 1)) : i("", !0),
146
+ u(K, {
143
147
  "base-class": "text-message",
144
148
  "message-class": R(e.message),
145
149
  "message-status": e.message.status,
@@ -147,28 +151,34 @@ const ee = ["messageId"], se = ["src"], te = {
147
151
  "status-title": F.value
148
152
  }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
149
153
  ]),
150
- s(I) && e.message.actions ? (a(), l("button", {
154
+ u(Q, {
155
+ status: e.message.status,
156
+ "has-messenger-account": e.message.hasMessengerAccount,
157
+ channel: s(E),
158
+ onSmsInvite: D
159
+ }, null, 8, ["status", "has-messenger-account", "channel"]),
160
+ s(C) && e.message.actions ? (a(), l("button", {
151
161
  key: 3,
152
162
  class: "text-message__menu-button",
153
- onClick: t[2] || (t[2] = (o) => c.value = !s(c))
163
+ onClick: t[2] || (t[2] = (o) => d.value = !s(d))
154
164
  }, [...t[6] || (t[6] = [
155
165
  m("span", { class: "pi pi-ellipsis-h" }, null, -1)
156
166
  ])])) : i("", !0),
157
- u(O, null, {
158
- default: M(() => [
159
- s(c) && e.message.actions ? (a(), r(j, {
167
+ u(q, null, {
168
+ default: w(() => [
169
+ s(d) && e.message.actions ? (a(), c(z, {
160
170
  key: 0,
161
171
  class: "text-message__context-menu",
162
172
  actions: e.message.actions,
163
- onClick: s(h)
173
+ onClick: s(I)
164
174
  }, null, 8, ["actions", "onClick"])) : i("", !0)
165
175
  ]),
166
176
  _: 1
167
177
  })
168
178
  ], 34)
169
- ], 46, ee));
179
+ ], 46, ae));
170
180
  }
171
181
  });
172
182
  export {
173
- Te as default
183
+ Ce as default
174
184
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./Feed.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-86785e9c"]]);
4
+ const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-05a59365"]]);
5
5
  export {
6
- p as default
6
+ m as default
7
7
  };