@mobilon-dev/chotto 0.3.83 → 0.3.84

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 (26) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.js +351 -282
  3. package/dist/components/2_blocks/CommunicationPanel/CommunicationPanelAttributeIndicator.vue.js +38 -33
  4. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.js +64 -39
  5. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationAttributes.js +116 -61
  6. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationChannels.js +1 -1
  7. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.js +30 -16
  8. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationRecentSelection.js +47 -0
  9. package/dist/components/2_blocks/CommunicationPanel/icons/{CommunicationPanelConfirmSpinner.vue2.js → CommunicationPanelConfirmSpinner.vue.js} +1 -1
  10. package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelUnconfirmedIcon.vue.js +19 -0
  11. package/dist/themes/dark.css +1 -1
  12. package/dist/themes/default.css +1 -1
  13. package/dist/themes/glass.css +1 -1
  14. package/dist/themes/green.css +1 -1
  15. package/dist/themes/mobilon1.css +1 -1
  16. package/dist/types/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.d.ts +2 -0
  17. package/dist/types/components/2_blocks/CommunicationPanel/CommunicationPanelAttributeIndicator.vue.d.ts +2 -2
  18. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.d.ts +10 -1
  19. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationAttributes.d.ts +23 -2
  20. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.d.ts +1 -0
  21. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationRecentSelection.d.ts +20 -0
  22. package/dist/types/components/2_blocks/CommunicationPanel/icons/CommunicationPanelUnconfirmedIcon.vue.d.ts +2 -0
  23. package/dist/types/components/2_blocks/CommunicationPanel/icons/index.d.ts +1 -0
  24. package/dist/types/components/2_blocks/CommunicationPanel/stories/CommunicationPanel.stories.d.ts +2 -0
  25. package/dist/types/components/2_blocks/CommunicationPanel/styles/types.d.ts +42 -10
  26. package/package.json +1 -1
@@ -1,33 +1,31 @@
1
- import { ref as d, computed as i, watch as H, onMounted as Ue, onUnmounted as Ge, createElementBlock as a, openBlock as l, createCommentVNode as m, unref as n, Fragment as I, renderList as W, normalizeClass as v, createBlock as C, createVNode as B, createElementVNode as c, withCtx as U, resolveDynamicComponent as T, toDisplayString as N, normalizeStyle as Je, nextTick as ye } from "vue";
2
- import G from "../../1_atoms/Tooltip/Tooltip.vue.js";
3
- import { useCommunicationChannels as Ke } from "./composables/useCommunicationChannels.js";
4
- import { useCommunicationMenu as Qe } from "./composables/useCommunicationMenu.js";
5
- import { useCommunicationAttributes as Xe, isAttributeBlocked as Ye, getAttributeStatusClass as ve, isAttributeConfirming as Ce } from "./composables/useCommunicationAttributes.js";
6
- import { useCommunicationActions as Ze } from "./composables/useCommunicationActions.js";
7
- import { useCommunicationSubMenu as et } from "./composables/useCommunicationSubMenu.js";
8
- import { useCommunicationDialogSync as tt } from "./composables/useCommunicationDialogSync.js";
9
- import { useCommunicationPlaceholder as nt } from "./composables/useCommunicationPlaceholder.js";
10
- import be from "./CommunicationPanelAttributeIndicator.vue.js";
11
- import ot from "./icons/CommunicationPanelCheckIcon.vue.js";
12
- /* empty css */
13
- import lt from "../../../_virtual/_plugin-vue_export-helper.js";
1
+ import { ref as m, computed as a, watch as j, onMounted as at, onUnmounted as it, createElementBlock as u, openBlock as l, createCommentVNode as y, unref as n, Fragment as w, renderList as te, normalizeClass as g, createBlock as v, createVNode as ne, createElementVNode as d, withCtx as oe, resolveDynamicComponent as _, toDisplayString as z, normalizeStyle as ut, nextTick as le } from "vue";
2
+ import se from "../../1_atoms/Tooltip/Tooltip.vue.js";
3
+ import { useCommunicationChannels as rt } from "./composables/useCommunicationChannels.js";
4
+ import { useCommunicationMenu as ct } from "./composables/useCommunicationMenu.js";
5
+ import { useCommunicationAttributes as dt, isAttributeBlocked as ft, getAttributeStatusClass as Re, isAttributeConfirming as qe, getSubMenuChannelIndicatorType as pt, getSubMenuChannelIndicatorClass as mt } from "./composables/useCommunicationAttributes.js";
6
+ import { useCommunicationActions as vt } from "./composables/useCommunicationActions.js";
7
+ import { useCommunicationSubMenu as ht } from "./composables/useCommunicationSubMenu.js";
8
+ import { useCommunicationDialogSync as yt } from "./composables/useCommunicationDialogSync.js";
9
+ import { useCommunicationPlaceholder as Ct } from "./composables/useCommunicationPlaceholder.js";
10
+ import Pe from "./CommunicationPanelAttributeIndicator.vue.js";
11
+ import bt from "./icons/CommunicationPanelCheckIcon.vue.js";
12
+ import gt from "./icons/CommunicationPanelUnconfirmedIcon.vue.js";
13
+ import kt from "./icons/CommunicationPanelConfirmSpinner.vue.js";
14
+ import It from "../../../_virtual/_plugin-vue_export-helper.js";
14
15
  /* empty css */
