@feedmepos/mf-connect 0.1.38-beta.9 → 0.1.38-beta.91

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