@mobilon-dev/chotto 0.3.103 → 0.3.105

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_feed_elements/AudioMessage/AudioMessage.vue.js +3 -3
  3. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +164 -160
  4. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +2 -2
  5. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +106 -102
  6. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +3 -3
  7. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +121 -116
  8. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +3 -3
  9. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +116 -111
  10. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +1 -1
  11. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +153 -149
  12. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +3 -3
  13. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +131 -126
  14. package/dist/components/3_compounds/ChatInput/ChatInput.vue.js +2 -2
  15. package/dist/components/3_compounds/ChatInput/ChatInput.vue2.js +189 -161
  16. package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
  17. package/dist/components/3_compounds/Feed/Feed.vue2.js +174 -170
  18. package/dist/components/3_compounds/Feed/composables/useFeedReply.js +10 -10
  19. package/dist/functions/isSmsChannel.js +19 -0
  20. package/dist/hooks/messages/canStartEditLastSent.js +16 -0
  21. package/dist/hooks/messages/useMessageHoverActions.js +13 -0
  22. package/dist/index.js +112 -103
  23. package/dist/types/components/3_compounds/ChatInput/ChatInput.vue.d.ts +13 -0
  24. package/dist/types/components/3_compounds/Feed/composables/useFeedReply.d.ts +2 -1
  25. package/dist/types/functions/index.d.ts +1 -0
  26. package/dist/types/functions/isSmsChannel.d.ts +8 -0
  27. package/dist/types/hooks/messages/canStartEditLastSent.d.ts +22 -0
  28. package/dist/types/hooks/messages/index.d.ts +2 -0
  29. package/dist/types/hooks/messages/useMessageHoverActions.d.ts +9 -0
  30. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import o from "./FileMessage.vue2.js";
2
2
  /* empty css */
3
3
  import e from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const s = /* @__PURE__ */ e(o, [["__scopeId", "data-v-ec2a2790"]]);
4
+ const a = /* @__PURE__ */ e(o, [["__scopeId", "data-v-fcec3602"]]);
5
5
  export {
6
- s as default
6
+ a as default
7
7
  };
@@ -1,19 +1,20 @@
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 ge from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
- import ce from "../MessageReactions/MessageReactions.vue.js";
1
+ import { defineComponent as ne, inject as ie, 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 oe, toDisplayString as f, Fragment as E, createBlock as y, withModifiers as le, Teleport as me, Transition as re } from "vue";
2
+ import ue 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 de from "../BaseReplyMessage/BaseReplyMessage.vue.js";
6
+ import fe from "../MessageReactions/MessageReactions.vue.js";
7
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";
8
+ import ye from "../MessageSmsInvite/MessageSmsInvite.vue.js";
9
+ import be from "../DeletedMessageContent/DeletedMessageContent.vue.js";
10
+ import ve from "../../1_atoms/Tooltip/Tooltip.vue.js";
11
+ import { useMessageActions as he } from "../../../hooks/messages/useMessageActions.js";
12
+ import { useMessageHoverActions as ke } from "../../../hooks/messages/useMessageHoverActions.js";
13
+ import { useMessageMenuActions as we } from "../../../hooks/messages/useMessageMenuActions.js";
14
+ import { useMessageLinks as Me } from "../../../hooks/messages/useMessageLinks.js";
15
+ import { useChannelAccentColor as Re } from "../../../hooks/messages/useChannelAccentColor.js";
16
+ import { useSubtextTooltip as Se } from "../../../hooks/messages/useSubtextTooltip.js";
17
+ import { useStartReply as Ce } from "../../../hooks/messages/useStartReply.js";
17
18
  import "../../../hooks/useMessageDraft.js";
18
19
  import "../../../hooks/useSearchModel.js";
19
20
  import "../../../hooks/useTheme.js";
@@ -23,20 +24,20 @@ import "../../../hooks/useEmojiNative.js";
23
24
  import "../../../locale/useLocale.js";
24
25
  /* empty css */
25
26
  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";
27
+ import { getStatus as Te, getStatusTitle as xe } from "../../../functions/getStatusMessage.js";
28
+ import { getMessageClass as Ie } from "../../../functions/getMessageClass.js";
29
+ import { createReactionHandlers as pe } from "../../../functions/createReactionHandlers.js";
29
30
  import "../../../functions/parseMarkdown.js";
