@mobilon-dev/chotto 0.3.53 → 0.3.55

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 (44) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/1_atoms/ButtonContextMenu/ButtonContextMenu.vue2.js +11 -10
  3. package/dist/components/1_atoms/ContactContextMenu/ContactContextMenu.vue2.js +7 -6
  4. package/dist/components/1_atoms/Tooltip/Tooltip.vue2.js +3 -2
  5. package/dist/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.js +96 -93
  6. package/dist/components/2_blocks/FeedSearch/FeedSearch.vue2.js +9 -8
  7. package/dist/components/2_chatinput_elements/ButtonCommandsSelector/ButtonCommandsSelector.vue2.js +3 -2
  8. package/dist/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue2.js +3 -2
  9. package/dist/components/2_chatinput_elements/ButtonTemplateSelector/ButtonTemplateSelector.vue2.js +3 -2
  10. package/dist/components/2_chatinput_elements/ButtonWabaTemplateSelector/ButtonWabaTemplateSelector.vue.js +9 -8
  11. package/dist/components/2_chatinput_elements/FilePreview/FilePreview.vue2.js +3 -2
  12. package/dist/components/2_chatinput_elements/FileUploader/FileUploader.vue2.js +3 -2
  13. package/dist/components/2_chatinput_elements/StickerPicker/StickerPicker.vue2.js +3 -2
  14. package/dist/components/2_chatinput_elements/TemplateSelector/TemplateSelector.vue.js +3 -2
  15. package/dist/components/2_chatinput_elements/TextFormatToolbar/TextFormatToolbar.vue2.js +3 -2
  16. package/dist/components/2_chatinput_elements/WABAAttachmentSection/WABAAttachmentSection.vue2.js +14 -13
  17. package/dist/components/2_chatlist_elements/ChatItem/ChatItem.vue2.js +15 -14
  18. package/dist/components/2_elements/AudioRecorder/AudioRecorder.vue2.js +3 -2
  19. package/dist/components/2_elements/ChannelSelector/ChannelSelector.vue.js +3 -2
  20. package/dist/components/2_elements/ThemeMode/ThemeMode.vue.js +3 -2
  21. package/dist/components/2_elements/VideoRecorder/VideoRecorder.vue2.js +3 -2
  22. package/dist/components/2_feed_elements/CallMessage/CallMessage.vue2.js +3 -2
  23. package/dist/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue2.js +3 -2
  24. package/dist/components/2_feed_elements/MissedCallMessage/MissedCallMessage.vue2.js +13 -12
  25. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +3 -3
  26. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +69 -65
  27. package/dist/components/3_compounds/ChatInput/ChatInput.vue2.js +15 -14
  28. package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
  29. package/dist/components/3_compounds/Feed/Feed.vue2.js +154 -140
  30. package/dist/components/3_compounds/Feed/composables/useFeedLoadMore.js +40 -37
  31. package/dist/components/3_compounds/Feed/composables/useFeedMessageVisibility.js +17 -19
  32. package/dist/components/3_compounds/Feed/composables/useFeedReply.js +8 -7
  33. package/dist/components/3_compounds/Feed/composables/useStickyDate.js +31 -35
  34. package/dist/hooks/messages/useMessageLinks.js +41 -33
  35. package/dist/themes/dark.css +1 -1
  36. package/dist/themes/default.css +1 -1
  37. package/dist/themes/glass.css +1 -1
  38. package/dist/themes/green.css +1 -1
  39. package/dist/themes/mobilon1.css +1 -1
  40. package/dist/types/apps/data/chats.d.ts +9 -0
  41. package/dist/types/components/2_blocks/CommunicationPanel/styles/types.d.ts +12 -0
  42. package/dist/types/components/3_compounds/Feed/composables/useFeedMessageVisibility.d.ts +3 -1
  43. package/dist/types/hooks/messages/useMessageLinks.d.ts +3 -6
  44. package/package.json +1 -1
