define(["require", "exports"], function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var CustomUserAgentData = (function () {
function CustomUserAgentData(userAgent, testing) {
this.userAgent = userAgent;
this.isTesting = testing;
}
CustomUserAgentData.prototype.getPlatform = function () {
if (!this.isTesting && window.navigator.userAgentData) {
return window.navigator.userAgentData.platform;
}
if (/windows/i.test(this.userAgent)) {
return 'Windows';
}
if (/macintosh|mac os/i.test(this.userAgent) && !(/iphone|ipad|ipod/i.test(this.userAgent))) {
return 'macOS';
}
if (/linux/i.test(this.userAgent) && !(/android/i.test(this.userAgent))) {
return 'Linux';
}
if (/iphone|ipad|ipod/i.test(this.userAgent)) {
return 'iOS';
}
if (/android/i.test(this.userAgent)) {
return 'Android';
}
return 'Unknown';
};
CustomUserAgentData.prototype.getBrowser = function () {
var brands = [];
if (!this.isTesting && window.navigator.userAgentData) {
brands = window.navigator.userAgentData.brands;
for (var _i = 0, brands_1 = brands; _i < brands_1.length; _i++) {
var brand = brands_1[_i];
Iif (brand.brand === 'Google Chrome') {
return 'Chrome';
}
else Iif (brand.brand === 'Microsoft Edge') {
return 'Edge';
}
}
}
if (/chrome|chromium|crios/i.test(this.userAgent) && !/edg/i.test(this.userAgent)) {
return 'Chrome';
}
if (/firefox|fxios/i.test(this.userAgent) && !/edg/i.test(this.userAgent)) {
return 'Firefox';
}
if (/safari/i.test(this.userAgent) && !/chrome|chromium|crios/i.test(this.userAgent)) {
return 'Safari';
}
if (/edg/i.test(this.userAgent)) {
return 'Edge';
}
return 'Unknown';
};
CustomUserAgentData.prototype.isMobileDevice = function () {
if (!this.isTesting && window.navigator.userAgentData) {
return window.navigator.userAgentData.mobile;
}
return /(iphone|ipod|ipad|android|blackberry|bb|playbook|windows phone|webos|opera mini|mobile)/i.test(this.userAgent);
};
CustomUserAgentData.prototype.isSafari = function () {
var platform = this.getPlatform();
return this.getBrowser() === 'Safari' && (platform === 'macOS' || platform === 'iOS');
};
return CustomUserAgentData;
}());
exports.CustomUserAgentData = CustomUserAgentData;
});
|