@wemap/geo 11.0.1 → 11.0.2

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.
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ var __publicField = (obj, key, value) => {
7
7
  };
8
8
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
9
9
  const maths = require("@wemap/maths");
10
+ const utils = require("@wemap/utils");
10
11
  const Logger = require("@wemap/logger");
11
12
  const _interopDefaultLegacy = (e) => e && typeof e === "object" && "default" in e ? e : { default: e };
12
13
  const Logger__default = /* @__PURE__ */ _interopDefaultLegacy(Logger);
@@ -1113,1095 +1114,7 @@ class AbsoluteHeading {
1113
1114
  return new AbsoluteHeading(this.heading, this.time, this.accuracy);
1114
1115
  }
1115
1116
  }
1116
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
1117
- var uaParser = { exports: {} };
1118
- (function(module2, exports2) {
1119
- (function(window2, undefined$1) {
1120
- var LIBVERSION = "1.0.33", EMPTY = "", UNKNOWN = "?", FUNC_TYPE = "function", UNDEF_TYPE = "undefined", OBJ_TYPE = "object", STR_TYPE = "string", MAJOR = "major", MODEL = "model", NAME = "name", TYPE = "type", VENDOR = "vendor", VERSION = "version", ARCHITECTURE = "architecture", CONSOLE = "console", MOBILE = "mobile", TABLET = "tablet", SMARTTV = "smarttv", WEARABLE = "wearable", EMBEDDED = "embedded", UA_MAX_LENGTH = 350;
1121
- var AMAZON = "Amazon", APPLE = "Apple", ASUS = "ASUS", BLACKBERRY = "BlackBerry", BROWSER = "Browser", CHROME = "Chrome", EDGE = "Edge", FIREFOX = "Firefox", GOOGLE = "Google", HUAWEI = "Huawei", LG = "LG", MICROSOFT = "Microsoft", MOTOROLA = "Motorola", OPERA = "Opera", SAMSUNG = "Samsung", SHARP = "Sharp", SONY = "Sony", XIAOMI = "Xiaomi", ZEBRA = "Zebra", FACEBOOK = "Facebook";
1122
- var extend = function(regexes2, extensions) {
1123
- var mergedRegexes = {};
1124
- for (var i in regexes2) {
1125
- if (extensions[i] && extensions[i].length % 2 === 0) {
1126
- mergedRegexes[i] = extensions[i].concat(regexes2[i]);
1127
- } else {
1128
- mergedRegexes[i] = regexes2[i];
1129
- }
1130
- }
1131
- return mergedRegexes;
1132
- }, enumerize = function(arr) {
1133
- var enums = {};
1134
- for (var i = 0; i < arr.length; i++) {
1135
- enums[arr[i].toUpperCase()] = arr[i];
1136
- }
1137
- return enums;
1138
- }, has = function(str1, str2) {
1139
- return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;
1140
- }, lowerize = function(str) {
1141
- return str.toLowerCase();
1142
- }, majorize = function(version) {
1143
- return typeof version === STR_TYPE ? version.replace(/[^\d\.]/g, EMPTY).split(".")[0] : undefined$1;
1144
- }, trim = function(str, len) {
1145
- if (typeof str === STR_TYPE) {
1146
- str = str.replace(/^\s\s*/, EMPTY);
1147
- return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
1148
- }
1149
- };
1150
- var rgxMapper = function(ua, arrays) {
1151
- var i = 0, j, k, p, q, matches, match;
1152
- while (i < arrays.length && !matches) {
1153
- var regex = arrays[i], props = arrays[i + 1];
1154
- j = k = 0;
1155
- while (j < regex.length && !matches) {
1156
- matches = regex[j++].exec(ua);
1157
- if (!!matches) {
1158
- for (p = 0; p < props.length; p++) {
1159
- match = matches[++k];
1160
- q = props[p];
1161
- if (typeof q === OBJ_TYPE && q.length > 0) {
1162
- if (q.length === 2) {
1163
- if (typeof q[1] == FUNC_TYPE) {
1164
- this[q[0]] = q[1].call(this, match);
1165
- } else {
1166
- this[q[0]] = q[1];
1167
- }
1168
- } else if (q.length === 3) {
1169
- if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {
1170
- this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined$1;
1171
- } else {
1172
- this[q[0]] = match ? match.replace(q[1], q[2]) : undefined$1;
1173
- }
1174
- } else if (q.length === 4) {
1175
- this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined$1;
1176
- }
1177
- } else {
1178
- this[q] = match ? match : undefined$1;
1179
- }
1180
- }
1181
- }
1182
- }
1183
- i += 2;
1184
- }
1185
- }, strMapper = function(str, map) {
1186
- for (var i in map) {
1187
- if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {
1188
- for (var j = 0; j < map[i].length; j++) {
1189
- if (has(map[i][j], str)) {
1190
- return i === UNKNOWN ? undefined$1 : i;
1191
- }
1192
- }
1193
- } else if (has(map[i], str)) {
1194
- return i === UNKNOWN ? undefined$1 : i;
1195
- }
1196
- }
1197
- return str;
1198
- };
1199
- var oldSafariMap = {
1200
- "1.0": "/8",
1201
- "1.2": "/1",
1202
- "1.3": "/3",
1203
- "2.0": "/412",
1204
- "2.0.2": "/416",
1205
- "2.0.3": "/417",
1206
- "2.0.4": "/419",
1207
- "?": "/"
1208
- }, windowsVersionMap = {
1209
- "ME": "4.90",
1210
- "NT 3.11": "NT3.51",
1211
- "NT 4.0": "NT4.0",
1212
- "2000": "NT 5.0",
1213
- "XP": ["NT 5.1", "NT 5.2"],
1214
- "Vista": "NT 6.0",
1215
- "7": "NT 6.1",
1216
- "8": "NT 6.2",
1217
- "8.1": "NT 6.3",
1218
- "10": ["NT 6.4", "NT 10.0"],
1219
- "RT": "ARM"
1220
- };
1221
- var regexes = {
1222
- browser: [
1223
- [
1224
- /\b(?:crmo|crios)\/([\w\.]+)/i
1225
- ],
1226
- [VERSION, [NAME, "Chrome"]],
1227
- [
1228
- /edg(?:e|ios|a)?\/([\w\.]+)/i
1229
- ],
1230
- [VERSION, [NAME, "Edge"]],
1231
- [
1232
- /(opera mini)\/([-\w\.]+)/i,
1233
- /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
1234
- /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
1235
- ],
1236
- [NAME, VERSION],
1237
- [
1238
- /opios[\/ ]+([\w\.]+)/i
1239
- ],
1240
- [VERSION, [NAME, OPERA + " Mini"]],
1241
- [
1242
- /\bopr\/([\w\.]+)/i
1243
- ],
1244
- [VERSION, [NAME, OPERA]],
1245
- [
1246
- /(kindle)\/([\w\.]+)/i,
1247
- /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,
1248
- /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,
1249
- /(ba?idubrowser)[\/ ]?([\w\.]+)/i,
1250
- /(?:ms|\()(ie) ([\w\.]+)/i,
1251
- /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
1252
- /(weibo)__([\d\.]+)/i
1253
- ],
1254
- [NAME, VERSION],
1255
- [
1256
- /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
1257
- ],
1258
- [VERSION, [NAME, "UC" + BROWSER]],
1259
- [
1260
- /microm.+\bqbcore\/([\w\.]+)/i,
1261
- /\bqbcore\/([\w\.]+).+microm/i
1262
- ],
1263
- [VERSION, [NAME, "WeChat(Win) Desktop"]],
1264
- [
1265
- /micromessenger\/([\w\.]+)/i
1266
- ],
1267
- [VERSION, [NAME, "WeChat"]],
1268
- [
1269
- /konqueror\/([\w\.]+)/i
1270
- ],
1271
- [VERSION, [NAME, "Konqueror"]],
1272
- [
1273
- /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
1274
- ],
1275
- [VERSION, [NAME, "IE"]],
1276
- [
1277
- /yabrowser\/([\w\.]+)/i
1278
- ],
1279
- [VERSION, [NAME, "Yandex"]],
1280
- [
1281
- /(avast|avg)\/([\w\.]+)/i
1282
- ],
1283
- [[NAME, /(.+)/, "$1 Secure " + BROWSER], VERSION],
1284
- [
1285
- /\bfocus\/([\w\.]+)/i
1286
- ],
1287
- [VERSION, [NAME, FIREFOX + " Focus"]],
1288
- [
1289
- /\bopt\/([\w\.]+)/i
1290
- ],
1291
- [VERSION, [NAME, OPERA + " Touch"]],
1292
- [
1293
- /coc_coc\w+\/([\w\.]+)/i
1294
- ],
1295
- [VERSION, [NAME, "Coc Coc"]],
1296
- [
1297
- /dolfin\/([\w\.]+)/i
1298
- ],
1299
- [VERSION, [NAME, "Dolphin"]],
1300
- [
1301
- /coast\/([\w\.]+)/i
1302
- ],
1303
- [VERSION, [NAME, OPERA + " Coast"]],
1304
- [
1305
- /miuibrowser\/([\w\.]+)/i
1306
- ],
1307
- [VERSION, [NAME, "MIUI " + BROWSER]],
1308
- [
1309
- /fxios\/([-\w\.]+)/i
1310
- ],
1311
- [VERSION, [NAME, FIREFOX]],
1312
- [
1313
- /\bqihu|(qi?ho?o?|360)browser/i
1314
- ],
1315
- [[NAME, "360 " + BROWSER]],
1316
- [
1317
- /(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i
1318
- ],
1319
- [[NAME, /(.+)/, "$1 " + BROWSER], VERSION],
1320
- [
1321
- /(comodo_dragon)\/([\w\.]+)/i
1322
- ],
1323
- [[NAME, /_/g, " "], VERSION],
1324
- [
1325
- /(electron)\/([\w\.]+) safari/i,
1326
- /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
1327
- /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i
1328
- ],
1329
- [NAME, VERSION],
1330
- [
1331
- /(metasr)[\/ ]?([\w\.]+)/i,
1332
- /(lbbrowser)/i,
1333
- /\[(linkedin)app\]/i
1334
- ],
1335
- [NAME],
1336
- [
1337
- /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
1338
- ],
1339
- [[NAME, FACEBOOK], VERSION],
1340
- [
1341
- /safari (line)\/([\w\.]+)/i,
1342
- /\b(line)\/([\w\.]+)\/iab/i,
1343
- /(chromium|instagram)[\/ ]([-\w\.]+)/i
1344
- ],
1345
- [NAME, VERSION],
1346
- [
1347
- /\bgsa\/([\w\.]+) .*safari\//i
1348
- ],
1349
- [VERSION, [NAME, "GSA"]],
1350
- [
1351
- /headlesschrome(?:\/([\w\.]+)| )/i
1352
- ],
1353
- [VERSION, [NAME, CHROME + " Headless"]],
1354
- [
1355
- / wv\).+(chrome)\/([\w\.]+)/i
1356
- ],
1357
- [[NAME, CHROME + " WebView"], VERSION],
1358
- [
1359
- /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
1360
- ],
1361
- [VERSION, [NAME, "Android " + BROWSER]],
1362
- [
1363
- /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
1364
- ],
1365
- [NAME, VERSION],
1366
- [
1367
- /version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i
1368
- ],
1369
- [VERSION, [NAME, "Mobile Safari"]],
1370
- [
1371
- /version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i
1372
- ],
1373
- [VERSION, NAME],
1374
- [
1375
- /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
1376
- ],
1377
- [NAME, [VERSION, strMapper, oldSafariMap]],
1378
- [
1379
- /(webkit|khtml)\/([\w\.]+)/i
1380
- ],
1381
- [NAME, VERSION],
1382
- [
1383
- /(navigator|netscape\d?)\/([-\w\.]+)/i
1384
- ],
1385
- [[NAME, "Netscape"], VERSION],
1386
- [
1387
- /mobile vr; rv:([\w\.]+)\).+firefox/i
1388
- ],
1389
- [VERSION, [NAME, FIREFOX + " Reality"]],
1390
- [
1391
- /ekiohf.+(flow)\/([\w\.]+)/i,
1392
- /(swiftfox)/i,
1393
- /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,
1394
- /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
1395
- /(firefox)\/([\w\.]+)/i,
1396
- /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
1397
- /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
1398
- /(links) \(([\w\.]+)/i
1399
- ],
1400
- [NAME, VERSION],
1401
- [
1402
- /(cobalt)\/([\w\.]+)/i
1403
- ],
1404
- [NAME, [VERSION, /master.|lts./, ""]]
1405
- ],
1406
- cpu: [
1407
- [
1408
- /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i
1409
- ],
1410
- [[ARCHITECTURE, "amd64"]],
1411
- [
1412
- /(ia32(?=;))/i
1413
- ],
1414
- [[ARCHITECTURE, lowerize]],
1415
- [
1416
- /((?:i[346]|x)86)[;\)]/i
1417
- ],
1418
- [[ARCHITECTURE, "ia32"]],
1419
- [
1420
- /\b(aarch64|arm(v?8e?l?|_?64))\b/i
1421
- ],
1422
- [[ARCHITECTURE, "arm64"]],
1423
- [
1424
- /\b(arm(?:v[67])?ht?n?[fl]p?)\b/i
1425
- ],
1426
- [[ARCHITECTURE, "armhf"]],
1427
- [
1428
- /windows (ce|mobile); ppc;/i
1429
- ],
1430
- [[ARCHITECTURE, "arm"]],
1431
- [
1432
- /((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i
1433
- ],
1434
- [[ARCHITECTURE, /ower/, EMPTY, lowerize]],
1435
- [
1436
- /(sun4\w)[;\)]/i
1437
- ],
1438
- [[ARCHITECTURE, "sparc"]],
1439
- [
1440
- /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
1441
- ],
1442
- [[ARCHITECTURE, lowerize]]
1443
- ],
1444
- device: [
1445
- [
1446
- /\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
1447
- ],
1448
- [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]],
1449
- [
1450
- /\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,
1451
- /samsung[- ]([-\w]+)/i,
1452
- /sec-(sgh\w+)/i
1453
- ],
1454
- [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]],
1455
- [
1456
- /\((ip(?:hone|od)[\w ]*);/i
1457
- ],
1458
- [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],
1459
- [
1460
- /\((ipad);[-\w\),; ]+apple/i,
1461
- /applecoremedia\/[\w\.]+ \((ipad)/i,
1462
- /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
1463
- ],
1464
- [MODEL, [VENDOR, APPLE], [TYPE, TABLET]],
1465
- [
1466
- /(macintosh);/i
1467
- ],
1468
- [MODEL, [VENDOR, APPLE]],
1469
- [
1470
- /\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
1471
- ],
1472
- [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]],
1473
- [
1474
- /(?:huawei|honor)([-\w ]+)[;\)]/i,
1475
- /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
1476
- ],
1477
- [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]],
1478
- [
1479
- /\b(poco[\w ]+)(?: bui|\))/i,
1480
- /\b; (\w+) build\/hm\1/i,
1481
- /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
1482
- /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
1483
- /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i
1484
- ],
1485
- [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, MOBILE]],
1486
- [
1487
- /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i
1488
- ],
1489
- [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, TABLET]],
1490
- [
1491
- /; (\w+) bui.+ oppo/i,
1492
- /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
1493
- ],
1494
- [MODEL, [VENDOR, "OPPO"], [TYPE, MOBILE]],
1495
- [
1496
- /vivo (\w+)(?: bui|\))/i,
1497
- /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
1498
- ],
1499
- [MODEL, [VENDOR, "Vivo"], [TYPE, MOBILE]],
1500
- [
1501
- /\b(rmx[12]\d{3})(?: bui|;|\))/i
1502
- ],
1503
- [MODEL, [VENDOR, "Realme"], [TYPE, MOBILE]],
1504
- [
1505
- /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
1506
- /\bmot(?:orola)?[- ](\w*)/i,
1507
- /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
1508
- ],
1509
- [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]],
1510
- [
1511
- /\b(mz60\d|xoom[2 ]{0,2}) build\//i
1512
- ],
1513
- [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]],
1514
- [
1515
- /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
1516
- ],
1517
- [MODEL, [VENDOR, LG], [TYPE, TABLET]],
1518
- [
1519
- /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
1520
- /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
1521
- /\blg-?([\d\w]+) bui/i
1522
- ],
1523
- [MODEL, [VENDOR, LG], [TYPE, MOBILE]],
1524
- [
1525
- /(ideatab[-\w ]+)/i,
1526
- /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i
1527
- ],
1528
- [MODEL, [VENDOR, "Lenovo"], [TYPE, TABLET]],
1529
- [
1530
- /(?:maemo|nokia).*(n900|lumia \d+)/i,
1531
- /nokia[-_ ]?([-\w\.]*)/i
1532
- ],
1533
- [[MODEL, /_/g, " "], [VENDOR, "Nokia"], [TYPE, MOBILE]],
1534
- [
1535
- /(pixel c)\b/i
1536
- ],
1537
- [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]],
1538
- [
1539
- /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
1540
- ],
1541
- [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]],
1542
- [
1543
- /droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
1544
- ],
1545
- [MODEL, [VENDOR, SONY], [TYPE, MOBILE]],
1546
- [
1547
- /sony tablet [ps]/i,
1548
- /\b(?:sony)?sgp\w+(?: bui|\))/i
1549
- ],
1550
- [[MODEL, "Xperia Tablet"], [VENDOR, SONY], [TYPE, TABLET]],
1551
- [
1552
- / (kb2005|in20[12]5|be20[12][59])\b/i,
1553
- /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
1554
- ],
1555
- [MODEL, [VENDOR, "OnePlus"], [TYPE, MOBILE]],
1556
- [
1557
- /(alexa)webm/i,
1558
- /(kf[a-z]{2}wi)( bui|\))/i,
1559
- /(kf[a-z]+)( bui|\)).+silk\//i
1560
- ],
1561
- [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]],
1562
- [
1563
- /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
1564
- ],
1565
- [[MODEL, /(.+)/g, "Fire Phone $1"], [VENDOR, AMAZON], [TYPE, MOBILE]],
1566
- [
1567
- /(playbook);[-\w\),; ]+(rim)/i
1568
- ],
1569
- [MODEL, VENDOR, [TYPE, TABLET]],
1570
- [
1571
- /\b((?:bb[a-f]|st[hv])100-\d)/i,
1572
- /\(bb10; (\w+)/i
1573
- ],
1574
- [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]],
1575
- [
1576
- /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
1577
- ],
1578
- [MODEL, [VENDOR, ASUS], [TYPE, TABLET]],
1579
- [
1580
- / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
1581
- ],
1582
- [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]],
1583
- [
1584
- /(nexus 9)/i
1585
- ],
1586
- [MODEL, [VENDOR, "HTC"], [TYPE, TABLET]],
1587
- [
1588
- /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
1589
- /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
1590
- /(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\w]*)/i
1591
- ],
1592
- [VENDOR, [MODEL, /_/g, " "], [TYPE, MOBILE]],
1593
- [
1594
- /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
1595
- ],
1596
- [MODEL, [VENDOR, "Acer"], [TYPE, TABLET]],
1597
- [
1598
- /droid.+; (m[1-5] note) bui/i,
1599
- /\bmz-([-\w]{2,})/i
1600
- ],
1601
- [MODEL, [VENDOR, "Meizu"], [TYPE, MOBILE]],
1602
- [
1603
- /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
1604
- ],
1605
- [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]],
1606
- [
1607
- /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,
1608
- /(hp) ([\w ]+\w)/i,
1609
- /(asus)-?(\w+)/i,
1610
- /(microsoft); (lumia[\w ]+)/i,
1611
- /(lenovo)[-_ ]?([-\w]+)/i,
1612
- /(jolla)/i,
1613
- /(oppo) ?([\w ]+) bui/i
1614
- ],
1615
- [VENDOR, MODEL, [TYPE, MOBILE]],
1616
- [
1617
- /(archos) (gamepad2?)/i,
1618
- /(hp).+(touchpad(?!.+tablet)|tablet)/i,
1619
- /(kindle)\/([\w\.]+)/i,
1620
- /(nook)[\w ]+build\/(\w+)/i,
1621
- /(dell) (strea[kpr\d ]*[\dko])/i,
1622
- /(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
1623
- /(trinity)[- ]*(t\d{3}) bui/i,
1624
- /(gigaset)[- ]+(q\w{1,9}) bui/i,
1625
- /(vodafone) ([\w ]+)(?:\)| bui)/i
1626
- ],
1627
- [VENDOR, MODEL, [TYPE, TABLET]],
1628
- [
1629
- /(surface duo)/i
1630
- ],
1631
- [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]],
1632
- [
1633
- /droid [\d\.]+; (fp\du?)(?: b|\))/i
1634
- ],
1635
- [MODEL, [VENDOR, "Fairphone"], [TYPE, MOBILE]],
1636
- [
1637
- /(u304aa)/i
1638
- ],
1639
- [MODEL, [VENDOR, "AT&T"], [TYPE, MOBILE]],
1640
- [
1641
- /\bsie-(\w*)/i
1642
- ],
1643
- [MODEL, [VENDOR, "Siemens"], [TYPE, MOBILE]],
1644
- [
1645
- /\b(rct\w+) b/i
1646
- ],
1647
- [MODEL, [VENDOR, "RCA"], [TYPE, TABLET]],
1648
- [
1649
- /\b(venue[\d ]{2,7}) b/i
1650
- ],
1651
- [MODEL, [VENDOR, "Dell"], [TYPE, TABLET]],
1652
- [
1653
- /\b(q(?:mv|ta)\w+) b/i
1654
- ],
1655
- [MODEL, [VENDOR, "Verizon"], [TYPE, TABLET]],
1656
- [
1657
- /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i
1658
- ],
1659
- [MODEL, [VENDOR, "Barnes & Noble"], [TYPE, TABLET]],
1660
- [
1661
- /\b(tm\d{3}\w+) b/i
1662
- ],
1663
- [MODEL, [VENDOR, "NuVision"], [TYPE, TABLET]],
1664
- [
1665
- /\b(k88) b/i
1666
- ],
1667
- [MODEL, [VENDOR, "ZTE"], [TYPE, TABLET]],
1668
- [
1669
- /\b(nx\d{3}j) b/i
1670
- ],
1671
- [MODEL, [VENDOR, "ZTE"], [TYPE, MOBILE]],
1672
- [
1673
- /\b(gen\d{3}) b.+49h/i
1674
- ],
1675
- [MODEL, [VENDOR, "Swiss"], [TYPE, MOBILE]],
1676
- [
1677
- /\b(zur\d{3}) b/i
1678
- ],
1679
- [MODEL, [VENDOR, "Swiss"], [TYPE, TABLET]],
1680
- [
1681
- /\b((zeki)?tb.*\b) b/i
1682
- ],
1683
- [MODEL, [VENDOR, "Zeki"], [TYPE, TABLET]],
1684
- [
1685
- /\b([yr]\d{2}) b/i,
1686
- /\b(dragon[- ]+touch |dt)(\w{5}) b/i
1687
- ],
1688
- [[VENDOR, "Dragon Touch"], MODEL, [TYPE, TABLET]],
1689
- [
1690
- /\b(ns-?\w{0,9}) b/i
1691
- ],
1692
- [MODEL, [VENDOR, "Insignia"], [TYPE, TABLET]],
1693
- [
1694
- /\b((nxa|next)-?\w{0,9}) b/i
1695
- ],
1696
- [MODEL, [VENDOR, "NextBook"], [TYPE, TABLET]],
1697
- [
1698
- /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i
1699
- ],
1700
- [[VENDOR, "Voice"], MODEL, [TYPE, MOBILE]],
1701
- [
1702
- /\b(lvtel\-)?(v1[12]) b/i
1703
- ],
1704
- [[VENDOR, "LvTel"], MODEL, [TYPE, MOBILE]],
1705
- [
1706
- /\b(ph-1) /i
1707
- ],
1708
- [MODEL, [VENDOR, "Essential"], [TYPE, MOBILE]],
1709
- [
1710
- /\b(v(100md|700na|7011|917g).*\b) b/i
1711
- ],
1712
- [MODEL, [VENDOR, "Envizen"], [TYPE, TABLET]],
1713
- [
1714
- /\b(trio[-\w\. ]+) b/i
1715
- ],
1716
- [MODEL, [VENDOR, "MachSpeed"], [TYPE, TABLET]],
1717
- [
1718
- /\btu_(1491) b/i
1719
- ],
1720
- [MODEL, [VENDOR, "Rotor"], [TYPE, TABLET]],
1721
- [
1722
- /(shield[\w ]+) b/i
1723
- ],
1724
- [MODEL, [VENDOR, "Nvidia"], [TYPE, TABLET]],
1725
- [
1726
- /(sprint) (\w+)/i
1727
- ],
1728
- [VENDOR, MODEL, [TYPE, MOBILE]],
1729
- [
1730
- /(kin\.[onetw]{3})/i
1731
- ],
1732
- [[MODEL, /\./g, " "], [VENDOR, MICROSOFT], [TYPE, MOBILE]],
1733
- [
1734
- /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
1735
- ],
1736
- [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]],
1737
- [
1738
- /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
1739
- ],
1740
- [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]],
1741
- [
1742
- /(ouya)/i,
1743
- /(nintendo) ([wids3utch]+)/i
1744
- ],
1745
- [VENDOR, MODEL, [TYPE, CONSOLE]],
1746
- [
1747
- /droid.+; (shield) bui/i
1748
- ],
1749
- [MODEL, [VENDOR, "Nvidia"], [TYPE, CONSOLE]],
1750
- [
1751
- /(playstation [345portablevi]+)/i
1752
- ],
1753
- [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]],
1754
- [
1755
- /\b(xbox(?: one)?(?!; xbox))[\); ]/i
1756
- ],
1757
- [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]],
1758
- [
1759
- /smart-tv.+(samsung)/i
1760
- ],
1761
- [VENDOR, [TYPE, SMARTTV]],
1762
- [
1763
- /hbbtv.+maple;(\d+)/i
1764
- ],
1765
- [[MODEL, /^/, "SmartTV"], [VENDOR, SAMSUNG], [TYPE, SMARTTV]],
1766
- [
1767
- /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
1768
- ],
1769
- [[VENDOR, LG], [TYPE, SMARTTV]],
1770
- [
1771
- /(apple) ?tv/i
1772
- ],
1773
- [VENDOR, [MODEL, APPLE + " TV"], [TYPE, SMARTTV]],
1774
- [
1775
- /crkey/i
1776
- ],
1777
- [[MODEL, CHROME + "cast"], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
1778
- [
1779
- /droid.+aft(\w)( bui|\))/i
1780
- ],
1781
- [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]],
1782
- [
1783
- /\(dtv[\);].+(aquos)/i,
1784
- /(aquos-tv[\w ]+)\)/i
1785
- ],
1786
- [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],
1787
- [
1788
- /(bravia[\w ]+)( bui|\))/i
1789
- ],
1790
- [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]],
1791
- [
1792
- /(mitv-\w{5}) bui/i
1793
- ],
1794
- [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]],
1795
- [
1796
- /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
1797
- /hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i
1798
- ],
1799
- [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]],
1800
- [
1801
- /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
1802
- ],
1803
- [[TYPE, SMARTTV]],
1804
- [
1805
- /((pebble))app/i
1806
- ],
1807
- [VENDOR, MODEL, [TYPE, WEARABLE]],
1808
- [
1809
- /droid.+; (glass) \d/i
1810
- ],
1811
- [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]],
1812
- [
1813
- /droid.+; (wt63?0{2,3})\)/i
1814
- ],
1815
- [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]],
1816
- [
1817
- /(quest( 2)?)/i
1818
- ],
1819
- [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]],
1820
- [
1821
- /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
1822
- ],
1823
- [VENDOR, [TYPE, EMBEDDED]],
1824
- [
1825
- /droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i
1826
- ],
1827
- [MODEL, [TYPE, MOBILE]],
1828
- [
1829
- /droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i
1830
- ],
1831
- [MODEL, [TYPE, TABLET]],
1832
- [
1833
- /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
1834
- ],
1835
- [[TYPE, TABLET]],
1836
- [
1837
- /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
1838
- ],
1839
- [[TYPE, MOBILE]],
1840
- [
1841
- /(android[-\w\. ]{0,9});.+buil/i
1842
- ],
1843
- [MODEL, [VENDOR, "Generic"]]
1844
- ],
1845
- engine: [
1846
- [
1847
- /windows.+ edge\/([\w\.]+)/i
1848
- ],
1849
- [VERSION, [NAME, EDGE + "HTML"]],
1850
- [
1851
- /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
1852
- ],
1853
- [VERSION, [NAME, "Blink"]],
1854
- [
1855
- /(presto)\/([\w\.]+)/i,
1856
- /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,
1857
- /ekioh(flow)\/([\w\.]+)/i,
1858
- /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
1859
- /(icab)[\/ ]([23]\.[\d\.]+)/i
1860
- ],
1861
- [NAME, VERSION],
1862
- [
1863
- /rv\:([\w\.]{1,9})\b.+(gecko)/i
1864
- ],
1865
- [VERSION, NAME]
1866
- ],
1867
- os: [
1868
- [
1869
- /microsoft (windows) (vista|xp)/i
1870
- ],
1871
- [NAME, VERSION],
1872
- [
1873
- /(windows) nt 6\.2; (arm)/i,
1874
- /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,
1875
- /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i
1876
- ],
1877
- [NAME, [VERSION, strMapper, windowsVersionMap]],
1878
- [
1879
- /(win(?=3|9|n)|win 9x )([nt\d\.]+)/i
1880
- ],
1881
- [[NAME, "Windows"], [VERSION, strMapper, windowsVersionMap]],
1882
- [
1883
- /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,
1884
- /cfnetwork\/.+darwin/i
1885
- ],
1886
- [[VERSION, /_/g, "."], [NAME, "iOS"]],
1887
- [
1888
- /(mac os x) ?([\w\. ]*)/i,
1889
- /(macintosh|mac_powerpc\b)(?!.+haiku)/i
1890
- ],
1891
- [[NAME, "Mac OS"], [VERSION, /_/g, "."]],
1892
- [
1893
- /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
1894
- ],
1895
- [VERSION, NAME],
1896
- [
1897
- /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
1898
- /(blackberry)\w*\/([\w\.]*)/i,
1899
- /(tizen|kaios)[\/ ]([\w\.]+)/i,
1900
- /\((series40);/i
1901
- ],
1902
- [NAME, VERSION],
1903
- [
1904
- /\(bb(10);/i
1905
- ],
1906
- [VERSION, [NAME, BLACKBERRY]],
1907
- [
1908
- /(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i
1909
- ],
1910
- [VERSION, [NAME, "Symbian"]],
1911
- [
1912
- /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
1913
- ],
1914
- [VERSION, [NAME, FIREFOX + " OS"]],
1915
- [
1916
- /web0s;.+rt(tv)/i,
1917
- /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
1918
- ],
1919
- [VERSION, [NAME, "webOS"]],
1920
- [
1921
- /crkey\/([\d\.]+)/i
1922
- ],
1923
- [VERSION, [NAME, CHROME + "cast"]],
1924
- [
1925
- /(cros) [\w]+ ([\w\.]+\w)/i
1926
- ],
1927
- [[NAME, "Chromium OS"], VERSION],
1928
- [
1929
- /(nintendo|playstation) ([wids345portablevuch]+)/i,
1930
- /(xbox); +xbox ([^\);]+)/i,
1931
- /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
1932
- /(mint)[\/\(\) ]?(\w*)/i,
1933
- /(mageia|vectorlinux)[; ]/i,
1934
- /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
1935
- /(hurd|linux) ?([\w\.]*)/i,
1936
- /(gnu) ?([\w\.]*)/i,
1937
- /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
1938
- /(haiku) (\w+)/i
1939
- ],
1940
- [NAME, VERSION],
1941
- [
1942
- /(sunos) ?([\w\.\d]*)/i
1943
- ],
1944
- [[NAME, "Solaris"], VERSION],
1945
- [
1946
- /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
1947
- /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
1948
- /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,
1949
- /(unix) ?([\w\.]*)/i
1950
- ],
1951
- [NAME, VERSION]
1952
- ]
1953
- };
1954
- var UAParser = function(ua, extensions) {
1955
- if (typeof ua === OBJ_TYPE) {
1956
- extensions = ua;
1957
- ua = undefined$1;
1958
- }
1959
- if (!(this instanceof UAParser)) {
1960
- return new UAParser(ua, extensions).getResult();
1961
- }
1962
- var _ua = ua || (typeof window2 !== UNDEF_TYPE && window2.navigator && window2.navigator.userAgent ? window2.navigator.userAgent : EMPTY);
1963
- var _rgxmap = extensions ? extend(regexes, extensions) : regexes;
1964
- this.getBrowser = function() {
1965
- var _browser = {};
1966
- _browser[NAME] = undefined$1;
1967
- _browser[VERSION] = undefined$1;
1968
- rgxMapper.call(_browser, _ua, _rgxmap.browser);
1969
- _browser.major = majorize(_browser.version);
1970
- return _browser;
1971
- };
1972
- this.getCPU = function() {
1973
- var _cpu = {};
1974
- _cpu[ARCHITECTURE] = undefined$1;
1975
- rgxMapper.call(_cpu, _ua, _rgxmap.cpu);
1976
- return _cpu;
1977
- };
1978
- this.getDevice = function() {
1979
- var _device = {};
1980
- _device[VENDOR] = undefined$1;
1981
- _device[MODEL] = undefined$1;
1982
- _device[TYPE] = undefined$1;
1983
- rgxMapper.call(_device, _ua, _rgxmap.device);
1984
- return _device;
1985
- };
1986
- this.getEngine = function() {
1987
- var _engine = {};
1988
- _engine[NAME] = undefined$1;
1989
- _engine[VERSION] = undefined$1;
1990
- rgxMapper.call(_engine, _ua, _rgxmap.engine);
1991
- return _engine;
1992
- };
1993
- this.getOS = function() {
1994
- var _os = {};
1995
- _os[NAME] = undefined$1;
1996
- _os[VERSION] = undefined$1;
1997
- rgxMapper.call(_os, _ua, _rgxmap.os);
1998
- return _os;
1999
- };
2000
- this.getResult = function() {
2001
- return {
2002
- ua: this.getUA(),
2003
- browser: this.getBrowser(),
2004
- engine: this.getEngine(),
2005
- os: this.getOS(),
2006
- device: this.getDevice(),
2007
- cpu: this.getCPU()
2008
- };
2009
- };
2010
- this.getUA = function() {
2011
- return _ua;
2012
- };
2013
- this.setUA = function(ua2) {
2014
- _ua = typeof ua2 === STR_TYPE && ua2.length > UA_MAX_LENGTH ? trim(ua2, UA_MAX_LENGTH) : ua2;
2015
- return this;
2016
- };
2017
- this.setUA(_ua);
2018
- return this;
2019
- };
2020
- UAParser.VERSION = LIBVERSION;
2021
- UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);
2022
- UAParser.CPU = enumerize([ARCHITECTURE]);
2023
- UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
2024
- UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
2025
- {
2026
- if (module2.exports) {
2027
- exports2 = module2.exports = UAParser;
2028
- }
2029
- exports2.UAParser = UAParser;
2030
- }
2031
- var $ = typeof window2 !== UNDEF_TYPE && (window2.jQuery || window2.Zepto);
2032
- if ($ && !$.ua) {
2033
- var parser = new UAParser();
2034
- $.ua = parser.getResult();
2035
- $.ua.get = function() {
2036
- return parser.getUA();
2037
- };
2038
- $.ua.set = function(ua) {
2039
- parser.setUA(ua);
2040
- var result = parser.getResult();
2041
- for (var prop in result) {
2042
- $.ua[prop] = result[prop];
2043
- }
2044
- };
2045
- }
2046
- })(typeof window === "object" ? window : commonjsGlobal);
2047
- })(uaParser, uaParser.exports);
2048
- var __defProp2 = Object.defineProperty;
2049
- var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2050
- var __publicField2 = (obj, key, value) => {
2051
- __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value);
2052
- return value;
2053
- };
2054
- const Browser = {
2055
- UNKNOWN: "Unknown",
2056
- SAFARI: "Safari",
2057
- FIREFOX: "Firefox",
2058
- OPERA: "Opera",
2059
- CHROME: "Chrome",
2060
- IOS_WEBVIEW: "iOS-webview"
2061
- };
2062
- class BrowserUtils {
2063
- static getName() {
2064
- if (!this._name) {
2065
- if (typeof navigator === "undefined" || !navigator) {
2066
- this._name = Browser.UNKNOWN;
2067
- } else {
2068
- const { userAgent } = navigator;
2069
- if (userAgent.match(/Firefox/i)) {
2070
- this._name = Browser.FIREFOX;
2071
- } else if (userAgent.match(/(Opera|OPR)/i)) {
2072
- this._name = Browser.OPERA;
2073
- } else if (userAgent.match(/Chrome/i)) {
2074
- this._name = Browser.CHROME;
2075
- } else if (userAgent.match(/Safari/i)) {
2076
- this._name = Browser.SAFARI;
2077
- } else if (userAgent.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Version)/i)) {
2078
- this._name = Browser.IOS_WEBVIEW;
2079
- } else {
2080
- this._name = Browser.UNKNOWN;
2081
- }
2082
- }
2083
- }
2084
- return this._name;
2085
- }
2086
- static get isMobile() {
2087
- if (this._isMobile === null) {
2088
- this._isMobile = false;
2089
- if (typeof navigator !== "undefined" && navigator) {
2090
- const userAgent = navigator.userAgent || navigator.vendor;
2091
- if (userAgent && (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(userAgent.substr(0, 4)))) {
2092
- this._isMobile = true;
2093
- }
2094
- }
2095
- }
2096
- return this._isMobile;
2097
- }
2098
- static clearCache() {
2099
- this._name = null;
2100
- this._isMobile = null;
2101
- }
2102
- }
2103
- __publicField2(BrowserUtils, "_name", null);
2104
- __publicField2(BrowserUtils, "_isMobile", null);
2105
- const _GraphVertex = class {
2106
- constructor(params = {}) {
2107
- __publicField2(this, "name", null);
2108
- __publicField2(this, "data", null);
2109
- __publicField2(this, "id");
2110
- __publicField2(this, "edges", []);
2111
- Object.assign(this, params);
2112
- if (typeof params.id === "number") {
2113
- this.id = params.id;
2114
- GraphEdge.currentUniqueId = Math.max(GraphEdge.currentUniqueId, params.id + 1);
2115
- } else {
2116
- this.id = _GraphVertex.currentUniqueId++;
2117
- }
2118
- }
2119
- };
2120
- let GraphVertex = _GraphVertex;
2121
- __publicField2(GraphVertex, "currentUniqueId", 0);
2122
- const _GraphEdge = class {
2123
- constructor(vertex1, vertex2, params = {}) {
2124
- __publicField2(this, "name", null);
2125
- __publicField2(this, "data", null);
2126
- __publicField2(this, "id");
2127
- __publicField2(this, "_vertex1");
2128
- __publicField2(this, "_vertex2");
2129
- Object.assign(this, params);
2130
- this.vertex1 = vertex1;
2131
- this.vertex2 = vertex2;
2132
- if (typeof params.id === "number") {
2133
- this.id = params.id;
2134
- _GraphEdge.currentUniqueId = Math.max(_GraphEdge.currentUniqueId, params.id + 1);
2135
- } else {
2136
- this.id = GraphVertex.currentUniqueId++;
2137
- }
2138
- }
2139
- get vertex1() {
2140
- return this._vertex1;
2141
- }
2142
- set vertex1(vertex) {
2143
- if (this._vertex1 && this._vertex2 !== this._vertex1) {
2144
- this._vertex1.edges = this._vertex1.edges.filter((edge) => edge !== this);
2145
- }
2146
- vertex.edges.push(this);
2147
- this._vertex1 = vertex;
2148
- }
2149
- get vertex2() {
2150
- return this._vertex2;
2151
- }
2152
- set vertex2(vertex) {
2153
- if (this._vertex2 && this._vertex2 !== this._vertex1) {
2154
- this._vertex2.edges = this._vertex2.edges.filter((edge) => edge !== this);
2155
- }
2156
- vertex.edges.push(this);
2157
- this._vertex2 = vertex;
2158
- }
2159
- static getEdgeByVertices(edges, vertex1, vertex2) {
2160
- return edges.find(
2161
- (edge) => vertex1 === edge.vertex1 && vertex2 === edge.vertex2 || vertex2 === edge.vertex1 && vertex1 === edge.vertex2
2162
- );
2163
- }
2164
- };
2165
- let GraphEdge = _GraphEdge;
2166
- __publicField2(GraphEdge, "currentUniqueId", 0);
2167
- class Graph {
2168
- constructor(vertices, edges) {
2169
- __publicField2(this, "vertices");
2170
- __publicField2(this, "edges");
2171
- this.vertices = Array.isArray(vertices) ? vertices : [];
2172
- this.edges = Array.isArray(edges) ? edges : [];
2173
- }
2174
- getEdgeByVertices(vertex1, vertex2) {
2175
- return GraphEdge.getEdgeByVertices(this.edges, vertex1, vertex2);
2176
- }
2177
- getVertexByName(name) {
2178
- return this.vertices.find((vertex) => vertex.name === name);
2179
- }
2180
- getEdgeByName(name) {
2181
- return this.edges.find((edge) => edge.name === name);
2182
- }
2183
- toDetailedString() {
2184
- let output = `--- Network ---
2185
- Vertices: ${this.vertices.length}
2186
- Edges: ${this.edges.length}
2187
- ---
2188
- Vertices
2189
- `;
2190
- this.vertices.forEach((vertex) => {
2191
- output += `${vertex.id} [edges: ${vertex.edges.length}]
2192
- `;
2193
- });
2194
- output += "---\nEdges\n";
2195
- this.edges.forEach((edge) => {
2196
- output += `${edge.id} `;
2197
- output += `[${edge.vertex1.id} -- ${edge.vertex2.id}]
2198
- `;
2199
- });
2200
- output += "---";
2201
- return output;
2202
- }
2203
- }
2204
- class GeoGraphEdge extends GraphEdge {
1117
+ class GeoGraphEdge extends utils.GraphEdge {
2205
1118
  constructor(vertex1, vertex2, params) {
2206
1119
  super(vertex1, vertex2, params);
2207
1120
  __publicField(this, "_level", null);
@@ -2253,7 +1166,7 @@ class GeoGraphEdge extends GraphEdge {
2253
1166
  return super.getEdgeByVertices(edges, vertex1, vertex2);
2254
1167
  }
2255
1168
  }
2256
- class GeoGraphVertex extends GraphVertex {
1169
+ class GeoGraphVertex extends utils.GraphVertex {
2257
1170
  constructor(coords, params) {
2258
1171
  super(params);
2259
1172
  __publicField(this, "coords");
@@ -2341,7 +1254,7 @@ class GeoGraphVertex extends GraphVertex {
2341
1254
  }
2342
1255
  }
2343
1256
  }
2344
- class GeoGraph extends Graph {
1257
+ class GeoGraph extends utils.Graph {
2345
1258
  constructor(vertices, edges, generateVerticesLevels = false) {
2346
1259
  super(vertices, edges);
2347
1260
  generateVerticesLevels && this.generateVerticesLevels();
@@ -2741,10 +1654,11 @@ class GeoGraphRouter {
2741
1654
  return m;
2742
1655
  }
2743
1656
  removeVertexFromPreviouslyCreatedEdge(_vertex) {
2744
- const u = _vertex.edges[0];
2745
- const v = _vertex.edges[1];
1657
+ const isUfirstEdge = _vertex.edges[0].vertex2 === _vertex;
1658
+ const u = _vertex.edges[isUfirstEdge ? 0 : 1];
1659
+ const v = _vertex.edges[isUfirstEdge ? 1 : 0];
2746
1660
  u.vertex1.edges = u.vertex1.edges.filter((edge) => edge !== u);
2747
- v.vertex1.edges = v.vertex1.edges.filter((edge) => edge !== v);
1661
+ v.vertex2.edges = v.vertex2.edges.filter((edge) => edge !== v);
2748
1662
  const oldEdgeName = u.name.substring("splitted ".length, u.name.length - " (tmp)".length);
2749
1663
  const oldEdgeParams = { name: oldEdgeName, data: u.data, isOneway: u.isOneway, level: u.level };
2750
1664
  const oldEdge = new GeoGraphEdge(u.vertex1, v.vertex2, oldEdgeParams);