@mobilon-dev/chotto 0.3.62 → 0.3.64

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.
@@ -1,36 +1,36 @@
1
- import { defineComponent as Q, inject as U, ref as b, computed as h, watch as X, onMounted as Y, createElementBlock as i, openBlock as t, unref as a, normalizeStyle as Z, normalizeClass as k, createCommentVNode as n, createElementVNode as m, createBlock as g, toDisplayString as R, createVNode as r, Transition as f, withCtx as d, withModifiers as B, Teleport as _ } from "vue";
2
- import ee from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
- import se from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
- import te from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
- import ae from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
- import ie from "../../2_modals/ModalFullscreen/ModalFullscreen.vue.js";
7
- import ne from "../MessageReactions/MessageReactions.vue.js";
8
- import le from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
9
- import oe from "../MessageSmsInvite/MessageSmsInvite.vue.js";
10
- import { useMessageActions as me } from "../../../hooks/messages/useMessageActions.js";
11
- import { useMessageLinks as re } from "../../../hooks/messages/useMessageLinks.js";
12
- import { useChannelAccentColor as ue } from "../../../hooks/messages/useChannelAccentColor.js";
13
- import { getStatus as ce, getStatusTitle as ge } from "../../../functions/getStatusMessage.js";
14
- import { getMessageClass as de } from "../../../functions/getMessageClass.js";
15
- import { createReactionHandlers as ve } from "../../../functions/createReactionHandlers.js";
1
+ import { defineComponent as Y, inject as Z, ref as y, computed as b, watch as E, onMounted as _, createElementBlock as i, openBlock as t, unref as a, normalizeStyle as ee, normalizeClass as w, createCommentVNode as l, createElementVNode as r, createBlock as g, toDisplayString as I, createVNode as u, Transition as h, withCtx as d, withModifiers as V, Teleport as se } from "vue";
2
+ import te from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
3
+ import ae from "../../1_atoms/LinkPreview/LinkPreview.vue.js";
4
+ import ie from "../../1_atoms/EmbedPreview/EmbedPreview.vue.js";
5
+ import le from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
+ import ne from "../../2_modals/ModalFullscreen/ModalFullscreen.vue.js";
7
+ import oe from "../MessageReactions/MessageReactions.vue.js";
8
+ import me from "../MessageStatusIndicator/MessageStatusIndicator.vue.js";
9
+ import re from "../MessageSmsInvite/MessageSmsInvite.vue.js";
10
+ import { useMessageActions as ue } from "../../../hooks/messages/useMessageActions.js";
11
+ import { useMessageLinks as ce } from "../../../hooks/messages/useMessageLinks.js";
12
+ import { useChannelAccentColor as ge } from "../../../hooks/messages/useChannelAccentColor.js";
13
+ import { getStatus as de, getStatusTitle as ve } from "../../../functions/getStatusMessage.js";
14
+ import { getMessageClass as ke } from "../../../functions/getMessageClass.js";
15
+ import { createReactionHandlers as fe } from "../../../functions/createReactionHandlers.js";
16
16
  import "../../../functions/parseMarkdown.js";
17
17
  import "../../../hooks/useMessageDraft.js";
18
18
  import "../../../hooks/useSearchModel.js";
19
- import { useTheme as ke } from "../../../hooks/useTheme.js";
19
+ import { useTheme as ye } from "../../../hooks/useTheme.js";
20
20
  /* empty css */
21
21
  /* empty css */
22
- import { isAnimatedSticker as fe } from "./utils/stickerUtils.js";
22
+ import { isAnimatedSticker as be } from "./utils/stickerUtils.js";
23
23
  import "./utils/suppress-lit-warning.js";
