@feedmepos/mf-connect 0.1.0-beta.6 → 0.1.0-beta.61

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 (119) hide show
  1. package/dist/Analytic-u9mtlxSv.js +427 -0
  2. package/dist/{App-C2616cfr.js → App-BwTQE7Ft.js} +445 -420
  3. package/dist/AuditLogs-BVMRclSw.js +1886 -0
  4. package/dist/Bin-Cca-XOkz.js +166 -0
  5. package/dist/{Broadcast-CqSwLTAq.js → Broadcast-DRQgpwdP.js} +56 -54
  6. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-DrR9Pmtb.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CeUu_T1u.js} +6 -8
  7. package/dist/Card-CnbB_u31.js +896 -0
  8. package/dist/Collections-BjlfOSC3.js +459 -0
  9. package/dist/{Credit-CPcLgnsq.js → Credit-BoElrcx9.js} +36 -34
  10. package/dist/CustomSelect.vue_vue_type_script_setup_true_lang-DLnvDVgf.js +108 -0
  11. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-BUzUIIUW.js +58 -0
  12. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-B3WVwem6.js +2181 -0
  13. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-D2buK6Dj.js → EffectSheet.vue_vue_type_style_index_0_lang-CGfpziKs.js} +18 -18
  14. package/dist/{Experience-BoBikt-x.js → Experience-SdGBf4vU.js} +32 -30
  15. package/dist/FilterChip.vue_vue_type_script_setup_true_lang-BrPLkFX8.js +118 -0
  16. package/dist/{Game-DR8PyYZa.js → Game-ChLHibpB.js} +39 -37
  17. package/dist/Index-D7Kq6uyf.js +259 -0
  18. package/dist/Marketing-BDajIqR_.js +20071 -0
  19. package/dist/Member-BPZryqWL.js +317 -0
  20. package/dist/MemberList-C52Dop8Z.js +1598 -0
  21. package/dist/MemberTransactions-DHU78kgS.js +45 -0
  22. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-DhtIZCjT.js → MessageInput.vue_vue_type_script_setup_true_lang-js1F2E4N.js} +83 -71
  23. package/dist/{Mission-CMpvz9zN.js → Mission-BQR3qjAu.js} +101 -87
  24. package/dist/Overview-BbLYWXjG.js +1078 -0
  25. package/dist/{Point-DkZn6p9s.js → Point-DbTcWJbQ.js} +55 -53
  26. package/dist/{Promotion-B7YzwPc_.js → Promotion-CIrpWBQD.js} +65 -57
  27. package/dist/Queue-B0Mfq2Vn.js +244 -0
  28. package/dist/Record-Z6ZrJeLc.js +340 -0
  29. package/dist/Reward-D6k0QFQA.js +442 -0
  30. package/dist/RewardGroup.vue_vue_type_script_setup_true_lang-GJ6j_jOh.js +150 -0
  31. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-gQxmX9ur.js +1637 -0
  32. package/dist/Segment-D6MF-EO8.js +568 -0
  33. package/dist/SelectItems.vue_vue_type_script_setup_true_lang-BWG-pz6F.js +181 -0
  34. package/dist/SendVoucherSheet.vue_vue_type_script_setup_true_lang-HgorlHNz.js +147 -0
  35. package/dist/Setting--OFDS95z.js +1931 -0
  36. package/dist/Store-BqlRTC-c.js +1751 -0
  37. package/dist/{StoreRewards-6BzVwZqr.js → StoreRewards-BTu0IdDN.js} +33 -32
  38. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BX053DJA.js +943 -0
  39. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-B6cAveco.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-BAkuqLwy.js} +1 -1
  40. package/dist/{Tier-CW-46oJS.js → Tier-CE9LYAEX.js} +327 -318
  41. package/dist/{Title-CE9rWVdi.js → Title-DOOASUMI.js} +199 -184
  42. package/dist/{Transaction-B21RrC4M.js → Transaction-DPxUOBP-.js} +2 -2
  43. package/dist/UserRuleGroup.vue_vue_type_script_setup_true_lang-CKwf0F_i.js +130 -0
  44. package/dist/Voucher-D69DD02z.js +354 -0
  45. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-CFL0Nsez.js +419 -0
  46. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-BiVZwBuG.js → ZodTextField.vue_vue_type_script_setup_true_lang-Byh6_EJM.js} +1 -1
  47. package/dist/app-C2u1t47T.js +7059 -0
  48. package/dist/app-DgfmbHZe.js +33357 -0
  49. package/dist/app.js +1 -1
  50. package/dist/{business-aHhRUXc0.js → business-BqCJB_vA.js} +1 -1
  51. package/dist/{campaign-DH9NUNf_.js → campaign-CWMPCmmU.js} +2 -2
  52. package/dist/campaign-D0dTbl5b.js +1810 -0
  53. package/dist/campaign.enum-DhE8N4pA.js +20 -0
  54. package/dist/campaign.fn-BpO-RQih.js +758 -0
  55. package/dist/collectible.enum-rWEc6Tsw.js +19 -0
  56. package/dist/{collection.fn-CYlsA-kW.js → collection.fn-biX2iFDQ.js} +2 -2
  57. package/dist/dto-3m7xZwfI.js +214 -0
  58. package/dist/{effect-LSc9YanX.js → effect-ZMGRxKCZ.js} +9 -9
  59. package/dist/email-addresses-lgY03bkq.js +705 -0
  60. package/dist/{export-Cf0-C5Ly.js → export-BOzeYUy8.js} +5 -5
  61. package/dist/{helper-CiZpeMCM.js → helper-CO29wun4.js} +1 -1
  62. package/dist/index-B3V7krW_.js +29000 -0
  63. package/dist/index-BVbiAxW8.js +115 -0
  64. package/dist/{index-D_83JP2i.js → index-Bvch9tuP.js} +48 -4
  65. package/dist/index-CYOwwy3h.js +44 -0
  66. package/dist/{index-D6cEOHP4.js → index-CbYXYVYp.js} +1501 -1480
  67. package/dist/{index-DtsDOuDx.js → index-ChrOXJDq.js} +24 -21
  68. package/dist/index-CsaQJMAR.js +66 -0
  69. package/dist/index-DNGenFnf.js +32 -0
  70. package/dist/{index-BVb5-Ht8.js → index-Dd22X409.js} +259 -173
  71. package/dist/{index-kPhrD63q.js → index-LYAWIqjk.js} +1 -1
  72. package/dist/index-Xh9cW6Y9.js +54 -0
  73. package/dist/{index-gxwjKu3-.js → index-XhqaicYu.js} +2212 -871
  74. package/dist/{index-DW3PRjPL.js → index-YsC4VklJ.js} +1 -1
  75. package/dist/index-vh86FiIQ.js +10 -0
  76. package/dist/{index.esm2017-B7oVYIbY.js → index.esm2017-CJ1flA6S.js} +121 -121
  77. package/dist/loading-CUs_CN1k.js +71 -0
  78. package/dist/{membership-Dw1ylJ9Y.js → membership-D-GVacos.js} +54 -46
  79. package/dist/money-CMtSALkX.js +15 -0
  80. package/dist/number-CDwwgAYM.js +12 -0
  81. package/dist/objectid-Bf9yKD81.js +145 -0
  82. package/dist/{loading-7yq1tinq.js → plugins-9sQTEyth.js} +3871 -3943
  83. package/dist/remy-vue-client-Cpppk9h-.js +1693 -0
  84. package/dist/reward-DblXGhWc.js +36 -0
  85. package/dist/{rule-C0Q_SHow.js → rule-Cy8cTzuw.js} +180 -177
  86. package/dist/{rule-builder-iu17XIof.js → rule-builder-Cn5vZgFN.js} +1 -1
  87. package/dist/style.css +1 -1
  88. package/dist/{template-CyOanTMu.js → template-Cal94dUy.js} +5 -5
  89. package/dist/trigger-C1nwLSP8.js +144 -0
  90. package/dist/user-ir4Rn5bP.js +54 -0
  91. package/dist/{vue-i18n-B0fLJH7a.js → vue-i18n-eOHBBaH5.js} +243 -243
  92. package/dist/{xlsx-BYO_bB9J.js → xlsx-DulnT75_.js} +1 -1
  93. package/package.json +11 -7
  94. package/dist/Analytic-muDf0oMG.js +0 -622
  95. package/dist/Card-bhLoK0ZV.js +0 -825
  96. package/dist/Collections-DjtsAiol.js +0 -453
  97. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-U_QZneS6.js +0 -2813
  98. package/dist/Marketing-Dny2nMUl.js +0 -316
  99. package/dist/Member-CP_smyk8.js +0 -69
  100. package/dist/MemberList-CR3eYI9p.js +0 -1733
  101. package/dist/MemberTransactions-RTx_lKFb.js +0 -38
  102. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-Cs67_GLE.js +0 -1753
  103. package/dist/Segment-Bb4gHt5V.js +0 -437
  104. package/dist/Setting-Xj0AVzh3.js +0 -1901
  105. package/dist/Store-BWRHQ6Ie.js +0 -1511
  106. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BsFnT8BS.js +0 -890
  107. package/dist/Voucher-KK9fBI0u.js +0 -490
  108. package/dist/app-CjhXHUQv.js +0 -53428
  109. package/dist/app-Dvf_JNMf.js +0 -5764
  110. package/dist/dto-DArfyZAI.js +0 -2770
  111. package/dist/index-Bi_LGEtY.js +0 -99
  112. package/dist/index-CiQDG7Cm.js +0 -762
  113. package/dist/index-CuvNtC_M.js +0 -61
  114. package/dist/index-DQfjSSMF.js +0 -206
  115. package/dist/index-DcxssxPi.js +0 -29193
  116. package/dist/index-DqJVH2kv.js +0 -298
  117. package/dist/money-CPd0XTNv.js +0 -15
  118. package/dist/number-BgXY4un8.js +0 -12
  119. package/dist/user-Bm4KttFq.js +0 -37