30
- const xe = ["messageId"], Ie = ["src"], pe = {
31
+ const Ae = ["messageId"], Ee = ["src"], Le = {
31
32
  key: 1,
32
33
  class: "file-message__subtext"
33
- }, Ae = { class: "file-message__footer" }, Ee = { class: "file-message__info-container" }, Le = {
34
+ }, Ue = { class: "file-message__footer" }, Fe = { class: "file-message__info-container" }, Ne = {
34
35
  key: 0,
35
36
  class: "file-message__time"
36
- }, Ue = ["href"], Fe = { class: "file-message__filename-text" }, Ne = {
37
+ }, Oe = ["href"], Be = { class: "file-message__filename-text" }, je = {
37
38
  key: 1,
38
39
  class: "file-message__text-container"
39
- }, Oe = ["innerHTML"], Be = { class: "file-message__footer" }, je = { class: "file-message__info-container" }, Pe = { class: "file-message__time" }, fs = /* @__PURE__ */ te({
40
+ }, He = ["innerHTML"], Pe = { class: "file-message__footer" }, Ve = { class: "file-message__info-container" }, De = { class: "file-message__time" }, hs = /* @__PURE__ */ ne({
40
41
  __name: "FileMessage",
41
42
  props: {
42
43
  message: {
@@ -81,53 +82,57 @@ const xe = ["messageId"], Ie = ["src"], pe = {
81
82
  },
82
83
  emits: ["action", "reply", "sms-invite"],
83
84
  setup(e, { emit: F }) {
84
- const a = e, h = F, { linkedHtml: N, inNewWindow: M } = he(() => a.message.text), { menuActions: b } = ve(() => a.message), O = ae("chatAppId"), { startReply: B } = Me(O || ""), {
85
- isOpenMenu: j,
85
+ const t = e, h = F, { linkedHtml: N, inNewWindow: M } = Me(() => t.message.text), { menuActions: b } = we(() => t.message), { hoverActionsEnabled: R, reactionsActive: O } = ke(
86
+ () => t.channel,
87
+ () => t.reactionsEnabled,
88
+ () => t.message
89
+ ), B = ie("chatAppId"), { startReply: j } = Ce(B || ""), {
90
+ isOpenMenu: H,
86
91
  buttonMenuVisible: P,
87
92
  menuAnchorRef: V,
88
- menuRef: H,
89
- menuStyle: D,
93
+ menuRef: D,
94
+ menuStyle: $,
90
95
  menuTheme: q,
91
- showMenu: R,
96
+ showMenu: z,
92
97
  hideMenu: S,
93
- openMenu: $,
98
+ openMenu: W,
94
99
  toggleMenu: C,
95
- onMenuMouseEnter: z,
96
- onMenuMouseLeave: W,
97
- clickAction: G,
100
+ onMenuMouseEnter: G,
101
+ onMenuMouseLeave: J,
102
+ clickAction: K,
98
103
  viewsAction: T,
99
- handleClickReplied: J
100
- } = be(a.message, h, {
101
- onReply: () => B(U(a.message, "message.file"))
102
- }), x = w(() => Re(a.message.status)), I = w(() => Se(a.message.status, a.message.statusMsg)), { bubbleStyle: K } = ke(
103
- w(() => a.message),
104
+ handleClickReplied: Q
105
+ } = he(t.message, h, {
106
+ onReply: () => j(U(t.message, "message.file"))
107
+ }), x = w(() => Te(t.message.status)), I = w(() => xe(t.message.status, t.message.statusMsg)), { bubbleStyle: X } = Re(
108
+ w(() => t.message),
104
109
  { cssVariable: "--chotto-filemessage-right-bg", position: "right" }
105
110
  );
106
111
  function k(r) {
107
- return Ce(r.position, "file-message");
112
+ return Ie(r.position, "file-message");
108
113
  }
109
- const { onToggleReaction: Q, onAddReaction: X, onRemoveReaction: Y } = Te(h), Z = async () => {
110
- if (a.message.url)
114
+ const { onToggleReaction: Y, onAddReaction: Z, onRemoveReaction: _ } = pe(h), ee = async () => {
115
+ if (t.message.url)
111
116
  try {
112
- const r = new URL(a.message.url, window.location.href);
117
+ const r = new URL(t.message.url, window.location.href);
113
118
  if (r.origin === window.location.origin) {
114
- const c = document.createElement("a");
115
- c.href = r.toString(), c.download = a.message.filename || `file-${a.message.messageId}`, document.body.appendChild(c), c.click(), document.body.removeChild(c);
119
+ const g = document.createElement("a");
120
+ g.href = r.toString(), g.download = t.message.filename || `file-${t.message.messageId}`, document.body.appendChild(g), g.click(), document.body.removeChild(g);
116
121
  return;
117
122
  }
118
- const o = await fetch(a.message.url);
123
+ const o = await fetch(t.message.url);
119
124
  if (!o.ok)
120
125
  throw new Error(`HTTP error! status: ${o.status}`);
121
- const se = await o.blob(), p = window.URL.createObjectURL(se), g = document.createElement("a");
122
- g.href = p, g.download = a.message.filename || `file-${a.message.messageId}`, document.body.appendChild(g), g.click(), document.body.removeChild(g), window.URL.revokeObjectURL(p);
126
+ const ae = await o.blob(), p = window.URL.createObjectURL(ae), c = document.createElement("a");
127
+ 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
128
  } catch (r) {
124
- console.error("Ошибка при скачивании файла:", r), window.open(a.message.url, "_blank");
129
+ console.error("Ошибка при скачивании файла:", r), window.open(t.message.url, "_blank");
125
130
  }
126
- }, _ = we(() => a.message, () => a.subtextTooltipData);
127
- function ee() {
128
- h("sms-invite", a.message);
131
+ }, se = Se(() => t.message, () => t.subtextTooltipData);
132
+ function te() {
133
+ h("sms-invite", t.message);
129
134
  }
130
- return (r, t) => (i(), m("div", {
135
+ return (r, a) => (i(), m("div", {
131
136
  ref_key: "menuAnchorRef",
132
137
  ref: V,
133
138
  class: d(["file-message", [
@@ -135,8 +140,8 @@ const xe = ["messageId"], Ie = ["src"], pe = {
135
140
  e.applyStyle(e.message)
136
141
  ]]),
137
142
  messageId: e.message.messageId,
138
- style: v(s(K)),
139
- onMouseleave: t[4] || (t[4] = //@ts-ignore
143
+ style: v(s(X)),
144
+ onMouseleave: a[4] || (a[4] = //@ts-ignore
140
145
  (...o) => s(S) && s(S)(...o))
141
146
  }, [
142
147
  e.message.avatar && e.isFirstInSeries ? (i(), m("img", {
@@ -146,15 +151,15 @@ const xe = ["messageId"], Ie = ["src"], pe = {
146
151
  height: "32",
147
152
  width: "32",
148
153
  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(_),
154
+ }, null, 12, Ee)) : l("", !0),
155
+ e.message.subText && e.isFirstInSeries ? (i(), m("p", Le, [
156
+ u(ve, {
157
+ text: s(se),
153
158
  position: e.message.position === "left" ? "right" : "left",
154
159
  offset: 8
155
160
  }, {
156
161
  default: A(() => [
157
- ne(f(e.message.subText), 1)
162
+ oe(f(e.message.subText), 1)
158
163
  ]),
159
164
  _: 1
160
165
  }, 8, ["text", "position"])
@@ -162,18 +167,17 @@ const xe = ["messageId"], Ie = ["src"], pe = {
162
167
  n("div", {
163
168
  class: d(["file-message__content", { "is-first": e.isFirstInSeries, "with-avatar-indent": !e.isFirstInSeries && e.message.avatar }]),
164
169
  style: v({ gridRow: e.message.subText ? "2" : "1" }),
165
- onMouseenter: t[3] || (t[3] = //@ts-ignore
166
- (...o) => s(R) && s(R)(...o))
170
+ onMouseenter: a[3] || (a[3] = (o) => s(R) && s(z)())
167
171
  }, [
168
- t[9] || (t[9] = n("div", {
172
+ a[9] || (a[9] = n("div", {
169
173
  class: "file-message__bottom-shadow",
170
174
  "aria-hidden": "true"
171
175
  }, null, -1)),
172
176
  e.message.deleted ? (i(), m(E, { key: 0 }, [
173
- u(fe),
174
- n("div", Ae, [
175
- n("div", Ee, [
176
- e.message.time ? (i(), m("span", Le, f(e.message.time), 1)) : l("", !0),
177
+ u(be),
178
+ n("div", Ue, [
179
+ n("div", Fe, [
180
+ e.message.time ? (i(), m("span", Ne, f(e.message.time), 1)) : l("", !0),
177
181
  u(L, {
178
182
  "base-class": "file-message",
179
183
  "message-class": k(e.message),
@@ -184,66 +188,66 @@ const xe = ["messageId"], Ie = ["src"], pe = {
184
188
  ])
185
189
  ])
186
190
  ], 64)) : (i(), m(E, { key: 1 }, [
187
- e.message.reply ? (i(), y(ge, {
191
+ e.message.reply ? (i(), y(de, {
188
192
  key: 0,
189
193
  message: e.message.reply,
190
194
  class: d(e.message.position),
191
- onReply: s(J)
195
+ onReply: s(Q)
192
196
  }, null, 8, ["message", "class", "onReply"])) : l("", !0),
193
197
  n("a", {
194
198
  class: "file-message__link",
195
199
  href: e.message.url,
196
- onClick: ie(Z, ["prevent"])
200
+ onClick: le(ee, ["prevent"])
197
201
  }, [
198
- t[5] || (t[5] = n("span", { class: "pi pi-file" }, null, -1)),
199
- n("p", Fe, f(e.message.filename), 1),
200
- t[6] || (t[6] = n("div", { class: "file-message__download-button" }, [
202
+ a[5] || (a[5] = n("span", { class: "pi pi-file" }, null, -1)),
203
+ n("p", Be, f(e.message.filename), 1),
204
+ a[6] || (a[6] = n("div", { class: "file-message__download-button" }, [
201
205
  n("span", { class: "pi pi-download" })
202
206
  ], -1))
203
- ], 8, Ue),
204
- e.message.text ? (i(), m("div", Ne, [
207
+ ], 8, Oe),
208
+ e.message.text ? (i(), m("div", je, [
205
209
  n("p", {
206
- onClick: t[0] || (t[0] = //@ts-ignore
210
+ onClick: a[0] || (a[0] = //@ts-ignore
207
211
  (...o) => s(M) && s(M)(...o)),
208
212
  innerHTML: s(N)
209
- }, null, 8, Oe)
213
+ }, null, 8, He)
210
214
  ])) : l("", !0),
211
- e.message.linkPreview ? (i(), y(re, {
215
+ e.message.linkPreview ? (i(), y(ce, {
212
216
  key: 2,
213
217
  class: d(e.message.position),
214
218
  "link-preview": e.message.linkPreview
215
219
  }, null, 8, ["class", "link-preview"])) : l("", !0),
216
- e.message.embed ? (i(), y(ue, {
220
+ e.message.embed ? (i(), y(ge, {
217
221
  key: 3,
218
222
  class: d(e.message.position),
219
223
  embed: e.message.embed
220
224
  }, null, 8, ["class", "embed"])) : l("", !0),
221
- n("div", Be, [
222
- u(ce, {
225
+ n("div", Pe, [
226
+ u(fe, {
223
227
  reactions: e.message.reactions,
224
228
  "message-id": e.message.messageId,
225
229
  reply: s(U)(e.message, "message.file"),
226
- enabled: e.reactionsEnabled,
230
+ enabled: s(O),
227
231
  mode: e.reactionsMode,
228
232
  "current-user-id": e.currentUserId,
229
233
  "reaction-user-names": e.reactionUserNames,
230
234
  "menu-enabled": s(b).length > 0,
231
- onToggleReaction: s(Q),
232
- onAddReaction: s(X),
233
- onRemoveReaction: s(Y),
234
- onMenu: s($)
235
+ onToggleReaction: s(Y),
236
+ onAddReaction: s(Z),
237
+ onRemoveReaction: s(_),
238
+ onMenu: s(W)
235
239
  }, null, 8, ["reactions", "message-id", "reply", "enabled", "mode", "current-user-id", "reaction-user-names", "menu-enabled", "onToggleReaction", "onAddReaction", "onRemoveReaction", "onMenu"]),
236
- n("div", je, [
240
+ n("div", Ve, [
237
241
  e.message.views ? (i(), m("div", {
238
242
  key: 0,
239
243
  class: "file-message__views",
240
- onClick: t[1] || (t[1] = //@ts-ignore
244
+ onClick: a[1] || (a[1] = //@ts-ignore
241
245
  (...o) => s(T) && s(T)(...o))
242
246
  }, [
243
- t[7] || (t[7] = n("span", { class: "pi pi-eye" }, null, -1)),
247
+ a[7] || (a[7] = n("span", { class: "pi pi-eye" }, null, -1)),
244
248
  n("p", null, f(e.message.views), 1)
245
249
  ])) : l("", !0),
246
- n("span", Pe, f(e.message.time), 1),
250
+ n("span", De, f(e.message.time), 1),
247
251
  u(L, {
248
252
  "base-class": "file-message",
249
253
  "message-class": k(e.message),
@@ -253,34 +257,34 @@ const xe = ["messageId"], Ie = ["src"], pe = {
253
257
  }, null, 8, ["message-class", "message-status", "status-class", "status-title"])
254
258
  ])
255
259
  ]),
256
- u(de, {
260
+ u(ye, {
257
261
  status: e.message.status,
258
262
  "has-messenger-account": e.message.hasMessengerAccount,
259
263
  channel: e.channel,
260
- onSmsInvite: ee
264
+ onSmsInvite: te
261
265
  }, null, 8, ["status", "has-messenger-account", "channel"]),
262
- s(P) && s(b).length && !e.reactionsEnabled ? (i(), m("button", {
266
+ s(P) && s(b).length && !e.reactionsEnabled && s(R) ? (i(), m("button", {
263
267
  key: 4,
264
268
  class: "file-message__menu-button",
265
- onClick: t[2] || (t[2] = //@ts-ignore
269
+ onClick: a[2] || (a[2] = //@ts-ignore
266
270
  (...o) => s(C) && s(C)(...o))
267
- }, [...t[8] || (t[8] = [
271
+ }, [...a[8] || (a[8] = [
268
272
  n("span", { class: "pi pi-ellipsis-h" }, null, -1)
269
273
  ])])) : l("", !0),
270
- (i(), y(oe, { to: "body" }, [
271
- u(le, null, {
274
+ (i(), y(me, { to: "body" }, [
275
+ u(re, null, {
272
276
  default: A(() => [
273
- s(j) && s(b).length ? (i(), y(me, {
277
+ s(H) && s(b).length ? (i(), y(ue, {
274
278
  key: 0,
275
279
  ref_key: "menuRef",
276
- ref: H,
280
+ ref: D,
277
281
  class: "file-message__context-menu message-actions-menu",
278
- style: v(s(D)),
282
+ style: v(s($)),
279
283
  "data-theme": s(q),
280
284
  actions: s(b),
281
- onClick: s(G),
282
- onMouseenter: s(z),
283
- onMouseleave: s(W)
285
+ onClick: s(K),
286
+ onMouseenter: s(G),
287
+ onMouseleave: s(J)
284
288
  }, null, 8, ["style", "data-theme", "actions", "onClick", "onMouseenter", "onMouseleave"])) : l("", !0)
285
289
  ]),
286
290
  _: 1
@@ -288,9 +292,9 @@ const xe = ["messageId"], Ie = ["src"], pe = {
288
292
  ]))
289
293
  ], 64))
290
294
  ], 38)
291
- ], 46, xe));
295
+ ], 46, Ae));
292
296
  }
293
297
  });
294
298
  export {
295
- fs as default
299
+ hs as default
296
300
  };
@@ -1,7 +1,7 @@
1
- import a from "./ImageMessage.vue2.js";
1
+ import o from "./ImageMessage.vue2.js";
2
2
  /* empty css */
3
- import o from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const r = /* @__PURE__ */ o(a, [["__scopeId", "data-v-7b3f2aad"]]);
3
+ import a from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const r = /* @__PURE__ */ a(o, [["__scopeId", "data-v-203a151d"]]);
5
5
  export {
6
6
  r as default
7
7
  };