15
- const st = ["onClick", "onMouseenter"], at = { class: "channel-icon" }, it = { class: "channel-icon" }, ut = {
16
+ const At = ["data-channel-type", "onClick", "onMouseenter"], Tt = { class: "channel-icon" }, Mt = { class: "channel-icon" }, St = {
16
17
  key: 1,
17
18
  class: "attributes-menu"
18
- }, rt = {
19
+ }, wt = {
19
20
  key: 0,
20
21
  class: "empty-channels-placeholder"
21
- }, ct = ["data-attribute-status", "onMouseenter", "onClick"], dt = { class: "attribute-info" }, ft = { class: "attribute-value" }, mt = { class: "menu-icon" }, pt = {
22
+ }, _t = ["data-attribute-status", "onMouseenter", "onClick"], Dt = { class: "attribute-info" }, Rt = { class: "attribute-value" }, qt = { class: "menu-icon" }, Pt = {
22
23
  key: 0,
23
24
  class: "menu-icon-arrow"
24
- }, ht = ["data-attribute-status", "onMouseenter", "onClick"], yt = { class: "attribute-info" }, vt = { class: "attribute-value" }, Ct = { class: "menu-icon" }, bt = {
25
+ }, xt = ["data-attribute-status", "onMouseenter", "onClick"], Ot = { class: "attribute-info" }, Bt = { class: "attribute-value" }, Nt = { class: "menu-icon" }, Et = {
25
26
  key: 0,
26
27
  class: "menu-icon-arrow"
27
- }, gt = ["onClick"], kt = {
28
- key: 0,
29
- class: "selected-indicator"
30
- }, At = { class: "sub-menu-title" }, It = {
28
+ }, $t = ["onClick"], jt = { class: "sub-menu-indicator-slot" }, zt = { class: "sub-menu-title" }, Ft = {
31
29
  __name: "CommunicationPanel",
32
30
  props: {
33
31
  contactAttributes: {
@@ -121,6 +119,15 @@ const st = ["onClick", "onMouseenter"], at = { class: "channel-icon" }, it = { c
121
119
  type: Number,
122
120
  required: !1,
123
121
  default: 3e3
122
+ },
123
+ /**
124
+ * Последний выбор attribute+channel per тип кнопки (whatsapp/telegram/max/sms/phone).
125
+ * Используется для one-click при переключении между мессенджерами.
126
+ */
127
+ recentAttributeChannels: {
128
+ type: Object,
129
+ required: !1,
130
+ default: () => ({})
124
131
  }
125
132
  },
126
133
  emits: [
@@ -129,346 +136,408 @@ const st = ["onClick", "onMouseenter"], at = { class: "channel-icon" }, it = { c
129
136
  "phone-call",
130
137
  "reset-blocked-attributes"
131
138
  ],
132
- setup(f, { emit: ge }) {
133
- const s = f, J = ge, P = d(null), ke = d(null), E = d(null), z = d(null), M = d(null), $ = d({}), b = d(!1), S = d(null), p = d(null), w = d(null), g = i(
134
- () => s.confirmingAttributeId ?? w.value
135
- ), j = i(() => s.blockedAttributeIds ?? []), k = (t) => Ye(t, j.value), F = i(() => s.channels ?? []), Ae = i(() => s.channelOrder), Ie = i(() => s.visibleChannelTypes), Te = i(() => s.channelTooltips ?? {}), Me = i(() => s.attributeTooltips ?? {}), K = i(() => s.attributeIndicatorTooltips ?? {}), Q = i(() => s.messages ?? []), Se = i(() => s.selectedChat ?? null), X = i(() => s.isNewDialog ?? !1), we = i(() => {
136
- var t;
137
- return ((t = s.selectedDialog) == null ? void 0 : t.channelId) ?? null;
138
- }), Y = (t) => we.value === t, _e = i(() => {
139
- var t;
140
- return ((t = s.selectedDialog) == null ? void 0 : t.attributeId) ?? null;
141
- }), _ = (t) => {
142
- const o = _e.value;
143
- if (!o || !t)
139
+ setup(h, { emit: xe }) {
140
+ const i = h, ae = xe, F = m(null), Oe = m(null), D = m(null), R = m(null), T = m(null), L = m({}), V = m(null), A = m(!1), q = m(null), C = m(null), P = m(null), k = a(
141
+ () => i.confirmingAttributeId ?? P.value
142
+ ), W = a(() => i.blockedAttributeIds ?? []), M = (e) => ft(e, W.value), H = a(() => i.channels ?? []), Be = a(() => i.channelOrder), Ne = a(() => i.visibleChannelTypes), Ee = a(() => i.channelTooltips ?? {}), $e = a(() => i.attributeTooltips ?? {}), ie = a(() => i.attributeIndicatorTooltips ?? {}), ue = a(() => i.recentAttributeChannels ?? {}), re = a(() => i.messages ?? []), je = a(() => i.selectedChat ?? null), ce = a(() => i.isNewDialog ?? !1), de = a(() => {
143
+ var e;
144
+ return ((e = i.selectedDialog) == null ? void 0 : e.channelId) ?? null;
145
+ }), x = (e, o) => {
146
+ if (!o || !e)
147
+ return !1;
148
+ const t = e.id ?? e.attributeId;
149
+ if (!t)
144
150
  return !1;
145
- const e = t.id ?? t.attributeId;
146
- return o === e;
147
- }, Z = (t) => {
148
- const o = Me.value, e = (t == null ? void 0 : t.attributeId) ?? (t == null ? void 0 : t.id);
149
- if (e != null) {
150
- const u = o[String(e)];
151
- if (u)
152
- return u;
151
+ const s = o.includes(".") ? o.split(".").pop() : o;
152
+ return o === t || t === s || t.endsWith(`.${s}`);
153
+ }, fe = (e) => {
154
+ const o = $e.value, t = (e == null ? void 0 : e.attributeId) ?? (e == null ? void 0 : e.id);
155
+ if (t != null) {
156
+ const s = o[String(t)];
157
+ if (s)
158
+ return s;
153
159
  }
154
- return t != null && t.value ? o[String(t.value)] ?? "" : "";
155
- }, De = (t) => !!Z(t), {
156
- panelChannelTypes: Re,
157
- channelsTypes: ee,
158
- getTooltipText: qe,
159
- getChannelTypeFromId: xe,
160
- hasMultipleChannels: A,
161
- isChannelActive: D,
162
- getSingleChannelForType: Oe,
163
- getMenuChannelIconComponentForChannelId: Be,
164
- getSingleMenuChannelIconComponent: te,
165
- getAvailableChannels: ne
166
- } = Ke({
167
- channels: F,
168
- channelTooltips: Te,
169
- channelOrder: Ae,
170
- visibleChannelTypes: Ie,
171
- selectedChannelType: M
160
+ return e != null && e.value ? o[String(e.value)] ?? "" : "";
161
+ }, ze = (e) => !!fe(e), {
162
+ panelChannelTypes: Fe,
163
+ channelsTypes: pe,
164
+ getTooltipText: Le,
165
+ getChannelTypeFromId: Ve,
166
+ hasMultipleChannels: S,
167
+ isChannelActive: O,
168
+ getSingleChannelForType: We,
169
+ getMenuChannelIconComponentForChannelId: He,
170
+ getSingleMenuChannelIconComponent: me,
171
+ getAvailableChannels: ve
172
+ } = rt({
173
+ channels: H,
174
+ channelTooltips: Ee,
175
+ channelOrder: Be,
176
+ visibleChannelTypes: Ne,
177
+ selectedChannelType: T
172
178
  }), {
173
179
  activeChannelType: r,
174
- hoveredChannel: R,
175
- showMenu: q,
176
- showSubMenu: L,
177
- handleChannelClick: Ne,
178
- closeMenu: oe,
179
- handleClickOutside: le
180
- } = Qe({
181
- panelRef: P,
182
- selectedChannelType: M,
183
- frozenAttribute: z
184
- }), V = i(() => s.contactAttributes ?? []), se = (t) => {
185
- var h;
186
- if (!t || !Q.value) return !0;
187
- const o = (h = Se.value) == null ? void 0 : h.chatId;
188
- return o ? !Q.value.filter(
189
- (y) => {
190
- var he;
191
- return y.chatId === o && y.dialogId === ((he = s.selectedDialog) == null ? void 0 : he.dialogId);
180
+ hoveredChannel: B,
181
+ showMenu: b,
182
+ showSubMenu: U,
183
+ handleChannelClick: Ue,
184
+ openMenu: Ge,
185
+ closeMenu: G,
186
+ handleClickOutside: he
187
+ } = ct({
188
+ panelRef: F,
189
+ selectedChannelType: T,
190
+ frozenAttribute: R
191
+ }), J = a(() => {
192
+ var e;
193
+ return ((e = i.selectedDialog) == null ? void 0 : e.attributeId) ?? null;
194
+ }), ye = a(() => {
195
+ if (!b.value || !r.value)
196
+ return null;
197
+ const e = V.value;
198
+ return e && e.channelType === r.value ? e : null;
199
+ }), K = (e) => {
200
+ var De;
201
+ const o = typeof e == "string" ? e : e == null ? void 0 : e.channelId, t = typeof e == "object" && e != null ? e.backendChannelId : void 0, s = (p, ee) => !p || !ee ? !1 : !!(p === ee || t && (p === t || ee === t)), c = ye.value;
202
+ if (c != null && c.channelId && s(c.channelId, o))
203
+ return !0;
204
+ const f = r.value, I = Q.value;
205
+ if (b.value && f && I) {
206
+ const p = (De = ue.value) == null ? void 0 : De[f];
207
+ if (p != null && p.channelId && (p != null && p.attributeId) && x(I, p.attributeId) && s(p.channelId, o))
208
+ return !0;
209
+ }
210
+ return b.value && f && I && J.value && x(I, J.value) && s(de.value, o) ? !0 : s(de.value, o);
211
+ }, N = (e) => {
212
+ const o = ye.value;
213
+ return o != null && o.attributeId ? x(e, o.attributeId) : x(e, J.value);
214
+ }, Q = a(() => D.value ?? R.value ?? null), Ce = (e) => {
215
+ const o = e == null ? void 0 : e.backendChannelId;
216
+ return o ? [o] : [];
217
+ }, X = (e) => pt(
218
+ Q.value,
219
+ e.channelId,
220
+ K(e),
221
+ k.value,
222
+ Ce(e)
223
+ ), Je = (e) => mt(
224
+ Q.value,
225
+ e.channelId,
226
+ K(e),
227
+ k.value,
228
+ Ce(e)
229
+ ) ?? "", Y = a(() => i.contactAttributes ?? []), be = (e) => {
230
+ var c;
231
+ if (!e || !re.value) return !0;
232
+ const o = (c = je.value) == null ? void 0 : c.chatId;
233
+ return o ? !re.value.filter(
234
+ (f) => {
235
+ var I;
236
+ return f.chatId === o && f.dialogId === ((I = i.selectedDialog) == null ? void 0 : I.dialogId);
192
237
  }
193
238
  ).some(
194
- (y) => y.type !== "message.system" && y.type !== "message.delimiter" && y.type !== "system" && y.type !== "system_message" && y.type !== "notification"
239
+ (f) => f.type !== "message.system" && f.type !== "message.delimiter" && f.type !== "system" && f.type !== "system_message" && f.type !== "notification"
195
240
  ) : !0;
196
- }, ae = () => {
197
- x(), b.value = !0, ye(() => {
198
- const t = Array.isArray(p.value) ? p.value[0] : p.value;
199
- t && typeof t.startAutoShow == "function" ? t.startAutoShow() : console.log("startAutoShow method not found on tooltipRef");
200
- }), S.value = setTimeout(() => {
201
- b.value = !1;
241
+ }, ge = () => {
242
+ E(), A.value = !0, le(() => {
243
+ const e = Array.isArray(C.value) ? C.value[0] : C.value;
244
+ e && typeof e.startAutoShow == "function" ? e.startAutoShow() : console.log("startAutoShow method not found on tooltipRef");
245
+ }), q.value = setTimeout(() => {
246
+ A.value = !1;
202
247
  }, 5e3);
203
- }, x = () => {
204
- if (S.value && (clearTimeout(S.value), S.value = null), p.value) {
205
- const t = Array.isArray(p.value) ? p.value[0] : p.value;
206
- t && typeof t.clearAutoTimer == "function" && t.clearAutoTimer();
248
+ }, E = () => {
249
+ if (q.value && (clearTimeout(q.value), q.value = null), C.value) {
250
+ const e = Array.isArray(C.value) ? C.value[0] : C.value;
251
+ e && typeof e.clearAutoTimer == "function" && e.clearAutoTimer();
207
252
  }
208
- b.value = !1;
253
+ A.value = !1;
209
254
  }, {
210
- organizedContactAttributes: ie,
211
- organizeContactAttributes: Pe,
212
- isAttributeFrozen: ue
213
- } = Xe({
214
- contactAttributes: V,
215
- panelChannelTypes: Re,
216
- frozenAttribute: z
255
+ organizedContactAttributes: Z,
256
+ organizeContactAttributes: Ke,
257
+ isAttributeFrozen: ke
258
+ } = dt({
259
+ contactAttributes: Y,
260
+ panelChannelTypes: Fe,
261
+ frozenAttribute: R
217
262
  }), {
218
- handleAttributeClick: Ee,
219
- selectChannel: ze,
220
- availableChannels: $e
221
- } = Ze({
263
+ handleAttributeClick: Qe,
264
+ selectChannel: Xe,
265
+ availableChannels: Ye,
266
+ applyRecentChannelButtonSelection: Ze,
267
+ clearPanelPendingSelection: Ie
268
+ } = vt({
222
269
  activeChannelType: r,
223
- channels: F,
224
- selectedChannel: $,
225
- selectedChannelType: M,
226
- hoveredAttribute: E,
227
- confirmingAttributeId: w,
228
- isAttributeBlocked: k,
229
- closeMenu: oe,
230
- hasMultipleChannels: A,
231
- getSingleChannelForType: Oe,
232
- getAvailableChannels: ne,
233
- isChannelEmpty: se,
234
- isNewDialog: X,
235
- showDefaultChannelTooltipWithTimer: ae,
236
- clearDefaultChannelTooltip: x,
237
- emit: J
270
+ channels: H,
271
+ selectedChannel: L,
272
+ selectedChannelType: T,
273
+ hoveredAttribute: D,
274
+ confirmingAttributeId: P,
275
+ isAttributeBlocked: M,
276
+ closeMenu: G,
277
+ hasMultipleChannels: S,
278
+ getSingleChannelForType: We,
279
+ getAvailableChannels: ve,
280
+ isChannelEmpty: be,
281
+ isNewDialog: ce,
282
+ showDefaultChannelTooltipWithTimer: ge,
283
+ clearDefaultChannelTooltip: E,
284
+ emit: ae,
285
+ panelPendingSelection: V
238
286
  }), {
239
- subMenuTop: je,
240
- handleAttributeMouseEnter: Fe,
241
- handleAttributeMouseLeave: O,
242
- keepSubMenuOpen: re,
243
- closeSubMenu: ce,
244
- alignSubMenuWithTarget: Le
245
- } = et({
287
+ subMenuTop: et,
288
+ handleAttributeMouseEnter: tt,
289
+ handleAttributeMouseLeave: $,
290
+ keepSubMenuOpen: Ae,
291
+ closeSubMenu: Te,
292
+ alignSubMenuWithTarget: nt
293
+ } = ht({
246
294
  activeChannelType: r,
247
- showSubMenu: L,
248
- frozenAttribute: z,
249
- hoveredAttribute: E,
250
- hasMultipleChannels: A,
251
- isAttributeBlocked: k
252
- }), Ve = (t) => {
253
- q.value && r.value === t || J("reset-blocked-attributes"), Ne(t);
254
- }, de = (t) => {
255
- k(t) || Ee(t);
295
+ showSubMenu: U,
296
+ frozenAttribute: R,
297
+ hoveredAttribute: D,
298
+ hasMultipleChannels: S,
299
+ isAttributeBlocked: M
300
+ }), ot = async (e) => {
301
+ if (b.value && r.value === e) {
302
+ G();
303
+ return;
304
+ }
305
+ ae("reset-blocked-attributes");
306
+ const t = T.value !== e;
307
+ Ue(e), t ? (Ze(
308
+ e,
309
+ ue.value,
310
+ Z.value
311
+ ), await le(), Ge(e)) : V.value = null;
312
+ };
313
+ j(b, (e) => {
314
+ e || Ie();
315
+ });
316
+ const Me = (e) => {
317
+ M(e) || Qe(e);
256
318
  };
257
- tt({
258
- selectedChannelType: M,
259
- selectedChannel: $,
260
- channels: F,
261
- selectedDialog: i(() => s.selectedDialog ?? null),
262
- isChannelEmpty: se,
263
- isNewDialog: X,
264
- showDefaultChannelTooltipWithTimer: ae,
265
- clearDefaultChannelTooltip: x
319
+ yt({
320
+ selectedChannelType: T,
321
+ selectedChannel: L,
322
+ channels: H,
323
+ selectedDialog: a(() => i.selectedDialog ?? null),
324
+ isChannelEmpty: be,
325
+ isNewDialog: ce,
326
+ showDefaultChannelTooltipWithTimer: ge,
327
+ clearDefaultChannelTooltip: E
266
328
  });
267
329
  const {
268
- emptyChannelsPlaceholderText: He,
269
- shouldShowEmptyChannelsPlaceholder: fe
270
- } = nt({
271
- showMenu: q,
330
+ emptyChannelsPlaceholderText: lt,
331
+ shouldShowEmptyChannelsPlaceholder: Se
332
+ } = Ct({
333
+ showMenu: b,
272
334
  activeChannelType: r,
273
- emptyChannelsPlaceholder: i(() => s.emptyChannelsPlaceholder ?? {}),
274
- getAvailableChannels: ne,
275
- organizedContactAttributes: ie
276
- }), me = i(
277
- () => $e()
278
- ), We = i(
279
- () => L.value && E.value && me.value.length > 0 && r.value !== "phone" && A(r.value)
280
- ), pe = async (t, o) => {
281
- const e = Fe(t, o.currentTarget);
282
- await ye(), e instanceof HTMLElement && Le(P, e);
335
+ emptyChannelsPlaceholder: a(() => i.emptyChannelsPlaceholder ?? {}),
336
+ getAvailableChannels: ve,
337
+ organizedContactAttributes: Z
338
+ }), we = a(
339
+ () => Ye()
340
+ ), st = a(
341
+ () => U.value && D.value && we.value.length > 0 && r.value !== "phone" && S(r.value)
342
+ ), _e = async (e, o) => {
343
+ const t = tt(e, o.currentTarget);
344
+ await le(), t instanceof HTMLElement && nt(F, t);
283
345
  };
284
- return H(() => s.confirmingAttributeId, (t) => {
285
- t || (w.value = null);
286
- }), H(V, () => {
287
- const t = g.value;
288
- if (!t)
346
+ return j(() => i.confirmingAttributeId, (e) => {
347
+ e || (P.value = null);
348
+ }), j(Y, () => {
349
+ const e = k.value;
350
+ if (!e)
289
351
  return;
290
- const o = V.value.find((e) => e.id === t);
291
- (o == null ? void 0 : o.status) === "confirmed" && (w.value = null, oe());
292
- }, { deep: !0 }), H(() => s.selectedDialog, () => {
293
- }, { deep: !0 }), Ue(() => {
294
- document.addEventListener("click", le), Pe();
295
- }), Ge(() => {
296
- document.removeEventListener("click", le), x();
297
- }), (t, o) => (l(), a("div", {
352
+ const o = Y.value.find((t) => t.id === e);
353
+ (o == null ? void 0 : o.status) === "confirmed" && (P.value = null, G());
354
+ }, { deep: !0 }), j(() => i.selectedDialog, () => {
355
+ Ie();
356
+ }, { deep: !0 }), at(() => {
357
+ document.addEventListener("click", he), Ke();
358
+ }), it(() => {
359
+ document.removeEventListener("click", he), E();
360
+ }), (e, o) => (l(), u("div", {
298
361
  ref_key: "panelRef",
299
- ref: P,
362
+ ref: F,
300
363
  class: "communication-panel"
301
364
  }, [
302
- n(ee).length ? (l(), a("div", {
365
+ n(pe).length ? (l(), u("div", {
303
366
  key: 0,
304
367
  ref_key: "channelsPanelRef",
305
- ref: ke,
368
+ ref: Oe,
306
369
  class: "channels-panel"
307
370
  }, [
308
- (l(!0), a(I, null, W(n(ee), (e) => {
309
- var u;
310
- return l(), a("button", {
311
- key: e.type,
312
- class: v(["channel-btn", {
313
- active: n(D)(e.type),
314
- hover: n(R) === e.type && !n(D)(e.type) || n(R) === e.type && n(D)(e.type),
315
- menuOpen: n(q) && n(r) === e.type
371
+ (l(!0), u(w, null, te(n(pe), (t) => {
372
+ var s;
373
+ return l(), u("button", {
374
+ key: t.type,
375
+ "data-channel-type": t.type,
376
+ class: g(["channel-btn", {
377
+ active: n(O)(t.type),
378
+ hover: n(B) === t.type && !n(O)(t.type) || n(B) === t.type && n(O)(t.type),
379
+ menuOpen: n(b) && n(r) === t.type
316
380
  }]),
317
- onClick: (h) => Ve(e.type),
318
- onMouseenter: (h) => R.value = e.type,
319
- onMouseleave: o[0] || (o[0] = (h) => R.value = null)
381
+ onClick: (c) => ot(t.type),
382
+ onMouseenter: (c) => B.value = t.type,
383
+ onMouseleave: o[0] || (o[0] = (c) => B.value = null)
320
384
  }, [
321
- n(D)(e.type) ? (l(), a(I, { key: 0 }, [
322
- B(G, {
385
+ n(O)(t.type) ? (l(), u(w, { key: 0 }, [
386
+ ne(se, {
323
387
  ref_for: !0,
324
- ref: (h) => {
325
- h && (p.value = h);
388
+ ref: (c) => {
389
+ c && (C.value = c);
326
390
  },
327
- text: b.value ? "Выбран канал по умолчанию, можно изменить в настройках профиля" : (u = $.value) == null ? void 0 : u.title,
391
+ text: A.value ? "Выбран канал по умолчанию, можно изменить в настройках профиля" : (s = L.value) == null ? void 0 : s.title,
328
392
  position: "bottom-left",
329
393
  offset: 8,
330
- delay: f.tooltipDelay,
394
+ delay: h.tooltipDelay,
331
395
  "hide-on-click": "",
332
- trigger: b.value ? "auto" : "hover",
333
- "auto-show-duration": b.value ? 5e3 : 0
396
+ trigger: A.value ? "auto" : "hover",
397
+ "auto-show-duration": A.value ? 5e3 : 0
334
398
  }, {
335
- default: U(() => [
336
- c("span", at, [
337
- (l(), C(T(e.component)))
399
+ default: oe(() => [
400
+ d("span", Tt, [
401
+ (l(), v(_(t.component)))
338
402
  ])
339
403
  ]),
340
404
  _: 2
341
405
  }, 1032, ["text", "delay", "trigger", "auto-show-duration"]),
342
- o[5] || (o[5] = c("span", { class: "active-indicator" }, null, -1))
343
- ], 64)) : (l(), C(G, {
406
+ o[5] || (o[5] = d("span", { class: "active-indicator" }, null, -1))
407
+ ], 64)) : (l(), v(se, {
344
408
  key: 1,
345
- text: n(qe)(e.type),
409
+ text: n(Le)(t.type),
346
410
  position: "bottom-left",
347
411
  offset: 8,
348
- delay: f.tooltipDelay,
412
+ delay: h.tooltipDelay,
349
413
  "hide-on-click": ""
350
414
  }, {
351
- default: U(() => [
352
- c("span", it, [
353
- (l(), C(T(e.component)))
415
+ default: oe(() => [
416
+ d("span", Mt, [
417
+ (l(), v(_(t.component)))
354
418
  ])
355
419
  ]),
356
420
  _: 2
357
421
  }, 1032, ["text", "delay"]))
358
- ], 42, st);
422
+ ], 42, At);
359
423
  }), 128))
360
- ], 512)) : m("", !0),
361
- n(q) && n(r) ? (l(), a("div", ut, [
362
- n(fe) ? (l(), a("div", rt, N(n(He)), 1)) : m("", !0),
363
- n(fe) ? m("", !0) : (l(!0), a(I, { key: 1 }, W(n(ie)[n(r)], (e) => (l(), a(I, {
364
- key: e.attributeId
424
+ ], 512)) : y("", !0),
425
+ n(b) && n(r) ? (l(), u("div", St, [
426
+ n(Se) ? (l(), u("div", wt, z(n(lt)), 1)) : y("", !0),
427
+ n(Se) ? y("", !0) : (l(!0), u(w, { key: 1 }, te(n(Z)[n(r)], (t) => (l(), u(w, {
428
+ key: t.attributeId
365
429
  }, [
366
- De(e) ? (l(), C(G, {
430
+ ze(t) ? (l(), v(se, {
367
431
  key: 0,
368
- text: Z(e),
432
+ text: fe(t),
369
433
  position: "bottom-left",
370
434
  offset: 8,
371
- delay: f.tooltipDelay,
435
+ delay: h.tooltipDelay,
372
436
  "hide-on-click": ""
373
437
  }, {
374
- default: U(() => [
375
- c("div", {
376
- class: v(["attribute-item", n(ve)(e), {
377
- "frozen-hover": n(ue)(e),
378
- selected: _(e),
379
- confirming: n(Ce)(e, g.value),
380
- blocked: k(e)
438
+ default: oe(() => [
439
+ d("div", {
440
+ class: g(["attribute-item", n(Re)(t), {
441
+ "frozen-hover": n(ke)(t),
442
+ selected: N(t),
443
+ confirming: n(qe)(t, k.value),
444
+ blocked: M(t)
381
445
  }]),
382
- "data-attribute-status": e.status,
383
- onMouseenter: (u) => pe(e, u),
384
- onMouseleave: o[1] || (o[1] = (...u) => n(O) && n(O)(...u)),
385
- onClick: (u) => de(e)
446
+ "data-attribute-status": t.status,
447
+ onMouseenter: (s) => _e(t, s),
448
+ onMouseleave: o[1] || (o[1] = (...s) => n($) && n($)(...s)),
449
+ onClick: (s) => Me(t)
386
450
  }, [
387
- c("div", dt, [
388
- B(be, {
389
- attribute: e,
390
- "is-selected": _(e),
391
- "confirming-attribute-id": g.value,
392
- "blocked-attribute-ids": j.value,
393
- "indicator-tooltips": K.value,
394
- "tooltip-delay": f.tooltipDelay
451
+ d("div", Dt, [
452
+ ne(Pe, {
453
+ attribute: t,
454
+ "is-selected": N(t),
455
+ "confirming-attribute-id": k.value,
456
+ "blocked-attribute-ids": W.value,
457
+ "indicator-tooltips": ie.value,
458
+ "tooltip-delay": h.tooltipDelay
395
459
  }, null, 8, ["attribute", "is-selected", "confirming-attribute-id", "blocked-attribute-ids", "indicator-tooltips", "tooltip-delay"]),
396
- c("span", ft, N(e.value), 1)
460
+ d("span", Rt, z(t.value), 1)
397
461
  ]),
398
- c("span", mt, [
399
- n(A)(n(r)) ? (l(), a("span", pt)) : f.showChannelIcons ? (l(), a("span", {
462
+ d("span", qt, [
463
+ n(S)(n(r)) ? (l(), u("span", Pt)) : h.showChannelIcons ? (l(), u("span", {
400
464
  key: 1,
401
- class: v(["channel-icon-small", { "menu-icon-grey": n(r) !== "sms" }])
465
+ class: g(["channel-icon-small", { "menu-icon-grey": n(r) !== "sms" }])
402
466
  }, [
403
- (l(), C(T(n(te)(n(r)))))
404
- ], 2)) : m("", !0)
467
+ (l(), v(_(n(me)(n(r)))))
468
+ ], 2)) : y("", !0)
405
469
  ])
406
- ], 42, ct)
470
+ ], 42, _t)
407
471
  ]),
408
472
  _: 2
409
- }, 1032, ["text", "delay"])) : (l(), a("div", {
473
+ }, 1032, ["text", "delay"])) : (l(), u("div", {
410
474
  key: 1,
411
- class: v(["attribute-item", n(ve)(e), {
412
- "frozen-hover": n(ue)(e),
413
- selected: _(e),
414
- confirming: n(Ce)(e, g.value),
415
- blocked: k(e)
475
+ class: g(["attribute-item", n(Re)(t), {
476
+ "frozen-hover": n(ke)(t),
477
+ selected: N(t),
478
+ confirming: n(qe)(t, k.value),
479
+ blocked: M(t)
416
480
  }]),
417
- "data-attribute-status": e.status,
418
- onMouseenter: (u) => pe(e, u),
419
- onMouseleave: o[2] || (o[2] = (...u) => n(O) && n(O)(...u)),
420
- onClick: (u) => de(e)
481
+ "data-attribute-status": t.status,
482
+ onMouseenter: (s) => _e(t, s),
483
+ onMouseleave: o[2] || (o[2] = (...s) => n($) && n($)(...s)),
484
+ onClick: (s) => Me(t)
421
485
  }, [
422
- c("div", yt, [
423
- B(be, {
424
- attribute: e,
425
- "is-selected": _(e),
426
- "confirming-attribute-id": g.value,
427
- "blocked-attribute-ids": j.value,
428
- "indicator-tooltips": K.value,
429
- "tooltip-delay": f.tooltipDelay
486
+ d("div", Ot, [
487
+ ne(Pe, {
488
+ attribute: t,
489
+ "is-selected": N(t),
490
+ "confirming-attribute-id": k.value,
491
+ "blocked-attribute-ids": W.value,
492
+ "indicator-tooltips": ie.value,
493
+ "tooltip-delay": h.tooltipDelay
430
494
  }, null, 8, ["attribute", "is-selected", "confirming-attribute-id", "blocked-attribute-ids", "indicator-tooltips", "tooltip-delay"]),
431
- c("span", vt, N(e.value), 1)
495
+ d("span", Bt, z(t.value), 1)
432
496
  ]),
433
- c("span", Ct, [
434
- n(A)(n(r)) ? (l(), a("span", bt)) : f.showChannelIcons ? (l(), a("span", {
497
+ d("span", Nt, [
498
+ n(S)(n(r)) ? (l(), u("span", Et)) : h.showChannelIcons ? (l(), u("span", {
435
499
  key: 1,
436
- class: v(["channel-icon-small", { "menu-icon-grey": n(r) !== "sms" }])
500
+ class: g(["channel-icon-small", { "menu-icon-grey": n(r) !== "sms" }])
437
501
  }, [
438
- (l(), C(T(n(te)(n(r)))))
439
- ], 2)) : m("", !0)
502
+ (l(), v(_(n(me)(n(r)))))
503
+ ], 2)) : y("", !0)
440
504
  ])
441
- ], 42, ht))
505
+ ], 42, xt))
442
506
  ], 64))), 128)),
443
- n(L) && We.value ? (l(), a("div", {
507
+ n(U) && st.value ? (l(), u("div", {
444
508
  key: 2,
445
509
  class: "sub-menu left",
446
- style: Je({ top: n(je) + "px" }),
447
- onMouseenter: o[3] || (o[3] = (...e) => n(re) && n(re)(...e)),
448
- onMouseleave: o[4] || (o[4] = (...e) => n(ce) && n(ce)(...e))
510
+ style: ut({ top: n(et) + "px" }),
511
+ onMouseenter: o[3] || (o[3] = (...t) => n(Ae) && n(Ae)(...t)),
512
+ onMouseleave: o[4] || (o[4] = (...t) => n(Te) && n(Te)(...t))
449
513
  }, [
450
- o[6] || (o[6] = c("div", { class: "sub-menu-header" }, " Канал связи ", -1)),
451
- (l(!0), a(I, null, W(me.value, (e) => (l(), a("div", {
452
- key: e.channelId,
453
- class: v(["sub-menu-item", { selected: Y(e.channelId) }]),
454
- onClick: (u) => n(ze)(e.channelId)
514
+ o[6] || (o[6] = d("div", { class: "sub-menu-header" }, " Канал связи ", -1)),
515
+ (l(!0), u(w, null, te(we.value, (t) => (l(), u("div", {
516
+ key: t.channelId,
517
+ class: g(["sub-menu-item", { selected: K(t) }]),
518
+ onClick: (s) => n(Xe)(t.channelId)
455
519
  }, [
456
- Y(e.channelId) ? (l(), a("span", kt, [
457
- B(n(ot))
458
- ])) : m("", !0),
459
- c("span", At, N(e.title || e.channelId), 1),
460
- f.showChannelIcons ? (l(), a("span", {
461
- key: 1,
462
- class: v(["sub-menu-icon", { "menu-icon-grey": n(xe)(e.channelId) !== "sms" }])
520
+ d("span", jt, [
521
+ X(t) ? (l(), u("span", {
522
+ key: 0,
523
+ class: g(Je(t))
524
+ }, [
525
+ X(t) === "spinner" ? (l(), v(n(kt), { key: 0 })) : X(t) === "unconfirmed" ? (l(), v(n(gt), { key: 1 })) : (l(), v(n(bt), { key: 2 }))
526
+ ], 2)) : y("", !0)
527
+ ]),
528
+ d("span", zt, z(t.title || t.channelId), 1),
529
+ h.showChannelIcons ? (l(), u("span", {
530
+ key: 0,
531
+ class: g(["sub-menu-icon", { "menu-icon-grey": n(Ve)(t.channelId) !== "sms" }])
463
532
  }, [
464
- (l(), C(T(n(Be)(e.channelId))))
465
- ], 2)) : m("", !0)
466
- ], 10, gt))), 128))
467
- ], 36)) : m("", !0)
468
- ])) : m("", !0)
533
+ (l(), v(_(n(He)(t.channelId))))
534
+ ], 2)) : y("", !0)
535
+ ], 10, $t))), 128))
536
+ ], 36)) : y("", !0)
537
+ ])) : y("", !0)
469
538
  ], 512));
470
539
  }
471
- }, zt = /* @__PURE__ */ lt(It, [["__scopeId", "data-v-edc05ad5"]]);
540
+ }, on = /* @__PURE__ */ It(Ft, [["__scopeId", "data-v-d02b223f"]]);
472
541
  export {
473
- zt as default
542
+ on as default
474
543
  };