24
- const ye = ["messageId"], be = ["src"], he = {
24
+ const we = ["messageId"], he = ["src"], Me = {
25
25
  key: 1,
26
26
  class: "sticker-message__subtext"
27
- }, we = ["src"], Me = ["src", "alt"], Se = {
27
+ }, Se = ["src"], Ce = ["src"], Re = ["src", "alt"], Ie = {
28
28
  key: 0,
29
29
  class: "sticker-message__info-container"
30
- }, Ce = { class: "sticker-message__time" }, Re = ["href"], xe = {
30
+ }, Te = { class: "sticker-message__time" }, xe = ["href"], pe = {
31
31
  key: 1,
32
32
  class: "sticker-message__text-container"
33
- }, Te = ["innerHTML"], Ie = ["src"], Ae = ["src", "alt"], Ze = /* @__PURE__ */ Q({
33
+ }, Le = ["innerHTML"], Ae = ["src"], Fe = ["src"], Be = ["src", "alt"], ts = /* @__PURE__ */ Y({
34
34
  __name: "StickerMessage",
35
35
  props: {
36
36
  message: {
@@ -56,55 +56,65 @@ const ye = ["messageId"], be = ["src"], he = {
56
56
  }
57
57
  },
58
58
  emits: ["action", "reply", "sms-invite"],
59
- setup(e, { emit: V }) {
60
- const p = U("chatAppId"), { getTheme: x } = ke(p), u = b(!1), w = b(!1);
61
- async function T() {
62
- if (!(u.value || w.value)) {
63
- w.value = !0;
59
+ setup(e, { emit: $ }) {
60
+ const H = Z("chatAppId"), { getTheme: T } = ye(H), c = y(!1), M = y(!1);
61
+ async function x() {
62
+ if (!(c.value || M.value)) {
63
+ M.value = !0;
64
64
  try {
65
- await import("./libs/tgs-player/lottie-player.esm.js"), await import("./libs/tgs-player/tgs-player.esm.js"), u.value = !0;
66
- } catch (c) {
67
- console.error("Failed to load TGS libraries:", c);
65
+ await import("./libs/tgs-player/lottie-player.esm.js"), await import("./libs/tgs-player/tgs-player.esm.js"), c.value = !0;
66
+ } catch (m) {
67
+ console.error("Failed to load TGS libraries:", m);
68
68
  } finally {
69
- w.value = !1;
69
+ M.value = !1;
70
70
  }
71
71
  }
72
72
  }
73
- const l = e, M = V, S = b(!1), {
74
- isOpenMenu: C,
75
- buttonMenuVisible: E,
76
- showMenu: H,
77
- hideMenu: I,
78
- clickAction: N,
79
- viewsAction: A,
80
- handleClickReplied: P
81
- } = me(l.message, M), v = b(!1), { linkedHtml: O, inNewWindow: F } = re(() => l.message.text), $ = () => {
82
- H(), v.value = !0;
83
- }, j = h(() => ce(l.message.status)), q = h(() => ge(l.message.status, l.message.statusMsg)), { bubbleStyle: z } = ue(
84
- h(() => l.message),
73
+ const n = e, S = $, C = y(!1), {
74
+ isOpenMenu: R,
75
+ buttonMenuVisible: N,
76
+ showMenu: P,
77
+ hideMenu: p,
78
+ clickAction: j,
79
+ viewsAction: L,
80
+ handleClickReplied: O
81
+ } = ue(n.message, S), v = y(!1), { linkedHtml: q, inNewWindow: A } = ce(() => n.message.text), z = () => {
82
+ P(), v.value = !0;
83
+ }, D = b(() => de(n.message.status)), G = b(() => ve(n.message.status, n.message.statusMsg)), { bubbleStyle: W } = ge(
84
+ b(() => n.message),
85
85
  { cssVariable: "--chotto-stickermessage-right-bg", position: "right" }
86
- ), y = h(() => fe(l.message.url, l.message.isAnimated));
87
- X(y, (c) => {
88
- c && !u.value && T();
89
- }, { immediate: !0 }), Y(() => {
90
- y.value && !u.value && T();
86
+ ), k = b(() => be(n.message.url, n.message.isAnimated)), f = y(!1), F = b(() => {
87
+ if (k.value) return !1;
88
+ const m = String(n.message.url || "").toLowerCase();
89
+ return !/\.(webp|png|jpe?g|gif|bmp|svg)(\?|#|$)/.test(m);
91
90
  });
92
- function L(c) {
93
- return de(c.position, "sticker-message");
91
+ E(
92
+ () => n.message.url,
93
+ () => {
94
+ f.value = !1;
95
+ },
96
+ { immediate: !0 }
97
+ ), E(k, (m) => {
98
+ m && !c.value && x();
99
+ }, { immediate: !0 }), _(() => {
100
+ k.value && !c.value && x();
101
+ });
102
+ function B(m) {
103
+ return ke(m.position, "sticker-message");
94
104
  }
95
- const D = () => S.value = !1, { onToggleReaction: G, onAddReaction: W, onRemoveReaction: J } = ve(M);
96
- function K() {
97
- M("sms-invite", l.message);
105
+ const J = () => C.value = !1, { onToggleReaction: K, onAddReaction: Q, onRemoveReaction: U } = fe(S);
106
+ function X() {
107
+ S("sms-invite", n.message);
98
108
  }
99
- return (c, s) => (t(), i("div", {
100
- class: k(["sticker-message", [
101
- L(e.message),
109
+ return (m, s) => (t(), i("div", {
110
+ class: w(["sticker-message", [
111
+ B(e.message),
102
112
  e.applyStyle(e.message)
103
113
  ]]),
104
114
  messageId: e.message.messageId,
105
- style: Z(a(z)),
106
- onMouseleave: s[5] || (s[5] = //@ts-ignore
107
- (...o) => a(I) && a(I)(...o))
115
+ style: ee(a(W)),
116
+ onMouseleave: s[7] || (s[7] = //@ts-ignore
117
+ (...o) => a(p) && a(p)(...o))
108
118
  }, [
109
119
  e.message.avatar && e.isFirstInSeries ? (t(), i("img", {
110
120
  key: 0,
@@ -112,65 +122,75 @@ const ye = ["messageId"], be = ["src"], he = {
112
122
  src: e.message.avatar,
113
123
  height: "32",
114
124
  width: "32"
115
- }, null, 8, be)) : n("", !0),
116
- e.message.subText && e.isFirstInSeries ? (t(), i("p", he, R(e.message.subText), 1)) : n("", !0),
117
- m("div", {
118
- class: k(["sticker-message__content", { "is-first": e.isFirstInSeries, "with-avatar-indent": !e.isFirstInSeries && e.message.avatar }])
125
+ }, null, 8, he)) : l("", !0),
126
+ e.message.subText && e.isFirstInSeries ? (t(), i("p", Me, I(e.message.subText), 1)) : l("", !0),
127
+ r("div", {
128
+ class: w(["sticker-message__content", { "is-first": e.isFirstInSeries, "with-avatar-indent": !e.isFirstInSeries && e.message.avatar }])
119
129
  }, [
120
- e.message.reply ? (t(), g(ae, {
130
+ e.message.reply ? (t(), g(le, {
121
131
  key: 0,
122
132
  style: { margin: "10px 10px 4px 16px" },
123
- class: k(e.message.position),
133
+ class: w(e.message.position),
124
134
  message: e.message.reply,
125
- onReply: a(P)
126
- }, null, 8, ["class", "message", "onReply"])) : n("", !0),
127
- m("div", {
135
+ onReply: a(O)
136
+ }, null, 8, ["class", "message", "onReply"])) : l("", !0),
137
+ r("div", {
128
138
  class: "sticker-message__preview-button",
129
- onClick: s[1] || (s[1] = (o) => S.value = !0),
130
- onMouseenter: $,
131
- onMouseleave: s[2] || (s[2] = (o) => v.value = !v.value)
139
+ onClick: s[2] || (s[2] = (o) => C.value = !0),
140
+ onMouseenter: z,
141
+ onMouseleave: s[3] || (s[3] = (o) => v.value = !v.value)
132
142
  }, [
133
- y.value && u.value ? (t(), i("tgs-player", {
143
+ k.value && c.value ? (t(), i("tgs-player", {
134
144
  key: 0,
135
145
  class: "sticker-message__preview-image-animated",
136
146
  src: e.message.url,
137
147
  autoplay: "",
138
148
  loop: "",
139
149
  mode: "normal"
140
- }, null, 8, we)) : (t(), i("img", {
150
+ }, null, 8, Se)) : F.value && !f.value ? (t(), i("video", {
141
151
  key: 1,
142
152
  class: "sticker-message__preview-image",
143
153
  src: e.message.url,
154
+ autoplay: "",
155
+ loop: "",
156
+ muted: "",
157
+ playsinline: "",
158
+ preload: "metadata",
159
+ onError: s[0] || (s[0] = (o) => f.value = !0)
160
+ }, null, 40, Ce)) : (t(), i("img", {
161
+ key: 2,
162
+ class: "sticker-message__preview-image",
163
+ src: e.message.url,
144
164
  alt: e.message.alt
145
- }, null, 8, Me)),
146
- r(f, { name: "modal-fade" }, {
165
+ }, null, 8, Re)),
166
+ u(h, { name: "modal-fade" }, {
147
167
  default: d(() => [
148
- v.value ? (t(), i("div", Se, [
168
+ v.value ? (t(), i("div", Ie, [
149
169
  e.message.views ? (t(), i("div", {
150
170
  key: 0,
151
171
  class: "sticker-message__views",
152
- onClick: s[0] || (s[0] = B(
172
+ onClick: s[1] || (s[1] = V(
153
173
  //@ts-ignore
154
- (...o) => a(A) && a(A)(...o),
174
+ (...o) => a(L) && a(L)(...o),
155
175
  ["stop"]
156
176
  ))
157
177
  }, [
158
- s[6] || (s[6] = m("span", { class: "pi pi-eye" }, null, -1)),
159
- m("p", null, R(e.message.views), 1)
160
- ])) : n("", !0),
161
- m("span", Ce, R(e.message.time), 1),
162
- r(le, {
178
+ s[8] || (s[8] = r("span", { class: "pi pi-eye" }, null, -1)),
179
+ r("p", null, I(e.message.views), 1)
180
+ ])) : l("", !0),
181
+ r("span", Te, I(e.message.time), 1),
182
+ u(me, {
163
183
  "base-class": "sticker-message",
164
- "message-class": L(e.message),
184
+ "message-class": B(e.message),
165
185
  "message-status": e.message.status,
166
- "status-class": j.value,
167
- "status-title": q.value
186
+ "status-class": D.value,
187
+ "status-title": G.value
168
188
  }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
169
- ])) : n("", !0)
189
+ ])) : l("", !0)
170
190
  ]),
171
191
  _: 1
172
192
  }),
173
- r(f, { name: "modal-fade" }, {
193
+ u(h, { name: "modal-fade" }, {
174
194
  default: d(() => [
175
195
  v.value ? (t(), i("a", {
176
196
  key: 0,
@@ -178,102 +198,112 @@ const ye = ["messageId"], be = ["src"], he = {
178
198
  href: e.message.url,
179
199
  download: "",
180
200
  target: "_blank",
181
- onClick: B(() => "//Предотвращаем всплытие события клика", ["stop"])
182
- }, [...s[7] || (s[7] = [
183
- m("span", { class: "pi pi-download" }, null, -1)
184
- ])], 8, Re)) : n("", !0)
201
+ onClick: V(() => "//Предотвращаем всплытие события клика", ["stop"])
202
+ }, [...s[9] || (s[9] = [
203
+ r("span", { class: "pi pi-download" }, null, -1)
204
+ ])], 8, xe)) : l("", !0)
185
205
  ]),
186
206
  _: 1
187
207
  })
188
208
  ], 32),
189
- r(f, { name: "modal-fade" }, {
209
+ u(h, { name: "modal-fade" }, {
190
210
  default: d(() => [
191
- a(E) && e.message.actions ? (t(), i("button", {
211
+ a(N) && e.message.actions ? (t(), i("button", {
192
212
  key: 0,
193
213
  class: "sticker-message__menu-button",
194
- onClick: s[3] || (s[3] = (o) => C.value = !a(C))
195
- }, [...s[8] || (s[8] = [
196
- m("span", { class: "pi pi-ellipsis-h" }, null, -1)
197
- ])])) : n("", !0)
214
+ onClick: s[4] || (s[4] = (o) => R.value = !a(R))
215
+ }, [...s[10] || (s[10] = [
216
+ r("span", { class: "pi pi-ellipsis-h" }, null, -1)
217
+ ])])) : l("", !0)
198
218
  ]),
199
219
  _: 1
200
220
  }),
201
- r(f, { name: "context-menu" }, {
221
+ u(h, { name: "context-menu" }, {
202
222
  default: d(() => [
203
- a(C) && e.message.actions ? (t(), g(ee, {
223
+ a(R) && e.message.actions ? (t(), g(te, {
204
224
  key: 0,
205
225
  class: "sticker-message__context-menu",
206
226
  actions: e.message.actions,
207
- onClick: a(N)
208
- }, null, 8, ["actions", "onClick"])) : n("", !0)
227
+ onClick: a(j)
228
+ }, null, 8, ["actions", "onClick"])) : l("", !0)
209
229
  ]),
210
230
  _: 1
211
231
  }),
212
- e.message.text ? (t(), i("div", xe, [
213
- m("p", {
214
- onClick: s[4] || (s[4] = //@ts-ignore
215
- (...o) => a(F) && a(F)(...o)),
216
- innerHTML: a(O)
217
- }, null, 8, Te)
218
- ])) : n("", !0),
219
- r(oe, {
232
+ e.message.text ? (t(), i("div", pe, [
233
+ r("p", {
234
+ onClick: s[5] || (s[5] = //@ts-ignore
235
+ (...o) => a(A) && a(A)(...o)),
236
+ innerHTML: a(q)
237
+ }, null, 8, Le)
238
+ ])) : l("", !0),
239
+ u(re, {
220
240
  status: e.message.status,
221
241
  "has-messenger-account": e.message.hasMessengerAccount,
222
242
  channel: e.channel,
223
- onSmsInvite: K
243
+ onSmsInvite: X
224
244
  }, null, 8, ["status", "has-messenger-account", "channel"]),
225
- e.message.linkPreview ? (t(), g(se, {
245
+ e.message.linkPreview ? (t(), g(ae, {
226
246
  key: 2,
227
- class: k(["sticker-message__link-preview", e.message.position]),
247
+ class: w(["sticker-message__link-preview", e.message.position]),
228
248
  "link-preview": e.message.linkPreview
229
- }, null, 8, ["class", "link-preview"])) : n("", !0),
230
- e.message.embed ? (t(), g(te, {
249
+ }, null, 8, ["class", "link-preview"])) : l("", !0),
250
+ e.message.embed ? (t(), g(ie, {
231
251
  key: 3,
232
- class: k(e.message.position),
252
+ class: w(e.message.position),
233
253
  embed: e.message.embed
234
- }, null, 8, ["class", "embed"])) : n("", !0),
235
- r(ne, {
254
+ }, null, 8, ["class", "embed"])) : l("", !0),
255
+ u(oe, {
236
256
  reactions: e.message.reactions,
237
257
  "message-id": e.message.messageId,
238
258
  enabled: e.reactionsEnabled,
239
- onToggleReaction: a(G),
240
- onAddReaction: a(W),
241
- onRemoveReaction: a(J)
259
+ onToggleReaction: a(K),
260
+ onAddReaction: a(Q),
261
+ onRemoveReaction: a(U)
242
262
  }, null, 8, ["reactions", "message-id", "enabled", "onToggleReaction", "onAddReaction", "onRemoveReaction"])
243
263
  ], 2),
244
- (t(), g(_, { to: "body" }, [
245
- r(f, { name: "modal-fade" }, {
264
+ (t(), g(se, { to: "body" }, [
265
+ u(h, { name: "modal-fade" }, {
246
266
  default: d(() => [
247
- S.value ? (t(), g(ie, {
267
+ C.value ? (t(), g(ne, {
248
268
  key: 0,
249
- "data-theme": a(x)().theme ? a(x)().theme : "light",
269
+ "data-theme": a(T)().theme ? a(T)().theme : "light",
250
270
  title: e.message.alt,
251
- onClose: D
271
+ onClose: J
252
272
  }, {
253
273
  default: d(() => [
254
- y.value && u.value ? (t(), i("tgs-player", {
274
+ k.value && c.value ? (t(), i("tgs-player", {
255
275
  key: 0,
256
276
  class: "sticker-message__modal-image-animated",
257
277
  src: e.message.url,
258
278
  autoplay: "",
259
279
  loop: "",
260
280
  mode: "normal"
261
- }, null, 8, Ie)) : (t(), i("img", {
281
+ }, null, 8, Ae)) : F.value && !f.value ? (t(), i("video", {
262
282
  key: 1,
263
283
  class: "sticker-message__modal-image",
264
284
  src: e.message.url,
285
+ autoplay: "",
286
+ loop: "",
287
+ muted: "",
288
+ playsinline: "",
289
+ preload: "metadata",
290
+ onError: s[6] || (s[6] = (o) => f.value = !0)
291
+ }, null, 40, Fe)) : (t(), i("img", {
292
+ key: 2,
293
+ class: "sticker-message__modal-image",
294
+ src: e.message.url,
265
295
  alt: e.message.alt
266
- }, null, 8, Ae))
296
+ }, null, 8, Be))
267
297
  ]),
268
298
  _: 1
269
- }, 8, ["data-theme", "title"])) : n("", !0)
299
+ }, 8, ["data-theme", "title"])) : l("", !0)
270
300
  ]),
271
301
  _: 1
272
302
  })
273
303
  ]))
274
- ], 46, ye));
304
+ ], 46, we));
275
305
  }
276
306
  });
277
307
  export {
278
- Ze as default
308
+ ts as default
279
309
  };