@skyservice-developers/vue-dev-kit 1.0.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2197 @@
1
+ var Ie = function() {
2
+ var e = this, l = e.$createElement, n = e._self._c || l;
3
+ return n("header", {
4
+ staticClass: "sky-header"
5
+ }, [n("div", {
6
+ staticClass: "header-content"
7
+ }, [n("div", {
8
+ staticClass: "header-top"
9
+ }, [n("div", {
10
+ staticClass: "header-title-wrapper"
11
+ }, [e.shouldShowBackButton ? n("button", {
12
+ staticClass: "btn-back",
13
+ attrs: {
14
+ title: e.backButtonTitle
15
+ },
16
+ on: {
17
+ click: e.handleBack
18
+ }
19
+ }, [n("svg", {
20
+ staticStyle: {
21
+ transform: "rotate(90deg)"
22
+ },
23
+ attrs: {
24
+ width: "15",
25
+ height: "15",
26
+ viewBox: "0 0 451.847 451.847"
27
+ }
28
+ }, [n("path", {
29
+ attrs: {
30
+ fill: "currentColor",
31
+ d: "M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"
32
+ }
33
+ })])]) : e._e(), n("div", {
34
+ staticClass: "header-title-content"
35
+ }, [e._t("title", function() {
36
+ return [n("h4", {
37
+ staticClass: "header-title"
38
+ }, [e._v(e._s(e.title) + " vue 2")])];
39
+ }), e._t("subtitle", function() {
40
+ return [e.subtitle ? n("div", {
41
+ staticClass: "header-subtitle"
42
+ }, [e._v(e._s(e.subtitle))]) : e._e()];
43
+ })], 2)]), n("div", {
44
+ staticClass: "header-actions"
45
+ }, [e._t("default")], 2)])])]);
46
+ }, Ve = [];
47
+ function M(e, l, n, p, C, T, R, $) {
48
+ var f = typeof e == "function" ? e.options : e;
49
+ l && (f.render = l, f.staticRenderFns = n, f._compiled = !0), p && (f.functional = !0), T && (f._scopeId = "data-v-" + T);
50
+ var g;
51
+ if (R ? (g = function(t) {
52
+ t = t || // cached call
53
+ this.$vnode && this.$vnode.ssrContext || // stateful
54
+ this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !t && typeof __VUE_SSR_CONTEXT__ < "u" && (t = __VUE_SSR_CONTEXT__), C && C.call(this, t), t && t._registeredComponents && t._registeredComponents.add(R);
55
+ }, f._ssrRegister = g) : C && (g = $ ? function() {
56
+ C.call(
57
+ this,
58
+ (f.functional ? this.parent : this).$root.$options.shadowRoot
59
+ );
60
+ } : C), g)
61
+ if (f.functional) {
62
+ f._injectStyles = g;
63
+ var O = f.render;
64
+ f.render = function(a, i) {
65
+ return g.call(i), O(a, i);
66
+ };
67
+ } else {
68
+ var N = f.beforeCreate;
69
+ f.beforeCreate = N ? [].concat(N, g) : [g];
70
+ }
71
+ return {
72
+ exports: e,
73
+ options: f
74
+ };
75
+ }
76
+ const Le = {
77
+ name: "Header",
78
+ props: {
79
+ title: {
80
+ type: String,
81
+ default: ""
82
+ },
83
+ subtitle: {
84
+ type: String,
85
+ default: ""
86
+ },
87
+ showBackButton: {
88
+ type: Boolean,
89
+ default: !0
90
+ },
91
+ backButtonTitle: {
92
+ type: String,
93
+ default: "Назад"
94
+ },
95
+ backEvent: {
96
+ type: Function,
97
+ default: null
98
+ }
99
+ },
100
+ computed: {
101
+ // Перевіряємо чи сторінка в iframe
102
+ isInIframe() {
103
+ try {
104
+ return window.self !== window.top;
105
+ } catch {
106
+ return !0;
107
+ }
108
+ },
109
+ // Показуємо кнопку якщо є backEvent АБО (showBackButton=true І сторінка в iframe)
110
+ shouldShowBackButton() {
111
+ return this.backEvent || this.showBackButton && this.isInIframe;
112
+ }
113
+ },
114
+ methods: {
115
+ // Обробник кнопки "Назад" - викликає backEvent або відправляє повідомлення батьківському вікну
116
+ handleBack() {
117
+ this.backEvent ? this.backEvent() : window.parent.postMessage({ type: "exit" }, "*");
118
+ }
119
+ }
120
+ }, xe = {};
121
+ var De = /* @__PURE__ */ M(
122
+ Le,
123
+ Ie,
124
+ Ve,
125
+ !1,
126
+ Fe,
127
+ "1713907d",
128
+ null,
129
+ null
130
+ );
131
+ function Fe(e) {
132
+ for (let l in xe)
133
+ this[l] = xe[l];
134
+ }
135
+ const vt = /* @__PURE__ */ function() {
136
+ return De.exports;
137
+ }();
138
+ var Xe = function() {
139
+ var e = this, l = e.$createElement, n = e._self._c || l;
140
+ return n("portal", {
141
+ attrs: {
142
+ to: e.to
143
+ }
144
+ }, [e._t("default")], 2);
145
+ }, Ue = [];
146
+ const qe = {
147
+ props: {
148
+ to: {
149
+ type: String,
150
+ default: "body"
151
+ }
152
+ }
153
+ }, Se = {};
154
+ var je = /* @__PURE__ */ M(
155
+ qe,
156
+ Xe,
157
+ Ue,
158
+ !1,
159
+ He,
160
+ null,
161
+ null,
162
+ null
163
+ );
164
+ function He(e) {
165
+ for (let l in Se)
166
+ this[l] = Se[l];
167
+ }
168
+ const Ke = /* @__PURE__ */ function() {
169
+ return je.exports;
170
+ }();
171
+ var Ge = function() {
172
+ var e = this, l = e.$createElement, n = e._self._c || l;
173
+ return n("base-teleport", {
174
+ attrs: {
175
+ to: "body"
176
+ }
177
+ }, [n("transition", {
178
+ attrs: {
179
+ name: "modal-fade"
180
+ }
181
+ }, [e.isOpen ? n("div", {
182
+ staticClass: "sky-modal-overlay",
183
+ on: {
184
+ click: function(p) {
185
+ return p.target !== p.currentTarget ? null : e.handleOverlayClick.apply(null, arguments);
186
+ }
187
+ }
188
+ }, [n("div", {
189
+ staticClass: "sky-modal",
190
+ style: e.modalStyle
191
+ }, [n("div", {
192
+ staticClass: "sky-modal-header"
193
+ }, [n("button", {
194
+ staticClass: "sky-modal-back",
195
+ attrs: {
196
+ title: e.closeTitle
197
+ },
198
+ on: {
199
+ click: e.close
200
+ }
201
+ }, [n("svg", {
202
+ attrs: {
203
+ width: "15",
204
+ height: "15",
205
+ viewBox: "0 0 24 24",
206
+ fill: "none",
207
+ stroke: "currentColor",
208
+ "stroke-width": "2"
209
+ }
210
+ }, [n("path", {
211
+ attrs: {
212
+ d: "M19 12H5M12 19l-7-7 7-7",
213
+ "stroke-linecap": "round",
214
+ "stroke-linejoin": "round"
215
+ }
216
+ })])]), n("div", {
217
+ staticClass: "sky-modal-title-wrapper"
218
+ }, [n("h4", {
219
+ staticClass: "sky-modal-title"
220
+ }, [e._v(e._s(e.title))]), e.subtitle ? n("div", {
221
+ staticClass: "sky-modal-subtitle"
222
+ }, [e._v(e._s(e.subtitle))]) : e._e()])]), n("div", {
223
+ staticClass: "sky-modal-body"
224
+ }, [e._t("default")], 2), e.$slots.footer ? n("div", {
225
+ staticClass: "sky-modal-footer"
226
+ }, [e._t("footer")], 2) : e._e()])]) : e._e()])], 1);
227
+ }, We = [];
228
+ const Ye = {
229
+ components: {
230
+ BaseTeleport: Ke
231
+ },
232
+ name: "Modal",
233
+ props: {
234
+ modelValue: {
235
+ type: Boolean,
236
+ default: !1
237
+ },
238
+ title: {
239
+ type: String,
240
+ default: ""
241
+ },
242
+ subtitle: {
243
+ type: String,
244
+ default: ""
245
+ },
246
+ closeTitle: {
247
+ type: String,
248
+ default: "Закрити"
249
+ },
250
+ closeOnOverlay: {
251
+ type: Boolean,
252
+ default: !0
253
+ },
254
+ closeOnEsc: {
255
+ type: Boolean,
256
+ default: !0
257
+ },
258
+ width: {
259
+ type: String,
260
+ default: "100%"
261
+ },
262
+ height: {
263
+ type: String,
264
+ default: "100%"
265
+ },
266
+ value: {
267
+ type: Boolean,
268
+ default: !1
269
+ }
270
+ },
271
+ computed: {
272
+ modalStyle() {
273
+ return {
274
+ width: this.width,
275
+ height: this.height
276
+ };
277
+ }
278
+ },
279
+ watch: {
280
+ modelValue(e) {
281
+ e ? document.body.style.overflow = "hidden" : document.body.style.overflow = "";
282
+ }
283
+ },
284
+ mounted() {
285
+ document.addEventListener("keydown", this.handleKeydown);
286
+ },
287
+ computed: {
288
+ isOpen: {
289
+ get() {
290
+ return this.value;
291
+ },
292
+ set(e) {
293
+ this.$emit("input", e);
294
+ }
295
+ }
296
+ },
297
+ beforeDestroy() {
298
+ document.removeEventListener("keydown", this.handleKeydown), document.body.style.overflow = "";
299
+ },
300
+ methods: {
301
+ close() {
302
+ this.$emit("update:modelValue", !1), this.isOpen = !1, this.$emit("close");
303
+ },
304
+ handleOverlayClick() {
305
+ this.closeOnOverlay && this.close();
306
+ },
307
+ handleKeydown(e) {
308
+ e.key === "Escape" && this.closeOnEsc && this.modelValue && this.close();
309
+ }
310
+ }
311
+ }, Ee = {};
312
+ var Ze = /* @__PURE__ */ M(
313
+ Ye,
314
+ Ge,
315
+ We,
316
+ !1,
317
+ Qe,
318
+ "1ed4a1aa",
319
+ null,
320
+ null
321
+ );
322
+ function Qe(e) {
323
+ for (let l in Ee)
324
+ this[l] = Ee[l];
325
+ }
326
+ const _t = /* @__PURE__ */ function() {
327
+ return Ze.exports;
328
+ }();
329
+ var Je = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
330
+ function et(e) {
331
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
332
+ }
333
+ var le = { exports: {} };
334
+ (function(e, l) {
335
+ (function(n, p) {
336
+ var C = "1.0.41", T = "", R = "?", $ = "function", f = "undefined", g = "object", O = "string", N = "major", t = "model", a = "name", i = "type", o = "vendor", s = "version", k = "architecture", z = "console", d = "mobile", c = "tablet", v = "smarttv", _ = "wearable", P = "embedded", Z = 500, U = "Amazon", A = "Apple", de = "ASUS", ce = "BlackBerry", q = "Browser", j = "Chrome", Re = "Edge", H = "Firefox", K = "Google", ue = "Honor", be = "Huawei", $e = "Lenovo", G = "LG", Q = "Microsoft", J = "Motorola", ee = "Nvidia", we = "OnePlus", I = "Opera", te = "OPPO", V = "Samsung", he = "Sharp", L = "Sony", ie = "Xiaomi", oe = "Zebra", pe = "Facebook", me = "Chromium OS", fe = "Mac OS", ve = " Browser", Ne = function(b, w) {
337
+ var u = {};
338
+ for (var m in b)
339
+ w[m] && w[m].length % 2 === 0 ? u[m] = w[m].concat(b[m]) : u[m] = b[m];
340
+ return u;
341
+ }, W = function(b) {
342
+ for (var w = {}, u = 0; u < b.length; u++)
343
+ w[b[u].toUpperCase()] = b[u];
344
+ return w;
345
+ }, _e = function(b, w) {
346
+ return typeof b === O ? D(w).indexOf(D(b)) !== -1 : !1;
347
+ }, D = function(b) {
348
+ return b.toLowerCase();
349
+ }, ze = function(b) {
350
+ return typeof b === O ? b.replace(/[^\d\.]/g, T).split(".")[0] : p;
351
+ }, ae = function(b, w) {
352
+ if (typeof b === O)
353
+ return b = b.replace(/^\s\s*/, T), typeof w === f ? b : b.substring(0, Z);
354
+ }, F = function(b, w) {
355
+ for (var u = 0, m, E, x, h, r, S; u < w.length && !r; ) {
356
+ var se = w[u], ke = w[u + 1];
357
+ for (m = E = 0; m < se.length && !r && se[m]; )
358
+ if (r = se[m++].exec(b), r)
359
+ for (x = 0; x < ke.length; x++)
360
+ S = r[++E], h = ke[x], typeof h === g && h.length > 0 ? h.length === 2 ? typeof h[1] == $ ? this[h[0]] = h[1].call(this, S) : this[h[0]] = h[1] : h.length === 3 ? typeof h[1] === $ && !(h[1].exec && h[1].test) ? this[h[0]] = S ? h[1].call(this, S, h[2]) : p : this[h[0]] = S ? S.replace(h[1], h[2]) : p : h.length === 4 && (this[h[0]] = S ? h[3].call(this, S.replace(h[1], h[2])) : p) : this[h] = S || p;
361
+ u += 2;
362
+ }
363
+ }, X = function(b, w) {
364
+ for (var u in w)
365
+ if (typeof w[u] === g && w[u].length > 0) {
366
+ for (var m = 0; m < w[u].length; m++)
367
+ if (_e(w[u][m], b))
368
+ return u === R ? p : u;
369
+ } else if (_e(w[u], b))
370
+ return u === R ? p : u;
371
+ return w.hasOwnProperty("*") ? w["*"] : b;
372
+ }, Pe = {
373
+ "1.0": "/8",
374
+ "1.2": "/1",
375
+ "1.3": "/3",
376
+ "2.0": "/412",
377
+ "2.0.2": "/416",
378
+ "2.0.3": "/417",
379
+ "2.0.4": "/419",
380
+ "?": "/"
381
+ }, ge = {
382
+ ME: "4.90",
383
+ "NT 3.11": "NT3.51",
384
+ "NT 4.0": "NT4.0",
385
+ 2e3: "NT 5.0",
386
+ XP: ["NT 5.1", "NT 5.2"],
387
+ Vista: "NT 6.0",
388
+ 7: "NT 6.1",
389
+ 8: "NT 6.2",
390
+ "8.1": "NT 6.3",
391
+ 10: ["NT 6.4", "NT 10.0"],
392
+ RT: "ARM"
393
+ }, ye = {
394
+ browser: [
395
+ [
396
+ /\b(?:crmo|crios)\/([\w\.]+)/i
397
+ // Chrome for Android/iOS
398
+ ],
399
+ [s, [a, "Chrome"]],
400
+ [
401
+ /edg(?:e|ios|a)?\/([\w\.]+)/i
402
+ // Microsoft Edge
403
+ ],
404
+ [s, [a, "Edge"]],
405
+ [
406
+ // Presto based
407
+ /(opera mini)\/([-\w\.]+)/i,
408
+ // Opera Mini
409
+ /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
410
+ // Opera Mobi/Tablet
411
+ /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
412
+ // Opera
413
+ ],
414
+ [a, s],
415
+ [
416
+ /opios[\/ ]+([\w\.]+)/i
417
+ // Opera mini on iphone >= 8.0
418
+ ],
419
+ [s, [a, I + " Mini"]],
420
+ [
421
+ /\bop(?:rg)?x\/([\w\.]+)/i
422
+ // Opera GX
423
+ ],
424
+ [s, [a, I + " GX"]],
425
+ [
426
+ /\bopr\/([\w\.]+)/i
427
+ // Opera Webkit
428
+ ],
429
+ [s, [a, I]],
430
+ [
431
+ // Mixed
432
+ /\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
433
+ // Baidu
434
+ ],
435
+ [s, [a, "Baidu"]],
436
+ [
437
+ /\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i
438
+ // Maxthon
439
+ ],
440
+ [s, [a, "Maxthon"]],
441
+ [
442
+ /(kindle)\/([\w\.]+)/i,
443
+ // Kindle
444
+ /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
445
+ // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
446
+ // Trident based
447
+ /(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,
448
+ // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet
449
+ /(?:ms|\()(ie) ([\w\.]+)/i,
450
+ // Internet Explorer
451
+ // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
452
+ /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\/([-\w\.]+)/i,
453
+ // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon
454
+ /(heytap|ovi|115)browser\/([\d\.]+)/i,
455
+ // HeyTap/Ovi/115
456
+ /(weibo)__([\d\.]+)/i
457
+ // Weibo
458
+ ],
459
+ [a, s],
460
+ [
461
+ /quark(?:pc)?\/([-\w\.]+)/i
462
+ // Quark
463
+ ],
464
+ [s, [a, "Quark"]],
465
+ [
466
+ /\bddg\/([\w\.]+)/i
467
+ // DuckDuckGo
468
+ ],
469
+ [s, [a, "DuckDuckGo"]],
470
+ [
471
+ /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
472
+ // UCBrowser
473
+ ],
474
+ [s, [a, "UC" + q]],
475
+ [
476
+ /microm.+\bqbcore\/([\w\.]+)/i,
477
+ // WeChat Desktop for Windows Built-in Browser
478
+ /\bqbcore\/([\w\.]+).+microm/i,
479
+ /micromessenger\/([\w\.]+)/i
480
+ // WeChat
481
+ ],
482
+ [s, [a, "WeChat"]],
483
+ [
484
+ /konqueror\/([\w\.]+)/i
485
+ // Konqueror
486
+ ],
487
+ [s, [a, "Konqueror"]],
488
+ [
489
+ /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
490
+ // IE11
491
+ ],
492
+ [s, [a, "IE"]],
493
+ [
494
+ /ya(?:search)?browser\/([\w\.]+)/i
495
+ // Yandex
496
+ ],
497
+ [s, [a, "Yandex"]],
498
+ [
499
+ /slbrowser\/([\w\.]+)/i
500
+ // Smart Lenovo Browser
501
+ ],
502
+ [s, [a, "Smart Lenovo " + q]],
503
+ [
504
+ /(avast|avg)\/([\w\.]+)/i
505
+ // Avast/AVG Secure Browser
506
+ ],
507
+ [[a, /(.+)/, "$1 Secure " + q], s],
508
+ [
509
+ /\bfocus\/([\w\.]+)/i
510
+ // Firefox Focus
511
+ ],
512
+ [s, [a, H + " Focus"]],
513
+ [
514
+ /\bopt\/([\w\.]+)/i
515
+ // Opera Touch
516
+ ],
517
+ [s, [a, I + " Touch"]],
518
+ [
519
+ /coc_coc\w+\/([\w\.]+)/i
520
+ // Coc Coc Browser
521
+ ],
522
+ [s, [a, "Coc Coc"]],
523
+ [
524
+ /dolfin\/([\w\.]+)/i
525
+ // Dolphin
526
+ ],
527
+ [s, [a, "Dolphin"]],
528
+ [
529
+ /coast\/([\w\.]+)/i
530
+ // Opera Coast
531
+ ],
532
+ [s, [a, I + " Coast"]],
533
+ [
534
+ /miuibrowser\/([\w\.]+)/i
535
+ // MIUI Browser
536
+ ],
537
+ [s, [a, "MIUI" + ve]],
538
+ [
539
+ /fxios\/([\w\.-]+)/i
540
+ // Firefox for iOS
541
+ ],
542
+ [s, [a, H]],
543
+ [
544
+ /\bqihoobrowser\/?([\w\.]*)/i
545
+ // 360
546
+ ],
547
+ [s, [a, "360"]],
548
+ [
549
+ /\b(qq)\/([\w\.]+)/i
550
+ // QQ
551
+ ],
552
+ [[a, /(.+)/, "$1Browser"], s],
553
+ [
554
+ /(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
555
+ ],
556
+ [[a, /(.+)/, "$1" + ve], s],
557
+ [
558
+ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
559
+ /samsungbrowser\/([\w\.]+)/i
560
+ // Samsung Internet
561
+ ],
562
+ [s, [a, V + " Internet"]],
563
+ [
564
+ /metasr[\/ ]?([\d\.]+)/i
565
+ // Sogou Explorer
566
+ ],
567
+ [s, [a, "Sogou Explorer"]],
568
+ [
569
+ /(sogou)mo\w+\/([\d\.]+)/i
570
+ // Sogou Mobile
571
+ ],
572
+ [[a, "Sogou Mobile"], s],
573
+ [
574
+ /(electron)\/([\w\.]+) safari/i,
575
+ // Electron-based App
576
+ /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
577
+ // Tesla
578
+ /m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i
579
+ // QQ/2345
580
+ ],
581
+ [a, s],
582
+ [
583
+ /(lbbrowser|rekonq)/i,
584
+ // LieBao Browser/Rekonq
585
+ /\[(linkedin)app\]/i
586
+ // LinkedIn App for iOS & Android
587
+ ],
588
+ [a],
589
+ [
590
+ /ome\/([\w\.]+) \w* ?(iron) saf/i,
591
+ // Iron
592
+ /ome\/([\w\.]+).+qihu (360)[es]e/i
593
+ // 360
594
+ ],
595
+ [s, a],
596
+ [
597
+ // WebView
598
+ /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
599
+ // Facebook App for iOS & Android
600
+ ],
601
+ [[a, pe], s],
602
+ [
603
+ /(Klarna)\/([\w\.]+)/i,
604
+ // Klarna Shopping Browser for iOS & Android
605
+ /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
606
+ // Kakao App
607
+ /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
608
+ // Naver InApp
609
+ /(daum)apps[\/ ]([\w\.]+)/i,
610
+ // Daum App
611
+ /safari (line)\/([\w\.]+)/i,
612
+ // Line App for iOS
613
+ /\b(line)\/([\w\.]+)\/iab/i,
614
+ // Line App for Android
615
+ /(alipay)client\/([\w\.]+)/i,
616
+ // Alipay
617
+ /(twitter)(?:and| f.+e\/([\w\.]+))/i,
618
+ // Twitter
619
+ /(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i
620
+ // Chromium/Instagram/Snapchat
621
+ ],
622
+ [a, s],
623
+ [
624
+ /\bgsa\/([\w\.]+) .*safari\//i
625
+ // Google Search Appliance on iOS
626
+ ],
627
+ [s, [a, "GSA"]],
628
+ [
629
+ /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
630
+ // TikTok
631
+ ],
632
+ [s, [a, "TikTok"]],
633
+ [
634
+ /headlesschrome(?:\/([\w\.]+)| )/i
635
+ // Chrome Headless
636
+ ],
637
+ [s, [a, j + " Headless"]],
638
+ [
639
+ / wv\).+(chrome)\/([\w\.]+)/i
640
+ // Chrome WebView
641
+ ],
642
+ [[a, j + " WebView"], s],
643
+ [
644
+ /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
645
+ // Android Browser
646
+ ],
647
+ [s, [a, "Android " + q]],
648
+ [
649
+ /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
650
+ // Chrome/OmniWeb/Arora/Tizen/Nokia
651
+ ],
652
+ [a, s],
653
+ [
654
+ /version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i
655
+ // Mobile Safari
656
+ ],
657
+ [s, [a, "Mobile Safari"]],
658
+ [
659
+ /version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i
660
+ // Safari & Safari Mobile
661
+ ],
662
+ [s, a],
663
+ [
664
+ /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
665
+ // Safari < 3.0
666
+ ],
667
+ [a, [s, X, Pe]],
668
+ [
669
+ /(webkit|khtml)\/([\w\.]+)/i
670
+ ],
671
+ [a, s],
672
+ [
673
+ // Gecko based
674
+ /(navigator|netscape\d?)\/([-\w\.]+)/i
675
+ // Netscape
676
+ ],
677
+ [[a, "Netscape"], s],
678
+ [
679
+ /(wolvic|librewolf)\/([\w\.]+)/i
680
+ // Wolvic/LibreWolf
681
+ ],
682
+ [a, s],
683
+ [
684
+ /mobile vr; rv:([\w\.]+)\).+firefox/i
685
+ // Firefox Reality
686
+ ],
687
+ [s, [a, H + " Reality"]],
688
+ [
689
+ /ekiohf.+(flow)\/([\w\.]+)/i,
690
+ // Flow
691
+ /(swiftfox)/i,
692
+ // Swiftfox
693
+ /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
694
+ // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
695
+ /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
696
+ // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
697
+ /(firefox)\/([\w\.]+)/i,
698
+ // Other Firefox-based
699
+ /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
700
+ // Mozilla
701
+ // Other
702
+ /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
703
+ // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird
704
+ /\b(links) \(([\w\.]+)/i
705
+ // Links
706
+ ],
707
+ [a, [s, /_/g, "."]],
708
+ [
709
+ /(cobalt)\/([\w\.]+)/i
710
+ // Cobalt
711
+ ],
712
+ [a, [s, /master.|lts./, ""]]
713
+ ],
714
+ cpu: [
715
+ [
716
+ /\b((amd|x|x86[-_]?|wow|win)64)\b/i
717
+ // AMD64 (x64)
718
+ ],
719
+ [[k, "amd64"]],
720
+ [
721
+ /(ia32(?=;))/i,
722
+ // IA32 (quicktime)
723
+ /\b((i[346]|x)86)(pc)?\b/i
724
+ // IA32 (x86)
725
+ ],
726
+ [[k, "ia32"]],
727
+ [
728
+ /\b(aarch64|arm(v?[89]e?l?|_?64))\b/i
729
+ // ARM64
730
+ ],
731
+ [[k, "arm64"]],
732
+ [
733
+ /\b(arm(v[67])?ht?n?[fl]p?)\b/i
734
+ // ARMHF
735
+ ],
736
+ [[k, "armhf"]],
737
+ [
738
+ // PocketPC mistakenly identified as PowerPC
739
+ /( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
740
+ ],
741
+ [[k, "arm"]],
742
+ [
743
+ /((ppc|powerpc)(64)?)( mac|;|\))/i
744
+ // PowerPC
745
+ ],
746
+ [[k, /ower/, T, D]],
747
+ [
748
+ / sun4\w[;\)]/i
749
+ // SPARC
750
+ ],
751
+ [[k, "sparc"]],
752
+ [
753
+ /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i
754
+ // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
755
+ ],
756
+ [[k, D]]
757
+ ],
758
+ device: [
759
+ [
760
+ //////////////////////////
761
+ // MOBILES & TABLETS
762
+ /////////////////////////
763
+ // Samsung
764
+ /\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
765
+ ],
766
+ [t, [o, V], [i, c]],
767
+ [
768
+ /\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
769
+ /samsung[- ]((?!sm-[lr])[-\w]+)/i,
770
+ /sec-(sgh\w+)/i
771
+ ],
772
+ [t, [o, V], [i, d]],
773
+ [
774
+ // Apple
775
+ /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
776
+ // iPod/iPhone
777
+ ],
778
+ [t, [o, A], [i, d]],
779
+ [
780
+ /\((ipad);[-\w\),; ]+apple/i,
781
+ // iPad
782
+ /applecoremedia\/[\w\.]+ \((ipad)/i,
783
+ /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
784
+ ],
785
+ [t, [o, A], [i, c]],
786
+ [
787
+ /(macintosh);/i
788
+ ],
789
+ [t, [o, A]],
790
+ [
791
+ // Sharp
792
+ /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
793
+ ],
794
+ [t, [o, he], [i, d]],
795
+ [
796
+ // Honor
797
+ /\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
798
+ ],
799
+ [t, [o, ue], [i, c]],
800
+ [
801
+ /honor([-\w ]+)[;\)]/i
802
+ ],
803
+ [t, [o, ue], [i, d]],
804
+ [
805
+ // Huawei
806
+ /\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i
807
+ ],
808
+ [t, [o, be], [i, c]],
809
+ [
810
+ /(?:huawei)([-\w ]+)[;\)]/i,
811
+ /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
812
+ ],
813
+ [t, [o, be], [i, d]],
814
+ [
815
+ // Xiaomi
816
+ /oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
817
+ /\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
818
+ // Mi Pad tablets
819
+ ],
820
+ [[t, /_/g, " "], [o, ie], [i, c]],
821
+ [
822
+ /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
823
+ // Xiaomi POCO
824
+ /\b; (\w+) build\/hm\1/i,
825
+ // Xiaomi Hongmi 'numeric' models
826
+ /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
827
+ // Xiaomi Hongmi
828
+ /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
829
+ // Xiaomi Redmi
830
+ /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
831
+ // Xiaomi Redmi 'numeric' models
832
+ /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,
833
+ // Xiaomi Mi
834
+ / ([\w ]+) miui\/v?\d/i
835
+ ],
836
+ [[t, /_/g, " "], [o, ie], [i, d]],
837
+ [
838
+ // OPPO
839
+ /; (\w+) bui.+ oppo/i,
840
+ /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
841
+ ],
842
+ [t, [o, te], [i, d]],
843
+ [
844
+ /\b(opd2(\d{3}a?))(?: bui|\))/i
845
+ ],
846
+ [t, [o, X, { OnePlus: ["304", "403", "203"], "*": te }], [i, c]],
847
+ [
848
+ // Vivo
849
+ /vivo (\w+)(?: bui|\))/i,
850
+ /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
851
+ ],
852
+ [t, [o, "Vivo"], [i, d]],
853
+ [
854
+ // Realme
855
+ /\b(rmx[1-3]\d{3})(?: bui|;|\))/i
856
+ ],
857
+ [t, [o, "Realme"], [i, d]],
858
+ [
859
+ // Motorola
860
+ /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
861
+ /\bmot(?:orola)?[- ](\w*)/i,
862
+ /((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
863
+ ],
864
+ [t, [o, J], [i, d]],
865
+ [
866
+ /\b(mz60\d|xoom[2 ]{0,2}) build\//i
867
+ ],
868
+ [t, [o, J], [i, c]],
869
+ [
870
+ // LG
871
+ /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
872
+ ],
873
+ [t, [o, G], [i, c]],
874
+ [
875
+ /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
876
+ /\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,
877
+ /\blg-?([\d\w]+) bui/i
878
+ ],
879
+ [t, [o, G], [i, d]],
880
+ [
881
+ // Lenovo
882
+ /(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,
883
+ /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
884
+ ],
885
+ [t, [o, $e], [i, c]],
886
+ [
887
+ // Nokia
888
+ /(nokia) (t[12][01])/i
889
+ ],
890
+ [o, t, [i, c]],
891
+ [
892
+ /(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
893
+ /nokia[-_ ]?(([-\w\. ]*))/i
894
+ ],
895
+ [[t, /_/g, " "], [i, d], [o, "Nokia"]],
896
+ [
897
+ // Google
898
+ /(pixel (c|tablet))\b/i
899
+ // Google Pixel C/Tablet
900
+ ],
901
+ [t, [o, K], [i, c]],
902
+ [
903
+ /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
904
+ // Google Pixel
905
+ ],
906
+ [t, [o, K], [i, d]],
907
+ [
908
+ // Sony
909
+ /droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
910
+ ],
911
+ [t, [o, L], [i, d]],
912
+ [
913
+ /sony tablet [ps]/i,
914
+ /\b(?:sony)?sgp\w+(?: bui|\))/i
915
+ ],
916
+ [[t, "Xperia Tablet"], [o, L], [i, c]],
917
+ [
918
+ // OnePlus
919
+ / (kb2005|in20[12]5|be20[12][59])\b/i,
920
+ /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
921
+ ],
922
+ [t, [o, we], [i, d]],
923
+ [
924
+ // Amazon
925
+ /(alexa)webm/i,
926
+ /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,
927
+ // Kindle Fire without Silk / Echo Show
928
+ /(kf[a-z]+)( bui|\)).+silk\//i
929
+ // Kindle Fire HD
930
+ ],
931
+ [t, [o, U], [i, c]],
932
+ [
933
+ /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
934
+ // Fire Phone
935
+ ],
936
+ [[t, /(.+)/g, "Fire Phone $1"], [o, U], [i, d]],
937
+ [
938
+ // BlackBerry
939
+ /(playbook);[-\w\),; ]+(rim)/i
940
+ // BlackBerry PlayBook
941
+ ],
942
+ [t, o, [i, c]],
943
+ [
944
+ /\b((?:bb[a-f]|st[hv])100-\d)/i,
945
+ /\(bb10; (\w+)/i
946
+ // BlackBerry 10
947
+ ],
948
+ [t, [o, ce], [i, d]],
949
+ [
950
+ // Asus
951
+ /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
952
+ ],
953
+ [t, [o, de], [i, c]],
954
+ [
955
+ / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
956
+ ],
957
+ [t, [o, de], [i, d]],
958
+ [
959
+ // HTC
960
+ /(nexus 9)/i
961
+ // HTC Nexus 9
962
+ ],
963
+ [t, [o, "HTC"], [i, c]],
964
+ [
965
+ /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
966
+ // HTC
967
+ // ZTE
968
+ /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
969
+ /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
970
+ // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
971
+ ],
972
+ [o, [t, /_/g, " "], [i, d]],
973
+ [
974
+ // TCL
975
+ /droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i
976
+ ],
977
+ [t, [o, "TCL"], [i, c]],
978
+ [
979
+ // itel
980
+ /(itel) ((\w+))/i
981
+ ],
982
+ [[o, D], t, [i, X, { tablet: ["p10001l", "w7001"], "*": "mobile" }]],
983
+ [
984
+ // Acer
985
+ /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
986
+ ],
987
+ [t, [o, "Acer"], [i, c]],
988
+ [
989
+ // Meizu
990
+ /droid.+; (m[1-5] note) bui/i,
991
+ /\bmz-([-\w]{2,})/i
992
+ ],
993
+ [t, [o, "Meizu"], [i, d]],
994
+ [
995
+ // Ulefone
996
+ /; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
997
+ ],
998
+ [t, [o, "Ulefone"], [i, d]],
999
+ [
1000
+ // Energizer
1001
+ /; (energy ?\w+)(?: bui|\))/i,
1002
+ /; energizer ([\w ]+)(?: bui|\))/i
1003
+ ],
1004
+ [t, [o, "Energizer"], [i, d]],
1005
+ [
1006
+ // Cat
1007
+ /; cat (b35);/i,
1008
+ /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
1009
+ ],
1010
+ [t, [o, "Cat"], [i, d]],
1011
+ [
1012
+ // Smartfren
1013
+ /((?:new )?andromax[\w- ]+)(?: bui|\))/i
1014
+ ],
1015
+ [t, [o, "Smartfren"], [i, d]],
1016
+ [
1017
+ // Nothing
1018
+ /droid.+; (a(?:015|06[35]|142p?))/i
1019
+ ],
1020
+ [t, [o, "Nothing"], [i, d]],
1021
+ [
1022
+ // Archos
1023
+ /; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
1024
+ /archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i
1025
+ ],
1026
+ [t, [o, "Archos"], [i, c]],
1027
+ [
1028
+ /archos ([\w ]+)( b|\))/i,
1029
+ /; (ac[3-6]\d\w{2,8})( b|\))/i
1030
+ ],
1031
+ [t, [o, "Archos"], [i, d]],
1032
+ [
1033
+ // MIXED
1034
+ /(imo) (tab \w+)/i,
1035
+ // IMO
1036
+ /(infinix) (x1101b?)/i
1037
+ // Infinix XPad
1038
+ ],
1039
+ [o, t, [i, c]],
1040
+ [
1041
+ /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
1042
+ // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Infinix/Tecno/Micromax/Advan
1043
+ /; (hmd|imo) ([\w ]+?)(?: bui|\))/i,
1044
+ // HMD/IMO
1045
+ /(hp) ([\w ]+\w)/i,
1046
+ // HP iPAQ
1047
+ /(microsoft); (lumia[\w ]+)/i,
1048
+ // Microsoft Lumia
1049
+ /(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i,
1050
+ // Lenovo
1051
+ /(oppo) ?([\w ]+) bui/i
1052
+ // OPPO
1053
+ ],
1054
+ [o, t, [i, d]],
1055
+ [
1056
+ /(kobo)\s(ereader|touch)/i,
1057
+ // Kobo
1058
+ /(hp).+(touchpad(?!.+tablet)|tablet)/i,
1059
+ // HP TouchPad
1060
+ /(kindle)\/([\w\.]+)/i,
1061
+ // Kindle
1062
+ /(nook)[\w ]+build\/(\w+)/i,
1063
+ // Nook
1064
+ /(dell) (strea[kpr\d ]*[\dko])/i,
1065
+ // Dell Streak
1066
+ /(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
1067
+ // Le Pan Tablets
1068
+ /(trinity)[- ]*(t\d{3}) bui/i,
1069
+ // Trinity Tablets
1070
+ /(gigaset)[- ]+(q\w{1,9}) bui/i,
1071
+ // Gigaset Tablets
1072
+ /(vodafone) ([\w ]+)(?:\)| bui)/i
1073
+ // Vodafone
1074
+ ],
1075
+ [o, t, [i, c]],
1076
+ [
1077
+ /(surface duo)/i
1078
+ // Surface Duo
1079
+ ],
1080
+ [t, [o, Q], [i, c]],
1081
+ [
1082
+ /droid [\d\.]+; (fp\du?)(?: b|\))/i
1083
+ // Fairphone
1084
+ ],
1085
+ [t, [o, "Fairphone"], [i, d]],
1086
+ [
1087
+ /(u304aa)/i
1088
+ // AT&T
1089
+ ],
1090
+ [t, [o, "AT&T"], [i, d]],
1091
+ [
1092
+ /\bsie-(\w*)/i
1093
+ // Siemens
1094
+ ],
1095
+ [t, [o, "Siemens"], [i, d]],
1096
+ [
1097
+ /\b(rct\w+) b/i
1098
+ // RCA Tablets
1099
+ ],
1100
+ [t, [o, "RCA"], [i, c]],
1101
+ [
1102
+ /\b(venue[\d ]{2,7}) b/i
1103
+ // Dell Venue Tablets
1104
+ ],
1105
+ [t, [o, "Dell"], [i, c]],
1106
+ [
1107
+ /\b(q(?:mv|ta)\w+) b/i
1108
+ // Verizon Tablet
1109
+ ],
1110
+ [t, [o, "Verizon"], [i, c]],
1111
+ [
1112
+ /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i
1113
+ // Barnes & Noble Tablet
1114
+ ],
1115
+ [t, [o, "Barnes & Noble"], [i, c]],
1116
+ [
1117
+ /\b(tm\d{3}\w+) b/i
1118
+ ],
1119
+ [t, [o, "NuVision"], [i, c]],
1120
+ [
1121
+ /\b(k88) b/i
1122
+ // ZTE K Series Tablet
1123
+ ],
1124
+ [t, [o, "ZTE"], [i, c]],
1125
+ [
1126
+ /\b(nx\d{3}j) b/i
1127
+ // ZTE Nubia
1128
+ ],
1129
+ [t, [o, "ZTE"], [i, d]],
1130
+ [
1131
+ /\b(gen\d{3}) b.+49h/i
1132
+ // Swiss GEN Mobile
1133
+ ],
1134
+ [t, [o, "Swiss"], [i, d]],
1135
+ [
1136
+ /\b(zur\d{3}) b/i
1137
+ // Swiss ZUR Tablet
1138
+ ],
1139
+ [t, [o, "Swiss"], [i, c]],
1140
+ [
1141
+ /\b((zeki)?tb.*\b) b/i
1142
+ // Zeki Tablets
1143
+ ],
1144
+ [t, [o, "Zeki"], [i, c]],
1145
+ [
1146
+ /\b([yr]\d{2}) b/i,
1147
+ /\b(dragon[- ]+touch |dt)(\w{5}) b/i
1148
+ // Dragon Touch Tablet
1149
+ ],
1150
+ [[o, "Dragon Touch"], t, [i, c]],
1151
+ [
1152
+ /\b(ns-?\w{0,9}) b/i
1153
+ // Insignia Tablets
1154
+ ],
1155
+ [t, [o, "Insignia"], [i, c]],
1156
+ [
1157
+ /\b((nxa|next)-?\w{0,9}) b/i
1158
+ // NextBook Tablets
1159
+ ],
1160
+ [t, [o, "NextBook"], [i, c]],
1161
+ [
1162
+ /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i
1163
+ // Voice Xtreme Phones
1164
+ ],
1165
+ [[o, "Voice"], t, [i, d]],
1166
+ [
1167
+ /\b(lvtel\-)?(v1[12]) b/i
1168
+ // LvTel Phones
1169
+ ],
1170
+ [[o, "LvTel"], t, [i, d]],
1171
+ [
1172
+ /\b(ph-1) /i
1173
+ // Essential PH-1
1174
+ ],
1175
+ [t, [o, "Essential"], [i, d]],
1176
+ [
1177
+ /\b(v(100md|700na|7011|917g).*\b) b/i
1178
+ // Envizen Tablets
1179
+ ],
1180
+ [t, [o, "Envizen"], [i, c]],
1181
+ [
1182
+ /\b(trio[-\w\. ]+) b/i
1183
+ // MachSpeed Tablets
1184
+ ],
1185
+ [t, [o, "MachSpeed"], [i, c]],
1186
+ [
1187
+ /\btu_(1491) b/i
1188
+ // Rotor Tablets
1189
+ ],
1190
+ [t, [o, "Rotor"], [i, c]],
1191
+ [
1192
+ /((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
1193
+ // Nvidia Tablets
1194
+ ],
1195
+ [t, [o, ee], [i, c]],
1196
+ [
1197
+ /(sprint) (\w+)/i
1198
+ // Sprint Phones
1199
+ ],
1200
+ [o, t, [i, d]],
1201
+ [
1202
+ /(kin\.[onetw]{3})/i
1203
+ // Microsoft Kin
1204
+ ],
1205
+ [[t, /\./g, " "], [o, Q], [i, d]],
1206
+ [
1207
+ /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
1208
+ // Zebra
1209
+ ],
1210
+ [t, [o, oe], [i, c]],
1211
+ [
1212
+ /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
1213
+ ],
1214
+ [t, [o, oe], [i, d]],
1215
+ [
1216
+ ///////////////////
1217
+ // SMARTTVS
1218
+ ///////////////////
1219
+ /smart-tv.+(samsung)/i
1220
+ // Samsung
1221
+ ],
1222
+ [o, [i, v]],
1223
+ [
1224
+ /hbbtv.+maple;(\d+)/i
1225
+ ],
1226
+ [[t, /^/, "SmartTV"], [o, V], [i, v]],
1227
+ [
1228
+ /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
1229
+ // LG SmartTV
1230
+ ],
1231
+ [[o, G], [i, v]],
1232
+ [
1233
+ /(apple) ?tv/i
1234
+ // Apple TV
1235
+ ],
1236
+ [o, [t, A + " TV"], [i, v]],
1237
+ [
1238
+ /crkey/i
1239
+ // Google Chromecast
1240
+ ],
1241
+ [[t, j + "cast"], [o, K], [i, v]],
1242
+ [
1243
+ /droid.+aft(\w+)( bui|\))/i
1244
+ // Fire TV
1245
+ ],
1246
+ [t, [o, U], [i, v]],
1247
+ [
1248
+ /(shield \w+ tv)/i
1249
+ // Nvidia Shield TV
1250
+ ],
1251
+ [t, [o, ee], [i, v]],
1252
+ [
1253
+ /\(dtv[\);].+(aquos)/i,
1254
+ /(aquos-tv[\w ]+)\)/i
1255
+ // Sharp
1256
+ ],
1257
+ [t, [o, he], [i, v]],
1258
+ [
1259
+ /(bravia[\w ]+)( bui|\))/i
1260
+ // Sony
1261
+ ],
1262
+ [t, [o, L], [i, v]],
1263
+ [
1264
+ /(mi(tv|box)-?\w+) bui/i
1265
+ // Xiaomi
1266
+ ],
1267
+ [t, [o, ie], [i, v]],
1268
+ [
1269
+ /Hbbtv.*(technisat) (.*);/i
1270
+ // TechniSAT
1271
+ ],
1272
+ [o, t, [i, v]],
1273
+ [
1274
+ /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
1275
+ // Roku
1276
+ /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
1277
+ // HbbTV devices
1278
+ ],
1279
+ [[o, ae], [t, ae], [i, v]],
1280
+ [
1281
+ // SmartTV from Unidentified Vendors
1282
+ /droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i
1283
+ ],
1284
+ [t, [i, v]],
1285
+ [
1286
+ /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
1287
+ ],
1288
+ [[i, v]],
1289
+ [
1290
+ ///////////////////
1291
+ // CONSOLES
1292
+ ///////////////////
1293
+ /(ouya)/i,
1294
+ // Ouya
1295
+ /(nintendo) ([wids3utch]+)/i
1296
+ // Nintendo
1297
+ ],
1298
+ [o, t, [i, z]],
1299
+ [
1300
+ /droid.+; (shield)( bui|\))/i
1301
+ // Nvidia Portable
1302
+ ],
1303
+ [t, [o, ee], [i, z]],
1304
+ [
1305
+ /(playstation \w+)/i
1306
+ // Playstation
1307
+ ],
1308
+ [t, [o, L], [i, z]],
1309
+ [
1310
+ /\b(xbox(?: one)?(?!; xbox))[\); ]/i
1311
+ // Microsoft Xbox
1312
+ ],
1313
+ [t, [o, Q], [i, z]],
1314
+ [
1315
+ ///////////////////
1316
+ // WEARABLES
1317
+ ///////////////////
1318
+ /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
1319
+ // Samsung Galaxy Watch
1320
+ ],
1321
+ [t, [o, V], [i, _]],
1322
+ [
1323
+ /((pebble))app/i,
1324
+ // Pebble
1325
+ /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
1326
+ // Asus ZenWatch / LG Watch / Pixel Watch
1327
+ ],
1328
+ [o, t, [i, _]],
1329
+ [
1330
+ /(ow(?:19|20)?we?[1-3]{1,3})/i
1331
+ // Oppo Watch
1332
+ ],
1333
+ [t, [o, te], [i, _]],
1334
+ [
1335
+ /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
1336
+ // Apple Watch
1337
+ ],
1338
+ [t, [o, A], [i, _]],
1339
+ [
1340
+ /(opwwe\d{3})/i
1341
+ // OnePlus Watch
1342
+ ],
1343
+ [t, [o, we], [i, _]],
1344
+ [
1345
+ /(moto 360)/i
1346
+ // Motorola 360
1347
+ ],
1348
+ [t, [o, J], [i, _]],
1349
+ [
1350
+ /(smartwatch 3)/i
1351
+ // Sony SmartWatch
1352
+ ],
1353
+ [t, [o, L], [i, _]],
1354
+ [
1355
+ /(g watch r)/i
1356
+ // LG G Watch R
1357
+ ],
1358
+ [t, [o, G], [i, _]],
1359
+ [
1360
+ /droid.+; (wt63?0{2,3})\)/i
1361
+ ],
1362
+ [t, [o, oe], [i, _]],
1363
+ [
1364
+ ///////////////////
1365
+ // XR
1366
+ ///////////////////
1367
+ /droid.+; (glass) \d/i
1368
+ // Google Glass
1369
+ ],
1370
+ [t, [o, K], [i, _]],
1371
+ [
1372
+ /(pico) (4|neo3(?: link|pro)?)/i
1373
+ // Pico
1374
+ ],
1375
+ [o, t, [i, _]],
1376
+ [
1377
+ /; (quest( \d| pro)?)/i
1378
+ // Oculus Quest
1379
+ ],
1380
+ [t, [o, pe], [i, _]],
1381
+ [
1382
+ ///////////////////
1383
+ // EMBEDDED
1384
+ ///////////////////
1385
+ /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
1386
+ // Tesla
1387
+ ],
1388
+ [o, [i, P]],
1389
+ [
1390
+ /(aeobc)\b/i
1391
+ // Echo Dot
1392
+ ],
1393
+ [t, [o, U], [i, P]],
1394
+ [
1395
+ /(homepod).+mac os/i
1396
+ // Apple HomePod
1397
+ ],
1398
+ [t, [o, A], [i, P]],
1399
+ [
1400
+ /windows iot/i
1401
+ ],
1402
+ [[i, P]],
1403
+ [
1404
+ ////////////////////
1405
+ // MIXED (GENERIC)
1406
+ ///////////////////
1407
+ /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i
1408
+ // Android Phones from Unidentified Vendors
1409
+ ],
1410
+ [t, [i, d]],
1411
+ [
1412
+ /droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i
1413
+ // Android Tablets from Unidentified Vendors
1414
+ ],
1415
+ [t, [i, c]],
1416
+ [
1417
+ /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
1418
+ // Unidentifiable Tablet
1419
+ ],
1420
+ [[i, c]],
1421
+ [
1422
+ /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
1423
+ // Unidentifiable Mobile
1424
+ ],
1425
+ [[i, d]],
1426
+ [
1427
+ /droid .+?; ([\w\. -]+)( bui|\))/i
1428
+ // Generic Android Device
1429
+ ],
1430
+ [t, [o, "Generic"]]
1431
+ ],
1432
+ engine: [
1433
+ [
1434
+ /windows.+ edge\/([\w\.]+)/i
1435
+ // EdgeHTML
1436
+ ],
1437
+ [s, [a, Re + "HTML"]],
1438
+ [
1439
+ /(arkweb)\/([\w\.]+)/i
1440
+ // ArkWeb
1441
+ ],
1442
+ [a, s],
1443
+ [
1444
+ /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
1445
+ // Blink
1446
+ ],
1447
+ [s, [a, "Blink"]],
1448
+ [
1449
+ /(presto)\/([\w\.]+)/i,
1450
+ // Presto
1451
+ /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,
1452
+ // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo
1453
+ /ekioh(flow)\/([\w\.]+)/i,
1454
+ // Flow
1455
+ /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
1456
+ // KHTML/Tasman/Links
1457
+ /(icab)[\/ ]([23]\.[\d\.]+)/i,
1458
+ // iCab
1459
+ /\b(libweb)/i
1460
+ // LibWeb
1461
+ ],
1462
+ [a, s],
1463
+ [
1464
+ /ladybird\//i
1465
+ ],
1466
+ [[a, "LibWeb"]],
1467
+ [
1468
+ /rv\:([\w\.]{1,9})\b.+(gecko)/i
1469
+ // Gecko
1470
+ ],
1471
+ [s, a]
1472
+ ],
1473
+ os: [
1474
+ [
1475
+ // Windows
1476
+ /microsoft (windows) (vista|xp)/i
1477
+ // Windows (iTunes)
1478
+ ],
1479
+ [a, s],
1480
+ [
1481
+ /(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i
1482
+ // Windows Phone
1483
+ ],
1484
+ [a, [s, X, ge]],
1485
+ [
1486
+ /windows nt 6\.2; (arm)/i,
1487
+ // Windows RT
1488
+ /windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,
1489
+ /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
1490
+ ],
1491
+ [[s, X, ge], [a, "Windows"]],
1492
+ [
1493
+ // iOS/macOS
1494
+ /[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
1495
+ // iOS
1496
+ /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
1497
+ /cfnetwork\/.+darwin/i
1498
+ ],
1499
+ [[s, /_/g, "."], [a, "iOS"]],
1500
+ [
1501
+ /(mac os x) ?([\w\. ]*)/i,
1502
+ /(macintosh|mac_powerpc\b)(?!.+haiku)/i
1503
+ // Mac OS
1504
+ ],
1505
+ [[a, fe], [s, /_/g, "."]],
1506
+ [
1507
+ // Mobile OSes
1508
+ /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
1509
+ // Android-x86/HarmonyOS
1510
+ ],
1511
+ [s, a],
1512
+ [
1513
+ /(ubuntu) ([\w\.]+) like android/i
1514
+ // Ubuntu Touch
1515
+ ],
1516
+ [[a, /(.+)/, "$1 Touch"], s],
1517
+ [
1518
+ // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
1519
+ /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i
1520
+ ],
1521
+ [a, s],
1522
+ [
1523
+ /\(bb(10);/i
1524
+ // BlackBerry 10
1525
+ ],
1526
+ [s, [a, ce]],
1527
+ [
1528
+ /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
1529
+ // Symbian
1530
+ ],
1531
+ [s, [a, "Symbian"]],
1532
+ [
1533
+ /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
1534
+ // Firefox OS
1535
+ ],
1536
+ [s, [a, H + " OS"]],
1537
+ [
1538
+ /web0s;.+rt(tv)/i,
1539
+ /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
1540
+ // WebOS
1541
+ ],
1542
+ [s, [a, "webOS"]],
1543
+ [
1544
+ /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
1545
+ // watchOS
1546
+ ],
1547
+ [s, [a, "watchOS"]],
1548
+ [
1549
+ // Google Chromecast
1550
+ /crkey\/([\d\.]+)/i
1551
+ // Google Chromecast
1552
+ ],
1553
+ [s, [a, j + "cast"]],
1554
+ [
1555
+ /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
1556
+ // Chromium OS
1557
+ ],
1558
+ [[a, me], s],
1559
+ [
1560
+ // Smart TVs
1561
+ /panasonic;(viera)/i,
1562
+ // Panasonic Viera
1563
+ /(netrange)mmh/i,
1564
+ // Netrange
1565
+ /(nettv)\/(\d+\.[\w\.]+)/i,
1566
+ // NetTV
1567
+ // Console
1568
+ /(nintendo|playstation) ([wids345portablevuch]+)/i,
1569
+ // Nintendo/Playstation
1570
+ /(xbox); +xbox ([^\);]+)/i,
1571
+ // Microsoft Xbox (360, One, X, S, Series X, Series S)
1572
+ // Other
1573
+ /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
1574
+ // Joli/Palm
1575
+ /(mint)[\/\(\) ]?(\w*)/i,
1576
+ // Mint
1577
+ /(mageia|vectorlinux)[; ]/i,
1578
+ // Mageia/VectorLinux
1579
+ /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
1580
+ // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
1581
+ /(hurd|linux)(?: arm\w*| x86\w*| ?)([\w\.]*)/i,
1582
+ // Hurd/Linux
1583
+ /(gnu) ?([\w\.]*)/i,
1584
+ // GNU
1585
+ /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
1586
+ // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
1587
+ /(haiku) (\w+)/i
1588
+ // Haiku
1589
+ ],
1590
+ [a, s],
1591
+ [
1592
+ /(sunos) ?([\w\.\d]*)/i
1593
+ // Solaris
1594
+ ],
1595
+ [[a, "Solaris"], s],
1596
+ [
1597
+ /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
1598
+ // Solaris
1599
+ /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
1600
+ // AIX
1601
+ /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
1602
+ // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
1603
+ /(unix) ?([\w\.]*)/i
1604
+ // UNIX
1605
+ ],
1606
+ [a, s]
1607
+ ]
1608
+ }, y = function(b, w) {
1609
+ if (typeof b === g && (w = b, b = p), !(this instanceof y))
1610
+ return new y(b, w).getResult();
1611
+ var u = typeof n !== f && n.navigator ? n.navigator : p, m = b || (u && u.userAgent ? u.userAgent : T), E = u && u.userAgentData ? u.userAgentData : p, x = w ? Ne(ye, w) : ye, h = u && u.userAgent == m;
1612
+ return this.getBrowser = function() {
1613
+ var r = {};
1614
+ return r[a] = p, r[s] = p, F.call(r, m, x.browser), r[N] = ze(r[s]), h && u && u.brave && typeof u.brave.isBrave == $ && (r[a] = "Brave"), r;
1615
+ }, this.getCPU = function() {
1616
+ var r = {};
1617
+ return r[k] = p, F.call(r, m, x.cpu), r;
1618
+ }, this.getDevice = function() {
1619
+ var r = {};
1620
+ return r[o] = p, r[t] = p, r[i] = p, F.call(r, m, x.device), h && !r[i] && E && E.mobile && (r[i] = d), h && r[t] == "Macintosh" && u && typeof u.standalone !== f && u.maxTouchPoints && u.maxTouchPoints > 2 && (r[t] = "iPad", r[i] = c), r;
1621
+ }, this.getEngine = function() {
1622
+ var r = {};
1623
+ return r[a] = p, r[s] = p, F.call(r, m, x.engine), r;
1624
+ }, this.getOS = function() {
1625
+ var r = {};
1626
+ return r[a] = p, r[s] = p, F.call(r, m, x.os), h && !r[a] && E && E.platform && E.platform != "Unknown" && (r[a] = E.platform.replace(/chrome os/i, me).replace(/macos/i, fe)), r;
1627
+ }, this.getResult = function() {
1628
+ return {
1629
+ ua: this.getUA(),
1630
+ browser: this.getBrowser(),
1631
+ engine: this.getEngine(),
1632
+ os: this.getOS(),
1633
+ device: this.getDevice(),
1634
+ cpu: this.getCPU()
1635
+ };
1636
+ }, this.getUA = function() {
1637
+ return m;
1638
+ }, this.setUA = function(r) {
1639
+ return m = typeof r === O && r.length > Z ? ae(r, Z) : r, this;
1640
+ }, this.setUA(m), this;
1641
+ };
1642
+ y.VERSION = C, y.BROWSER = W([a, s, N]), y.CPU = W([k]), y.DEVICE = W([t, o, i, z, d, v, c, _, P]), y.ENGINE = y.OS = W([a, s]), e.exports && (l = e.exports = y), l.UAParser = y;
1643
+ var B = typeof n !== f && (n.jQuery || n.Zepto);
1644
+ if (B && !B.ua) {
1645
+ var Y = new y();
1646
+ B.ua = Y.getResult(), B.ua.get = function() {
1647
+ return Y.getUA();
1648
+ }, B.ua.set = function(b) {
1649
+ Y.setUA(b);
1650
+ var w = Y.getResult();
1651
+ for (var u in w)
1652
+ B.ua[u] = w[u];
1653
+ };
1654
+ }
1655
+ })(typeof window == "object" ? window : Je);
1656
+ })(le, le.exports);
1657
+ var tt = le.exports;
1658
+ const it = /* @__PURE__ */ et(tt);
1659
+ function Ae() {
1660
+ if (window.webkit != null && window.webkit.messageHandlers !== "undefined")
1661
+ try {
1662
+ var e = it(navigator.userAgent);
1663
+ if (e.browser.name === "WebKit")
1664
+ return "ios_webview";
1665
+ } catch (l) {
1666
+ console.error(l);
1667
+ }
1668
+ return typeof Android < "u" ? "android_webview" : typeof window.cefQuery < "u" ? "cef_webview" : "browser";
1669
+ }
1670
+ function Be() {
1671
+ return Ae() === "ios_webview";
1672
+ }
1673
+ function Me() {
1674
+ return Ae() === "android_webview";
1675
+ }
1676
+ var ot = function() {
1677
+ var e = this, l = e.$createElement, n = e._self._c || l;
1678
+ return n("transition", {
1679
+ attrs: {
1680
+ name: e.enableAnimation ? "dialog-slide" : ""
1681
+ }
1682
+ }, [e.modelValue ? n("div", {
1683
+ staticClass: "sky-dialogbox sky-dialogbox-classic",
1684
+ style: [e.zIndex ? {
1685
+ "z-index": e.zIndex
1686
+ } : null]
1687
+ }, [n("div", {
1688
+ staticClass: "sky-dialog-overlay",
1689
+ class: {
1690
+ "sky-dialog-animate": e.enableAnimation
1691
+ }
1692
+ }, [n("div", {
1693
+ ref: "dialogContent",
1694
+ staticClass: "sky-dialog-content"
1695
+ }, [n("div", {
1696
+ staticClass: "sky-dialog-title",
1697
+ class: {
1698
+ "sky-dialog-title-with-subtitle": e.subtitle
1699
+ }
1700
+ }, [e._v(" " + e._s(e.title) + " "), e.subtitle ? n("span", {
1701
+ staticClass: "sky-dialog-subtitle"
1702
+ }, [e._v(e._s(e.subtitle))]) : e._e()]), n("button", {
1703
+ staticClass: "sky-dialog-close",
1704
+ attrs: {
1705
+ title: e.closeText
1706
+ },
1707
+ on: {
1708
+ click: e.close
1709
+ }
1710
+ }, [n("svg", {
1711
+ attrs: {
1712
+ viewBox: "0 0 16 16",
1713
+ width: "16",
1714
+ height: "16"
1715
+ }
1716
+ }, [n("line", {
1717
+ attrs: {
1718
+ x1: "1",
1719
+ y1: "15",
1720
+ x2: "15",
1721
+ y2: "1",
1722
+ stroke: "currentColor",
1723
+ "stroke-width": "2"
1724
+ }
1725
+ }), n("line", {
1726
+ attrs: {
1727
+ x1: "1",
1728
+ y1: "1",
1729
+ x2: "15",
1730
+ y2: "15",
1731
+ stroke: "currentColor",
1732
+ "stroke-width": "2"
1733
+ }
1734
+ })])]), n("div", {
1735
+ staticClass: "sky-dialog-clearfix"
1736
+ }), n("div", {
1737
+ ref: "dialogPaper",
1738
+ staticClass: "sky-dialog-paper",
1739
+ class: {
1740
+ "sky-dialog-paper-no-footer": !e.showFooter
1741
+ },
1742
+ on: {
1743
+ touchstart: e.handleTouchStart,
1744
+ touchend: e.handleTouchEnd
1745
+ }
1746
+ }, [e.isIos ? n("div", {
1747
+ staticClass: "sky-dialog-swipe-area"
1748
+ }) : e._e(), e._t("default")], 2), e.showFooter ? n("div", {
1749
+ staticClass: "sky-dialog-footer",
1750
+ class: {
1751
+ "sky-dialog-footer-animate": e.enableAnimation
1752
+ }
1753
+ }, [e._t("buttons")], 2) : e._e()])])]) : e._e()]);
1754
+ }, at = [];
1755
+ const st = {
1756
+ name: "DialogModal",
1757
+ props: {
1758
+ modelValue: {
1759
+ type: Boolean,
1760
+ default: !1
1761
+ },
1762
+ title: {
1763
+ type: String,
1764
+ default: ""
1765
+ },
1766
+ subtitle: {
1767
+ type: String,
1768
+ default: ""
1769
+ },
1770
+ zIndex: {
1771
+ type: [Number, String],
1772
+ default: null
1773
+ },
1774
+ closeText: {
1775
+ type: String,
1776
+ default: "Закрити"
1777
+ },
1778
+ enableAnimation: {
1779
+ type: Boolean,
1780
+ default: !0
1781
+ },
1782
+ closeOnEsc: {
1783
+ type: Boolean,
1784
+ default: !0
1785
+ },
1786
+ hasButtons: {
1787
+ type: Boolean,
1788
+ default: null
1789
+ }
1790
+ },
1791
+ data() {
1792
+ return {
1793
+ touchStartX: 0
1794
+ };
1795
+ },
1796
+ computed: {
1797
+ isIos() {
1798
+ try {
1799
+ return Be();
1800
+ } catch {
1801
+ return !1;
1802
+ }
1803
+ },
1804
+ isAndroid() {
1805
+ try {
1806
+ return Me();
1807
+ } catch {
1808
+ return !1;
1809
+ }
1810
+ },
1811
+ // Determine if footer should be shown
1812
+ showFooter() {
1813
+ return this.hasButtons !== null ? this.hasButtons : !!this.$slots.buttons;
1814
+ }
1815
+ },
1816
+ watch: {
1817
+ // Body scroll lock
1818
+ modelValue(e) {
1819
+ e ? (document.body.style.overflow = "hidden", this.$nextTick(() => {
1820
+ this.androidFix();
1821
+ })) : document.body.style.overflow = "";
1822
+ }
1823
+ },
1824
+ mounted() {
1825
+ document.addEventListener("keydown", this.handleKeydown), window.addEventListener("resize", this.androidFix);
1826
+ },
1827
+ beforeDestroy() {
1828
+ document.removeEventListener("keydown", this.handleKeydown), window.removeEventListener("resize", this.androidFix), document.body.style.overflow = "";
1829
+ },
1830
+ methods: {
1831
+ close() {
1832
+ this.$emit("update:modelValue", !1), this.$emit("close");
1833
+ },
1834
+ handleKeydown(e) {
1835
+ e.key === "Escape" && this.closeOnEsc && this.modelValue && this.close(), e.key === "Enter" && this.modelValue && this.$emit("save");
1836
+ },
1837
+ // Touch handling for iOS swipe back
1838
+ handleTouchStart(e) {
1839
+ e.touches[0].clientX < 35 && (this.touchStartX = e.touches[0].clientX);
1840
+ },
1841
+ handleTouchEnd(e) {
1842
+ this.touchStartX > 0 && this.touchStartX < 35 && e.changedTouches[0].clientX - this.touchStartX > 50 && this.close(), this.touchStartX = 0;
1843
+ },
1844
+ // Android notch fix
1845
+ androidFix() {
1846
+ if (!(!this.isAndroid || !this.$refs.dialogContent))
1847
+ try {
1848
+ if (typeof Android < "u" && Android.getDisplayCutoutTop) {
1849
+ const e = Android.getDisplayCutoutTop();
1850
+ if (e && window.devicePixelRatio > 1) {
1851
+ const l = e / window.devicePixelRatio;
1852
+ this.$refs.dialogContent.style.paddingTop = l + "px";
1853
+ }
1854
+ }
1855
+ } catch {
1856
+ }
1857
+ }
1858
+ }
1859
+ }, Ce = {};
1860
+ var nt = /* @__PURE__ */ M(
1861
+ st,
1862
+ ot,
1863
+ at,
1864
+ !1,
1865
+ rt,
1866
+ "e3d8b1e2",
1867
+ null,
1868
+ null
1869
+ );
1870
+ function rt(e) {
1871
+ for (let l in Ce)
1872
+ this[l] = Ce[l];
1873
+ }
1874
+ const ne = /* @__PURE__ */ function() {
1875
+ return nt.exports;
1876
+ }();
1877
+ var lt = function() {
1878
+ var e = this, l = e.$createElement, n = e._self._c || l;
1879
+ return n("transition", {
1880
+ attrs: {
1881
+ name: e.enableAnimation ? "dialog-slide" : ""
1882
+ }
1883
+ }, [e.modelValue ? n("div", {
1884
+ staticClass: "sky-dialogbox sky-dialogbox-next",
1885
+ style: [e.zIndex ? {
1886
+ "z-index": e.zIndex
1887
+ } : null]
1888
+ }, [n("div", {
1889
+ staticClass: "sky-dialog-overlay",
1890
+ class: {
1891
+ "sky-dialog-animate": e.enableAnimation
1892
+ }
1893
+ }, [n("div", {
1894
+ ref: "dialogContent",
1895
+ staticClass: "sky-dialog-content"
1896
+ }, [n("button", {
1897
+ staticClass: "sky-dialog-back",
1898
+ attrs: {
1899
+ title: e.closeText
1900
+ },
1901
+ on: {
1902
+ click: e.close
1903
+ }
1904
+ }, [n("svg", {
1905
+ staticStyle: {
1906
+ transform: "rotate(90deg)"
1907
+ },
1908
+ attrs: {
1909
+ width: "15",
1910
+ height: "15",
1911
+ viewBox: "0 0 451.847 451.847"
1912
+ }
1913
+ }, [n("path", {
1914
+ attrs: {
1915
+ fill: "currentColor",
1916
+ d: "M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"
1917
+ }
1918
+ })])]), n("div", {
1919
+ staticClass: "sky-dialog-title",
1920
+ class: {
1921
+ "sky-dialog-title-with-subtitle": e.subtitle
1922
+ }
1923
+ }, [e._v(" " + e._s(e.title) + " "), e.subtitle ? n("span", {
1924
+ staticClass: "sky-dialog-subtitle"
1925
+ }, [e._v(e._s(e.subtitle))]) : e._e()]), n("div", {
1926
+ staticClass: "sky-dialog-clearfix"
1927
+ }), n("div", {
1928
+ ref: "dialogPaper",
1929
+ staticClass: "sky-dialog-paper",
1930
+ class: {
1931
+ "sky-dialog-paper-no-footer": !e.showFooter
1932
+ },
1933
+ on: {
1934
+ touchstart: e.handleTouchStart,
1935
+ touchend: e.handleTouchEnd
1936
+ }
1937
+ }, [e.isIos ? n("div", {
1938
+ staticClass: "sky-dialog-swipe-area"
1939
+ }) : e._e(), e._t("default")], 2), e.showFooter ? n("div", {
1940
+ staticClass: "sky-dialog-footer",
1941
+ class: {
1942
+ "sky-dialog-footer-animate": e.enableAnimation
1943
+ }
1944
+ }, [e._t("buttons")], 2) : e._e()])])]) : e._e()]);
1945
+ }, dt = [];
1946
+ const ct = {
1947
+ name: "DialogNext",
1948
+ props: {
1949
+ modelValue: {
1950
+ type: Boolean,
1951
+ default: !1
1952
+ },
1953
+ title: {
1954
+ type: String,
1955
+ default: ""
1956
+ },
1957
+ subtitle: {
1958
+ type: String,
1959
+ default: ""
1960
+ },
1961
+ zIndex: {
1962
+ type: [Number, String],
1963
+ default: null
1964
+ },
1965
+ closeText: {
1966
+ type: String,
1967
+ default: "Назад"
1968
+ },
1969
+ enableAnimation: {
1970
+ type: Boolean,
1971
+ default: !0
1972
+ },
1973
+ closeOnEsc: {
1974
+ type: Boolean,
1975
+ default: !0
1976
+ },
1977
+ hasButtons: {
1978
+ type: Boolean,
1979
+ default: null
1980
+ }
1981
+ },
1982
+ data() {
1983
+ return {
1984
+ touchStartX: 0
1985
+ };
1986
+ },
1987
+ computed: {
1988
+ isIos() {
1989
+ try {
1990
+ return Be();
1991
+ } catch {
1992
+ return !1;
1993
+ }
1994
+ },
1995
+ isAndroid() {
1996
+ try {
1997
+ return Me();
1998
+ } catch {
1999
+ return !1;
2000
+ }
2001
+ },
2002
+ // Determine if footer should be shown
2003
+ showFooter() {
2004
+ return this.hasButtons !== null ? this.hasButtons : !!this.$slots.buttons;
2005
+ }
2006
+ },
2007
+ watch: {
2008
+ // Body scroll lock
2009
+ modelValue(e) {
2010
+ e ? (document.body.style.overflow = "hidden", this.$nextTick(() => {
2011
+ this.androidFix();
2012
+ })) : document.body.style.overflow = "";
2013
+ }
2014
+ },
2015
+ mounted() {
2016
+ document.addEventListener("keydown", this.handleKeydown), window.addEventListener("resize", this.androidFix);
2017
+ },
2018
+ beforeDestroy() {
2019
+ document.removeEventListener("keydown", this.handleKeydown), window.removeEventListener("resize", this.androidFix), document.body.style.overflow = "";
2020
+ },
2021
+ methods: {
2022
+ close() {
2023
+ this.$emit("update:modelValue", !1), this.$emit("close");
2024
+ },
2025
+ handleKeydown(e) {
2026
+ e.key === "Escape" && this.closeOnEsc && this.modelValue && this.close(), e.key === "Enter" && this.modelValue && this.$emit("save");
2027
+ },
2028
+ // Touch handling for iOS swipe back
2029
+ handleTouchStart(e) {
2030
+ e.touches[0].clientX < 35 && (this.touchStartX = e.touches[0].clientX);
2031
+ },
2032
+ handleTouchEnd(e) {
2033
+ this.touchStartX > 0 && this.touchStartX < 35 && e.changedTouches[0].clientX - this.touchStartX > 50 && this.close(), this.touchStartX = 0;
2034
+ },
2035
+ // Android notch fix
2036
+ androidFix() {
2037
+ if (!(!this.isAndroid || !this.$refs.dialogContent))
2038
+ try {
2039
+ if (typeof Android < "u" && Android.getDisplayCutoutTop) {
2040
+ const e = Android.getDisplayCutoutTop();
2041
+ if (e && window.devicePixelRatio > 1) {
2042
+ const l = e / window.devicePixelRatio;
2043
+ this.$refs.dialogContent.style.paddingTop = l + "px";
2044
+ }
2045
+ }
2046
+ } catch {
2047
+ }
2048
+ }
2049
+ }
2050
+ }, Te = {};
2051
+ var ut = /* @__PURE__ */ M(
2052
+ ct,
2053
+ lt,
2054
+ dt,
2055
+ !1,
2056
+ bt,
2057
+ "2773fecb",
2058
+ null,
2059
+ null
2060
+ );
2061
+ function bt(e) {
2062
+ for (let l in Te)
2063
+ this[l] = Te[l];
2064
+ }
2065
+ const re = /* @__PURE__ */ function() {
2066
+ return ut.exports;
2067
+ }();
2068
+ var wt = function() {
2069
+ var e = this, l = e.$createElement, n = e._self._c || l;
2070
+ return n(e.dialogComponent, {
2071
+ tag: "component",
2072
+ attrs: {
2073
+ title: e.title,
2074
+ subtitle: e.subtitle,
2075
+ "z-index": e.zIndex,
2076
+ "close-text": e.closeText,
2077
+ "enable-animation": e.enableAnimation,
2078
+ "close-on-esc": e.closeOnEsc,
2079
+ "has-buttons": !!e.$slots.buttons
2080
+ },
2081
+ on: {
2082
+ close: function(p) {
2083
+ return e.$emit("close");
2084
+ },
2085
+ save: function(p) {
2086
+ return e.$emit("save");
2087
+ }
2088
+ },
2089
+ scopedSlots: e._u([e.$slots.buttons ? {
2090
+ key: "buttons",
2091
+ fn: function() {
2092
+ return [e._t("buttons")];
2093
+ },
2094
+ proxy: !0
2095
+ } : null], null, !0),
2096
+ model: {
2097
+ value: e.isOpen,
2098
+ callback: function(p) {
2099
+ e.isOpen = p;
2100
+ },
2101
+ expression: "isOpen"
2102
+ }
2103
+ }, [e._t("default")], 2);
2104
+ }, ht = [];
2105
+ const pt = {
2106
+ name: "Dialog",
2107
+ components: {
2108
+ DialogModal: ne,
2109
+ DialogNext: re
2110
+ },
2111
+ props: {
2112
+ modelValue: {
2113
+ type: Boolean,
2114
+ default: !1
2115
+ },
2116
+ title: {
2117
+ type: String,
2118
+ default: ""
2119
+ },
2120
+ subtitle: {
2121
+ type: String,
2122
+ default: ""
2123
+ },
2124
+ zIndex: {
2125
+ type: [Number, String],
2126
+ default: null
2127
+ },
2128
+ closeText: {
2129
+ type: String,
2130
+ default: ""
2131
+ },
2132
+ enableAnimation: {
2133
+ type: Boolean,
2134
+ default: !0
2135
+ },
2136
+ closeOnEsc: {
2137
+ type: Boolean,
2138
+ default: !0
2139
+ },
2140
+ // Force specific mode (overrides URL parameter)
2141
+ mode: {
2142
+ type: String,
2143
+ default: null,
2144
+ // 'next' | 'classic' | null (auto-detect)
2145
+ validator: (e) => [null, "next", "classic"].includes(e)
2146
+ }
2147
+ },
2148
+ data() {
2149
+ return {
2150
+ rocketMode: !0
2151
+ // default to DialogNext
2152
+ };
2153
+ },
2154
+ computed: {
2155
+ isOpen: {
2156
+ get() {
2157
+ return this.modelValue;
2158
+ },
2159
+ set(e) {
2160
+ this.$emit("update:modelValue", e);
2161
+ }
2162
+ },
2163
+ dialogComponent() {
2164
+ return this.mode === "next" ? re : this.mode === "classic" ? ne : this.rocketMode ? re : ne;
2165
+ }
2166
+ },
2167
+ mounted() {
2168
+ try {
2169
+ new URLSearchParams(window.location.search).get("rocketMode") === "false" ? this.rocketMode = !1 : this.rocketMode = !0;
2170
+ } catch {
2171
+ this.rocketMode = !0;
2172
+ }
2173
+ }
2174
+ }, Oe = {};
2175
+ var mt = /* @__PURE__ */ M(
2176
+ pt,
2177
+ wt,
2178
+ ht,
2179
+ !1,
2180
+ ft,
2181
+ null,
2182
+ null,
2183
+ null
2184
+ );
2185
+ function ft(e) {
2186
+ for (let l in Oe)
2187
+ this[l] = Oe[l];
2188
+ }
2189
+ const gt = /* @__PURE__ */ function() {
2190
+ return mt.exports;
2191
+ }();
2192
+ export {
2193
+ Ke as BaseTeleport,
2194
+ gt as Dialog,
2195
+ vt as Header,
2196
+ _t as Modal
2197
+ };