@topvisor/ui 1.3.5-popupFromInput.0 → 1.4.0-TopGroupSelector.11

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 (219) hide show
  1. package/.chunks/core-BL-38XF7.es.js +196 -0
  2. package/.chunks/core-BL-38XF7.es.js.map +1 -0
  3. package/.chunks/core-BsPx05H9.amd.js +2 -0
  4. package/.chunks/core-BsPx05H9.amd.js.map +1 -0
  5. package/.chunks/{datepicker-Bq_z2paN.amd.js → datepicker-3coUsFW2.amd.js} +2 -2
  6. package/.chunks/{datepicker-Bq_z2paN.amd.js.map → datepicker-3coUsFW2.amd.js.map} +1 -1
  7. package/.chunks/{datepicker-CGGp0VnN.es.js → datepicker-D1Hw3a3o.es.js} +14 -17
  8. package/.chunks/{datepicker-CGGp0VnN.es.js.map → datepicker-D1Hw3a3o.es.js.map} +1 -1
  9. package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js +180 -0
  10. package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js.map +1 -0
  11. package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js +2 -0
  12. package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js.map +1 -0
  13. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DCVIoEeY.es.js → dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js} +111 -112
  14. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DCVIoEeY.es.js.map → dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js.map} +1 -1
  15. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js +2 -0
  16. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-Bf0wXalT.amd.js.map → dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js.map} +1 -1
  17. package/.chunks/forms-BseC3Ftz.es.js +2035 -0
  18. package/.chunks/{forms-BhbgRJ5I.es.js.map → forms-BseC3Ftz.es.js.map} +1 -1
  19. package/.chunks/forms-CUSCBQu3.amd.js +3 -0
  20. package/.chunks/{forms-CNcrvkYD.amd.js.map → forms-CUSCBQu3.amd.js.map} +1 -1
  21. package/.chunks/index-DLUtoTUg.amd.js +2 -0
  22. package/.chunks/index-DLUtoTUg.amd.js.map +1 -0
  23. package/.chunks/index-DkQWJkMc.es.js +54 -0
  24. package/.chunks/index-DkQWJkMc.es.js.map +1 -0
  25. package/.chunks/notice-Cl3ZgiHm.es.js +191 -0
  26. package/.chunks/{notice-CpPhDTUb.es.js.map → notice-Cl3ZgiHm.es.js.map} +1 -1
  27. package/.chunks/notice-DwjipV21.amd.js +4 -0
  28. package/.chunks/{notice-BpLsm6Zh.amd.js.map → notice-DwjipV21.amd.js.map} +1 -1
  29. package/.chunks/page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js +2 -0
  30. package/.chunks/{page.vue_vue_type_script_setup_true_lang-B-1LEQAz.amd.js.map → page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js.map} +1 -1
  31. package/.chunks/page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js +139 -0
  32. package/.chunks/{page.vue_vue_type_script_setup_true_lang-9abPBMpd.es.js.map → page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js.map} +1 -1
  33. package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js +496 -0
  34. package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js.map +1 -0
  35. package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js +2 -0
  36. package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js.map +1 -0
  37. package/.chunks/popup-DRuyYFGB.amd.js +2 -0
  38. package/.chunks/popup-DRuyYFGB.amd.js.map +1 -0
  39. package/.chunks/popup-Jw_Yyg3U.es.js +470 -0
  40. package/.chunks/popup-Jw_Yyg3U.es.js.map +1 -0
  41. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js +209 -0
  42. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js.map +1 -0
  43. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js +2 -0
  44. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js.map +1 -0
  45. package/.chunks/utils-CzHUG_xz.amd.js +2 -0
  46. package/.chunks/{utils-5uxIj2CI.amd.js.map → utils-CzHUG_xz.amd.js.map} +1 -1
  47. package/.chunks/utils-D9nYQabE.amd.js +2 -0
  48. package/.chunks/{utils-Bg_su8b-.amd.js.map → utils-D9nYQabE.amd.js.map} +1 -1
  49. package/.chunks/{utils-D58EUoHa.es.js → utils-Q69SXlnV.es.js} +192 -208
  50. package/.chunks/{utils-D58EUoHa.es.js.map → utils-Q69SXlnV.es.js.map} +1 -1
  51. package/.chunks/{utils-UBgfsQ8v.es.js → utils-YrUExsH7.es.js} +23 -24
  52. package/.chunks/{utils-UBgfsQ8v.es.js.map → utils-YrUExsH7.es.js.map} +1 -1
  53. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CSD2uMSW.es.js → widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js} +2 -2
  54. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CSD2uMSW.es.js.map → widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js.map} +1 -1
  55. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-D6SVtg2Q.amd.js → widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js} +2 -2
  56. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-D6SVtg2Q.amd.js.map → widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js.map} +1 -1
  57. package/api/index.amd.js +1 -1
  58. package/api/index.amd.js.map +1 -1
  59. package/api/index.js +138 -133
  60. package/api/index.js.map +1 -1
  61. package/assets/dialog_regionSelectorRegions.css +1 -0
  62. package/assets/forms.css +1 -1
  63. package/assets/policy.css +1 -0
  64. package/assets/popupHint.css +1 -1
  65. package/assets/project.css +1 -1
  66. package/charts/charts.amd.js +1 -1
  67. package/charts/charts.amd.js.map +1 -1
  68. package/charts/charts.js +80 -80
  69. package/charts/charts.js.map +1 -1
  70. package/core/app.amd.js +1 -1
  71. package/core/app.amd.js.map +1 -1
  72. package/core/app.js +93 -96
  73. package/core/app.js.map +1 -1
  74. package/dialog/dialog.amd.js +1 -1
  75. package/dialog/dialog.amd.js.map +1 -1
  76. package/dialog/dialog.js +13 -13
  77. package/dialog/dialog.js.map +1 -1
  78. package/extra/extra.amd.js +1 -1
  79. package/extra/extra.amd.js.map +1 -1
  80. package/extra/extra.js +20 -23
  81. package/extra/extra.js.map +1 -1
  82. package/forms/forms.amd.js +1 -1
  83. package/forms/forms.js +5 -5
  84. package/formsExt/formsExt.amd.js +1 -1
  85. package/formsExt/formsExt.amd.js.map +1 -1
  86. package/formsExt/formsExt.js +185 -534
  87. package/formsExt/formsExt.js.map +1 -1
  88. package/layout/layout.amd.js +1 -1
  89. package/layout/layout.js +6 -6
  90. package/package.json +1 -1
  91. package/popup/popup.amd.js +1 -1
  92. package/popup/popup.amd.js.map +1 -1
  93. package/popup/popup.js +43 -46
  94. package/popup/popup.js.map +1 -1
  95. package/popup/worker.amd.js +1 -1
  96. package/popup/worker.amd.js.map +1 -1
  97. package/popup/worker.js +11 -9
  98. package/popup/worker.js.map +1 -1
  99. package/project/project.amd.js +1 -1
  100. package/project/project.amd.js.map +1 -1
  101. package/project/project.js +848 -579
  102. package/project/project.js.map +1 -1
  103. package/src/api/api/client/client.d.ts +5 -0
  104. package/src/api/api/mocker/index.d.ts +3 -3
  105. package/src/api/api/types/client/request.d.ts +6 -0
  106. package/src/api/api/types/ext.d.ts +2 -2
  107. package/src/api/api/types/mocker.d.ts +2 -2
  108. package/src/components/forms/button/types.d.ts +6 -0
  109. package/src/components/formsExt/formsExt.d.ts +1 -0
  110. package/src/components/formsExt/libs/optionGroup/types.d.ts +1 -1
  111. package/src/components/formsExt/selector2/cache.d.ts +12 -0
  112. package/src/components/formsExt/selector2/composables/useAPI.d.ts +2036 -2
  113. package/src/components/formsExt/selector2/composables/useMenu.d.ts +2045 -5
  114. package/src/components/formsExt/selector2/itemMulti.vue.d.ts +3 -3
  115. package/src/components/formsExt/selector2/selector2.vue.d.ts +11 -3
  116. package/src/components/formsExt/selector2/types.d.ts +39 -5
  117. package/src/components/formsExt/selector2/utils.d.ts +17 -0
  118. package/src/components/popup/lib/popup.d.ts +1 -2
  119. package/src/components/popup/popup/opener/types.d.ts +6 -2
  120. package/src/components/popup/popup/types.d.ts +3 -2
  121. package/src/components/popup/popup.d.ts +1 -1
  122. package/src/components/project/groupSelector/folders/folders.vue.d.ts +18 -0
  123. package/src/components/project/groupSelector/folders/types.d.ts +63 -0
  124. package/src/components/project/groupSelector/folders/utils.d.ts +63 -0
  125. package/src/components/project/groupSelector/groupSelector.vue.d.ts +33 -0
  126. package/src/components/project/groupSelector/groups/groups.vue.d.ts +126 -0
  127. package/src/components/project/groupSelector/groups/types.d.ts +58 -0
  128. package/src/components/project/groupSelector/groups/utils.d.ts +92 -0
  129. package/src/components/project/groupSelector/stories/mocks/folders.d.ts +4 -0
  130. package/src/components/project/groupSelector/stories/mocks/groups.d.ts +2 -0
  131. package/src/components/project/groupSelector/stories/mocks/index.d.ts +7 -0
  132. package/src/components/project/groupSelector/types.d.ts +133 -0
  133. package/src/components/project/project.d.ts +5 -4
  134. package/src/components/project/{selectorRegion → regionSelector}/utils/utils.d.ts +3 -3
  135. package/src/core/utils/composables/useWatch.d.ts +32 -0
  136. package/tabs/tabs.amd.js +1 -1
  137. package/tabs/tabs.amd.js.map +1 -1
  138. package/tabs/tabs.js +24 -24
  139. package/tabs/tabs.js.map +1 -1
  140. package/tabsView/tabsView.amd.js +1 -1
  141. package/tabsView/tabsView.amd.js.map +1 -1
  142. package/tabsView/tabsView.js +131 -133
  143. package/tabsView/tabsView.js.map +1 -1
  144. package/utils/clipboard.amd.js +1 -1
  145. package/utils/clipboard.js +1 -1
  146. package/utils/date.amd.js +1 -1
  147. package/utils/date.js +1 -1
  148. package/utils/device.amd.js +1 -1
  149. package/utils/device.js +1 -1
  150. package/utils/lodash.amd.js +1 -1
  151. package/utils/lodash.js +1 -1
  152. package/utils/price.amd.js +1 -1
  153. package/utils/price.js +1 -1
  154. package/utils/scroll.amd.js +1 -1
  155. package/utils/scroll.amd.js.map +1 -1
  156. package/utils/scroll.js +14 -14
  157. package/utils/scroll.js.map +1 -1
  158. package/utils/searchers.amd.js +1 -1
  159. package/utils/searchers.js +3 -3
  160. package/utils/string.amd.js +1 -1
  161. package/utils/string.amd.js.map +1 -1
  162. package/utils/string.js +3 -7
  163. package/utils/string.js.map +1 -1
  164. package/.chunks/core-DcLw0dEO.amd.js +0 -2
  165. package/.chunks/core-DcLw0dEO.amd.js.map +0 -1
  166. package/.chunks/core-DpTLGhiK.es.js +0 -197
  167. package/.chunks/core-DpTLGhiK.es.js.map +0 -1
  168. package/.chunks/dialog_selectorRegions-BtAADQHf.es.js +0 -190
  169. package/.chunks/dialog_selectorRegions-BtAADQHf.es.js.map +0 -1
  170. package/.chunks/dialog_selectorRegions-DCrHvHDs.amd.js +0 -2
  171. package/.chunks/dialog_selectorRegions-DCrHvHDs.amd.js.map +0 -1
  172. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Bf0wXalT.amd.js +0 -2
  173. package/.chunks/forms-BhbgRJ5I.es.js +0 -2045
  174. package/.chunks/forms-CNcrvkYD.amd.js +0 -3
  175. package/.chunks/index-BEI7XZmU.amd.js +0 -2
  176. package/.chunks/index-BEI7XZmU.amd.js.map +0 -1
  177. package/.chunks/index-igPkes8X.es.js +0 -48
  178. package/.chunks/index-igPkes8X.es.js.map +0 -1
  179. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-QvP1d9jN.amd.js +0 -2
  180. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-QvP1d9jN.amd.js.map +0 -1
  181. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-xvzbyqai.es.js +0 -196
  182. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-xvzbyqai.es.js.map +0 -1
  183. package/.chunks/menu.vue_vue_type_style_index_0_lang-C3Rr6ZyL.amd.js +0 -2
  184. package/.chunks/menu.vue_vue_type_style_index_0_lang-C3Rr6ZyL.amd.js.map +0 -1
  185. package/.chunks/menu.vue_vue_type_style_index_0_lang-dOeZ7an1.es.js +0 -112
  186. package/.chunks/menu.vue_vue_type_style_index_0_lang-dOeZ7an1.es.js.map +0 -1
  187. package/.chunks/notice-BpLsm6Zh.amd.js +0 -4
  188. package/.chunks/notice-CpPhDTUb.es.js +0 -194
  189. package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js +0 -36
  190. package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js.map +0 -1
  191. package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js +0 -2
  192. package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js.map +0 -1
  193. package/.chunks/page.vue_vue_type_script_setup_true_lang-9abPBMpd.es.js +0 -143
  194. package/.chunks/page.vue_vue_type_script_setup_true_lang-B-1LEQAz.amd.js +0 -2
  195. package/.chunks/popup-BJj9BJP5.es.js +0 -485
  196. package/.chunks/popup-BJj9BJP5.es.js.map +0 -1
  197. package/.chunks/popup-CfXISjhC.amd.js +0 -2
  198. package/.chunks/popup-CfXISjhC.amd.js.map +0 -1
  199. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js +0 -2
  200. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js.map +0 -1
  201. package/.chunks/utils-5uxIj2CI.amd.js +0 -2
  202. package/.chunks/utils-Bg_su8b-.amd.js +0 -2
  203. package/assets/dialog_selectorRegions.css +0 -1
  204. package/assets/formsExt.css +0 -1
  205. package/assets/listItem.css +0 -1
  206. package/assets/menu.css +0 -1
  207. package/src/components/popup/popup/opener.vue.d.ts +0 -16
  208. /package/src/components/project/{selectorCompetitors/selectorCompetitors.vue.d.ts → competitorSelector/competitorSelector.vue.d.ts} +0 -0
  209. /package/src/components/project/{selectorCompetitors → competitorSelector}/composables.d.ts +0 -0
  210. /package/src/components/project/{selectorCompetitors → competitorSelector}/types.d.ts +0 -0
  211. /package/src/components/project/{selectorRegion → regionSelector}/composables/compare.d.ts +0 -0
  212. /package/src/components/project/{selectorRegion → regionSelector}/composables/selectRegion.d.ts +0 -0
  213. /package/src/components/project/{selectorRegion → regionSelector}/composables/selectSearcher.d.ts +0 -0
  214. /package/src/components/project/{selectorRegion → regionSelector}/composables/selectorRegion.d.ts +0 -0
  215. /package/src/components/project/{selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue.d.ts → regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue.d.ts} +0 -0
  216. /package/src/components/project/{selectorRegion/dialog_selectorRegions → regionSelector/dialog_regionSelectorRegions}/types.d.ts +0 -0
  217. /package/src/components/project/{selectorRegion/selectorRegion.vue.d.ts → regionSelector/regionSelector.vue.d.ts} +0 -0
  218. /package/src/components/project/{selectorRegion → regionSelector}/types.d.ts +0 -0
  219. /package/src/components/project/{selectorRegion → regionSelector}/utils/consts.d.ts +0 -0
