@topvisor/ui 1.1.0-addNativeDialog.17 → 1.1.0-addNativeDialog.19
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-BQSaCNMU.amd.js → core-Ct3VWRde.amd.js} +2 -2
- package/.chunks/{core-BQSaCNMU.amd.js.map → core-Ct3VWRde.amd.js.map} +1 -1
- package/.chunks/{core-BdbukyuW.es.js → core-DVlMYAfi.es.js} +4 -4
- package/.chunks/{core-BdbukyuW.es.js.map → core-DVlMYAfi.es.js.map} +1 -1
- package/.chunks/{datepicker-DUoArkDy.amd.js → datepicker-BgLipRW7.amd.js} +2 -2
- package/.chunks/{datepicker-DUoArkDy.amd.js.map → datepicker-BgLipRW7.amd.js.map} +1 -1
- package/.chunks/{datepicker-BiaXdEIn.es.js → datepicker-Dfl91fRZ.es.js} +2 -2
- package/.chunks/{datepicker-BiaXdEIn.es.js.map → datepicker-Dfl91fRZ.es.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions-CmqQmYLE.es.js → dialog_selectorRegions-BpE6vw7x.es.js} +4 -4
- package/.chunks/{dialog_selectorRegions-CmqQmYLE.es.js.map → dialog_selectorRegions-BpE6vw7x.es.js.map} +1 -1
- package/.chunks/{dialog_selectorRegions-DNQQYVf6.amd.js → dialog_selectorRegions-hfsUw4lH.amd.js} +2 -2
- package/.chunks/{dialog_selectorRegions-DNQQYVf6.amd.js.map → dialog_selectorRegions-hfsUw4lH.amd.js.map} +1 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-6huAKJt_.es.js +619 -0
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-6huAKJt_.es.js.map +1 -0
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CM666D6Q.amd.js +2 -0
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CM666D6Q.amd.js.map +1 -0
- package/.chunks/{forms-DarRVke_.es.js → forms-BWoAyEVH.es.js} +5 -5
- package/.chunks/{forms-DarRVke_.es.js.map → forms-BWoAyEVH.es.js.map} +1 -1
- package/.chunks/{forms-CgtkdwgA.amd.js → forms-BfDSGwrU.amd.js} +3 -3
- package/.chunks/{forms-CgtkdwgA.amd.js.map → forms-BfDSGwrU.amd.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-DzJ_pc-d.es.js → listItem.vue_vue_type_script_setup_true_lang-Dljef_xa.es.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-DzJ_pc-d.es.js.map → listItem.vue_vue_type_script_setup_true_lang-Dljef_xa.es.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-CT-EXxJj.amd.js → listItem.vue_vue_type_script_setup_true_lang-R7J0Cawj.amd.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-CT-EXxJj.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-R7J0Cawj.amd.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-COD_4iTy.es.js → menu.vue_vue_type_style_index_0_lang-HDPVVgzy.es.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-COD_4iTy.es.js.map → menu.vue_vue_type_style_index_0_lang-HDPVVgzy.es.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-BLMYjYLV.amd.js → menu.vue_vue_type_style_index_0_lang-JZ-QwyLO.amd.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-BLMYjYLV.amd.js.map → menu.vue_vue_type_style_index_0_lang-JZ-QwyLO.amd.js.map} +1 -1
- package/.chunks/notice-DAcU_6aT.amd.js +4 -0
- package/.chunks/notice-DAcU_6aT.amd.js.map +1 -0
- package/.chunks/notice-DYd206Yd.es.js +192 -0
- package/.chunks/notice-DYd206Yd.es.js.map +1 -0
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-CKp8d01o.es.js → page.vue_vue_type_script_setup_true_lang-DDBKHTXA.es.js} +5 -5
- package/.chunks/page.vue_vue_type_script_setup_true_lang-DDBKHTXA.es.js.map +1 -0
- package/.chunks/page.vue_vue_type_script_setup_true_lang-mhd3MqMq.amd.js +2 -0
- package/.chunks/page.vue_vue_type_script_setup_true_lang-mhd3MqMq.amd.js.map +1 -0
- package/.chunks/{popup-AG94kehM.es.js → popup-1pqtx_O5.es.js} +2 -2
- package/.chunks/{popup-AG94kehM.es.js.map → popup-1pqtx_O5.es.js.map} +1 -1
- package/.chunks/{popup-CtvJLWn3.amd.js → popup-JuvnpqC-.amd.js} +2 -2
- package/.chunks/{popup-CtvJLWn3.amd.js.map → popup-JuvnpqC-.amd.js.map} +1 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js +2 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js.map +1 -0
- package/.chunks/{utils-CqH2fjF7.es.js → utils-B1fRcl8f.es.js} +2 -2
- package/.chunks/{utils-CqH2fjF7.es.js.map → utils-B1fRcl8f.es.js.map} +1 -1
- package/.chunks/{utils-Cf7dIMAg.amd.js → utils-CGvb4aCs.amd.js} +2 -2
- package/.chunks/{utils-Cf7dIMAg.amd.js.map → utils-CGvb4aCs.amd.js.map} +1 -1
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-xwjgBq1L.es.js → widgetInput.vue_vue_type_script_setup_true_lang-Cr_jgOW4.es.js} +2 -2
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-xwjgBq1L.es.js.map → widgetInput.vue_vue_type_script_setup_true_lang-Cr_jgOW4.es.js.map} +1 -1
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-BK-pTu3V.amd.js → widgetInput.vue_vue_type_script_setup_true_lang-DVHWVUQM.amd.js} +2 -2
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-BK-pTu3V.amd.js.map → widgetInput.vue_vue_type_script_setup_true_lang-DVHWVUQM.amd.js.map} +1 -1
- package/assets/formsExt.css +1 -1
- package/assets/layout.css +1 -1
- package/assets/notice.css +1 -1
- package/assets/{widgetInput.css → popupHint.css} +1 -1
- package/charts/charts.amd.js +1 -1
- package/charts/charts.js +1 -1
- package/core/app.amd.js +1 -1
- package/core/app.js +5 -5
- package/dialog/dialog.amd.js +1 -1
- package/dialog/dialog.js +2 -2
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +1 -1
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +385 -364
- package/formsExt/formsExt.js.map +1 -1
- package/layout/layout.amd.js +1 -1
- package/layout/layout.amd.js.map +1 -1
- package/layout/layout.js +1 -1
- package/layout/layout.js.map +1 -1
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.amd.js.map +1 -1
- package/popup/popup.js +141 -94
- package/popup/popup.js.map +1 -1
- package/popup/worker.amd.js +1 -1
- package/popup/worker.js +2 -2
- package/project/project.amd.js +1 -1
- package/project/project.js +5 -5
- package/src/components/core/notice/item/types.d.ts +6 -0
- package/src/components/core/notice/utils.d.ts +1 -0
- package/src/components/dialog/lib/types.d.ts +2 -2
- package/src/components/forms/checkbox/checkbox.vue.d.ts +2 -2
- package/src/components/forms/checkbox/types.d.ts +4 -3
- package/src/components/formsExt/checkboxGroup/checkboxGroup.vue.d.ts +18 -7
- package/src/components/formsExt/checkboxGroup/types.d.ts +4 -18
- package/src/components/formsExt/libs/optionGroup/optionGroup.vue.d.ts +16 -0
- package/src/components/formsExt/libs/optionGroup/types.d.ts +15 -0
- package/src/components/formsExt/radioGroup/radioGroup.vue.d.ts +18 -7
- package/src/components/formsExt/radioGroup/types.d.ts +4 -20
- package/src/components/popup/popup.d.ts +4 -3
- package/src/components/popup/popupHint/popupHint.vue.d.ts +17 -0
- package/src/components/popup/popupHint/types.d.ts +7 -0
- package/src/core/utils/check.d.ts +5 -1
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.amd.js.map +1 -1
- package/tabsView/tabsView.js +3 -3
- package/utils/check.amd.js +1 -1
- package/utils/check.amd.js.map +1 -1
- package/utils/check.js +14 -21
- package/utils/check.js.map +1 -1
- package/utils/clipboard.amd.js +1 -1
- package/utils/clipboard.amd.js.map +1 -1
- package/utils/clipboard.js +1 -1
- package/utils/clipboard.js.map +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/searchers.amd.js +1 -1
- package/utils/searchers.js +3 -3
- package/utils/string.amd.js +1 -1
- package/utils/string.js +1 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-C7kxa9Ne.amd.js +0 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-C7kxa9Ne.amd.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Fs1cKyeg.es.js +0 -615
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Fs1cKyeg.es.js.map +0 -1
- package/.chunks/notice-CPtAnc7p.amd.js +0 -4
- package/.chunks/notice-CPtAnc7p.amd.js.map +0 -1
- package/.chunks/notice-fno9saBY.es.js +0 -175
- package/.chunks/notice-fno9saBY.es.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-CKp8d01o.es.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-DsFhVPsK.amd.js +0 -2
- package/.chunks/page.vue_vue_type_script_setup_true_lang-DsFhVPsK.amd.js.map +0 -1
- package/.chunks/widgetInput.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js +0 -2
- package/.chunks/widgetInput.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js.map +0 -1
- /package/src/components/popup/{alert/alert.vue.d.ts → popupAlert/popupAlert.vue.d.ts} +0 -0
- /package/src/components/popup/{alert → popupAlert}/types.d.ts +0 -0
- /package/src/components/popup/{confirm/confirm.vue.d.ts → popupConfirm/popupConfirm.vue.d.ts} +0 -0
- /package/src/components/popup/{confirm → popupConfirm}/types.d.ts +0 -0
- /package/src/components/popup/{prompt/prompt.vue.d.ts → popupPrompt/popupPrompt.vue.d.ts} +0 -0
- /package/src/components/popup/{prompt → popupPrompt}/types.d.ts +0 -0
|
@@ -0,0 +1,619 @@
|
|
|
1
|
+
import { nextTick as te, ref as x, markRaw as oe, shallowReactive as ae, defineComponent as ie, onUnmounted as re, createElementBlock as F, openBlock as M, Fragment as ne, renderList as de, unref as se, createBlock as le, resolveDynamicComponent as ce } from "vue";
|
|
2
|
+
import { sleep as pe, waitWhile as Z } from "../utils/system.js";
|
|
3
|
+
import { C as b } from "./forms-BWoAyEVH.es.js";
|
|
4
|
+
import { TopPopupWorker as ge } from "../popup/worker.js";
|
|
5
|
+
import { historySetState as S, genHash as R, getHash as K, setHashs as he } from "../utils/route.js";
|
|
6
|
+
import { connectScrollShadow as me } from "../utils/scroll.js";
|
|
7
|
+
import { querySelectorAllArray as h, isVisible as m } from "../utils/dom.js";
|
|
8
|
+
$;
|
|
9
|
+
class c {
|
|
10
|
+
static state = {
|
|
11
|
+
load: void 0,
|
|
12
|
+
decoratorOnCreate: void 0,
|
|
13
|
+
/**
|
|
14
|
+
* Порядковый номер перехода в диалоговых окнах
|
|
15
|
+
*
|
|
16
|
+
* Для расчета анимации Вперед / Назад
|
|
17
|
+
*/
|
|
18
|
+
viewPageN: 0
|
|
19
|
+
};
|
|
20
|
+
static inited = !1;
|
|
21
|
+
/**
|
|
22
|
+
* Инициировать события слежения за парамтерами url
|
|
23
|
+
*
|
|
24
|
+
* Если в параметрах есть запрос на открытие диалогового окна, TopDialog будет автоматически подключен на страницу
|
|
25
|
+
*/
|
|
26
|
+
static init(t) {
|
|
27
|
+
if (this.inited) return;
|
|
28
|
+
this.inited = !0, this.state.load = t == null ? void 0 : t.load, this.state.decoratorOnCreate = t == null ? void 0 : t.decoratorOnCreate;
|
|
29
|
+
const o = (t == null ? void 0 : t.autoInitDelay) ?? 5e3;
|
|
30
|
+
window.addEventListener("hashchange", (a) => {
|
|
31
|
+
this.opendDialogsFromChangeUrl(a.oldURL, a.newURL);
|
|
32
|
+
}), this.opendDialogsFromChangeUrl("", location.href), document.addEventListener("mousedown", async (a) => {
|
|
33
|
+
if (!(a.target instanceof HTMLElement)) return;
|
|
34
|
+
const i = a.target.closest("a[data-to-view]");
|
|
35
|
+
if (!i) return;
|
|
36
|
+
let n = "next";
|
|
37
|
+
i.dataset.action === "top-dialog-close" && (n = "prev"), i.href = c.genViewPageHash(i.dataset.toView, n);
|
|
38
|
+
}), document.addEventListener("click", async (a) => {
|
|
39
|
+
var p, w;
|
|
40
|
+
if (!(a.target instanceof HTMLElement)) return;
|
|
41
|
+
const i = a.target.closest("[data-to-view]");
|
|
42
|
+
if (!i) return;
|
|
43
|
+
if (i instanceof HTMLAnchorElement && i.href === ".") {
|
|
44
|
+
a.preventDefault();
|
|
45
|
+
const E = new MouseEvent("mousedown", {
|
|
46
|
+
bubbles: !0,
|
|
47
|
+
cancelable: !0,
|
|
48
|
+
view: window
|
|
49
|
+
});
|
|
50
|
+
i.dispatchEvent(E), setTimeout(() => i.click());
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const n = await this.getDialogsUtils(), s = i.dataset.toView, l = s.split("-")[0], g = n.getElDialogById(l);
|
|
54
|
+
let u = "next";
|
|
55
|
+
if (g) {
|
|
56
|
+
const E = h(g, ".modal-layer"), I = E.reduce((k, j) => {
|
|
57
|
+
const P = j.querySelector(":scope > .active");
|
|
58
|
+
return P && k.push(P), k;
|
|
59
|
+
}, []);
|
|
60
|
+
if (I.length) {
|
|
61
|
+
const k = s.split("-")[1].split(":")[0];
|
|
62
|
+
(((p = E.reduce((P, V) => {
|
|
63
|
+
const O = V == null ? void 0 : V.querySelector(`:scope > [data-view-page="${k}"]`);
|
|
64
|
+
return O && P.push(O), P;
|
|
65
|
+
}, [])[0]) == null ? void 0 : p.dataset.order) ?? 0) < (((w = I[0]) == null ? void 0 : w.dataset.order) ?? 0) && (u = "prev");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
i.dataset.action === "top-dialog-close" && (u = "prev");
|
|
69
|
+
const d = c.genViewPageHash(s, u);
|
|
70
|
+
if (i instanceof HTMLAnchorElement) {
|
|
71
|
+
if (!g || !m(g)) return;
|
|
72
|
+
if (location.hash.indexOf(s.replace("-", "=")) !== -1) {
|
|
73
|
+
await n.toViewDirty(s);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
!!(g != null && g.dataset.toViewReplace) ? (a.preventDefault(), S(!0, d), await n.toViewDirty(s), u == "next" ? c.state.viewPageN++ : c.state.viewPageN--) : i.tagName !== "A" && (this.compareStates(d, location.hash) ? S(!1, d) : await n.toViewDirty(s));
|
|
78
|
+
}), setTimeout(() => this.getDialogsUtils(), o);
|
|
79
|
+
}
|
|
80
|
+
static opendDialogsFromChangeUrl(t, o) {
|
|
81
|
+
const a = t.replace(/.*?#/, "#"), r = o.replace(/.*?#/, "#");
|
|
82
|
+
this.compareStates(a, r) && this.opendDialogsFromUrl();
|
|
83
|
+
}
|
|
84
|
+
static async getDialogsUtils() {
|
|
85
|
+
const { TopDialogUtils: t } = await Promise.resolve().then(() => Te);
|
|
86
|
+
return t;
|
|
87
|
+
}
|
|
88
|
+
static getDialog(t) {
|
|
89
|
+
return t.closest(".top-dialog-content");
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* todo: Переписать на сайте на this.getDialog()
|
|
93
|
+
*
|
|
94
|
+
* @deprecated Для обратной совместимости
|
|
95
|
+
*/
|
|
96
|
+
static get$dialog(t) {
|
|
97
|
+
return t.closest(".top-dialog-content");
|
|
98
|
+
}
|
|
99
|
+
static getPage(t) {
|
|
100
|
+
return t.closest("[data-view-page]");
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* todo: Переписать на сайте на this.getPage()
|
|
104
|
+
*
|
|
105
|
+
* @deprecated Для обратной совместимости
|
|
106
|
+
*/
|
|
107
|
+
static get$page(t) {
|
|
108
|
+
return t.closest("[data-view-page]");
|
|
109
|
+
}
|
|
110
|
+
static getPairPage(t) {
|
|
111
|
+
const o = c.getDialog(t);
|
|
112
|
+
if (!o) return;
|
|
113
|
+
const a = c.getPage(t), r = a == null ? void 0 : a.dataset.viewPage;
|
|
114
|
+
return h(o, `[data-view-page="${r}"]`);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* todo: Переписать на сайте на this.getPairPage()
|
|
118
|
+
*
|
|
119
|
+
* @deprecated Для обратной совместимости
|
|
120
|
+
*/
|
|
121
|
+
static get$pairPage(t) {
|
|
122
|
+
const o = c.get$dialog(t), r = c.get$page(t).data("view-page");
|
|
123
|
+
return $('[data-view-page="' + r + '"]', o);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Закрыть диалоговое окно по его id
|
|
127
|
+
* @param id - id элемента ElTopDialog
|
|
128
|
+
* @see ElTopDialog
|
|
129
|
+
*/
|
|
130
|
+
static close(t) {
|
|
131
|
+
const o = document.getElementById(t);
|
|
132
|
+
if (!o) return;
|
|
133
|
+
v(o).close();
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Размонтировать диалоговое окно по его id
|
|
137
|
+
* @param id - id элемента ElTopDialog
|
|
138
|
+
* @see ElTopDialog
|
|
139
|
+
*/
|
|
140
|
+
static destroy(t) {
|
|
141
|
+
const o = document.getElementById(t);
|
|
142
|
+
if (!o) return;
|
|
143
|
+
const a = v(o);
|
|
144
|
+
a.close(), a.remove();
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Сгенерировать ссылку на страницу в диалоговом окне
|
|
148
|
+
* @param toView - указатель в формате: dialog_{{ dialogId }}={{ pageName }}:{{ args }}
|
|
149
|
+
* @param moveDirection
|
|
150
|
+
*/
|
|
151
|
+
static genViewPageHash(t, o = "next") {
|
|
152
|
+
let a = this.state.viewPageN;
|
|
153
|
+
o == "prev" ? a-- : a++;
|
|
154
|
+
const r = t.split("-"), i = r.shift(), n = r.join("-");
|
|
155
|
+
let s = R("vpn", a);
|
|
156
|
+
return s = R("view-" + i, n, s), s;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Сравнить версию открытых диалоговых окон
|
|
160
|
+
* @returns вернет true, если состояния открытых окон изменилось
|
|
161
|
+
*/
|
|
162
|
+
static compareStates(t, o) {
|
|
163
|
+
const a = t.match(/[#&]view-[^&]+/g) || [], r = o.match(/[#&]view-[^&]+/g) || [];
|
|
164
|
+
return !!(a.length !== r.length || a.filter((n, s) => {
|
|
165
|
+
const l = r[s] || "";
|
|
166
|
+
return n !== l;
|
|
167
|
+
}).length);
|
|
168
|
+
}
|
|
169
|
+
static opendDialogsFromUrl = async () => {
|
|
170
|
+
const t = Number(K("vpn")) || 0;
|
|
171
|
+
let o;
|
|
172
|
+
const a = new RegExp("view-((\\w+)=([\\w-]+)(?::([\\w.:-]+))?)", "g");
|
|
173
|
+
for (; o = a.exec(location.hash); ) {
|
|
174
|
+
let i = "next";
|
|
175
|
+
return t < this.state.viewPageN && (i = "prev"), (await this.getDialogsUtils()).toViewDirty(o[1], i);
|
|
176
|
+
}
|
|
177
|
+
return h(document, ".top-dialog-content[data-view-page-active]").filter((i) => m(i)).forEach((i) => {
|
|
178
|
+
const n = i.getAttribute("id");
|
|
179
|
+
if (!n) throw "Диалоговое окно не содержит id";
|
|
180
|
+
K("view-" + n) || v(i).close();
|
|
181
|
+
}), this.state.viewPageN = t, !0;
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
let J = !1;
|
|
185
|
+
const fe = () => {
|
|
186
|
+
J || (J = !0, document.addEventListener("click", (e) => {
|
|
187
|
+
if (!(e.target instanceof HTMLElement)) return;
|
|
188
|
+
const t = e.target.closest('[data-action="top-dialog-close"]');
|
|
189
|
+
if (!t) return;
|
|
190
|
+
e.preventDefault();
|
|
191
|
+
const o = t.closest(".top-dialog-content");
|
|
192
|
+
if (!o) return;
|
|
193
|
+
const a = t.dataset.toView;
|
|
194
|
+
if (a == "toPrevPage()") {
|
|
195
|
+
A.toPrevPage(o);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (a) {
|
|
199
|
+
const i = a.split("-"), n = i.shift(), s = i.join("-");
|
|
200
|
+
if (!n) return;
|
|
201
|
+
const l = A.getElDialogById(n);
|
|
202
|
+
if (!l) return;
|
|
203
|
+
const g = h(l, `[data-view-page="${s}"]`);
|
|
204
|
+
if (!g) return;
|
|
205
|
+
if (!m(g[0])) {
|
|
206
|
+
const u = c.genViewPageHash(a, "prev");
|
|
207
|
+
S(!1, u);
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
v(o).close();
|
|
212
|
+
}), document.addEventListener("submit", (e) => {
|
|
213
|
+
const t = e.target;
|
|
214
|
+
(t.matches(".modal-body > form") || t.matches(".modal-layer-body > form")) && e.preventDefault();
|
|
215
|
+
}), document.addEventListener("keypress", (e) => {
|
|
216
|
+
if (!(e.target instanceof HTMLElement)) return;
|
|
217
|
+
const t = e.target;
|
|
218
|
+
if (!(!t.closest(".dialog .modal-body") || !(t.matches("input:not(.searcher), textarea:not(.searcher), select:not(.searcher), button:not(.searcher)") || t.hasAttribute("contenteditable"))) && e.key === "Enter") {
|
|
219
|
+
if (t.classList.contains("autocomplete")) {
|
|
220
|
+
e.preventDefault();
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
if (t.tagName === "TEXTAREA") {
|
|
224
|
+
if (!e.ctrlKey && !e.metaKey) return;
|
|
225
|
+
const r = t.closest("form");
|
|
226
|
+
if (r) {
|
|
227
|
+
const i = h(r, 'button[type="submit"]').concat(h(r, 'input[type="submit"]')).find((n) => m(n));
|
|
228
|
+
i == null || i.click();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}), document.addEventListener("click", (e) => {
|
|
233
|
+
if (!(e.target instanceof HTMLElement) || !e.target.classList.contains("top-dialog-overlay")) return;
|
|
234
|
+
let o, a = 0;
|
|
235
|
+
h(document, ".dialog").filter((i) => m(i) && i.getAttribute("aria-modal") === "false").forEach((i) => {
|
|
236
|
+
const n = Number(window.getComputedStyle(i).zIndex);
|
|
237
|
+
n < a || (o = i, a = n);
|
|
238
|
+
}), o && o.close();
|
|
239
|
+
}), window.addEventListener("resize", A.recalcPositions), A.recalcPositions());
|
|
240
|
+
}, ue = ':root{--dialog-border-color: var(--color-line-1);--dialog-loading-duration: 10s;--top-dialog-footer-height: var(--top-forms-base-height_s)}html.with_dialog{overflow:hidden!important}a[data-to-view]{cursor:pointer}.dialog{overflow:visible;background:var(--color-layout-front-1);max-height:none;max-width:none;border-radius:8px;border:none;padding:0;color:var(--color-text-1)}.dialog[aria-modal=false]{top:50%;transform:translateY(-50%);z-index:100001}.top-dialog-overlay,.dialog::backdrop{background:#040404;opacity:.5;filter:Alpha(Opacity=50)}.top-dialog-overlay{position:fixed;inset:0;z-index:100000;display:none}.dialog[aria-modal=false][open]~.top-dialog-overlay{display:block}.dialog .top-dialog-content{padding:0;overflow:visible}.dialog .project_name{word-break:break-all}.top-dialog-content{--dialog-header-height: 50px;--dialog-layer-pageSelector: 0px}.top-dialog-content-withPageSelector{--dialog-layer-pageSelector: 42px}.modal-header,.modal-body,.modal-footer{font-size:14px;position:relative}.modal-body{padding:var(--padding-default)}.modal-body:has(>.topTable:first-child){padding-top:calc(var(--padding-default) / 4)}.modal-header{border-bottom:1px solid var(--dialog-border-color);height:var(--dialog-header-height);padding:0 var(--padding-default);display:flex;justify-content:space-between;align-items:center;gap:var(--top-padding-2)}.modal-header>*{padding:10px 0;font-size:16px}.modal-header>.top-title{margin:0;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;order:50;display:flex;align-items:center}.modal-header>.top-title>div[class*=icon]{display:none}.modal-header>div:not(.top-title){order:60}.modal-header>button.close{--top-icon-color: var(--color-text-2);cursor:pointer;background:var(--color-layout-front-1);font-size:16px;order:100;animation-name:none!important}.modal-header>button.close:hover{--top-icon-color: var(--color-text-1)}.modal-header .links_icons{position:absolute;right:50px}.modal-header .links_icons [class*=icon-]{width:auto;height:auto;padding:0 5px;color:#d6dee0}.modal-header .links_icons [class*=icon-].active{color:var(--color-bg-warning-1)}.modal-layer-pageSelector{padding:0 10px!important}.modal-body{max-height:calc(var(--100vh) - var(--dialog-header-height) - 1px - var(--dialog-layer-pageSelector) - var(--top-dialog-footer-height) - 1px);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;flex-grow:1}.modal-body hr{margin:16px -15px}.modal-body h4{padding:0;margin:0 0 10px;line-height:normal}.modal-body .inner{padding:var(--padding-default);margin:0 calc(0px - var(--padding-default));position:relative}.modal-body .inner .bt{border-top:1px dashed var(--color-layout-front-primary-3);position:absolute;top:0;right:0;left:0}.modal-body .inner .bb{border-bottom:1px dashed var(--color-layout-front-primary-3);position:absolute;right:0;bottom:0;left:0}.modal-body .inner.color-1{background:var(--color-layout-front-primary-3);color:var(--color-text-1)}.modal-body .inner strong{color:var(--color-text-1)}.modal-body .comment{line-height:18px}.modal-footer{min-height:var(--top-dialog-footer-height);padding:var(--top-gap-2);display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;gap:var(--top-gap-2)}.modal-footer .modal-footer-btn-left{margin-right:auto}.modal-footer>.btn.full_width,.modal-footer>.top-button.full_width{flex-grow:1;align-self:flex-end}.modal-footer-fullWith{flex-wrap:wrap}.modal-footer-fullWith>*{flex-grow:1}.modal-footer-fullWith>.top-info{flex-grow:5}.modal-footer-fullWith>*:empty{flex-grow:0}.top-dialog-content>.modal-layer>[data-view-page]>input[type=submit]{position:absolute;visibility:hidden}.help_popup .modal-header{display:none}.help_popup .modal-header a{top:2px;z-index:10}.help_popup .modal-header .top-title{display:none}.modal-layer{overflow:hidden}.modal-layer a[data-top-icon]:empty{color:var(--color-text-4);text-decoration:none}.modal-layer>[data-view-page]>div>div.buttons{display:flex;white-space:nowrap;gap:var(--top-padding-1)}.modal-layer>[data-view-page]>div>div.buttons:empty{display:none}.modal-layer>[data-view-page]>div>div.buttons>div,.modal-layer>[data-view-page]>div>div.buttons>a{cursor:pointer;width:auto;height:auto;min-width:auto;min-height:auto;padding:10px 9px;color:var(--color-text-4)}.modal-layer>[data-view-page]>div>div.buttons>div:hover{color:var(--color-text-2)}.modal-layer>[data-view-page]>div>div.buttons>div.hidden{display:none!important}.top-dialog-content[data-view-page-active]{display:flex!important;flex-direction:column;justify-items:stretch}.top-dialog-content>.modal-layer{display:flex!important;align-items:stretch;position:relative}.top-dialog-content.i-change-page>.modal-layer{overflow:hidden}.top-dialog-content>.modal-layer>[data-view-page]{width:100%;position:relative;display:none;flex-direction:column;justify-content:space-between;animation:.3s cubic-bezier(.4,0,.2,1) forwards}.top-dialog-content>.modal-layer>[data-view-page].active{display:flex}.top-dialog-content>.modal-layer>[data-view-page].reverse{animation-direction:reverse}.top-dialog-content>.modal-layer>[data-view-page].center-to-left,.top-dialog-content>.modal-layer>[data-view-page].right-to-center{display:flex;position:absolute;inset:0}.top-dialog-content>.modal-layer>[data-view-page].center-to-left>div,.top-dialog-content>.modal-layer>[data-view-page].right-to-center>div{overflow:hidden}.top-dialog-content>.modal-layer-header{border-bottom:1px solid var(--dialog-border-color);min-height:var(--dialog-header-height)}.top-dialog-content>.modal-layer-header>[data-view-page]>.modal-header{border:none;background:none}.top-dialog-content>.modal-layer-header>[data-view-page]>.modal-header>*{animation:.3s cubic-bezier(.4,0,.2,1) forwards}.top-dialog-content>.modal-layer-header>[data-view-page].reverse>.modal-header>*{animation-direction:reverse}.top-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>.top-title{animation-name:dialog-center-to-left-header-title}.top-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>.top-title{animation-name:dialog-right-to-center-header-title}.top-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>[class*=widget-]{animation-name:dialog-center-to-left-header-title}.top-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>[class*=widget-]{animation-name:dialog-right-to-center-header-title}.top-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>div{animation-name:dialog-center-to-left-header-icons}.top-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>div{animation-name:dialog-right-to-center-header-icons}.top-dialog-content>.modal-layer-body{border-radius:0 0 8px 8px;max-height:calc(var(--100vh) - var(--dialog-header-height) - var(--dialog-layer-pageSelector) - var(--toolbar-height, 0px));flex-grow:2}.top-dialog-content.i-change-page>.modal-layer-body>[data-view-page]{background:var(--color-layout-front-1)}.top-dialog-content>.modal-layer-body>[data-view-page].center-to-left{animation-name:dialog-center-to-left}.top-dialog-content>.modal-layer-body>[data-view-page].right-to-center{animation-name:dialog-right-to-center}.top-dialog-content .modal-footer .second_level{box-sizing:border-box;background:var(--color-layout-front-1);width:100%;min-height:25px;display:flex;align-items:center;justify-content:center}.top-dialog-content .modal-footer .second_level input{border-radius:8px;width:100%;height:var(--top-forms-base-height);padding:var(--top-padding-1) var(--top-padding-3);box-sizing:border-box}.top-dialog-content>.modal-layer-body>[data-view-page].i-load-data{pointer-events:none}.top-dialog-content>.modal-layer-body>[data-view-page].i-load-data:before{content:" ";background:#378dc6;width:0;height:4px;position:absolute;top:0;left:0;z-index:100;animation:top-loadbar var(--dialog-loading-duration) forwards}.top-dialog-content.modal-expanded{width:100vw!important;height:calc(var(--100vh) + 10px)!important}.modal-header>[data-widget]{padding:0 8px;position:absolute;inset:0;opacity:0;overflow:hidden;align-items:center;visibility:hidden;transition:opacity .3s;z-index:1}.modal-header>[data-widget=search] div.cancel{opacity:0;transform:translate(100%);transition:transform,opacity;transition-duration:.3s}[data-view-page].i-show-search .modal-header>:not([data-widget=search]){visibility:hidden}[data-view-page].i-show-search [data-widget=search]{visibility:visible;opacity:1}[data-view-page].i-show-search [data-widget=search] .cancel{transform:translate(0);opacity:1}[data-view-page]>.modal-header>*{transition:opacity .3s}[data-view-page].i-show-search>.modal-header>div.buttons{opacity:0}.modal-layer .top-popup-wrapper{height:100%!important}@keyframes dialog-center-to-left-header-title{0%{transform:translate(0);opacity:1}75%{opacity:0}to{transform:translate(-30%);opacity:0}}@keyframes dialog-right-to-center-header-title{0%{transform:translate(100%);opacity:0}25%{opacity:0}to{transform:translate(0);opacity:1}}@keyframes dialog-center-to-left-header-icons{0%{transform:translate(0);opacity:1}35%{transform:translate(-20%);opacity:0}to{transform:translate(-20%);opacity:0}}@keyframes dialog-right-to-center-header-icons{0%{transform:translate(20%);opacity:0}65%{transform:translate(20%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes dialog-center-to-left{0%{transform:translate(0);filter:brightness(1)}to{transform:translate(-30%);filter:brightness(.9)}}@keyframes dialog-right-to-center{0%{transform:translate(100%);box-shadow:#0000001a 0 0 10px}to{transform:translate(0);box-shadow:#0003 0 0 10px}}@media only screen and (max-width: 1480px){.win_side_panel_opener{display:none}}@media only screen and (min-width: 1480px){.top-dialog-content.with_side_panel{box-shadow:#0003 0 0 6px}.top-dialog-content.with_side_panel .modal-layer-body{background:var(--color-layout-front-1)}[data-widget=side_panel]{--side_panel_width: calc((100vw - 900px)/2 - 28px) ;box-sizing:border-box;background:var(--color-layout-front-1);max-width:var(--side_panel_width);padding:18px;position:absolute;top:calc(var(--dialog-header-height) + 1px + var(--dialog-layer-pageSelector));bottom:calc(var(--top-dialog-footer-height) + 1px);z-index:-1;display:block;transition:.2s}.win_side_panel_left{border-radius:8px 0 0 8px;right:100%}.win_side_panel_right{border-radius:0 8px 8px 0;left:100%}.win_side_panel_closed.win_side_panel_left{right:calc(100% - var(--side_panel_width))}.win_side_panel_closed.win_side_panel_right{left:calc(100% - var(--side_panel_width))}[data-widget=side_panel] .template{display:block}[data-widget=side_panel] .template>.header,[data-widget=side_panel] .template>.footer{display:flex}.win_side_panel_opener{cursor:pointer;background:var(--color-cyan);color:#fff;padding:4px;position:absolute;top:20px}.win_side_panel_closed .win_side_panel_opener:not(:hover){opacity:.3}.win_side_panel_left .win_side_panel_opener{border-radius:4px 0 0 4px;right:100%}.win_side_panel_right .win_side_panel_opener{border-radius:0 6px 6px 0;left:100%}}@media only screen and (max-height: 900px){html.with_dialog{background:#f1f1f1;overflow:hidden}.dialog.me-tightly{border-radius:0;height:auto!important;position:fixed;top:0!important;bottom:0!important}.dialog.me-tightly .top-dialog-content{min-height:100%!important}.dialog.me-tightly>div>.modal-body{position:absolute;top:var(--dialog-header-height);right:0;left:0;bottom:var(--dialog-header-height)}.dialog.me-tightly>div>.modal-body:last-child{bottom:0}.dialog.me-tightly>div>.modal-footer{position:absolute;right:0;bottom:0;left:0}.dialog.me-tightly .modal-layer-body{border-radius:0;min-height:0!important}.dialog.me-tightly .modal-layer-body .modal-footer{min-height:unset}}', ve = "html.with_dialog body{height:var(--100vh);overflow:hidden}.dialog{border-radius:0}.dialog,.dialog::backdrop{height:calc(100% - var(--toolbar-height, 0px));width:auto;margin-top:0}.dialog[aria-modal=false]{top:0;transform:none}.top-dialog-content{width:100%!important;height:100%!important;min-width:0!important;max-width:100%!important}.modal-header>.top-title{text-align:center;font-size:14px}.modal-header>button.close{font-size:14px;order:1}.modal-body:last-child{bottom:0}.modal-footer{bottom:0}.modal-footer .second_level{padding:10px 8px}.modal-layer-body{min-height:0!important}.top-dialog-content>.modal-layer-body{border-radius:0}.modal-body,.modal-footer{padding-right:12px;padding-left:12px}.modal-footer .btn:last-child{margin-right:12px}.modal-body .inner{padding:12px;margin:0 -12px;position:relative}", we = ".modal-menu-opener{order:1!important}.modal-menu-opener:before{--top-icon-size: 20px;--top-icon-color: #FFF;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--color-bg-primary-1);padding:3px;transition:transform .1s}.modal-menu-opener:hover:before{background:var(--color-bg-primary-2)}.modal-menu-opener.top-active:before{background:var(--color-bg-primary-2);transform:scale(.8)}.modal-layer .top-popup-wrapper{background:transparent;width:auto!important;padding:0!important;margin:0!important;top:0!important;right:0!important;left:0!important;transition:background .3s}.modal-layer .top-popup-wrapper>.top-popup[class],.modal-layer .top-popup-wrapper.with_notch>.top-popup[class]{border-radius:8px;border:none;margin:12px!important;max-width:100%;max-height:calc(100% - 24px);inset:0 0 auto!important;overflow:auto;display:flex;flex-direction:column;opacity:1;transform:translateY(calc(-100% - 24px));transition:transform .3s}.modal-layer .top-popup>.top-popup_header{background:var(--color-theme-50)}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select{border:none}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select .text{color:#fff}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select .arrow{background:none}.modal-layer .top-popup-wrapper-shown:not(.top-popup-wrapper-closed){background:#34495e40}@media only screen and (min-width: 1480px){.top-dialog-content.with_side_panel{box-shadow:#0003 0 0 6px}.top-dialog-content.with_side_panel .modal-layer-body{background:var(--color-layout-front-1)}[data-widget=side_panel]{--side_panel_width: calc((100vw - 900px)/2 - 28px) ;box-sizing:border-box;background:var(--color-layout-front-1);max-width:var(--side_panel_width);padding:18px;display:block;position:absolute;top:51px;bottom:51px;z-index:-1;transition:.2s}.win_side_panel_left{border-radius:8px 0 0 8px;right:100%}.win_side_panel_right{border-radius:0 8px 8px 0;left:100%}.win_side_panel_closed.win_side_panel_left{right:calc(100% - var(--side_panel_width))}.win_side_panel_closed.win_side_panel_right{left:calc(100% - var(--side_panel_width))}[data-widget=side_panel] .template{display:block}[data-widget=side_panel] .template>.header,[data-widget=side_panel] .template>.footer{display:flex}.win_side_panel_opener{cursor:pointer;background:var(--color-cyan);color:#fff;padding:4px;position:absolute;top:20px}.win_side_panel_closed .win_side_panel_opener:not(:hover){opacity:.3}.win_side_panel_left .win_side_panel_opener{border-radius:4px 0 0 4px;right:100%}.win_side_panel_right .win_side_panel_opener{border-radius:0 6px 6px 0;left:100%}}", ye = "html{--top-dialog-width: auto;--top-dialog-height: auto}.top-dialog{max-width:100vw}.top-dialog .modal-layer-body{height:var(--top-dialog-height)}", be = ".top-dialog{width:var(--top-dialog-width)!important}";
|
|
241
|
+
b.insertStyleToPage(ue);
|
|
242
|
+
b.insertStyleToPage(ve, "m");
|
|
243
|
+
b.insertStyleToPage(we, "pc");
|
|
244
|
+
b.insertStyleToPage(ye);
|
|
245
|
+
b.insertStyleToPage(be, "pc");
|
|
246
|
+
let G;
|
|
247
|
+
const _ = (e) => !!e && typeof e == "object" && "jquery" in e, T = (e) => {
|
|
248
|
+
const t = X(e), o = xe(t);
|
|
249
|
+
e.setAttribute("closedby", o.closedby), e.setAttribute("aria-modal", "false"), e.show();
|
|
250
|
+
}, xe = (e) => {
|
|
251
|
+
const t = {
|
|
252
|
+
modal: !1,
|
|
253
|
+
closedby: "closerequest"
|
|
254
|
+
}, o = e.dataset.closedby;
|
|
255
|
+
return (o === "closerequest" || o === "none") && (t.closedby = o), t;
|
|
256
|
+
}, H = (e) => document.getElementById(e), _e = (e) => {
|
|
257
|
+
e.dialog = (t) => {
|
|
258
|
+
const o = e.closest(".dialog");
|
|
259
|
+
switch (t) {
|
|
260
|
+
case void 0:
|
|
261
|
+
case "open": {
|
|
262
|
+
T(o);
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
case "close": {
|
|
266
|
+
o.close();
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
default:
|
|
270
|
+
throw new Error(`Передан неизвестный аргумент: "${t}"`);
|
|
271
|
+
}
|
|
272
|
+
return e;
|
|
273
|
+
}, e.toggleClass = (t, o) => {
|
|
274
|
+
if (typeof t == "string" && (t = t.split(" ")), Array.isArray(t))
|
|
275
|
+
t.forEach((a) => {
|
|
276
|
+
e.classList.toggle(a, o);
|
|
277
|
+
});
|
|
278
|
+
else
|
|
279
|
+
throw new Error(`Передан необработанный тип аргумента: ${typeof t}`);
|
|
280
|
+
return e;
|
|
281
|
+
}, e.data = (...t) => ($(e).data(t), e);
|
|
282
|
+
}, L = async (e, t, o) => {
|
|
283
|
+
if (!e.startsWith("dialog_")) return;
|
|
284
|
+
const a = B(e);
|
|
285
|
+
if (a && (a.isOpened.value = !0, t !== void 0 && (a.pageActive.value = t), o !== void 0 && (a.pageActiveNext.value = o), await te(), o)) {
|
|
286
|
+
const r = H(e);
|
|
287
|
+
if (!r) return;
|
|
288
|
+
r.querySelectorAll(`[data-view-page="${o}"]`).length || await Z(() => !r.querySelectorAll(`[data-view-page="${o}"]`).length);
|
|
289
|
+
}
|
|
290
|
+
}, Pe = (e) => {
|
|
291
|
+
var o, a;
|
|
292
|
+
const t = e.querySelector(".modal-body");
|
|
293
|
+
t && (me(t), (a = (o = c.state).decoratorOnCreate) == null || a.call(o, e), Ae(e));
|
|
294
|
+
}, Ae = (e) => {
|
|
295
|
+
$(e).on("aftershow.top-menu-popup", "[data-top-popup]", (t, o) => {
|
|
296
|
+
var i;
|
|
297
|
+
const a = o[0], r = c.getPairPage(a);
|
|
298
|
+
(i = r == null ? void 0 : r[1]) == null || i.prepend(a);
|
|
299
|
+
});
|
|
300
|
+
}, Ee = async (e) => {
|
|
301
|
+
var n;
|
|
302
|
+
const t = e.dataset.viewPageActive, o = window.innerWidth;
|
|
303
|
+
b.state.documentClassModificators.set("top-dialog", "with_dialog");
|
|
304
|
+
const r = window.innerWidth - o;
|
|
305
|
+
document.documentElement.scrollHeight > window.innerHeight && (document.querySelector("html").style.marginRight = r + "px"), N();
|
|
306
|
+
const i = B(e.getAttribute("id"));
|
|
307
|
+
(n = i == null ? void 0 : i.emit) == null || n.call(i, "open", t);
|
|
308
|
+
}, ke = async (e) => {
|
|
309
|
+
var i;
|
|
310
|
+
const t = e.getAttribute("id"), o = e.dataset.viewPageActive;
|
|
311
|
+
if (o) {
|
|
312
|
+
const n = {
|
|
313
|
+
vpn: c.state.viewPageN,
|
|
314
|
+
["view-" + t]: null
|
|
315
|
+
};
|
|
316
|
+
n["view-" + t] = null, (c.state.viewPageN === 0 || c.state.viewPageN === 1) && (n.vpn = null), he(n, !1);
|
|
317
|
+
}
|
|
318
|
+
h(document, ".dialog[open]").find((n) => m(n)) || (b.state.documentClassModificators.delete("top-dialog"), document.querySelector("html").style.marginRight = ""), $(e).trigger("viewAfterClose", [e]);
|
|
319
|
+
const r = B(t);
|
|
320
|
+
r && (r.isOpened.value = !1, (i = r.emit) == null || i.call(r, "close", o), r.onCloseOnce && (r.onCloseOnce(r.props, o), r.onCloseOnce = void 0)), window.dispatchEvent(new Event("resize"));
|
|
321
|
+
}, N = () => {
|
|
322
|
+
h(document, ".dialog").filter((t) => m(t)).forEach((t) => {
|
|
323
|
+
const o = t.querySelector(".modal-body");
|
|
324
|
+
!o || m(o) || (T(t), t.classList.remove("me-tightly"), (t.clientHeight ?? 0) > window.innerHeight && t.classList.add("me-tightly"));
|
|
325
|
+
});
|
|
326
|
+
}, W = (e) => `${e}Wrapper`, v = (e) => e.closest(".dialog"), X = (e) => e.querySelector(".top-dialog-content"), Le = () => {
|
|
327
|
+
let e = document.body.querySelector(".top-dialog-overlay");
|
|
328
|
+
return e || (e = document.createElement("div"), e.classList.add("top-dialog-overlay"), document.body.appendChild(e)), e;
|
|
329
|
+
}, D = (e, t) => {
|
|
330
|
+
const o = Le(), a = document.createElement("dialog");
|
|
331
|
+
return a.setAttribute("id", W(e)), a.setAttribute("page-active", t), a.setAttribute("class", "dialog"), o.insertAdjacentElement("beforebegin", a), a;
|
|
332
|
+
}, Se = async (e, t) => {
|
|
333
|
+
const a = /(\w+)[=-]([\w-]+)(?::([\w.:-]+))?/g.exec(e);
|
|
334
|
+
if (a) {
|
|
335
|
+
const r = a[1], i = a[2], n = a[3];
|
|
336
|
+
let s = [];
|
|
337
|
+
n && (s = n.split(":")), await q(r, i, s, t);
|
|
338
|
+
}
|
|
339
|
+
}, q = async (e, t, o, a, r) => {
|
|
340
|
+
let i = null, n = null;
|
|
341
|
+
if (typeof e == "object" ? (_(e) && (e = e == null ? void 0 : e[0]), i = e, n = v(i)) : (i = document.getElementById(e), i && (n = document.getElementById(W(e)))), !i && typeof e == "string" && c.state.load) {
|
|
342
|
+
await c.state.load(e), await q(e, t, o, a, r);
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
i && (!n && i.dataset.vueDiaolg !== "true" && (i.classList.add("top-dialog", "top-dialog-content"), n = D(i.getAttribute("id"), i.dataset.viewPageActive), n.append(i)), n && (await U(i, t, o, a), n.__isInit || (n.__isInit = !0, Pe(i), _e(i), n.onclose = () => ke(i)), T(n), await Ee(i), r && r(n)));
|
|
346
|
+
}, U = async (e, t, o, a) => {
|
|
347
|
+
var g, u;
|
|
348
|
+
_(e) && (e = e == null ? void 0 : e[0]), t === void 0 && (t = e.dataset.viewPageActive), t !== e.dataset.viewPageActive && Y(e) && await pe(100), o === void 0 && (o = []), await L(e.getAttribute("id"), void 0, t);
|
|
349
|
+
const r = h(e, ".modal-layer"), i = r.reduce((d, f) => {
|
|
350
|
+
const p = f.querySelector(":scope > .active");
|
|
351
|
+
return p && d.push(p), d;
|
|
352
|
+
}, []), n = r.reduce((d, f) => {
|
|
353
|
+
const p = f.querySelector(`:scope > [data-view-page="${t}"]`);
|
|
354
|
+
return p && d.push(p), d;
|
|
355
|
+
}, []), s = o.join(":");
|
|
356
|
+
if (a === void 0 && (a = "next", (((g = n[0]) == null ? void 0 : g.dataset.order) ?? 0) < (((u = i[0]) == null ? void 0 : u.dataset.order) ?? 0) && (a = "prev")), !n.length) return;
|
|
357
|
+
const l = v(e);
|
|
358
|
+
if (e.dataset.viewPageActive = t, l.setAttribute("page-active", t), n[0].classList.contains("active")) {
|
|
359
|
+
n[0].dataset.viewPageArgs !== s && n.forEach((d) => {
|
|
360
|
+
d.dataset.viewPageArgs = s;
|
|
361
|
+
}), Q(e, n, t, o), C(e, n, t, o);
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
switch (n.forEach((d) => {
|
|
365
|
+
d.dataset.viewPageArgs = s;
|
|
366
|
+
}), i.forEach((d) => {
|
|
367
|
+
d.querySelector(".top-popup-wrapper") && ge.close(d.querySelector(".top-popup-wrapper"));
|
|
368
|
+
}), l && !m(l) && (a = "none"), i.length || (a = "none"), m(n[0]) && (a = "none"), a) {
|
|
369
|
+
case "prev": {
|
|
370
|
+
n.forEach((d) => {
|
|
371
|
+
var p, w;
|
|
372
|
+
const f = (p = d.parentNode) == null ? void 0 : p.querySelector(":scope > .active");
|
|
373
|
+
f && ((w = d.parentNode) == null || w.insertBefore(d, f));
|
|
374
|
+
}), i.forEach((d) => {
|
|
375
|
+
d.classList.add("right-to-center", "reverse");
|
|
376
|
+
}), n.forEach((d) => {
|
|
377
|
+
d.classList.add("center-to-left", "reverse");
|
|
378
|
+
});
|
|
379
|
+
break;
|
|
380
|
+
}
|
|
381
|
+
case "next": {
|
|
382
|
+
n.forEach((d) => {
|
|
383
|
+
var p, w;
|
|
384
|
+
const f = (p = d.parentNode) == null ? void 0 : p.querySelector(":scope > .active");
|
|
385
|
+
f && ((w = d.parentNode) == null || w.insertBefore(d, f.nextSibling));
|
|
386
|
+
}), i.forEach((d) => {
|
|
387
|
+
d == null || d.classList.add("center-to-left");
|
|
388
|
+
}), n.forEach((d) => {
|
|
389
|
+
d.classList.add("right-to-center");
|
|
390
|
+
});
|
|
391
|
+
break;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
if (e.setAttribute("view-page-active", t), i.forEach((d) => {
|
|
395
|
+
d.classList.remove("active");
|
|
396
|
+
}), n.forEach((d) => {
|
|
397
|
+
d.classList.add("active");
|
|
398
|
+
}), Q(e, n, t, o), a) {
|
|
399
|
+
e.classList.add("i-change-page");
|
|
400
|
+
const d = Number(window.getComputedStyle(n[0]).animationDuration.replace("s", "")) * 1e3;
|
|
401
|
+
G = setTimeout(() => {
|
|
402
|
+
_(e) && (e = e == null ? void 0 : e[0]), L(e.getAttribute("id"), t, ""), Y(e), C(e, n, t, o);
|
|
403
|
+
}, d);
|
|
404
|
+
} else
|
|
405
|
+
await L(e.getAttribute("id"), t, ""), C(e, n, t, o);
|
|
406
|
+
}, Ve = (e) => {
|
|
407
|
+
var i;
|
|
408
|
+
const r = (i = h(e, ".modal-layer").reduce((n, s) => {
|
|
409
|
+
const l = s.querySelector(":scope > .active");
|
|
410
|
+
return l && n.push(l), n;
|
|
411
|
+
}, []).reduce((n, s) => {
|
|
412
|
+
let l = s.previousElementSibling;
|
|
413
|
+
for (; l && !l.hasAttribute("[data-view-page]"); )
|
|
414
|
+
l = l.previousElementSibling;
|
|
415
|
+
return l && n.push(l), n;
|
|
416
|
+
}, [])[0]) == null ? void 0 : i.dataset.viewPage;
|
|
417
|
+
r ? U(e, r, void 0, "prev") : v(e).close();
|
|
418
|
+
}, z = /* @__PURE__ */ new Set(), Q = (e, t, o, a) => {
|
|
419
|
+
const r = e.getAttribute("id") + t[0].dataset.viewPage + o + a.join();
|
|
420
|
+
z.has(r) || (z.add(r), setTimeout(() => {
|
|
421
|
+
z.delete(r), $(e).trigger("viewBeforeOpen", [e, $(t), o, a]);
|
|
422
|
+
}));
|
|
423
|
+
}, C = (e, t, o, a) => {
|
|
424
|
+
setTimeout(() => {
|
|
425
|
+
$(e).trigger("viewAfterOpen", [e, $(t), o, a]);
|
|
426
|
+
});
|
|
427
|
+
}, ee = (e) => (_(e) && (e = e == null ? void 0 : e[0]), e.classList.contains("i-change-page")), Y = (e) => {
|
|
428
|
+
if (!ee(e)) return !1;
|
|
429
|
+
clearTimeout(G);
|
|
430
|
+
const t = h(e, ".modal-layer"), o = e.dataset.viewPageActive;
|
|
431
|
+
return e.classList.remove("i-change-page"), t.forEach((a) => {
|
|
432
|
+
a.querySelectorAll(":scope > [data-view-page]").forEach((r) => {
|
|
433
|
+
r.classList.remove("center-to-left", "right-to-center", "reverse", "active");
|
|
434
|
+
});
|
|
435
|
+
}), t.forEach((a) => {
|
|
436
|
+
var r;
|
|
437
|
+
(r = a.querySelector(`:scope > [data-view-page="${o}"]`)) == null || r.classList.add("active");
|
|
438
|
+
}), !0;
|
|
439
|
+
}, Me = (e) => {
|
|
440
|
+
const t = H(e);
|
|
441
|
+
if (!t) return;
|
|
442
|
+
v(t).close();
|
|
443
|
+
}, ze = (e, t, o) => {
|
|
444
|
+
_(e) && (e = e.toArray());
|
|
445
|
+
const a = e.reduce((r, i) => (i.hasAttribute("[data-view-page]") && m(i) && r.push(i), r), []);
|
|
446
|
+
t ? (o !== void 0 && a.forEach((r) => {
|
|
447
|
+
r.style.setProperty("--dialog-loading-duration", o + "s");
|
|
448
|
+
}), a.forEach((r) => {
|
|
449
|
+
r.classList.add("i-load-data");
|
|
450
|
+
})) : (a.forEach((r) => {
|
|
451
|
+
r.classList.remove("i-load-data");
|
|
452
|
+
}), a.forEach((r) => {
|
|
453
|
+
r.style.setProperty("--dialog-loading-duration", "10s");
|
|
454
|
+
}));
|
|
455
|
+
}, Ce = (e) => (_(e) && (e = e == null ? void 0 : e[0]), e.classList.contains("i-load-data")), A = {
|
|
456
|
+
getElDialogById: H,
|
|
457
|
+
updatePageVue: L,
|
|
458
|
+
recalcPositions: N,
|
|
459
|
+
toViewDirty: Se,
|
|
460
|
+
toView: q,
|
|
461
|
+
toViewPage: U,
|
|
462
|
+
toPrevPage: Ve,
|
|
463
|
+
setLoading: ze,
|
|
464
|
+
isLoading: Ce,
|
|
465
|
+
inAnimation: ee,
|
|
466
|
+
close: Me
|
|
467
|
+
};
|
|
468
|
+
fe();
|
|
469
|
+
const Te = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
470
|
+
__proto__: null,
|
|
471
|
+
TopDialogUtils: A,
|
|
472
|
+
createAndMountElDialogWrapper: D,
|
|
473
|
+
getDialogWrapperId: W,
|
|
474
|
+
getElDialog: X,
|
|
475
|
+
getElDialogWrapper: v
|
|
476
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
477
|
+
class $e {
|
|
478
|
+
/**
|
|
479
|
+
* Индентификатор, определяется на уровне компонента TopDialogComponent
|
|
480
|
+
*
|
|
481
|
+
* Может использоваться в навигации для открытия нужных окон с нужными настройками
|
|
482
|
+
*/
|
|
483
|
+
id;
|
|
484
|
+
/**
|
|
485
|
+
* ID, используемый в верстке диалогового окна
|
|
486
|
+
*/
|
|
487
|
+
idAttr;
|
|
488
|
+
/**
|
|
489
|
+
* Пользовательский компонент диалогового окна
|
|
490
|
+
*/
|
|
491
|
+
Component;
|
|
492
|
+
/**
|
|
493
|
+
* Компонент инициирован
|
|
494
|
+
*
|
|
495
|
+
* Устанавливается после первого вызова useTopDialog()
|
|
496
|
+
*/
|
|
497
|
+
isMounted = x(!1);
|
|
498
|
+
/**
|
|
499
|
+
* Компонент готов к использованию
|
|
500
|
+
*
|
|
501
|
+
* Используется для внутренних преобразований после отрисовки
|
|
502
|
+
*/
|
|
503
|
+
isReady = x(!1);
|
|
504
|
+
/**
|
|
505
|
+
* Диалоговое окно открыто
|
|
506
|
+
*/
|
|
507
|
+
isOpened = x(!1);
|
|
508
|
+
/**
|
|
509
|
+
* Имя активной страницы дилогового окна
|
|
510
|
+
*/
|
|
511
|
+
pageActive = x("");
|
|
512
|
+
/**
|
|
513
|
+
* Диалоговое окно находится в состоянии загрузки своей страницы
|
|
514
|
+
*/
|
|
515
|
+
isLoadingPage = x(!1);
|
|
516
|
+
/**
|
|
517
|
+
* Следующая активная страница
|
|
518
|
+
*
|
|
519
|
+
* В один момент времени может потребоваться отобразить две страницы, чтобы воспроизвести анимацию
|
|
520
|
+
*/
|
|
521
|
+
pageActiveNext = x("");
|
|
522
|
+
/**
|
|
523
|
+
* props компонента, доступны после инициализации
|
|
524
|
+
*/
|
|
525
|
+
props;
|
|
526
|
+
/**
|
|
527
|
+
* emit базового компонента `TopDialog`
|
|
528
|
+
*/
|
|
529
|
+
emit;
|
|
530
|
+
/**
|
|
531
|
+
* Одноразовое событие на закрытие диалогового окна
|
|
532
|
+
*
|
|
533
|
+
* Используется для привязки окна к сценариям использования
|
|
534
|
+
*/
|
|
535
|
+
onCloseOnce;
|
|
536
|
+
constructor(t) {
|
|
537
|
+
this.id = t.id, this.idAttr = "dialog_" + t.id, this.Component = oe(t);
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Событие - компонент инициирован
|
|
541
|
+
*/
|
|
542
|
+
onMounted(t, o) {
|
|
543
|
+
this.isMounted.value = !0, this.props = t.props, this.emit = o.emit;
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* Открыть диалоговое окно
|
|
547
|
+
*
|
|
548
|
+
* Учтите, что props в диалоговом окне будут доступны не сразу, а только после инициализации vue компонента
|
|
549
|
+
*/
|
|
550
|
+
async open(t = "main", o, a = [], r, i) {
|
|
551
|
+
o && await this.setProps(o), r && (this.onCloseOnce = r), await (await c.getDialogsUtils()).toView(this.idAttr, t, a, i);
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Открыть диалоговое окно как ссылку, для хеш-навигации
|
|
555
|
+
*
|
|
556
|
+
* Диалоговые окна загружаются по имени, см. настройку плагина Core topDialogLoader
|
|
557
|
+
*/
|
|
558
|
+
async openAsLink(t = "main", o, a = [], r, i) {
|
|
559
|
+
o && await this.setProps(o), r && (this.onCloseOnce = r);
|
|
560
|
+
const n = this.idAttr + "-" + t, s = c.genViewPageHash(n, i);
|
|
561
|
+
S(!1, s);
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Закрыть диалоговое окно
|
|
565
|
+
*
|
|
566
|
+
* Не меняет состояние компонента диалогового окна
|
|
567
|
+
*/
|
|
568
|
+
async close() {
|
|
569
|
+
c.close(this.idAttr);
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Размонтировать $.dialog
|
|
573
|
+
*/
|
|
574
|
+
async destroy() {
|
|
575
|
+
c.destroy(this.idAttr);
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Устанвоить props
|
|
579
|
+
*
|
|
580
|
+
* Полностью сбрасывается состояние props
|
|
581
|
+
*/
|
|
582
|
+
async setProps(t = {}) {
|
|
583
|
+
this.isMounted || await Z(() => !this.props);
|
|
584
|
+
for (const o in this.props)
|
|
585
|
+
this.props[o] = t[o];
|
|
586
|
+
}
|
|
587
|
+
/**
|
|
588
|
+
* Проверить, есть ли необходимость отрисовки страницы диалогового окна
|
|
589
|
+
*/
|
|
590
|
+
needShowPage(t) {
|
|
591
|
+
return this.isOpened.value ? this.pageActive.value === t || this.pageActiveNext.value === t : !1;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
const He = {
|
|
595
|
+
class: "top-dialogs",
|
|
596
|
+
style: { display: "none" }
|
|
597
|
+
}, y = ae(/* @__PURE__ */ new Map()), B = (e) => (e = e.replace(/^dialog_/, ""), y.get(e)), Fe = (e) => {
|
|
598
|
+
if (!(e != null && e.id))
|
|
599
|
+
throw console.log({ TopDialogComponent: e }), new Error("Expected TopDialogComponent");
|
|
600
|
+
return y.has(e.id) || y.set(e.id, new $e(e)), y.get(e.id);
|
|
601
|
+
}, Re = /* @__PURE__ */ ie({
|
|
602
|
+
name: "DialogWrapper",
|
|
603
|
+
__name: "dialogs",
|
|
604
|
+
setup(e) {
|
|
605
|
+
return re(() => {
|
|
606
|
+
y.forEach((t) => t.destroy()), y.clear();
|
|
607
|
+
}), (t, o) => (M(), F("div", He, [
|
|
608
|
+
(M(!0), F(ne, null, de(se(y), ([a, r]) => (M(), le(ce(r.Component), { key: a }))), 128))
|
|
609
|
+
]));
|
|
610
|
+
}
|
|
611
|
+
});
|
|
612
|
+
export {
|
|
613
|
+
c as T,
|
|
614
|
+
Re as _,
|
|
615
|
+
Fe as a,
|
|
616
|
+
D as c,
|
|
617
|
+
B as g
|
|
618
|
+
};
|
|
619
|
+
//# sourceMappingURL=dialogs.vue_vue_type_script_setup_true_lang-6huAKJt_.es.js.map
|