@topvisor/ui 0.0.16 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/.chunks/core-96a4bfb4.amd.js +2 -0
  2. package/.chunks/core-96a4bfb4.amd.js.map +1 -0
  3. package/.chunks/{core-c3afa109.es.js → core-fd9de702.es.js} +44 -44
  4. package/.chunks/core-fd9de702.es.js.map +1 -0
  5. package/.chunks/forms-1dc7c6f3.amd.js +3 -0
  6. package/.chunks/forms-1dc7c6f3.amd.js.map +1 -0
  7. package/.chunks/forms-3575c189.es.js +461 -0
  8. package/.chunks/forms-3575c189.es.js.map +1 -0
  9. package/.chunks/popup-b891abb1.amd.js +342 -0
  10. package/.chunks/popup-b891abb1.amd.js.map +1 -0
  11. package/.chunks/popup-dd9546aa.es.js +702 -0
  12. package/.chunks/popup-dd9546aa.es.js.map +1 -0
  13. package/README.md +62 -62
  14. package/common/common.amd.js +1 -1
  15. package/common/common.js +1 -17
  16. package/common/common.js.map +1 -1
  17. package/core/core.amd.js +1 -1
  18. package/core/core.js +1 -1
  19. package/core.css +1 -1
  20. package/editArea/editArea.amd.js +2 -2
  21. package/editArea/editArea.amd.js.map +1 -1
  22. package/editArea/editArea.js +16 -16
  23. package/editArea/editArea.js.map +1 -1
  24. package/editArea.css +1 -1
  25. package/forms/forms.amd.js +1 -1
  26. package/forms/forms.js +1 -1
  27. package/forms/helpers.amd.js +1 -1
  28. package/forms/helpers.amd.js.map +1 -1
  29. package/forms/helpers.js +6 -3
  30. package/forms/helpers.js.map +1 -1
  31. package/forms.css +1 -1
  32. package/icomoon/demo-files/demo.css +161 -161
  33. package/icomoon/demo-files/demo.js +30 -30
  34. package/icomoon/demo.html +2945 -2931
  35. package/icomoon/fonts/Topvisor-2.svg +232 -231
  36. package/icomoon/fonts/Topvisor-2.ttf +0 -0
  37. package/icomoon/fonts/Topvisor-2.woff +0 -0
  38. package/icomoon/selection.json +1 -1
  39. package/icomoon/style.css +647 -644
  40. package/package.json +19 -19
  41. package/popup/popup.amd.js +2 -2
  42. package/popup/popup.amd.js.map +1 -1
  43. package/popup/popup.js +67 -68
  44. package/popup/popup.js.map +1 -1
  45. package/popup/worker.amd.js +1 -1
  46. package/popup/worker.amd.js.map +1 -1
  47. package/popup/worker.js +18 -21
  48. package/popup/worker.js.map +1 -1
  49. package/tabs/tabs.amd.js +3 -0
  50. package/tabs/tabs.amd.js.map +1 -0
  51. package/tabs/tabs.js +97 -0
  52. package/tabs/tabs.js.map +1 -0
  53. package/tabs.css +1 -0
  54. package/utils/device.amd.js.map +1 -1
  55. package/utils/device.js.map +1 -1
  56. package/utils/dom.amd.js.map +1 -1
  57. package/utils/dom.js.map +1 -1
  58. package/.chunks/core-97b070be.amd.js +0 -2
  59. package/.chunks/core-97b070be.amd.js.map +0 -1
  60. package/.chunks/core-c3afa109.es.js.map +0 -1
  61. package/.chunks/forms-6a6b0b80.es.js +0 -436
  62. package/.chunks/forms-6a6b0b80.es.js.map +0 -1
  63. package/.chunks/forms-7119886a.amd.js +0 -3
  64. package/.chunks/forms-7119886a.amd.js.map +0 -1
  65. package/.chunks/popup-6d1d8097.amd.js +0 -342
  66. package/.chunks/popup-6d1d8097.amd.js.map +0 -1
  67. package/.chunks/popup-95d27020.es.js +0 -720
  68. package/.chunks/popup-95d27020.es.js.map +0 -1
  69. package/icomoon/demo-files/Read Me.txt +0 -7
