@mobilon-dev/chotto 0.3.43 → 0.3.44

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 (48) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +2 -2
  3. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +119 -109
  4. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +9 -9
  5. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +2 -2
  6. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +102 -92
  7. package/dist/components/2_feed_elements/MessageStatusIndicator/MessageStatusIndicator.vue.js +5 -71
  8. package/dist/components/2_feed_elements/MessageStatusIndicator/MessageStatusIndicator.vue2.js +64 -2
  9. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/ErrorStatusIcon.vue.js +7 -0
  10. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/ErrorStatusIcon.vue2.js +40 -0
  11. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/PendingStatusIcon.vue.js +7 -0
  12. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/PendingStatusIcon.vue2.js +46 -0
  13. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/ReadStatusIcon.vue.js +7 -0
  14. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/ReadStatusIcon.vue2.js +40 -0
  15. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/ReceivedStatusIcon.vue.js +7 -0
  16. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/ReceivedStatusIcon.vue2.js +40 -0
  17. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/SentStatusIcon.vue.js +7 -0
  18. package/dist/components/2_feed_elements/MessageStatusIndicator/icons/SentStatusIcon.vue2.js +43 -0
  19. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +1 -1
  20. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +118 -103
  21. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +9 -9
  22. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +1 -1
  23. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +88 -78
  24. package/dist/themes/dark.css +1 -1
  25. package/dist/themes/default.css +1 -1
  26. package/dist/themes/glass.css +1 -1
  27. package/dist/themes/green.css +1 -1
  28. package/dist/themes/mobilon1.css +1 -1
  29. package/dist/types/apps/data/messages.d.ts +192 -0
  30. package/dist/types/components/2_feed_elements/AudioMessage/AudioMessage.vue.d.ts +2 -0
  31. package/dist/types/components/2_feed_elements/AudioMessage/styles/types.d.ts +6 -16
  32. package/dist/types/components/2_feed_elements/CallMessage/styles/types.d.ts +0 -6
  33. package/dist/types/components/2_feed_elements/FileMessage/styles/types.d.ts +0 -20
  34. package/dist/types/components/2_feed_elements/ImageMessage/ImageMessage.vue.d.ts +2 -0
  35. package/dist/types/components/2_feed_elements/ImageMessage/styles/types.d.ts +0 -14
  36. package/dist/types/components/2_feed_elements/MessageStatusIndicator/icons/ErrorStatusIcon.vue.d.ts +23 -0
  37. package/dist/types/components/2_feed_elements/MessageStatusIndicator/icons/PendingStatusIcon.vue.d.ts +23 -0
  38. package/dist/types/components/2_feed_elements/MessageStatusIndicator/icons/ReadStatusIcon.vue.d.ts +23 -0
  39. package/dist/types/components/2_feed_elements/MessageStatusIndicator/icons/ReceivedStatusIcon.vue.d.ts +23 -0
  40. package/dist/types/components/2_feed_elements/MessageStatusIndicator/icons/SentStatusIcon.vue.d.ts +23 -0
  41. package/dist/types/components/2_feed_elements/MessageStatusIndicator/icons/index.d.ts +5 -0
  42. package/dist/types/components/2_feed_elements/MessageStatusIndicator/styles/types.d.ts +31 -0
  43. package/dist/types/components/2_feed_elements/StickerMessage/StickerMessage.vue.d.ts +2 -0
  44. package/dist/types/components/2_feed_elements/StickerMessage/styles/types.d.ts +16 -14
  45. package/dist/types/components/2_feed_elements/TextMessage/styles/types.d.ts +0 -18
  46. package/dist/types/components/2_feed_elements/VideoMessage/VideoMessage.vue.d.ts +2 -0
  47. package/dist/types/components/2_feed_elements/VideoMessage/styles/types.d.ts +1 -15
  48. package/package.json +1 -1
