@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
@@ -6,8 +6,9 @@ import { useTheme as U } from "../../../hooks/useTheme.js";
6
6
  /* empty css */
7
7
  /* empty css */
8
8
  import "../../../node_modules/linkifyjs/dist/linkify.js";
9
+ import "../../../node_modules/linkify-string/dist/linkify-string.js";
9
10
  import "../../../functions/parseMarkdown.js";
10
- const $ = ["id"], X = /* @__PURE__ */ _({
11
+ const $ = ["id"], Y = /* @__PURE__ */ _({
11
12
  __name: "ButtonContextMenu",
12
13
  props: {
13
14
  actions: {
@@ -32,18 +33,18 @@ const $ = ["id"], X = /* @__PURE__ */ _({
32
33
  },
33
34
  emits: ["click", "buttonClick", "menuMouseEnter", "menuMouseLeave"],
34
35
  setup(m, { expose: M, emit: C }) {
35
- const d = I("chatAppId"), { getTheme: h } = U(d), i = m, p = q(), r = C, n = f(), s = f(), a = f(!1), b = (t) => {
36
- l(), r("click", t);
36
+ const r = I("chatAppId"), { getTheme: h } = U(r), i = m, p = q(), d = C, n = f(), s = f(), a = f(!1), b = (t) => {
37
+ l(), d("click", t);
37
38
  }, x = () => {
38
- i.disabled || (i.mode == "click" && !a.value ? u() : i.mode == "click" && a.value && l(), r("buttonClick"));
39
+ i.disabled || (i.mode == "click" && !a.value ? u() : i.mode == "click" && a.value && l(), d("buttonClick"));
39
40
  }, w = () => {
40
41
  i.disabled || i.mode == "hover" && u();
41
42
  }, B = () => {
42
43
  i.disabled || i.mode == "hover" && l();
43
44
  }, S = () => {
44
- r("menuMouseEnter"), i.disabled || i.mode == "hover" && u();
45
+ d("menuMouseEnter"), i.disabled || i.mode == "hover" && u();
45
46
  }, E = () => {
46
- r("menuMouseLeave"), i.disabled || i.mode == "hover" && l();
47
+ d("menuMouseLeave"), i.disabled || i.mode == "hover" && l();
47
48
  }, u = () => {
48
49
  if (s.value && n.value) {
49
50
  const t = n.value, e = s.value.getBoundingClientRect();
@@ -71,7 +72,7 @@ const $ = ["id"], X = /* @__PURE__ */ _({
71
72
  };
72
73
  return L(() => {
73
74
  y(() => {
74
- n.value = document.getElementById("context-menu-" + p + d), n.value && (l(), document.addEventListener("click", v));
75
+ n.value = document.getElementById("context-menu-" + p + r), n.value && (l(), document.addEventListener("click", v));
75
76
  });
76
77
  }), O(() => {
77
78
  document.removeEventListener("click", v);
@@ -79,7 +80,7 @@ const $ = ["id"], X = /* @__PURE__ */ _({
79
80
  updatePosition: u,
80
81
  hideMenu: l
81
82
  }), (t, e) => (k(), T("button", {
82
- id: "container-" + c(p) + c(d),
83
+ id: "container-" + c(p) + c(r),
83
84
  ref_key: "actionScope",
84
85
  ref: s,
85
86
  style: { position: "relative", width: "fit-content", border: "none", background: "transparent", height: "fit-content" },
@@ -91,7 +92,7 @@ const $ = ["id"], X = /* @__PURE__ */ _({
91
92
  ]),
92
93
  (k(), N(V, { to: "body" }, [
93
94
  j(P, {
94
- id: "context-menu-" + c(p) + c(d),
95
+ id: "context-menu-" + c(p) + c(r),
95
96
  actions: m.actions,
96
97
  "data-theme": c(h)().theme ? c(h)().theme : "light",
97
98
  onMouseenter: S,
@@ -103,5 +104,5 @@ const $ = ["id"], X = /* @__PURE__ */ _({
103
104
  }
104
105
  });
105
106
  export {
106
- X as default
107
+ Y as default
107
108
  };
@@ -6,9 +6,10 @@ import { useTheme as U } from "../../../hooks/useTheme.js";
6
6
  /* empty css */
7
7
  /* empty css */
8
8
  import "../../../node_modules/linkifyjs/dist/linkify.js";
9
+ import "../../../node_modules/linkify-string/dist/linkify-string.js";
9
10
  import "../../../functions/parseMarkdown.js";
10
11
  import z from "../../1_icons/MenuIcon.vue.js";
11
- const D = { class: "contact-context-menu__wrapper" }, F = ["id"], G = { class: "contact-context-menu__icon" }, te = /* @__PURE__ */ L({
12
+ const D = { class: "contact-context-menu__wrapper" }, F = ["id"], G = { class: "contact-context-menu__icon" }, oe = /* @__PURE__ */ L({
12
13
  __name: "ContactContextMenu",
13
14
  props: {
14
15
  actions: {
@@ -33,7 +34,7 @@ const D = { class: "contact-context-menu__wrapper" }, F = ["id"], G = { class: "
33
34
  },
34
35
  emits: ["click", "buttonClick", "menuMouseEnter", "menuMouseLeave"],
35
36
  setup(f, { expose: C, emit: b }) {
36
- const w = g("chatAppId"), u = g("extChatAppId", ""), { getTheme: h } = U(w), i = f, p = O(), a = b, n = m(), s = m(), d = m(!1), B = (t) => {
37
+ const w = g("chatAppId"), p = g("extChatAppId", ""), { getTheme: h } = U(w), i = f, u = O(), a = b, n = m(), s = m(), d = m(!1), B = (t) => {
37
38
  l(), a("click", t);
38
39
  }, I = () => {
39
40
  i.disabled || (i.mode == "click" && !d.value ? r() : i.mode == "click" && d.value && l(), a("buttonClick"));
@@ -72,7 +73,7 @@ const D = { class: "contact-context-menu__wrapper" }, F = ["id"], G = { class: "
72
73
  };
73
74
  return T(() => {
74
75
  k(() => {
75
- if (n.value = document.getElementById("context-menu-" + p + u), n.value) {
76
+ if (n.value = document.getElementById("context-menu-" + u + p), n.value) {
76
77
  const t = n.value;
77
78
  t.style.display = "none", t.style.visibility = "hidden", t.style.opacity = "0", l(), document.addEventListener("click", v);
78
79
  }
@@ -84,7 +85,7 @@ const D = { class: "contact-context-menu__wrapper" }, F = ["id"], G = { class: "
84
85
  hideMenu: l
85
86
  }), (t, e) => (x(), R("div", D, [
86
87
  M("button", {
87
- id: "container-" + c(p) + c(u),
88
+ id: "container-" + c(u) + c(p),
88
89
  ref_key: "actionScope",
89
90
  ref: s,
90
91
  class: "contact-context-menu__button",
@@ -97,7 +98,7 @@ const D = { class: "contact-context-menu__wrapper" }, F = ["id"], G = { class: "
97
98
  ]),
98
99
  (x(), V(j, { to: "body" }, [
99
100
  _(P, {
100
- id: "context-menu-" + c(p) + c(u),
101
+ id: "context-menu-" + c(u) + c(p),
101
102
  actions: f.actions,
102
103
  "data-theme": c(h)().theme ? c(h)().theme : "light",
103
104
  onMouseenter: A,
@@ -110,5 +111,5 @@ const D = { class: "contact-context-menu__wrapper" }, F = ["id"], G = { class: "
110
111
  }
111
112
  });
112
113
  export {
113
- te as default
114
+ oe as default
114
115
  };
@@ -5,8 +5,9 @@ import { useTheme as P } from "../../../hooks/useTheme.js";
5
5
  /* empty css */
6
6
  /* empty css */
7
7
  import "../../../node_modules/linkifyjs/dist/linkify.js";
8
+ import "../../../node_modules/linkify-string/dist/linkify-string.js";
8
9
  import "../../../functions/parseMarkdown.js";
9
- const U = ["data-theme"], Y = /* @__PURE__ */ k({
10
+ const U = ["data-theme"], Z = /* @__PURE__ */ k({
10
11
  __name: "Tooltip",
11
12
  props: {
12
13
  text: {
@@ -109,5 +110,5 @@ const U = ["data-theme"], Y = /* @__PURE__ */ k({
109
110
  }
110
111
  });
111
112
  export {
112
- Y as default
113
+ Z as default
113
114
  };
@@ -1,4 +1,4 @@
1
- import { ref as c, computed as i, watch as Pe, onMounted as Ne, onUnmounted as qe, createElementBlock as l, openBlock as o, createElementVNode as d, createCommentVNode as f, Fragment as w, renderList as q, unref as t, normalizeClass as y, createBlock as C, createVNode as z, withCtx as te, resolveDynamicComponent as I, normalizeStyle as ne, toDisplayString as L, nextTick as oe } from "vue";
1
+ import { ref as d, computed as i, watch as Pe, onMounted as Ne, onUnmounted as qe, createElementBlock as l, openBlock as o, createElementVNode as r, createCommentVNode as f, Fragment as w, renderList as z, unref as e, normalizeClass as v, createBlock as C, createVNode as L, withCtx as te, resolveDynamicComponent as _, normalizeStyle as ne, toDisplayString as O, nextTick as oe } from "vue";
2
2
  import se from "../../1_atoms/Tooltip/Tooltip.vue.js";
3
3
  import { useCommunicationChannels as ze } from "./composables/useCommunicationChannels.js";
4
4
  import { useCommunicationMenu as Le } from "./composables/useCommunicationMenu.js";
@@ -13,16 +13,16 @@ import We from "../../../_virtual/_plugin-vue_export-helper.js";
13
13
  const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { class: "channel-icon" }, Ge = {
14
14
  key: 0,
15
15
  class: "empty-channels-placeholder"
16
- }, Je = ["onMouseenter", "onClick"], Ke = { class: "attribute-info" }, Qe = {
16
+ }, Je = ["onMouseenter", "onClick"], Ke = { class: "attribute-info" }, Qe = { class: "attribute-indicator-slot" }, Xe = {
17
17
  key: 0,
18
18
  class: "selected-indicator"
19
- }, Xe = { class: "attribute-value" }, Ye = { class: "menu-icon" }, Ze = {
19
+ }, Ye = { class: "attribute-value" }, Ze = { class: "menu-icon" }, et = {
20
20
  key: 0,
21
21
  class: "menu-icon-arrow"
22
- }, et = ["onClick"], tt = {
22
+ }, tt = ["onClick"], nt = {
23
23
  key: 0,
24
24
  class: "selected-indicator"
25
- }, nt = { class: "sub-menu-title" }, ot = {
25
+ }, ot = { class: "sub-menu-title" }, st = {
26
26
  __name: "CommunicationPanel",
27
27
  props: {
28
28
  contactAttributes: {
@@ -72,23 +72,23 @@ const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { c
72
72
  }
73
73
  },
74
74
  emits: ["select-attribute-channel", "phone-call"],
75
- setup(_, { emit: ae }) {
76
- const a = _, ie = ae, S = c(null), O = c(null), D = c(null), R = c(null), b = c(null), x = c({}), v = c(!1), g = c(null), m = c(null), E = i(() => a.channels ?? []), ue = i(() => a.channelTooltips ?? {}), B = i(() => a.messages ?? []), re = i(() => a.selectedChat ?? null), F = i(() => a.isNewDialog ?? !1), ce = i(() => {
75
+ setup(I, { emit: ae }) {
76
+ const a = I, ie = ae, S = d(null), B = d(null), D = d(null), R = d(null), b = d(null), x = d({}), y = d(!1), g = d(null), m = d(null), E = i(() => a.channels ?? []), ue = i(() => a.channelTooltips ?? {}), F = i(() => a.messages ?? []), re = i(() => a.selectedChat ?? null), $ = i(() => a.isNewDialog ?? !1), ce = i(() => {
77
77
  var n;
78
78
  return ((n = a.selectedDialog) == null ? void 0 : n.channelId) ?? null;
79
- }), $ = (n) => ce.value === n, de = i(() => {
79
+ }), j = (n) => ce.value === n, de = i(() => {
80
80
  var n;
81
81
  return ((n = a.selectedDialog) == null ? void 0 : n.attributeId) ?? null;
82
- }), j = (n) => de.value === n.id, {
82
+ }), W = (n) => de.value === n.id, {
83
83
  channelsTypes: me,
84
84
  getTooltipText: pe,
85
85
  getChannelTypeFromId: he,
86
86
  hasMultipleChannels: k,
87
87
  isChannelActive: A,
88
88
  getSingleChannelForType: fe,
89
- getMenuChannelIconComponentForChannelId: ve,
90
- getSingleMenuChannelIconComponent: ye,
91
- getAvailableChannels: W
89
+ getMenuChannelIconComponentForChannelId: ye,
90
+ getSingleMenuChannelIconComponent: ve,
91
+ getAvailableChannels: V
92
92
  } = ze({
93
93
  channels: E,
94
94
  channelTooltips: ue,
@@ -96,23 +96,23 @@ const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { c
96
96
  }), {
97
97
  activeChannelType: u,
98
98
  hoveredChannel: M,
99
- showMenu: V,
100
- showSubMenu: P,
99
+ showMenu: P,
100
+ showSubMenu: N,
101
101
  menuWidth: Ce,
102
- updateMenuWidth: N,
102
+ updateMenuWidth: q,
103
103
  handleChannelClick: be,
104
104
  closeMenu: ge,
105
105
  handleClickOutside: H
106
106
  } = Le({
107
107
  panelRef: S,
108
- channelsPanelRef: O,
108
+ channelsPanelRef: B,
109
109
  selectedChannelType: b,
110
110
  frozenAttribute: R
111
111
  }), ke = i(() => a.contactAttributes ?? []), U = (n) => {
112
112
  var p;
113
- if (!n || !B.value) return !0;
113
+ if (!n || !F.value) return !0;
114
114
  const s = (p = re.value) == null ? void 0 : p.chatId;
115
- return s ? !B.value.filter(
115
+ return s ? !F.value.filter(
116
116
  (h) => {
117
117
  var ee;
118
118
  return h.chatId === s && h.dialogId === ((ee = a.selectedDialog) == null ? void 0 : ee.dialogId);
@@ -121,18 +121,18 @@ const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { c
121
121
  (h) => h.type !== "message.system" && h.type !== "message.delimiter" && h.type !== "system" && h.type !== "system_message" && h.type !== "notification"
122
122
  ) : !0;
123
123
  }, G = () => {
124
- T(), v.value = !0, oe(() => {
124
+ T(), y.value = !0, oe(() => {
125
125
  const n = Array.isArray(m.value) ? m.value[0] : m.value;
126
126
  n && typeof n.startAutoShow == "function" ? n.startAutoShow() : console.log("startAutoShow method not found on tooltipRef");
127
127
  }), g.value = setTimeout(() => {
128
- v.value = !1;
128
+ y.value = !1;
129
129
  }, 5e3);
130
130
  }, T = () => {
131
131
  if (g.value && (clearTimeout(g.value), g.value = null), m.value) {
132
132
  const n = Array.isArray(m.value) ? m.value[0] : m.value;
133
133
  n && typeof n.clearAutoTimer == "function" && n.clearAutoTimer();
134
134
  }
135
- v.value = !1;
135
+ y.value = !1;
136
136
  }, {
137
137
  organizedContactAttributes: J,
138
138
  organizeContactAttributes: Ae,
@@ -143,7 +143,7 @@ const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { c
143
143
  }), {
144
144
  handleAttributeClick: Te,
145
145
  selectChannel: we,
146
- availableChannels: Ie
146
+ availableChannels: _e
147
147
  } = Be({
148
148
  activeChannelType: u,
149
149
  channels: E,
@@ -153,14 +153,14 @@ const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { c
153
153
  closeMenu: ge,
154
154
  hasMultipleChannels: k,
155
155
  getSingleChannelForType: fe,
156
- getAvailableChannels: W,
156
+ getAvailableChannels: V,
157
157
  isChannelEmpty: U,
158
- isNewDialog: F,
158
+ isNewDialog: $,
159
159
  showDefaultChannelTooltipWithTimer: G,
160
160
  clearDefaultChannelTooltip: T,
161
161
  emit: ie
162
162
  }), {
163
- subMenuTop: _e,
163
+ subMenuTop: Ie,
164
164
  handleAttributeMouseEnter: Se,
165
165
  handleAttributeMouseLeave: K,
166
166
  keepSubMenuOpen: Q,
@@ -168,7 +168,7 @@ const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { c
168
168
  alignSubMenuWithTarget: De
169
169
  } = Fe({
170
170
  activeChannelType: u,
171
- showSubMenu: P,
171
+ showSubMenu: N,
172
172
  frozenAttribute: R,
173
173
  hoveredAttribute: D,
174
174
  hasMultipleChannels: k
@@ -179,7 +179,7 @@ const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { c
179
179
  channels: E,
180
180
  selectedDialog: i(() => a.selectedDialog ?? null),
181
181
  isChannelEmpty: U,
182
- isNewDialog: F,
182
+ isNewDialog: $,
183
183
  showDefaultChannelTooltipWithTimer: G,
184
184
  clearDefaultChannelTooltip: T
185
185
  });
@@ -187,75 +187,76 @@ const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { c
187
187
  emptyChannelsPlaceholderText: Re,
188
188
  shouldShowEmptyChannelsPlaceholder: Y
189
189
  } = je({
190
- showMenu: V,
190
+ showMenu: P,
191
191
  activeChannelType: u,
192
192
  emptyChannelsPlaceholder: i(() => a.emptyChannelsPlaceholder ?? {}),
193
- getAvailableChannels: W,
193
+ getAvailableChannels: V,
194
194
  organizedContactAttributes: J
195
195
  }), Z = i(
196
- () => Ie()
196
+ () => _e()
197
197
  ), xe = i(
198
- () => P.value && D.value && Z.value.length > 0 && u.value !== "phone" && k(u.value)
198
+ () => N.value && D.value && Z.value.length > 0 && u.value !== "phone" && k(u.value)
199
199
  ), Ee = async (n, s) => {
200
- const e = Se(n, s.currentTarget);
201
- await oe(), e instanceof HTMLElement && De(S, e);
200
+ const t = Se(n, s.currentTarget);
201
+ await oe(), t instanceof HTMLElement && De(S, t);
202
202
  };
203
203
  return Pe(() => a.selectedDialog, () => {
204
204
  }, { deep: !0 }), Ne(() => {
205
- N(), window.addEventListener("resize", N), document.addEventListener("click", H), Ae();
205
+ q(), window.addEventListener("resize", q), document.addEventListener("click", H), Ae();
206
206
  }), qe(() => {
207
- window.removeEventListener("resize", N), document.removeEventListener("click", H), T();
207
+ window.removeEventListener("resize", q), document.removeEventListener("click", H), T();
208
208
  }), (n, s) => (o(), l("div", {
209
209
  ref_key: "panelRef",
210
210
  ref: S,
211
211
  class: "communication-panel"
212
212
  }, [
213
- d("div", {
213
+ r("div", {
214
214
  ref_key: "channelsPanelRef",
215
- ref: O,
215
+ ref: B,
216
216
  class: "channels-panel"
217
217
  }, [
218
- (o(!0), l(w, null, q(t(me), (e) => {
219
- var r;
218
+ (o(!0), l(w, null, z(e(me), (t) => {
219
+ var c;
220
220
  return o(), l("button", {
221
- key: e.type,
222
- class: y(["channel-btn", {
223
- active: t(A)(e.type),
224
- hover: t(M) === e.type && !t(A)(e.type) || t(M) === e.type && t(A)(e.type)
221
+ key: t.type,
222
+ class: v(["channel-btn", {
223
+ active: e(A)(t.type),
224
+ hover: e(M) === t.type && !e(A)(t.type) || e(M) === t.type && e(A)(t.type),
225
+ menuOpen: e(P) && e(u) === t.type
225
226
  }]),
226
- onClick: (p) => t(be)(e.type),
227
- onMouseenter: (p) => M.value = e.type,
227
+ onClick: (p) => e(be)(t.type),
228
+ onMouseenter: (p) => M.value = t.type,
228
229
  onMouseleave: s[0] || (s[0] = (p) => M.value = null)
229
230
  }, [
230
- t(A)(e.type) ? (o(), l(w, { key: 0 }, [
231
- z(se, {
231
+ e(A)(t.type) ? (o(), l(w, { key: 0 }, [
232
+ L(se, {
232
233
  ref_for: !0,
233
234
  ref: (p) => {
234
235
  p && (m.value = p);
235
236
  },
236
- text: v.value ? "Выбран канал по умолчанию, можно изменить в настройках профиля" : (r = x.value) == null ? void 0 : r.title,
237
+ text: y.value ? "Выбран канал по умолчанию, можно изменить в настройках профиля" : (c = x.value) == null ? void 0 : c.title,
237
238
  position: "bottom-left",
238
239
  offset: 8,
239
- trigger: v.value ? "auto" : "hover",
240
- "auto-show-duration": v.value ? 5e3 : 0
240
+ trigger: y.value ? "auto" : "hover",
241
+ "auto-show-duration": y.value ? 5e3 : 0
241
242
  }, {
242
243
  default: te(() => [
243
- d("span", He, [
244
- (o(), C(I(e.component)))
244
+ r("span", He, [
245
+ (o(), C(_(t.component)))
245
246
  ])
246
247
  ]),
247
248
  _: 2
248
249
  }, 1032, ["text", "trigger", "auto-show-duration"]),
249
- s[4] || (s[4] = d("span", { class: "active-indicator" }, null, -1))
250
+ s[4] || (s[4] = r("span", { class: "active-indicator" }, null, -1))
250
251
  ], 64)) : (o(), C(se, {
251
252
  key: 1,
252
- text: t(pe)(e.type),
253
+ text: e(pe)(t.type),
253
254
  position: "bottom-left",
254
255
  offset: 8
255
256
  }, {
256
257
  default: te(() => [
257
- d("span", Ue, [
258
- (o(), C(I(e.component)))
258
+ r("span", Ue, [
259
+ (o(), C(_(t.component)))
259
260
  ])
260
261
  ]),
261
262
  _: 2
@@ -263,66 +264,68 @@ const Ve = ["onClick", "onMouseenter"], He = { class: "channel-icon" }, Ue = { c
263
264
  ], 42, Ve);
264
265
  }), 128))
265
266
  ], 512),
266
- t(V) && t(u) ? (o(), l("div", {
267
+ e(P) && e(u) ? (o(), l("div", {
267
268
  key: 0,
268
269
  class: "attributes-menu",
269
- style: ne({ width: t(Ce) })
270
+ style: ne({ width: e(Ce) })
270
271
  }, [
271
- t(Y) ? (o(), l("div", Ge, L(t(Re)), 1)) : f("", !0),
272
- t(Y) ? f("", !0) : (o(!0), l(w, { key: 1 }, q(t(J)[t(u)], (e) => (o(), l("div", {
273
- key: e.attributeId,
274
- class: y(["attribute-item", {
275
- "frozen-hover": t(Me)(e),
276
- selected: j(e)
272
+ e(Y) ? (o(), l("div", Ge, O(e(Re)), 1)) : f("", !0),
273
+ e(Y) ? f("", !0) : (o(!0), l(w, { key: 1 }, z(e(J)[e(u)], (t) => (o(), l("div", {
274
+ key: t.attributeId,
275
+ class: v(["attribute-item", {
276
+ "frozen-hover": e(Me)(t),
277
+ selected: W(t)
277
278
  }]),
278
- onMouseenter: (r) => Ee(e, r),
279
- onMouseleave: s[1] || (s[1] = (...r) => t(K) && t(K)(...r)),
280
- onClick: (r) => t(Te)(e)
279
+ onMouseenter: (c) => Ee(t, c),
280
+ onMouseleave: s[1] || (s[1] = (...c) => e(K) && e(K)(...c)),
281
+ onClick: (c) => e(Te)(t)
281
282
  }, [
282
- d("div", Ke, [
283
- j(e) ? (o(), l("span", Qe, [
284
- z(t(le))
285
- ])) : f("", !0),
286
- d("span", Xe, L(e.value), 1)
283
+ r("div", Ke, [
284
+ r("span", Qe, [
285
+ W(t) ? (o(), l("span", Xe, [
286
+ L(e(le))
287
+ ])) : f("", !0)
288
+ ]),
289
+ r("span", Ye, O(t.value), 1)
287
290
  ]),
288
- d("span", Ye, [
289
- t(k)(t(u)) ? (o(), l("span", Ze)) : _.showChannelIcons ? (o(), l("span", {
291
+ r("span", Ze, [
292
+ e(k)(e(u)) ? (o(), l("span", et)) : I.showChannelIcons ? (o(), l("span", {
290
293
  key: 1,
291
- class: y(["channel-icon-small", { "menu-icon-grey": t(u) !== "sms" }])
294
+ class: v(["channel-icon-small", { "menu-icon-grey": e(u) !== "sms" }])
292
295
  }, [
293
- (o(), C(I(t(ye)(t(u)))))
296
+ (o(), C(_(e(ve)(e(u)))))
294
297
  ], 2)) : f("", !0)
295
298
  ])
296
299
  ], 42, Je))), 128)),
297
- t(P) && xe.value ? (o(), l("div", {
300
+ e(N) && xe.value ? (o(), l("div", {
298
301
  key: 2,
299
302
  class: "sub-menu left",
300
- style: ne({ top: t(_e) + "px" }),
301
- onMouseenter: s[2] || (s[2] = (...e) => t(Q) && t(Q)(...e)),
302
- onMouseleave: s[3] || (s[3] = (...e) => t(X) && t(X)(...e))
303
+ style: ne({ top: e(Ie) + "px" }),
304
+ onMouseenter: s[2] || (s[2] = (...t) => e(Q) && e(Q)(...t)),
305
+ onMouseleave: s[3] || (s[3] = (...t) => e(X) && e(X)(...t))
303
306
  }, [
304
- s[5] || (s[5] = d("div", { class: "sub-menu-header" }, " Канал связи ", -1)),
305
- (o(!0), l(w, null, q(Z.value, (e) => (o(), l("div", {
306
- key: e.channelId,
307
- class: y(["sub-menu-item", { selected: $(e.channelId) }]),
308
- onClick: (r) => t(we)(e.channelId)
307
+ s[5] || (s[5] = r("div", { class: "sub-menu-header" }, " Канал связи ", -1)),
308
+ (o(!0), l(w, null, z(Z.value, (t) => (o(), l("div", {
309
+ key: t.channelId,
310
+ class: v(["sub-menu-item", { selected: j(t.channelId) }]),
311
+ onClick: (c) => e(we)(t.channelId)
309
312
  }, [
310
- $(e.channelId) ? (o(), l("span", tt, [
311
- z(t(le))
313
+ j(t.channelId) ? (o(), l("span", nt, [
314
+ L(e(le))
312
315
  ])) : f("", !0),
313
- d("span", nt, L(e.title || e.channelId), 1),
314
- _.showChannelIcons ? (o(), l("span", {
316
+ r("span", ot, O(t.title || t.channelId), 1),
317
+ I.showChannelIcons ? (o(), l("span", {
315
318
  key: 1,
316
- class: y(["sub-menu-icon", { "menu-icon-grey": t(he)(e.channelId) !== "sms" }])
319
+ class: v(["sub-menu-icon", { "menu-icon-grey": e(he)(t.channelId) !== "sms" }])
317
320
  }, [
318
- (o(), C(I(t(ve)(e.channelId))))
321
+ (o(), C(_(e(ye)(t.channelId))))
319
322
  ], 2)) : f("", !0)
320
- ], 10, et))), 128))
323
+ ], 10, tt))), 128))
321
324
  ], 36)) : f("", !0)
322
325
  ], 4)) : f("", !0)
323
326
  ], 512));
324
327
  }
325
- }, vt = /* @__PURE__ */ We(ot, [["__scopeId", "data-v-8d1fb4ba"]]);
328
+ }, vt = /* @__PURE__ */ We(st, [["__scopeId", "data-v-fe15da82"]]);
326
329
  export {
327
330
  vt as default
328
331
  };
@@ -1,5 +1,5 @@
1
- import { defineComponent as _, inject as y, ref as v, computed as S, watch as k, onMounted as F, unref as o, createBlock as g, openBlock as d, Transition as L, withCtx as w, createElementVNode as r, withDirectives as C, createElementBlock as I, createCommentVNode as B, toDisplayString as D, vModelText as M, normalizeStyle as V } from "vue";
2
- import { t as m } from "../../../locale/useLocale.js";
1
+ import { defineComponent as _, inject as y, ref as v, computed as S, watch as k, onMounted as F, unref as o, createBlock as g, openBlock as m, Transition as L, withCtx as w, createElementVNode as r, withDirectives as C, createElementBlock as I, createCommentVNode as B, toDisplayString as D, vModelText as M, normalizeStyle as V } from "vue";
2
+ import { t as d } from "../../../locale/useLocale.js";
3
3
  import { useDelayDebouncedRef as b } from "../../../hooks/useDelayDebouncedRef.js";
4
4
  import "../../../hooks/useMessageDraft.js";
5
5
  import { useSearchModel as A } from "../../../hooks/useSearchModel.js";
@@ -7,8 +7,9 @@ import "../../../hooks/useTheme.js";
7
7
  /* empty css */
8
8
  /* empty css */
9
9
  import "../../../node_modules/linkifyjs/dist/linkify.js";
10
+ import "../../../node_modules/linkify-string/dist/linkify-string.js";
10
11
  import "../../../functions/parseMarkdown.js";
11
- const E = { class: "feed-search__container" }, N = { style: { "line-height": "40px" } }, T = ["placeholder"], K = /* @__PURE__ */ _({
12
+ const E = { class: "feed-search__container" }, N = { style: { "line-height": "40px" } }, T = ["placeholder"], O = /* @__PURE__ */ _({
12
13
  __name: "FeedSearch",
13
14
  props: {
14
15
  isFeedLocation: {
@@ -32,17 +33,17 @@ const E = { class: "feed-search__container" }, N = { style: { "line-height": "40
32
33
  return F(() => {
33
34
  const t = o(i);
34
35
  t == null || t.focus();
35
- }), (t, n) => (d(), g(L, null, {
36
+ }), (t, n) => (m(), g(L, null, {
36
37
  default: w(() => [
37
38
  r("div", E, [
38
- r("span", N, D(o(m)("component.FeedSearch.SearchLabel")), 1),
39
+ r("span", N, D(o(d)("component.FeedSearch.SearchLabel")), 1),
39
40
  C(r("input", {
40
41
  ref_key: "refInput",
41
42
  ref: i,
42
43
  "onUpdate:modelValue": n[0] || (n[0] = (p) => o(e)().text = p),
43
44
  class: "feed-search__input",
44
45
  type: "text",
45
- placeholder: o(m)("component.FeedSearch.SearchPlaceholder")
46
+ placeholder: o(d)("component.FeedSearch.SearchPlaceholder")
46
47
  }, null, 8, T), [
47
48
  [M, o(e)().text]
48
49
  ]),
@@ -51,7 +52,7 @@ const E = { class: "feed-search__container" }, N = { style: { "line-height": "40
51
52
  style: V({ right: h.value }),
52
53
  onClick: x
53
54
  }, null, 4),
54
- a.isFeedLocation ? (d(), I("span", {
55
+ a.isFeedLocation ? (m(), I("span", {
55
56
  key: 0,
56
57
  class: "pi pi-refresh",
57
58
  style: { "margin-left": "5px", "margin-top": "10px", cursor: "pointer" },
@@ -64,5 +65,5 @@ const E = { class: "feed-search__container" }, N = { style: { "line-height": "40
64
65
  }
65
66
  });
66
67
  export {
67
- K as default
68
+ O as default
68
69
  };
@@ -5,9 +5,10 @@ import "../../../hooks/useTheme.js";
5
5
  /* empty css */
6
6
  /* empty css */
7
7
  import "../../../node_modules/linkifyjs/dist/linkify.js";
8
+ import "../../../node_modules/linkify-string/dist/linkify-string.js";
8
9
  import "../../../functions/parseMarkdown.js";
9
10
  import k from "../../1_atoms/ButtonContextMenu/ButtonContextMenu.vue.js";
10
- const N = /* @__PURE__ */ p({
11
+ const T = /* @__PURE__ */ p({
11
12
  __name: "ButtonCommandsSelector",
12
13
  props: {
13
14
  commands: {
@@ -66,5 +67,5 @@ const N = /* @__PURE__ */ p({
66
67
  }
67
68
  });
68
69
  export {
69
- N as default
70
+ T as default
70
71
  };
@@ -7,9 +7,10 @@ import "../../../hooks/useTheme.js";
7
7
  /* empty css */
8
8
  /* empty css */
9
9
  import "../../../node_modules/linkifyjs/dist/linkify.js";
10
+ import "../../../node_modules/linkify-string/dist/linkify-string.js";
10
11
  import "../../../functions/parseMarkdown.js";
11
12
  import ee from "./icons/SmilesIcon.vue.js";
12
- const de = /* @__PURE__ */ A({
13
+ const ve = /* @__PURE__ */ A({
13
14
  __name: "ButtonEmojiPicker",
14
15
  props: {
15
16
  state: {
@@ -131,5 +132,5 @@ const de = /* @__PURE__ */ A({
131
132
  }
132
133
  });
133
134
  export {
134
- de as default
135
+ ve as default
135
136
  };
@@ -7,9 +7,10 @@ import "../../../hooks/useTheme.js";
7
7
  /* empty css */
8
8
  /* empty css */
9
9
  import "../../../node_modules/linkifyjs/dist/linkify.js";
10
+ import "../../../node_modules/linkify-string/dist/linkify-string.js";
10
11
  import "../../../functions/parseMarkdown.js";
11
12
  import z from "./icons/ChatTemplatesIcon.vue.js";
12
- const R = { class: "" }, te = /* @__PURE__ */ T({
13
+ const R = { class: "" }, oe = /* @__PURE__ */ T({
13
14
  __name: "ButtonTemplateSelector",
14
15
  props: {
15
16
  templates: {
@@ -131,5 +132,5 @@ const R = { class: "" }, te = /* @__PURE__ */ T({
131
132
  }
132
133
  });
133
134
  export {
134
- te as default
135
+ oe as default
135
136
  };