@topvisor/ui 1.4.3-projectSelector.1 → 1.4.3-updateGroupSelector.2

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 (41) hide show
  1. package/.chunks/policy.vue_vue_type_style_index_0_lang-6S_OFLu6.amd.js +2 -0
  2. package/.chunks/policy.vue_vue_type_style_index_0_lang-6S_OFLu6.amd.js.map +1 -0
  3. package/.chunks/policy.vue_vue_type_style_index_0_lang-BRUOmEM8.es.js +498 -0
  4. package/.chunks/policy.vue_vue_type_style_index_0_lang-BRUOmEM8.es.js.map +1 -0
  5. package/assets/policy.css +1 -1
  6. package/assets/project.css +1 -1
  7. package/formsExt/formsExt.amd.js +1 -1
  8. package/formsExt/formsExt.js +1 -1
  9. package/package.json +1 -1
  10. package/popup/popup.amd.js +1 -1
  11. package/popup/popup.amd.js.map +1 -1
  12. package/popup/popup.js +2 -2
  13. package/popup/popup.js.map +1 -1
  14. package/project/project.amd.js +1 -1
  15. package/project/project.amd.js.map +1 -1
  16. package/project/project.js +532 -869
  17. package/project/project.js.map +1 -1
  18. package/src/components/formsExt/selector2/composables/useAPI.d.ts +0 -2
  19. package/src/components/formsExt/selector2/composables/useMenu.d.ts +1 -3
  20. package/src/components/formsExt/selector2/selector2.vue.d.ts +1 -2
  21. package/src/components/formsExt/selector2/types.d.ts +8 -26
  22. package/src/components/popup/popup/listItem.vue.d.ts +4 -24
  23. package/src/components/popup/popup/types.d.ts +0 -1
  24. package/src/components/project/groupSelector/folders/types.d.ts +1 -0
  25. package/src/components/project/groupSelector/folders/utils.d.ts +417 -38
  26. package/src/components/project/groupSelector/groupSelector.vue.d.ts +1 -0
  27. package/src/components/project/groupSelector/groups/groups.vue.d.ts +5 -10
  28. package/src/components/project/groupSelector/groups/types.d.ts +1 -0
  29. package/src/components/project/groupSelector/groups/utils.d.ts +791 -57
  30. package/src/components/project/groupSelector/types.d.ts +6 -0
  31. package/src/components/project/project.d.ts +0 -1
  32. package/.chunks/policy.vue_vue_type_style_index_0_lang-BAP-FIuQ.es.js +0 -515
  33. package/.chunks/policy.vue_vue_type_style_index_0_lang-BAP-FIuQ.es.js.map +0 -1
  34. package/.chunks/policy.vue_vue_type_style_index_0_lang-EZT5LjSx.amd.js +0 -2
  35. package/.chunks/policy.vue_vue_type_style_index_0_lang-EZT5LjSx.amd.js.map +0 -1
  36. package/src/components/project/projectSelector/cache.d.ts +0 -30
  37. package/src/components/project/projectSelector/projectSelector.vue.d.ts +0 -128
  38. package/src/components/project/projectSelector/submenu/submenu.vue.d.ts +0 -4
  39. package/src/components/project/projectSelector/submenu/types.d.ts +0 -17
  40. package/src/components/project/projectSelector/types.d.ts +0 -52
  41. package/src/components/project/projectSelector/utils.d.ts +0 -232
@@ -3,21 +3,18 @@
3
3
  const fileNames = ['../assets/project.css'].map(fileName => import.meta.resolve(fileName));
4
4
  _autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
5
5
 
6
- import { defineComponent as L, mergeModels as V, useModel as b, computed as E, createElementBlock as T, openBlock as p, createBlock as k, unref as m, withCtx as A, Fragment as F, renderList as ge, normalizeClass as oe, createElementVNode as O, toDisplayString as B, createVNode as K, createTextVNode as H, toValue as Be, ref as _, watch as G, createCommentVNode as M, reactive as Ne, resolveComponent as Ue, shallowRef as De, onMounted as Ze, withModifiers as W, isRef as be, mergeProps as qe, withKeys as $e, nextTick as et, resolveDirective as tt, withDirectives as ot, resolveDynamicComponent as at, renderSlot as lt, createSlots as nt } from "vue";
7
- import { u as j, C as Q, e as ee, q as ye, d as rt } from "../.chunks/forms-CUaoBGD5.es.js";
8
- import { _ as ke, b as Te, a as it } from "../.chunks/popupHint.vue_vue_type_style_index_0_lang-DzT1BFMx.es.js";
9
- import { a as dt, _ as Ae, b as Fe, c as We, I as ve } from "../.chunks/policy.vue_vue_type_style_index_0_lang-BAP-FIuQ.es.js";
10
- import { u as st } from "../.chunks/utils-Kzz2mc2t.es.js";
11
- import { getSearcherGIcon as ut, getLangLabel as ct, getDeviceGIcon as ft } from "../utils/searchers.js";
6
+ import { defineComponent as R, mergeModels as V, useModel as T, computed as M, createElementBlock as A, openBlock as h, createBlock as C, unref as v, withCtx as B, Fragment as Q, renderList as me, normalizeClass as Z, createElementVNode as oe, toDisplayString as b, createVNode as P, createTextVNode as J, toValue as ye, ref as K, watch as E, createCommentVNode as O, reactive as be, isRef as he, withModifiers as U, mergeProps as Ve, withKeys as Ie, nextTick as Re, resolveDirective as Pe, withDirectives as Ne, resolveDynamicComponent as qe, renderSlot as De, shallowRef as Fe, createSlots as Ue } from "vue";
7
+ import { u as w, C as z, e as H, q as ce, d as ze } from "../.chunks/forms-CUaoBGD5.es.js";
8
+ import { _ as we, b as ve, a as Je } from "../.chunks/popupHint.vue_vue_type_style_index_0_lang-DzT1BFMx.es.js";
9
+ import { a as We, _ as Me, b as $e, c as Ee, I as ue } from "../.chunks/policy.vue_vue_type_style_index_0_lang-BRUOmEM8.es.js";
10
+ import { u as Ye } from "../.chunks/utils-Kzz2mc2t.es.js";
11
+ import { getSearcherGIcon as Qe, getLangLabel as He, getDeviceGIcon as Xe } from "../utils/searchers.js";
12
12
  import "../.chunks/core-DBWAn2Eg.es.js";
13
13
  import "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-BZM_iKPW.es.js";