@@ -1,35 +1,36 @@
1
- import { defineComponent as oe, inject as ne, ref as k, computed as w, watch as ie, createElementBlock as m, openBlock as n, Fragment as le, createElementVNode as l, createBlock as c, unref as a, normalizeStyle as B, normalizeClass as y, createCommentVNode as i, createVNode as r, withCtx as d, createTextVNode as me, toDisplayString as T, Transition as b, withModifiers as F, Teleport as re } from "vue";
2
- import ue from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
- import de from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
- import ce from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
- import ge from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
- import ve from "../../2_modals/ModalFullscreen/ModalFullscreen.vue.js";
7
- import fe from "../MessageReactions/MessageReactions.vue.js";
8
- import ye from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
9
- import be from "../../1_atoms/Tooltip/Tooltip.vue.js";
10
- import { useMessageActions as pe } from "../../../hooks/messages/useMessageActions.js";
11
- import { useMessageLinks as ke } from "../../../hooks/messages/useMessageLinks.js";
12
- import { useChannelAccentColor as we } from "../../../hooks/messages/useChannelAccentColor.js";
13
- import { useSubtextTooltip as xe } from "../../../hooks/messages/useSubtextTooltip.js";
14
- import { getStatus as he, getStatusTitle as Te } from "../../../functions/getStatusMessage.js";
15
- import { getMessageClass as Re } from "../../../functions/getMessageClass.js";
16
- import { createReactionHandlers as Me } from "../../../functions/createReactionHandlers.js";
1
+ import { defineComponent as ie, inject as le, ref as p, computed as w, watch as me, createElementBlock as r, openBlock as n, Fragment as re, createElementVNode as l, createBlock as c, unref as a, normalizeStyle as F, normalizeClass as y, createCommentVNode as i, createVNode as m, withCtx as d, createTextVNode as ue, toDisplayString as T, Transition as b, withModifiers as $, 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 pe from "../MessageSmsInvite/MessageSmsInvite.vue.js";
10
+ import we 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 Te } from "../../../hooks/messages/useSubtextTooltip.js";
15
+ import { getStatus as Re, getStatusTitle as Ce } from "../../../functions/getStatusMessage.js";
16
+ import { getMessageClass as Se } from "../../../functions/getMessageClass.js";
17
+ import { createReactionHandlers as Ie } from "../../../functions/createReactionHandlers.js";
17
18
  import "../../../functions/parseMarkdown.js";
18
19
  import "../../../hooks/useMessageDraft.js";
19
20
  import "../../../hooks/useSearchModel.js";
20
- import { useTheme as Ce } from "../../../hooks/useTheme.js";
21
+ import { useTheme as Ae } from "../../../hooks/useTheme.js";
21
22
  /* empty css */
22
23
  /* empty css */
