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