@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.
- package/.chunks/core-BL-38XF7.es.js +196 -0
- package/.chunks/core-BL-38XF7.es.js.map +1 -0
- package/.chunks/core-BsPx05H9.amd.js +2 -0
- package/.chunks/core-BsPx05H9.amd.js.map +1 -0
- package/.chunks/{datepicker-Bq_z2paN.amd.js → datepicker-3coUsFW2.amd.js} +2 -2
- package/.chunks/{datepicker-Bq_z2paN.amd.js.map → datepicker-3coUsFW2.amd.js.map} +1 -1
- package/.chunks/{datepicker-CGGp0VnN.es.js → datepicker-D1Hw3a3o.es.js} +14 -17
- package/.chunks/{datepicker-CGGp0VnN.es.js.map → datepicker-D1Hw3a3o.es.js.map} +1 -1
- package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js +180 -0
- package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js.map +1 -0
- package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js +2 -0
- package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js.map +1 -0
- 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
- 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
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js +2 -0
- 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
- package/.chunks/forms-BseC3Ftz.es.js +2035 -0
- package/.chunks/{forms-BhbgRJ5I.es.js.map → forms-BseC3Ftz.es.js.map} +1 -1
- package/.chunks/forms-CUSCBQu3.amd.js +3 -0
- package/.chunks/{forms-CNcrvkYD.amd.js.map → forms-CUSCBQu3.amd.js.map} +1 -1
- package/.chunks/index-DLUtoTUg.amd.js +2 -0
- package/.chunks/index-DLUtoTUg.amd.js.map +1 -0
- package/.chunks/index-DkQWJkMc.es.js +54 -0
- package/.chunks/index-DkQWJkMc.es.js.map +1 -0
- package/.chunks/notice-Cl3ZgiHm.es.js +191 -0
- package/.chunks/{notice-CpPhDTUb.es.js.map → notice-Cl3ZgiHm.es.js.map} +1 -1
- package/.chunks/notice-DwjipV21.amd.js +4 -0
- package/.chunks/{notice-BpLsm6Zh.amd.js.map → notice-DwjipV21.amd.js.map} +1 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js +2 -0
- 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
- package/.chunks/page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js +139 -0
- 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
- package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js +496 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js.map +1 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js +2 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js.map +1 -0
- package/.chunks/popup-DRuyYFGB.amd.js +2 -0
- package/.chunks/popup-DRuyYFGB.amd.js.map +1 -0
- package/.chunks/popup-Jw_Yyg3U.es.js +470 -0
- package/.chunks/popup-Jw_Yyg3U.es.js.map +1 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js +209 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js.map +1 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js +2 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js.map +1 -0
- package/.chunks/utils-CzHUG_xz.amd.js +2 -0
- package/.chunks/{utils-5uxIj2CI.amd.js.map → utils-CzHUG_xz.amd.js.map} +1 -1
- package/.chunks/utils-D9nYQabE.amd.js +2 -0
- package/.chunks/{utils-Bg_su8b-.amd.js.map → utils-D9nYQabE.amd.js.map} +1 -1
- package/.chunks/{utils-D58EUoHa.es.js → utils-Q69SXlnV.es.js} +192 -208
- package/.chunks/{utils-D58EUoHa.es.js.map → utils-Q69SXlnV.es.js.map} +1 -1
- package/.chunks/{utils-UBgfsQ8v.es.js → utils-YrUExsH7.es.js} +23 -24
- package/.chunks/{utils-UBgfsQ8v.es.js.map → utils-YrUExsH7.es.js.map} +1 -1
- 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
- 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
- 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
- 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
- package/api/index.amd.js +1 -1
- package/api/index.amd.js.map +1 -1
- package/api/index.js +138 -133
- package/api/index.js.map +1 -1
- package/assets/dialog_regionSelectorRegions.css +1 -0
- package/assets/forms.css +1 -1
- package/assets/policy.css +1 -0
- package/assets/popupHint.css +1 -1
- package/assets/project.css +1 -1
- package/charts/charts.amd.js +1 -1
- package/charts/charts.amd.js.map +1 -1
- package/charts/charts.js +80 -80
- package/charts/charts.js.map +1 -1
- package/core/app.amd.js +1 -1
- package/core/app.amd.js.map +1 -1
- package/core/app.js +93 -96
- package/core/app.js.map +1 -1
- package/dialog/dialog.amd.js +1 -1
- package/dialog/dialog.amd.js.map +1 -1
- package/dialog/dialog.js +13 -13
- package/dialog/dialog.js.map +1 -1
- package/extra/extra.amd.js +1 -1
- package/extra/extra.amd.js.map +1 -1
- package/extra/extra.js +20 -23
- package/extra/extra.js.map +1 -1
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +5 -5
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +185 -534
- package/formsExt/formsExt.js.map +1 -1
- package/layout/layout.amd.js +1 -1
- package/layout/layout.js +6 -6
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.amd.js.map +1 -1
- package/popup/popup.js +43 -46
- package/popup/popup.js.map +1 -1
- package/popup/worker.amd.js +1 -1
- package/popup/worker.amd.js.map +1 -1
- package/popup/worker.js +11 -9
- package/popup/worker.js.map +1 -1
- package/project/project.amd.js +1 -1
- package/project/project.amd.js.map +1 -1
- package/project/project.js +848 -579
- package/project/project.js.map +1 -1
- package/src/api/api/client/client.d.ts +5 -0
- package/src/api/api/mocker/index.d.ts +3 -3
- package/src/api/api/types/client/request.d.ts +6 -0
- package/src/api/api/types/ext.d.ts +2 -2
- package/src/api/api/types/mocker.d.ts +2 -2
- package/src/components/forms/button/types.d.ts +6 -0
- package/src/components/formsExt/formsExt.d.ts +1 -0
- package/src/components/formsExt/libs/optionGroup/types.d.ts +1 -1
- package/src/components/formsExt/selector2/cache.d.ts +12 -0
- package/src/components/formsExt/selector2/composables/useAPI.d.ts +2036 -2
- package/src/components/formsExt/selector2/composables/useMenu.d.ts +2045 -5
- package/src/components/formsExt/selector2/itemMulti.vue.d.ts +3 -3
- package/src/components/formsExt/selector2/selector2.vue.d.ts +11 -3
- package/src/components/formsExt/selector2/types.d.ts +39 -5
- package/src/components/formsExt/selector2/utils.d.ts +17 -0
- package/src/components/popup/lib/popup.d.ts +1 -2
- package/src/components/popup/popup/opener/types.d.ts +6 -2
- package/src/components/popup/popup/types.d.ts +3 -2
- package/src/components/popup/popup.d.ts +1 -1
- package/src/components/project/groupSelector/folders/folders.vue.d.ts +18 -0
- package/src/components/project/groupSelector/folders/types.d.ts +63 -0
- package/src/components/project/groupSelector/folders/utils.d.ts +63 -0
- package/src/components/project/groupSelector/groupSelector.vue.d.ts +33 -0
- package/src/components/project/groupSelector/groups/groups.vue.d.ts +126 -0
- package/src/components/project/groupSelector/groups/types.d.ts +58 -0
- package/src/components/project/groupSelector/groups/utils.d.ts +92 -0
- package/src/components/project/groupSelector/stories/mocks/folders.d.ts +4 -0
- package/src/components/project/groupSelector/stories/mocks/groups.d.ts +2 -0
- package/src/components/project/groupSelector/stories/mocks/index.d.ts +7 -0
- package/src/components/project/groupSelector/types.d.ts +133 -0
- package/src/components/project/project.d.ts +5 -4
- package/src/components/project/{selectorRegion → regionSelector}/utils/utils.d.ts +3 -3
- package/src/core/utils/composables/useWatch.d.ts +32 -0
- package/tabs/tabs.amd.js +1 -1
- package/tabs/tabs.amd.js.map +1 -1
- package/tabs/tabs.js +24 -24
- package/tabs/tabs.js.map +1 -1
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.amd.js.map +1 -1
- package/tabsView/tabsView.js +131 -133
- package/tabsView/tabsView.js.map +1 -1
- package/utils/clipboard.amd.js +1 -1
- package/utils/clipboard.js +1 -1
- package/utils/date.amd.js +1 -1
- package/utils/date.js +1 -1
- package/utils/device.amd.js +1 -1
- package/utils/device.js +1 -1
- package/utils/lodash.amd.js +1 -1
- package/utils/lodash.js +1 -1
- package/utils/price.amd.js +1 -1
- package/utils/price.js +1 -1
- package/utils/scroll.amd.js +1 -1
- package/utils/scroll.amd.js.map +1 -1
- package/utils/scroll.js +14 -14
- package/utils/scroll.js.map +1 -1
- package/utils/searchers.amd.js +1 -1
- package/utils/searchers.js +3 -3
- package/utils/string.amd.js +1 -1
- package/utils/string.amd.js.map +1 -1
- package/utils/string.js +3 -7
- package/utils/string.js.map +1 -1
- package/.chunks/core-DcLw0dEO.amd.js +0 -2
- package/.chunks/core-DcLw0dEO.amd.js.map +0 -1
- package/.chunks/core-DpTLGhiK.es.js +0 -197
- package/.chunks/core-DpTLGhiK.es.js.map +0 -1
- package/.chunks/dialog_selectorRegions-BtAADQHf.es.js +0 -190
- package/.chunks/dialog_selectorRegions-BtAADQHf.es.js.map +0 -1
- package/.chunks/dialog_selectorRegions-DCrHvHDs.amd.js +0 -2
- package/.chunks/dialog_selectorRegions-DCrHvHDs.amd.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Bf0wXalT.amd.js +0 -2
- package/.chunks/forms-BhbgRJ5I.es.js +0 -2045
- package/.chunks/forms-CNcrvkYD.amd.js +0 -3
- package/.chunks/index-BEI7XZmU.amd.js +0 -2
- package/.chunks/index-BEI7XZmU.amd.js.map +0 -1
- package/.chunks/index-igPkes8X.es.js +0 -48
- package/.chunks/index-igPkes8X.es.js.map +0 -1
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-QvP1d9jN.amd.js +0 -2
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-QvP1d9jN.amd.js.map +0 -1
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-xvzbyqai.es.js +0 -196
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-xvzbyqai.es.js.map +0 -1
- package/.chunks/menu.vue_vue_type_style_index_0_lang-C3Rr6ZyL.amd.js +0 -2
- package/.chunks/menu.vue_vue_type_style_index_0_lang-C3Rr6ZyL.amd.js.map +0 -1
- package/.chunks/menu.vue_vue_type_style_index_0_lang-dOeZ7an1.es.js +0 -112
- package/.chunks/menu.vue_vue_type_style_index_0_lang-dOeZ7an1.es.js.map +0 -1
- package/.chunks/notice-BpLsm6Zh.amd.js +0 -4
- package/.chunks/notice-CpPhDTUb.es.js +0 -194
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js +0 -36
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js.map +0 -1
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js +0 -2
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-9abPBMpd.es.js +0 -143
- package/.chunks/page.vue_vue_type_script_setup_true_lang-B-1LEQAz.amd.js +0 -2
- package/.chunks/popup-BJj9BJP5.es.js +0 -485
- package/.chunks/popup-BJj9BJP5.es.js.map +0 -1
- package/.chunks/popup-CfXISjhC.amd.js +0 -2
- package/.chunks/popup-CfXISjhC.amd.js.map +0 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js +0 -2
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js.map +0 -1
- package/.chunks/utils-5uxIj2CI.amd.js +0 -2
- package/.chunks/utils-Bg_su8b-.amd.js +0 -2
- package/assets/dialog_selectorRegions.css +0 -1
- package/assets/formsExt.css +0 -1
- package/assets/listItem.css +0 -1
- package/assets/menu.css +0 -1
- package/src/components/popup/popup/opener.vue.d.ts +0 -16
- /package/src/components/project/{selectorCompetitors/selectorCompetitors.vue.d.ts → competitorSelector/competitorSelector.vue.d.ts} +0 -0
- /package/src/components/project/{selectorCompetitors → competitorSelector}/composables.d.ts +0 -0
- /package/src/components/project/{selectorCompetitors → competitorSelector}/types.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/compare.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/selectRegion.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/selectSearcher.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/selectorRegion.d.ts +0 -0
- /package/src/components/project/{selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue.d.ts → regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue.d.ts} +0 -0
- /package/src/components/project/{selectorRegion/dialog_selectorRegions → regionSelector/dialog_regionSelectorRegions}/types.d.ts +0 -0
- /package/src/components/project/{selectorRegion/selectorRegion.vue.d.ts → regionSelector/regionSelector.vue.d.ts} +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/types.d.ts +0 -0
- /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
|