14
- import { g as ie, a as le } from "../.chunks/field-CyyFzM-Y.es.js";
15
- import { validUrl as we } from "../utils/check.js";
16
- import { ellipsis as gt } from "../utils/string.js";
17
- import { invertKeyboardLayout as mt } from "../utils/keyboard.js";
18
- import { storage as X } from "../utils/dom.js";
19
- import { TopPopupWorker as vt } from "../popup/worker.js";
20
- const pt = { class: "top-competitorSelector" }, ht = { class: "top-ellipsis1" }, To = /* @__PURE__ */ L({
14
+ import { g as Se } from "../.chunks/field-CyyFzM-Y.es.js";
15
+ import { storage as W } from "../utils/dom.js";
16
+ import { TopPopupWorker as Ze } from "../popup/worker.js";
17
+ const _e = { class: "top-competitorSelector" }, et = { class: "top-ellipsis1" }, Rt = /* @__PURE__ */ R({
21
18
  __name: "competitorSelector",
22
19
  props: /* @__PURE__ */ V({
23
20
  modelValue: {},
@@ -29,47 +26,47 @@ const pt = { class: "top-competitorSelector" }, ht = { class: "top-ellipsis1" },
29
26
  }),
30
27
  emits: ["update:modelValue"],
31
28
  setup(e) {
32
- const t = e, o = b(e, "modelValue"), a = E(() => {
33
- if (t.showSelectAllItem)
29
+ const a = e, o = T(e, "modelValue"), t = M(() => {
30
+ if (a.showSelectAllItem)
34
31
  return {
35
32
  icon: "",
36
- title: j().Common.Select_all,
33
+ title: w().Common.Select_all,
37
34
  value: "all",
38
35
  content: ""
39
36
  };
40
37
  });
41
- return (r, l) => (p(), T("div", pt, [
42
- m(Q).state.isMobile ? (p(), k(ke, { key: 0 }, {
43
- opener: A(() => [
44
- K(ee, {
38
+ return (r, l) => (h(), A("div", _e, [
39
+ v(z).state.isMobile ? (h(), C(we, { key: 0 }, {
40
+ opener: B(() => [
41
+ P(H, {
45
42
  class: "top-competitorSelector_opener",
46
43
  color: "theme",
47
44
  icon: "",
48
45
  icon2: ""
49
46
  }, {
50
- default: A(() => [
51
- H(B(e.items.find((n) => n.value === o.value?.[0])?.content), 1)
47
+ default: B(() => [
48
+ J(b(e.items.find((n) => n.value === o.value?.[0])?.content), 1)
52
49
  ]),
53
50
  _: 1
54
51
  })
55
52
  ]),
56
- contentList: A(() => [
57
- (p(!0), T(F, null, ge(e.items, (n) => (p(), k(Te, {
58
- class: oe({
53
+ contentList: B(() => [
54
+ (h(!0), A(Q, null, me(e.items, (n) => (h(), C(ve, {
55
+ class: Z({
59
56
  "top-active": o.value?.includes(n.value)
60
57
  }),
61
58
  "data-top-icon": n.icon,
62
59
  title: n.title,
63
60
  onClick: () => o.value = [n.value]
64
61
  }, {
65
- default: A(() => [
66
- O("span", ht, B(n.content), 1)
62
+ default: B(() => [
63
+ oe("span", et, b(n.content), 1)
67
64
  ]),
68
65
  _: 2
69
66
  }, 1032, ["class", "data-top-icon", "title", "onClick"]))), 256))
70
67
  ]),
71
68
  _: 1
72
- })) : (p(), k(dt, {
69
+ })) : (h(), C(We, {
73
70
  key: 1,
74
71
  modelValue: o.value,
75
72
  "onUpdate:modelValue": l[0] || (l[0] = (n) => o.value = n),
@@ -77,16 +74,16 @@ const pt = { class: "top-competitorSelector" }, ht = { class: "top-ellipsis1" },
77
74
  isMultiple: !0,
78
75
  styling: "bar",
79
76
  canBeEmptyMultiple: !1,
80
- selectAllItem: a.value
77
+ selectAllItem: t.value
81
78
  }, null, 8, ["modelValue", "items", "selectAllItem"]))
82
79
  ]));
83
80
  }
84
- }), Ao = (e, t) => E(() => Be(e).filter((r) => r.on >= 0 || r.id === t).map((r) => ({
81
+ }), Pt = (e, a) => M(() => ye(e).filter((r) => r.on >= 0 || r.id === a).map((r) => ({
85
82
  value: r.id,
86
83
  title: r.url + ` [${r.id}]`,
87
- icon: r.id === Be(t) ? "" : "",
84
+ icon: r.id === ye(a) ? "" : "",
88
85
  content: r.name
89
- }))), D = -1, y = -2, de = -1, yt = {
86
+ }))), L = -1, y = -2, le = -1, tt = {
90
87
  0: "Yandex",
91
88
  1: "Google",
92
89
  4: "YouTube",
@@ -96,44 +93,44 @@ const pt = { class: "top-competitorSelector" }, ht = { class: "top-ellipsis1" },
96
93
  9: "GoogleStore",
97
94
  20: "Yandex.com",
98
95
  21: "Yandex.com.tr"
99
- }, Pe = {
96
+ }, xe = {
100
97
  key: y,
101
98
  name: "--",
102
99
  index: y
103
- }, He = {
100
+ }, Ge = {
104
101
  key: y,
105
102
  name: "--",
106
- regions: [Pe],
107
- regionByIndex: /* @__PURE__ */ new Map([[y, Pe]])
108
- }, se = {
103
+ regions: [xe],
104
+ regionByIndex: /* @__PURE__ */ new Map([[y, xe]])
105
+ }, ae = {
109
106
  key: y,
110
107
  name: "Autoselect",
111
108
  index: y
112
- }, pe = {
109
+ }, se = {
113
110
  key: y,
114
111
  name: "Autoselect",
115
- regions: [se],
116
- regionByIndex: /* @__PURE__ */ new Map([[y, se]])
117
- }, Ee = {
112
+ regions: [ae],
113
+ regionByIndex: /* @__PURE__ */ new Map([[y, ae]])
114
+ }, ke = {
118
115
  countryCode: "00",
119
116
  depth: 1,
120
117
  device: 0,
121
- key: de,
122
- index: de,
118
+ key: le,
119
+ index: le,
123
120
  lang: "ru",
124
121
  name: "Without region"
125
- }, St = () => (se.name = j().Common.Autoselect, se), It = () => (St(), pe.name = j().Common.Autoselect, console.log(pe), pe), xt = () => (Ee.name = j().Keywords.Without_region, Ee), Je = (e = !1, t = !1, o = []) => {
126
- let a;
127
- return e ? a = Ct(o) : a = ze(o), t && a.set(y, It()), a.size || a.set(y, He), a;
128
- }, ze = (e, t = !0, o = [], a = !1) => {
122
+ }, ot = () => (ae.name = w().Common.Autoselect, ae), lt = () => (ot(), se.name = w().Common.Autoselect, console.log(se), se), at = () => (ke.name = w().Keywords.Without_region, ke), Ke = (e = !1, a = !1, o = []) => {
123
+ let t;
124
+ return e ? t = nt(o) : t = Oe(o), a && t.set(y, lt()), t.size || t.set(y, Ge), t;
125
+ }, Oe = (e, a = !0, o = [], t = !1) => {
129
126
  const r = /* @__PURE__ */ new Map();
130
127
  return e.forEach((l) => {
131
- if (!l.enabled || a && typeof l.key == "number" && l.key > 1) return;
128
+ if (!l.enabled || t && typeof l.key == "number" && l.key > 1) return;
132
129
  const n = { ...l };
133
- n.regionByIndex = /* @__PURE__ */ new Map(), l.regions && l.regions.forEach((s) => {
134
- if (t && !s.enabled) return;
135
- const g = { ...s };
136
- n.regionByIndex.set(g.index, g);
130
+ n.regionByIndex = /* @__PURE__ */ new Map(), l.regions && l.regions.forEach((u) => {
131
+ if (a && !u.enabled) return;
132
+ const f = { ...u };
133
+ n.regionByIndex.set(f.index, f);
137
134
  }), !n.regionByIndex.size && o.length, // режим вывода ПС без регионов
138
135
  (!l.regions || // есть включенные регионы
139
136
  n.regionByIndex.size || // запрошен вывод конкретных ПС
@@ -142,42 +139,42 @@ const pt = { class: "top-competitorSelector" }, ht = { class: "top-ellipsis1" },
142
139
  if (r.has(l)) return;
143
140
  const n = {
144
141
  key: l,
145
- name: yt[l],
142
+ name: tt[l],
146
143
  regions: [],
147
144
  regionByIndex: /* @__PURE__ */ new Map()
148
145
  };
149
146
  r.set(n.key, n);
150
147
  }), r;
151
- }, Ct = (e) => {
152
- const t = ze(e, !1, [0, 1], !0);
153
- if (t.has(2)) {
154
- const o = t.get(2);
148
+ }, nt = (e) => {
149
+ const a = Oe(e, !1, [0, 1], !0);
150
+ if (a.has(2)) {
151
+ const o = a.get(2);
155
152
  o && (o.regionByIndex = /* @__PURE__ */ new Map());
156
153
  }
157
- return t.forEach((o) => {
154
+ return a.forEach((o) => {
158
155
  if (!o.regionByIndex) return;
159
- const a = { ...xt() };
160
- o.regionByIndex.set(a.index, a);
161
- }), t;
162
- }, kt = (e, t, o = []) => {
163
- const a = Je(e, !1, o);
156
+ const t = { ...at() };
157
+ o.regionByIndex.set(t.index, t);
158
+ }), a;
159
+ }, rt = (e, a, o = []) => {
160
+ const t = Ke(e, !1, o);
164
161
  let r;
165
- return a.forEach((l) => {
166
- if (!(t.searcher_key !== void 0 && t.searcher_key != l.key) && l.regions && (l.regions.forEach((n) => {
167
- if (!r && !(t.key !== void 0 && t.key != n.key) && !(t.index !== void 0 && t.index != n.index) && !(!e && (t.lang !== void 0 && t.lang != n.lang || t.device !== void 0 && t.device != n.device)))
162
+ return t.forEach((l) => {
163
+ if (!(a.searcher_key !== void 0 && a.searcher_key != l.key) && l.regions && (l.regions.forEach((n) => {
164
+ if (!r && !(a.key !== void 0 && a.key != n.key) && !(a.index !== void 0 && a.index != n.index) && !(!e && (a.lang !== void 0 && a.lang != n.lang || a.device !== void 0 && a.device != n.device)))
168
165
  return n.searcher_key = l.key, r = n, !1;
169
166
  }), r))
170
167
  return !1;
171
168
  }), r;
172
- }, Tt = st(() => import("../.chunks/dialog_regionSelectorRegions-BMWyYCfD.es.js")), At = (e, t) => {
173
- const o = j(), a = _(t.value.keys().next().value ?? y), r = E(() => {
169
+ }, it = Ye(() => import("../.chunks/dialog_regionSelectorRegions-BMWyYCfD.es.js")), dt = (e, a) => {
170
+ const o = w(), t = K(a.value.keys().next().value ?? y), r = M(() => {
174
171
  const l = /* @__PURE__ */ new Map();
175
- if (t.value.forEach((n) => {
176
- let s = {
172
+ if (a.value.forEach((n) => {
173
+ let u = {
177
174
  value: n.key,
178
175
  title: n.name
179
176
  };
180
- e.addSearcherIcon && (s.icon = ut(n.key)), l.set(n.key, s);
177
+ e.addSearcherIcon && (u.icon = Qe(n.key)), l.set(n.key, u);
181
178
  }), e.addCompare && !l.has(y)) {
182
179
  const n = {
183
180
  value: "",
@@ -185,74 +182,74 @@ const pt = { class: "top-competitorSelector" }, ht = { class: "top-ellipsis1" },
185
182
  disabled: !0
186
183
  };
187
184
  l.set(n.value, n);
188
- const s = {
189
- value: D,
185
+ const u = {
186
+ value: L,
190
187
  title: o.Common.Compare
191
188
  };
192
- l.set(s.value, s);
189
+ l.set(u.value, u);
193
190
  }
194
191
  return l;
195
192
  });
196
193
  return {
197
- searcherKey: a,
194
+ searcherKey: t,
198
195
  optionBySearcherKey: r
199
196
  };
200
- }, jt = (e, t) => {
201
- const o = j(), a = _(y);
202
- e.modelValue.length === 1 && (a.value = e.modelValue[0]), a.value === y && (e.forFrequency ? a.value = t.value?.regionByIndex.values().next().value?.key ?? y : a.value = t.value?.regionByIndex.keys().next().value ?? y);
203
- const r = E(() => {
197
+ }, ut = (e, a) => {
198
+ const o = w(), t = K(y);
199
+ e.modelValue.length === 1 && (t.value = e.modelValue[0]), t.value === y && (e.forFrequency ? t.value = a.value?.regionByIndex.values().next().value?.key ?? y : t.value = a.value?.regionByIndex.keys().next().value ?? y);
200
+ const r = M(() => {
204
201
  const l = /* @__PURE__ */ new Map();
205
- return t.value.regionByIndex?.forEach((n) => {
206
- let s = n.name;
202
+ return a.value.regionByIndex?.forEach((n) => {
203
+ let u = n.name;
207
204
  if (e.forFrequency) {
208
- const S = {
205
+ const x = {
209
206
  value: n.key,
210
- title: s
207
+ title: u
211
208
  };
212
- l.has(n.key) || l.set(n.key, S);
209
+ l.has(n.key) || l.set(n.key, x);
213
210
  return;
214
211
  }
215
- n.device && (s += " (" + o.Common["Device_" + n.device] + ")");
216
- const g = ct(t.value.key || 0, n.lang ?? "");
217
- g && (s += " / " + g);
212
+ n.device && (u += " (" + o.Common["Device_" + n.device] + ")");
213
+ const f = He(a.value.key || 0, n.lang ?? "");
214
+ f && (u += " / " + f);
218
215
  const c = {
219
216
  value: n.index,
220
- title: s,
221
- icon: n.device ? ft(n.device) : void 0
217
+ title: u,
218
+ icon: n.device ? Xe(n.device) : void 0
222
219
  };
223
220
  l.set(n.index, c);
224
221
  }), l;
225
222
  });
226
- return G(r, (l, n) => {
227
- if (e.onlySearcher || a.value !== void 0 && l.get(a.value))
223
+ return E(r, (l, n) => {
224
+ if (e.onlySearcher || t.value !== void 0 && l.get(t.value))
228
225
  return;
229
- let s = l.keys().next().value;
230
- if (a.value === y || s === y) {
231
- a.value = s;
226
+ let u = l.keys().next().value;
227
+ if (t.value === y || u === y) {
228
+ t.value = u;
232
229
  return;
233
230
  }
234
- let g = n?.get(a.value)?.title || "", c = -1;
235
- for (const [S, i] of l.entries()) {
236
- const v = i.title;
237
- if (typeof v != "string" || typeof S == "string")
231
+ let f = n?.get(t.value)?.title || "", c = -1;
232
+ for (const [x, i] of l.entries()) {
233
+ const m = i.title;
234
+ if (typeof m != "string" || typeof x == "string")
238
235
  break;
239
- if (v === g) {
240
- s = S;
236
+ if (m === f) {
237
+ u = x;
241
238
  break;
242
239
  }
243
240
  const d = new RegExp(` \\((${o.Common.Device_1}|${o.Common.Device_2})\\)`);
244
- let f = g, u = 3;
245
- v.indexOf(f) === -1 && (f = g.replace(/^[^a-zа-я]/i, "").replace(d, ""), u--), v.indexOf(f) === -1 && (f = g.replace(/ \/.*/, ""), u--), v.indexOf(f) === -1 && (f = g.replace(/ \/.*/, ""), f = f.replace(/^[^a-zа-я]/i, "").replace(d, ""), u--), v.indexOf(f) !== -1 && (u <= c || (c = u, s = S));
241
+ let s = f, g = 3;
242
+ m.indexOf(s) === -1 && (s = f.replace(/^[^a-zа-я]/i, "").replace(d, ""), g--), m.indexOf(s) === -1 && (s = f.replace(/ \/.*/, ""), g--), m.indexOf(s) === -1 && (s = f.replace(/ \/.*/, ""), s = s.replace(/^[^a-zа-я]/i, "").replace(d, ""), g--), m.indexOf(s) !== -1 && (g <= c || (c = g, u = x));
246
243
  }
247
- a.value = s;
244
+ t.value = u;
248
245
  }), {
249
- regionIndex: a,
246
+ regionIndex: t,
250
247
  optionByRegionIndex: r
251
248
  };
252
- }, Bt = (e, t, o) => {
253
- const a = _([]), r = () => {
254
- if (e.onlySearcher && t.value) {
255
- a.value = Array.from(t.value.keys());
249
+ }, st = (e, a, o) => {
250
+ const t = K([]), r = () => {
251
+ if (e.onlySearcher && a.value) {
252
+ t.value = Array.from(a.value.keys());
256
253
  return;
257
254
  }
258
255
  let n = [];
@@ -265,70 +262,70 @@ const pt = { class: "top-competitorSelector" }, ht = { class: "top-ellipsis1" },
265
262
  ) ?? [];
266
263
  } catch {
267
264
  }
268
- n.length && (n = n.filter((s) => o.value.has(s))), n.length || (n = Array.from(o.value)), a.value = [...n];
265
+ n.length && (n = n.filter((u) => o.value.has(u))), n.length || (n = Array.from(o.value)), t.value = [...n];
269
266
  }, l = () => {
270
- a.value.length ? localStorage.setItem("ui:project:regionSelector:" + e.projectId + ":regionsIndexes", JSON.stringify(a.value)) : localStorage.removeItem("ui:project:regionSelector:" + e.projectId + ":regionsIndexes");
267
+ t.value.length ? localStorage.setItem("ui:project:regionSelector:" + e.projectId + ":regionsIndexes", JSON.stringify(t.value)) : localStorage.removeItem("ui:project:regionSelector:" + e.projectId + ":regionsIndexes");
271
268
  };
272
- return G(a, () => {
269
+ return E(t, () => {
273
270
  l();
274
271
  }), e.addCompare && r(), {
275
- regionsIndexes: a
272
+ regionsIndexes: t
276
273
  };
277
- }, bt = (e) => {
278
- const t = E(() => Je(e.forFrequency, e.autoRegion, e.searchers)), o = E(() => t.value.get(r.searcherKey.value) || He), a = E(() => {
274
+ }, ct = (e) => {
275
+ const a = M(() => Ke(e.forFrequency, e.autoRegion, e.searchers)), o = M(() => a.value.get(r.searcherKey.value) || Ge), t = M(() => {
279
276
  const i = /* @__PURE__ */ new Set();
280
- return t.value.forEach((v) => {
281
- v.regionByIndex.forEach((d) => {
282
- d.index !== de && d.index !== y && i.add(d.index);
277
+ return a.value.forEach((m) => {
278
+ m.regionByIndex.forEach((d) => {
279
+ d.index !== le && d.index !== y && i.add(d.index);
283
280
  });
284
281
  }), i;
285
- }), r = At(e, t), l = jt(e, o), n = Bt(e, t, a);
286
- G(t, () => {
287
- if (e.onlySearcher ? n.regionsIndexes.value = Array.from(t.value.keys()) : n.regionsIndexes.value = n.regionsIndexes.value.filter((v) => a.value.has(v)), r.searcherKey.value === D) return;
288
- let i = t.value.keys().next().value;
289
- t.value.forEach((v) => {
290
- if (e.onlySearcher && v.key === r.searcherKey.value) {
282
+ }), r = dt(e, a), l = ut(e, o), n = st(e, a, t);
283
+ E(a, () => {
284
+ if (e.onlySearcher ? n.regionsIndexes.value = Array.from(a.value.keys()) : n.regionsIndexes.value = n.regionsIndexes.value.filter((m) => t.value.has(m)), r.searcherKey.value === L) return;
285
+ let i = a.value.keys().next().value;
286
+ a.value.forEach((m) => {
287
+ if (e.onlySearcher && m.key === r.searcherKey.value) {
291
288
  i = r.searcherKey.value;
292
289
  return;
293
290
  }
294
- if (l.regionIndex.value && v.regionByIndex?.has(l.regionIndex.value) && (i = v.key), !e.onlySearcher) {
291
+ if (l.regionIndex.value && m.regionByIndex?.has(l.regionIndex.value) && (i = m.key), !e.onlySearcher) {
295
292
  let d;
296
- i !== void 0 && (d = t.value.get(i)?.regionByIndex);
297
- const f = t.value.get(v.key)?.regionByIndex;
298
- d?.has(y) && !f?.has(y) && (i = v.key);
293
+ i !== void 0 && (d = a.value.get(i)?.regionByIndex);
294
+ const s = a.value.get(m.key)?.regionByIndex;
295
+ d?.has(y) && !s?.has(y) && (i = m.key);
299
296
  }
300
297
  }), i !== void 0 && (r.searcherKey.value = i), l.regionIndex.value !== void 0 && !o.value?.regionByIndex?.has(l.regionIndex.value) && (l.regionIndex.value = o.value?.regions?.keys().next().value);
301
298
  }, { immediate: !0 });
302
- const s = () => {
303
- if (!(r.searcherKey.value === D || r.searcherKey.value === y))
299
+ const u = () => {
300
+ if (!(r.searcherKey.value === L || r.searcherKey.value === y))
304
301
  return r.searcherKey.value;
305
- }, g = () => {
302
+ }, f = () => {
306
303
  if (e.onlySearcher || l.regionIndex.value === y) return;
307
304
  let i = l.regionIndex.value;
308
305
  if (e.forFrequency) {
309
- const v = l.regionIndex.value;
310
- i = kt(e.forFrequency, { searcher_key: s(), key: v }, e.searchers)?.index;
306
+ const m = l.regionIndex.value;
307
+ i = rt(e.forFrequency, { searcher_key: u(), key: m }, e.searchers)?.index;
311
308
  }
312
309
  return i;
313
310
  }, c = () => {
314
- const i = s();
311
+ const i = u();
315
312
  if (i !== void 0)
316
- return t.value.get(i);
313
+ return a.value.get(i);
317
314
  };
318
315
  return {
319
316
  selectSearcher: r,
320
317
  selectRegion: l,
321
318
  compare: n,
322
- searcherByKey: t,
323
- allRegionsIndexes: a,
319
+ searcherByKey: a,
320
+ allRegionsIndexes: t,
324
321
  getSearcher: c,
325
322
  getRegion: () => {
326
- const i = g();
323
+ const i = f();
327
324
  if (i !== void 0)
328
325
  return c()?.regionByIndex?.get(i);
329
326
  }
330
327
  };
331
- }, jo = /* @__PURE__ */ L({
328
+ }, Nt = /* @__PURE__ */ R({
332
329
  __name: "regionSelector",
333
330
  props: /* @__PURE__ */ V({
334
331
  projectId: {},
@@ -349,84 +346,84 @@ const pt = { class: "top-competitorSelector" }, ht = { class: "top-ellipsis1" },
349
346
  modelValueSingleModifiers: {}
350
347
  }),
351
348
  emits: ["update:modelValue", "update:modelValueSingle"],
352
- setup(e, { expose: t }) {
353
- const o = e, a = b(e, "modelValue"), r = b(e, "modelValueSingle"), {
349
+ setup(e, { expose: a }) {
350
+ const o = e, t = T(e, "modelValue"), r = T(e, "modelValueSingle"), {
354
351
  selectSearcher: l,
355
352
  selectRegion: n,
356
- compare: s,
357
- searcherByKey: g,
353
+ compare: u,
354
+ searcherByKey: f,
358
355
  allRegionsIndexes: c,
359
- getSearcher: S,
356
+ getSearcher: x,
360
357
  getRegion: i
361
- } = bt(o), v = () => {
358
+ } = ct(o), m = () => {
362
359
  const d = [];
363
- g.value.forEach((f) => {
364
- f.enabled && f.regions.forEach((u) => {
365
- u.enabled && d.push(u);
360
+ f.value.forEach((s) => {
361
+ s.enabled && s.regions.forEach((g) => {
362
+ g.enabled && d.push(g);
366
363
  });
367
- }), Tt.open("regions", {
364
+ }), it.open("regions", {
368
365
  regions: d,
369
- regionsIndexes: s.regionsIndexes.value,
370
- "@update:regionsIndexes": (f) => s.regionsIndexes.value = f
366
+ regionsIndexes: u.regionsIndexes.value,
367
+ "@update:regionsIndexes": (s) => u.regionsIndexes.value = s
371
368
  });
372
369
  };
373
- return G([n.regionIndex, l.searcherKey, s.regionsIndexes], () => {
374
- if (l.searcherKey.value === D && s.regionsIndexes.value.length) {
375
- if (JSON.stringify(a.value) === JSON.stringify(s.regionsIndexes.value))
370
+ return E([n.regionIndex, l.searcherKey, u.regionsIndexes], () => {
371
+ if (l.searcherKey.value === L && u.regionsIndexes.value.length) {
372
+ if (JSON.stringify(t.value) === JSON.stringify(u.regionsIndexes.value))
376
373
  return;
377
- a.value = [...s.regionsIndexes.value];
374
+ t.value = [...u.regionsIndexes.value];
378
375
  } else
379
- o.onlySearcher ? (a.value = [l.searcherKey.value], l.searcherKey.value === y && !o.autoRegion && (a.value.length = 0)) : (a.value = [n.regionIndex.value], n.regionIndex.value === y && !o.autoRegion && (a.value.length = 0));
376
+ o.onlySearcher ? (t.value = [l.searcherKey.value], l.searcherKey.value === y && !o.autoRegion && (t.value.length = 0)) : (t.value = [n.regionIndex.value], n.regionIndex.value === y && !o.autoRegion && (t.value.length = 0));
380
377
  !o.onlySearcher && !c.value.size && (l.searcherKey.value = y);
381
- }), r.value && G(r, () => {
382
- r.value && (a.value = [r.value]);
383
- }, { immediate: !0 }), G(a, () => {
384
- if (a.value[0] && (r.value = a.value[0]), o.onlySearcher) {
385
- if (!a.value.length || a.value.length === 1 && !g.value.has(a.value[0]) || a.value.length === 1 && a.value[0] === y && !o.autoRegion) {
386
- let d = g.value.keys().next().value;
387
- d === y && !o.autoRegion && (d = void 0, r.value = y), d !== void 0 ? a.value = [d] : a.value.length = 0;
378
+ }), r.value && E(r, () => {
379
+ r.value && (t.value = [r.value]);
380
+ }, { immediate: !0 }), E(t, () => {
381
+ if (t.value[0] && (r.value = t.value[0]), o.onlySearcher) {
382
+ if (!t.value.length || t.value.length === 1 && !f.value.has(t.value[0]) || t.value.length === 1 && t.value[0] === y && !o.autoRegion) {
383
+ let d = f.value.keys().next().value;
384
+ d === y && !o.autoRegion && (d = void 0, r.value = y), d !== void 0 ? t.value = [d] : t.value.length = 0;
388
385
  return;
389
386
  }
390
- if (a.value.length > 1 && JSON.stringify(a.value) !== JSON.stringify(s.regionsIndexes.value)) {
391
- a.value = [...s.regionsIndexes.value];
387
+ if (t.value.length > 1 && JSON.stringify(t.value) !== JSON.stringify(u.regionsIndexes.value)) {
388
+ t.value = [...u.regionsIndexes.value];
392
389
  return;
393
390
  }
394
391
  } else {
395
- let d = [...new Set(a.value)], f = g.value.values().next().value?.regionByIndex?.keys().next().value;
396
- if (o.forFrequency && (f = g.value.values().next().value?.regionByIndex?.values().next().value?.key), f === y && !o.autoRegion && (f = void 0, r.value = y), !d.length)
397
- f !== void 0 && d.push(f);
392
+ let d = [...new Set(t.value)], s = f.value.values().next().value?.regionByIndex?.keys().next().value;
393
+ if (o.forFrequency && (s = f.value.values().next().value?.regionByIndex?.values().next().value?.key), s === y && !o.autoRegion && (s = void 0, r.value = y), !d.length)
394
+ s !== void 0 && d.push(s);
398
395
  else if (d.length === 1) {
399
- let u = c.value;
400
- o.forFrequency && (u = /* @__PURE__ */ new Set(), g.value.forEach((w) => {
401
- w.regionByIndex.forEach((N) => {
402
- N.index !== de && N.index !== y && u.add(N.key);
396
+ let g = c.value;
397
+ o.forFrequency && (g = /* @__PURE__ */ new Set(), f.value.forEach((_) => {
398
+ _.regionByIndex.forEach((N) => {
399
+ N.index !== le && N.index !== y && g.add(N.key);
403
400
  });
404
- })), u.has(d[0]) || (d = [], f !== void 0 && d.push(f));
401
+ })), g.has(d[0]) || (d = [], s !== void 0 && d.push(s));
405
402
  } else
406
- d = d.filter((u) => c.value.has(u)), !d.length && f !== void 0 && d.push(f);
407
- if (JSON.stringify(a.value) !== JSON.stringify(d)) {
408
- a.value = d;
403
+ d = d.filter((g) => c.value.has(g)), !d.length && s !== void 0 && d.push(s);
404
+ if (JSON.stringify(t.value) !== JSON.stringify(d)) {
405
+ t.value = d;
409
406
  return;
410
407
  }
411
408
  }
412
- if (!(a.value.length === 1 && a.value[0] === (o.onlySearcher ? l.searcherKey.value : n.regionIndex.value)))
409
+ if (!(t.value.length === 1 && t.value[0] === (o.onlySearcher ? l.searcherKey.value : n.regionIndex.value)))
413
410
  if (o.onlySearcher) {
414
- if (a.value.length === 1) {
415
- l.searcherKey.value = a.value[0];
411
+ if (t.value.length === 1) {
412
+ l.searcherKey.value = t.value[0];
416
413
  return;
417
414
  }
418
- l.searcherKey.value = D;
415
+ l.searcherKey.value = L;
419
416
  return;
420
417
  } else {
421
- if (!a.value.length)
418
+ if (!t.value.length)
422
419
  return;
423
- if (a.value.length === 1 && l.searcherKey.value !== D) {
424
- n.regionIndex.value = a.value[0];
420
+ if (t.value.length === 1 && l.searcherKey.value !== L) {
421
+ n.regionIndex.value = t.value[0];
425
422
  let d;
426
- for (const f of g.value.values()) {
427
- for (const u of f.regionByIndex.values())
428
- if ((o.forFrequency ? u.key : u.index) === n.regionIndex.value) {
429
- d = f.key;
423
+ for (const s of f.value.values()) {
424
+ for (const g of s.regionByIndex.values())
425
+ if ((o.forFrequency ? g.key : g.index) === n.regionIndex.value) {
426
+ d = s.key;
430
427
  break;
431
428
  }
432
429
  if (d !== void 0)
@@ -434,76 +431,76 @@ const pt = { class: "top-competitorSelector" }, ht = { class: "top-ellipsis1" },
434
431
  }
435
432
  d !== void 0 && (l.searcherKey.value = d);
436
433
  } else
437
- l.searcherKey.value = D, s.regionsIndexes.value = [...a.value];
434
+ l.searcherKey.value = L, u.regionsIndexes.value = [...t.value];
438
435
  }
439
- }, { immediate: !0 }), t({
440
- getSearcher: S,
436
+ }, { immediate: !0 }), a({
437
+ getSearcher: x,
441
438
  getRegion: i
442
- }), (d, f) => (p(), T("div", {
443
- class: oe({
439
+ }), (d, s) => (h(), A("div", {
440
+ class: Z({
444
441
  "top-selectorRegion": !0,
445
442
  "top-selectorRegion-onlySearcher": e.onlySearcher
446
443
  })
447
444
  }, [
448
- K(ye, {
449
- options: m(l).optionBySearcherKey.value,
450
- modelValue: m(l).searcherKey.value,
451
- "onUpdate:modelValue": f[0] || (f[0] = (u) => m(l).searcherKey.value = u),
445
+ P(ce, {
446
+ options: v(l).optionBySearcherKey.value,
447
+ modelValue: v(l).searcherKey.value,
448
+ "onUpdate:modelValue": s[0] || (s[0] = (g) => v(l).searcherKey.value = g),
452
449
  name: "searcher_key",
453
450
  addChanger: e.addChanger
454
451
  }, null, 8, ["options", "modelValue", "addChanger"]),
455
- !e.onlySearcher && m(l).searcherKey.value !== m(D) ? (p(), k(ye, {
452
+ !e.onlySearcher && v(l).searcherKey.value !== v(L) ? (h(), C(ce, {
456
453
  key: 0,
457
454
  class: "top-select-region",
458
- options: m(n).optionByRegionIndex.value,
459
- modelValue: m(n).regionIndex.value,
460
- "onUpdate:modelValue": f[1] || (f[1] = (u) => m(n).regionIndex.value = u),
455
+ options: v(n).optionByRegionIndex.value,
456
+ modelValue: v(n).regionIndex.value,
457
+ "onUpdate:modelValue": s[1] || (s[1] = (g) => v(n).regionIndex.value = g),
461
458
  name: e.forFrequency ? "region_key" : "region_index",
462
459
  addChanger: e.addChanger,
463
460
  "data-top-icon": e.addRegionIcon ? "" : void 0
464
- }, null, 8, ["options", "modelValue", "name", "addChanger", "data-top-icon"])) : M("", !0),
465
- e.addCompare && !e.onlySearcher && m(l).searcherKey.value === m(D) ? (p(), k(ee, {
461
+ }, null, 8, ["options", "modelValue", "name", "addChanger", "data-top-icon"])) : O("", !0),
462
+ e.addCompare && !e.onlySearcher && v(l).searcherKey.value === v(L) ? (h(), C(H, {
466
463
  key: 1,
467
464
  name: "compare",
468
- onClick: v,
469
- "data-count-compare-regions-indexes": m(s).regionsIndexes.value.length
465
+ onClick: m,
466
+ "data-count-compare-regions-indexes": v(u).regionsIndexes.value.length
470
467
  }, {
471
- default: A(() => [
472
- H(B(d.$i18n.Common.Selected_regions), 1)
468
+ default: B(() => [
469
+ J(b(d.$i18n.Common.Selected_regions), 1)
473
470
  ]),
474
471
  _: 1
475
- }, 8, ["data-count-compare-regions-indexes"])) : M("", !0)
472
+ }, 8, ["data-count-compare-regions-indexes"])) : O("", !0)
476
473
  ], 2));
477
474
  }
478
- }), q = {
475
+ }), j = {
479
476
  id: 0,
480
477
  name: "/",
481
478
  path: "/"
482
479
  };
483
- function $t(e) {
484
- return e ? j()?.Common.All_folders : "/ (" + j()?.Keywords.Root_folder + ")";
480
+ function gt(e) {
481
+ return e ? w()?.Common.All_folders : "/ (" + w()?.Keywords.Root_folder + ")";
485
482
  }
486
- const je = (e, t, o = /* @__PURE__ */ new Map(), a = { id: "root" }, r = 0) => (a.childsIds = [], a.id && (a.countAllGroupsActive = a.count_groups_active), e[a.id] && e[a.id].forEach((l) => {
487
- l = { ...l }, a.childsIds.push(l.id), l.id === 0 && (l.name = $t(t));
483
+ const pe = (e, a, o = /* @__PURE__ */ new Map(), t = { id: "root" }, r = 0) => (t.childsIds = [], t.id && (t.countAllGroupsActive = t.count_groups_active), e[t.id] && e[t.id].forEach((l) => {
484
+ l = { ...l }, t.childsIds.push(l.id), l.id === 0 && (l.name = gt(a));
488
485
  const n = r > 1 ? "-".repeat(r - 1) + " " : "";
489
- n && !l.name.startsWith(n) && (l.name = n + l.name), o.set(l.id, l), je(e, t, o, l, r + 1), a.childsIds = a.childsIds.concat(l.childsIds), a.id && l.count_groups_active && (a.countAllGroupsActive += l.count_groups_active);
490
- }), o), wt = (e) => e.gen("/get/keywords_2/folders/", ["id", "parent_id", "name", "path"]).changeParams({ orders: ["ord_path"], limit: 100 });
491
- function Se(e, t, o) {
492
- const a = Object.keys(e), r = a.map((l) => e[l]);
493
- return G(r, (l, n, s) => {
494
- const g = {};
495
- l.forEach((c, S) => {
496
- if (!Object.is(c, n[S])) {
497
- const i = a[S];
498
- g[i] = {
499
- old: n[S],
486
+ n && !l.name.startsWith(n) && (l.name = n + l.name), o.set(l.id, l), pe(e, a, o, l, r + 1), t.childsIds = t.childsIds.concat(l.childsIds), t.id && l.count_groups_active && (t.countAllGroupsActive += l.count_groups_active);
487
+ }), o), ft = (e, a) => e.gen(`/get/${a}/folders/`, ["id", "parent_id", "name", "path"]).changeParams({ orders: ["ord_path"], limit: 100 });
488
+ function ge(e, a, o) {
489
+ const t = Object.keys(e), r = t.map((l) => e[l]);
490
+ return E(r, (l, n, u) => {
491
+ const f = {};
492
+ l.forEach((c, x) => {
493
+ if (!Object.is(c, n[x])) {
494
+ const i = t[x];
495
+ f[i] = {
496
+ old: n[x],
500
497
  new: c
501
498
  };
502
499
  }
503
- }), Object.keys(g).length && t(g, s);
500
+ }), Object.keys(f).length && a(f, u);
504
501
  }, o);
505
502
  }
506
- const Pt = /* @__PURE__ */ L({
503
+ const mt = /* @__PURE__ */ R({
507
504
  __name: "folders",
508
505
  props: /* @__PURE__ */ V({
509
506
  folderId: {},
@@ -513,66 +510,67 @@ const Pt = /* @__PURE__ */ L({
513
510
  canSelectAll: { type: Boolean },
514
511
  addChanger: { type: Boolean },
515
512
  addIcon: { type: Boolean, default: !0 },
516
- client: {}
513
+ client: {},
514
+ service: {}
517
515
  }, {
518
516
  folderId: { required: !0 },
519
517
  folderIdModifiers: {},
520
- folder: { default: q },
518
+ folder: { default: j },
521
519
  folderModifiers: {}
522
520
  }),
523
521
  emits: ["update:folderId", "update:folder"],
524
522
  setup(e) {
525
- const t = e, o = b(e, "folderId"), a = b(e, "folder"), r = t.client && !t.folders ? wt(t.client) : void 0, l = _(null);
526
- G(() => t.projectId, () => {
523
+ const a = e, o = T(e, "folderId"), t = T(e, "folder"), r = a.client && !a.folders ? ft(a.client, a.service) : void 0, l = K(null);
524
+ E(() => a.projectId, () => {
527
525
  r?.changeParams({
528
- project_id: t.projectId
526
+ project_id: a.projectId
529
527
  }), r?.setOptions({
530
- checkFingerprint: "TopGroupSelectorFolders:" + t.projectId
528
+ checkFingerprint: "TopGroupSelectorFolders:" + a.projectId
531
529
  }), l.value?.resetCache();
532
530
  }, { immediate: !0 });
533
- const n = E(() => je(t.folders ?? { root: [q] }, t.canSelectAll));
534
- return Se({
535
- modelFolder: a,
531
+ const n = M(() => pe(a.folders ?? { root: [j] }, a.canSelectAll));
532
+ return ge({
533
+ modelFolder: t,
536
534
  modelFolderId: o
537
- }, async (s) => {
538
- if (o.value === a.value.id)
535
+ }, async (u) => {
536
+ if (o.value === t.value.id)
539
537
  return;
540
- if (s.modelFolder && !s.modelFolderId) {
541
- o.value = a.value.id;
538
+ if (u.modelFolder && !u.modelFolderId) {
539
+ o.value = t.value.id;
542
540
  return;
543
541
  }
544
- let g = n.value.get(t.folderId);
545
- g || (g = q), a.value = g, o.value = g.id;
546
- }, { immediate: !0 }), (s, g) => (p(), k(Ae, {
542
+ let f = n.value.get(a.folderId);
543
+ f || (f = j), t.value = f, o.value = f.id;
544
+ }, { immediate: !0 }), (u, f) => (h(), C(Me, {
547
545
  class: "top-groupSelector_folder",
548
- modelValue: a.value,
549
- "onUpdate:modelValue": g[0] || (g[0] = (c) => a.value = c),
546
+ modelValue: t.value,
547
+ "onUpdate:modelValue": f[0] || (f[0] = (c) => t.value = c),
550
548
  items: e.folders ? [...n.value.values()] : void 0,
551
549
  "search-type": "inline",
552
550
  icon: e.addIcon ? "" : void 0,
553
- api: e.folders ? void 0 : m(r),
554
- apiSetSearchParams: (...c) => m(Fe)(...c, "name"),
551
+ api: e.folders ? void 0 : v(r),
552
+ apiSetSearchParams: (...c) => v($e)(...c, "name"),
555
553
  addChanger: e.addChanger,
556
554
  useCache: ""
557
555
  }, null, 8, ["modelValue", "items", "icon", "api", "apiSetSearchParams", "addChanger"]));
558
556
  }
559
- }), ue = {
557
+ }), ne = {
560
558
  id: -1,
561
559
  name: "--",
562
- folder_id: q.id,
563
- folder_path: q.path
564
- }, ce = {
565
- id: We,
560
+ folder_id: j.id,
561
+ folder_path: j.path
562
+ }, re = {
563
+ id: Ee,
566
564
  name: "All groups",
567
- folder_id: q.id,
568
- folder_path: q.path
569
- }, Z = () => (ce.name = j()?.Common.All_groups, ce), Ye = () => (ce.name = j()?.Keywords.Choose_group, ce), Et = (e, t, o) => (e = [...e], t !== void 0 && (e = e.filter((a) => a.on == Number(t))), o && o.id && o.childsIds && (e = e.filter((a) => a.folder_id === o.id || o.childsIds.includes(a.folder_id))), e), _e = (e) => e.gen("/get/keywords_2/groups/", ["id", "name", "folder_id", "folder_path"]).changeParams({ folder_id_depth: !0, limit: 100 }), _t = (e) => e.gen("/add/keywords_2/groups/"), Mt = { class: "top-groupSelector_groupItem" }, Vt = {
565
+ folder_id: j.id,
566
+ folder_path: j.path
567
+ }, Y = () => (re.name = w()?.Common.All_groups, re), Le = () => (re.name = w()?.Keywords.Choose_group, re), vt = (e, a, o) => (e = [...e], a !== void 0 && (e = e.filter((t) => t.on == Number(a))), o && o.id && o.childsIds && (e = e.filter((t) => t.folder_id === o.id || o.childsIds.includes(t.folder_id))), e), Ce = (e, a) => e.gen(`/get/${a}/groups/`, ["id", "name", "folder_id", "folder_path"]).changeParams({ folder_id_depth: !0, limit: 100 }), pt = (e, a) => e.gen(`/add/${a}/groups/`), yt = { class: "top-groupSelector_groupItem" }, ht = {
570
568
  key: 0,
571
569
  class: "top-comment"
572
- }, Gt = {
570
+ }, It = {
573
571
  key: 1,
574
572
  class: "top-groupSelector_groupItemFolderPath"
575
- }, Lt = /* @__PURE__ */ L({
573
+ }, St = /* @__PURE__ */ R({
576
574
  __name: "groups",
577
575
  props: /* @__PURE__ */ V({
578
576
  groupId: {},
@@ -587,7 +585,8 @@ const Pt = /* @__PURE__ */ L({
587
585
  addChanger: { type: Boolean, default: !0 },
588
586
  showPath: { type: Boolean },
589
587
  addIcon: { type: Boolean, default: !0 },
590
- client: {}
588
+ client: {},
589
+ service: {}
591
590
  }, {
592
591
  groupId: { required: !0 },
593
592
  groupIdModifiers: {},
@@ -595,19 +594,19 @@ const Pt = /* @__PURE__ */ L({
595
594
  groupModifiers: {}
596
595
  }),
597
596
  emits: /* @__PURE__ */ V(["addGroup"], ["update:groupId", "update:group"]),
598
- setup(e, { emit: t }) {
599
- const o = e, a = t, r = b(e, "groupId"), l = b(e, "group"), n = o.client && !o.groups ? _e(o.client) : void 0, s = o.client ? _t(o.client) : void 0, g = _(null), c = _(void 0), S = ie("folder_id", "EQUALS", [o.folder?.id ?? 0]);
597
+ setup(e, { emit: a }) {
598
+ const o = e, t = a, r = T(e, "groupId"), l = T(e, "group"), n = o.client && !o.groups ? Ce(o.client, o.service) : void 0, u = o.client ? pt(o.client, o.service) : void 0, f = K(null), c = K(void 0), x = Se("folder_id", "EQUALS", [o.folder?.id ?? 0]);
600
599
  n?.changeParams({
601
600
  project_id: o.projectId,
602
601
  folder_id_depth: !0,
603
602
  filters: [
604
- S
603
+ x
605
604
  ]
606
- }), o.on !== void 0 && n?.params.filters?.push(ie("on", "EQUALS", [Number(o.on)]));
605
+ }), o.on !== void 0 && n?.params.filters?.push(Se("on", "EQUALS", [Number(o.on)]));
607
606
  const i = (d) => {
608
607
  l.value = d, r.value = d.id;
609
608
  };
610
- Se({
609
+ ge({
611
610
  projectId: () => o.projectId,
612
611
  folderId: () => o.folder?.id,
613
612
  canSelectAll: () => o.canSelectAll
@@ -616,13 +615,13 @@ const Pt = /* @__PURE__ */ L({
616
615
  project_id: o.projectId
617
616
  }), n?.setOptions({
618
617
  checkFingerprint: "TopGroupSelectorGroups:" + o.projectId
619
- })), d.folderId && (S.values = [
618
+ })), d.folderId && (x.values = [
620
619
  o.folder?.id ?? 0
621
- ], o.groups && (c.value = Et(o.groups, o.on, o.folder))), g.value?.resetCache(), (d.folderId?.old !== void 0 || d.canSelectAll?.old !== void 0) && r.value !== ve) {
622
- let f;
623
- o.autoselect === "first" && (f = c.value?.[0], o.canSelectAll && (f = Ne(Z()))), (o.autoselect === "placeholder" || !f) && (f = Ye()), i(f);
620
+ ], o.groups && (c.value = vt(o.groups, o.on, o.folder))), f.value?.resetCache(), (d.folderId?.old !== void 0 || d.canSelectAll?.old !== void 0) && r.value !== ue) {
621
+ let s;
622
+ o.autoselect === "first" && (s = c.value?.[0], o.canSelectAll && (s = be(Y()))), (o.autoselect === "placeholder" || !s) && (s = Le()), i(s);
624
623
  }
625
- }, { immediate: !0 }), Se({
624
+ }, { immediate: !0 }), ge({
626
625
  modelGroup: l,
627
626
  modelGroupId: r
628
627
  }, async (d) => {
@@ -631,72 +630,72 @@ const Pt = /* @__PURE__ */ L({
631
630
  r.value = l.value.id;
632
631
  return;
633
632
  }
634
- if (!(o.canAdd && r.value === ve)) {
633
+ if (!(o.canAdd && r.value === ue)) {
635
634
  if (o.groups) {
636
- let f = c.value?.find((u) => u.id === r.value);
637
- if (!f && o.canSelectAll && (f = Z()), f)
638
- i(f);
635
+ let s = c.value?.find((g) => g.id === r.value);
636
+ if (!s && o.canSelectAll && (s = Y()), s)
637
+ i(s);
639
638
  else {
640
- const u = c.value?.[0];
641
- u && !r.value ? i(u) : i(ue);
639
+ const g = c.value?.[0];
640
+ g && !r.value ? i(g) : i(ne);
642
641
  }
643
642
  }
644
- if (o.client && !o.groups && (r.value || r.value === We && !o.canSelectAll)) {
645
- const f = _e(o.client).changeParams({
643
+ if (o.client && !o.groups && (r.value || r.value === Ee && !o.canSelectAll)) {
644
+ const s = Ce(o.client, o.service).changeParams({
646
645
  project_id: o.projectId,
647
646
  id: r.value,
648
647
  filters: [
649
- S
648
+ x
650
649
  ]
651
650
  });
652
- f?.setOptions({
651
+ s?.setOptions({
653
652
  checkFingerprint: "TopGroupSelectorFindGroup:" + o.projectId
654
653
  });
655
- const u = await f.call();
656
- if (!u.errors?.length && !u.result) return;
657
- !u.errors && u.result[0] ? i(u.result[0]) : i(ue);
654
+ const g = await s.call();
655
+ if (!g.errors?.length && !g.result) return;
656
+ !g.errors && g.result[0] ? i(g.result[0]) : i(ne);
658
657
  }
659
658
  }
660
659
  }
661
660
  }, { immediate: !0 });
662
- const v = async (d) => {
663
- if (o.canAdd !== "api" || !s) return;
664
- const f = l.value, u = await s.changeParams({
661
+ const m = async (d) => {
662
+ if (o.canAdd !== "api" || !u) return;
663
+ const s = l.value, g = await u.changeParams({
665
664
  project_id: o.projectId,
666
665
  names: [d.name],
667
- to_id: o.folder?.id ?? q.id,
666
+ to_id: o.folder?.id ?? j.id,
668
667
  to_type: "in_folder_last"
669
668
  }).call();
670
- u.result ? (i(u.result), a("addGroup", u.result)) : i(f), g.value?.resetCache(!0);
669
+ g.result ? (i(g.result), t("addGroup", g.result)) : i(s), f.value?.resetCache(!0);
671
670
  };
672
- return (d, f) => (p(), k(Ae, {
671
+ return (d, s) => (h(), C(Me, {
673
672
  ref_key: "refSelector",
674
- ref: g,
673
+ ref: f,
675
674
  class: "top-groupSelector_group",
676
675
  modelValue: l.value,
677
- "onUpdate:modelValue": f[0] || (f[0] = (u) => l.value = u),
676
+ "onUpdate:modelValue": s[0] || (s[0] = (g) => l.value = g),
678
677
  items: c.value ?? e.groups,
679
678
  searchType: "inline",
680
679
  icon: e.addIcon ? "" : void 0,
681
- api: e.groups ? void 0 : m(n),
682
- apiSetSearchParams: (...u) => m(Fe)(...u, "name"),
680
+ api: e.groups ? void 0 : v(n),
681
+ apiSetSearchParams: (...g) => v($e)(...g, "name"),
683
682
  appendSearchToResult: !!e.canAdd,
684
- useAllItem: e.canSelectAll ? m(Z)().name : !1,
683
+ useAllItem: e.canSelectAll ? v(Y)().name : !1,
685
684
  addChanger: e.addChanger,
686
685
  useCache: "",
687
- onAppendItem: v
686
+ onAppendItem: m
688
687
  }, {
689
- item: A(({ item: u }) => [
690
- O("div", Mt, [
691
- u.id === m(ve) ? (p(), T("div", Vt, B(d.$i18n.Common.Add) + ": ", 1)) : M("", !0),
692
- O("span", null, B(u.name), 1),
693
- u.folder_path && e.showPath ? (p(), T("span", Gt, B(u.folder_path), 1)) : M("", !0)
688
+ item: B(({ item: g }) => [
689
+ oe("div", yt, [
690
+ g.id === v(ue) ? (h(), A("div", ht, b(d.$i18n.Common.Add) + ": ", 1)) : O("", !0),
691
+ oe("span", null, b(g.name), 1),
692
+ g.folder_path && e.showPath ? (h(), A("span", It, b(g.folder_path), 1)) : O("", !0)
694
693
  ])
695
694
  ]),
696
695
  _: 1
697
696
  }, 8, ["modelValue", "items", "icon", "api", "apiSetSearchParams", "appendSearchToResult", "useAllItem", "addChanger"]));
698
697
  }
699
- }), Rt = { class: "top-groupSelector" }, Bo = /* @__PURE__ */ L({
698
+ }), xt = { class: "top-groupSelector" }, qt = /* @__PURE__ */ R({
700
699
  __name: "groupSelector",
701
700
  props: /* @__PURE__ */ V({
702
701
  folderId: {},
@@ -714,7 +713,8 @@ const Pt = /* @__PURE__ */ L({
714
713
  showFolders: { type: Boolean, default: !0 },
715
714
  showGroups: { type: Boolean, default: !0 },
716
715
  addIcon: { type: Boolean, default: !0 },
717
- client: {}
716
+ client: {},
717
+ service: { default: "keywords_2" }
718
718
  }, {
719
719
  folderId: { required: !0 },
720
720
  folderIdModifiers: {},
@@ -722,39 +722,40 @@ const Pt = /* @__PURE__ */ L({
722
722
  folderModifiers: {},
723
723
  groupId: { required: !0 },
724
724
  groupIdModifiers: {},
725
- group: { default: ue },
725
+ group: { default: ne },
726
726
  groupModifiers: {}
727
727
  }),
728
728
  emits: /* @__PURE__ */ V(["update:groups"], ["update:folderId", "update:folder", "update:groupId", "update:group"]),
729
- setup(e, { emit: t }) {
730
- const o = e, a = b(e, "folderId"), r = b(e, "folder"), l = b(e, "groupId"), n = b(e, "group"), s = t, g = je(o.folders ?? { root: [q] }, o.canSelectAllGroups);
731
- r.value = g.get(a.value);
729
+ setup(e, { emit: a }) {
730
+ const o = e, t = T(e, "folderId"), r = T(e, "folder"), l = T(e, "groupId"), n = T(e, "group"), u = a, f = pe(o.folders ?? { root: [j] }, o.canSelectAllGroups);
731
+ r.value = f.get(t.value);
732
732
  let c = o.groups?.find((i) => i.id === l.value);
733
- l.value || (c = o.groups?.[0]), o.canSelectAllGroups && !c && (c = Z()), o.canSelectAllGroups && !c && (c = Z()), (o.autoselect === "placeholder" || !c) && (c = Ye()), c ??= ue, n.value = c;
734
- const S = (i) => {
735
- let v;
736
- o.groups && i && (v = [...o.groups, i]), s("update:groups", v);
733
+ l.value || (c = o.groups?.[0]), o.canSelectAllGroups && !c && (c = Y()), o.canSelectAllGroups && !c && (c = Y()), (o.autoselect === "placeholder" || !c) && (c = Le()), c ??= ne, n.value = c;
734
+ const x = (i) => {
735
+ let m;
736
+ o.groups && i && (m = [...o.groups, i]), u("update:groups", m);
737
737
  };
738
- return (i, v) => (p(), T("div", Rt, [
739
- e.showFolders ? (p(), k(Pt, {
738
+ return (i, m) => (h(), A("div", xt, [
739
+ e.showFolders ? (h(), C(mt, {
740
740
  key: 0,
741
- folderId: a.value,
742
- "onUpdate:folderId": v[0] || (v[0] = (d) => a.value = d),
741
+ folderId: t.value,
742
+ "onUpdate:folderId": m[0] || (m[0] = (d) => t.value = d),
743
743
  folder: r.value,
744
- "onUpdate:folder": v[1] || (v[1] = (d) => r.value = d),
744
+ "onUpdate:folder": m[1] || (m[1] = (d) => r.value = d),
745
745
  projectId: e.projectId,
746
746
  folders: e.folders,
747
747
  canSelectAll: e.canSelectAllGroups,
748
748
  addChanger: e.addChanger,
749
749
  addIcon: e.addIcon,
750
- client: e.client
751
- }, null, 8, ["folderId", "folder", "projectId", "folders", "canSelectAll", "addChanger", "addIcon", "client"])) : M("", !0),
752
- e.showGroups ? (p(), k(Lt, {
750
+ client: e.client,
751
+ service: e.service
752
+ }, null, 8, ["folderId", "folder", "projectId", "folders", "canSelectAll", "addChanger", "addIcon", "client", "service"])) : O("", !0),
753
+ e.showGroups ? (h(), C(St, {
753
754
  key: 1,
754
755
  groupId: l.value,
755
- "onUpdate:groupId": v[2] || (v[2] = (d) => l.value = d),
756
+ "onUpdate:groupId": m[2] || (m[2] = (d) => l.value = d),
756
757
  group: n.value,
757
- "onUpdate:group": v[3] || (v[3] = (d) => n.value = d),
758
+ "onUpdate:group": m[3] || (m[3] = (d) => n.value = d),
758
759
  projectId: e.projectId,
759
760
  folder: r.value,
760
761
  groups: e.groups,
@@ -766,403 +767,66 @@ const Pt = /* @__PURE__ */ L({
766
767
  showPath: e.showFolders && !!e.folders?.[0],
767
768
  addIcon: e.addIcon,
768
769
  client: e.client,
769
- onAddGroup: S
770
- }, null, 8, ["groupId", "group", "projectId", "folder", "groups", "on", "canAdd", "canSelectAll", "autoselect", "addChanger", "showPath", "addIcon", "client"])) : M("", !0)
770
+ service: e.service,
771
+ onAddGroup: x
772
+ }, null, 8, ["groupId", "group", "projectId", "folder", "groups", "on", "canAdd", "canSelectAll", "autoselect", "addChanger", "showPath", "addIcon", "client", "service"])) : O("", !0)
771
773
  ]));
772
774
  }
773
- }), Kt = { class: "top-projectSelectorSubmenu_item" }, Ot = ["href", "title", "data-top-icon", "data-right"], Nt = { class: "top-projectSelectorSubmenu_item" }, Ut = ["href"], Dt = /* @__PURE__ */ L({
774
- __name: "submenu",
775
- props: {
776
- id: {},
777
- right: {},
778
- url: {}
779
- },
780
- setup(e) {
781
- const t = e, o = j();
782
- let a = [
783
- {
784
- href: `/project/keywords/${t.id}/`,
785
- title: o.Common.Menu_phrases,
786
- icon: "",
787
- right: "2"
788
- },
789
- {
790
- href: `/project/dynamics/${t.id}/`,
791
- title: o.Common.Menu_dynamics,
792
- icon: "",
793
- right: "1"
794
- },
795
- {
796
- href: `/project/snapshots/${t.id}/`,
797
- title: o.Common.Menu_snapshots,
798
- icon: "",
799
- right: "1"
800
- },
801
- {
802
- href: `/project/competitors/${t.id}/`,
803
- title: o.Common.Menu_competitors,
804
- icon: "",
805
- right: "1"
806
- },
807
- {
808
- href: `/project/analytics/${t.id}/`,
809
- title: o.Common.Menu_analytics,
810
- icon: "",
811
- right: "5"
812
- },
813
- {
814
- href: `/project/broker/${t.id}/`,
815
- title: o.Common.Menu_broker,
816
- icon: "",
817
- right: "6"
818
- },
819
- {
820
- href: `/project/audit/${t.id}/sitemap/`,
821
- title: o.Audit.Sitemap_gen,
822
- icon: "",
823
- right: "8"
824
- },
825
- {
826
- href: `/project/audit/${t.id}/audit/`,
827
- title: o.Common.Menu_audit,
828
- icon: "",
829
- right: "8"
830
- },
831
- {
832
- href: `/project/audit/${t.id}/indexing/`,
833
- title: o.Audit.Indexing,
834
- icon: "",
835
- right: "8"
836
- },
837
- {
838
- href: `/project/audit/${t.id}/watcher/`,
839
- title: o.Audit.Watcher,
840
- icon: "",
841
- right: "9"
842
- },
843
- {
844
- href: `/project/settings/${t.id}/`,
845
- title: o.Common.Menu_settings,
846
- icon: "",
847
- right: "2"
848
- }
849
- ];
850
- const r = E(() => t.right.includes("0") ? a.filter((l) => t.right[l.right] === "1") : a);
851
- return (l, n) => {
852
- const s = Ue("TopButton");
853
- return p(), k(m(ke), {
854
- class: "top-projectSelectorSubmenu",
855
- notch: !1,
856
- pos: "2"
857
- }, {
858
- opener: A(() => [
859
- K(s, {
860
- class: "top-projectSelectorSubmenu_opener",
861
- "data-top-icon": "",
862
- color: "theme"
863
- })
864
- ]),
865
- contentList: A(() => [
866
- (p(!0), T(F, null, ge(r.value, (g) => (p(), T("li", Kt, [
867
- O("a", {
868
- href: g.href,
869
- title: g.title,
870
- "data-top-icon": g.icon,
871
- "data-right": g.right
872
- }, null, 8, Ot)
873
- ]))), 256)),
874
- O("li", Nt, [
875
- O("a", {
876
- href: e.url,
877
- "data-top-icon": "",
878
- target: "_blank"
879
- }, null, 8, Ut)
880
- ])
881
- ]),
882
- _: 1
883
- });
884
- };
885
- }
886
- }), he = (e) => ({
887
- id: null,
888
- name: e,
889
- listItemProps: {
890
- type: "title"
891
- }
892
- }), Ie = {
893
- scheduledUpdate: !1,
894
- manualUpdate: !1,
895
- guestProjects: !1
896
- }, qt = (e, t) => {
897
- const o = [], a = {
898
- scheduledUpdate: he(j().Projects.Scheduled_update),
899
- manualUpdate: he(j().Projects.Manual_update),
900
- guestProjects: he(j().Projects.Guest_projects)
901
- }, r = t ? {
902
- scheduledUpdate: !1,
903
- manualUpdate: !1,
904
- guestProjects: !1
905
- } : Ie;
906
- for (const l of e)
907
- !r.scheduledUpdate && l.right?.startsWith("1") && l.on > 0 && (o.push(a.scheduledUpdate), r.scheduledUpdate = !0), !r.manualUpdate && l.right?.startsWith("1") && l.on === 0 && (o.push(a.manualUpdate), r.manualUpdate = !0), !r.guestProjects && l.right?.startsWith("0") && l.on >= 0 && (o.push(a.guestProjects), r.guestProjects = !0), o.push(l);
908
- return o;
909
- }, Ft = (e, t, o, a) => !e || e.length === 0 ? [] : (t && (e = e.filter((r) => r.id !== t)), o && Object.keys(Ie).forEach((r) => Ie[r] = !1), qt(e, a)), Wt = (e) => {
910
- if (!e) return "";
911
- let t = e;
912
- return t = t.replace(/historyView=[^&]*/, ""), t = t.replace(/competitorsIds=[^&]*/, ""), t = t.replace(/searchersKeys=[^&]*/, ""), t = t.replace(/regionIndex=[^&]*/, ""), t = t.replace(/regionsIndexes=[^&]*/, ""), t = t.replace(/folderId=[^&]*/, ""), t = t.replace(/groupId=[^&]*/, ""), t = t.replace(/tags=[^&]*/, ""), window.mo?.getHash && !window.mo.getHash("dataSort").toString().includes("0000-00-00") && (t = t.replace(/dataSort=[^&]*/, "")), t = t.replace(/%22historyView%22:[^,]*,/, ""), t = t.replace(/%22competitorsIds%22:\[[^\]]*\],/, ""), t = t.replace(/%22searchersKeys%22:\[[^\]]*\],/, ""), t = t.replace(/%22regionIndex%22:[^,]*,/, ""), t = t.replace(/%22regionsIndexes%22:\[[^\]]*\],/, ""), t = t.replace(/%22folderId%22:[^,]*,/, ""), t = t.replace(/%22groupId%22:[^,]*,/, ""), t = t.replace(/%22tagsIds%22:\[[^\]]*\],/, ""), /%22dataSort%22:\{[^\}]*0000-00-00[^\}]*\}/.test(t) || (t = t.replace(/%22dataSort%22:\{[^\}]*\},/, "")), t;
913
- }, Qe = (e) => {
914
- const t = location.pathname.split("/");
915
- let o = "project/dynamics/", a = "";
916
- t[1] == "project" && (o = t[1] + "/" + t[2] + "/"), ["watcher", "indexing", "sitemap", "audit", "direct", "adwords"].includes(t[4]) && (a = t[4] + "/");
917
- let r = "/" + o + e + "/" + a;
918
- const l = Wt(location.hash);
919
- return r += l, r;
920
- }, Ht = (e, t) => {
921
- if (e)
922
- return e.map((o) => o.id ? {
923
- ...o,
924
- listItemProps: {
925
- class: "top-projectSelector_item",
926
- href: t ? Qe(Number(o.id)) : void 0,
927
- title: o.name
928
- }
929
- } : o);
930
- }, Me = (e) => {
931
- let t = e.startsWith("http") ? e : "http://" + e;
932
- return t = t.replace(/"/g, "%22"), t;
933
- }, Jt = (e, t) => {
934
- let o = e.params.filters ?? [];
935
- o = o.filter((n) => n.name !== "GEN_SEARCH_STRING()");
936
- const a = mt(t), r = t.replace(/([[^$.|?*+()])/g, "\\$1"), l = a.replace(/([[^$.|?*+()])/g, "\\$1");
937
- o.push(ie("GEN_SEARCH_STRING()", "REGEXP", [`(${r}|${l})`])), e.changeParams({ filters: o });
938
- }, Ve = (e, t, o, a) => {
939
- const r = e.gen("/get/projects_2/projects/", ["id", "user_id", "name", "url", "on", "right"]);
940
- return r.params = {
941
- ...a,
942
- filters: [
943
- ie("on", "GREATER_THAN_EQUALS", [0])
944
- ],
945
- orders: [
946
- le("user_id", "DESC", [t]),
947
- le("on", "DESC"),
948
- le("favorite", "DESC"),
949
- le("id", "DESC")
950
- ]
951
- }, r.options.onApiLoaded = (l, n, s) => {
952
- const g = n.data.filters.length === 1 && n.data.offset === 0 || n.data.limit === 1e3, c = n.data.limit === 100 && n.data.filters.length > 1 ? !0 : void 0;
953
- l.result = Ft(l.result, o, g, c), s?.(l, n);
954
- }, r;
955
- }, zt = (e) => e.gen("/add/projects_2/projects/"), xe = "ui_project_selector_total:", Yt = 1440 * 60 * 1e3, U = De(), Xe = _(0), ne = _(null), Ge = (e, t) => {
956
- localStorage.setItem(
957
- xe + e,
958
- JSON.stringify({ projectsTotal: t, expiresAt: Date.now() + Yt })
959
- );
960
- }, Qt = (e) => {
961
- const t = localStorage.getItem(xe + e);
962
- if (!t) return;
963
- const { projectsTotal: o, expiresAt: a } = JSON.parse(t);
964
- if (Date.now() > a) {
965
- localStorage.removeItem(xe + e);
966
- return;
967
- }
968
- return o;
969
- }, Xt = (e = !0) => {
970
- U.value = void 0, e && Xe.value++;
971
- }, Zt = { class: "top-projectSelector_itemText" }, eo = { class: "top-projectSelector_itemName" }, to = { class: "top-projectSelector_itemId" }, oo = { key: 1 }, ao = {
972
- key: 0,
973
- class: "top-comment"
974
- }, Le = 1e3, bo = /* @__PURE__ */ L({
975
- __name: "projectSelector",
976
- props: /* @__PURE__ */ V({
977
- userId: { default: window.mo?.user?.id },
978
- client: {},
979
- project: {},
980
- addLinksToProjects: { type: Boolean, default: !0 },
981
- excludeProjectId: {},
982
- modificator: { default: "projectSelector" },
983
- placeholder: {},
984
- buttonProps: {},
985
- openerShortcut: {}
986
- }, {
987
- project: {
988
- default: { id: null, name: "" },
989
- required: !1
990
- },
991
- projectModifiers: {}
992
- }),
993
- emits: ["update:project"],
994
- setup(e) {
995
- const t = j(), o = e, a = b(e, "project"), r = Ve(
996
- o.client,
997
- o.userId,
998
- o.excludeProjectId
999
- ), l = zt(o.client), n = _(Qt(o.userId)), s = _(null), g = E(() => o.placeholder ?? t.Projects.Select_project), c = E(() => {
1000
- if (!(!n.value && n.value !== 0))
1001
- return n.value < Le ? "static" : "api";
1002
- });
1003
- G(Xe, () => {
1004
- d();
1005
- });
1006
- const S = async () => {
1007
- if (!ne.value) {
1008
- const w = Ve(
1009
- o.client,
1010
- o.userId,
1011
- o.excludeProjectId,
1012
- { limit: Le }
1013
- );
1014
- ne.value = w.call();
1015
- }
1016
- const u = await ne.value;
1017
- if (!u.errors)
1018
- return ne.value = null, u;
1019
- }, i = async () => {
1020
- if (n.value) return;
1021
- const u = await S();
1022
- u && (n.value = u.total, c.value === "static" && !U.value && (U.value = u.result), n.value && Ge(o.userId, n.value));
1023
- }, v = async (u) => {
1024
- const w = await l.changeParams({
1025
- url: u.name,
1026
- name: u.name
1027
- }).call();
1028
- if (!w.errors) {
1029
- if (U.value && c.value === "static") {
1030
- const N = {
1031
- id: Number(w.result),
1032
- user_id: o.userId,
1033
- name: u.name,
1034
- url: u.name,
1035
- on: 0,
1036
- right: "11111111111111111111",
1037
- listItemProps: {
1038
- class: "top-projectSelector_item",
1039
- href: o.addLinksToProjects ? Qe(Number(w.result)) : void 0,
1040
- title: u.name
1041
- }
1042
- };
1043
- U.value = [N, ...U.value], n.value && Ge(o.userId, n.value + 1);
1044
- }
1045
- c.value === "api" && Xt(o.userId);
1046
- }
1047
- }, d = () => {
1048
- c.value === "api" && s.value?.resetCache(!0);
1049
- }, f = async () => {
1050
- if (U.value || c.value !== "static") return;
1051
- const u = await S();
1052
- u && (U.value = u.result);
1053
- };
1054
- return Ze(async () => {
1055
- await i();
1056
- }), (u, w) => {
1057
- const N = Ue("TopButton");
1058
- return c.value ? (p(), k(Ae, {
1059
- key: 0,
1060
- ref_key: "refSelector",
1061
- ref: s,
1062
- class: "top-projectSelector",
1063
- modelValue: a.value,
1064
- "onUpdate:modelValue": w[1] || (w[1] = (P) => a.value = P),
1065
- items: m(Ht)(m(U), e.addLinksToProjects),
1066
- title: u.$i18n.Projects.Search_projects,
1067
- modificator: e.modificator,
1068
- placeholder: g.value,
1069
- hasCloserBtn: "",
1070
- api: c.value === "api" ? m(r) : void 0,
1071
- apiSetSearchParams: c.value === "api" ? (...P) => m(Jt)(...P) : void 0,
1072
- useCache: "",
1073
- appendSearchToResult: "",
1074
- appendSearchToResultCond: m(we),
1075
- appendWithoutSelect: "",
1076
- buttonProps: e.buttonProps,
1077
- openerShortcut: e.openerShortcut,
1078
- onAppendItem: v,
1079
- onOpen: f
1080
- }, {
1081
- item: A(({ item: P }) => [
1082
- P.id ? (p(), T(F, { key: 0 }, [
1083
- O("div", Zt, [
1084
- O("span", eo, B(m(gt)(P.name, 20)), 1),
1085
- O("span", to, " id " + B(P.id), 1)
1086
- ]),
1087
- u.$core.state.isMobile ? M("", !0) : (p(), k(N, {
1088
- key: 0,
1089
- class: "top-projectSelector_itemLink",
1090
- href: m(Me)(P.url),
1091
- "data-top-icon": "",
1092
- color: "theme",
1093
- target: "_blank",
1094
- onClick: w[0] || (w[0] = W(() => {
1095
- }, ["stop"]))
1096
- }, null, 8, ["href"])),
1097
- K(Dt, {
1098
- id: P.id,
1099
- right: P.right ?? void 0,
1100
- url: m(Me)(P.url)
1101
- }, null, 8, ["id", "right", "url"])
1102
- ], 64)) : (p(), T("div", oo, [
1103
- m(we)(P.name) ? (p(), T("div", ao, B(u.$i18n.Projects.Add_project) + ": ", 1)) : M("", !0),
1104
- H(" " + B(P.name), 1)
1105
- ]))
1106
- ]),
1107
- _: 1
1108
- }, 8, ["modelValue", "items", "title", "modificator", "placeholder", "api", "apiSetSearchParams", "appendSearchToResultCond", "buttonProps", "openerShortcut"])) : M("", !0);
1109
- };
1110
- }
1111
- }), Re = (e) => "-" + e, te = (e) => e[0] === "-" ? e.substring(1) : e, fe = (e, t) => {
1112
- e = te(e);
1113
- const o = t.find((a) => a.id === e);
775
+ }), Be = (e) => "-" + e, X = (e) => e[0] === "-" ? e.substring(1) : e, ie = (e, a) => {
776
+ e = X(e);
777
+ const o = a.find((t) => t.id === e);
1114
778
  if (o)
1115
779
  return o;
1116
- }, $o = (e, t, o) => {
1117
- t || (t = { id: e.id }), t.id = e.id, t.pos ??= "3", t.notch ??= !0, t.posBy ??= "fixed";
1118
- const a = vt.genElPopupOpener("div", t);
1119
- return a.classList.add("top-tagSelector"), e.useTopButton && a.classList.add("top-tagSelector-useTopButton", "top-button", "top-color_theme", "top-as-selector"), e.useTopButton || a.classList.add("top-tagSelector-custom"), e.mode === "filter" && a.classList.add("top-tagSelector-filter"), e.mode === "setter" && !e.filters && a.classList.add("top-tagSelector-setter_single"), e.mode === "setter" && e.filters && a.classList.add("top-tagSelector-setter_several"), a.onclick = (r) => {
1120
- r.preventDefault(), r.stopPropagation(), a.onclick = null;
1121
- const l = _(e.modelValue), n = {
780
+ }, Dt = (e, a, o) => {
781
+ a || (a = { id: e.id }), a.id = e.id, a.pos ??= "3", a.notch ??= !0, a.posBy ??= "fixed";
782
+ const t = Ze.genElPopupOpener("div", a);
783
+ return t.classList.add("top-tagSelector"), e.useTopButton && t.classList.add("top-tagSelector-useTopButton", "top-button", "top-color_theme", "top-as-selector"), e.useTopButton || t.classList.add("top-tagSelector-custom"), e.mode === "filter" && t.classList.add("top-tagSelector-filter"), e.mode === "setter" && !e.filters && t.classList.add("top-tagSelector-setter_single"), e.mode === "setter" && e.filters && t.classList.add("top-tagSelector-setter_several"), t.onclick = (r) => {
784
+ r.preventDefault(), r.stopPropagation(), t.onclick = null;
785
+ const l = K(e.modelValue), n = {
1122
786
  model: l,
1123
787
  mode: e.mode,
1124
788
  targetId: e.targetId,
1125
789
  filters: e.filters,
1126
790
  payload: e.payload
1127
791
  };
1128
- X(a, "topTagSelectorTarget", n), delete a.dataset.topPopupDisabled, be(e.modelValue) || G(l, () => {
1129
- e.modelValue = l.value, re(a, e, o);
1130
- }), a.click();
1131
- }, be(e.modelValue) ? G(e.modelValue, () => re(a, e, o)) : X(a, "topTagSelectorRender", (r) => {
792
+ W(t, "topTagSelectorTarget", n), delete t.dataset.topPopupDisabled, he(e.modelValue) || E(l, () => {
793
+ e.modelValue = l.value, te(t, e, o);
794
+ }), t.click();
795
+ }, he(e.modelValue) ? E(e.modelValue, () => te(t, e, o)) : W(t, "topTagSelectorRender", (r) => {
1132
796
  e.modelValue = r;
1133
- const l = X(a, "topTagSelectorTarget");
1134
- l && (l.model.value = r), re(a, e, o);
1135
- }), re(a, e, o), a;
1136
- }, wo = (e, t) => {
1137
- X(e, "topTagSelectorRender")?.(t);
1138
- }, re = (e, t, o) => {
1139
- const a = m(t.modelValue);
1140
- if (e.classList.toggle("top-tagSelector-selectedOne", !a.length || a.length === 1), e.classList.toggle("top-tagSelector-toTwoLine", a.length > 5), t.mode === "setter" && t.filters) {
797
+ const l = W(t, "topTagSelectorTarget");
798
+ l && (l.model.value = r), te(t, e, o);
799
+ }), te(t, e, o), t;
800
+ }, Ft = (e, a) => {
801
+ W(e, "topTagSelectorRender")?.(a);
802
+ }, te = (e, a, o) => {
803
+ const t = v(a.modelValue);
804
+ if (e.classList.toggle("top-tagSelector-selectedOne", !t.length || t.length === 1), e.classList.toggle("top-tagSelector-toTwoLine", t.length > 5), a.mode === "setter" && a.filters) {
1141
805
  e.innerHTML = `<div>${o}</div>`;
1142
806
  return;
1143
807
  }
1144
- if (e.innerHTML = "", !a.length && t.mode === "filter") {
1145
- const r = Ke({
808
+ if (e.innerHTML = "", !t.length && a.mode === "filter") {
809
+ const r = Te({
1146
810
  id: "all",
1147
811
  colorId: "",
1148
- name: j().Common?.All_tags ?? "",
812
+ name: w().Common?.All_tags ?? "",
1149
813
  state: ""
1150
814
  });
1151
815
  e.append(r);
1152
816
  }
1153
- a.forEach((r) => {
1154
- const l = Ke({
1155
- id: te(r),
1156
- colorId: fe(r, t.tags)?.color_id ?? "",
1157
- name: fe(r, t.tags)?.name ?? "",
1158
- state: te(r) === r ? "selected" : "excluded"
817
+ t.forEach((r) => {
818
+ const l = Te({
819
+ id: X(r),
820
+ colorId: ie(r, a.tags)?.color_id ?? "",
821
+ name: ie(r, a.tags)?.name ?? "",
822
+ state: X(r) === r ? "selected" : "excluded"
1159
823
  });
1160
824
  e.append(l);
1161
825
  });
1162
- }, Ke = (e) => {
1163
- const t = document.createElement("div");
1164
- return t.classList.add("top-tagSelector_tagIcon"), t.classList.toggle("top-tagSelector-active", !!e.state), t.classList.toggle("top-tagSelector-excluded", e.state === "excluded"), t.dataset.tag_id = e.id, t.dataset.tag_color_id = e.colorId, t.title = e.name, t;
1165
- }, lo = [
826
+ }, Te = (e) => {
827
+ const a = document.createElement("div");
828
+ return a.classList.add("top-tagSelector_tagIcon"), a.classList.toggle("top-tagSelector-active", !!e.state), a.classList.toggle("top-tagSelector-excluded", e.state === "excluded"), a.dataset.tag_id = e.id, a.dataset.tag_color_id = e.colorId, a.title = e.name, a;
829
+ }, kt = [
1166
830
  {
1167
831
  id: "1",
1168
832
  name: "Without Tag",
@@ -1213,7 +877,7 @@ const Pt = /* @__PURE__ */ L({
1213
877
  name: "Turquoise",
1214
878
  color_id: "10"
1215
879
  }
1216
- ], no = ["data-tag_id", "data-tag_color_id", "title"], Ce = /* @__PURE__ */ L({
880
+ ], Ct = ["data-tag_id", "data-tag_color_id", "title"], fe = /* @__PURE__ */ R({
1217
881
  __name: "tagIcon",
1218
882
  props: {
1219
883
  id: {},
@@ -1222,8 +886,8 @@ const Pt = /* @__PURE__ */ L({
1222
886
  state: {}
1223
887
  },
1224
888
  setup(e) {
1225
- return (t, o) => (p(), T("div", {
1226
- class: oe({
889
+ return (a, o) => (h(), A("div", {
890
+ class: Z({
1227
891
  "top-tagSelector_tagIcon": !0,
1228
892
  "top-tagSelector-active": !!e.state,
1229
893
  "top-tagSelector-excluded": e.state === "excluded"
@@ -1231,9 +895,9 @@ const Pt = /* @__PURE__ */ L({
1231
895
  "data-tag_id": e.id,
1232
896
  "data-tag_color_id": e.colorId,
1233
897
  title: e.name
1234
- }, null, 10, no));
898
+ }, null, 10, Ct));
1235
899
  }
1236
- }), ro = ["contenteditable", "onKeydown"], Oe = /* @__PURE__ */ L({
900
+ }), Bt = ["contenteditable", "onKeydown"], Ae = /* @__PURE__ */ R({
1237
901
  __name: "tagPopupListItem",
1238
902
  props: /* @__PURE__ */ V({
1239
903
  editable: { type: Boolean },
@@ -1250,70 +914,70 @@ const Pt = /* @__PURE__ */ L({
1250
914
  nameModifiers: {}
1251
915
  }),
1252
916
  emits: /* @__PURE__ */ V(["update:name", "unselect", "exclude", "select"], ["update:name"]),
1253
- setup(e, { emit: t }) {
1254
- const o = e, a = t, r = b(e, "name"), l = _(null), n = E(() => navigator.userAgent.indexOf("Firefox") != -1 ? {
1255
- contenteditable: s.value,
1256
- onpaste: (v) => v.preventDefault()
1257
- } : {}), s = _(!1), g = async () => {
1258
- s.value = !0, await et(), l.value?.focus();
917
+ setup(e, { emit: a }) {
918
+ const o = e, t = a, r = T(e, "name"), l = K(null), n = M(() => navigator.userAgent.indexOf("Firefox") != -1 ? {
919
+ contenteditable: u.value,
920
+ onpaste: (m) => m.preventDefault()
921
+ } : {}), u = K(!1), f = async () => {
922
+ u.value = !0, await Re(), l.value?.focus();
1259
923
  }, c = () => {
1260
- const v = l.value?.innerText;
1261
- if (!v) return S();
1262
- l.value && (l.value.innerText = v), s.value = !1, a("update:name", v);
1263
- }, S = async () => {
1264
- l.value && (l.value.innerText = o.name), s.value = !1;
1265
- }, i = (v) => {
1266
- if (s.value || o.disabled) return;
924
+ const m = l.value?.innerText;
925
+ if (!m) return x();
926
+ l.value && (l.value.innerText = m), u.value = !1, t("update:name", m);
927
+ }, x = async () => {
928
+ l.value && (l.value.innerText = o.name), u.value = !1;
929
+ }, i = (m) => {
930
+ if (u.value || o.disabled) return;
1267
931
  let d = "selected";
1268
- o.canExclude && (v.ctrlKey || v.metaKey) && (d = "excluded"), o.state == d && (d = ""), d === "" && a("unselect"), d === "selected" && a("select"), d === "excluded" && a("exclude");
932
+ o.canExclude && (m.ctrlKey || m.metaKey) && (d = "excluded"), o.state == d && (d = ""), d === "" && t("unselect"), d === "selected" && t("select"), d === "excluded" && t("exclude");
1269
933
  };
1270
- return (v, d) => (p(), k(Te, {
1271
- class: oe({
934
+ return (m, d) => (h(), C(ve, {
935
+ class: Z({
1272
936
  "top-tagSelector_tagListItem": !0,
1273
- "top-tagSelector_tagListItem-inEdit": s.value,
937
+ "top-tagSelector_tagListItem-inEdit": u.value,
1274
938
  "top-tagSelector_tagListItem-disabled": e.disabled,
1275
939
  "top-tagSelector_tagListItem-canExclude": e.canExclude,
1276
940
  "top-tagSelector-active": !!e.state,
1277
941
  "top-tagSelector-excluded": e.state === "excluded"
1278
942
  }),
1279
- onClick: W(i, ["stop"])
943
+ onClick: U(i, ["stop"])
1280
944
  }, {
1281
- default: A(() => [
1282
- K(Ce, {
945
+ default: B(() => [
946
+ P(fe, {
1283
947
  id: e.id,
1284
948
  name: r.value,
1285
949
  colorId: e.colorId,
1286
950
  state: e.state
1287
951
  }, null, 8, ["id", "name", "colorId", "state"]),
1288
- O("span", qe({
952
+ oe("span", Ve({
1289
953
  ref_key: "elName",
1290
954
  ref: l,
1291
955
  class: "top-tagSelector_tagListItemName",
1292
- contenteditable: s.value ? "plaintext-only" : !1
956
+ contenteditable: u.value ? "plaintext-only" : !1
1293
957
  }, n.value, {
1294
958
  onKeydown: [
1295
- $e(W(c, ["stop"]), ["enter"]),
1296
- $e(W(S, ["stop"]), ["esc"])
959
+ Ie(U(c, ["stop"]), ["enter"]),
960
+ Ie(U(x, ["stop"]), ["esc"])
1297
961
  ]
1298
- }), B(r.value), 17, ro),
1299
- e.editable ? (p(), T(F, { key: 0 }, [
1300
- s.value ? (p(), T("span", {
962
+ }), b(r.value), 17, Bt),
963
+ e.editable ? (h(), A(Q, { key: 0 }, [
964
+ u.value ? (h(), A("span", {
1301
965
  key: 1,
1302
966
  "data-top-icon": "",
1303
967
  class: "top-tagSelector_edit",
1304
- onClick: W(c, ["stop"])
1305
- })) : (p(), T("span", {
968
+ onClick: U(c, ["stop"])
969
+ })) : (h(), A("span", {
1306
970
  key: 0,
1307
971
  "data-top-icon": "",
1308
972
  class: "top-tagSelector_edit",
1309
- onClick: g
973
+ onClick: f
1310
974
  }))
1311
- ], 64)) : M("", !0)
975
+ ], 64)) : O("", !0)
1312
976
  ]),
1313
977
  _: 1
1314
978
  }, 8, ["class"]));
1315
979
  }
1316
- }), io = { key: 1 }, so = /* @__PURE__ */ L({
980
+ }), Tt = { key: 1 }, At = /* @__PURE__ */ R({
1317
981
  inheritAttrs: !1,
1318
982
  __name: "popupOpener",
1319
983
  props: /* @__PURE__ */ V({
@@ -1334,59 +998,59 @@ const Pt = /* @__PURE__ */ L({
1334
998
  }),
1335
999
  emits: ["update:modelValue"],
1336
1000
  setup(e) {
1337
- const t = e, o = b(e, "modelValue"), a = t.useTopButton ? ee : "div", r = t.useTopButton ? "html" : "default", l = {
1001
+ const a = e, o = T(e, "modelValue"), t = a.useTopButton ? H : "div", r = a.useTopButton ? "html" : "default", l = {
1338
1002
  model: o,
1339
- mode: t.mode,
1340
- targetId: t.targetId,
1341
- filters: t.filters,
1342
- payload: t.payload
1003
+ mode: a.mode,
1004
+ targetId: a.targetId,
1005
+ filters: a.filters,
1006
+ payload: a.payload
1343
1007
  };
1344
- return (n, s) => {
1345
- const g = tt("top-data");
1346
- return p(), k(it, { id: e.id }, {
1347
- default: A(() => [
1348
- ot((p(), k(at(m(a)), qe({
1008
+ return (n, u) => {
1009
+ const f = Pe("top-data");
1010
+ return h(), C(Je, { id: e.id }, {
1011
+ default: B(() => [
1012
+ Ne((h(), C(qe(v(t)), Ve({
1349
1013
  class: {
1350
1014
  "top-tagSelector": !0,
1351
- "top-tagSelector-useTopButton": t.useTopButton,
1352
- "top-tagSelector-custom": !t.useTopButton,
1353
- "top-as-selector": t.useTopButton,
1354
- "top-tagSelector-filter": t.mode === "filter",
1355
- "top-tagSelector-setter_single": t.mode === "setter" && !e.filters,
1356
- "top-tagSelector-setter_several": t.mode === "setter" && e.filters,
1015
+ "top-tagSelector-useTopButton": a.useTopButton,
1016
+ "top-tagSelector-custom": !a.useTopButton,
1017
+ "top-as-selector": a.useTopButton,
1018
+ "top-tagSelector-filter": a.mode === "filter",
1019
+ "top-tagSelector-setter_single": a.mode === "setter" && !e.filters,
1020
+ "top-tagSelector-setter_several": a.mode === "setter" && e.filters,
1357
1021
  "top-tagSelector-selectedOne": !o.value.length || o.value.length === 1,
1358
1022
  "top-tagSelector-toTwoLine": o.value.length > 5
1359
1023
  },
1360
1024
  color: "theme",
1361
1025
  styling: e.styling
1362
1026
  }, n.$attrs), {
1363
- [m(r)]: A(() => [
1364
- !o.value.length && e.mode === "filter" ? (p(), k(Ce, {
1027
+ [v(r)]: B(() => [
1028
+ !o.value.length && e.mode === "filter" ? (h(), C(fe, {
1365
1029
  key: 0,
1366
1030
  id: "all",
1367
1031
  colorId: "",
1368
1032
  name: n.$i18n.Common.All_tags ?? "",
1369
1033
  state: ""
1370
- }, null, 8, ["name"])) : M("", !0),
1371
- e.mode === "setter" && e.filters ? (p(), T("div", io, [
1372
- lt(n.$slots, "default")
1373
- ])) : (p(!0), T(F, { key: 2 }, ge(o.value, (c) => (p(), k(Ce, {
1374
- id: m(te)(c),
1375
- colorId: m(fe)(c, e.tags)?.color_id ?? "",
1376
- name: m(fe)(c, e.tags)?.name ?? "",
1377
- state: m(te)(c) === c ? "selected" : "excluded"
1034
+ }, null, 8, ["name"])) : O("", !0),
1035
+ e.mode === "setter" && e.filters ? (h(), A("div", Tt, [
1036
+ De(n.$slots, "default")
1037
+ ])) : (h(!0), A(Q, { key: 2 }, me(o.value, (c) => (h(), C(fe, {
1038
+ id: v(X)(c),
1039
+ colorId: v(ie)(c, e.tags)?.color_id ?? "",
1040
+ name: v(ie)(c, e.tags)?.name ?? "",
1041
+ state: v(X)(c) === c ? "selected" : "excluded"
1378
1042
  }, null, 8, ["id", "colorId", "name", "state"]))), 256))
1379
1043
  ]),
1380
1044
  _: 2
1381
1045
  }, 1040, ["class", "styling"])), [
1382
- [g, l, "topTagSelectorTarget"]
1046
+ [f, l, "topTagSelectorTarget"]
1383
1047
  ])
1384
1048
  ]),
1385
1049
  _: 3
1386
1050
  }, 8, ["id"]);
1387
1051
  };
1388
1052
  }
1389
- }), Po = /* @__PURE__ */ L({
1053
+ }), Ut = /* @__PURE__ */ R({
1390
1054
  __name: "tagSelector",
1391
1055
  props: /* @__PURE__ */ V({
1392
1056
  modelValue: {},
@@ -1406,177 +1070,177 @@ const Pt = /* @__PURE__ */ L({
1406
1070
  },
1407
1071
  modelModifiers: {},
1408
1072
  tags: {
1409
- default: Ne(lo)
1073
+ default: be(kt)
1410
1074
  },
1411
1075
  tagsModifiers: {}
1412
1076
  }),
1413
1077
  emits: /* @__PURE__ */ V(["selector", "setter", "tagsChanged"], ["update:modelValue", "update:tags"]),
1414
- setup(e, { emit: t }) {
1415
- const o = j(), a = e, r = b(e, "modelValue"), l = b(e, "tags"), n = t, s = rt((h, I) => {
1416
- n(h, I);
1417
- }, a.emitDelay);
1418
- a.singleMode && !r.value.length && (r.value = [l.value[0].id]);
1419
- const g = a.id ?? "top-popup-id-" + Math.random(), c = _("add"), S = () => {
1420
- const h = " " + o.Common.Tags?.toLowerCase(), I = /* @__PURE__ */ new Map();
1421
- return I.set("add", { value: "add", title: o.Common.Add + h }), I.set("replace", { value: "replace", title: o.Common.Replace + h }), I.set("delete", { value: "delete", title: o.Common.Delete + h }), I;
1078
+ setup(e, { emit: a }) {
1079
+ const o = w(), t = e, r = T(e, "modelValue"), l = T(e, "tags"), n = a, u = ze((p, I) => {
1080
+ n(p, I);
1081
+ }, t.emitDelay);
1082
+ t.singleMode && !r.value.length && (r.value = [l.value[0].id]);
1083
+ const f = t.id ?? "top-popup-id-" + Math.random(), c = K("add"), x = () => {
1084
+ const p = " " + o.Common.Tags?.toLowerCase(), I = /* @__PURE__ */ new Map();
1085
+ return I.set("add", { value: "add", title: o.Common.Add + p }), I.set("replace", { value: "replace", title: o.Common.Replace + p }), I.set("delete", { value: "delete", title: o.Common.Delete + p }), I;
1422
1086
  };
1423
- let i = De({
1087
+ let i = Fe({
1424
1088
  model: r,
1425
1089
  mode: "filter",
1426
1090
  targetId: void 0,
1427
1091
  filters: void 0,
1428
1092
  payload: void 0
1429
1093
  });
1430
- G(r, () => {
1431
- s("selector", r.value);
1094
+ E(r, () => {
1095
+ u("selector", r.value);
1432
1096
  });
1433
- const v = E(() => {
1434
- if (i.value.mode === "setter" && a.maxTagsForSetter && !i.value.filters)
1435
- return i.value.model.value.length >= a.maxTagsForSetter;
1436
- }), d = (h) => {
1437
- if (h !== "all") {
1438
- if (i.value.model.value.includes(h)) return "selected";
1439
- if (i.value.model.value.includes(Re(h))) return "excluded";
1097
+ const m = M(() => {
1098
+ if (i.value.mode === "setter" && t.maxTagsForSetter && !i.value.filters)
1099
+ return i.value.model.value.length >= t.maxTagsForSetter;
1100
+ }), d = (p) => {
1101
+ if (p !== "all") {
1102
+ if (i.value.model.value.includes(p)) return "selected";
1103
+ if (i.value.model.value.includes(Be(p))) return "excluded";
1440
1104
  }
1441
- return h === "all" && !i.value.model.value.length ? "selected" : "";
1442
- }, f = (h, I) => {
1443
- const x = Re(h);
1444
- let C = i.value.model.value.filter((R) => R !== h && R !== x);
1445
- I === "select" && C.push(h), I === "exclude" && C.push(x), i.value.mode === "setter" && i.value.targetId !== void 0 && a.requiredForSetter && (C.length || C.push("1"), C.length === 2 && i.value.model.value.length === 1 && i.value.model.value[0] === "1" && (C = C.filter((R) => R !== "1"))), a.singleMode && !i.value.filters && (C.length || (C = i.value.model.value), C.length > 1 && (C = [C[C.length - 1]])), C.sort((R, ae) => {
1446
- if (!a.tags) return 0;
1447
- const J = a.tags.findIndex((Y) => Y.id === R), z = a.tags.findIndex((Y) => Y.id === ae);
1448
- return J - z;
1449
- }), i.value.model.value = C, i.value.mode === "setter" && i.value.targetId !== void 0 && s("setter", {
1450
- tagsIds: C,
1105
+ return p === "all" && !i.value.model.value.length ? "selected" : "";
1106
+ }, s = (p, I) => {
1107
+ const S = Be(p);
1108
+ let k = i.value.model.value.filter((G) => G !== p && G !== S);
1109
+ I === "select" && k.push(p), I === "exclude" && k.push(S), i.value.mode === "setter" && i.value.targetId !== void 0 && t.requiredForSetter && (k.length || k.push("1"), k.length === 2 && i.value.model.value.length === 1 && i.value.model.value[0] === "1" && (k = k.filter((G) => G !== "1"))), t.singleMode && !i.value.filters && (k.length || (k = i.value.model.value), k.length > 1 && (k = [k[k.length - 1]])), k.sort((G, ee) => {
1110
+ if (!t.tags) return 0;
1111
+ const q = t.tags.findIndex((F) => F.id === G), D = t.tags.findIndex((F) => F.id === ee);
1112
+ return q - D;
1113
+ }), i.value.model.value = k, i.value.mode === "setter" && i.value.targetId !== void 0 && u("setter", {
1114
+ tagsIds: k,
1451
1115
  targetId: i.value.targetId,
1452
1116
  payload: i.value.payload
1453
1117
  });
1454
- }, u = E(() => {
1455
- let h = "top-tagSelector_popup";
1456
- return i.value.mode === "filter" && (h += " top-tagSelector_popup-filter"), i.value.mode === "setter" && (h += " top-tagSelector_popup-setter"), h;
1457
- }), w = () => {
1458
- const h = prompt("", "New tag");
1459
- if (!h || h === "New tag") return;
1118
+ }, g = M(() => {
1119
+ let p = "top-tagSelector_popup";
1120
+ return i.value.mode === "filter" && (p += " top-tagSelector_popup-filter"), i.value.mode === "setter" && (p += " top-tagSelector_popup-setter"), p;
1121
+ }), _ = () => {
1122
+ const p = prompt("", "New tag");
1123
+ if (!p || p === "New tag") return;
1460
1124
  const I = l.value.length + 1;
1461
1125
  l.value.push({
1462
1126
  id: String(I),
1463
- name: h,
1127
+ name: p,
1464
1128
  color_id: String((I - 1) % 10 + 1)
1465
1129
  }), n("tagsChanged", l.value);
1466
- }, N = (h) => {
1467
- if (i.value = X(h.elPopupOpener, "topTagSelectorTarget"), !i.value) throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");
1468
- if (i.value.filters && (c.value = "add", i.value.model.value = []), !Q.$?.ui.sortable) {
1130
+ }, N = (p) => {
1131
+ if (i.value = W(p.elPopupOpener, "topTagSelectorTarget"), !i.value) throw new Error("Open popup TopTagSelector required v-data:topTagSelectorTarget");
1132
+ if (i.value.filters && (c.value = "add", i.value.model.value = []), !z.$?.ui.sortable) {
1469
1133
  console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");
1470
1134
  return;
1471
1135
  }
1472
- !Q.state.isMobile && !Q.state.isMobileUA && l.value && $(h.elPopup).sortable({
1136
+ !z.state.isMobile && !z.state.isMobileUA && l.value && $(p.elPopup).sortable({
1473
1137
  items: 'li:has([data-tag_id]:not([data-tag_id="all"]))',
1474
1138
  /**
1475
1139
  * @todo Удалить `[contenteditable="true"]` через пол года после выхода версии firefox с поддержкой contenteditable plaintext-only, включая бета версии
1476
1140
  */
1477
1141
  cancel: '[contenteditable="plaintext-only"], [contenteditable="true"]',
1478
1142
  distance: 10,
1479
- stop: function(I, x) {
1143
+ stop: function(I, S) {
1480
1144
  if (!l.value) return;
1481
- const C = $(x.item).parent().find("[data-tag_id]"), R = [];
1482
- C.each((ae, J) => {
1145
+ const k = $(S.item).parent().find("[data-tag_id]"), G = [];
1146
+ k.each((ee, q) => {
1483
1147
  if (!l.value) return;
1484
- const z = $(J).attr("data-tag_id");
1485
- R.push(z);
1486
- }), l.value.sort((ae, J) => {
1487
- const z = R.findIndex((me) => me === ae.id), Y = R.findIndex((me) => me === J.id);
1488
- return z - Y;
1489
- }), s("tagsChanged", l.value);
1148
+ const D = $(q).attr("data-tag_id");
1149
+ G.push(D);
1150
+ }), l.value.sort((ee, q) => {
1151
+ const D = G.findIndex((de) => de === ee.id), F = G.findIndex((de) => de === q.id);
1152
+ return D - F;
1153
+ }), u("tagsChanged", l.value);
1490
1154
  }
1491
1155
  });
1492
- }, P = (h) => {
1493
- Q.$?.ui.sortable && $(h.elPopup).data("ui-sortable") && $(h.elPopup).sortable("destroy");
1156
+ }, je = (p) => {
1157
+ z.$?.ui.sortable && $(p.elPopup).data("ui-sortable") && $(p.elPopup).sortable("destroy");
1494
1158
  };
1495
- return (h, I) => (p(), T(F, null, [
1496
- K(so, {
1159
+ return (p, I) => (h(), A(Q, null, [
1160
+ P(At, {
1497
1161
  modelValue: r.value,
1498
- "onUpdate:modelValue": I[0] || (I[0] = (x) => r.value = x),
1499
- id: m(g),
1162
+ "onUpdate:modelValue": I[0] || (I[0] = (S) => r.value = S),
1163
+ id: v(f),
1500
1164
  tags: l.value,
1501
1165
  styling: e.styling,
1502
1166
  mode: "filter",
1503
1167
  useTopButton: e.useTopButton
1504
1168
  }, null, 8, ["modelValue", "id", "tags", "styling", "useTopButton"]),
1505
- K(ke, {
1506
- id: m(g),
1507
- class: oe(u.value),
1508
- onOpen: I[4] || (I[4] = (x) => N(x)),
1509
- onClose: I[5] || (I[5] = (x) => P(x)),
1169
+ P(we, {
1170
+ id: v(f),
1171
+ class: Z(g.value),
1172
+ onOpen: I[4] || (I[4] = (S) => N(S)),
1173
+ onClose: I[5] || (I[5] = (S) => je(S)),
1510
1174
  "transition-duration": 50
1511
- }, nt({
1512
- contentList: A(() => [
1513
- m(i).mode === "filter" && !e.singleMode ? (p(), k(Oe, {
1175
+ }, Ue({
1176
+ contentList: B(() => [
1177
+ v(i).mode === "filter" && !e.singleMode ? (h(), C(Ae, {
1514
1178
  key: 0,
1515
1179
  id: "all",
1516
1180
  colorId: "",
1517
- name: h.$i18n.Common.All_tags ?? "",
1518
- state: m(i).model.value.length ? "" : "selected",
1519
- onSelect: I[3] || (I[3] = (x) => m(i).model.value = [])
1520
- }, null, 8, ["name", "state"])) : M("", !0),
1521
- (p(!0), T(F, null, ge(l.value, (x) => (p(), k(Oe, {
1522
- key: x.id,
1523
- id: x.id,
1524
- colorId: x.color_id,
1525
- name: x.name,
1526
- state: d(x.id),
1527
- canExclude: m(i).mode === "filter" && !e.singleMode,
1181
+ name: p.$i18n.Common.All_tags ?? "",
1182
+ state: v(i).model.value.length ? "" : "selected",
1183
+ onSelect: I[3] || (I[3] = (S) => v(i).model.value = [])
1184
+ }, null, 8, ["name", "state"])) : O("", !0),
1185
+ (h(!0), A(Q, null, me(l.value, (S) => (h(), C(Ae, {
1186
+ key: S.id,
1187
+ id: S.id,
1188
+ colorId: S.color_id,
1189
+ name: S.name,
1190
+ state: d(S.id),
1191
+ canExclude: v(i).mode === "filter" && !e.singleMode,
1528
1192
  editable: e.tagsEditable,
1529
- disabled: v.value && d(x.id) === "",
1530
- onUnselect: (C) => f(x.id, "unselect"),
1531
- onSelect: (C) => f(x.id, "select"),
1532
- onExclude: (C) => f(x.id, "exclude"),
1533
- "onUpdate:name": (C) => {
1534
- x.name = C, m(s)("tagsChanged", l.value);
1193
+ disabled: m.value && d(S.id) === "",
1194
+ onUnselect: (k) => s(S.id, "unselect"),
1195
+ onSelect: (k) => s(S.id, "select"),
1196
+ onExclude: (k) => s(S.id, "exclude"),
1197
+ "onUpdate:name": (k) => {
1198
+ S.name = k, v(u)("tagsChanged", l.value);
1535
1199
  }
1536
1200
  }, null, 8, ["id", "colorId", "name", "state", "canExclude", "editable", "disabled", "onUnselect", "onSelect", "onExclude", "onUpdate:name"]))), 128)),
1537
- e.tagsEditable && l.value.length < e.tagsMax && l.value.length < 20 ? (p(), k(Te, {
1201
+ e.tagsEditable && l.value.length < e.tagsMax && l.value.length < 20 ? (h(), C(ve, {
1538
1202
  key: 1,
1539
1203
  "data-top-icon": "",
1540
- onClick: W(w, ["stop"])
1204
+ onClick: U(_, ["stop"])
1541
1205
  }, {
1542
- default: A(() => [
1543
- H(B(h.$i18n.Common.Add), 1)
1206
+ default: B(() => [
1207
+ J(b(p.$i18n.Common.Add), 1)
1544
1208
  ]),
1545
1209
  _: 1
1546
- })) : M("", !0)
1210
+ })) : O("", !0)
1547
1211
  ]),
1548
1212
  _: 2
1549
1213
  }, [
1550
- m(i).mode === "setter" && m(i).filters ? {
1214
+ v(i).mode === "setter" && v(i).filters ? {
1551
1215
  name: "header",
1552
- fn: A(() => [
1553
- K(ye, {
1216
+ fn: B(() => [
1217
+ P(ce, {
1554
1218
  modelValue: c.value,
1555
- "onUpdate:modelValue": I[1] || (I[1] = (x) => c.value = x),
1556
- options: S()
1219
+ "onUpdate:modelValue": I[1] || (I[1] = (S) => c.value = S),
1220
+ options: x()
1557
1221
  }, null, 8, ["modelValue", "options"])
1558
1222
  ]),
1559
1223
  key: "0"
1560
1224
  } : void 0,
1561
- m(i).mode === "setter" && m(i).filters ? {
1225
+ v(i).mode === "setter" && v(i).filters ? {
1562
1226
  name: "footer",
1563
- fn: A(() => [
1564
- K(ee, { color: "theme" }, {
1565
- default: A(() => [
1566
- H(B(h.$i18n.Common.Cancel2), 1)
1227
+ fn: B(() => [
1228
+ P(H, { color: "theme" }, {
1229
+ default: B(() => [
1230
+ J(b(p.$i18n.Common.Cancel), 1)
1567
1231
  ]),
1568
1232
  _: 1
1569
1233
  }),
1570
- K(ee, {
1571
- onClick: I[2] || (I[2] = (x) => m(s)("setter", {
1572
- tagsIds: m(i).model.value,
1573
- filters: m(i).filters,
1234
+ P(H, {
1235
+ onClick: I[2] || (I[2] = (S) => v(u)("setter", {
1236
+ tagsIds: v(i).model.value,
1237
+ filters: v(i).filters,
1574
1238
  filtersAction: c.value,
1575
- payload: m(i).payload
1239
+ payload: v(i).payload
1576
1240
  }))
1577
1241
  }, {
1578
- default: A(() => [
1579
- H(B(c.value === "add" ? h.$i18n.Common.Add : "") + " " + B(c.value === "replace" ? h.$i18n.Common.Replace : "") + " " + B(c.value === "delete" ? h.$i18n.Common.Delete : ""), 1)
1242
+ default: B(() => [
1243
+ J(b(c.value === "add" ? p.$i18n.Common.Add : "") + " " + b(c.value === "replace" ? p.$i18n.Common.Replace : "") + " " + b(c.value === "delete" ? p.$i18n.Common.Delete : ""), 1)
1580
1244
  ]),
1581
1245
  _: 1
1582
1246
  })
@@ -1588,18 +1252,17 @@ const Pt = /* @__PURE__ */ L({
1588
1252
  }
1589
1253
  });
1590
1254
  export {
1591
- To as TopCompetitorSelector,
1592
- Bo as TopGroupSelector,
1593
- bo as TopProjectSelector,
1594
- jo as TopRegionSelector,
1595
- Po as TopTagSelector,
1596
- so as TopTagSelectorPopupOpener,
1597
- Ce as TopTagSelectorTagIcon,
1598
- Tt as dialogRegionSelector,
1599
- kt as findRegion,
1600
- $o as genElTopTagSelectorPopupOpener,
1601
- Je as genSearcherByKey,
1602
- wo as renderElTopTagSelectorPopupOpener,
1603
- Ao as useItemsFromCompetitors
1255
+ Rt as TopCompetitorSelector,
1256
+ qt as TopGroupSelector,
1257
+ Nt as TopRegionSelector,
1258
+ Ut as TopTagSelector,
1259
+ At as TopTagSelectorPopupOpener,
1260
+ fe as TopTagSelectorTagIcon,
1261
+ it as dialogRegionSelector,
1262
+ rt as findRegion,
1263
+ Dt as genElTopTagSelectorPopupOpener,
1264
+ Ke as genSearcherByKey,
1265
+ Ft as renderElTopTagSelectorPopupOpener,
1266
+ Pt as useItemsFromCompetitors
1604
1267
  };
1605
1268
  //# sourceMappingURL=project.js.map