@@ -0,0 +1,1886 @@
1
+ import { defineComponent as ze, ref as xe, resolveComponent as $e, openBlock as P, createBlock as pi, unref as h, isRef as xi, withCtx as We, createElementVNode as x, createElementBlock as Q, Fragment as qe, renderList as Xe, toDisplayString as G, watch as ki, onBeforeMount as _i, createVNode as q, createCommentVNode as Si, h as Y } from "vue";
2
+ import { components as Ke } from "@feedmepos/ui-library";
3
+ import { c as Pe, a as Je } from "./plugins-9sQTEyth.js";
4
+ import { h as J } from "./moment-BWErdI6_.js";
5
+ import { _ as Qe } from "./FilterChip.vue_vue_type_script_setup_true_lang-BrPLkFX8.js";
6
+ import { _ as Ei } from "./DateRangeChip.vue_vue_type_script_setup_true_lang-BUzUIIUW.js";
7
+ import { u as Ai, _ as Ri } from "./usePagination-BeF5K3M7.js";
8
+ import { d as he, e as Oi } from "./index-Dd22X409.js";
9
+ import "./index-XhqaicYu.js";
10
+ import "./index-CbYXYVYp.js";
11
+ import "./index-YsC4VklJ.js";
12
+ import "./index-Xh9cW6Y9.js";
13
+ import { g as Ci, S as Ii, b as Ti } from "./index-B3V7krW_.js";
14
+ import { o as Mi } from "./objectId-dwaoBfJX.js";
15
+ import { u as Di } from "./vue-i18n-eOHBBaH5.js";
16
+ var Li = "2.0.3", Fe = 500, Ze = "user-agent", ie = "", ei = "?", ke = "function", N = "undefined", te = "object", Ve = "string", E = "browser", M = "cpu", T = "device", C = "engine", O = "os", Z = "result", r = "name", e = "type", o = "vendor", a = "version", A = "architecture", pe = "major", i = "model", be = "console", w = "mobile", g = "tablet", k = "smarttv", I = "wearable", Ae = "xr", me = "embedded", se = "inapp", Ge = "brands", W = "formFactors", Ye = "fullVersionList", ee = "platform", je = "platformVersion", Se = "bitness", B = "sec-ch-ua", Ui = B + "-full-version-list", Hi = B + "-arch", qi = B + "-" + Se, Pi = B + "-form-factors", Fi = B + "-" + w, Vi = B + "-" + i, fi = B + "-" + ee, Ni = fi + "-version", hi = [Ge, Ye, w, i, ee, je, A, W, Se], ge = "Amazon", X = "Apple", ii = "ASUS", ti = "BlackBerry", j = "Google", oi = "Huawei", ri = "Lenovo", ai = "Honor", ve = "LG", Re = "Microsoft", Oe = "Motorola", Ce = "Nvidia", si = "OnePlus", Ie = "OPPO", ne = "Samsung", ni = "Sharp", le = "Sony", Te = "Xiaomi", Me = "Zebra", li = "Chrome", di = "Chromium", H = "Chromecast", Bi = "Edge", de = "Firefox", ue = "Opera", De = "Facebook", ui = "Sogou", K = "Mobile ", ce = " Browser", Ne = "Windows", zi = typeof window !== N, R = zi && window.navigator ? window.navigator : void 0, F = R && R.userAgentData ? R.userAgentData : void 0, $i = function(t, n) {
17
+ var s = {}, m = n;
18
+ if (!_e(n)) {
19
+ m = {};
20
+ for (var l in n)
21
+ for (var p in n[l])
22
+ m[p] = n[l][p].concat(m[p] ? m[p] : []);
23
+ }
24
+ for (var u in t)
25
+ s[u] = m[u] && m[u].length % 2 === 0 ? m[u].concat(t[u]) : t[u];
26
+ return s;
27
+ }, Ee = function(t) {
28
+ for (var n = {}, s = 0; s < t.length; s++)
29
+ n[t[s].toUpperCase()] = t[s];
30
+ return n;
31
+ }, Be = function(t, n) {
32
+ if (typeof t === te && t.length > 0) {
33
+ for (var s in t)
34
+ if (D(t[s]) == D(n)) return !0;
35
+ return !1;
36
+ }
37
+ return re(t) ? D(n).indexOf(D(t)) !== -1 : !1;
38
+ }, _e = function(t, n) {
39
+ for (var s in t)
40
+ return /^(browser|cpu|device|engine|os)$/.test(s) || (n ? _e(t[s]) : !1);
41
+ }, re = function(t) {
42
+ return typeof t === Ve;
43
+ }, Le = function(t) {
44
+ if (t) {
45
+ for (var n = [], s = oe(/\\?\"/g, t).split(","), m = 0; m < s.length; m++)
46
+ if (s[m].indexOf(";") > -1) {
47
+ var l = fe(s[m]).split(";v=");
48
+ n[m] = { brand: l[0], version: l[1] };
49
+ } else
50
+ n[m] = fe(s[m]);
51
+ return n;
52
+ }
53
+ }, D = function(t) {
54
+ return re(t) ? t.toLowerCase() : t;
55
+ }, Ue = function(t) {
56
+ return re(t) ? oe(/[^\d\.]/g, t).split(".")[0] : void 0;
57
+ }, L = function(t) {
58
+ for (var n in t) {
59
+ var s = t[n];
60
+ typeof s == te && s.length == 2 ? this[s[0]] = s[1] : this[s] = void 0;
61
+ }
62
+ return this;
63
+ }, oe = function(t, n) {
64
+ return re(n) ? n.replace(t, ie) : n;
65
+ }, we = function(t) {
66
+ return oe(/\\?\"/g, t);
67
+ }, fe = function(t, n) {
68
+ if (re(t))
69
+ return t = oe(/^\s\s*/, t), typeof n === N ? t : t.substring(0, Fe);
70
+ }, He = function(t, n) {
71
+ if (!(!t || !n))
72
+ for (var s = 0, m, l, p, u, c, d; s < n.length && !c; ) {
73
+ var y = n[s], v = n[s + 1];
74
+ for (m = l = 0; m < y.length && !c && y[m]; )
75
+ if (c = y[m++].exec(t), c)
76
+ for (p = 0; p < v.length; p++)
77
+ d = c[++l], u = v[p], typeof u === te && u.length > 0 ? u.length === 2 ? typeof u[1] == ke ? this[u[0]] = u[1].call(this, d) : this[u[0]] = u[1] : u.length === 3 ? typeof u[1] === ke && !(u[1].exec && u[1].test) ? this[u[0]] = d ? u[1].call(this, d, u[2]) : void 0 : this[u[0]] = d ? d.replace(u[1], u[2]) : void 0 : u.length === 4 && (this[u[0]] = d ? u[3].call(this, d.replace(u[1], u[2])) : void 0) : this[u] = d || void 0;
78
+ s += 2;
79
+ }
80
+ }, V = function(t, n) {
81
+ for (var s in n)
82
+ if (typeof n[s] === te && n[s].length > 0) {
83
+ for (var m = 0; m < n[s].length; m++)
84
+ if (Be(n[s][m], t))
85
+ return s === ei ? void 0 : s;
86
+ } else if (Be(n[s], t))
87
+ return s === ei ? void 0 : s;
88
+ return n.hasOwnProperty("*") ? n["*"] : t;
89
+ }, ci = {
90
+ ME: "4.90",
91
+ "NT 3.11": "NT3.51",
92
+ "NT 4.0": "NT4.0",
93
+ 2e3: "NT 5.0",
94
+ XP: ["NT 5.1", "NT 5.2"],
95
+ Vista: "NT 6.0",
96
+ 7: "NT 6.1",
97
+ 8: "NT 6.2",
98
+ "8.1": "NT 6.3",
99
+ 10: ["NT 6.4", "NT 10.0"],
100
+ RT: "ARM"
101
+ }, wi = {
102
+ embedded: "Automotive",
103
+ mobile: "Mobile",
104
+ tablet: ["Tablet", "EInk"],
105
+ smarttv: "TV",
106
+ wearable: "Watch",
107
+ xr: ["VR", "XR"],
108
+ "?": ["Desktop", "Unknown"],
109
+ "*": void 0
110
+ }, bi = {
111
+ browser: [
112
+ [
113
+ // Most common regardless engine
114
+ /\b(?:crmo|crios)\/([\w\.]+)/i
115
+ // Chrome for Android/iOS
116
+ ],
117
+ [a, [r, K + "Chrome"]],
118
+ [
119
+ /edg(?:e|ios|a)?\/([\w\.]+)/i
120
+ // Microsoft Edge
121
+ ],
122
+ [a, [r, "Edge"]],
123
+ [
124
+ // Presto based
125
+ /(opera mini)\/([-\w\.]+)/i,
126
+ // Opera Mini
127
+ /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
128
+ // Opera Mobi/Tablet
129
+ /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
130
+ // Opera
131
+ ],
132
+ [r, a],
133
+ [
134
+ /opios[\/ ]+([\w\.]+)/i
135
+ // Opera mini on iphone >= 8.0
136
+ ],
137
+ [a, [r, ue + " Mini"]],
138
+ [
139
+ /\bop(?:rg)?x\/([\w\.]+)/i
140
+ // Opera GX
141
+ ],
142
+ [a, [r, ue + " GX"]],
143
+ [
144
+ /\bopr\/([\w\.]+)/i
145
+ // Opera Webkit
146
+ ],
147
+ [a, [r, ue]],
148
+ [
149
+ // Mixed
150
+ /\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
151
+ // Baidu
152
+ ],
153
+ [a, [r, "Baidu"]],
154
+ [
155
+ /\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i
156
+ // Maxthon
157
+ ],
158
+ [a, [r, "Maxthon"]],
159
+ [
160
+ /(kindle)\/([\w\.]+)/i,
161
+ // Kindle
162
+ /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
163
+ // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
164
+ // Trident based
165
+ /(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,
166
+ // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet
167
+ /(?:ms|\()(ie) ([\w\.]+)/i,
168
+ // Internet Explorer
169
+ // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble
170
+ /(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|otter|dooble|(?:lg |qute)browser)\/([-\w\.]+)/i,
171
+ // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon
172
+ /(heytap|ovi|115|surf)browser\/([\d\.]+)/i,
173
+ // HeyTap/Ovi/115/Surf
174
+ /(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i
175
+ // Ecosia/Weibo
176
+ ],
177
+ [r, a],
178
+ [
179
+ /quark(?:pc)?\/([-\w\.]+)/i
180
+ // Quark
181
+ ],
182
+ [a, [r, "Quark"]],
183
+ [
184
+ /\bddg\/([\w\.]+)/i
185
+ // DuckDuckGo
186
+ ],
187
+ [a, [r, "DuckDuckGo"]],
188
+ [
189
+ /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
190
+ // UCBrowser
191
+ ],
192
+ [a, [r, "UCBrowser"]],
193
+ [
194
+ /microm.+\bqbcore\/([\w\.]+)/i,
195
+ // WeChat Desktop for Windows Built-in Browser
196
+ /\bqbcore\/([\w\.]+).+microm/i,
197
+ /micromessenger\/([\w\.]+)/i
198
+ // WeChat
199
+ ],
200
+ [a, [r, "WeChat"]],
201
+ [
202
+ /konqueror\/([\w\.]+)/i
203
+ // Konqueror
204
+ ],
205
+ [a, [r, "Konqueror"]],
206
+ [
207
+ /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
208
+ // IE11
209
+ ],
210
+ [a, [r, "IE"]],
211
+ [
212
+ /ya(?:search)?browser\/([\w\.]+)/i
213
+ // Yandex
214
+ ],
215
+ [a, [r, "Yandex"]],
216
+ [
217
+ /slbrowser\/([\w\.]+)/i
218
+ // Smart Lenovo Browser
219
+ ],
220
+ [a, [r, "Smart " + ri + ce]],
221
+ [
222
+ /(avast|avg)\/([\w\.]+)/i
223
+ // Avast/AVG Secure Browser
224
+ ],
225
+ [[r, /(.+)/, "$1 Secure" + ce], a],
226
+ [
227
+ /\bfocus\/([\w\.]+)/i
228
+ // Firefox Focus
229
+ ],
230
+ [a, [r, de + " Focus"]],
231
+ [
232
+ /\bopt\/([\w\.]+)/i
233
+ // Opera Touch
234
+ ],
235
+ [a, [r, ue + " Touch"]],
236
+ [
237
+ /coc_coc\w+\/([\w\.]+)/i
238
+ // Coc Coc Browser
239
+ ],
240
+ [a, [r, "Coc Coc"]],
241
+ [
242
+ /dolfin\/([\w\.]+)/i
243
+ // Dolphin
244
+ ],
245
+ [a, [r, "Dolphin"]],
246
+ [
247
+ /coast\/([\w\.]+)/i
248
+ // Opera Coast
249
+ ],
250
+ [a, [r, ue + " Coast"]],
251
+ [
252
+ /miuibrowser\/([\w\.]+)/i
253
+ // MIUI Browser
254
+ ],
255
+ [a, [r, "MIUI" + ce]],
256
+ [
257
+ /fxios\/([\w\.-]+)/i
258
+ // Firefox for iOS
259
+ ],
260
+ [a, [r, K + de]],
261
+ [
262
+ /\bqihoobrowser\/?([\w\.]*)/i
263
+ // 360
264
+ ],
265
+ [a, [r, "360"]],
266
+ [
267
+ /\b(qq)\/([\w\.]+)/i
268
+ // QQ
269
+ ],
270
+ [[r, /(.+)/, "$1Browser"], a],
271
+ [
272
+ /(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
273
+ ],
274
+ [[r, /(.+)/, "$1" + ce], a],
275
+ [
276
+ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
277
+ /samsungbrowser\/([\w\.]+)/i
278
+ // Samsung Internet
279
+ ],
280
+ [a, [r, ne + " Internet"]],
281
+ [
282
+ /metasr[\/ ]?([\d\.]+)/i
283
+ // Sogou Explorer
284
+ ],
285
+ [a, [r, ui + " Explorer"]],
286
+ [
287
+ /(sogou)mo\w+\/([\d\.]+)/i
288
+ // Sogou Mobile
289
+ ],
290
+ [[r, ui + " Mobile"], a],
291
+ [
292
+ /(electron)\/([\w\.]+) safari/i,
293
+ // Electron-based App
294
+ /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
295
+ // Tesla
296
+ /m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i
297
+ // QQ/2345
298
+ ],
299
+ [r, a],
300
+ [
301
+ /(lbbrowser|rekonq)/i
302
+ // LieBao Browser/Rekonq
303
+ ],
304
+ [r],
305
+ [
306
+ /ome\/([\w\.]+) \w* ?(iron) saf/i,
307
+ // Iron
308
+ /ome\/([\w\.]+).+qihu (360)[es]e/i
309
+ // 360
310
+ ],
311
+ [a, r],
312
+ [
313
+ // WebView
314
+ /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
315
+ // Facebook App for iOS & Android
316
+ ],
317
+ [[r, De], a, [e, se]],
318
+ [
319
+ /(Klarna)\/([\w\.]+)/i,
320
+ // Klarna Shopping Browser for iOS & Android
321
+ /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
322
+ // Kakao App
323
+ /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
324
+ // Naver InApp
325
+ /(daum)apps[\/ ]([\w\.]+)/i,
326
+ // Daum App
327
+ /safari (line)\/([\w\.]+)/i,
328
+ // Line App for iOS
329
+ /\b(line)\/([\w\.]+)\/iab/i,
330
+ // Line App for Android
331
+ /(alipay)client\/([\w\.]+)/i,
332
+ // Alipay
333
+ /(twitter)(?:and| f.+e\/([\w\.]+))/i,
334
+ // Twitter
335
+ /(instagram|snapchat)[\/ ]([-\w\.]+)/i
336
+ // Instagram/Snapchat
337
+ ],
338
+ [r, a, [e, se]],
339
+ [
340
+ /\bgsa\/([\w\.]+) .*safari\//i
341
+ // Google Search Appliance on iOS
342
+ ],
343
+ [a, [r, "GSA"], [e, se]],
344
+ [
345
+ /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
346
+ // TikTok
347
+ ],
348
+ [a, [r, "TikTok"], [e, se]],
349
+ [
350
+ /\[(linkedin)app\]/i
351
+ // LinkedIn App for iOS & Android
352
+ ],
353
+ [r, [e, se]],
354
+ [
355
+ /(chromium)[\/ ]([-\w\.]+)/i
356
+ // Chromium
357
+ ],
358
+ [r, a],
359
+ [
360
+ /headlesschrome(?:\/([\w\.]+)| )/i
361
+ // Chrome Headless
362
+ ],
363
+ [a, [r, li + " Headless"]],
364
+ [
365
+ / wv\).+(chrome)\/([\w\.]+)/i
366
+ // Chrome WebView
367
+ ],
368
+ [[r, li + " WebView"], a],
369
+ [
370
+ /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
371
+ // Android Browser
372
+ ],
373
+ [a, [r, "Android" + ce]],
374
+ [
375
+ /chrome\/([\w\.]+) mobile/i
376
+ // Chrome Mobile
377
+ ],
378
+ [a, [r, K + "Chrome"]],
379
+ [
380
+ /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
381
+ // Chrome/OmniWeb/Arora/Tizen/Nokia
382
+ ],
383
+ [r, a],
384
+ [
385
+ /version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i
386
+ // Safari Mobile
387
+ ],
388
+ [a, [r, K + "Safari"]],
389
+ [
390
+ /iphone .*mobile(?:\/\w+ | ?)safari/i
391
+ ],
392
+ [[r, K + "Safari"]],
393
+ [
394
+ /version\/([\w\.\,]+) .*(safari)/i
395
+ // Safari
396
+ ],
397
+ [a, r],
398
+ [
399
+ /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
400
+ // Safari < 3.0
401
+ ],
402
+ [r, [a, "1"]],
403
+ [
404
+ /(webkit|khtml)\/([\w\.]+)/i
405
+ ],
406
+ [r, a],
407
+ [
408
+ // Gecko based
409
+ /(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i
410
+ // Firefox Mobile
411
+ ],
412
+ [[r, K + de], a],
413
+ [
414
+ /(navigator|netscape\d?)\/([-\w\.]+)/i
415
+ // Netscape
416
+ ],
417
+ [[r, "Netscape"], a],
418
+ [
419
+ /(wolvic|librewolf)\/([\w\.]+)/i
420
+ // Wolvic/LibreWolf
421
+ ],
422
+ [r, a],
423
+ [
424
+ /mobile vr; rv:([\w\.]+)\).+firefox/i
425
+ // Firefox Reality
426
+ ],
427
+ [a, [r, de + " Reality"]],
428
+ [
429
+ /ekiohf.+(flow)\/([\w\.]+)/i,
430
+ // Flow
431
+ /(swiftfox)/i,
432
+ // Swiftfox
433
+ /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
434
+ // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
435
+ /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
436
+ // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
437
+ /(firefox)\/([\w\.]+)/i,
438
+ // Other Firefox-based
439
+ /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
440
+ // Mozilla
441
+ // Other
442
+ /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
443
+ // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird
444
+ /\b(links) \(([\w\.]+)/i
445
+ // Links
446
+ ],
447
+ [r, [a, /_/g, "."]],
448
+ [
449
+ /(cobalt)\/([\w\.]+)/i
450
+ // Cobalt
451
+ ],
452
+ [r, [a, /[^\d\.]+./, ie]]
453
+ ],
454
+ cpu: [
455
+ [
456
+ /\b((amd|x|x86[-_]?|wow|win)64)\b/i
457
+ // AMD64 (x64)
458
+ ],
459
+ [[A, "amd64"]],
460
+ [
461
+ /(ia32(?=;))/i,
462
+ // IA32 (quicktime)
463
+ /\b((i[346]|x)86)(pc)?\b/i
464
+ // IA32 (x86)
465
+ ],
466
+ [[A, "ia32"]],
467
+ [
468
+ /\b(aarch64|arm(v?[89]e?l?|_?64))\b/i
469
+ // ARM64
470
+ ],
471
+ [[A, "arm64"]],
472
+ [
473
+ /\b(arm(v[67])?ht?n?[fl]p?)\b/i
474
+ // ARMHF
475
+ ],
476
+ [[A, "armhf"]],
477
+ [
478
+ // PocketPC mistakenly identified as PowerPC
479
+ /( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
480
+ ],
481
+ [[A, "arm"]],
482
+ [
483
+ /((ppc|powerpc)(64)?)( mac|;|\))/i
484
+ // PowerPC
485
+ ],
486
+ [[A, /ower/, ie, D]],
487
+ [
488
+ / sun4\w[;\)]/i
489
+ // SPARC
490
+ ],
491
+ [[A, "sparc"]],
492
+ [
493
+ /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i
494
+ // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
495
+ ],
496
+ [[A, D]]
497
+ ],
498
+ device: [
499
+ [
500
+ //////////////////////////
501
+ // MOBILES & TABLETS
502
+ /////////////////////////
503
+ // Samsung
504
+ /\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
505
+ ],
506
+ [i, [o, ne], [e, g]],
507
+ [
508
+ /\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
509
+ /samsung[- ]((?!sm-[lr])[-\w]+)/i,
510
+ /sec-(sgh\w+)/i
511
+ ],
512
+ [i, [o, ne], [e, w]],
513
+ [
514
+ // Apple
515
+ /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
516
+ // iPod/iPhone
517
+ ],
518
+ [i, [o, X], [e, w]],
519
+ [
520
+ /\((ipad);[-\w\),; ]+apple/i,
521
+ // iPad
522
+ /applecoremedia\/[\w\.]+ \((ipad)/i,
523
+ /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
524
+ ],
525
+ [i, [o, X], [e, g]],
526
+ [
527
+ /(macintosh);/i
528
+ ],
529
+ [i, [o, X]],
530
+ [
531
+ // Sharp
532
+ /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
533
+ ],
534
+ [i, [o, ni], [e, w]],
535
+ [
536
+ // Honor
537
+ /\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
538
+ ],
539
+ [i, [o, ai], [e, g]],
540
+ [
541
+ /honor([-\w ]+)[;\)]/i
542
+ ],
543
+ [i, [o, ai], [e, w]],
544
+ [
545
+ // Huawei
546
+ /\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
547
+ ],
548
+ [i, [o, oi], [e, g]],
549
+ [
550
+ /(?:huawei)([-\w ]+)[;\)]/i,
551
+ /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
552
+ ],
553
+ [i, [o, oi], [e, w]],
554
+ [
555
+ // Xiaomi
556
+ /oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
557
+ /\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
558
+ // Mi Pad tablets
559
+ ],
560
+ [[i, /_/g, " "], [o, Te], [e, g]],
561
+ [
562
+ /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
563
+ // Xiaomi POCO
564
+ /\b; (\w+) build\/hm\1/i,
565
+ // Xiaomi Hongmi 'numeric' models
566
+ /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
567
+ // Xiaomi Hongmi
568
+ /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
569
+ // Xiaomi Redmi
570
+ /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
571
+ // Xiaomi Redmi 'numeric' models
572
+ /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,
573
+ // Xiaomi Mi
574
+ / ([\w ]+) miui\/v?\d/i
575
+ ],
576
+ [[i, /_/g, " "], [o, Te], [e, w]],
577
+ [
578
+ // OPPO
579
+ /; (\w+) bui.+ oppo/i,
580
+ /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
581
+ ],
582
+ [i, [o, Ie], [e, w]],
583
+ [
584
+ /\b(opd2(\d{3}a?))(?: bui|\))/i
585
+ ],
586
+ [i, [o, V, { OnePlus: ["304", "403", "203"], "*": Ie }], [e, g]],
587
+ [
588
+ // BLU Vivo Series
589
+ /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i
590
+ ],
591
+ [i, [o, "BLU"], [e, w]],
592
+ [
593
+ // Vivo
594
+ /; vivo (\w+)(?: bui|\))/i,
595
+ /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
596
+ ],
597
+ [i, [o, "Vivo"], [e, w]],
598
+ [
599
+ // Realme
600
+ /\b(rmx[1-3]\d{3})(?: bui|;|\))/i
601
+ ],
602
+ [i, [o, "Realme"], [e, w]],
603
+ [
604
+ // Motorola
605
+ /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
606
+ /\bmot(?:orola)?[- ](\w*)/i,
607
+ /((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
608
+ ],
609
+ [i, [o, Oe], [e, w]],
610
+ [
611
+ /\b(mz60\d|xoom[2 ]{0,2}) build\//i
612
+ ],
613
+ [i, [o, Oe], [e, g]],
614
+ [
615
+ // LG
616
+ /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
617
+ ],
618
+ [i, [o, ve], [e, g]],
619
+ [
620
+ /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
621
+ /\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch))(\w+)/i,
622
+ /\blg-?([\d\w]+) bui/i
623
+ ],
624
+ [i, [o, ve], [e, w]],
625
+ [
626
+ // Lenovo
627
+ /(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,
628
+ /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
629
+ ],
630
+ [i, [o, ri], [e, g]],
631
+ [
632
+ // Nokia
633
+ /(nokia) (t[12][01])/i
634
+ ],
635
+ [o, i, [e, g]],
636
+ [
637
+ /(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
638
+ /nokia[-_ ]?(([-\w\. ]*))/i
639
+ ],
640
+ [[i, /_/g, " "], [e, w], [o, "Nokia"]],
641
+ [
642
+ // Google
643
+ /(pixel (c|tablet))\b/i
644
+ // Google Pixel C/Tablet
645
+ ],
646
+ [i, [o, j], [e, g]],
647
+ [
648
+ /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
649
+ // Google Pixel
650
+ ],
651
+ [i, [o, j], [e, w]],
652
+ [
653
+ // Sony
654
+ /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
655
+ ],
656
+ [i, [o, le], [e, w]],
657
+ [
658
+ /sony tablet [ps]/i,
659
+ /\b(?:sony)?sgp\w+(?: bui|\))/i
660
+ ],
661
+ [[i, "Xperia Tablet"], [o, le], [e, g]],
662
+ [
663
+ // OnePlus
664
+ / (kb2005|in20[12]5|be20[12][59])\b/i,
665
+ /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
666
+ ],
667
+ [i, [o, si], [e, w]],
668
+ [
669
+ // Amazon
670
+ /(alexa)webm/i,
671
+ /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,
672
+ // Kindle Fire without Silk / Echo Show
673
+ /(kf[a-z]+)( bui|\)).+silk\//i
674
+ // Kindle Fire HD
675
+ ],
676
+ [i, [o, ge], [e, g]],
677
+ [
678
+ /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
679
+ // Fire Phone
680
+ ],
681
+ [[i, /(.+)/g, "Fire Phone $1"], [o, ge], [e, w]],
682
+ [
683
+ // BlackBerry
684
+ /(playbook);[-\w\),; ]+(rim)/i
685
+ // BlackBerry PlayBook
686
+ ],
687
+ [i, o, [e, g]],
688
+ [
689
+ /\b((?:bb[a-f]|st[hv])100-\d)/i,
690
+ /\(bb10; (\w+)/i
691
+ // BlackBerry 10
692
+ ],
693
+ [i, [o, ti], [e, w]],
694
+ [
695
+ // Asus
696
+ /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
697
+ ],
698
+ [i, [o, ii], [e, g]],
699
+ [
700
+ / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
701
+ ],
702
+ [i, [o, ii], [e, w]],
703
+ [
704
+ // HTC
705
+ /(nexus 9)/i
706
+ // HTC Nexus 9
707
+ ],
708
+ [i, [o, "HTC"], [e, g]],
709
+ [
710
+ /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
711
+ // HTC
712
+ // ZTE
713
+ /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
714
+ /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
715
+ // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
716
+ ],
717
+ [o, [i, /_/g, " "], [e, w]],
718
+ [
719
+ // TCL
720
+ /tcl (xess p17aa)/i,
721
+ /droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i
722
+ ],
723
+ [i, [o, "TCL"], [e, g]],
724
+ [
725
+ /droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i
726
+ ],
727
+ [i, [o, "TCL"], [e, w]],
728
+ [
729
+ // itel
730
+ /(itel) ((\w+))/i
731
+ ],
732
+ [[o, D], i, [e, V, { tablet: ["p10001l", "w7001"], "*": "mobile" }]],
733
+ [
734
+ // Acer
735
+ /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
736
+ ],
737
+ [i, [o, "Acer"], [e, g]],
738
+ [
739
+ // Meizu
740
+ /droid.+; (m[1-5] note) bui/i,
741
+ /\bmz-([-\w]{2,})/i
742
+ ],
743
+ [i, [o, "Meizu"], [e, w]],
744
+ [
745
+ // Ulefone
746
+ /; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
747
+ ],
748
+ [i, [o, "Ulefone"], [e, w]],
749
+ [
750
+ // Energizer
751
+ /; (energy ?\w+)(?: bui|\))/i,
752
+ /; energizer ([\w ]+)(?: bui|\))/i
753
+ ],
754
+ [i, [o, "Energizer"], [e, w]],
755
+ [
756
+ // Cat
757
+ /; cat (b35);/i,
758
+ /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
759
+ ],
760
+ [i, [o, "Cat"], [e, w]],
761
+ [
762
+ // Smartfren
763
+ /((?:new )?andromax[\w- ]+)(?: bui|\))/i
764
+ ],
765
+ [i, [o, "Smartfren"], [e, w]],
766
+ [
767
+ // Nothing
768
+ /droid.+; (a(?:015|06[35]|142p?))/i
769
+ ],
770
+ [i, [o, "Nothing"], [e, w]],
771
+ [
772
+ // Archos
773
+ /; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
774
+ /archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i
775
+ ],
776
+ [i, [o, "Archos"], [e, g]],
777
+ [
778
+ /archos ([\w ]+)( b|\))/i,
779
+ /; (ac[3-6]\d\w{2,8})( b|\))/i
780
+ ],
781
+ [i, [o, "Archos"], [e, w]],
782
+ [
783
+ // MIXED
784
+ /(imo) (tab \w+)/i,
785
+ // IMO
786
+ /(infinix) (x1101b?)/i
787
+ // Infinix XPad
788
+ ],
789
+ [o, i, [e, g]],
790
+ [
791
+ /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
792
+ // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Infinix/Tecno/Micromax/Advan
793
+ /; (blu|hmd|imo|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
794
+ // BLU/HMD/IMO/TCL
795
+ /(hp) ([\w ]+\w)/i,
796
+ // HP iPAQ
797
+ /(microsoft); (lumia[\w ]+)/i,
798
+ // Microsoft Lumia
799
+ /(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i,
800
+ // Lenovo
801
+ /(oppo) ?([\w ]+) bui/i
802
+ // OPPO
803
+ ],
804
+ [o, i, [e, w]],
805
+ [
806
+ /(kobo)\s(ereader|touch)/i,
807
+ // Kobo
808
+ /(hp).+(touchpad(?!.+tablet)|tablet)/i,
809
+ // HP TouchPad
810
+ /(kindle)\/([\w\.]+)/i
811
+ // Kindle
812
+ ],
813
+ [o, i, [e, g]],
814
+ [
815
+ /(surface duo)/i
816
+ // Surface Duo
817
+ ],
818
+ [i, [o, Re], [e, g]],
819
+ [
820
+ /droid [\d\.]+; (fp\du?)(?: b|\))/i
821
+ // Fairphone
822
+ ],
823
+ [i, [o, "Fairphone"], [e, w]],
824
+ [
825
+ /((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
826
+ // Nvidia Tablets
827
+ ],
828
+ [i, [o, Ce], [e, g]],
829
+ [
830
+ /(sprint) (\w+)/i
831
+ // Sprint Phones
832
+ ],
833
+ [o, i, [e, w]],
834
+ [
835
+ /(kin\.[onetw]{3})/i
836
+ // Microsoft Kin
837
+ ],
838
+ [[i, /\./g, " "], [o, Re], [e, w]],
839
+ [
840
+ /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
841
+ // Zebra
842
+ ],
843
+ [i, [o, Me], [e, g]],
844
+ [
845
+ /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
846
+ ],
847
+ [i, [o, Me], [e, w]],
848
+ [
849
+ ///////////////////
850
+ // SMARTTVS
851
+ ///////////////////
852
+ /smart-tv.+(samsung)/i
853
+ // Samsung
854
+ ],
855
+ [o, [e, k]],
856
+ [
857
+ /hbbtv.+maple;(\d+)/i
858
+ ],
859
+ [[i, /^/, "SmartTV"], [o, ne], [e, k]],
860
+ [
861
+ /tcast.+(lg)e?. ([-\w]+)/i
862
+ // LG SmartTV
863
+ ],
864
+ [o, i, [e, k]],
865
+ [
866
+ /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
867
+ ],
868
+ [[o, ve], [e, k]],
869
+ [
870
+ /(apple) ?tv/i
871
+ // Apple TV
872
+ ],
873
+ [o, [i, X + " TV"], [e, k]],
874
+ [
875
+ /crkey.*devicetype\/chromecast/i
876
+ // Google Chromecast Third Generation
877
+ ],
878
+ [[i, H + " Third Generation"], [o, j], [e, k]],
879
+ [
880
+ /crkey.*devicetype\/([^/]*)/i
881
+ // Google Chromecast with specific device type
882
+ ],
883
+ [[i, /^/, "Chromecast "], [o, j], [e, k]],
884
+ [
885
+ /fuchsia.*crkey/i
886
+ // Google Chromecast Nest Hub
887
+ ],
888
+ [[i, H + " Nest Hub"], [o, j], [e, k]],
889
+ [
890
+ /crkey/i
891
+ // Google Chromecast, Linux-based or unknown
892
+ ],
893
+ [[i, H], [o, j], [e, k]],
894
+ [
895
+ /(portaltv)/i
896
+ // Facebook Portal TV
897
+ ],
898
+ [i, [o, De], [e, k]],
899
+ [
900
+ /droid.+aft(\w+)( bui|\))/i
901
+ // Fire TV
902
+ ],
903
+ [i, [o, ge], [e, k]],
904
+ [
905
+ /(shield \w+ tv)/i
906
+ // Nvidia Shield TV
907
+ ],
908
+ [i, [o, Ce], [e, k]],
909
+ [
910
+ /\(dtv[\);].+(aquos)/i,
911
+ /(aquos-tv[\w ]+)\)/i
912
+ // Sharp
913
+ ],
914
+ [i, [o, ni], [e, k]],
915
+ [
916
+ /(bravia[\w ]+)( bui|\))/i
917
+ // Sony
918
+ ],
919
+ [i, [o, le], [e, k]],
920
+ [
921
+ /(mi(tv|box)-?\w+) bui/i
922
+ // Xiaomi
923
+ ],
924
+ [i, [o, Te], [e, k]],
925
+ [
926
+ /Hbbtv.*(technisat) (.*);/i
927
+ // TechniSAT
928
+ ],
929
+ [o, i, [e, k]],
930
+ [
931
+ /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
932
+ // Roku
933
+ /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
934
+ // HbbTV devices
935
+ ],
936
+ [[o, fe], [i, fe], [e, k]],
937
+ [
938
+ // SmartTV from Unidentified Vendors
939
+ /droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i
940
+ ],
941
+ [i, [e, k]],
942
+ [
943
+ /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
944
+ ],
945
+ [[e, k]],
946
+ [
947
+ ///////////////////
948
+ // CONSOLES
949
+ ///////////////////
950
+ /(ouya)/i,
951
+ // Ouya
952
+ /(nintendo) (\w+)/i
953
+ // Nintendo
954
+ ],
955
+ [o, i, [e, be]],
956
+ [
957
+ /droid.+; (shield)( bui|\))/i
958
+ // Nvidia Portable
959
+ ],
960
+ [i, [o, Ce], [e, be]],
961
+ [
962
+ /(playstation \w+)/i
963
+ // Playstation
964
+ ],
965
+ [i, [o, le], [e, be]],
966
+ [
967
+ /\b(xbox(?: one)?(?!; xbox))[\); ]/i
968
+ // Microsoft Xbox
969
+ ],
970
+ [i, [o, Re], [e, be]],
971
+ [
972
+ ///////////////////
973
+ // WEARABLES
974
+ ///////////////////
975
+ /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
976
+ // Samsung Galaxy Watch
977
+ ],
978
+ [i, [o, ne], [e, I]],
979
+ [
980
+ /((pebble))app/i,
981
+ // Pebble
982
+ /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
983
+ // Asus ZenWatch / LG Watch / Pixel Watch
984
+ ],
985
+ [o, i, [e, I]],
986
+ [
987
+ /(ow(?:19|20)?we?[1-3]{1,3})/i
988
+ // Oppo Watch
989
+ ],
990
+ [i, [o, Ie], [e, I]],
991
+ [
992
+ /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
993
+ // Apple Watch
994
+ ],
995
+ [i, [o, X], [e, I]],
996
+ [
997
+ /(opwwe\d{3})/i
998
+ // OnePlus Watch
999
+ ],
1000
+ [i, [o, si], [e, I]],
1001
+ [
1002
+ /(moto 360)/i
1003
+ // Motorola 360
1004
+ ],
1005
+ [i, [o, Oe], [e, I]],
1006
+ [
1007
+ /(smartwatch 3)/i
1008
+ // Sony SmartWatch
1009
+ ],
1010
+ [i, [o, le], [e, I]],
1011
+ [
1012
+ /(g watch r)/i
1013
+ // LG G Watch R
1014
+ ],
1015
+ [i, [o, ve], [e, I]],
1016
+ [
1017
+ /droid.+; (wt63?0{2,3})\)/i
1018
+ ],
1019
+ [i, [o, Me], [e, I]],
1020
+ [
1021
+ ///////////////////
1022
+ // XR
1023
+ ///////////////////
1024
+ /droid.+; (glass) \d/i
1025
+ // Google Glass
1026
+ ],
1027
+ [i, [o, j], [e, Ae]],
1028
+ [
1029
+ /(pico) (4|neo3(?: link|pro)?)/i
1030
+ // Pico
1031
+ ],
1032
+ [o, i, [e, Ae]],
1033
+ [
1034
+ /(quest( \d| pro)?s?).+vr/i
1035
+ // Meta Quest
1036
+ ],
1037
+ [i, [o, De], [e, Ae]],
1038
+ [
1039
+ ///////////////////
1040
+ // EMBEDDED
1041
+ ///////////////////
1042
+ /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
1043
+ // Tesla
1044
+ ],
1045
+ [o, [e, me]],
1046
+ [
1047
+ /(aeobc)\b/i
1048
+ // Echo Dot
1049
+ ],
1050
+ [i, [o, ge], [e, me]],
1051
+ [
1052
+ /(homepod).+mac os/i
1053
+ // Apple HomePod
1054
+ ],
1055
+ [i, [o, X], [e, me]],
1056
+ [
1057
+ /windows iot/i
1058
+ ],
1059
+ [[e, me]],
1060
+ [
1061
+ ////////////////////
1062
+ // MIXED (GENERIC)
1063
+ ///////////////////
1064
+ /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i
1065
+ ],
1066
+ [i, [e, V, { mobile: "Mobile", xr: "VR", "*": g }]],
1067
+ [
1068
+ /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
1069
+ // Unidentifiable Tablet
1070
+ ],
1071
+ [[e, g]],
1072
+ [
1073
+ /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
1074
+ // Unidentifiable Mobile
1075
+ ],
1076
+ [[e, w]],
1077
+ [
1078
+ /droid .+?; ([\w\. -]+)( bui|\))/i
1079
+ // Generic Android Device
1080
+ ],
1081
+ [i, [o, "Generic"]]
1082
+ ],
1083
+ engine: [
1084
+ [
1085
+ /windows.+ edge\/([\w\.]+)/i
1086
+ // EdgeHTML
1087
+ ],
1088
+ [a, [r, Bi + "HTML"]],
1089
+ [
1090
+ /(arkweb)\/([\w\.]+)/i
1091
+ // ArkWeb
1092
+ ],
1093
+ [r, a],
1094
+ [
1095
+ /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
1096
+ // Blink
1097
+ ],
1098
+ [a, [r, "Blink"]],
1099
+ [
1100
+ /(presto)\/([\w\.]+)/i,
1101
+ // Presto
1102
+ /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,
1103
+ // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo
1104
+ /ekioh(flow)\/([\w\.]+)/i,
1105
+ // Flow
1106
+ /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
1107
+ // KHTML/Tasman/Links
1108
+ /(icab)[\/ ]([23]\.[\d\.]+)/i,
1109
+ // iCab
1110
+ /\b(libweb)/i
1111
+ // LibWeb
1112
+ ],
1113
+ [r, a],
1114
+ [
1115
+ /ladybird\//i
1116
+ ],
1117
+ [[r, "LibWeb"]],
1118
+ [
1119
+ /rv\:([\w\.]{1,9})\b.+(gecko)/i
1120
+ // Gecko
1121
+ ],
1122
+ [a, r]
1123
+ ],
1124
+ os: [
1125
+ [
1126
+ // Windows
1127
+ /microsoft (windows) (vista|xp)/i
1128
+ // Windows (iTunes)
1129
+ ],
1130
+ [r, a],
1131
+ [
1132
+ /(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i
1133
+ // Windows Phone
1134
+ ],
1135
+ [r, [a, V, ci]],
1136
+ [
1137
+ /windows nt 6\.2; (arm)/i,
1138
+ // Windows RT
1139
+ /windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,
1140
+ /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
1141
+ ],
1142
+ [[a, V, ci], [r, Ne]],
1143
+ [
1144
+ // iOS/macOS
1145
+ /[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
1146
+ // iOS
1147
+ /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
1148
+ /cfnetwork\/.+darwin/i
1149
+ ],
1150
+ [[a, /_/g, "."], [r, "iOS"]],
1151
+ [
1152
+ /(mac os x) ?([\w\. ]*)/i,
1153
+ /(macintosh|mac_powerpc\b)(?!.+haiku)/i
1154
+ // Mac OS
1155
+ ],
1156
+ [[r, "macOS"], [a, /_/g, "."]],
1157
+ [
1158
+ // Google Chromecast
1159
+ /android ([\d\.]+).*crkey/i
1160
+ // Google Chromecast, Android-based
1161
+ ],
1162
+ [a, [r, H + " Android"]],
1163
+ [
1164
+ /fuchsia.*crkey\/([\d\.]+)/i
1165
+ // Google Chromecast, Fuchsia-based
1166
+ ],
1167
+ [a, [r, H + " Fuchsia"]],
1168
+ [
1169
+ /crkey\/([\d\.]+).*devicetype\/smartspeaker/i
1170
+ // Google Chromecast, Linux-based Smart Speaker
1171
+ ],
1172
+ [a, [r, H + " SmartSpeaker"]],
1173
+ [
1174
+ /linux.*crkey\/([\d\.]+)/i
1175
+ // Google Chromecast, Legacy Linux-based
1176
+ ],
1177
+ [a, [r, H + " Linux"]],
1178
+ [
1179
+ /crkey\/([\d\.]+)/i
1180
+ // Google Chromecast, unknown
1181
+ ],
1182
+ [a, [r, H]],
1183
+ [
1184
+ // Mobile OSes
1185
+ /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
1186
+ // Android-x86/HarmonyOS
1187
+ ],
1188
+ [a, r],
1189
+ [
1190
+ /(ubuntu) ([\w\.]+) like android/i
1191
+ // Ubuntu Touch
1192
+ ],
1193
+ [[r, /(.+)/, "$1 Touch"], a],
1194
+ [
1195
+ // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
1196
+ /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/\.; ]?([\d\.]*)/i
1197
+ ],
1198
+ [r, a],
1199
+ [
1200
+ /\(bb(10);/i
1201
+ // BlackBerry 10
1202
+ ],
1203
+ [a, [r, ti]],
1204
+ [
1205
+ /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
1206
+ // Symbian
1207
+ ],
1208
+ [a, [r, "Symbian"]],
1209
+ [
1210
+ /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
1211
+ // Firefox OS
1212
+ ],
1213
+ [a, [r, de + " OS"]],
1214
+ [
1215
+ /web0s;.+rt(tv)/i,
1216
+ /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
1217
+ // WebOS
1218
+ ],
1219
+ [a, [r, "webOS"]],
1220
+ [
1221
+ /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
1222
+ // watchOS
1223
+ ],
1224
+ [a, [r, "watchOS"]],
1225
+ [
1226
+ // Google ChromeOS
1227
+ /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
1228
+ // Chromium OS
1229
+ ],
1230
+ [[r, "Chrome OS"], 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) (\w+)/i,
1241
+ // Nintendo/Playstation
1242
+ /(xbox); +xbox ([^\);]+)/i,
1243
+ // Microsoft Xbox (360, One, X, S, Series X, Series S)
1244
+ /(pico) .+os([\w\.]+)/i,
1245
+ // Pico
1246
+ // Other
1247
+ /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
1248
+ // Joli/Palm
1249
+ /(mint)[\/\(\) ]?(\w*)/i,
1250
+ // Mint
1251
+ /(mageia|vectorlinux)[; ]/i,
1252
+ // Mageia/VectorLinux
1253
+ /([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,
1254
+ // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
1255
+ /(hurd|linux)(?: arm\w*| x86\w*| ?)([\w\.]*)/i,
1256
+ // Hurd/Linux
1257
+ /(gnu) ?([\w\.]*)/i,
1258
+ // GNU
1259
+ /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
1260
+ // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
1261
+ /(haiku) (\w+)/i
1262
+ // Haiku
1263
+ ],
1264
+ [r, a],
1265
+ [
1266
+ /(sunos) ?([\w\.\d]*)/i
1267
+ // Solaris
1268
+ ],
1269
+ [[r, "Solaris"], a],
1270
+ [
1271
+ /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
1272
+ // Solaris
1273
+ /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
1274
+ // AIX
1275
+ /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
1276
+ // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
1277
+ /(unix) ?([\w\.]*)/i
1278
+ // UNIX
1279
+ ],
1280
+ [r, a]
1281
+ ]
1282
+ }, ye = function() {
1283
+ var t = { init: {}, isIgnore: {}, isIgnoreRgx: {}, toString: {} };
1284
+ return L.call(t.init, [
1285
+ [E, [r, a, pe, e]],
1286
+ [M, [A]],
1287
+ [T, [e, i, o]],
1288
+ [C, [r, a]],
1289
+ [O, [r, a]]
1290
+ ]), L.call(t.isIgnore, [
1291
+ [E, [a, pe]],
1292
+ [C, [a]],
1293
+ [O, [a]]
1294
+ ]), L.call(t.isIgnoreRgx, [
1295
+ [E, / ?browser$/i],
1296
+ [O, / ?os$/i]
1297
+ ]), L.call(t.toString, [
1298
+ [E, [r, a]],
1299
+ [M, [A]],
1300
+ [T, [o, i]],
1301
+ [C, [r, a]],
1302
+ [O, [r, a]]
1303
+ ]), t;
1304
+ }(), Gi = function(t, n) {
1305
+ var s = ye.init[n], m = ye.isIgnore[n] || 0, l = ye.isIgnoreRgx[n] || 0, p = ye.toString[n] || 0;
1306
+ function u() {
1307
+ L.call(this, s);
1308
+ }
1309
+ return u.prototype.getItem = function() {
1310
+ return t;
1311
+ }, u.prototype.withClientHints = function() {
1312
+ return F ? F.getHighEntropyValues(hi).then(function(c) {
1313
+ return t.setCH(new gi(c, !1)).parseCH().get();
1314
+ }) : t.parseCH().get();
1315
+ }, u.prototype.withFeatureCheck = function() {
1316
+ return t.detectFeature().get();
1317
+ }, n != Z && (u.prototype.is = function(c) {
1318
+ var d = !1;
1319
+ for (var y in this)
1320
+ if (this.hasOwnProperty(y) && !Be(m, y) && D(l ? oe(l, this[y]) : this[y]) == D(l ? oe(l, c) : c)) {
1321
+ if (d = !0, c != N) break;
1322
+ } else if (c == N && d) {
1323
+ d = !d;
1324
+ break;
1325
+ }
1326
+ return d;
1327
+ }, u.prototype.toString = function() {
1328
+ var c = ie;
1329
+ for (var d in p)
1330
+ typeof this[p[d]] !== N && (c += (c ? " " : ie) + this[p[d]]);
1331
+ return c || N;
1332
+ }), F || (u.prototype.then = function(c) {
1333
+ var d = this, y = function() {
1334
+ for (var S in d)
1335
+ d.hasOwnProperty(S) && (this[S] = d[S]);
1336
+ };
1337
+ y.prototype = {
1338
+ is: u.prototype.is,
1339
+ toString: u.prototype.toString
1340
+ };
1341
+ var v = new y();
1342
+ return c(v), v;
1343
+ }), new u();
1344
+ };
1345
+ function gi(t, n) {
1346
+ if (t = t || {}, L.call(this, hi), n)
1347
+ L.call(this, [
1348
+ [Ge, Le(t[B])],
1349
+ [Ye, Le(t[Ui])],
1350
+ [w, /\?1/.test(t[Fi])],
1351
+ [i, we(t[Vi])],
1352
+ [ee, we(t[fi])],
1353
+ [je, we(t[Ni])],
1354
+ [A, we(t[Hi])],
1355
+ [W, Le(t[Pi])],
1356
+ [Se, we(t[qi])]
1357
+ ]);
1358
+ else
1359
+ for (var s in t)
1360
+ this.hasOwnProperty(s) && typeof t[s] !== N && (this[s] = t[s]);
1361
+ }
1362
+ function mi(t, n, s, m) {
1363
+ return this.get = function(l) {
1364
+ return l ? this.data.hasOwnProperty(l) ? this.data[l] : void 0 : this.data;
1365
+ }, this.set = function(l, p) {
1366
+ return this.data[l] = p, this;
1367
+ }, this.setCH = function(l) {
1368
+ return this.uaCH = l, this;
1369
+ }, this.detectFeature = function() {
1370
+ if (R && R.userAgent == this.ua)
1371
+ switch (this.itemType) {
1372
+ case E:
1373
+ R.brave && typeof R.brave.isBrave == ke && this.set(r, "Brave");
1374
+ break;
1375
+ case T:
1376
+ !this.get(e) && F && F[w] && this.set(e, w), this.get(i) == "Macintosh" && R && typeof R.standalone !== N && R.maxTouchPoints && R.maxTouchPoints > 2 && this.set(i, "iPad").set(e, g);
1377
+ break;
1378
+ case O:
1379
+ !this.get(r) && F && F[ee] && this.set(r, F[ee]);
1380
+ break;
1381
+ case Z:
1382
+ var l = this.data, p = function(u) {
1383
+ return l[u].getItem().detectFeature().get();
1384
+ };
1385
+ this.set(E, p(E)).set(M, p(M)).set(T, p(T)).set(C, p(C)).set(O, p(O));
1386
+ }
1387
+ return this;
1388
+ }, this.parseUA = function() {
1389
+ return this.itemType != Z && He.call(this.data, this.ua, this.rgxMap), this.itemType == E && this.set(pe, Ue(this.get(a))), this;
1390
+ }, this.parseCH = function() {
1391
+ var l = this.uaCH, p = this.rgxMap;
1392
+ switch (this.itemType) {
1393
+ case E:
1394
+ case C:
1395
+ var u = l[Ye] || l[Ge], c;
1396
+ if (u)
1397
+ for (var d in u) {
1398
+ var y = u[d].brand || u[d], v = u[d].version;
1399
+ this.itemType == E && !/not.a.brand/i.test(y) && (!c || /chrom/i.test(c) && y != di) && (y = V(y, {
1400
+ Chrome: "Google Chrome",
1401
+ Edge: "Microsoft Edge",
1402
+ "Chrome WebView": "Android WebView",
1403
+ "Chrome Headless": "HeadlessChrome",
1404
+ "Huawei Browser": "HuaweiBrowser",
1405
+ "MIUI Browser": "Miui Browser",
1406
+ "Opera Mobi": "OperaMobile",
1407
+ Yandex: "YaBrowser"
1408
+ }), this.set(r, y).set(a, v).set(pe, Ue(v)), c = y), this.itemType == C && y == di && this.set(a, v);
1409
+ }
1410
+ break;
1411
+ case M:
1412
+ var S = l[A];
1413
+ S && (S && l[Se] == "64" && (S += "64"), He.call(this.data, S + ";", p));
1414
+ break;
1415
+ case T:
1416
+ if (l[w] && this.set(e, w), l[i] && (this.set(i, l[i]), !this.get(e) || !this.get(o))) {
1417
+ var z = {};
1418
+ He.call(z, "droid 9; " + l[i] + ")", p), !this.get(e) && z.type && this.set(e, z.type), !this.get(o) && z.vendor && this.set(o, z.vendor);
1419
+ }
1420
+ if (l[W]) {
1421
+ var b;
1422
+ if (typeof l[W] != "string")
1423
+ for (var f = 0; !b && f < l[W].length; )
1424
+ b = V(l[W][f++], wi);
1425
+ else
1426
+ b = V(l[W], wi);
1427
+ this.set(e, b);
1428
+ }
1429
+ break;
1430
+ case O:
1431
+ var $ = l[ee];
1432
+ if ($) {
1433
+ var _ = l[je];
1434
+ $ == Ne && (_ = parseInt(Ue(_), 10) >= 13 ? "11" : "10"), this.set(r, $).set(a, _);
1435
+ }
1436
+ this.get(r) == Ne && l[i] == "Xbox" && this.set(r, "Xbox").set(a, void 0);
1437
+ break;
1438
+ case Z:
1439
+ var vi = this.data, ae = function(yi) {
1440
+ return vi[yi].getItem().setCH(l).parseCH().get();
1441
+ };
1442
+ this.set(E, ae(E)).set(M, ae(M)).set(T, ae(T)).set(C, ae(C)).set(O, ae(O));
1443
+ }
1444
+ return this;
1445
+ }, L.call(this, [
1446
+ ["itemType", t],
1447
+ ["ua", n],
1448
+ ["uaCH", m],
1449
+ ["rgxMap", s],
1450
+ ["data", Gi(this, t)]
1451
+ ]), this;
1452
+ }
1453
+ function U(t, n, s) {
1454
+ if (typeof t === te ? (_e(t, !0) ? (typeof n === te && (s = n), n = t) : (s = t, n = void 0), t = void 0) : typeof t === Ve && !_e(n, !0) && (s = n, n = void 0), s && typeof s.append === ke) {
1455
+ var m = {};
1456
+ s.forEach(function(d, y) {
1457
+ m[y] = d;
1458
+ }), s = m;
1459
+ }
1460
+ if (!(this instanceof U))
1461
+ return new U(t, n, s).getResult();
1462
+ var l = typeof t === Ve ? t : (
1463
+ // Passed user-agent string
1464
+ s && s[Ze] ? s[Ze] : (
1465
+ // User-Agent from passed headers
1466
+ R && R.userAgent ? R.userAgent : (
1467
+ // navigator.userAgent
1468
+ ie
1469
+ )
1470
+ )
1471
+ ), p = new gi(s, !0), u = n ? $i(bi, n) : bi, c = function(d) {
1472
+ return d == Z ? function() {
1473
+ return new mi(d, l, u, p).set("ua", l).set(E, this.getBrowser()).set(M, this.getCPU()).set(T, this.getDevice()).set(C, this.getEngine()).set(O, this.getOS()).get();
1474
+ } : function() {
1475
+ return new mi(d, l, u[d], p).parseUA().get();
1476
+ };
1477
+ };
1478
+ return L.call(this, [
1479
+ ["getBrowser", c(E)],
1480
+ ["getCPU", c(M)],
1481
+ ["getDevice", c(T)],
1482
+ ["getEngine", c(C)],
1483
+ ["getOS", c(O)],
1484
+ ["getResult", c(Z)],
1485
+ ["getUA", function() {
1486
+ return l;
1487
+ }],
1488
+ ["setUA", function(d) {
1489
+ return re(d) && (l = d.length > Fe ? fe(d, Fe) : d), this;
1490
+ }]
1491
+ ]).setUA(l), this;
1492
+ }
1493
+ U.VERSION = Li;
1494
+ U.BROWSER = Ee([r, a, pe, e]);
1495
+ U.CPU = Ee([A]);
1496
+ U.DEVICE = Ee([i, o, e, be, w, k, g, I, me]);
1497
+ U.ENGINE = U.OS = Ee([r, a]);
1498
+ const Yi = { class: "space-y-16" }, ji = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Wi = { class: "fm-typo-en-body-md-600" }, Xi = { class: "mt-48" }, Ki = { class: "space-y-16" }, Ji = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Qi = {
1499
+ key: 0,
1500
+ class: "fm-typo-en-body-md-600"
1501
+ }, Zi = {
1502
+ key: 1,
1503
+ class: "fm-typo-en-body-md-600"
1504
+ }, et = { class: "mt-48" }, it = { class: "space-y-16" }, tt = { class: "fm-typo-en-body-md-600" }, ot = { class: "fm-typo-en-body-md-600" }, rt = /* @__PURE__ */ ze({
1505
+ __name: "AuditLogDetailSheet",
1506
+ props: {
1507
+ auditLog: {
1508
+ type: Object,
1509
+ required: !0
1510
+ }
1511
+ },
1512
+ setup(t, { expose: n }) {
1513
+ const s = xe(!0), m = [
1514
+ {
1515
+ label: "ID",
1516
+ key: "_id"
1517
+ },
1518
+ {
1519
+ label: "Module Type",
1520
+ getter: (c) => c.moduleType ? Pe.title(c.moduleType) : "-"
1521
+ },
1522
+ {
1523
+ label: "User ID",
1524
+ key: "user"
1525
+ },
1526
+ {
1527
+ label: "User Name",
1528
+ key: "userName"
1529
+ },
1530
+ {
1531
+ label: "User Phone No.",
1532
+ key: "userPhoneNumber"
1533
+ },
1534
+ {
1535
+ label: "Client IP",
1536
+ key: "clientIp"
1537
+ },
1538
+ {
1539
+ label: "Timestamp",
1540
+ getter: (c) => c.timestamp ? J(c.timestamp).format("D MMM YYYY, hh:mmA") : "-"
1541
+ }
1542
+ ], l = [
1543
+ {
1544
+ label: "Request Method",
1545
+ key: "httpMethod"
1546
+ },
1547
+ {
1548
+ label: "Request URL",
1549
+ getter: (c) => `${c.request.host}${c.request.url}`
1550
+ },
1551
+ {
1552
+ label: "User Agent",
1553
+ getter: (c) => U(c.request.userAgent),
1554
+ isJson: !0
1555
+ },
1556
+ {
1557
+ label: "Request Params",
1558
+ getter: (c) => c.request.params || "-",
1559
+ isJson: !0
1560
+ },
1561
+ {
1562
+ label: "Request Query",
1563
+ getter: (c) => c.request.query || "-",
1564
+ isJson: !0
1565
+ },
1566
+ {
1567
+ label: "Request Body",
1568
+ getter: (c) => c.request.body || "-",
1569
+ isJson: !0
1570
+ }
1571
+ ];
1572
+ function p() {
1573
+ s.value = !0;
1574
+ }
1575
+ function u() {
1576
+ s.value = !1;
1577
+ }
1578
+ return n({
1579
+ showSheet: p,
1580
+ hideSheet: u
1581
+ }), (c, d) => {
1582
+ const y = $e("FmSideSheet");
1583
+ return P(), pi(y, {
1584
+ modelValue: h(s),
1585
+ "onUpdate:modelValue": d[0] || (d[0] = (v) => xi(s) ? s.value = v : null),
1586
+ header: "Audit Log Detail",
1587
+ "dismiss-away": "",
1588
+ "close-button": !0,
1589
+ "max-width": 650
1590
+ }, {
1591
+ "side-sheet-footer": We(() => d[6] || (d[6] = [])),
1592
+ default: We(() => [
1593
+ x("div", null, [
1594
+ d[1] || (d[1] = x("div", { class: "fm-typo-en-title-sm-800 my-24" }, "Log Information", -1)),
1595
+ x("div", Yi, [
1596
+ (P(), Q(qe, null, Xe(m, (v, S) => x("div", { key: S }, [
1597
+ x("div", ji, G(v.label), 1),
1598
+ x("div", Wi, G((v.key ? t.auditLog[v.key] : v.getter(t.auditLog)) || "-"), 1)
1599
+ ])), 64))
1600
+ ])
1601
+ ]),
1602
+ x("div", Xi, [
1603
+ d[2] || (d[2] = x("div", { class: "fm-typo-en-title-sm-800 mb-24" }, "Request Detail", -1)),
1604
+ x("div", Ki, [
1605
+ (P(), Q(qe, null, Xe(l, (v, S) => x("div", { key: S }, [
1606
+ x("div", Ji, G(v.label), 1),
1607
+ v.isJson ? (P(), Q("pre", Zi, G(v.key ? t.auditLog.request[v.key] : v.getter(t.auditLog) || "-"), 1)) : (P(), Q("div", Qi, G(v.key ? t.auditLog.request[v.key] : v.getter(t.auditLog) || "-"), 1))
1608
+ ])), 64))
1609
+ ])
1610
+ ]),
1611
+ x("div", et, [
1612
+ d[5] || (d[5] = x("div", { class: "fm-typo-en-title-sm-800 mb-24" }, "Response Detail", -1)),
1613
+ x("div", it, [
1614
+ x("div", null, [
1615
+ d[3] || (d[3] = x("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Status Code ", -1)),
1616
+ x("div", tt, G(t.auditLog.response.statusCode || "-"), 1)
1617
+ ]),
1618
+ x("div", null, [
1619
+ d[4] || (d[4] = x("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Response Body ", -1)),
1620
+ x("pre", ot, G(t.auditLog.response.body || "-"), 1)
1621
+ ])
1622
+ ])
1623
+ ])
1624
+ ]),
1625
+ _: 1
1626
+ }, 8, ["modelValue"]);
1627
+ };
1628
+ }
1629
+ }), at = () => {
1630
+ const t = Ii.getBusinessId();
1631
+ if (!t) throw new Error("Invalid business ID");
1632
+ return Ti(`businesses/${t}/audit-logs`, {
1633
+ noIdRequired: !0
1634
+ });
1635
+ }, st = {
1636
+ async readAll(t, n) {
1637
+ const s = Ci(
1638
+ await at().get("", {
1639
+ params: { ...t, ...n }
1640
+ })
1641
+ );
1642
+ return {
1643
+ meta: s.meta,
1644
+ resources: s.resources
1645
+ };
1646
+ }
1647
+ }, nt = { class: "hidden xs:flex items-center justify-end" }, lt = { class: "flex items-center justify-between" }, dt = { class: "flex gap-8 items-center w-full overflow-x-scroll" }, ut = /* @__PURE__ */ ze({
1648
+ __name: "AuditLogsTable",
1649
+ setup(t) {
1650
+ const n = xe(), s = xe(), m = [
1651
+ {
1652
+ header: "Audit Log ID",
1653
+ accessorKey: "_id",
1654
+ meta: {
1655
+ maxWidth: "100px"
1656
+ },
1657
+ cell(b) {
1658
+ return Y("div", { class: "flex items-center" }, [
1659
+ Y(Ke.FmIcon, {
1660
+ name: "content_copy",
1661
+ outline: !0,
1662
+ size: "sm",
1663
+ class: "cursor-pointer mr-4",
1664
+ onClick: (f) => {
1665
+ f.preventDefault(), f.stopPropagation(), Je(b.row.original._id.toString());
1666
+ }
1667
+ }),
1668
+ Y(
1669
+ "div",
1670
+ { class: "pr-2 text-ellipsis overflow-hidden" },
1671
+ b.row.original._id.toString()
1672
+ )
1673
+ ]);
1674
+ },
1675
+ enableSorting: !1
1676
+ },
1677
+ {
1678
+ header: "Timestamp",
1679
+ accessorKey: "timestamp",
1680
+ accessorFn: (b) => J(Mi(b._id.toString())).format("D MMM YYYY, hh:mmA"),
1681
+ enableSorting: !0
1682
+ },
1683
+ {
1684
+ header: "Status",
1685
+ accessorKey: "response.statusCode",
1686
+ enableSorting: !1
1687
+ },
1688
+ {
1689
+ header: "Module Type",
1690
+ accessorKey: "moduleType",
1691
+ accessorFn: (b) => b.moduleType ? Pe.title(b.moduleType) : "-",
1692
+ enableSorting: !1
1693
+ },
1694
+ {
1695
+ header: "User ID",
1696
+ accessorKey: "user",
1697
+ cell(b) {
1698
+ return Y("div", { class: "flex items-center" }, [
1699
+ Y(Ke.FmIcon, {
1700
+ name: "content_copy",
1701
+ outline: !0,
1702
+ size: "sm",
1703
+ class: "cursor-pointer mr-4",
1704
+ onClick: (f) => {
1705
+ f.preventDefault(), f.stopPropagation(), Je(b.row.original.user);
1706
+ }
1707
+ }),
1708
+ Y(
1709
+ "div",
1710
+ { class: "pr-2 text-ellipsis overflow-hidden" },
1711
+ b.row.original.user
1712
+ )
1713
+ ]);
1714
+ },
1715
+ enableSorting: !1
1716
+ },
1717
+ {
1718
+ header: "User Name",
1719
+ accessorKey: "userName",
1720
+ enableSorting: !1
1721
+ },
1722
+ {
1723
+ header: "User Phone No.",
1724
+ accessorFn: (b) => b.userPhoneNumber || "-",
1725
+ enableSorting: !1
1726
+ },
1727
+ {
1728
+ header: "Request URL",
1729
+ meta: {
1730
+ maxWidth: "400px"
1731
+ },
1732
+ cell(b) {
1733
+ return Y(
1734
+ "div",
1735
+ { class: "break-words whitespace-normal" },
1736
+ `${b.row.original.request.host}${b.row.original.request.url}`
1737
+ );
1738
+ },
1739
+ accessorFn: (b) => `${b.request.host}${b.request.url}`,
1740
+ enableSorting: !1
1741
+ },
1742
+ {
1743
+ header: "Request Method",
1744
+ accessorKey: "request.httpMethod",
1745
+ enableSorting: !1
1746
+ },
1747
+ {
1748
+ header: "Client IP",
1749
+ accessorFn: (b) => b.clientIp || "-",
1750
+ enableSorting: !1
1751
+ }
1752
+ ], l = xe({
1753
+ search: "",
1754
+ dateRange: {
1755
+ startDate: J().subtract(7, "day").toISOString(),
1756
+ endDate: J().endOf("day").toISOString()
1757
+ },
1758
+ httpMethod: [],
1759
+ moduleType: []
1760
+ }), { tableMeta: p, rowData: u, onSort: c, debouncedFetchData: d, onSearch: y } = Ai(async (b) => {
1761
+ const f = {
1762
+ ...l.value,
1763
+ dateRange: {
1764
+ start: new Date(l.value.dateRange.startDate).toISOString(),
1765
+ end: new Date(l.value.dateRange.endDate).toISOString()
1766
+ }
1767
+ };
1768
+ return await st.readAll(b, f);
1769
+ }), v = [
1770
+ he.enum.POST,
1771
+ he.enum.PUT,
1772
+ he.enum.PATCH,
1773
+ he.enum.DELETE
1774
+ ].map((b) => ({ label: b, value: b })), S = Oi.options.map((b) => ({ label: Pe.title(b), value: b })).sort((b, f) => b.label.localeCompare(f.label));
1775
+ ki(
1776
+ l,
1777
+ () => {
1778
+ d();
1779
+ },
1780
+ { deep: !0 }
1781
+ );
1782
+ function z(b) {
1783
+ var f;
1784
+ s.value = b.original, (f = n == null ? void 0 : n.value) == null || f.showSheet();
1785
+ }
1786
+ return _i(async () => {
1787
+ await d();
1788
+ }), (b, f) => {
1789
+ const $ = $e("FmSearch");
1790
+ return P(), Q("div", null, [
1791
+ x("div", nt, [
1792
+ q($, {
1793
+ class: "hidden xs:flex",
1794
+ modelValue: h(l).search,
1795
+ "onUpdate:modelValue": f[0] || (f[0] = (_) => h(l).search = _),
1796
+ placeholder: "Search",
1797
+ collapsible: ""
1798
+ }, null, 8, ["modelValue"])
1799
+ ]),
1800
+ x("div", lt, [
1801
+ x("div", dt, [
1802
+ q(Qe, {
1803
+ class: "cursor-pointer text-fm-color-neutral-gray-400",
1804
+ "right-icon": "keyboard_arrow_down",
1805
+ modelValue: h(l).moduleType,
1806
+ "onUpdate:modelValue": f[1] || (f[1] = (_) => h(l).moduleType = _),
1807
+ label: "Module Type: ",
1808
+ "show-item-label": !0,
1809
+ items: h(S)
1810
+ }, null, 8, ["modelValue", "items"]),
1811
+ q(Qe, {
1812
+ class: "cursor-pointer text-fm-color-neutral-gray-400",
1813
+ "right-icon": "keyboard_arrow_down",
1814
+ modelValue: h(l).httpMethod,
1815
+ "onUpdate:modelValue": f[2] || (f[2] = (_) => h(l).httpMethod = _),
1816
+ label: "Request Method: ",
1817
+ "show-item-label": !0,
1818
+ items: h(v)
1819
+ }, null, 8, ["modelValue", "items"]),
1820
+ q(Ei, {
1821
+ "model-value": {
1822
+ startDate: h(l).dateRange.startDate,
1823
+ endDate: h(l).dateRange.endDate
1824
+ },
1825
+ "onUpdate:modelValue": f[3] || (f[3] = (_) => h(l).dateRange = {
1826
+ startDate: h(J)(_.startDate).startOf("d").toISOString(),
1827
+ endDate: h(J)(_.endDate).endOf("d").toISOString()
1828
+ })
1829
+ }, null, 8, ["model-value"])
1830
+ ]),
1831
+ q($, {
1832
+ class: "xs:hidden",
1833
+ modelValue: h(l).search,
1834
+ "onUpdate:modelValue": [
1835
+ f[4] || (f[4] = (_) => h(l).search = _),
1836
+ h(y)
1837
+ ],
1838
+ placeholder: "Search",
1839
+ collapsible: ""
1840
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])
1841
+ ]),
1842
+ q(Ri, {
1843
+ loading: h(p).isLoading,
1844
+ "row-data": h(u),
1845
+ "row-count": h(p).totalRows,
1846
+ "column-defs": m,
1847
+ "page-count": h(p).pageCount,
1848
+ "page-index": h(p).pageIndex,
1849
+ "page-size": h(p).pageSize,
1850
+ "shrink-at": !1,
1851
+ onSortChange: h(c),
1852
+ onPageChange: f[5] || (f[5] = (_) => h(d)({
1853
+ pageSize: _.pageSize,
1854
+ pageIndex: _.pageIndex
1855
+ })),
1856
+ onRowClick: z
1857
+ }, null, 8, ["loading", "row-data", "row-count", "page-count", "page-index", "page-size", "onSortChange"]),
1858
+ h(s) ? (P(), pi(rt, {
1859
+ key: 0,
1860
+ ref_key: "sheetRef",
1861
+ ref: n,
1862
+ auditLog: h(s)
1863
+ }, null, 8, ["auditLog"])) : Si("", !0)
1864
+ ]);
1865
+ };
1866
+ }
1867
+ }), ct = { class: "px-24 flex flex-col gap-y-32 pb-24" }, Rt = /* @__PURE__ */ ze({
1868
+ __name: "AuditLogs",
1869
+ setup(t) {
1870
+ const { t: n } = Di();
1871
+ return (s, m) => {
1872
+ const l = $e("FmPageHead");
1873
+ return P(), Q(qe, null, [
1874
+ q(l, {
1875
+ title: h(n)("connect.auditLogs.title")
1876
+ }, null, 8, ["title"]),
1877
+ x("div", ct, [
1878
+ q(ut)
1879
+ ])
1880
+ ], 64);
1881
+ };
1882
+ }
1883
+ });
1884
+ export {
1885
+ Rt as default
1886
+ };