@@ -0,0 +1,702 @@
1
+ import { C as f } from "./core-fd9de702.es.js";
2
+ import r from "../utils/dom.js";
3
+ import n from "../popup/worker.js";
4
+ import "vue";
5
+ import "../utils/device.js";
6
+ class m {
7
+ static componentName = "Top";
8
+ componentName;
9
+ // имя класса компонента
10
+ className;
11
+ // имя css класса компонента
12
+ uid;
13
+ // уникальный id компонента
14
+ el;
15
+ // элемент, связанный с компонентом
16
+ options = {};
17
+ // параметры компонента
18
+ unmountEls = [];
19
+ unmountEvents = [];
20
+ // переопредлять нельзя
21
+ // если компонент инициирован, необходимо сразу его вернуть и выполнить reInit() вместо mount()
22
+ // используется init вместо constructor, так как super constructor выполняется до Object.defineProperty() параметров класса
23
+ init(t, p, o) {
24
+ if (!p)
25
+ throw t + ": el is undefined";
26
+ const e = m.getComponent(p, t);
27
+ if (e)
28
+ return e.reInit(o), e;
29
+ this.componentName = t, this.className = "top" + t[0].toUpperCase() + t.substring(1), this.uid = this.componentName + (Math.random() + "").replace(".", ""), this._setComponent(p), this.el = p, this.el.classList.add(this.className), this.options = Object.assign(this.options, o), this.mount();
30
+ }
31
+ // получить инициированный компонент
32
+ static getComponent(t, p) {
33
+ return r.storage(t, "#" + p);
34
+ }
35
+ // устанвоить компонент
36
+ _setComponent(t) {
37
+ r.storage(t, "#" + this.componentName, this);
38
+ }
39
+ // функция подключения компонента
40
+ mount() {
41
+ throw "Please, add method mount() to component: " + this.componentName;
42
+ }
43
+ // функция отключения компонента
44
+ unmount() {
45
+ r.storage(this.el, "#" + this.componentName, null), this.unmountEls.forEach((t) => {
46
+ t.remove();
47
+ }), this.unmountEls = [], this.unmountEvents.forEach((t) => {
48
+ t.el.removeEventListener(t.type, t.listener, t.options);
49
+ }), this.unmountEvents = [];
50
+ }
51
+ // указание новые элементы, которые должны будут удалиться после unmount
52
+ registerElForUnmount(t) {
53
+ this.unmountEls.push(t);
54
+ }
55
+ // указание новые события, которые должны будут удалиться после unmount
56
+ addEventListenerWithUnmount(t, p, o, e) {
57
+ t.addEventListener(p, o, e), this.registerEventForUnmount(t, p, o, e);
58
+ }
59
+ // указание новые события, которые должны будут удалиться после unmount
60
+ registerEventForUnmount(t, p, o, e) {
61
+ const i = {
62
+ el: t,
63
+ type: p,
64
+ listener: o,
65
+ options: e
66
+ };
67
+ this.unmountEvents.push(i);
68
+ }
69
+ // функция перенастройки уже подключенного компонента
70
+ reInit(t) {
71
+ throw "Please, add method reInit() to component: " + this.componentName;
72
+ }
73
+ // удалить элементы из DOM, но не из памяти
74
+ static detach(t) {
75
+ var p;
76
+ if (t.forEach)
77
+ t.forEach((o) => {
78
+ var e;
79
+ return (e = o.parentElement) == null ? void 0 : e.removeChild(o);
80
+ });
81
+ else {
82
+ const o = t;
83
+ (p = o.parentElement) == null || p.removeChild(o);
84
+ }
85
+ }
86
+ }
87
+ class b {
88
+ static init() {
89
+ document.addEventListener("click", this.onclick), document.addEventListener("keydown", this.onkeydown);
90
+ }
91
+ /**
92
+ * Глобальный обработчик кликов
93
+ * обрабатывает клики внутри Popup
94
+ * @param {Event} e
95
+ */
96
+ static onclick(t) {
97
+ var o;
98
+ const p = t.target.closest(".closer, a, .a, .top-button");
99
+ if (p) {
100
+ const e = t.target.closest(".top-popup-wrapper");
101
+ if (!e || p.matches(".top-popup-noCloser"))
102
+ return;
103
+ if (p.getAttribute("href") === "." && t.preventDefault(), t.target.matches("[data-top-popup]")) {
104
+ const i = t.target.closest("ul"), l = t.target.closest("a, .a");
105
+ i && ((o = i.querySelector("a.top-active, .a.top-active")) == null || o.classList.remove("top-active")), l && l.classList.add("top-active");
106
+ return;
107
+ }
108
+ n.close(e);
109
+ }
110
+ if (t.target.matches(".top-popup-wrapper")) {
111
+ const e = t.target;
112
+ n.close(e);
113
+ }
114
+ }
115
+ /**
116
+ * Глобальный обработчик нажатия кнопки на клавиатуре
117
+ * @param {Event} e
118
+ */
119
+ static onkeydown(t) {
120
+ var e;
121
+ const p = t.target.closest(".top-popup-wrapper");
122
+ if (!p)
123
+ return;
124
+ const o = p.querySelector("ul.top-popup_content");
125
+ switch (t.key) {
126
+ case "Escape":
127
+ break;
128
+ case "Enter":
129
+ if (!o) {
130
+ if (r.querySelectorVisible(p, ".preloader"))
131
+ break;
132
+ const u = p.querySelector(".top-popup_footer .go, .top-popup_footer [data-action]");
133
+ u && u.click();
134
+ break;
135
+ }
136
+ const i = r.querySelectorVisible(p, "li > a.top-active");
137
+ i && (t.preventDefault(), location.href = i.getAttribute("href"));
138
+ const l = p.querySelector("li > .top-active");
139
+ l && l.click();
140
+ break;
141
+ case "ArrowUp":
142
+ case "ArrowRight":
143
+ case "ArrowDown":
144
+ case "ArrowLeft":
145
+ if (!o)
146
+ break;
147
+ t.key === "ArrowRight" || t.key === "ArrowLeft" ? r.querySelectorVisible(p, "ul.top-popup_content > li:not(.top-popup_listTitle):not(.top-popup_listDelimiter) > .top-active > .top-popup_listMore") && t.preventDefault() : t.preventDefault();
148
+ const h = (e = p.querySelector("ul.top-popup_content > li:not(.top-popup_listTitle):not(.top-popup_listDelimiter) > .top-active")) == null ? void 0 : e.parentElement;
149
+ if (t.key === "ArrowRight" && h) {
150
+ const u = h.querySelector(".top-active > .top-popup_listMore");
151
+ if (u)
152
+ return u.click();
153
+ }
154
+ const a = r.querySelectorAllVisible(p, "ul.top-popup_content > li:not(.top-popup_listTitle):not(.top-popup_listDelimiter)"), c = a.length;
155
+ let s = a.indexOf(h);
156
+ if (t.key === "ArrowUp" || t.key === "ArrowLeft" ? s-- : s++, t.key === "ArrowLeft" && s === -1)
157
+ return t.target.matches("input") ? void 0 : n.close(p);
158
+ if (t.key === "ArrowRight" && s === c)
159
+ return;
160
+ s < 0 && (s = c - 1), s > c - 1 && (s = 0), p.querySelectorAll("ul.top-popup_content > li > .top-active").forEach((u) => u.classList.remove("top-active")), a[s].querySelector(":scope > a, :scope > .a").classList.add("top-active"), n.scrollToActive(p);
161
+ break;
162
+ }
163
+ }
164
+ }
165
+ const x = `:root{\r
166
+ --top-popup-background-color-hover: var(--color-steel-150);\r
167
+ --top-popup-background-color-active: var(--color-steel-200);\r
168
+ --top-popup-border-color: var(--color-theme-100);\r
169
+ --top-popup-title-background-color: var(--color-steel-100);\r
170
+ }\r
171
+ \r
172
+ .top-theme-dark{\r
173
+ --top-popup-background-color-hover: var(--color-gray-800);\r
174
+ --top-popup-background-color-active: var(--color-gray-750);\r
175
+ --top-popup-title-background-color: var(--color-gray-900);\r
176
+ }\r
177
+ \r
178
+ .top-popup-front{ position: relative; }\r
179
+ \r
180
+ .top-popup-wrapper{\r
181
+ --top-popup-background-color: var(--color-bg-3);\r
182
+ \r
183
+ --top-popup-padding-h: 8px;\r
184
+ --top-popup-padding-v: 8px;\r
185
+ \r
186
+ /* см. recalcPosition() */\r
187
+ --top-popup-height: 0px;\r
188
+ --top-popup-right-bounding: 0px;\r
189
+ --top-popup-bottom-bounding: 0px;\r
190
+ --top-popup-top: 0px;\r
191
+ --top-popup-right: calc(100vw - var(--top-popup-right-bounding));\r
192
+ --top-popup-bottom: calc(var(--100vh) - var(--top-popup-bottom-bounding));\r
193
+ --top-popup-left: 0px;\r
194
+ \r
195
+ text-align: initial; white-space: normal; word-break: normal;\r
196
+ position: absolute; z-index: 200000;\r
197
+ }\r
198
+ .top-popup-wrapper:not(.top-popup-wrapper-shown){ overflow: hidden; }\r
199
+ \r
200
+ /* top-popupPanel */\r
201
+ .top-popupPanel {\r
202
+ cursor: default;\r
203
+ box-shadow: var(--top-shadow-b);\r
204
+ border-radius: 8px;\r
205
+ background: var(--top-popup-background-color);\r
206
+ position: absolute; overflow: hidden;\r
207
+ display: flex; flex-direction: column;\r
208
+ }\r
209
+ \r
210
+ /* position */\r
211
+ .top-popup-wrapper > *{ opacity: 0; transition: opacity 100ms linear, transform 100ms linear; }\r
212
+ .top-popup-wrapper.p0 > *{ transform: translateY(-8px); }\r
213
+ .top-popup-wrapper.p1 > *{ transform: translateY(8px); }\r
214
+ .top-popup-wrapper.p2 > *{ transform: translateX(8px); }\r
215
+ .top-popup-wrapper.p3 > *{ transform: translateY(8px); }\r
216
+ .top-popup-wrapper.p4 > *{ transform: translateX(-8px); }\r
217
+ .top-popup-wrapper-shown:not(.top-popup-wrapper-closed) > *{opacity: 1;transform: translate(0, 0) !important;}\r
218
+ \r
219
+ .top-popup-wrapper.p0 > .top-popup{ top: calc(-16px); left: calc(0px - var(--top-popup-padding-h)); }\r
220
+ .top-popup-wrapper.p1 > .top-popup{ bottom: calc(100% + 8px); }\r
221
+ .top-popup-wrapper.p2 > .top-popup{ left: calc(100% + 8px); }\r
222
+ .top-popup-wrapper.p3 > .top-popup{ top: calc(100% + 8px); }\r
223
+ .top-popup-wrapper.p4 > .top-popup{ right: calc(100% + 8px); }\r
224
+ .top-popup-wrapper.p2 > .top-popup,\r
225
+ .top-popup-wrapper.p4 > .top-popup{ margin-top: -10px; }\r
226
+ \r
227
+ .top-popup-wrapper.p1.with_notch > .top-popup{ margin-bottom: 5px; }\r
228
+ .top-popup-wrapper.p2.with_notch > .top-popup{ margin-left: 5px; }\r
229
+ .top-popup-wrapper.p3.with_notch > .top-popup{ margin-top: 5px; }\r
230
+ .top-popup-wrapper.p4.with_notch > .top-popup{ margin-right: 5px; }\r
231
+ \r
232
+ .top-popup-wrapper.invert-x > .top-popup{ right: 0; }\r
233
+ .top-popup-wrapper.invert-y > .top-popup{ bottom: 0; }\r
234
+ \r
235
+ /* notch */\r
236
+ .top-popup-wrapper > .notch{ border: 7.4px solid transparent; position: absolute; display: block; }\r
237
+ \r
238
+ .top-popup-wrapper.p1 > .notch{ border-bottom: 0; border-top: 7.4px solid var(--content-background-color); margin: 0 0 7.4px -7.4px; bottom: 100%; left: 50% }\r
239
+ .top-popup-wrapper.p2 > .notch{ border-left: 0; border-right: 7.4px solid var(--content-background-color); margin: 0 0 -7.4px 7.4px; bottom: 50%; left: 100%; }\r
240
+ .top-popup-wrapper.p3 > .notch{ border-top: 0; border-bottom: 7.4px solid var(--content-background-color); margin: 7.4px 0 0 -7.4px; top: 100%; left: 50%; }\r
241
+ .top-popup-wrapper.p4 > .notch{ border-right: 0; border-left: 7.4px solid var(--content-background-color); margin: 0 7.4px -7.4px 0; bottom: 50%; right: 100%; }\r
242
+ \r
243
+ .top-popup-wrapper.p1 > .notch-border{ border-top-color: rgba(0,0,0,0.05); margin-bottom: 6px; }\r
244
+ .top-popup-wrapper.p2 > .notch-border{ border-right-color: rgba(0,0,0,0.05); margin-left: 6px; }\r
245
+ .top-popup-wrapper.p3 > .notch-border{ border-bottom-color: rgba(0,0,0,0.05); margin-top: 6px; }\r
246
+ .top-popup-wrapper.p4 > .notch-border{ border-left-color: rgba(0,0,0,0.05); margin-right: 6px; }\r
247
+ \r
248
+ /* common */\r
249
+ .top-popup_header,\r
250
+ .top-popup_content,\r
251
+ .top-popup_footer{ padding: var(--top-popup-padding-h) var(--top-popup-padding-h); font-size: 14px; }\r
252
+ .top-popup_header,\r
253
+ .top-popup_footer{ display: flex; align-items: center; justify-content: space-between; }\r
254
+ \r
255
+ /* header */\r
256
+ .top-popup_header{ border-bottom: 1px solid var(--top-popup-border-color); font-weight: 600; }\r
257
+ .top-popup_header > *{ font-weight: 400; }\r
258
+ .top-popup_header > .a{ cursor: pointer; color: var(--color-blue-450); }\r
259
+ .top-popup_header > .a:hover{ color: var(--color-blue-350); }\r
260
+ \r
261
+ .top-popup-headerButton{ width: 60px; }\r
262
+ \r
263
+ /* content */\r
264
+ .top-popup .top-popup_content{\r
265
+ /* has_scroll */\r
266
+ --scroll-padding-top: var(--top-popup-padding-v);\r
267
+ --scroll-padding-bottom: var(--top-popup-padding-v);\r
268
+ \r
269
+ padding-top: var(--top-popup-padding-v); padding-bottom: var(--top-popup-padding-v); margin: 0; line-height:1.3 !important;\r
270
+ flex-grow: 1; overflow-y: auto;\r
271
+ -webkit-overflow-scrolling: touch;\r
272
+ }\r
273
+ \r
274
+ .top-popup .top-popup_content .top-unwrap{\r
275
+ --top-unwrap-x: var(--top-popup-padding-h);\r
276
+ }\r
277
+ \r
278
+ .top-popup div.top-popup_content{ display: flex; flex-direction: column; gap: 4px; }\r
279
+ .top-popup div.top-popup_content > *{ flex-shrink: 0; }\r
280
+ .top-popup div.top-popup_content > .top-button{ margin: 0; }\r
281
+ \r
282
+ .top-popup ul.top-popup_content{\r
283
+ --scroll-padding-top: 4px;\r
284
+ --scroll-padding-bottom: var(--scroll-padding-top);\r
285
+ \r
286
+ padding: var(--scroll-padding-top) 0;\r
287
+ }\r
288
+ \r
289
+ ul.top-popup_content li{ margin: 0; list-style:none; display: flex; position: relative }\r
290
+ ul.top-popup_content li > *{ flex-grow: 1; }\r
291
+ ul.top-popup_content li > a:not(.top-button),\r
292
+ ul.top-popup_content li > i.a{\r
293
+ cursor: pointer;\r
294
+ box-sizing: border-box;\r
295
+ background: var(--top-popup-background-color); padding:var(--top-popup-padding-v) var(--top-popup-padding-h);\r
296
+ color:var(--color-text) !important; font-size: 14px; font-weight: normal !important; text-decoration:none !important; font-style: normal;\r
297
+ display:flex; flex: 1 1 100%; align-items: center;\r
298
+ transition: background-color 0.1s ease-in-out;\r
299
+ }\r
300
+ .top-popup-wrapper-no_animate ul.top-popup_content li > a:not(.top-button),\r
301
+ .top-popup-wrapper-no_animate ul.top-popup_content li > i.a{ transition: none; }\r
302
+ \r
303
+ ul.top-popup_content li > a:not(.top-button):hover,\r
304
+ ul.top-popup_content li > i.a:hover{ background: var(--top-popup-background-color-hover); }\r
305
+ ul.top-popup_content li > a:not(.top-button).top-active,\r
306
+ ul.top-popup_content li > i.a.top-active{ background: var(--top-popup-background-color-active); }\r
307
+ \r
308
+ /* listTitle */\r
309
+ li.top-popup_listTitle{\r
310
+ background: var(--top-popup-title-background-color); padding: var(--top-popup-padding-v) var(--top-popup-padding-h);\r
311
+ color: var(--color-text-3); font-size: 12px; font-weight: 400;\r
312
+ }\r
313
+ li.top-popup_listTitle:first-child{\r
314
+ padding-top: calc(var(--top-popup-padding-v) + var(--scroll-padding-top));\r
315
+ margin-top: calc(0px - var(--scroll-padding-top));\r
316
+ }\r
317
+ \r
318
+ /* listDelimiter */\r
319
+ ul.top-popup_content li.top-popup_listDelimiter{\r
320
+ border-radius: 3px;\r
321
+ background: var(--top-popup-border-color);\r
322
+ height: 2px;\r
323
+ margin: calc(var(--top-popup-padding-h) / 2) var(--top-popup-padding-h);\r
324
+ }\r
325
+ \r
326
+ /* listMore */\r
327
+ ul.top-popup_content li > i.a.top-popup_listMore{\r
328
+ height: auto; padding-right: 4px; padding-left: 4px;\r
329
+ font-size: 24px; line-height: 17px; text-align: center;\r
330
+ flex-basis: 10px;\r
331
+ }\r
332
+ ul.top-popup_content li > i.a.top-popup_listMore:before{ color: var(--color-gray-500); }\r
333
+ ul.top-popup_content li > * > i.top-popup_listMore{\r
334
+ padding: 0 var(--top-popup-padding-h); margin: 0 0 0 auto;\r
335
+ color: var(--color-gray-500);\r
336
+ font-size: 14px;\r
337
+ }\r
338
+ ul.top-popup_content li > * > i.top-popup_listMore:hover,\r
339
+ ul.top-popup_content li > * > i.top-popup_listMore.top-active{ color: var(--color-blue-500); }\r
340
+ ul.top-popup_content li > * > i.top-popup_listMore:before{ transform: rotate(90deg); }\r
341
+ \r
342
+ ul.top-popup_content li a.close{ background: none !important; }\r
343
+ \r
344
+ /* data-top-icon */\r
345
+ .top-popup_content > [data-top-icon]:before{ --top-icon-size: 20px; }\r
346
+ \r
347
+ ul.top-popup_content li > [data-top-icon]:not(.top-button):before{\r
348
+ --top-icon-color: var(--color-text-3);\r
349
+ --top-icon-size: 20px;\r
350
+ --top-icon-width: 20px;\r
351
+ \r
352
+ height: 1rem; margin-right: 8px; transition: color 0.1s;\r
353
+ }\r
354
+ ul.top-popup_content li:hover > [data-top-icon]:not(.top-button):before,\r
355
+ ul.top-popup_content li > [data-top-icon]:not(.top-button).top-active:before{\r
356
+ --top-icon-color: #378DC6;\r
357
+ }\r
358
+ \r
359
+ /* footer */\r
360
+ .top-popup_footer{\r
361
+ padding: var(--top-popup-padding-h) var(--top-popup-padding-h); display: flex; gap:8px; justify-content: flex-end;\r
362
+ }\r
363
+ .top-popup_footer > .top-button{ margin: 0; }\r
364
+ \r
365
+ /* Виджеты */\r
366
+ .top-popup > [data-widget]{ padding: 0 var(--top-popup-padding-h); }\r
367
+ .top-popup > [data-widget] + hr{ margin: 0 var(--top-popup-padding-h); }\r
368
+ \r
369
+ .top-popup .placeholder{\r
370
+ border:1px solid #E0D9D9 !important; border-right: none !important; border-left: none !important; background:#F9F9F9 !important; margin: -1px 0; z-index: 1;\r
371
+ position: relative;\r
372
+ }\r
373
+ \r
374
+ /* компоненты */\r
375
+ .top-popup-wrapper.simple_list > .top-popup{ min-width: 0; white-space: nowrap; }\r
376
+ \r
377
+ .top-popup_content .top-column{ display: flex; flex-direction: column; gap: 4px; }\r
378
+ .top-popup_content li > :not(a):not(.a){ margin:0 var(--top-popup-padding-h); }\r
379
+ html .top-popup .top-popup_content li > .top-button{ margin:calc(var(--top-popup-padding-v) / 2) var(--top-popup-padding-h); }\r
380
+ \r
381
+ .top-popup li .check_all,\r
382
+ .top-popup li .clear_all{ cursor: pointer; color: var(--color-cyan); padding: 8px; display: inline-block; }\r
383
+ .top-popup li .check_all:hover,\r
384
+ .top-popup li .clear_all:hover{ text-decoration: underline; }\r
385
+ .top-popup li .clear_all{ display: none; }\r
386
+ \r
387
+ /* table */\r
388
+ .top-popup_content table{ margin: -9px 0; }\r
389
+ .top-popup_content table td,\r
390
+ .top-popup_content table th{ padding: 9px var(--top-popup-padding-h) 9px 0; vertical-align: top; }\r
391
+ .top-popup_content table th{ width: 40%; font-weight: 600; white-space: nowrap; }\r
392
+ \r
393
+ /* формы */\r
394
+ ul.top-popup_content .a > [type="checkbox"],\r
395
+ ul.top-popup_content .a > [type="radio"]{ margin: -8px 0 -8px auto; }\r
396
+ \r
397
+ /* deprecated */\r
398
+ ul.top-popup_content a > [class*=icon],\r
399
+ ul.top-popup_content i.a > [class*=icon]{\r
400
+ margin-right: 14px; text-align: center;\r
401
+ width: auto; height: 16px; font-size: 16px; vertical-align: top;\r
402
+ transition: 0.1s;\r
403
+ }\r
404
+ \r
405
+ .top-popup .buttons{ border-radius:0 0 4px 4px; border-top:1px solid #BDC3C7; background:#ECF0F1; padding:10px 15px; margin:10px -15px -10px -15px; white-space: nowrap; }\r
406
+ .top-popup_footer [class*=btn]:not(.btn-transparent){ min-width: 100px; padding: 5px 14px; margin-left: 10px; }\r
407
+ .top-popup_footer [class*=btn]:first-child{ margin-left: 0; }\r
408
+ .top-popup_footer .btn.full_width{ margin: 0; flex-grow: 1; }`, w = `html.with_popup{ background: #808080; }\r
409
+ \r
410
+ .top-popup-wrapper{\r
411
+ --top-popup-padding-h: 19px;\r
412
+ --top-popup-padding-v: 16px;\r
413
+ --top-popup-footer-offset: 25px;\r
414
+ \r
415
+ width: auto !important; height: auto !important;\r
416
+ position: fixed; top: 0 !important; right: 0 !important; left: 0 !important; overflow: hidden;\r
417
+ transition: background 0.3s;\r
418
+ }\r
419
+ \r
420
+ .top-popup-wrapper-shown:not(.top-popup-wrapper-closed){ background: rgba(0,0,0,0.5); backdrop-filter: blur(1px); }\r
421
+ .top-popup-wrapper-shown:not(.top-popup-wrapper-closed) > .top-popup{ opacity: 1 !important; }\r
422
+ \r
423
+ .top-popup{\r
424
+ border-radius: 8px 8px 0 0; width: auto !important; max-height: calc(100% - var(--header-height) - 12px);\r
425
+ top: auto !important; right: 0 !important; bottom: 0 !important; left: 0 !important;\r
426
+ display: flex; flex-direction: column;\r
427
+ \r
428
+ /* невозможно опустить элемент вниз за экран на 100%, fix: opacity и translateY(80%) */\r
429
+ transform: translateY(80%);\r
430
+ \r
431
+ transition: opacity 0.3s, transform 0.3s;\r
432
+ }\r
433
+ \r
434
+ /* from top */\r
435
+ .top-popup-wrapper.p-from-top{\r
436
+ --top-popup-footer-offset: 0px;\r
437
+ \r
438
+ top: var(--header-height) !important;\r
439
+ }\r
440
+ .with_dialog .top-popup-wrapper.p-from-top{ top: 50px !important; }\r
441
+ .top-popup-wrapper.p-from-top > .top-popup{\r
442
+ border-radius: 0 0 8px 8px; max-height: calc(100% - 24px); top: 0 !important; bottom: auto !important;\r
443
+ transform: translateY(calc(-100% - 24px));\r
444
+ }\r
445
+ \r
446
+ .top-popup_content:last-child,\r
447
+ .top-popup_footer{\r
448
+ --scroll-padding-bottom: calc(var(--top-popup-padding-v) + var(--top-popup-footer-offset));\r
449
+ \r
450
+ padding-bottom: var(--scroll-padding-bottom);\r
451
+ }\r
452
+ \r
453
+ /* content */\r
454
+ ul.top-popup_content{\r
455
+ --scroll-padding-top: 0px;\r
456
+ --scroll-padding-bottom: var(--scroll-padding-top);\r
457
+ \r
458
+ display: flex; flex-direction: column;\r
459
+ }\r
460
+ ul.top-popup_content li:not(:last-child){ border-bottom: 1px solid var(--top-popup-border-color); }\r
461
+ \r
462
+ .top-popup-wrapper.top-style_alt > .top-popup > ul > li{ border-bottom: none; }\r
463
+ \r
464
+ /* footer */\r
465
+ .top-popup_footer{ flex-wrap: wrap; }\r
466
+ .top-popup_footer > .top-button{\r
467
+ --top-forms-base-height: var(--top-forms-base-height_xl);\r
468
+ \r
469
+ flex-grow: 1;\r
470
+ }\r
471
+ \r
472
+ /* listTitle */\r
473
+ ul.top-popup_content li.top-popup_listTitle{\r
474
+ --top-popup-padding-v: 12px;\r
475
+ }\r
476
+ \r
477
+ /* listDelimiter */\r
478
+ ul.top-popup_content li.top-popup_listDelimiter{ border-radius: 0; border-bottom: none; height: 2px; margin: 0; }`, P = `html:not(.with_dialog){ margin-right: 0 !important; }\r
479
+ \r
480
+ .top-popup{ min-width: 250px; max-width: calc(100vw - var(--top-popup-left) - 16px); max-height: calc(var(--top-popup-bottom) + var(--top-popup-height)); }\r
481
+ .top-popup-wrapper.invert-x > .top-popup{ max-width: calc(100vw - var(--top-popup-right) - 16px); }\r
482
+ .top-popup-wrapper.invert-y > .top-popup{ max-height: calc(100vh - var(--top-popup-bottom) - 16px); }\r
483
+ \r
484
+ /* position */\r
485
+ .top-popup-wrapper.p1 > .top-popup{ max-height: calc(var(--top-popup-top) - var(--header-height) - 16px); }\r
486
+ .top-popup-wrapper.p3 > .top-popup{ max-height: calc(var(--top-popup-bottom) - 16px); }\r
487
+ .top-popup-wrapper.p2 > .top-popup{ max-width: calc(var(--top-popup-right) - 16px); }\r
488
+ .top-popup-wrapper.p4 > .top-popup{ max-width: calc(var(--top-popup-left) - 16px); }\r
489
+ \r
490
+ /* notch */\r
491
+ .top-popup-wrapper.p1.with_notch > .top-popup,\r
492
+ .top-popup-wrapper.p3.with_notch > .top-popup{ margin-left: -16px !important; }\r
493
+ .top-popup-wrapper.p1.with_notch > .notch,\r
494
+ .top-popup-wrapper.p3.with_notch > .notch{ margin-left: -8px !important; }\r
495
+ \r
496
+ .top-popup-wrapper.p1.with_notch.invert-x,\r
497
+ .top-popup-wrapper.p3.with_notch.invert-x{ margin-left: 3px !important; }\r
498
+ .top-popup-wrapper.p1.with_notch.invert-x > .notch,\r
499
+ .top-popup-wrapper.p3.with_notch.invert-x > .notch{ margin-left: -9px !important; }\r
500
+ \r
501
+ /* listMore */\r
502
+ ul.top-popup_content li > * > i.top-popup_listMore{ visibility: hidden; transition: none; }\r
503
+ ul.top-popup_content li:hover > * > i.top-popup_listMore,\r
504
+ ul.top-popup_content li > *.top-active > i.top-popup_listMore,\r
505
+ ul.top-popup_content li > * > i.top-popup_listMore.top-active{ visibility: visible; }`;
506
+ f.appendStyle(x);
507
+ f.appendStyle(w, "m");
508
+ f.appendStyle(P, "pc");
509
+ class g extends m {
510
+ static componentName = "Popup";
511
+ el;
512
+ // элемент, вызвавший открытие Popup
513
+ elActiveByDefault;
514
+ // элемент уже имеет класс top-active перед открытием окна
515
+ elPopup;
516
+ elPopupInner;
517
+ elPopupHeader;
518
+ elPopupBody;
519
+ elPopupFooter;
520
+ elFront;
521
+ popupParent;
522
+ $;
523
+ // только, если есть jQuery
524
+ elStartPosition;
525
+ // используется для useOriginal
526
+ shift = {
527
+ top: 0,
528
+ left: 0
529
+ };
530
+ isClosed = !1;
531
+ // флаг того, что меню закрыто
532
+ isFirstClick = !0;
533
+ type;
534
+ // selector или html
535
+ options = {
536
+ popup: "",
537
+ // selector, text
538
+ p: 0,
539
+ // положение меню (0 - над элементом, 1 - сверху, 2 - справа, 3 - снизу, 4 слева)
540
+ notch: !1,
541
+ // отображать ли клювик
542
+ class: "",
543
+ // класс, добавляемый меню
544
+ posBy: "left",
545
+ // способ привязки позиционирования меню (left/right - левый/правый край родителя, fixed - по окну)
546
+ frontSelector: "",
547
+ invertX: !1,
548
+ // базовая ордината - правая граница элемента, а не левая
549
+ openByHover: !1,
550
+ // открывать при наведении
551
+ useOriginal: !1,
552
+ // использовать оригинальный шаблон, без клонирвоания (для сохранения состояния меню)
553
+ isFullScreen: !1,
554
+ i18n: {}
555
+ };
556
+ events = {};
557
+ // el - элемент, открывающий меню
558
+ constructor(t, p) {
559
+ return super(), this.init(g.componentName, t, p);
560
+ }
561
+ async mount() {
562
+ const t = this.vueGetComponent();
563
+ if (this.popupParent = n.getPopup(this.el.closest(".top-popup-wrapper")), await this.mountJQuery(), r.css(this.el, "position") !== "absolute" && (this.el.style.position = "relative"), this.el.dataset.topPopupOpened = "opened", this.elActiveByDefault = this.el.classList.contains("top-active"), this.el.classList.add("top-active"), t)
564
+ this.type = "vue", this.options.popup = "", this.elPopup = r.genEl("div", {}, this.options.popup);
565
+ else if (this.options.popup.match(/^[#.]/))
566
+ this.type = "selector", this.elPopup = document.querySelector(`${this.options.popup}.template`);
567
+ else {
568
+ if (this.type = "html", this.options.useOriginal)
569
+ throw "Option useOriginal not allowed for text templates";
570
+ this.elPopup = r.genEl("div", {}, this.options.popup);
571
+ }
572
+ if (!this.elPopup || t != null && t.opened) {
573
+ if (this.options.useOriginal || t != null && t.opened) {
574
+ if (t != null && t.opened ? this.elPopup = t.popup.elPopup : this.elPopup = document.querySelector(`${this.options.popup}.top-popup-wrapper-shown`), this.elPopup) {
575
+ this.el.dataset.topPopupOpened = "", this.elActiveByDefault || this.el.classList.remove("top-active"), n.close(this.elPopup), setTimeout(() => this.mount(), 300);
576
+ return;
577
+ }
578
+ throw "Option useOriginal state allowed only elements .template";
579
+ }
580
+ this.elPopup = document.querySelector(`${this.options.popup}:not(.top-popup-wrapper)`);
581
+ }
582
+ if (!this.elPopup)
583
+ return;
584
+ for (this.options.useOriginal ? (this.elStartPosition = this.elPopup.closest(".top-popup-el-start-position"), this.elStartPosition || (this.elStartPosition = r.wrap(this.elPopup, "i"), this.elStartPosition.classList.add("top-popup-el-start-position", "hidden"))) : (this.elPopup = this.elPopup.cloneNode(!0), this.type === "selector" && !this.elPopup.matches(".template") && (this.elPopup.classList.remove("hidden"), this.elPopup.querySelector(":scope > .top-popup_content") || this.elPopup.classList.add("top-popup_content"), this.elPopup = r.wrap(this.elPopup, "div")), this.type === "html" && (this.elPopup.querySelector(":scope > .top-popup_content") || (this.elPopup.classList.add("top-popup_content"), this.elPopup = r.wrap(this.elPopup, "div"))), (this.type === "selector" && !this.elPopup.matches(".template") || this.type === "html" || this.type === "vue") && (r.querySelectorAllArray(this.elPopup, "[data-top-popup]").forEach((e) => e.dataset.topPopupPosBy = "fixed"), r.querySelectorAllArray(this.elPopup, ".top-popup-wrapper").forEach((e) => e.remove()))), n.decoratorBeforeOpen(this), t && (this.options.class = t.classRef.value), this.elPopupInner = document.createElement("div"), this.elPopupInner.classList.add("top-popupPanel", "top-popup"); this.elPopup.firstChild; )
585
+ this.elPopupInner.appendChild(this.elPopup.firstChild);
586
+ if (this.elPopup.append(this.elPopupInner), this.elPopup.classList.add("top-popup-wrapper"), this.options.class) {
587
+ const e = this.options.class.split(" ");
588
+ this.elPopup.classList.add(...e);
589
+ }
590
+ this.options.notch && (this.elPopup.classList.add("with_notch"), this.elPopup.insertAdjacentHTML("beforeend", '<i class="notch notch-border"></i><i class="notch"></i>')), await this.vueOpen(), this.elPopupHeader = this.elPopupInner.querySelector(".top-popup_header"), this.elPopupBody = this.elPopupInner.querySelector(".top-popup_content"), this.elPopupFooter = this.elPopupInner.querySelector(".top-popup_footer");
591
+ const p = !!this.elPopup.querySelector('[data-widget="search"]');
592
+ this.options.isFullScreen && !p && (this.elPopupHeader || (this.elPopupHeader = r.genEl("i", { class: "header" }), this.elPopupInner.prepend(this.elPopupHeader), this.elPopupHeader.prepend(r.genEl("i", { class: "a closer" }, this.options.i18n.Close)), this.elPopupHeader.append(r.genEl("i", { class: "top-popup-headerButton" })))), r.storage(this.elPopup, "Popup", this), this.options.frontSelector && (this.elFront = document.querySelector(this.options.frontSelector)), this.elFront || (this.elFront = this.el.closest(".top-popup-front")), this.elFront || (this.elFront = document.body), this.elPopup.style.width = this.el.offsetWidth + "px", this.elPopup.style.height = this.el.offsetHeight + "px", this.elPopup.style.top = this.el.offsetTop + "px", this.elPopup.style.right = parseInt(this.el.style.right || 0) + "px", this.elPopup.style.bottom = parseInt(this.el.style.bottom || 0) + "px", this.el.parentElement.insertBefore(this.elPopup, this.el), this.elPopup.classList.remove("template"), this.options.invertX && this.elPopup.classList.add("invert-x");
593
+ let o = !!this.el.closest(".modal-header");
594
+ o || (o = !!this.el.closest("#top_panel")), o || (o = !!this.el.closest("#secondmenu")), o && this.elPopup.classList.add("p-from-top"), setTimeout(() => this.elPopup.classList.add("top-popup-wrapper-shown")), this.elFront && !this.elFront.matches("body") && (this.elFront.append(this.elPopup), this.shift.top = r.offset(this.el).top - this.el.offsetTop - r.offset(this.elFront).top, this.shift.left = r.offset(this.el).left - this.el.offsetLeft - r.offset(this.elFront).left, this.shift.top -= parseInt(this.el.style["margin-top"] || 0), this.shift.left -= parseInt(this.el.style["margin-left"] || 0), this.elPopup.style.top = parseInt(this.elPopup.style.top || "0") + this.shift.top + "px", this.elPopup.style.left = parseInt(this.elPopup.style.left || "0") + this.shift.left + "px"), this.$ && this.$.trigger("aftershow.top-menu-popup", [jQuery(this.elPopup)]), this.recalcPosition(), this.elPopup.setAttribute("tabindex", 0), this.focus(), n.decoratorAfterOpen(this), this.mountEvents();
595
+ }
596
+ async mountJQuery() {
597
+ typeof jQuery == "function" && (this.$ = jQuery(this.el));
598
+ }
599
+ /**
600
+ * Выполнить фокусировку на нужный элемент после открытия окна
601
+ */
602
+ focus() {
603
+ let t = r.querySelectorVisible(this.elPopup, ".top-popup-autofocus");
604
+ t || (t = r.querySelectorVisible(this.elPopup, ":read-write, select:not(:disabled)")), t || (t = r.querySelectorVisible(this.elPopup, ".top-popup_footer .top-button")), t || (t = this.elPopup), t.focus();
605
+ }
606
+ mountEvents() {
607
+ this.addEventListenerWithUnmount(document, "mousedown", (t) => this.onMousedown(t)), this.addEventListenerWithUnmount(this.elPopup, "focus", (t) => this.onFocus(t)), this.options.openByHover && (this.addEventListenerWithUnmount(this.elPopup, "mouseleave", (t) => this.onMouseleave(t)), this.addEventListenerWithUnmount(this.elPopupInner, "mouseleave", (t) => this.onMouseleave(t))), this.options.isFullScreen && this.addEventListenerWithUnmount(this.elPopupBody, "touchmove", (t) => this.onTouchmove(t));
608
+ }
609
+ /**
610
+ * Обработка клика вне окна
611
+ * @param {Event} e
612
+ */
613
+ onMousedown(t) {
614
+ if (!this.elPopup || !this.isFirstClick || (this.isFirstClick = !1, setTimeout(() => this.isFirstClick = !0), t.button !== 0))
615
+ return;
616
+ let p = r.querySelectorVisibleLast(document.body, ":scope > .top-popup-wrapper");
617
+ p && p !== this.elPopup || (p = r.querySelectorVisibleLast(t.target.closest(".top-popup-front"), ":scope > .top-popup-wrapper"), !(p && p !== this.elPopup) && (this.elPopup.contains(t.target) || this.elPopup.closest(".ui-dialog") && !t.target.closest(".ui-dialog") || n.decoratorIsIgnoreOuterClick(t) || n.close(this.elPopup)));
618
+ }
619
+ /**
620
+ * Закрыть другие Popup при фокусе на элемент формы в текущем
621
+ * @param {Event} e
622
+ */
623
+ onFocus(t) {
624
+ if (t.target.matches("input") || this.isClosed)
625
+ return;
626
+ n.getAllVisible().forEach((o) => {
627
+ var e, i, l;
628
+ this.elPopup.contains(o) || ((e = this.popupParent) == null ? void 0 : e.elPopup) === o || ((l = (i = this.popupParent) == null ? void 0 : i.popupParent) == null ? void 0 : l.elPopup) === o || n.close(o);
629
+ });
630
+ }
631
+ /**
632
+ * Закрыть Popup при отведении мыши
633
+ * @param {Event} _e
634
+ */
635
+ onMouseleave(t) {
636
+ setTimeout(() => {
637
+ this.elPopupInner.matches(":hover") || n.close(this.elPopup);
638
+ }, 100);
639
+ }
640
+ /**
641
+ * Контроль положения Popup при fixed позиционировании
642
+ */
643
+ onResize() {
644
+ this.elPopup.parentElement !== document.body && document.body.append(this.elPopup), this.elPopup.style.top = r.offset(this.el).top + "px", this.elPopup.style.left = r.offset(this.el).left + "px";
645
+ }
646
+ unmount() {
647
+ super.unmount(), this.el.dataset.topPopupOpened = "", this.elActiveByDefault || this.el.classList.remove("top-active");
648
+ let t = this.el.getAttribute("style");
649
+ t && (t = t.replace(/position:[^;]*;?/g, ""), this.el.setAttribute("style", t));
650
+ }
651
+ // контроль за положением Popup, чтобы оно не вылезало за пределы документа
652
+ recalcPosition() {
653
+ let t = this.options.p, p;
654
+ switch (this.elPopup.style.height = this.el.offsetHeight + "px", this.elPopup.classList.remove("p0", "p1", "p2", "p3", "p4"), this.elPopup.classList.add("p" + t), this.options.posBy) {
655
+ case "left":
656
+ p = this.el.offsetLeft + parseInt(this.el.style["margin-left"] || 0), p += this.shift.left, this.elPopup.style.left = p + "px";
657
+ break;
658
+ case "right":
659
+ p = this.el.offsetLeft + parseInt(this.el.style["margin-left"] || 0), this.elPopup.style.right = this.el.offsetParent.offsetWidth - this.el.offsetWidth - p + "px";
660
+ break;
661
+ case "fixed":
662
+ this.addEventListenerWithUnmount(window, "resize", () => this.onResize()), this.onResize();
663
+ break;
664
+ default:
665
+ this.options.posBy.append(this.elPopup);
666
+ }
667
+ const o = this.elPopup.getBoundingClientRect();
668
+ this.elPopup.style.setProperty("--top-popup-height", this.elPopup.offsetHeight + "px"), this.elPopup.style.setProperty("--top-popup-right-bounding", o.right + "px"), this.elPopup.style.setProperty("--top-popup-bottom-bounding", o.bottom + "px"), this.elPopup.style.setProperty("--top-popup-top", o.top + "px"), this.elPopup.style.setProperty("--top-popup-left", o.left + "px"), this.elPopupInner.style.maxWidth = "unset", this.elPopupInner.style.maxHeight = "unset";
669
+ let e = !1, i = !1, l = !1, h = !1, a = o.left > window.innerWidth / 2, c = o.top > window.innerHeight / 2;
670
+ t === 4 && (a = !a), t === 1 && (c = !c);
671
+ const s = this.elPopupInner.getBoundingClientRect(), u = window.innerWidth - s.right, v = window.innerHeight - s.bottom, d = 8;
672
+ s.top < d && (e = !0), u < d && (i = !0), v < d && (l = !0), s.left < d && (h = !0), e && (t === 0 || t === 1) && c && (t = 3), l && t === 3 && c && (t = 1), i && t === 2 && a && (t = 4), h && t === 4 && a && (t = 2), i && (t === 0 || t === 1 || t === 3) && this.elPopup.classList.add("invert-x"), l && (t === 2 || t === 4) && c && (t === 2 && !a && this.elPopup.classList.add("invert-y"), t === 4 && !a && this.elPopup.classList.add("invert-x"), this.elPopup.matches(".invert-y") || (t = 1)), this.elPopup.classList.remove("p0", "p1", "p2", "p3", "p4"), this.elPopup.classList.add("p" + t), this.elPopupInner.style.maxWidth = "", this.elPopupInner.style.maxHeight = "", n.scrollToActive(this.elPopup);
673
+ }
674
+ onTouchmove(t) {
675
+ t.currentTarget.scrollWidth > t.currentTarget.offsetWidth || t.target.parentElement.scrollWidth > t.target.parentElement.offsetWidth || t.currentTarget.matches(".has_scroll") || t.preventDefault();
676
+ }
677
+ close() {
678
+ this.isClosed || (this.isClosed = !0, this.$ && this.$.trigger("afterclose.top-menu-popup", [jQuery(this.elPopup)]), !n.noClose && (this.unmount(), this.elPopup.classList.add("top-popup-wrapper-closed"), setTimeout(() => {
679
+ var o, e, i;
680
+ this.vueClose(), this.options.useOriginal ? (this.elPopup.removeAttribute("style"), this.elPopup.classList.remove("top-popup-wrapper-shown", "top-popup-wrapper-closed"), this.elPopup.classList.add("template"), this.elStartPosition.append(this.elPopup), (o = this.elPopup.querySelector("div.top-popup_content.top-column")) == null || o.classList.remove("top-column"), (e = this.elPopup.querySelector(".notch-border")) == null || e.remove(), (i = this.elPopup.querySelector(".notch")) == null || i.remove(), this.elPopupInner.replaceWith(...this.elPopupInner.childNodes), r.storageClear(this.elPopup)) : (r.storageClear(this.elPopup), this.elPopup.remove(), delete this.elPopup);
681
+ const t = n.getAllVisible(), p = t.length && t[t.length - 1];
682
+ p ? n.getPopup(p).focus() : document.documentElement.classList.remove("with_popup");
683
+ }, 300)));
684
+ }
685
+ async vueOpen() {
686
+ var t;
687
+ await ((t = this.vueGetComponent()) == null ? void 0 : t.onOpen(this));
688
+ }
689
+ vueClose() {
690
+ var t;
691
+ (t = this.vueGetComponent()) == null || t.onClose(this);
692
+ }
693
+ // получить vueConnectors компонента Popup
694
+ vueGetComponent() {
695
+ return n.vueConnectors.get(this.el.dataset.topPopupId);
696
+ }
697
+ }
698
+ b.init();
699
+ export {
700
+ g as default
701
+ };
702
+ //# sourceMappingURL=popup-dd9546aa.es.js.map