@@ -1,61 +1,57 @@
1
- import { ref as f } from "vue";
2
- function D(m) {
3
- const { feedRef: s, trackingObjects: n, autoHideDelay: w = 500, onUpdate: e } = m, l = f(!1), r = f("");
4
- let i = null;
5
- const a = () => {
6
- if (!s.value || !n.value) {
1
+ import { ref as w } from "vue";
2
+ function h(g) {
3
+ const { feedRef: s, trackingObjects: l, autoHideDelay: v = 500, onUpdate: e } = g, n = w(!1), r = w("");
4
+ let t = null;
5
+ const f = () => {
6
+ var d, m;
7
+ if (!s.value || !l.value) {
7
8
  e == null || e();
8
9
  return;
9
10
  }
10
- const u = s.value.getBoundingClientRect().top;
11
- let o = null;
12
- for (const t of n.value) {
13
- const c = t.getBoundingClientRect();
14
- if (c.top <= u + 1 && c.bottom > u) {
15
- o = t;
11
+ const c = s.value.getBoundingClientRect().top;
12
+ let i = null;
13
+ for (const o of l.value) {
14
+ const a = o.getBoundingClientRect();
15
+ if (a.top <= c + 1 && a.bottom > c) {
16
+ i = o;
16
17
  break;
17
18
  }
18
19
  }
19
- if (!o) {
20
- for (const t of n.value)
21
- if (t.getBoundingClientRect().top >= u) {
22
- o = t;
20
+ if (!i) {
21
+ for (const o of l.value)
22
+ if (o.getBoundingClientRect().top >= c) {
23
+ i = o;
23
24
  break;
24
25
  }
25
26
  }
26
- if (!o) {
27
+ if (!i) {
27
28
  e == null || e();
28
29
  return;
29
30
  }
30
- try {
31
- const t = JSON.parse(o.id);
32
- if (!t || !t.timestamp) {
33
- e == null || e();
34
- return;
35
- }
36
- const c = new Date(Number(t.timestamp) * 1e3);
37
- r.value = c.toLocaleDateString(), e == null || e();
38
- } catch {
39
- e == null || e();
31
+ const u = ((d = i.dataset) == null ? void 0 : d.timestamp) ?? ((m = i.getAttribute) == null ? void 0 : m.call(i, "data-timestamp"));
32
+ if (u != null && u !== "") {
33
+ const o = new Date(Number(u) * 1e3);
34
+ r.value = o.toLocaleDateString();
40
35
  }
36
+ e == null || e();
41
37
  };
42
38
  return {
43
- showStickyDate: l,
39
+ showStickyDate: n,
44
40
  stickyDateText: r,
45
- updateStickyDate: a,
41
+ updateStickyDate: f,
46
42
  show: () => {
47
- a(), l.value = !0, i && window.clearTimeout(i), i = window.setTimeout(() => {
48
- l.value = !1;
49
- }, w);
43
+ f(), n.value = !0, t && window.clearTimeout(t), t = window.setTimeout(() => {
44
+ n.value = !1;
45
+ }, v);
50
46
  },
51
47
  hide: () => {
52
- i && (window.clearTimeout(i), i = null), l.value = !1;
48
+ t && (window.clearTimeout(t), t = null), n.value = !1;
53
49
  },
54
50
  cleanup: () => {
55
- i && window.clearTimeout(i);
51
+ t && window.clearTimeout(t);
56
52
  }
57
53
  };
58
54
  }
59
55
  export {
60
- D as useStickyDate
56
+ h as useStickyDate
61
57
  };
@@ -1,48 +1,56 @@
1
1
  import { computed as h } from "vue";
2
2
  import { tokenize as N } from "../../node_modules/linkifyjs/dist/linkify.js";
3
- import { parseMarkdown as T } from "../../functions/parseMarkdown.js";
4
- const x = (p) => ({ linkedHtml: h(() => {
5
- const n = p();
6
- if (!n) return "";
7
- const t = T(n), o = document.createElement("div");
8
- o.innerHTML = t;
9
- const f = (r) => {
10
- var m;
11
- const e = r.textContent || "", d = N(e);
12
- if (d.length === 1 && !d[0].isLink)
3
+ import T from "../../node_modules/linkify-string/dist/linkify-string.js";
4
+ import { parseMarkdown as E } from "../../functions/parseMarkdown.js";
5
+ function k(e) {
6
+ return e.includes("**") || e.includes("`") || e.includes("~~") || e.includes(`
7
+
8
+ `) || e.includes(">") && e.trimStart().startsWith(">") || /<\/(u|s|b|i)>|<(u|s|b|i)[\s>]/.test(e);
9
+ }
10
+ const _ = (e) => ({ linkedHtml: h(() => {
11
+ const t = e();
12
+ if (!t) return "";
13
+ if (!k(t))
14
+ return T(t);
15
+ const r = E(t), i = document.createElement("div");
16
+ i.innerHTML = r;
17
+ const p = (o) => {
18
+ var u;
19
+ const n = o.textContent || "", a = N(n);
20
+ if (a.length === 1 && !a[0].isLink)
13
21
  return;
14
- const s = document.createDocumentFragment();
15
- d.forEach((i) => {
16
- if (i.isLink) {
22
+ const l = document.createDocumentFragment();
23
+ a.forEach((s) => {
24
+ if (s.isLink) {
17
25
  const c = document.createElement("a");
18
- c.href = i.toHref(), c.target = "_blank", c.textContent = i.toString(), s.appendChild(c);
26
+ c.href = s.toHref(), c.target = "_blank", c.textContent = s.toString(), l.appendChild(c);
19
27
  } else
20
- s.appendChild(document.createTextNode(i.toString()));
21
- }), (m = r.parentNode) == null || m.replaceChild(s, r);
22
- }, u = document.createTreeWalker(
23
- o,
28
+ l.appendChild(document.createTextNode(s.toString()));
29
+ }), (u = o.parentNode) == null || u.replaceChild(l, o);
30
+ }, f = document.createTreeWalker(
31
+ i,
24
32
  NodeFilter.SHOW_TEXT,
25
33
  {
26
- acceptNode: (r) => {
27
- let e = r.parentNode;
28
- for (; e && e !== o; ) {
29
- if (e.nodeName === "A")
34
+ acceptNode: (o) => {
35
+ let n = o.parentNode;
36
+ for (; n && n !== i; ) {
37
+ if (n.nodeName === "A")
30
38
  return NodeFilter.FILTER_REJECT;
31
- e = e.parentNode;
39
+ n = n.parentNode;
32
40
  }
33
41
  return NodeFilter.FILTER_ACCEPT;
34
42
  }
35
43
  }
36
- ), l = [];
37
- let a;
38
- for (; a = u.nextNode(); )
39
- a.nodeType === Node.TEXT_NODE && l.push(a);
40
- return l.reverse().forEach(f), o.innerHTML;
41
- }), inNewWindow: (n) => {
42
- n.preventDefault();
43
- const t = n.target;
44
- t && "href" in t && t.href && window.open(t.href, "_blank");
44
+ ), m = [];
45
+ let d;
46
+ for (; d = f.nextNode(); )
47
+ d.nodeType === Node.TEXT_NODE && m.push(d);
48
+ return m.reverse().forEach(p), i.innerHTML;
49
+ }), inNewWindow: (t) => {
50
+ t.preventDefault();
51
+ const r = t.target;
52
+ r && "href" in r && r.href && window.open(r.href, "_blank");
45
53
  } });
46
54
  export {
47
- x as useMessageLinks
55
+ _ as useMessageLinks
48
56
  };