@mobilon-dev/chotto 0.3.84 → 0.3.85

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 (126) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/1_atoms/ButtonContextMenu/ButtonContextMenu.vue2.js +3 -2
  3. package/dist/components/1_atoms/ContactContextMenu/ContactContextMenu.vue2.js +3 -2
  4. package/dist/components/1_atoms/EmojiGlyph/EmojiGlyph.vue.js +38 -0
  5. package/dist/components/1_atoms/EmojiGlyph/EmojiGlyph.vue2.js +4 -0
  6. package/dist/components/1_atoms/Tooltip/Tooltip.vue.js +1 -1
  7. package/dist/components/1_atoms/Tooltip/Tooltip.vue2.js +49 -36
  8. package/dist/components/1_icons/CloseIcon.vue.js +21 -0
  9. package/dist/components/2_blocks/FeedSearch/FeedSearch.vue2.js +10 -9
  10. package/dist/components/2_chatinput_elements/ButtonCommandsSelector/ButtonCommandsSelector.vue2.js +8 -7
  11. package/dist/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue.js +2 -2
  12. package/dist/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue2.js +48 -37
  13. package/dist/components/2_chatinput_elements/ButtonTemplateSelector/ButtonTemplateSelector.vue2.js +3 -2
  14. package/dist/components/2_chatinput_elements/ButtonWabaTemplateSelector/ButtonWabaTemplateSelector.vue.js +7 -6
  15. package/dist/components/2_chatinput_elements/FilePreview/FilePreview.vue2.js +3 -2
  16. package/dist/components/2_chatinput_elements/FileUploader/FileUploader.vue2.js +3 -2
  17. package/dist/components/2_chatinput_elements/StickerPicker/StickerPicker.vue2.js +3 -2
  18. package/dist/components/2_chatinput_elements/TemplateSelector/TemplateSelector.vue.js +27 -26
  19. package/dist/components/2_chatinput_elements/TextFormatToolbar/TextFormatToolbar.vue2.js +3 -2
  20. package/dist/components/2_chatinput_elements/WABAAttachmentSection/WABAAttachmentSection.vue2.js +3 -2
  21. package/dist/components/2_chatlist_elements/ChatItem/ChatItem.vue2.js +3 -2
  22. package/dist/components/2_elements/AudioRecorder/AudioRecorder.vue2.js +3 -2
  23. package/dist/components/2_elements/ChannelSelector/ChannelSelector.vue.js +6 -5
  24. package/dist/components/2_elements/ThemeMode/ThemeMode.vue.js +10 -9
  25. package/dist/components/2_elements/VideoRecorder/VideoRecorder.vue2.js +3 -2
  26. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +1 -1
  27. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +169 -143
  28. package/dist/components/2_feed_elements/BaseReplyMessage/BaseReplyMessage.vue.js +4 -4
  29. package/dist/components/2_feed_elements/BaseReplyMessage/BaseReplyMessage.vue2.js +33 -32
  30. package/dist/components/2_feed_elements/CallMessage/CallMessage.vue2.js +8 -2
  31. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +3 -3
  32. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +134 -108
  33. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +1 -1
  34. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +116 -97
  35. package/dist/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue2.js +3 -2
  36. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue.js +2 -2
  37. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue2.js +232 -113
  38. package/dist/components/2_feed_elements/MessageReactions/composables/usePositioning.js +77 -62
  39. package/dist/components/2_feed_elements/MessageReactions/composables/useReactions.js +62 -20
  40. package/dist/components/2_feed_elements/MessageReactions/composables/useReactionsPanel.js +91 -69
  41. package/dist/components/2_feed_elements/MessageReactions/composables/useReactionsState.js +46 -22
  42. package/dist/components/2_feed_elements/MessageReactions/icons/ExpandReactionsIcon.vue.js +21 -0
  43. package/dist/components/2_feed_elements/MessageReactions/icons/ReplyIcon.vue.js +21 -0
  44. package/dist/components/2_feed_elements/MessageReactions/utils/quickReactions.js +2 -8
  45. package/dist/components/2_feed_elements/MessageReactions/utils/reactionTooltip.js +39 -0
  46. package/dist/components/2_feed_elements/MissedCallMessage/MissedCallMessage.vue2.js +26 -20
  47. package/dist/components/2_feed_elements/ReplyAudioMessage/ReplyAudioMessage.vue.js +2 -2
  48. package/dist/components/2_feed_elements/ReplyAudioMessage/ReplyAudioMessage.vue2.js +27 -18
  49. package/dist/components/2_feed_elements/ReplyCallMessage/ReplyCallMessage.vue.js +2 -2
  50. package/dist/components/2_feed_elements/ReplyCallMessage/ReplyCallMessage.vue2.js +16 -15
  51. package/dist/components/2_feed_elements/ReplyFileMessage/ReplyFileMessage.vue.js +3 -3
  52. package/dist/components/2_feed_elements/ReplyFileMessage/ReplyFileMessage.vue2.js +27 -18
  53. package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue.js +1 -1
  54. package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue2.js +16 -12
  55. package/dist/components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue.js +4 -4
  56. package/dist/components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue2.js +74 -65
  57. package/dist/components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue.js +1 -1
  58. package/dist/components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue2.js +20 -11
  59. package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue.js +2 -2
  60. package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue2.js +13 -9
  61. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +4 -4
  62. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +74 -55
  63. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +4 -4
  64. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +102 -76
  65. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +2 -2
  66. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +74 -55
  67. package/dist/components/3_compounds/ChatInput/ChatInput.vue.js +2 -2
  68. package/dist/components/3_compounds/ChatInput/ChatInput.vue2.js +99 -82
  69. package/dist/components/3_compounds/Feed/Feed.vue.js +3 -3
  70. package/dist/components/3_compounds/Feed/Feed.vue2.js +159 -139
  71. package/dist/components/3_compounds/Feed/composables/useFeedReply.js +22 -25
  72. package/dist/functions/renderAppleEmojis.js +92 -0
  73. package/dist/hooks/messages/buildReplyPayload.js +14 -0
  74. package/dist/hooks/messages/useMessageLinks.js +60 -50
  75. package/dist/hooks/messages/useStartReply.js +29 -0
  76. package/dist/hooks/useEmojiNative.js +19 -0
  77. package/dist/index.js +130 -122
  78. package/dist/themes/dark.css +1 -1
  79. package/dist/themes/default.css +1 -1
  80. package/dist/themes/glass.css +1 -1
  81. package/dist/themes/green.css +1 -1
  82. package/dist/themes/mobilon1.css +1 -1
  83. package/dist/types/apps/data/messages.d.ts +20 -18
  84. package/dist/types/components/1_atoms/EmojiGlyph/EmojiGlyph.vue.d.ts +12 -0
  85. package/dist/types/components/1_atoms/Tooltip/stories/Tooltip.stories.d.ts +3 -0
  86. package/dist/types/components/1_icons/CloseIcon.vue.d.ts +2 -0
  87. package/dist/types/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue.d.ts +9 -1
  88. package/dist/types/components/2_feed_elements/AudioMessage/AudioMessage.vue.d.ts +29 -0
  89. package/dist/types/components/2_feed_elements/AudioMessage/styles/types.d.ts +24 -16
  90. package/dist/types/components/2_feed_elements/BaseReplyMessage/styles/types.d.ts +8 -4
  91. package/dist/types/components/2_feed_elements/FileMessage/FileMessage.vue.d.ts +29 -0
  92. package/dist/types/components/2_feed_elements/FileMessage/styles/types.d.ts +20 -0
  93. package/dist/types/components/2_feed_elements/ImageMessage/ImageMessage.vue.d.ts +29 -0
  94. package/dist/types/components/2_feed_elements/ImageMessage/styles/types.d.ts +2 -0
  95. package/dist/types/components/2_feed_elements/MessageReactions/MessageReactions.vue.d.ts +64 -1
  96. package/dist/types/components/2_feed_elements/MessageReactions/composables/index.d.ts +2 -2
  97. package/dist/types/components/2_feed_elements/MessageReactions/composables/usePositioning.d.ts +11 -1
  98. package/dist/types/components/2_feed_elements/MessageReactions/composables/useReactions.d.ts +20 -12
  99. package/dist/types/components/2_feed_elements/MessageReactions/composables/useReactionsPanel.d.ts +3 -3
  100. package/dist/types/components/2_feed_elements/MessageReactions/composables/useReactionsState.d.ts +13 -22
  101. package/dist/types/components/2_feed_elements/MessageReactions/icons/ExpandReactionsIcon.vue.d.ts +2 -0
  102. package/dist/types/components/2_feed_elements/MessageReactions/icons/ReplyIcon.vue.d.ts +2 -0
  103. package/dist/types/components/2_feed_elements/MessageReactions/styles/types.d.ts +14 -74
  104. package/dist/types/components/2_feed_elements/MessageReactions/utils/quickReactions.d.ts +1 -1
  105. package/dist/types/components/2_feed_elements/MessageReactions/utils/reactionTooltip.d.ts +14 -0
  106. package/dist/types/components/2_feed_elements/ReplyAudioMessage/styles/types.d.ts +6 -0
  107. package/dist/types/components/2_feed_elements/ReplyCallMessage/styles/types.d.ts +6 -0
  108. package/dist/types/components/2_feed_elements/ReplyFileMessage/styles/types.d.ts +6 -0
  109. package/dist/types/components/2_feed_elements/ReplyImageMessage/styles/types.d.ts +6 -0
  110. package/dist/types/components/2_feed_elements/ReplyStickerMessage/styles/types.d.ts +6 -0
  111. package/dist/types/components/2_feed_elements/ReplyTextMessage/styles/types.d.ts +4 -0
  112. package/dist/types/components/2_feed_elements/ReplyVideoMessage/styles/types.d.ts +6 -0
  113. package/dist/types/components/2_feed_elements/StickerMessage/StickerMessage.vue.d.ts +29 -0
  114. package/dist/types/components/2_feed_elements/TextMessage/TextMessage.vue.d.ts +29 -0
  115. package/dist/types/components/2_feed_elements/TextMessage/styles/types.d.ts +22 -0
  116. package/dist/types/components/2_feed_elements/VideoMessage/VideoMessage.vue.d.ts +29 -0
  117. package/dist/types/components/2_feed_elements/types/messages.d.ts +11 -6
  118. package/dist/types/components/3_compounds/ChatInput/styles/types.d.ts +2 -0
  119. package/dist/types/components/3_compounds/Feed/Feed.vue.d.ts +33 -0
  120. package/dist/types/functions/renderAppleEmojis.d.ts +16 -0
  121. package/dist/types/hooks/index.d.ts +1 -0
  122. package/dist/types/hooks/messages/buildReplyPayload.d.ts +11 -0
  123. package/dist/types/hooks/messages/index.d.ts +2 -0
  124. package/dist/types/hooks/messages/useStartReply.d.ts +6 -0
  125. package/dist/types/hooks/useEmojiNative.d.ts +9 -0
  126. package/package.json +1 -1
