@topvisor/ui 1.4.1-projectSelector.2 → 1.4.1-projectSelector.3

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