@topvisor/ui 1.4.3-1 → 1.4.3-projectSelector.0

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