@@ -1,190 +0,0 @@
1
-
2
- import { Core as _autoloadCSSCore } from '../core/app.js';
3
- const fileNames = ['../assets/dialog_selectorRegions.css'].map(fileName => import.meta.resolve(fileName));
4
- _autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
5
-
6
- import { defineComponent as j, ref as I, reactive as w, computed as D, watch as M, resolveComponent as R, createBlock as V, openBlock as d, unref as h, withCtx as u, createVNode as m, createTextVNode as L, toDisplayString as v, createElementVNode as _, createElementBlock as f, Fragment as O, renderList as P, createCommentVNode as x } from "vue";
7
- import { _ as G, a as X } from "./page.vue_vue_type_script_setup_true_lang-9abPBMpd.es.js";
8
- import { b as Q } from "./utils-UBgfsQ8v.es.js";
9
- import { genFlagLinkByCountryCode as q } from "../utils/string.js";
10
- import { getSearcherGIcon as z, getLangLabel as H, getDeviceGIcon as J } from "../utils/searchers.js";
11
- import { C as B } from "./forms-BhbgRJ5I.es.js";
12
- const K = { class: "dialog_selectorRegions_header" }, W = ["data-top-icon"], Y = ["src", "alt"], Z = { class: "top-ellipsis" }, F = { class: "dialog_selectorRegions_regionAreaName" }, ee = { key: 1 }, oe = ["data-top-icon"], ie = /* @__PURE__ */ j({
13
- id: "selectorRegions",
14
- __name: "dialog_selectorRegions",
15
- props: {
16
- regions: {},
17
- regionsIndexes: {},
18
- "@update:regionsIndexes": { type: Function }
19
- },
20
- setup(N) {
21
- const l = N, k = Q(), a = I([]), i = I(null), p = w({
22
- searcher_key: -1,
23
- key: -1,
24
- name: -1
25
- }), b = D({
26
- get() {
27
- return a.value.every((o) => o.selected);
28
- },
29
- set(o) {
30
- a.value = a.value.map((n) => ({ ...n, selected: o }));
31
- }
32
- }), y = (o) => {
33
- p[o] = -p[o], a.value.sort((n, e) => !n[o] || !e[o] ? -1 : n[o] >= e[o] ? p[o] : -p[o]);
34
- }, S = () => {
35
- var n;
36
- if (!a.value.some((e) => e.selected)) return;
37
- const o = a.value.filter((e) => e.selected).map((e) => e.index);
38
- (n = l["@update:regionsIndexes"]) == null || n.call(l, o), k.close();
39
- };
40
- M([
41
- () => l.regions,
42
- () => l.regionsIndexes
43
- ], () => {
44
- if (a.value = [], !l.regions || !l.regionsIndexes) return;
45
- let o = [...l.regions];
46
- const n = new Map(l.regionsIndexes.map((e, s) => [e, s]));
47
- o.sort((e, s) => {
48
- const t = n.get(e.index) ?? Number.MAX_VALUE, r = n.get(s.index) ?? Number.MAX_VALUE;
49
- return t - r;
50
- }), o.forEach((e) => {
51
- var C;
52
- let s = e.name;
53
- e.areaName && (s += ` (${e.areaName})`);
54
- const t = ((C = l.regionsIndexes) == null ? void 0 : C.includes(e.index)) ?? !1, r = z(e.searcher_key), g = e.lang !== void 0 ? H(e.searcher_key ?? 999, e.lang) : void 0, c = e.device !== void 0 ? J(e.device) : void 0, U = e.countryCode !== void 0 ? q(e.countryCode) : void 0, E = {
55
- ...e,
56
- selected: t,
57
- title: s,
58
- searcherIcon: r,
59
- langLabel: g,
60
- deviceIcon: c,
61
- flagLink: U
62
- };
63
- a.value.push(E);
64
- });
65
- });
66
- const A = () => {
67
- var o;
68
- if (!((o = B.$) != null && o.ui.sortable)) {
69
- console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");
70
- return;
71
- }
72
- i.value && $(i.value).sortable({
73
- distance: 10,
74
- stop: () => {
75
- const n = [...i.value.children].map((e) => Number(e.getAttribute("data-region-index")));
76
- a.value.sort((e, s) => n.indexOf(e.index) - n.indexOf(s.index));
77
- }
78
- });
79
- }, T = () => {
80
- var o;
81
- (o = B.$) != null && o.ui.sortable && i.value && $(i.value).sortable("destroy");
82
- };
83
- return (o, n) => {
84
- const e = R("TopCheckbox"), s = R("TopButton");
85
- return d(), V(h(G), {
86
- id: h(k).id,
87
- pageActive: "selectorRegions",
88
- class: "dialog_selectorRegions",
89
- height: "600px",
90
- width: "600px",
91
- onOpen: A,
92
- onClose: T
93
- }, {
94
- default: u(() => [
95
- m(h(X), {
96
- name: "selectorRegions",
97
- order: 0
98
- }, {
99
- header: u(() => {
100
- var t, r, g;
101
- return [
102
- _("div", K, [
103
- m(e, {
104
- modelValue: b.value,
105
- "onUpdate:modelValue": n[0] || (n[0] = (c) => b.value = c)
106
- }, null, 8, ["modelValue"]),
107
- m(s, {
108
- class: "dialog_selectorRegions_sortButton",
109
- color: "theme",
110
- "data-top-icon": "",
111
- onClick: n[1] || (n[1] = (c) => y("searcher_key")),
112
- title: (t = o.$i18n.Projects) == null ? void 0 : t.Sort_by_search_engine
113
- }, null, 8, ["title"]),
114
- m(s, {
115
- class: "dialog_selectorRegions_sortButton",
116
- color: "theme",
117
- "data-top-icon": "",
118
- onClick: n[2] || (n[2] = (c) => y("key")),
119
- title: (r = o.$i18n.Projects) == null ? void 0 : r.Sort_by_yande_region_code
120
- }, null, 8, ["title"]),
121
- m(s, {
122
- class: "dialog_selectorRegions_sortButton",
123
- color: "theme",
124
- "data-top-icon": "",
125
- onClick: n[3] || (n[3] = (c) => y("name")),
126
- title: (g = o.$i18n.Projects) == null ? void 0 : g.Sort_by_lphabetically
127
- }, null, 8, ["title"])
128
- ])
129
- ];
130
- }),
131
- body: u(() => [
132
- _("div", {
133
- ref_key: "elRegions",
134
- ref: i
135
- }, [
136
- (d(!0), f(O, null, P(a.value, (t) => (d(), V(e, {
137
- key: t.index,
138
- modelValue: t.selected,
139
- "onUpdate:modelValue": (r) => t.selected = r,
140
- class: "dialog_selectorRegions_region",
141
- "data-region-index": t.index
142
- }, {
143
- default: u(() => [
144
- _("div", {
145
- class: "dialog_selectorRegions_regionSearcherIcon",
146
- "data-top-icon": t.searcherIcon
147
- }, null, 8, W),
148
- t.flagLink ? (d(), f("img", {
149
- key: 0,
150
- class: "top-flag",
151
- src: "//topvisor.dev" + t.flagLink,
152
- alt: t.countryCode
153
- }, null, 8, Y)) : x("", !0),
154
- _("div", Z, [
155
- L(v(t.name) + " ", 1),
156
- _("span", F, v(t.areaName), 1)
157
- ]),
158
- t.langLabel ? (d(), f("div", ee, " [" + v(t.langLabel) + "] ", 1)) : x("", !0),
159
- t.deviceIcon ? (d(), f("div", {
160
- key: 2,
161
- "data-top-icon": t.deviceIcon
162
- }, null, 8, oe)) : x("", !0)
163
- ]),
164
- _: 2
165
- }, 1032, ["modelValue", "onUpdate:modelValue", "data-region-index"]))), 128))
166
- ], 512)
167
- ]),
168
- footer: u(() => [
169
- m(s, { onClick: S }, {
170
- default: u(() => {
171
- var t;
172
- return [
173
- L(v((t = o.$i18n.Common) == null ? void 0 : t.Apply), 1)
174
- ];
175
- }),
176
- _: 1
177
- })
178
- ]),
179
- _: 1
180
- })
181
- ]),
182
- _: 1
183
- }, 8, ["id"]);
184
- };
185
- }
186
- });
187
- export {
188
- ie as default
189
- };
190
- //# sourceMappingURL=dialog_selectorRegions-BtAADQHf.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog_selectorRegions-BtAADQHf.es.js","sources":["../../src/components/project/selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'selectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"selectorRegions\"\n\t\tclass=\"dialog_selectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"selectorRegions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_selectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_selectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_selectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"],"names":["props","__props","dialog","useTopDialogSelf","regionsRich","ref","elRegions","sortedVectorByField","reactive","isAllSelected","computed","region","value","sort","sortedField","regionA","regionB","onSubmit","regionsIndexes","_a","watch","regions","orderByRegionIndex","index","order","orderA","orderB","title","selected","searcherIcon","getSearcherGIcon","langLabel","getLangLabel","deviceIcon","getDeviceGIcon","flagLink","genFlagLinkByCountryCode","regionRich","onOpen","Core","sortedIndexes","el","a","b","onClose","_createBlock","_unref","TopDialog","_createVNode","TopDialogPage","_createElementVNode","_hoisted_1","_component_TopCheckbox","$event","_component_TopButton","$i18n","_createElementBlock","_Fragment","_renderList","_hoisted_4","_hoisted_5","_toDisplayString","_openBlock"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- define(["require","exports","vue","./page.vue_vue_type_script_setup_true_lang-B-1LEQAz.amd","./utils-5uxIj2CI.amd","../utils/string.amd","../utils/searchers.amd","./forms-CNcrvkYD.amd","../require/css.amd!../assets/dialog_selectorRegions.css"],(function(j,v,e,_,x,C,p,f){"use strict";if(typeof e>"u")var e=window.Vue;const V={class:"dialog_selectorRegions_header"},b=["data-top-icon"],N=["src","alt"],B={class:"top-ellipsis"},I={class:"dialog_selectorRegions_regionAreaName"},R={key:1},S=["data-top-icon"],E=e.defineComponent({id:"selectorRegions",__name:"dialog_selectorRegions",props:{regions:{},regionsIndexes:{},"@update:regionsIndexes":{type:Function}},setup(L){const s=L,y=x.useTopDialogSelf(),r=e.ref([]),i=e.ref(null),u=e.reactive({searcher_key:-1,key:-1,name:-1}),k=e.computed({get(){return r.value.every(o=>o.selected)},set(o){r.value=r.value.map(l=>({...l,selected:o}))}}),g=o=>{u[o]=-u[o],r.value.sort((l,t)=>!l[o]||!t[o]?-1:l[o]>=t[o]?u[o]:-u[o])},w=()=>{var l;if(!r.value.some(t=>t.selected))return;const o=r.value.filter(t=>t.selected).map(t=>t.index);(l=s["@update:regionsIndexes"])==null||l.call(s,o),y.close()};e.watch([()=>s.regions,()=>s.regionsIndexes],()=>{if(r.value=[],!s.regions||!s.regionsIndexes)return;let o=[...s.regions];const l=new Map(s.regionsIndexes.map((t,a)=>[t,a]));o.sort((t,a)=>{const n=l.get(t.index)??Number.MAX_VALUE,c=l.get(a.index)??Number.MAX_VALUE;return n-c}),o.forEach(t=>{var h;let a=t.name;t.areaName&&(a+=` (${t.areaName})`);const n=((h=s.regionsIndexes)==null?void 0:h.includes(t.index))??!1,c=p.getSearcherGIcon(t.searcher_key),m=t.lang!==void 0?p.getLangLabel(t.searcher_key??999,t.lang):void 0,d=t.device!==void 0?p.getDeviceGIcon(t.device):void 0,D=t.countryCode!==void 0?C.genFlagLinkByCountryCode(t.countryCode):void 0,U={...t,selected:n,title:a,searcherIcon:c,langLabel:m,deviceIcon:d,flagLink:D};r.value.push(U)})});const A=()=>{var o;if(!((o=f.Core.$)!=null&&o.ui.sortable)){console.info("Для работы сортировки требуется глобальная загрузка jQuery UI Sortable");return}i.value&&$(i.value).sortable({distance:10,stop:()=>{const l=[...i.value.children].map(t=>Number(t.getAttribute("data-region-index")));r.value.sort((t,a)=>l.indexOf(t.index)-l.indexOf(a.index))}})},T=()=>{var o;(o=f.Core.$)!=null&&o.ui.sortable&&i.value&&$(i.value).sortable("destroy")};return(o,l)=>{const t=e.resolveComponent("TopCheckbox"),a=e.resolveComponent("TopButton");return e.openBlock(),e.createBlock(e.unref(_._sfc_main),{id:e.unref(y).id,pageActive:"selectorRegions",class:"dialog_selectorRegions",height:"600px",width:"600px",onOpen:A,onClose:T},{default:e.withCtx(()=>[e.createVNode(e.unref(_._sfc_main$1),{name:"selectorRegions",order:0},{header:e.withCtx(()=>{var n,c,m;return[e.createElementVNode("div",V,[e.createVNode(t,{modelValue:k.value,"onUpdate:modelValue":l[0]||(l[0]=d=>k.value=d)},null,8,["modelValue"]),e.createVNode(a,{class:"dialog_selectorRegions_sortButton",color:"theme","data-top-icon":"",onClick:l[1]||(l[1]=d=>g("searcher_key")),title:(n=o.$i18n.Projects)==null?void 0:n.Sort_by_search_engine},null,8,["title"]),e.createVNode(a,{class:"dialog_selectorRegions_sortButton",color:"theme","data-top-icon":"",onClick:l[2]||(l[2]=d=>g("key")),title:(c=o.$i18n.Projects)==null?void 0:c.Sort_by_yande_region_code},null,8,["title"]),e.createVNode(a,{class:"dialog_selectorRegions_sortButton",color:"theme","data-top-icon":"",onClick:l[3]||(l[3]=d=>g("name")),title:(m=o.$i18n.Projects)==null?void 0:m.Sort_by_lphabetically},null,8,["title"])])]}),body:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"elRegions",ref:i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,n=>(e.openBlock(),e.createBlock(t,{key:n.index,modelValue:n.selected,"onUpdate:modelValue":c=>n.selected=c,class:"dialog_selectorRegions_region","data-region-index":n.index},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"dialog_selectorRegions_regionSearcherIcon","data-top-icon":n.searcherIcon},null,8,b),n.flagLink?(e.openBlock(),e.createElementBlock("img",{key:0,class:"top-flag",src:"//topvisor.dev"+n.flagLink,alt:n.countryCode},null,8,N)):e.createCommentVNode("",!0),e.createElementVNode("div",B,[e.createTextVNode(e.toDisplayString(n.name)+" ",1),e.createElementVNode("span",I,e.toDisplayString(n.areaName),1)]),n.langLabel?(e.openBlock(),e.createElementBlock("div",R," ["+e.toDisplayString(n.langLabel)+"] ",1)):e.createCommentVNode("",!0),n.deviceIcon?(e.openBlock(),e.createElementBlock("div",{key:2,"data-top-icon":n.deviceIcon},null,8,S)):e.createCommentVNode("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","data-region-index"]))),128))],512)]),footer:e.withCtx(()=>[e.createVNode(a,{onClick:w},{default:e.withCtx(()=>{var n;return[e.createTextVNode(e.toDisplayString((n=o.$i18n.Common)==null?void 0:n.Apply),1)]}),_:1})]),_:1})]),_:1},8,["id"])}}});v.default=E,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})}));
2
- //# sourceMappingURL=dialog_selectorRegions-DCrHvHDs.amd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog_selectorRegions-DCrHvHDs.amd.js","sources":["../../src/components/project/selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue';\nimport { TopDialog, TopDialogPage, useTopDialogSelf } from '@/components/dialog/dialog';\nimport { genFlagLinkByCountryCode } from '@/core/utils/string';\nimport type { Props, RegionRich } from './types';\nimport { getDeviceGIcon, getLangLabel, getSearcherGIcon } from '@/core/utils/searchers';\nimport Core from '@/core/core/core';\n\ndefineOptions({ id: 'selectorRegions' });\n\nconst props = defineProps<Partial<Props>>();\n\nconst dialog = useTopDialogSelf();\n\n/**\n * Список расширенных регионов для использования в компоненте\n */\nconst regionsRich = ref<RegionRich[]>([]);\n\n/**\n * Ссылка на элемент с регионами\n */\nconst elRegions = ref<null | HTMLElement>(null);\n\n/**\n * Направление сортировки по полю\n */\nconst sortedVectorByField = reactive({\n\tsearcher_key: -1,\n\tkey: -1,\n\tname: -1,\n});\n\n/**\n * Выбраны все регионы\n */\nconst isAllSelected = computed({\n\tget() {\n\t\treturn regionsRich.value.every(region => region.selected);\n\t},\n\n\tset(value) {\n\t\tregionsRich.value = regionsRich.value.map(region => ({ ...region, selected: value }));\n\t},\n});\n\n/**\n * Сортировать регионы по выбранному полю\n * @param sortedField - Поле для сортировки\n */\nconst sort = (sortedField: keyof typeof sortedVectorByField) => {\n\tsortedVectorByField[sortedField] = -sortedVectorByField[sortedField];\n\n\tregionsRich.value.sort((regionA, regionB) => {\n\t\tif (!regionA[sortedField] || !regionB[sortedField]) return -1;\n\n\t\treturn regionA[sortedField] >= regionB[sortedField] ? sortedVectorByField[sortedField] : -sortedVectorByField[sortedField];\n\t});\n};\n\n/**\n * Применить изменения\n *\n * Вызывает callback `props['@update:regionsIndexes']`\n */\nconst onSubmit = () => {\n\tif (!regionsRich.value.some(region => region.selected)) return;\n\n\tconst regionsIndexes = regionsRich.value\n\t\t.filter(region => region.selected)\n\t\t.map(region => region.index);\n\n\tprops['@update:regionsIndexes']?.(regionsIndexes);\n\n\tdialog.close();\n};\n\n// генерация регионов\nwatch([\n\t() => props.regions,\n\t() => props.regionsIndexes,\n], () => {\n\tregionsRich.value = [];\n\n\tif (!props.regions) return;\n\tif (!props.regionsIndexes) return;\n\n\tlet regions = [...props.regions];\n\n\t// отсортировать регионы по входным данным\n\tconst orderByRegionIndex = new Map(props.regionsIndexes.map((index, order) => [index, order]));\n\n\tregions.sort((regionA, regionB) => {\n\t\tconst orderA = orderByRegionIndex.get(regionA.index) ?? Number.MAX_VALUE;\n\t\tconst orderB = orderByRegionIndex.get(regionB.index) ?? Number.MAX_VALUE;\n\n\t\treturn orderA - orderB;\n\t});\n\n\tregions.forEach(region => {\n\t\tlet title = region.name;\n\t\tif (region.areaName) title += ` (${region.areaName})`;\n\n\t\tconst selected = props.regionsIndexes?.includes(region.index) ?? false;\n\t\tconst searcherIcon = getSearcherGIcon(region.searcher_key);\n\t\tconst langLabel = region.lang !== undefined ? getLangLabel(region.searcher_key ?? 999, region.lang) : undefined;\n\t\tconst deviceIcon = region.device !== undefined ? getDeviceGIcon(region.device) : undefined;\n\t\tconst flagLink = region.countryCode !== undefined ? genFlagLinkByCountryCode(region.countryCode) : undefined;\n\n\t\tconst regionRich = {\n\t\t\t...region,\n\t\t\tselected,\n\t\t\ttitle,\n\t\t\tsearcherIcon,\n\t\t\tlangLabel,\n\t\t\tdeviceIcon,\n\t\t\tflagLink,\n\t\t};\n\n\t\tregionsRich.value.push(regionRich);\n\t});\n});\n\n/**\n * Проверить на существование sortable\n */\nconst onOpen = () => {\n\tif (!Core.$?.ui['sortable']) {\n\t\tconsole.info('Для работы сортировки требуется глобальная загрузка jQuery UI Sortable');\n\n\t\treturn;\n\t}\n\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable({\n\t\tdistance: 10,\n\n\t\tstop: () => {\n\t\t\t// Обновляем порядок регионов в массиве regionsRich после сортировки\n\t\t\tconst sortedIndexes = [...elRegions.value!.children].map(el => Number(el.getAttribute('data-region-index')));\n\t\t\tregionsRich.value.sort((a, b) => sortedIndexes.indexOf(a.index) - sortedIndexes.indexOf(b.index));\n\t\t},\n\t});\n};\n\n/**\n * Удаление sortable\n */\nconst onClose = () => {\n\tif (!Core.$?.ui['sortable']) return;\n\tif (!elRegions.value) return;\n\n\t$(elRegions.value).sortable('destroy');\n};\n\n</script>\n\n<template>\n\t<TopDialog\n\t\t:id=\"dialog.id\"\n\t\tpageActive=\"selectorRegions\"\n\t\tclass=\"dialog_selectorRegions\"\n\t\theight=\"600px\"\n\t\twidth=\"600px\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\"\n\t>\n\t\t<TopDialogPage name=\"selectorRegions\" :order=\"0\">\n\t\t\t<template #header>\n\t\t\t\t<div class=\"dialog_selectorRegions_header\">\n\t\t\t\t\t<TopCheckbox v-model=\"isAllSelected\"></TopCheckbox>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('searcher_key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_search_engine\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('key')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_yande_region_code\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TopButton\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_sortButton\"\n\t\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"sort('name')\"\n\t\t\t\t\t\t:title=\"$i18n.Projects?.Sort_by_lphabetically\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #body>\n\t\t\t\t<div ref=\"elRegions\">\n\t\t\t\t\t<TopCheckbox\n\t\t\t\t\t\tv-for=\"region of regionsRich\"\n\t\t\t\t\t\t:key=\"region.index\"\n\t\t\t\t\t\tv-model=\"region.selected\"\n\t\t\t\t\t\tclass=\"dialog_selectorRegions_region\"\n\t\t\t\t\t\t:data-region-index=\"region.index\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"dialog_selectorRegions_regionSearcherIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.searcherIcon\"\n\t\t\t\t\t\t></div>\n\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tv-if=\"region.flagLink\"\n\t\t\t\t\t\t\tclass=\"top-flag\"\n\t\t\t\t\t\t\t:src=\"'//topvisor.dev' + region.flagLink\"\n\t\t\t\t\t\t\t:alt=\"region.countryCode\"\n\t\t\t\t\t\t>\n\n\t\t\t\t\t\t<div class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ region.name }}\n\n\t\t\t\t\t\t\t<span class=\"dialog_selectorRegions_regionAreaName\">\n\t\t\t\t\t\t\t\t{{ region.areaName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div v-if=\"region.langLabel\">\n\t\t\t\t\t\t\t[{{ region.langLabel }}]\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-if=\"region.deviceIcon\"\n\t\t\t\t\t\t\t:data-top-icon=\"region.deviceIcon\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</TopCheckbox>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t\t{{ $i18n.Common?.Apply }}\n\t\t\t\t</TopButton>\n\t\t\t</template>\n\t\t</TopDialogPage>\n\t</TopDialog>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"],"names":["dialog","utils","regionsRich","vue","elRegions","sortedVectorByField","isAllSelected","region","sort","sortedField","regionA","regionB","_a","props","regionsIndexes","orderA","orderByRegionIndex","orderB","regions","title","selected","deviceIcon","utils_searchers","flagLink","utils_string","searcherIcon","langLabel","regionRich","a","b","sortedIndexes","onOpen","page_vue_vue_type_script_setup_true_lang","_hoisted_1","_cache","$event","_ctx","_b","_c","_hoisted_2","_hoisted_3","_hoisted_5","_hoisted_7"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- define(["require","exports","vue","../utils/system.amd","../utils/route.amd","../utils/dom.amd"],(function(V,w,s,L,g,u){"use strict";if(typeof s>"u")var s=window.Vue;class c{static state={load:void 0,decoratorOnCreate:void 0,viewPageN:0};static inited=!1;static init(e){if(this.inited)return;this.inited=!0,this.state.load=e==null?void 0:e.load,this.state.decoratorOnCreate=e==null?void 0:e.decoratorOnCreate;const a=(e==null?void 0:e.autoInitDelay)??5e3;window.addEventListener("hashchange",t=>{this.opendDialogsFromChangeUrl(t.oldURL,t.newURL)}),this.opendDialogsFromChangeUrl("",location.href),document.addEventListener("mousedown",async t=>{if(!(t.target instanceof HTMLElement))return;const i=t.target.closest("a[data-to-view]");if(!i)return;let r="next";i.dataset.action==="top-dialog-close"&&(r="prev"),i.href=c.genViewPageHash(i.dataset.toView,r)}),document.addEventListener("click",async t=>{var E,N;if(!(t.target instanceof HTMLElement))return;const i=t.target.closest("[data-to-view]");if(!i)return;if(i instanceof HTMLAnchorElement&&i.href==="."){t.preventDefault();const p=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});i.dispatchEvent(p),setTimeout(()=>i.click());return}const r=await this.getDialogsUtils(),o=i.dataset.toView,v=o.split("-")[0],h=r.getElDialogById(v);let m="next";if(h){const p=u.querySelectorAllArray(h,".modal-layer"),A=p.reduce((y,H)=>{const f=H.querySelector(":scope > .active");return f&&y.push(f),y},[]);if(A.length){const y=o.split("-")[1].split(":")[0];(((E=p.reduce((f,D)=>{const U=D==null?void 0:D.querySelector(`:scope > [data-view-page="${y}"]`);return U&&f.push(U),f},[])[0])==null?void 0:E.dataset.order)??0)<(((N=A[0])==null?void 0:N.dataset.order)??0)&&(m="prev")}}i.dataset.action==="top-dialog-close"&&(m="prev");const P=c.genViewPageHash(o,m);if(i instanceof HTMLAnchorElement){if(!h||!u.isVisible(h))return;if(location.hash.indexOf(o.replace("-","="))!==-1){await r.toViewDirty(o);return}}!!(h!=null&&h.dataset.toViewReplace)?(t.preventDefault(),g.historySetState(!0,P),await r.toViewDirty(o),m=="next"?c.state.viewPageN++:c.state.viewPageN--):i.tagName!=="A"&&(this.compareStates(P,location.hash)?g.historySetState(!1,P):await r.toViewDirty(o))}),setTimeout(()=>this.getDialogsUtils(),a)}static opendDialogsFromChangeUrl(e,a){const t=e.replace(/.*?#/,"#"),n=a.replace(/.*?#/,"#");this.compareStates(t,n)&&this.opendDialogsFromUrl()}static async getDialogsUtils(){const{TopDialogUtils:e}=await new Promise((a,t)=>V(["./utils-Bg_su8b-.amd"],a,t));return e}static getDialog(e){return e.closest(".ui-dialog-content")}static get$dialog(e){return e.closest(".ui-dialog-content")}static getPage(e){return e.closest("[data-view-page]")}static get$page(e){return e.closest("[data-view-page]")}static get$pairPage(e){const a=c.get$dialog(e),n=c.get$page(e).data("view-page");return $('[data-view-page="'+n+'"]',a)}static getPairPage(e){const a=c.getDialog(e);if(!a)return;const t=c.getPage(e),n=t==null?void 0:t.dataset.viewPage;return u.querySelectorAllArray(a,`[data-view-page="${n}"]`)}static close(e){const a=$("#"+e);if(a.dialog("instance")){a.dialog("close");return}const t=document.getElementById(e);t instanceof HTMLDialogElement&&t.close()}static destroy(e){const a=$("#"+e);if(a.dialog("instance")){a.dialog("close"),a.dialog("destroy");return}const t=document.getElementById(e);t instanceof HTMLDialogElement&&t.close()}static genViewPageHash(e,a="next"){let t=this.state.viewPageN;a=="prev"?t--:t++;const n=e.split("-"),i=n.shift(),r=n.join("-");let o=g.genHash("vpn",t);return o=g.genHash("view-"+i,r,o),o}static compareStates(e,a){const t=e.match(/[#&]view-[^&]+/g)||[],n=a.match(/[#&]view-[^&]+/g)||[];return!!(t.length!==n.length||t.filter((r,o)=>{const v=n[o]||"";return r!==v}).length)}static opendDialogsFromUrl=async()=>{const e=Number(g.getHash("vpn"))||0;let a;const t=new RegExp("view-((\\w+)=([\\w-]+)(?::([\\w.:-]+))?)","g");for(;a=t.exec(location.hash);){let i="next";return e<this.state.viewPageN&&(i="prev"),(await this.getDialogsUtils()).toViewDirty(a[1],i)}return u.querySelectorAllArray(document,".ui-dialog-content[data-view-page-active]").filter(i=>u.isVisible(i)).forEach(i=>{const r=i.getAttribute("id");if(!r)throw"Диалоговое окно не содержит id";g.getHash("view-"+r)||$(i).dialog("close")}),this.state.viewPageN=e,!0}}class S{id;idAttr;Component;isMounted=s.ref(!1);isReady=s.ref(!1);isOpened=s.ref(!1);pageActive=s.ref("");isLoadingPage=s.ref(!1);pageActiveNext=s.ref("");props;emit;onCloseOnce;constructor(e){this.id=e.id,this.idAttr="dialog_"+e.id,this.Component=s.markRaw(e)}onMounted(e,a){this.isMounted.value=!0,this.props=e.props,this.emit=a.emit}async open(e="main",a,t=[],n,i){a&&await this.setProps(a),n&&(this.onCloseOnce=n),await(await c.getDialogsUtils()).toView(this.idAttr,e,t,i)}async openAsLink(e="main",a,t=[],n,i){a&&await this.setProps(a),n&&(this.onCloseOnce=n);const r=this.idAttr+"-"+e,o=c.genViewPageHash(r,i);g.historySetState(!1,o)}async close(){c.close(this.idAttr)}async destroy(){c.destroy(this.idAttr)}async setProps(e={}){this.isMounted||await L.waitWhile(()=>!this.props);for(const a in this.props)this.props[a]=e[a]}needShowPage(e){return this.isOpened.value?this.pageActive.value===e||this.pageActiveNext.value===e:!1}}const x={class:"top-dialogs",style:{display:"none"}},d=s.shallowReactive(new Map),M=l=>(l=l.replace(/^dialog_/,""),d.get(l)),k=l=>{if(!(l!=null&&l.id))throw console.log({TopDialogComponent:l}),new Error("Expected TopDialogComponent");return d.has(l.id)||d.set(l.id,new S(l)),d.get(l.id)},B=s.defineComponent({name:"DialogWrapper",__name:"dialogs",setup(l){return s.onUnmounted(()=>{d.forEach(e=>e.destroy()),d.clear()}),(e,a)=>(s.openBlock(),s.createElementBlock("div",x,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(d),([t,n])=>(s.openBlock(),s.createBlock(s.resolveDynamicComponent(n.Component),{key:t}))),128))]))}});w.TopDialogWorker=c,w._sfc_main=B,w.addDialogWorker=k,w.getDialogWorker=M}));
2
- //# sourceMappingURL=dialogs.vue_vue_type_script_setup_true_lang-Bf0wXalT.amd.js.map