@expofp/floorplan
Version:
Interactive floor plan library for expos and events
1,350 lines • 185 kB
JavaScript
(function() {
try {
var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
e.SENTRY_RELEASE = { id: "3.7.8" };
var t = new e.Error().stack;
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "e9d6759a-9f3b-4549-bd1e-7009610b857a", e._sentryDebugIdIdentifier = "sentry-dbid-e9d6759a-9f3b-4549-bd1e-7009610b857a");
} catch {}
})();
import { r as e, t } from "./rolldown-runtime-YBAZwyzS.js";
import { t as n } from "./browser-CIXTbsxm.js";
//#region src/tools/logger.ts
var r = /* @__PURE__ */ e(n(), 1), i = class {
constructor() {
this.messages = [];
}
log(...e) {
this.push("DEBUG", e), (0, r.default)("efp:floorplan:debug")(...e);
}
error(...e) {
this.push("ERROR", e), a(console.error, e);
}
warn(...e) {
this.push("WARN", e), a(console.warn, e);
}
info(...e) {
this.push("INFO", e), (0, r.default)("efp:floorplan:info")(...e);
}
push(e, t) {
let n = t.map((e) => {
if (typeof e == "object") try {
return JSON.stringify(e);
} catch (e) {
return e.message;
}
return e;
}), r = e + " " + (/* @__PURE__ */ new Date()).toISOString() + " " + n.join("; ");
this.messages.push(r);
let i = 1e3;
this.messages.length > i && this.messages.splice(0, i / 2);
}
};
function a(e, t) {
try {
e.apply(e, t);
} catch {}
}
var o = new i(), s = "___visibility", c = "previewMode", l = "___preview_mode", u = "data-preview-mode", d = "booths", f = "kiosk", p = "setkiosk", m = "expofp-map-settings", h = "debug", g = "efp:debug", _ = "build-route", v = "planner", y = "source", b = "from", x = "pathway", ee = 1e3, S = "lang", te = "language", ne = "uiscale", re = "resetuiscale", ie = "___ui-scale", ae = "--expofp-font-face", oe = "--expofp-booth-main-weight", se = "--expofp-booth-details-weight", C = "--expofp-exhibitor-main-weight", ce = "--expofp-exhibitor-details-weight", le = "--expofp-booth-special-weight", ue = "efp-compass-permission-granted", de = "viewermode", fe = "___viewer_mode", pe = new URL(
/* @vite-ignore */
".",
import.meta.url
).href;
pe.endsWith("/") || (pe += "/");
var me = pe, he = /* @__PURE__ */ t(((e, t) => {
(function() {
function e(e, t) {
document.addEventListener ? e.addEventListener("scroll", t, !1) : e.attachEvent("scroll", t);
}
function n(e) {
document.body ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", function t() {
document.removeEventListener("DOMContentLoaded", t), e();
}) : document.attachEvent("onreadystatechange", function t() {
(document.readyState == "interactive" || document.readyState == "complete") && (document.detachEvent("onreadystatechange", t), e());
});
}
function r(e) {
this.g = document.createElement("div"), this.g.setAttribute("aria-hidden", "true"), this.g.appendChild(document.createTextNode(e)), this.h = document.createElement("span"), this.i = document.createElement("span"), this.m = document.createElement("span"), this.j = document.createElement("span"), this.l = -1, this.h.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;", this.i.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;", this.j.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;", this.m.style.cssText = "display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;", this.h.appendChild(this.m), this.i.appendChild(this.j), this.g.appendChild(this.h), this.g.appendChild(this.i);
}
function i(e, t) {
e.g.style.cssText = "max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:" + t + ";";
}
function a(e) {
var t = e.g.offsetWidth, n = t + 100;
return e.j.style.width = n + "px", e.i.scrollLeft = n, e.h.scrollLeft = e.h.scrollWidth + 100, e.l === t ? !1 : (e.l = t, !0);
}
function o(t, n) {
function r() {
var e = i;
a(e) && e.g.parentNode !== null && n(e.l);
}
var i = t;
e(t.h, r), e(t.i, r), a(t);
}
function s(e, t, n) {
t = t || {}, n = n || window, this.family = e, this.style = t.style || "normal", this.weight = t.weight || "normal", this.stretch = t.stretch || "normal", this.context = n;
}
var c = null, l = null, u = null, d = null;
function f(e) {
return l === null && (p(e) && /Apple/.test(window.navigator.vendor) ? (e = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent), l = !!e && 603 > parseInt(e[1], 10)) : l = !1), l;
}
function p(e) {
return d === null && (d = !!e.document.fonts), d;
}
function m(e, t) {
var n = e.style, r = e.weight;
if (u === null) {
var i = document.createElement("div");
try {
i.style.font = "condensed 100px sans-serif";
} catch {}
u = i.style.font !== "";
}
return [
n,
r,
u ? e.stretch : "",
"100px",
t
].join(" ");
}
s.prototype.load = function(e, t) {
var a = this, s = e || "BESbswy", l = 0, u = t || 3e3, d = (/* @__PURE__ */ new Date()).getTime();
return new Promise(function(e, t) {
if (p(a.context) && !f(a.context)) {
var h = new Promise(function(e, t) {
function n() {
(/* @__PURE__ */ new Date()).getTime() - d >= u ? t(Error("" + u + "ms timeout exceeded")) : a.context.document.fonts.load(m(a, "\"" + a.family + "\""), s).then(function(t) {
1 <= t.length ? e() : setTimeout(n, 25);
}, t);
}
n();
}), g = new Promise(function(e, t) {
l = setTimeout(function() {
t(Error("" + u + "ms timeout exceeded"));
}, u);
});
Promise.race([g, h]).then(function() {
clearTimeout(l), e(a);
}, t);
} else n(function() {
function n() {
var t;
(t = _ != -1 && v != -1 || _ != -1 && y != -1 || v != -1 && y != -1) && ((t = _ != v && _ != y && v != y) || (c === null && (t = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent), c = !!t && (536 > parseInt(t[1], 10) || parseInt(t[1], 10) === 536 && 11 >= parseInt(t[2], 10))), t = c && (_ == b && v == b && y == b || _ == x && v == x && y == x || _ == ee && v == ee && y == ee)), t = !t), t && (S.parentNode !== null && S.parentNode.removeChild(S), clearTimeout(l), e(a));
}
function f() {
if ((/* @__PURE__ */ new Date()).getTime() - d >= u) S.parentNode !== null && S.parentNode.removeChild(S), t(Error("" + u + "ms timeout exceeded"));
else {
var e = a.context.document.hidden;
(!0 === e || e === void 0) && (_ = p.g.offsetWidth, v = h.g.offsetWidth, y = g.g.offsetWidth, n()), l = setTimeout(f, 50);
}
}
var p = new r(s), h = new r(s), g = new r(s), _ = -1, v = -1, y = -1, b = -1, x = -1, ee = -1, S = document.createElement("div");
S.dir = "ltr", i(p, m(a, "sans-serif")), i(h, m(a, "serif")), i(g, m(a, "monospace")), S.appendChild(p.g), S.appendChild(h.g), S.appendChild(g.g), a.context.document.body.appendChild(S), b = p.g.offsetWidth, x = h.g.offsetWidth, ee = g.g.offsetWidth, f(), o(p, function(e) {
_ = e, n();
}), i(p, m(a, "\"" + a.family + "\",sans-serif")), o(h, function(e) {
v = e, n();
}), i(h, m(a, "\"" + a.family + "\",serif")), o(g, function(e) {
y = e, n();
}), i(g, m(a, "\"" + a.family + "\",monospace"));
});
});
}, typeof t == "object" ? t.exports = s : (window.FontFaceObserver = s, window.FontFaceObserver.prototype.load = s.prototype.load);
})();
})), ge, _e = new Uint8Array(16);
function ve() {
if (!ge && (ge = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !ge)) throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
return ge(_e);
}
//#endregion
//#region ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js
var w = [];
for (let e = 0; e < 256; ++e) w.push((e + 256).toString(16).slice(1));
function ye(e, t = 0) {
return w[e[t + 0]] + w[e[t + 1]] + w[e[t + 2]] + w[e[t + 3]] + "-" + w[e[t + 4]] + w[e[t + 5]] + "-" + w[e[t + 6]] + w[e[t + 7]] + "-" + w[e[t + 8]] + w[e[t + 9]] + "-" + w[e[t + 10]] + w[e[t + 11]] + w[e[t + 12]] + w[e[t + 13]] + w[e[t + 14]] + w[e[t + 15]];
}
var be = { randomUUID: typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto) };
//#endregion
//#region ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js
function xe(e, t, n) {
if (be.randomUUID && !t && !e) return be.randomUUID();
e = e || {};
let r = e.random || (e.rng || ve)();
if (r[6] = r[6] & 15 | 64, r[8] = r[8] & 63 | 128, t) {
n = n || 0;
for (let e = 0; e < 16; ++e) t[n + e] = r[e];
return t;
}
return ye(r);
}
//#endregion
//#region ../../node_modules/.pnpm/bowser@2.14.1/node_modules/bowser/es5.js
var Se = /* @__PURE__ */ t(((e, t) => {
(function(n, r) {
typeof e == "object" && typeof t == "object" ? t.exports = r() : typeof define == "function" && define.amd ? define([], r) : typeof e == "object" ? e.bowser = r() : n.bowser = r();
})(e, (function() {
return function(e) {
var t = {};
function n(r) {
if (t[r]) return t[r].exports;
var i = t[r] = {
i: r,
l: !1,
exports: {}
};
return e[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports;
}
return n.m = e, n.c = t, n.d = function(e, t, r) {
n.o(e, t) || Object.defineProperty(e, t, {
enumerable: !0,
get: r
});
}, n.r = function(e) {
typeof Symbol < "u" && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });
}, n.t = function(e, t) {
if (1 & t && (e = n(e)), 8 & t || 4 & t && typeof e == "object" && e && e.__esModule) return e;
var r = Object.create(null);
if (n.r(r), Object.defineProperty(r, "default", {
enumerable: !0,
value: e
}), 2 & t && typeof e != "string") for (var i in e) n.d(r, i, function(t) {
return e[t];
}.bind(null, i));
return r;
}, n.n = function(e) {
var t = e && e.__esModule ? function() {
return e.default;
} : function() {
return e;
};
return n.d(t, "a", t), t;
}, n.o = function(e, t) {
return Object.prototype.hasOwnProperty.call(e, t);
}, n.p = "", n(n.s = 90);
}({
17: function(e, t, n) {
t.__esModule = !0, t.default = void 0;
var r = n(18);
t.default = function() {
function e() {}
return e.getFirstMatch = function(e, t) {
var n = t.match(e);
return n && n.length > 0 && n[1] || "";
}, e.getSecondMatch = function(e, t) {
var n = t.match(e);
return n && n.length > 1 && n[2] || "";
}, e.matchAndReturnConst = function(e, t, n) {
if (e.test(t)) return n;
}, e.getWindowsVersionName = function(e) {
switch (e) {
case "NT": return "NT";
case "XP": return "XP";
case "NT 5.0": return "2000";
case "NT 5.1": return "XP";
case "NT 5.2": return "2003";
case "NT 6.0": return "Vista";
case "NT 6.1": return "7";
case "NT 6.2": return "8";
case "NT 6.3": return "8.1";
case "NT 10.0": return "10";
default: return;
}
}, e.getMacOSVersionName = function(e) {
var t = e.split(".").splice(0, 2).map((function(e) {
return parseInt(e, 10) || 0;
}));
t.push(0);
var n = t[0], r = t[1];
if (n === 10) switch (r) {
case 5: return "Leopard";
case 6: return "Snow Leopard";
case 7: return "Lion";
case 8: return "Mountain Lion";
case 9: return "Mavericks";
case 10: return "Yosemite";
case 11: return "El Capitan";
case 12: return "Sierra";
case 13: return "High Sierra";
case 14: return "Mojave";
case 15: return "Catalina";
default: return;
}
switch (n) {
case 11: return "Big Sur";
case 12: return "Monterey";
case 13: return "Ventura";
case 14: return "Sonoma";
case 15: return "Sequoia";
default: return;
}
}, e.getAndroidVersionName = function(e) {
var t = e.split(".").splice(0, 2).map((function(e) {
return parseInt(e, 10) || 0;
}));
if (t.push(0), !(t[0] === 1 && t[1] < 5)) return t[0] === 1 && t[1] < 6 ? "Cupcake" : t[0] === 1 && t[1] >= 6 ? "Donut" : t[0] === 2 && t[1] < 2 ? "Eclair" : t[0] === 2 && t[1] === 2 ? "Froyo" : t[0] === 2 && t[1] > 2 ? "Gingerbread" : t[0] === 3 ? "Honeycomb" : t[0] === 4 && t[1] < 1 ? "Ice Cream Sandwich" : t[0] === 4 && t[1] < 4 ? "Jelly Bean" : t[0] === 4 && t[1] >= 4 ? "KitKat" : t[0] === 5 ? "Lollipop" : t[0] === 6 ? "Marshmallow" : t[0] === 7 ? "Nougat" : t[0] === 8 ? "Oreo" : t[0] === 9 ? "Pie" : void 0;
}, e.getVersionPrecision = function(e) {
return e.split(".").length;
}, e.compareVersions = function(t, n, r) {
r === void 0 && (r = !1);
var i = e.getVersionPrecision(t), a = e.getVersionPrecision(n), o = Math.max(i, a), s = 0, c = e.map([t, n], (function(t) {
var n = o - e.getVersionPrecision(t), r = t + Array(n + 1).join(".0");
return e.map(r.split("."), (function(e) {
return Array(20 - e.length).join("0") + e;
})).reverse();
}));
for (r && (s = o - Math.min(i, a)), --o; o >= s;) {
if (c[0][o] > c[1][o]) return 1;
if (c[0][o] === c[1][o]) {
if (o === s) return 0;
--o;
} else if (c[0][o] < c[1][o]) return -1;
}
}, e.map = function(e, t) {
var n, r = [];
if (Array.prototype.map) return Array.prototype.map.call(e, t);
for (n = 0; n < e.length; n += 1) r.push(t(e[n]));
return r;
}, e.find = function(e, t) {
var n, r;
if (Array.prototype.find) return Array.prototype.find.call(e, t);
for (n = 0, r = e.length; n < r; n += 1) {
var i = e[n];
if (t(i, n)) return i;
}
}, e.assign = function(e) {
for (var t, n, r = e, i = arguments.length, a = Array(i > 1 ? i - 1 : 0), o = 1; o < i; o++) a[o - 1] = arguments[o];
if (Object.assign) return Object.assign.apply(Object, [e].concat(a));
var s = function() {
var e = a[t];
typeof e == "object" && e && Object.keys(e).forEach((function(t) {
r[t] = e[t];
}));
};
for (t = 0, n = a.length; t < n; t += 1) s();
return e;
}, e.getBrowserAlias = function(e) {
return r.BROWSER_ALIASES_MAP[e];
}, e.getBrowserTypeByAlias = function(e) {
return r.BROWSER_MAP[e] || "";
}, e;
}(), e.exports = t.default;
},
18: function(e, t, n) {
t.__esModule = !0, t.ENGINE_MAP = t.OS_MAP = t.PLATFORMS_MAP = t.BROWSER_MAP = t.BROWSER_ALIASES_MAP = void 0, t.BROWSER_ALIASES_MAP = {
AmazonBot: "amazonbot",
"Amazon Silk": "amazon_silk",
"Android Browser": "android",
BaiduSpider: "baiduspider",
Bada: "bada",
BingCrawler: "bingcrawler",
Brave: "brave",
BlackBerry: "blackberry",
"ChatGPT-User": "chatgpt_user",
Chrome: "chrome",
ClaudeBot: "claudebot",
Chromium: "chromium",
Diffbot: "diffbot",
DuckDuckBot: "duckduckbot",
DuckDuckGo: "duckduckgo",
Electron: "electron",
Epiphany: "epiphany",
FacebookExternalHit: "facebookexternalhit",
Firefox: "firefox",
Focus: "focus",
Generic: "generic",
"Google Search": "google_search",
Googlebot: "googlebot",
GPTBot: "gptbot",
"Internet Explorer": "ie",
InternetArchiveCrawler: "internetarchivecrawler",
"K-Meleon": "k_meleon",
LibreWolf: "librewolf",
Linespider: "linespider",
Maxthon: "maxthon",
"Meta-ExternalAds": "meta_externalads",
"Meta-ExternalAgent": "meta_externalagent",
"Meta-ExternalFetcher": "meta_externalfetcher",
"Meta-WebIndexer": "meta_webindexer",
"Microsoft Edge": "edge",
"MZ Browser": "mz",
"NAVER Whale Browser": "naver",
"OAI-SearchBot": "oai_searchbot",
Omgilibot: "omgilibot",
Opera: "opera",
"Opera Coast": "opera_coast",
"Pale Moon": "pale_moon",
PerplexityBot: "perplexitybot",
"Perplexity-User": "perplexity_user",
PhantomJS: "phantomjs",
PingdomBot: "pingdombot",
Puffin: "puffin",
QQ: "qq",
QQLite: "qqlite",
QupZilla: "qupzilla",
Roku: "roku",
Safari: "safari",
Sailfish: "sailfish",
"Samsung Internet for Android": "samsung_internet",
SlackBot: "slackbot",
SeaMonkey: "seamonkey",
Sleipnir: "sleipnir",
"Sogou Browser": "sogou",
Swing: "swing",
Tizen: "tizen",
"UC Browser": "uc",
Vivaldi: "vivaldi",
"WebOS Browser": "webos",
WeChat: "wechat",
YahooSlurp: "yahooslurp",
"Yandex Browser": "yandex",
YandexBot: "yandexbot",
YouBot: "youbot"
}, t.BROWSER_MAP = {
amazonbot: "AmazonBot",
amazon_silk: "Amazon Silk",
android: "Android Browser",
baiduspider: "BaiduSpider",
bada: "Bada",
bingcrawler: "BingCrawler",
blackberry: "BlackBerry",
brave: "Brave",
chatgpt_user: "ChatGPT-User",
chrome: "Chrome",
claudebot: "ClaudeBot",
chromium: "Chromium",
diffbot: "Diffbot",
duckduckbot: "DuckDuckBot",
duckduckgo: "DuckDuckGo",
edge: "Microsoft Edge",
electron: "Electron",
epiphany: "Epiphany",
facebookexternalhit: "FacebookExternalHit",
firefox: "Firefox",
focus: "Focus",
generic: "Generic",
google_search: "Google Search",
googlebot: "Googlebot",
gptbot: "GPTBot",
ie: "Internet Explorer",
internetarchivecrawler: "InternetArchiveCrawler",
k_meleon: "K-Meleon",
librewolf: "LibreWolf",
linespider: "Linespider",
maxthon: "Maxthon",
meta_externalads: "Meta-ExternalAds",
meta_externalagent: "Meta-ExternalAgent",
meta_externalfetcher: "Meta-ExternalFetcher",
meta_webindexer: "Meta-WebIndexer",
mz: "MZ Browser",
naver: "NAVER Whale Browser",
oai_searchbot: "OAI-SearchBot",
omgilibot: "Omgilibot",
opera: "Opera",
opera_coast: "Opera Coast",
pale_moon: "Pale Moon",
perplexitybot: "PerplexityBot",
perplexity_user: "Perplexity-User",
phantomjs: "PhantomJS",
pingdombot: "PingdomBot",
puffin: "Puffin",
qq: "QQ Browser",
qqlite: "QQ Browser Lite",
qupzilla: "QupZilla",
roku: "Roku",
safari: "Safari",
sailfish: "Sailfish",
samsung_internet: "Samsung Internet for Android",
seamonkey: "SeaMonkey",
slackbot: "SlackBot",
sleipnir: "Sleipnir",
sogou: "Sogou Browser",
swing: "Swing",
tizen: "Tizen",
uc: "UC Browser",
vivaldi: "Vivaldi",
webos: "WebOS Browser",
wechat: "WeChat",
yahooslurp: "YahooSlurp",
yandex: "Yandex Browser",
yandexbot: "YandexBot",
youbot: "YouBot"
}, t.PLATFORMS_MAP = {
bot: "bot",
desktop: "desktop",
mobile: "mobile",
tablet: "tablet",
tv: "tv"
}, t.OS_MAP = {
Android: "Android",
Bada: "Bada",
BlackBerry: "BlackBerry",
ChromeOS: "Chrome OS",
HarmonyOS: "HarmonyOS",
iOS: "iOS",
Linux: "Linux",
MacOS: "macOS",
PlayStation4: "PlayStation 4",
Roku: "Roku",
Tizen: "Tizen",
WebOS: "WebOS",
Windows: "Windows",
WindowsPhone: "Windows Phone"
}, t.ENGINE_MAP = {
Blink: "Blink",
EdgeHTML: "EdgeHTML",
Gecko: "Gecko",
Presto: "Presto",
Trident: "Trident",
WebKit: "WebKit"
};
},
90: function(e, t, n) {
t.__esModule = !0, t.default = void 0;
var r, i = (r = n(91)) && r.__esModule ? r : { default: r }, a = n(18);
function o(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
t.default = function() {
function e() {}
var t, n, r;
return e.getParser = function(e, t, n) {
if (t === void 0 && (t = !1), n === void 0 && (n = null), typeof e != "string") throw Error("UserAgent should be a string");
return new i.default(e, t, n);
}, e.parse = function(e, t) {
return t === void 0 && (t = null), new i.default(e, t).getResult();
}, t = e, r = [
{
key: "BROWSER_MAP",
get: function() {
return a.BROWSER_MAP;
}
},
{
key: "ENGINE_MAP",
get: function() {
return a.ENGINE_MAP;
}
},
{
key: "OS_MAP",
get: function() {
return a.OS_MAP;
}
},
{
key: "PLATFORMS_MAP",
get: function() {
return a.PLATFORMS_MAP;
}
}
], (n = null) && o(t.prototype, n), r && o(t, r), e;
}(), e.exports = t.default;
},
91: function(e, t, n) {
t.__esModule = !0, t.default = void 0;
var r = c(n(92)), i = c(n(93)), a = c(n(94)), o = c(n(95)), s = c(n(17));
function c(e) {
return e && e.__esModule ? e : { default: e };
}
t.default = function() {
function e(e, t, n) {
if (t === void 0 && (t = !1), n === void 0 && (n = null), e == null || e === "") throw Error("UserAgent parameter can't be empty");
this._ua = e;
var r = !1;
typeof t == "boolean" ? (r = t, this._hints = n) : this._hints = typeof t == "object" && t ? t : null, this.parsedResult = {}, !0 !== r && this.parse();
}
var t = e.prototype;
return t.getHints = function() {
return this._hints;
}, t.hasBrand = function(e) {
if (!this._hints || !Array.isArray(this._hints.brands)) return !1;
var t = e.toLowerCase();
return this._hints.brands.some((function(e) {
return e.brand && e.brand.toLowerCase() === t;
}));
}, t.getBrandVersion = function(e) {
if (this._hints && Array.isArray(this._hints.brands)) {
var t = e.toLowerCase(), n = this._hints.brands.find((function(e) {
return e.brand && e.brand.toLowerCase() === t;
}));
return n ? n.version : void 0;
}
}, t.getUA = function() {
return this._ua;
}, t.test = function(e) {
return e.test(this._ua);
}, t.parseBrowser = function() {
var e = this;
this.parsedResult.browser = {};
var t = s.default.find(r.default, (function(t) {
if (typeof t.test == "function") return t.test(e);
if (Array.isArray(t.test)) return t.test.some((function(t) {
return e.test(t);
}));
throw Error("Browser's test function is not valid");
}));
return t && (this.parsedResult.browser = t.describe(this.getUA(), this)), this.parsedResult.browser;
}, t.getBrowser = function() {
return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser();
}, t.getBrowserName = function(e) {
return e ? String(this.getBrowser().name).toLowerCase() || "" : this.getBrowser().name || "";
}, t.getBrowserVersion = function() {
return this.getBrowser().version;
}, t.getOS = function() {
return this.parsedResult.os ? this.parsedResult.os : this.parseOS();
}, t.parseOS = function() {
var e = this;
this.parsedResult.os = {};
var t = s.default.find(i.default, (function(t) {
if (typeof t.test == "function") return t.test(e);
if (Array.isArray(t.test)) return t.test.some((function(t) {
return e.test(t);
}));
throw Error("Browser's test function is not valid");
}));
return t && (this.parsedResult.os = t.describe(this.getUA())), this.parsedResult.os;
}, t.getOSName = function(e) {
var t = this.getOS().name;
return e ? String(t).toLowerCase() || "" : t || "";
}, t.getOSVersion = function() {
return this.getOS().version;
}, t.getPlatform = function() {
return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform();
}, t.getPlatformType = function(e) {
e === void 0 && (e = !1);
var t = this.getPlatform().type;
return e ? String(t).toLowerCase() || "" : t || "";
}, t.parsePlatform = function() {
var e = this;
this.parsedResult.platform = {};
var t = s.default.find(a.default, (function(t) {
if (typeof t.test == "function") return t.test(e);
if (Array.isArray(t.test)) return t.test.some((function(t) {
return e.test(t);
}));
throw Error("Browser's test function is not valid");
}));
return t && (this.parsedResult.platform = t.describe(this.getUA())), this.parsedResult.platform;
}, t.getEngine = function() {
return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine();
}, t.getEngineName = function(e) {
return e ? String(this.getEngine().name).toLowerCase() || "" : this.getEngine().name || "";
}, t.parseEngine = function() {
var e = this;
this.parsedResult.engine = {};
var t = s.default.find(o.default, (function(t) {
if (typeof t.test == "function") return t.test(e);
if (Array.isArray(t.test)) return t.test.some((function(t) {
return e.test(t);
}));
throw Error("Browser's test function is not valid");
}));
return t && (this.parsedResult.engine = t.describe(this.getUA())), this.parsedResult.engine;
}, t.parse = function() {
return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this;
}, t.getResult = function() {
return s.default.assign({}, this.parsedResult);
}, t.satisfies = function(e) {
var t = this, n = {}, r = 0, i = {}, a = 0;
if (Object.keys(e).forEach((function(t) {
var o = e[t];
typeof o == "string" ? (i[t] = o, a += 1) : typeof o == "object" && (n[t] = o, r += 1);
})), r > 0) {
var o = Object.keys(n), c = s.default.find(o, (function(e) {
return t.isOS(e);
}));
if (c) {
var l = this.satisfies(n[c]);
if (l !== void 0) return l;
}
var u = s.default.find(o, (function(e) {
return t.isPlatform(e);
}));
if (u) {
var d = this.satisfies(n[u]);
if (d !== void 0) return d;
}
}
if (a > 0) {
var f = Object.keys(i), p = s.default.find(f, (function(e) {
return t.isBrowser(e, !0);
}));
if (p !== void 0) return this.compareVersion(i[p]);
}
}, t.isBrowser = function(e, t) {
t === void 0 && (t = !1);
var n = this.getBrowserName().toLowerCase(), r = e.toLowerCase(), i = s.default.getBrowserTypeByAlias(r);
return t && i && (r = i.toLowerCase()), r === n;
}, t.compareVersion = function(e) {
var t = [0], n = e, r = !1, i = this.getBrowserVersion();
if (typeof i == "string") return e[0] === ">" || e[0] === "<" ? (n = e.substr(1), e[1] === "=" ? (r = !0, n = e.substr(2)) : t = [], e[0] === ">" ? t.push(1) : t.push(-1)) : e[0] === "=" ? n = e.substr(1) : e[0] === "~" && (r = !0, n = e.substr(1)), t.indexOf(s.default.compareVersions(i, n, r)) > -1;
}, t.isOS = function(e) {
return this.getOSName(!0) === String(e).toLowerCase();
}, t.isPlatform = function(e) {
return this.getPlatformType(!0) === String(e).toLowerCase();
}, t.isEngine = function(e) {
return this.getEngineName(!0) === String(e).toLowerCase();
}, t.is = function(e, t) {
return t === void 0 && (t = !1), this.isBrowser(e, t) || this.isOS(e) || this.isPlatform(e);
}, t.some = function(e) {
var t = this;
return e === void 0 && (e = []), e.some((function(e) {
return t.is(e);
}));
}, e;
}(), e.exports = t.default;
},
92: function(e, t, n) {
t.__esModule = !0, t.default = void 0;
var r, i = (r = n(17)) && r.__esModule ? r : { default: r }, a = /version\/(\d+(\.?_?\d+)+)/i;
t.default = [
{
test: [/gptbot/i],
describe: function(e) {
var t = { name: "GPTBot" }, n = i.default.getFirstMatch(/gptbot\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/chatgpt-user/i],
describe: function(e) {
var t = { name: "ChatGPT-User" }, n = i.default.getFirstMatch(/chatgpt-user\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/oai-searchbot/i],
describe: function(e) {
var t = { name: "OAI-SearchBot" }, n = i.default.getFirstMatch(/oai-searchbot\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [
/claudebot/i,
/claude-web/i,
/claude-user/i,
/claude-searchbot/i
],
describe: function(e) {
var t = { name: "ClaudeBot" }, n = i.default.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/omgilibot/i, /webzio-extended/i],
describe: function(e) {
var t = { name: "Omgilibot" }, n = i.default.getFirstMatch(/(?:omgilibot|webzio-extended)\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/diffbot/i],
describe: function(e) {
var t = { name: "Diffbot" }, n = i.default.getFirstMatch(/diffbot\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/perplexitybot/i],
describe: function(e) {
var t = { name: "PerplexityBot" }, n = i.default.getFirstMatch(/perplexitybot\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/perplexity-user/i],
describe: function(e) {
var t = { name: "Perplexity-User" }, n = i.default.getFirstMatch(/perplexity-user\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/youbot/i],
describe: function(e) {
var t = { name: "YouBot" }, n = i.default.getFirstMatch(/youbot\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/meta-webindexer/i],
describe: function(e) {
var t = { name: "Meta-WebIndexer" }, n = i.default.getFirstMatch(/meta-webindexer\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/meta-externalads/i],
describe: function(e) {
var t = { name: "Meta-ExternalAds" }, n = i.default.getFirstMatch(/meta-externalads\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/meta-externalagent/i],
describe: function(e) {
var t = { name: "Meta-ExternalAgent" }, n = i.default.getFirstMatch(/meta-externalagent\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/meta-externalfetcher/i],
describe: function(e) {
var t = { name: "Meta-ExternalFetcher" }, n = i.default.getFirstMatch(/meta-externalfetcher\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/googlebot/i],
describe: function(e) {
var t = { name: "Googlebot" }, n = i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/linespider/i],
describe: function(e) {
var t = { name: "Linespider" }, n = i.default.getFirstMatch(/(?:linespider)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/amazonbot/i],
describe: function(e) {
var t = { name: "AmazonBot" }, n = i.default.getFirstMatch(/amazonbot\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/bingbot/i],
describe: function(e) {
var t = { name: "BingCrawler" }, n = i.default.getFirstMatch(/bingbot\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/baiduspider/i],
describe: function(e) {
var t = { name: "BaiduSpider" }, n = i.default.getFirstMatch(/baiduspider\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/duckduckbot/i],
describe: function(e) {
var t = { name: "DuckDuckBot" }, n = i.default.getFirstMatch(/duckduckbot\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/ia_archiver/i],
describe: function(e) {
var t = { name: "InternetArchiveCrawler" }, n = i.default.getFirstMatch(/ia_archiver\/(\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/facebookexternalhit/i, /facebookcatalog/i],
describe: function() {
return { name: "FacebookExternalHit" };
}
},
{
test: [/slackbot/i, /slack-imgProxy/i],
describe: function(e) {
var t = { name: "SlackBot" }, n = i.default.getFirstMatch(/(?:slackbot|slack-imgproxy)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/yahoo!?[\s/]*slurp/i],
describe: function() {
return { name: "YahooSlurp" };
}
},
{
test: [/yandexbot/i, /yandexmobilebot/i],
describe: function() {
return { name: "YandexBot" };
}
},
{
test: [/pingdom/i],
describe: function() {
return { name: "PingdomBot" };
}
},
{
test: [/opera/i],
describe: function(e) {
var t = { name: "Opera" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/opr\/|opios/i],
describe: function(e) {
var t = { name: "Opera" }, n = i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/SamsungBrowser/i],
describe: function(e) {
var t = { name: "Samsung Internet for Android" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/Whale/i],
describe: function(e) {
var t = { name: "NAVER Whale Browser" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/PaleMoon/i],
describe: function(e) {
var t = { name: "Pale Moon" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/MZBrowser/i],
describe: function(e) {
var t = { name: "MZ Browser" }, n = i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/focus/i],
describe: function(e) {
var t = { name: "Focus" }, n = i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/swing/i],
describe: function(e) {
var t = { name: "Swing" }, n = i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/coast/i],
describe: function(e) {
var t = { name: "Opera Coast" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/opt\/\d+(?:.?_?\d+)+/i],
describe: function(e) {
var t = { name: "Opera Touch" }, n = i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/yabrowser/i],
describe: function(e) {
var t = { name: "Yandex Browser" }, n = i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/ucbrowser/i],
describe: function(e) {
var t = { name: "UC Browser" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/Maxthon|mxios/i],
describe: function(e) {
var t = { name: "Maxthon" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/epiphany/i],
describe: function(e) {
var t = { name: "Epiphany" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/puffin/i],
describe: function(e) {
var t = { name: "Puffin" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/sleipnir/i],
describe: function(e) {
var t = { name: "Sleipnir" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/k-meleon/i],
describe: function(e) {
var t = { name: "K-Meleon" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/micromessenger/i],
describe: function(e) {
var t = { name: "WeChat" }, n = i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/qqbrowser/i],
describe: function(e) {
var t = { name: /qqbrowserlite/i.test(e) ? "QQ Browser Lite" : "QQ Browser" }, n = i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/msie|trident/i],
describe: function(e) {
var t = { name: "Internet Explorer" }, n = i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/\sedg\//i],
describe: function(e) {
var t = { name: "Microsoft Edge" }, n = i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/edg([ea]|ios)/i],
describe: function(e) {
var t = { name: "Microsoft Edge" }, n = i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/vivaldi/i],
describe: function(e) {
var t = { name: "Vivaldi" }, n = i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/seamonkey/i],
describe: function(e) {
var t = { name: "SeaMonkey" }, n = i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/sailfish/i],
describe: function(e) {
var t = { name: "Sailfish" }, n = i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/silk/i],
describe: function(e) {
var t = { name: "Amazon Silk" }, n = i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/phantom/i],
describe: function(e) {
var t = { name: "PhantomJS" }, n = i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/slimerjs/i],
describe: function(e) {
var t = { name: "SlimerJS" }, n = i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/blackberry|\bbb\d+/i, /rim\stablet/i],
describe: function(e) {
var t = { name: "BlackBerry" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/(web|hpw)[o0]s/i],
describe: function(e) {
var t = { name: "WebOS Browser" }, n = i.default.getFirstMatch(a, e) || i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/bada/i],
describe: function(e) {
var t = { name: "Bada" }, n = i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/tizen/i],
describe: function(e) {
var t = { name: "Tizen" }, n = i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/qupzilla/i],
describe: function(e) {
var t = { name: "QupZilla" }, n = i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/librewolf/i],
describe: function(e) {
var t = { name: "LibreWolf" }, n = i.default.getFirstMatch(/(?:librewolf)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/firefox|iceweasel|fxios/i],
describe: function(e) {
var t = { name: "Firefox" }, n = i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/electron/i],
describe: function(e) {
var t = { name: "Electron" }, n = i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [
/sogoumobilebrowser/i,
/metasr/i,
/se 2\.[x]/i
],
describe: function(e) {
var t = { name: "Sogou Browser" }, n = i.default.getFirstMatch(/(?:sogoumobilebrowser)[\s/](\d+(\.?_?\d+)+)/i, e), r = i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, e), a = i.default.getFirstMatch(/se ([\d.]+)x/i, e), o = n || r || a;
return o && (t.version = o), t;
}
},
{
test: [/MiuiBrowser/i],
describe: function(e) {
var t = { name: "Miui" }, n = i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: function(e) {
return !!e.hasBrand("DuckDuckGo") || e.test(/\sDdg\/[\d.]+$/i);
},
describe: function(e, t) {
var n = { name: "DuckDuckGo" };
if (t) {
var r = t.getBrandVersion("DuckDuckGo");
if (r) return n.version = r, n;
}
var a = i.default.getFirstMatch(/\sDdg\/([\d.]+)$/i, e);
return a && (n.version = a), n;
}
},
{
test: function(e) {
return e.hasBrand("Brave");
},
describe: function(e, t) {
var n = { name: "Brave" };
if (t) {
var r = t.getBrandVersion("Brave");
if (r) return n.version = r, n;
}
return n;
}
},
{
test: [/chromium/i],
describe: function(e) {
var t = { name: "Chromium" }, n = i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, e) || i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/chrome|crios|crmo/i],
describe: function(e) {
var t = { name: "Chrome" }, n = i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: [/GSA/i],
describe: function(e) {
var t = { name: "Google Search" }, n = i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i, e);
return n && (t.version = n), t;
}
},
{
test: function(e) {
var t = !e.test(/like android/i), n = e.test(/android/i);
return t && n;
},
describe: function(e) {
var t = { name: "Android Browser" }, n = i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/playstation 4/i],
describe: function(e) {
var t = { name: "PlayStation 4" }, n = i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/safari|applewebkit/i],
describe: function(e) {
var t = { name: "Safari" }, n = i.default.getFirstMatch(a, e);
return n && (t.version = n), t;
}
},
{
test: [/.*/i],
describe: function(e) {
var t = e.search("\\(") === -1 ? /^(.*)\/(.*) / : /^(.*)\/(.*)[ \t]\((.*)/;
return {
name: i.default.getFirstMatch(t, e),
version: i.default.getSecondMatch(t, e)
};
}
}
], e.exports = t.default;
},
93: function(e, t, n) {
t.__esModule = !0, t.default = void 0;
var r, i = (r = n(17)) && r.__esModule ? r : { default: r }, a = n(18);
t.default = [
{
test: [/Roku\/DVP/],
describe: function(e) {
var t = i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i, e);
return {
name: a.OS_MAP.Roku,
version: t
};
}
},
{
test: [/windows phone/i],
describe: function(e) {
var t = i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i, e);
return {
name: a.OS_MAP.WindowsPhone,
version: t
};
}
},
{
test: [/windows /i],
describe: function(e) {
var t = i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i, e), n = i.default.getWindowsVersionName(t);
return {
name: a.OS_MAP.Windows,
version: t,
versionName: n
};
}
},
{
test: [/Macintosh(.*?) FxiOS(.*?)\//],
describe: function(e) {
var t = { name: a.OS_MAP.iOS }, n = i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/, e);
return n && (t.version = n), t;
}
},
{
test: [/macintosh/i],
describe: function(e) {
var t = i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i, e).replace(/[_\s]/g, "."), n = i.default.getMacOSVersionName(t), r = {
name: a.OS_MAP.MacOS,
version: t
};
return n && (r.versionName = n), r;
}
},
{
test: [/(ipod|iphone|ipad)/i],
describe: function(e) {
var t = i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i, e).replace(/[_\s]/g, ".");
return {
name: a.OS_MAP.iOS,
version: t
};
}
},
{
test: [/OpenHarmony/i],
describe: function(e) {
var t = i.default.getFirstMatch(/OpenHarmony\s+(\d+(\.\d+)*)/i, e);
return {
name: a.OS_MAP.HarmonyOS,
version: t
};
}
},
{
test: function(e) {
var t = !e.test(/like android/i), n = e.test(/android/i);
return t && n;
},
describe: function(e) {
var t = i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i, e), n = i.default.getAndroidVersionName(t), r = {
name: a.OS_MAP.Android,
version: t
};
return n && (r.versionName = n), r;
}
},
{
test: [/(web|hpw)[o0]s/i],
describe: function(e) {
var t = i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i, e), n = { name: a.OS_MAP.WebOS };
return t && t.length && (n.version = t), n;
}
},
{
test: [/blackberry|\bbb\d+/i, /rim\stablet/i],
describe: function(e) {
var t = i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i, e) || i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i, e) || i.default.getFirstMatch(/\bbb(\d+)/i, e);
return {
name: a.OS_MAP.BlackBerry,
version: t
};
}
},
{
test: [/bada/i],
describe: function(e) {
var t = i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i, e);
return {
name: a.OS_MAP.Bada,
version: t
};
}
},
{
test: [/tizen/i],
describe: function(e) {
var t = i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i, e);
return {
name: a.OS_MAP.Ti