@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.
- package/dist/chotto.css +1 -1
- package/dist/components/1_atoms/ButtonContextMenu/ButtonContextMenu.vue2.js +11 -10
- package/dist/components/1_atoms/ContactContextMenu/ContactContextMenu.vue2.js +7 -6
- package/dist/components/1_atoms/Tooltip/Tooltip.vue2.js +3 -2
- package/dist/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.js +96 -93
- package/dist/components/2_blocks/FeedSearch/FeedSearch.vue2.js +9 -8
- package/dist/components/2_chatinput_elements/ButtonCommandsSelector/ButtonCommandsSelector.vue2.js +3 -2
- package/dist/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue2.js +3 -2
- package/dist/components/2_chatinput_elements/ButtonTemplateSelector/ButtonTemplateSelector.vue2.js +3 -2
- package/dist/components/2_chatinput_elements/ButtonWabaTemplateSelector/ButtonWabaTemplateSelector.vue.js +9 -8
- package/dist/components/2_chatinput_elements/FilePreview/FilePreview.vue2.js +3 -2
- package/dist/components/2_chatinput_elements/FileUploader/FileUploader.vue2.js +3 -2
- package/dist/components/2_chatinput_elements/StickerPicker/StickerPicker.vue2.js +3 -2
- package/dist/components/2_chatinput_elements/TemplateSelector/TemplateSelector.vue.js +3 -2
- package/dist/components/2_chatinput_elements/TextFormatToolbar/TextFormatToolbar.vue2.js +3 -2
- package/dist/components/2_chatinput_elements/WABAAttachmentSection/WABAAttachmentSection.vue2.js +14 -13
- package/dist/components/2_chatlist_elements/ChatItem/ChatItem.vue2.js +15 -14
- package/dist/components/2_elements/AudioRecorder/AudioRecorder.vue2.js +3 -2
- package/dist/components/2_elements/ChannelSelector/ChannelSelector.vue.js +3 -2
- package/dist/components/2_elements/ThemeMode/ThemeMode.vue.js +3 -2
- package/dist/components/2_elements/VideoRecorder/VideoRecorder.vue2.js +3 -2
- package/dist/components/2_feed_elements/CallMessage/CallMessage.vue2.js +3 -2
- package/dist/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue2.js +3 -2
- package/dist/components/2_feed_elements/MissedCallMessage/MissedCallMessage.vue2.js +13 -12
- package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +3 -3
- package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +69 -65
- package/dist/components/3_compounds/ChatInput/ChatInput.vue2.js +15 -14
- package/dist/components/3_compounds/Feed/Feed.vue.js +2 -2
- package/dist/components/3_compounds/Feed/Feed.vue2.js +154 -140
- package/dist/components/3_compounds/Feed/composables/useFeedLoadMore.js +40 -37
- package/dist/components/3_compounds/Feed/composables/useFeedMessageVisibility.js +17 -19
- package/dist/components/3_compounds/Feed/composables/useFeedReply.js +8 -7
- package/dist/components/3_compounds/Feed/composables/useStickyDate.js +31 -35
- package/dist/hooks/messages/useMessageLinks.js +41 -33
- package/dist/themes/dark.css +1 -1
- package/dist/themes/default.css +1 -1
- package/dist/themes/glass.css +1 -1
- package/dist/themes/green.css +1 -1
- package/dist/themes/mobilon1.css +1 -1
- package/dist/types/apps/data/chats.d.ts +9 -0
- package/dist/types/components/2_blocks/CommunicationPanel/styles/types.d.ts +12 -0
- package/dist/types/components/3_compounds/Feed/composables/useFeedMessageVisibility.d.ts +3 -1
- package/dist/types/hooks/messages/useMessageLinks.d.ts +3 -6
- 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"],
|
|
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
|
|
36
|
-
l(),
|
|
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(),
|
|
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
|
-
|
|
45
|
+
d("menuMouseEnter"), i.disabled || i.mode == "hover" && u();
|
|
45
46
|
}, E = () => {
|
|
46
|
-
|
|
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 +
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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" },
|
|
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"),
|
|
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-" +
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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"],
|
|
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
|
-
|
|
113
|
+
Z as default
|
|
113
114
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref as
|
|
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
|
-
},
|
|
19
|
+
}, Ye = { class: "attribute-value" }, Ze = { class: "menu-icon" }, et = {
|
|
20
20
|
key: 0,
|
|
21
21
|
class: "menu-icon-arrow"
|
|
22
|
-
},
|
|
22
|
+
}, tt = ["onClick"], nt = {
|
|
23
23
|
key: 0,
|
|
24
24
|
class: "selected-indicator"
|
|
25
|
-
},
|
|
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(
|
|
76
|
-
const a =
|
|
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
|
-
}),
|
|
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
|
-
}),
|
|
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:
|
|
90
|
-
getSingleMenuChannelIconComponent:
|
|
91
|
-
getAvailableChannels:
|
|
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:
|
|
100
|
-
showSubMenu:
|
|
99
|
+
showMenu: P,
|
|
100
|
+
showSubMenu: N,
|
|
101
101
|
menuWidth: Ce,
|
|
102
|
-
updateMenuWidth:
|
|
102
|
+
updateMenuWidth: q,
|
|
103
103
|
handleChannelClick: be,
|
|
104
104
|
closeMenu: ge,
|
|
105
105
|
handleClickOutside: H
|
|
106
106
|
} = Le({
|
|
107
107
|
panelRef: S,
|
|
108
|
-
channelsPanelRef:
|
|
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 || !
|
|
113
|
+
if (!n || !F.value) return !0;
|
|
114
114
|
const s = (p = re.value) == null ? void 0 : p.chatId;
|
|
115
|
-
return s ? !
|
|
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(),
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
156
|
+
getAvailableChannels: V,
|
|
157
157
|
isChannelEmpty: U,
|
|
158
|
-
isNewDialog:
|
|
158
|
+
isNewDialog: $,
|
|
159
159
|
showDefaultChannelTooltipWithTimer: G,
|
|
160
160
|
clearDefaultChannelTooltip: T,
|
|
161
161
|
emit: ie
|
|
162
162
|
}), {
|
|
163
|
-
subMenuTop:
|
|
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:
|
|
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:
|
|
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:
|
|
190
|
+
showMenu: P,
|
|
191
191
|
activeChannelType: u,
|
|
192
192
|
emptyChannelsPlaceholder: i(() => a.emptyChannelsPlaceholder ?? {}),
|
|
193
|
-
getAvailableChannels:
|
|
193
|
+
getAvailableChannels: V,
|
|
194
194
|
organizedContactAttributes: J
|
|
195
195
|
}), Z = i(
|
|
196
|
-
() =>
|
|
196
|
+
() => _e()
|
|
197
197
|
), xe = i(
|
|
198
|
-
() =>
|
|
198
|
+
() => N.value && D.value && Z.value.length > 0 && u.value !== "phone" && k(u.value)
|
|
199
199
|
), Ee = async (n, s) => {
|
|
200
|
-
const
|
|
201
|
-
await oe(),
|
|
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
|
-
|
|
205
|
+
q(), window.addEventListener("resize", q), document.addEventListener("click", H), Ae();
|
|
206
206
|
}), qe(() => {
|
|
207
|
-
window.removeEventListener("resize",
|
|
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
|
-
|
|
213
|
+
r("div", {
|
|
214
214
|
ref_key: "channelsPanelRef",
|
|
215
|
-
ref:
|
|
215
|
+
ref: B,
|
|
216
216
|
class: "channels-panel"
|
|
217
217
|
}, [
|
|
218
|
-
(o(!0), l(w, null,
|
|
219
|
-
var
|
|
218
|
+
(o(!0), l(w, null, z(e(me), (t) => {
|
|
219
|
+
var c;
|
|
220
220
|
return o(), l("button", {
|
|
221
|
-
key:
|
|
222
|
-
class:
|
|
223
|
-
active:
|
|
224
|
-
hover:
|
|
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) =>
|
|
227
|
-
onMouseenter: (p) => M.value =
|
|
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
|
-
|
|
231
|
-
|
|
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:
|
|
237
|
+
text: y.value ? "Выбран канал по умолчанию, можно изменить в настройках профиля" : (c = x.value) == null ? void 0 : c.title,
|
|
237
238
|
position: "bottom-left",
|
|
238
239
|
offset: 8,
|
|
239
|
-
trigger:
|
|
240
|
-
"auto-show-duration":
|
|
240
|
+
trigger: y.value ? "auto" : "hover",
|
|
241
|
+
"auto-show-duration": y.value ? 5e3 : 0
|
|
241
242
|
}, {
|
|
242
243
|
default: te(() => [
|
|
243
|
-
|
|
244
|
-
(o(), C(
|
|
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] =
|
|
250
|
+
s[4] || (s[4] = r("span", { class: "active-indicator" }, null, -1))
|
|
250
251
|
], 64)) : (o(), C(se, {
|
|
251
252
|
key: 1,
|
|
252
|
-
text:
|
|
253
|
+
text: e(pe)(t.type),
|
|
253
254
|
position: "bottom-left",
|
|
254
255
|
offset: 8
|
|
255
256
|
}, {
|
|
256
257
|
default: te(() => [
|
|
257
|
-
|
|
258
|
-
(o(), C(
|
|
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
|
-
|
|
267
|
+
e(P) && e(u) ? (o(), l("div", {
|
|
267
268
|
key: 0,
|
|
268
269
|
class: "attributes-menu",
|
|
269
|
-
style: ne({ width:
|
|
270
|
+
style: ne({ width: e(Ce) })
|
|
270
271
|
}, [
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
key:
|
|
274
|
-
class:
|
|
275
|
-
"frozen-hover":
|
|
276
|
-
selected:
|
|
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: (
|
|
279
|
-
onMouseleave: s[1] || (s[1] = (...
|
|
280
|
-
onClick: (
|
|
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
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
-
|
|
289
|
-
|
|
291
|
+
r("span", Ze, [
|
|
292
|
+
e(k)(e(u)) ? (o(), l("span", et)) : I.showChannelIcons ? (o(), l("span", {
|
|
290
293
|
key: 1,
|
|
291
|
-
class:
|
|
294
|
+
class: v(["channel-icon-small", { "menu-icon-grey": e(u) !== "sms" }])
|
|
292
295
|
}, [
|
|
293
|
-
(o(), C(
|
|
296
|
+
(o(), C(_(e(ve)(e(u)))))
|
|
294
297
|
], 2)) : f("", !0)
|
|
295
298
|
])
|
|
296
299
|
], 42, Je))), 128)),
|
|
297
|
-
|
|
300
|
+
e(N) && xe.value ? (o(), l("div", {
|
|
298
301
|
key: 2,
|
|
299
302
|
class: "sub-menu left",
|
|
300
|
-
style: ne({ top:
|
|
301
|
-
onMouseenter: s[2] || (s[2] = (...
|
|
302
|
-
onMouseleave: s[3] || (s[3] = (...
|
|
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] =
|
|
305
|
-
(o(!0), l(w, null,
|
|
306
|
-
key:
|
|
307
|
-
class:
|
|
308
|
-
onClick: (
|
|
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
|
-
|
|
311
|
-
|
|
313
|
+
j(t.channelId) ? (o(), l("span", nt, [
|
|
314
|
+
L(e(le))
|
|
312
315
|
])) : f("", !0),
|
|
313
|
-
|
|
314
|
-
|
|
316
|
+
r("span", ot, O(t.title || t.channelId), 1),
|
|
317
|
+
I.showChannelIcons ? (o(), l("span", {
|
|
315
318
|
key: 1,
|
|
316
|
-
class:
|
|
319
|
+
class: v(["sub-menu-icon", { "menu-icon-grey": e(he)(t.channelId) !== "sms" }])
|
|
317
320
|
}, [
|
|
318
|
-
(o(), C(
|
|
321
|
+
(o(), C(_(e(ye)(t.channelId))))
|
|
319
322
|
], 2)) : f("", !0)
|
|
320
|
-
], 10,
|
|
323
|
+
], 10, tt))), 128))
|
|
321
324
|
], 36)) : f("", !0)
|
|
322
325
|
], 4)) : f("", !0)
|
|
323
326
|
], 512));
|
|
324
327
|
}
|
|
325
|
-
}, vt = /* @__PURE__ */ We(
|
|
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
|
|
2
|
-
import { t as
|
|
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"],
|
|
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) => (
|
|
36
|
+
}), (t, n) => (m(), g(L, null, {
|
|
36
37
|
default: w(() => [
|
|
37
38
|
r("div", E, [
|
|
38
|
-
r("span", N, D(o(
|
|
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(
|
|
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 ? (
|
|
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
|
-
|
|
68
|
+
O as default
|
|
68
69
|
};
|
package/dist/components/2_chatinput_elements/ButtonCommandsSelector/ButtonCommandsSelector.vue2.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
135
|
+
ve as default
|
|
135
136
|
};
|
package/dist/components/2_chatinput_elements/ButtonTemplateSelector/ButtonTemplateSelector.vue2.js
CHANGED
|
@@ -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: "" },
|
|
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
|
-
|
|
135
|
+
oe as default
|
|
135
136
|
};
|