@@ -1,90 +1,112 @@
1
- import { ref as n, watch as p, nextTick as f } from "vue";
2
- import { calculatePanelPosition as z, calculateFixedPanelPosition as M } from "./usePositioning.js";
3
- function j(y, i) {
4
- const t = n(!1), l = n(!1), e = n(null), s = n(null), h = n({}), v = n({});
5
- let r = !1, P = !1, c = !1;
6
- p(t, async (u) => {
7
- if (u) {
8
- const a = y.value.length * 40 + 40, k = await z(s.value, i.value, a);
9
- h.value = k;
1
+ import { ref as f, watch as W, nextTick as M } from "vue";
2
+ import { calculatePanelPosition as j, calculatePickerPositionAboveQuickPanel as B, calculateFixedPanelPosition as D } from "./usePositioning.js";
3
+ function J(g, P) {
4
+ const a = f(!1), l = f(!1), o = f(null), n = f(null), O = f({}), T = f({});
5
+ let Q = !1, m = !1, k = !1, d = null, w = null;
6
+ W(a, async (v) => {
7
+ var i, c;
8
+ if (v) {
9
+ await M();
10
+ let e = 0;
11
+ for (; !n.value && e < 20; )
12
+ await new Promise((t) => setTimeout(t, 10)), e++;
13
+ for (e = 0; ((i = n.value) == null ? void 0 : i.offsetWidth) === 0 && e < 10; )
14
+ await new Promise((t) => setTimeout(t, 10)), e++;
15
+ const r = ((c = n.value) == null ? void 0 : c.offsetWidth) || g.value.length * 40 + 40, s = await j(n.value, P.value, r);
16
+ O.value = s;
10
17
  }
11
- }), p(l, async (u) => {
12
- if (u) {
13
- await f();
14
- let a = 0;
15
- const k = 20;
16
- for (; !e.value && a < k; )
17
- await new Promise((o) => setTimeout(o, 10)), a++;
18
- await f();
19
- const w = 350;
20
- let m = await M(e.value, i.value, w);
21
- if (v.value = m, e.value) {
22
- let o = 0;
23
- const S = 10;
24
- for (; e.value.offsetWidth === 0 && o < S; )
25
- await new Promise((q) => setTimeout(q, 10)), o++;
26
- await f(), m = await M(e.value, i.value, e.value.offsetWidth || w), v.value = m;
18
+ }), W(l, async (v) => {
19
+ if (v) {
20
+ await M();
21
+ let i = 0;
22
+ const c = 20;
23
+ for (; !o.value && i < c; )
24
+ await new Promise((t) => setTimeout(t, 10)), i++;
25
+ await M();
26
+ const e = 350, r = () => n.value && a.value ? B(
27
+ o.value,
28
+ n.value,
29
+ P.value,
30
+ e
31
+ ) : D(o.value, P.value, e);
32
+ let s = await r();
33
+ if (T.value = s, o.value) {
34
+ let t = 0;
35
+ const p = 10;
36
+ for (; o.value.offsetWidth === 0 && t < p; )
37
+ await new Promise((b) => setTimeout(b, 10)), t++;
38
+ await M(), s = await r(), T.value = s;
27
39
  }
28
40
  }
29
41
  });
30
- function O() {
31
- t.value = !0, l.value = !1;
42
+ function h() {
43
+ d && (clearTimeout(d), d = null);
32
44
  }
33
- function Q() {
34
- t.value = !1;
45
+ function u() {
46
+ w && (clearTimeout(w), w = null);
35
47
  }
36
- async function x() {
37
- t.value = !1, await f(), l.value = !0;
48
+ function y() {
49
+ u(), w = setTimeout(() => {
50
+ !k && !m && !Q && (a.value = !1, l.value = !1);
51
+ }, 150);
38
52
  }
39
- function T() {
40
- l.value = !1;
53
+ function x() {
54
+ u(), a.value = !0;
41
55
  }
42
- function F() {
43
- P = !0;
56
+ function A() {
57
+ h(), u(), a.value = !1;
44
58
  }
45
- function W() {
46
- P = !1, setTimeout(() => {
47
- !c && !P && (t.value = !1);
48
- }, 150);
59
+ async function F() {
60
+ h(), u(), m = !0, l.value = !0;
49
61
  }
50
- function d() {
51
- r = !0;
62
+ function C() {
63
+ u(), l.value = !1;
52
64
  }
53
- function g() {
54
- r = !1, setTimeout(() => {
55
- !c && !r && (l.value = !1);
56
- }, 150);
65
+ function E() {
66
+ m = !0, u();
57
67
  }
58
- function A() {
59
- c = !0;
68
+ function I() {
69
+ m = !1, y();
60
70
  }
61
- function E() {
62
- c = !1;
71
+ function L() {
72
+ Q = !0, u();
73
+ }
74
+ function S() {
75
+ Q = !1, y();
76
+ }
77
+ function q() {
78
+ k = !0, u(), h(), !(a.value || l.value) && (d = setTimeout(() => {
79
+ k && x();
80
+ }, 1e3));
81
+ }
82
+ function z() {
83
+ k = !1, h(), y();
63
84
  }
64
- function L(u) {
65
- const a = u.target;
66
- t.value && s.value && i.value && !s.value.contains(a) && !i.value.contains(a) && (t.value = !1), l.value && e.value && i.value && !e.value.contains(a) && !i.value.contains(a) && (l.value = !1);
85
+ function R(v) {
86
+ var s, t, p;
87
+ const i = v.target, c = (s = n.value) == null ? void 0 : s.contains(i), e = (t = o.value) == null ? void 0 : t.contains(i), r = (p = P.value) == null ? void 0 : p.contains(i);
88
+ a.value && !c && !r && !e && (a.value = !1, l.value = !1), l.value && !e && !c && !r && (l.value = !1);
67
89
  }
68
90
  return {
69
- isQuickReactionsOpen: t,
91
+ isQuickReactionsOpen: a,
70
92
  isFullPickerOpen: l,
71
- pickerRef: e,
72
- quickReactionsRef: s,
73
- quickPanelStyle: h,
74
- pickerStyle: v,
75
- openQuickPanel: O,
76
- closeQuickPanel: Q,
77
- openFullPicker: x,
78
- closeFullPicker: T,
79
- handleQuickPanelMouseEnter: F,
80
- handleQuickPanelMouseLeave: W,
81
- handlePickerMouseEnter: d,
82
- handlePickerMouseLeave: g,
83
- handleButtonMouseEnter: A,
84
- handleButtonMouseLeave: E,
85
- handleClickOutside: L
93
+ pickerRef: o,
94
+ quickReactionsRef: n,
95
+ quickPanelStyle: O,
96
+ pickerStyle: T,
97
+ openQuickPanel: x,
98
+ closeQuickPanel: A,
99
+ openFullPicker: F,
100
+ closeFullPicker: C,
101
+ handleMessageMouseEnter: q,
102
+ handleMessageMouseLeave: z,
103
+ handleQuickPanelMouseEnter: E,
104
+ handleQuickPanelMouseLeave: I,
105
+ handlePickerMouseEnter: L,
106
+ handlePickerMouseLeave: S,
107
+ handleClickOutside: R
86
108
  };
87
109
  }
88
110
  export {
89
- j as useReactionsPanel
111
+ J as useReactionsPanel
90
112
  };
@@ -1,32 +1,56 @@
1
- import { ref as d, watch as s, computed as n } from "vue";
2
- import { updateLocalReactionsToggle as m, updateLocalReactionsRemove as f, updateLocalReactionsAdd as p } from "./useReactions.js";
3
- function g(o) {
4
- const t = d(o.value);
5
- s(o, (e) => {
6
- t.value = e ? { ...e } : void 0;
1
+ import { ref as h, watch as L, computed as l } from "vue";
2
+ import { aggregateReactions as M, getMyReactionKey as K, hasMyReaction as q, updateLocalReactionsToggle as w, updateLocalReactionsRemove as x, updateLocalReactionsReplace as A, updateLocalReactionsAdd as I } from "./useReactions.js";
3
+ function R(o) {
4
+ if (o)
5
+ return {
6
+ ...o,
7
+ items: o.items.map((a) => ({ ...a })),
8
+ meta: o.meta ? { ...o.meta } : void 0
9
+ };
10
+ }
11
+ function b(o, a, u, i) {
12
+ const n = h(R(o.value));
13
+ L(o, (t) => {
14
+ n.value = R(t);
7
15
  }, { deep: !0, immediate: !0 });
8
- const a = n(() => {
16
+ const s = l(() => M(n.value, u.value)), d = l(() => s.value.length > 0), f = l(() => K(n, u.value));
17
+ function v() {
9
18
  var e;
10
- return (e = t.value) != null && e.items ? t.value.items.filter((l) => l.count > 0) : [];
11
- }), c = n(() => a.value.length > 0);
12
- function u(e) {
13
- p(t, e);
19
+ return ((e = i == null ? void 0 : i.value) == null ? void 0 : e.trim()) || void 0;
20
+ }
21
+ function c() {
22
+ return u.value;
23
+ }
24
+ function m(t) {
25
+ const e = c();
26
+ if (e == null) return;
27
+ const r = v();
28
+ if (a.value === "single")
29
+ return A(n, t, e, r);
30
+ I(n, t, e, a.value, r);
31
+ }
32
+ function p(t) {
33
+ const e = c();
34
+ e != null && x(n, t, e);
14
35
  }
15
- function i(e) {
16
- f(t, e);
36
+ function g(t) {
37
+ const e = c();
38
+ e != null && w(n, t, e, a.value, v());
17
39
  }
18
- function r(e) {
19
- m(t, e);
40
+ function y(t) {
41
+ return q(n, t, u.value);
20
42
  }
21
43
  return {
22
- localReactions: t,
23
- displayedReactions: a,
24
- hasReactions: c,
25
- addReaction: u,
26
- removeReaction: i,
27
- toggleReaction: r
44
+ localReactions: n,
45
+ displayedReactions: s,
46
+ hasReactions: d,
47
+ myReactionKey: f,
48
+ addReaction: m,
49
+ removeReaction: p,
50
+ toggleReaction: g,
51
+ isMyReaction: y
28
52
  };
29
53
  }
30
54
  export {
31
- g as useReactionsState
55
+ b as useReactionsState
32
56
  };
@@ -0,0 +1,21 @@
1
+ import { createElementBlock as t, openBlock as o, createElementVNode as C } from "vue";
2
+ import n from "../../../../_virtual/_plugin-vue_export-helper.js";
3
+ const r = {}, c = {
4
+ width: "22",
5
+ height: "21",
6
+ viewBox: "0 0 22 21",
7
+ fill: "none",
8
+ xmlns: "http://www.w3.org/2000/svg"
9
+ };
10
+ function l(s, e) {
11
+ return o(), t("svg", c, [...e[0] || (e[0] = [
12
+ C("path", {
13
+ d: "M5 8.5C5 7.67 5.67 7 6.5 7C7.33 7 8 7.67 8 8.5C8 9.33 7.33 10 6.5 10C5.67 10 5 9.33 5 8.5ZM10 16.5C12.33 16.5 14.31 15.04 15.11 13H4.89C5.69 15.04 7.67 16.5 10 16.5ZM13.5 10C14.33 10 15 9.33 15 8.5C15 7.67 14.33 7 13.5 7C12.67 7 12 7.67 12 8.5C12 9.33 12.67 10 13.5 10ZM20 0H18V2H16V4H18V6H20V4H22V2H20V0ZM18 11C18 15.42 14.42 19 10 19C5.58 19 2 15.42 2 11C2 6.58 5.58 3 10 3C11.46 3 12.82 3.4 14 4.08V1.84C12.77 1.3 11.42 1 9.99 1C4.47 1 0 5.48 0 11C0 16.52 4.47 21 9.99 21C15.52 21 20 16.52 20 11C20 9.95 19.83 8.95 19.53 8H17.4C17.78 8.93 18 9.94 18 11Z",
14
+ fill: "#5F5F5F"
15
+ }, null, -1)
16
+ ])]);
17
+ }
18
+ const d = /* @__PURE__ */ n(r, [["render", l]]);
19
+ export {
20
+ d as default
21
+ };
@@ -0,0 +1,21 @@
1
+ import { createElementBlock as t, openBlock as o, createElementVNode as n } from "vue";
2
+ import r from "../../../../_virtual/_plugin-vue_export-helper.js";
3
+ const l = {}, c = {
4
+ width: "20",
5
+ height: "15",
6
+ viewBox: "0 0 20 15",
7
+ fill: "none",
8
+ xmlns: "http://www.w3.org/2000/svg"
9
+ };
10
+ function s(C, e) {
11
+ return o(), t("svg", c, [...e[0] || (e[0] = [
12
+ n("path", {
13
+ d: "M7.38182 11.8483L0.52982 6.92826C0.368428 6.83289 0.234682 6.6971 0.141773 6.53428C0.048864 6.37145 0 6.18723 0 5.99976C0 5.8123 0.048864 5.62807 0.141773 5.46525C0.234682 5.30242 0.368428 5.16663 0.52982 5.07126L7.38182 0.148261C7.54516 0.0521888 7.73101 0.00104323 7.9205 1.5791e-05C8.10999 -0.00101165 8.29639 0.0481155 8.46076 0.142411C8.62513 0.236707 8.76162 0.372813 8.85638 0.536913C8.95115 0.701013 9.00081 0.887265 9.00032 1.07676V2.99826C11.2503 2.99826 18.0003 2.99826 19.5003 14.9983C15.7503 8.24826 9.00032 8.99826 9.00032 8.99826V10.9198C9.00032 11.7598 8.09132 12.2668 7.38182 11.8498V11.8483Z",
14
+ fill: "#5F5F5F"
15
+ }, null, -1)
16
+ ])]);
17
+ }
18
+ const m = /* @__PURE__ */ r(l, [["render", s]]);
19
+ export {
20
+ m as default
21
+ };
@@ -3,14 +3,8 @@ const I = [
3
3
  // thumbs up
4
4
  "❤️",
5
5
  // heart
6
- "🔥",
7
- // fire
8
- "😂",
9
- // laughing
10
- "😮",
11
- // surprised
12
- "😢"
13
- // sad
6
+ "🤝"
7
+ // handshake
14
8
  ];
15
9
  export {
16
10
  I as QUICK_REACTION_EMOJIS
@@ -0,0 +1,39 @@
1
+ function c(t) {
2
+ if (!(t == null || !Number.isFinite(t)))
3
+ return t > 1e12 ? t : t * 1e3;
4
+ }
5
+ function l(t) {
6
+ const e = c(t);
7
+ if (e == null) return "";
8
+ const n = new Date(e);
9
+ if (Number.isNaN(n.getTime())) return "";
10
+ const r = (f) => String(f).padStart(2, "0"), o = r(n.getDate()), i = r(n.getMonth() + 1), u = String(n.getFullYear()).slice(-2), s = r(n.getHours()), a = r(n.getMinutes());
11
+ return `${o}.${i}.${u} ${s}:${a}`;
12
+ }
13
+ function m(t, e) {
14
+ var o, i;
15
+ const n = (o = t.name) == null ? void 0 : o.trim();
16
+ if (n) return n;
17
+ const r = (i = e == null ? void 0 : e[String(t.userId)]) == null ? void 0 : i.trim();
18
+ return r || String(t.userId);
19
+ }
20
+ function g(t) {
21
+ return [...t].sort((e, n) => {
22
+ const r = c(e.date) ?? 0, o = c(n.date) ?? 0;
23
+ return r - o;
24
+ });
25
+ }
26
+ function d(t, e) {
27
+ return g(t).map((n) => {
28
+ const r = m(n, e), o = l(n.date);
29
+ return o ? `${r}, ${o}` : r;
30
+ }).filter(Boolean).join(`
31
+ `);
32
+ }
33
+ export {
34
+ d as buildReactionTooltipText,
35
+ l as formatReactionDate,
36
+ c as normalizeReactionTimestamp,
37
+ m as resolveReactionUserName,
38
+ g as sortReactionEvents
39
+ };
@@ -1,17 +1,23 @@
1
- import { defineComponent as T, createElementBlock as o, openBlock as i, unref as t, normalizeClass as f, createCommentVNode as n, createElementVNode as a, normalizeStyle as _, createVNode as r, withCtx as p, createTextVNode as h, toDisplayString as x, Transition as w, createBlock as S } from "vue";
1
+ import { defineComponent as T, createElementBlock as l, openBlock as i, unref as t, normalizeClass as p, createCommentVNode as m, createElementVNode as a, normalizeStyle as _, createVNode as r, withCtx as f, createTextVNode as h, toDisplayString as x, Transition as w, createBlock as S } from "vue";
2
2
  import { useMessageActions as V } from "../../../hooks/messages/useMessageActions.js";
3
3
  import "../../../node_modules/linkifyjs/dist/linkify.js";
4
4
  import "../../../node_modules/linkify-string/dist/linkify-string.js";
5
5
  import "../../../functions/parseMarkdown.js";
6
+ import "../../../hooks/useEmojiNative.js";
6
7
  import { getMessageClass as I } from "../../../functions/getMessageClass.js";
7
8
  import { useSubtextTooltip as N } from "../../../hooks/messages/useSubtextTooltip.js";
9
+ import "../../../hooks/useMessageDraft.js";
10
+ import "../../../hooks/useSearchModel.js";
11
+ import "../../../hooks/useTheme.js";
12
+ /* empty css */
13
+ /* empty css */
8
14
  import B from "../../1_atoms/ContextMenu/ContextMenu.vue.js";
9
15
  import D from "../../1_atoms/Tooltip/Tooltip.vue.js";
10
16
  import O from "./icons/MissedCallIcon.vue.js";
11
17
  const j = ["messageId"], q = ["src"], z = {
12
18
  key: 1,
13
19
  class: "missed-call-message__subtext"
14
- }, A = { class: "missed-call-message__main-content" }, E = { class: "missed-call-message__icon-wrapper" }, F = { class: "missed-call-message__info-container" }, R = { class: "missed-call-message__time" }, X = /* @__PURE__ */ T({
20
+ }, A = { class: "missed-call-message__main-content" }, E = { class: "missed-call-message__icon-wrapper" }, F = { class: "missed-call-message__info-container" }, R = { class: "missed-call-message__time" }, ae = /* @__PURE__ */ T({
15
21
  __name: "MissedCallMessage",
16
22
  props: {
17
23
  message: {
@@ -30,49 +36,49 @@ const j = ["messageId"], q = ["src"], z = {
30
36
  },
31
37
  emits: ["action", "reply"],
32
38
  setup(e, { emit: y }) {
33
- const b = y, m = e, {
39
+ const b = y, n = e, {
34
40
  isOpenMenu: c,
35
41
  buttonMenuVisible: C,
36
42
  showMenu: u,
37
43
  hideMenu: d,
38
44
  clickAction: M
39
- } = V(m.message, b), k = N(() => m.message, () => m.subtextTooltipData);
45
+ } = V(n.message, b), k = N(() => n.message, () => n.subtextTooltipData);
40
46
  function v(g) {
41
47
  return I(g.position, "missed-call-message");
42
48
  }
43
- return (g, s) => (i(), o("div", {
44
- class: f([
49
+ return (g, s) => (i(), l("div", {
50
+ class: p([
45
51
  v(e.message),
46
52
  e.applyStyle(e.message)
47
53
  ]),
48
54
  messageId: e.message.messageId,
49
55
  onMouseenter: s[1] || (s[1] = //@ts-ignore
50
- (...l) => t(u) && t(u)(...l)),
56
+ (...o) => t(u) && t(u)(...o)),
51
57
  onMouseleave: s[2] || (s[2] = //@ts-ignore
52
- (...l) => t(d) && t(d)(...l))
58
+ (...o) => t(d) && t(d)(...o))
53
59
  }, [
54
- e.message.avatar ? (i(), o("img", {
60
+ e.message.avatar ? (i(), l("img", {
55
61
  key: 0,
56
62
  class: "missed-call-message__avatar",
57
63
  src: e.message.avatar,
58
64
  height: "32",
59
65
  width: "32",
60
66
  style: _({ gridRow: e.message.subText ? "2" : "1" })
61
- }, null, 12, q)) : n("", !0),
62
- e.message.subText ? (i(), o("p", z, [
67
+ }, null, 12, q)) : m("", !0),
68
+ e.message.subText ? (i(), l("p", z, [
63
69
  r(D, {
64
70
  text: t(k),
65
71
  position: "right",
66
72
  offset: 8
67
73
  }, {
68
- default: p(() => [
74
+ default: f(() => [
69
75
  h(x(e.message.subText), 1)
70
76
  ]),
71
77
  _: 1
72
78
  }, 8, ["text"])
73
- ])) : n("", !0),
79
+ ])) : m("", !0),
74
80
  a("div", {
75
- class: f(["missed-call-message__content", { "is-first": !0 }])
81
+ class: p(["missed-call-message__content", { "is-first": !0 }])
76
82
  }, [
77
83
  a("div", A, [
78
84
  a("div", E, [
@@ -83,21 +89,21 @@ const j = ["messageId"], q = ["src"], z = {
83
89
  a("div", F, [
84
90
  a("span", R, x(e.message.time), 1)
85
91
  ]),
86
- t(C) && e.message.actions ? (i(), o("button", {
92
+ t(C) && e.message.actions ? (i(), l("button", {
87
93
  key: 0,
88
94
  class: "missed-call-message__menu-button",
89
- onClick: s[0] || (s[0] = (l) => c.value = !t(c))
95
+ onClick: s[0] || (s[0] = (o) => c.value = !t(c))
90
96
  }, [...s[4] || (s[4] = [
91
97
  a("span", { class: "pi pi-ellipsis-h" }, null, -1)
92
- ])])) : n("", !0),
98
+ ])])) : m("", !0),
93
99
  r(w, null, {
94
- default: p(() => [
100
+ default: f(() => [
95
101
  t(c) && e.message.actions ? (i(), S(B, {
96
102
  key: 0,
97
103
  class: "missed-call-message__context-menu",
98
104
  actions: e.message.actions,
99
105
  onClick: t(M)
100
- }, null, 8, ["actions", "onClick"])) : n("", !0)
106
+ }, null, 8, ["actions", "onClick"])) : m("", !0)
101
107
  ]),
102
108
  _: 1
103
109
  })
@@ -106,5 +112,5 @@ const j = ["messageId"], q = ["src"], z = {
106
112
  }
107
113
  });
108
114
  export {
109
- X as default
115
+ ae as default
110
116
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./ReplyAudioMessage.vue2.js";
2
2
  /* empty css */
3
- import e from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const r = /* @__PURE__ */ e(o, [["__scopeId", "data-v-a4e068bf"]]);
3
+ import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const r = /* @__PURE__ */ t(o, [["__scopeId", "data-v-5ad9c9f7"]]);
5
5
  export {
6
6
  r as default
7
7
  };
@@ -1,7 +1,13 @@
1
- import { defineComponent as u, ref as c, createElementBlock as n, openBlock as i, Fragment as g, withDirectives as _, createElementVNode as s, vShow as y, createCommentVNode as l, toDisplayString as f, unref as o } from "vue";
2
- import { useMessageLinks as k } from "../../../hooks/messages/useMessageLinks.js";
1
+ import { defineComponent as u, ref as c, createElementBlock as n, openBlock as i, Fragment as g, withDirectives as _, createElementVNode as t, vShow as y, createCommentVNode as a, toDisplayString as f, unref as o } from "vue";
2
+ import { useMessageLinks as x } from "../../../hooks/messages/useMessageLinks.js";
3
3
  import "../../../functions/parseMarkdown.js";
4
- const v = { class: "audio-message__play" }, x = { class: "audio-message__text-container" }, h = { key: 0 }, w = ["innerHTML"], N = /* @__PURE__ */ u({
4
+ import "../../../hooks/useMessageDraft.js";
5
+ import "../../../hooks/useSearchModel.js";
6
+ import "../../../hooks/useTheme.js";
7
+ import "../../../hooks/useEmojiNative.js";
8
+ /* empty css */
9
+ /* empty css */
10
+ const k = { class: "audio-message__play" }, v = { class: "audio-message__text-container" }, C = ["textContent"], h = ["innerHTML"], V = /* @__PURE__ */ u({
5
11
  __name: "ReplyAudioMessage",
6
12
  props: {
7
13
  message: {
@@ -9,31 +15,34 @@ const v = { class: "audio-message__play" }, x = { class: "audio-message__text-co
9
15
  required: !0
10
16
  }
11
17
  },
12
- setup(t) {
13
- const r = t, m = c(!1), { linkedHtml: d, inNewWindow: a } = k(() => r.message.text);
14
- return (M, e) => (i(), n(g, null, [
15
- _(s("div", v, [...e[1] || (e[1] = [
16
- s("span", { class: "pi pi-play" }, null, -1)
18
+ setup(s) {
19
+ const l = s, m = c(!1), { linkedHtml: p, inNewWindow: r } = x(() => l.message.text);
20
+ return (w, e) => (i(), n(g, null, [
21
+ _(t("div", k, [...e[1] || (e[1] = [
22
+ t("span", { class: "pi pi-play" }, null, -1)
17
23
  ])], 512), [
18
24
  [y, !m.value]
19
25
  ]),
20
- s("div", x, [
21
- t.message.header ? (i(), n("p", h, f(t.message.header), 1)) : l("", !0),
22
- e[2] || (e[2] = s("div", { class: "audio-message__reply-description" }, [
23
- s("span", { class: "pi pi-microphone" }),
24
- s("p", null, "Аудиосообщение")
26
+ t("div", v, [
27
+ s.message.header ? (i(), n("p", {
28
+ key: 0,
29
+ textContent: f(`В ответ ${s.message.header}`)
30
+ }, null, 8, C)) : a("", !0),
31
+ e[2] || (e[2] = t("div", { class: "audio-message__reply-description" }, [
32
+ t("span", { class: "pi pi-microphone" }),
33
+ t("p", null, "Аудиосообщение")
25
34
  ], -1)),
26
- t.message.text ? (i(), n("p", {
35
+ s.message.text ? (i(), n("p", {
27
36
  key: 1,
28
37
  class: "audio-message__text",
29
38
  onClick: e[0] || (e[0] = //@ts-ignore
30
- (...p) => o(a) && o(a)(...p)),
31
- innerHTML: o(d)
32
- }, null, 8, w)) : l("", !0)
39
+ (...d) => o(r) && o(r)(...d)),
40
+ innerHTML: o(p)
41
+ }, null, 8, h)) : a("", !0)
33
42
  ])
34
43
  ], 64));
35
44
  }
36
45
  });
37
46
  export {
38
- N as default
47
+ V as default
39
48
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./ReplyCallMessage.vue2.js";
2
2
  /* empty css */
3
- import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const r = /* @__PURE__ */ t(o, [["__scopeId", "data-v-2672cf43"]]);
3
+ import a from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const r = /* @__PURE__ */ a(o, [["__scopeId", "data-v-a995503b"]]);
5
5
  export {
6
6
  r as default
7
7
  };
@@ -1,11 +1,11 @@
1
- import { defineComponent as c, createElementBlock as s, openBlock as a, Fragment as o, createElementVNode as l, normalizeClass as i, createCommentVNode as t, toDisplayString as n } from "vue";
2
- const m = { class: "call-message__text-container" }, r = { key: 0 }, d = { class: "call-message__reply-description" }, g = {
1
+ import { defineComponent as c, createElementBlock as s, openBlock as t, Fragment as o, createElementVNode as a, normalizeClass as i, createCommentVNode as l, toDisplayString as n } from "vue";
2
+ const m = { class: "call-message__text-container" }, r = ["textContent"], d = { class: "call-message__reply-description" }, g = {
3
3
  key: 0,
4
4
  class: "call-message__title"
5
5
  }, _ = {
6
6
  key: 1,
7
7
  class: "call-message__title"
8
- }, u = { key: 1 }, C = /* @__PURE__ */ c({
8
+ }, u = { key: 1 }, k = /* @__PURE__ */ c({
9
9
  __name: "ReplyCallMessage",
10
10
  props: {
11
11
  message: {
@@ -14,22 +14,23 @@ const m = { class: "call-message__text-container" }, r = { key: 0 }, d = { class
14
14
  }
15
15
  },
16
16
  setup(e) {
17
- return console.log(e.message), (h, y) => (a(), s(o, null, [
18
- l("div", null, [
19
- l("span", {
20
- class: i(["call-message__icon pi pi-phone", { "call-message__icon-missed": e.message.isMissedCall }])
21
- }, null, 2)
22
- ]),
23
- l("div", m, [
24
- e.message.header ? (a(), s("p", r, n(e.message.header), 1)) : t("", !0),
25
- l("div", d, [
26
- e.message.isMissedCall ? (a(), s("span", _, " Пропущенный аудиозвонок ")) : (a(), s("span", g, " Аудиозвонок "))
17
+ return console.log(e.message), (h, y) => (t(), s(o, null, [
18
+ a("div", {
19
+ class: i(["call-message__icon pi pi-phone", { "call-message__icon-missed": e.message.isMissedCall }])
20
+ }, null, 2),
21
+ a("div", m, [
22
+ e.message.header ? (t(), s("p", {
23
+ key: 0,
24
+ textContent: n( ответ ${e.message.header}`)
25
+ }, null, 8, r)) : l("", !0),
26
+ a("div", d, [
27
+ e.message.isMissedCall ? (t(), s("span", _, " Пропущенный аудиозвонок ")) : (t(), s("span", g, " Аудиозвонок "))
27
28
  ]),
28
- e.message.callDuration ? (a(), s("p", u, n(e.message.callDuration), 1)) : t("", !0)
29
+ e.message.callDuration ? (t(), s("p", u, n(e.message.callDuration), 1)) : l("", !0)
29
30
  ])
30
31
  ], 64));
31
32
  }
32
33
  });
33
34
  export {
34
- C as default
35
+ k as default
35
36
  };
@@ -1,7 +1,7 @@
1
- import e from "./ReplyFileMessage.vue2.js";
1
+ import o from "./ReplyFileMessage.vue2.js";
2
2
  /* empty css */
3
- import o from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const s = /* @__PURE__ */ o(e, [["__scopeId", "data-v-4ef84522"]]);
3
+ import e from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const s = /* @__PURE__ */ e(o, [["__scopeId", "data-v-d52b8fdd"]]);
5
5
  export {
6
6
  s as default
7
7
  };