@mobilon-dev/chotto 0.3.45 → 0.3.47

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