23
- const Se = ["messageId"], Ie = ["src"], Ae = {
24
+ const Ee = ["messageId"], Le = ["src"], Be = {
24
25
  key: 1,
25
26
  class: "video-message__subtext"
26
- }, Ee = ["src"], Le = {
27
+ }, Fe = ["src"], $e = {
27
28
  key: 0,
28
29
  class: "video-message__info-container"
29
- }, $e = { class: "video-message__time" }, Be = {
30
+ }, Pe = { class: "video-message__time" }, Oe = {
30
31
  key: 1,
31
32
  class: "video-message__text-container"
32
- }, Fe = ["innerHTML"], Pe = ["src", "alt"], ns = /* @__PURE__ */ oe({
33
+ }, je = ["innerHTML"], He = ["src", "alt"], rs = /* @__PURE__ */ ie({
33
34
  inheritAttrs: !1,
34
35
  __name: "VideoMessage",
35
36
  props: {
@@ -55,32 +56,32 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
55
56
  default: () => ({})
56
57
  }
57
58
  },
58
- emits: ["action", "reply"],
59
+ emits: ["action", "reply", "sms-invite"],
59
60
  setup(e, { emit: P }) {
60
- const O = ne("chatAppId"), { getTheme: R } = Ce(O), t = e, M = P;
61
+ const O = le("chatAppId"), { getTheme: R } = Ae(O), t = e, h = P;
61
62
  function C(u) {
62
- return Re(u.position, "video-message");
63
+ return Se(u.position, "video-message");
63
64
  }
64
- const S = k(), g = k(), x = k(!1), v = k(!1), { linkedHtml: j, inNewWindow: I } = ke(() => t.message.text), {
65
- isOpenMenu: h,
65
+ const S = p(), g = p(), x = p(!1), v = p(!1), { linkedHtml: j, inNewWindow: I } = xe(() => t.message.text), {
66
+ isOpenMenu: M,
66
67
  buttonMenuVisible: H,
67
68
  showMenu: N,
68
69
  hideMenu: A,
69
70
  clickAction: D,
70
71
  viewsAction: E,
71
72
  handleClickReplied: U
72
- } = pe(t.message, M), V = () => {
73
+ } = he(t.message, h), V = () => {
73
74
  N(), v.value = !0;
74
- }, q = w(() => he(t.message.status)), z = w(() => Te(t.message.status, t.message.statusMsg)), { bubbleStyle: W } = we(
75
+ }, q = w(() => Re(t.message.status)), z = w(() => Ce(t.message.status, t.message.statusMsg)), { bubbleStyle: W, messageChannelId: G } = Me(
75
76
  w(() => t.message),
76
77
  { cssVariable: "--chotto-videomessage-right-bg", position: "right" }
77
- ), G = () => {
78
+ ), J = () => {
78
79
  g.value && (g.value.currentTime = 0, g.value.play());
79
80
  };
80
- ie([S, g], ([u, s]) => {
81
+ me([S, g], ([u, s]) => {
81
82
  u ? s && (s.pause(), s.currentTime = 0) : s && (s.play(), s.currentTime = 0);
82
83
  });
83
- const J = w(() => t.message.reply && t.message.text ? "0" : t.message.text ? "5px 5px 0 0" : t.message.reply ? "0 0 5px 5px" : "8px"), K = () => x.value = !1, { onToggleReaction: Q, onAddReaction: X, onRemoveReaction: Y } = Me(M), Z = async () => {
84
+ const K = w(() => 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 } = Ie(h), _ = async () => {
84
85
  var u, s;
85
86
  if (t.message.url)
86
87
  try {
@@ -91,47 +92,50 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
91
92
  });
92
93
  if (!o.ok)
93
94
  throw new Error(`HTTP error! status: ${o.status}`);
94
- const ee = o.headers.get("content-type") || "", se = await o.blob(), p = ((s = (u = t.message.url.split(".").pop()) == null ? void 0 : u.split("?")[0]) == null ? void 0 : s.toLowerCase()) || "", te = {
95
+ const te = o.headers.get("content-type") || "", ae = await o.blob(), k = ((s = (u = t.message.url.split(".").pop()) == null ? void 0 : u.split("?")[0]) == null ? void 0 : s.toLowerCase()) || "", oe = {
95
96
  "video/mp4": "mp4",
96
97
  "video/webm": "webm",
97
98
  "video/ogg": "ogv",
98
99
  "video/quicktime": "mov",
99
100
  "video/x-matroska": "mkv",
100
- "application/octet-stream": p || "mp4"
101
+ "application/octet-stream": k || "mp4"
101
102
  };
102
- let L = p && ["mp4", "mov", "webm", "ogv", "mkv"].includes(p) ? p : te[ee] || "mp4";
103
- const ae = t.message.alt ? t.message.alt.includes(".") ? t.message.alt : `${t.message.alt}.${L}` : `video-${t.message.messageId}.${L}`, $ = window.URL.createObjectURL(se), f = document.createElement("a");
104
- f.href = $, f.download = ae, document.body.appendChild(f), f.click(), document.body.removeChild(f), window.URL.revokeObjectURL($);
103
+ let L = k && ["mp4", "mov", "webm", "ogv", "mkv"].includes(k) ? k : oe[te] || "mp4";
104
+ const ne = t.message.alt ? t.message.alt.includes(".") ? t.message.alt : `${t.message.alt}.${L}` : `video-${t.message.messageId}.${L}`, B = window.URL.createObjectURL(ae), f = document.createElement("a");
105
+ f.href = B, f.download = ne, document.body.appendChild(f), f.click(), document.body.removeChild(f), window.URL.revokeObjectURL(B);
105
106
  } catch (o) {
106
107
  console.error("Ошибка при скачивании видео:", o), window.open(t.message.url, "_blank");
107
108
  }
108
- }, _ = xe(() => t.message, () => t.subtextTooltipData);
109
- return (u, s) => (n(), m(le, null, [
109
+ }, ee = Te(() => t.message, () => t.subtextTooltipData);
110
+ function se() {
111
+ h("sms-invite", t.message);
112
+ }
113
+ return (u, s) => (n(), r(re, null, [
110
114
  l("div", {
111
115
  class: y(["video-message", [
112
116
  C(e.message),
113
117
  e.applyStyle(e.message)
114
118
  ]]),
115
119
  messageId: e.message.messageId,
116
- style: B(a(W)),
120
+ style: F(a(W)),
117
121
  onMouseleave: s[5] || (s[5] = //@ts-ignore
118
122
  (...o) => a(A) && a(A)(...o))
119
123
  }, [
120
- e.message.avatar && e.isFirstInSeries ? (n(), m("img", {
124
+ e.message.avatar && e.isFirstInSeries ? (n(), r("img", {
121
125
  key: 0,
122
126
  class: "video-message__avatar",
123
127
  src: e.message.avatar,
124
128
  height: "32",
125
129
  width: "32"
126
- }, null, 8, Ie)) : i("", !0),
127
- e.message.subText && e.isFirstInSeries ? (n(), m("p", Ae, [
128
- r(be, {
129
- text: a(_),
130
+ }, null, 8, Le)) : i("", !0),
131
+ e.message.subText && e.isFirstInSeries ? (n(), r("p", Be, [
132
+ m(we, {
133
+ text: a(ee),
130
134
  position: e.message.position === "left" ? "right" : "left",
131
135
  offset: 8
132
136
  }, {
133
137
  default: d(() => [
134
- me(T(e.message.subText), 1)
138
+ ue(T(e.message.subText), 1)
135
139
  ]),
136
140
  _: 1
137
141
  }, 8, ["text", "position"])
@@ -139,7 +143,7 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
139
143
  l("div", {
140
144
  class: y(["video-message__content", { "is-first": e.isFirstInSeries, "with-avatar-indent": !e.isFirstInSeries && e.message.avatar }])
141
145
  }, [
142
- e.message.reply ? (n(), c(ge, {
146
+ e.message.reply ? (n(), c(fe, {
143
147
  key: 0,
144
148
  style: { margin: "10px 10px 4px 16px" },
145
149
  class: y(e.message.position),
@@ -156,19 +160,19 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
156
160
  ref_key: "previewPlayer",
157
161
  ref: g,
158
162
  class: "video-message__video",
159
- style: B({ borderRadius: J.value }),
163
+ style: F({ borderRadius: K.value }),
160
164
  src: e.message.url,
161
165
  muted: !0,
162
166
  autoplay: "",
163
- onEnded: G
164
- }, null, 44, Ee),
165
- r(b, { name: "modal-fade" }, {
167
+ onEnded: J
168
+ }, null, 44, Fe),
169
+ m(b, { name: "modal-fade" }, {
166
170
  default: d(() => [
167
- v.value ? (n(), m("div", Le, [
168
- e.message.views ? (n(), m("div", {
171
+ v.value ? (n(), r("div", $e, [
172
+ e.message.views ? (n(), r("div", {
169
173
  key: 0,
170
174
  class: "video-message__views",
171
- onClick: s[0] || (s[0] = F(
175
+ onClick: s[0] || (s[0] = $(
172
176
  //@ts-ignore
173
177
  (...o) => a(E) && a(E)(...o),
174
178
  ["stop"]
@@ -177,8 +181,8 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
177
181
  s[6] || (s[6] = l("span", { class: "pi pi-eye" }, null, -1)),
178
182
  l("p", null, T(e.message.views), 1)
179
183
  ])) : i("", !0),
180
- l("span", $e, T(e.message.time), 1),
181
- r(ye, {
184
+ l("span", Pe, T(e.message.time), 1),
185
+ m(ke, {
182
186
  "base-class": "video-message",
183
187
  "message-class": C(e.message),
184
188
  "message-status": e.message.status,
@@ -189,13 +193,13 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
189
193
  ]),
190
194
  _: 1
191
195
  }),
192
- r(b, { name: "modal-fade" }, {
196
+ m(b, { name: "modal-fade" }, {
193
197
  default: d(() => [
194
- v.value ? (n(), m("button", {
198
+ v.value ? (n(), r("button", {
195
199
  key: 0,
196
200
  class: "video-message__download-button",
197
201
  type: "button",
198
- onClick: F(Z, ["stop"])
202
+ onClick: $(_, ["stop"])
199
203
  }, [...s[7] || (s[7] = [
200
204
  l("span", { class: "pi pi-download" }, null, -1)
201
205
  ])])) : i("", !0)
@@ -203,21 +207,21 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
203
207
  _: 1
204
208
  })
205
209
  ], 32),
206
- r(b, { name: "modal-fade" }, {
210
+ m(b, { name: "modal-fade" }, {
207
211
  default: d(() => [
208
- a(H) && e.message.actions ? (n(), m("button", {
212
+ a(H) && e.message.actions ? (n(), r("button", {
209
213
  key: 0,
210
214
  class: "video-message__menu-button",
211
- onClick: s[3] || (s[3] = (o) => h.value = !a(h))
215
+ onClick: s[3] || (s[3] = (o) => M.value = !a(M))
212
216
  }, [...s[8] || (s[8] = [
213
217
  l("span", { class: "pi pi-ellipsis-h" }, null, -1)
214
218
  ])])) : i("", !0)
215
219
  ]),
216
220
  _: 1
217
221
  }),
218
- r(b, { name: "context-menu" }, {
222
+ m(b, { name: "context-menu" }, {
219
223
  default: d(() => [
220
- a(h) && e.message.actions ? (n(), c(ue, {
224
+ a(M) && e.message.actions ? (n(), c(ce, {
221
225
  key: 0,
222
226
  class: "video-message__context-menu",
223
227
  actions: e.message.actions,
@@ -226,40 +230,46 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
226
230
  ]),
227
231
  _: 1
228
232
  }),
229
- e.message.text ? (n(), m("div", Be, [
233
+ e.message.text ? (n(), r("div", Oe, [
230
234
  l("p", {
231
235
  onClick: s[4] || (s[4] = //@ts-ignore
232
236
  (...o) => a(I) && a(I)(...o)),
233
237
  innerHTML: a(j)
234
- }, null, 8, Fe)
238
+ }, null, 8, je)
235
239
  ])) : i("", !0),
236
- e.message.linkPreview ? (n(), c(de, {
240
+ m(pe, {
241
+ status: e.message.status,
242
+ "has-messenger-account": e.message.hasMessengerAccount,
243
+ channel: a(G),
244
+ onSmsInvite: se
245
+ }, null, 8, ["status", "has-messenger-account", "channel"]),
246
+ e.message.linkPreview ? (n(), c(ge, {
237
247
  key: 2,
238
248
  class: y(["video-message__link-preview", e.message.position]),
239
249
  "link-preview": e.message.linkPreview
240
250
  }, null, 8, ["class", "link-preview"])) : i("", !0),
241
- e.message.embed ? (n(), c(ce, {
251
+ e.message.embed ? (n(), c(ve, {
242
252
  key: 3,
243
253
  class: y(e.message.position),
244
254
  embed: e.message.embed
245
255
  }, null, 8, ["class", "embed"])) : i("", !0),
246
- r(fe, {
256
+ m(be, {
247
257
  reactions: e.message.reactions,
248
258
  "message-id": e.message.messageId,
249
259
  enabled: e.reactionsEnabled,
250
- onToggleReaction: a(Q),
251
- onAddReaction: a(X),
252
- onRemoveReaction: a(Y)
260
+ onToggleReaction: a(X),
261
+ onAddReaction: a(Y),
262
+ onRemoveReaction: a(Z)
253
263
  }, null, 8, ["reactions", "message-id", "enabled", "onToggleReaction", "onAddReaction", "onRemoveReaction"])
254
264
  ], 2)
255
- ], 46, Se),
256
- (n(), c(re, { to: "body" }, [
257
- r(b, { name: "modal-fade" }, {
265
+ ], 46, Ee),
266
+ (n(), c(de, { to: "body" }, [
267
+ m(b, { name: "modal-fade" }, {
258
268
  default: d(() => [
259
- x.value ? (n(), c(ve, {
269
+ x.value ? (n(), c(ye, {
260
270
  key: 0,
261
271
  "data-theme": a(R)().theme ? a(R)().theme : "light",
262
- onClose: K
272
+ onClose: Q
263
273
  }, {
264
274
  default: d(() => [
265
275
  l("video", {
@@ -270,7 +280,7 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
270
280
  alt: e.message.alt,
271
281
  controls: "",
272
282
  autoplay: ""
273
- }, null, 8, Pe)
283
+ }, null, 8, He)
274
284
  ]),
275
285
  _: 1
276
286
  }, 8, ["data-theme"])) : i("", !0)
@@ -282,5 +292,5 @@ const Se = ["messageId"], Ie = ["src"], Ae = {
282
292
  }
283
293
  });
284
294
  export {
285
- ns as default
295
+ rs as default
286
296
  };