cf-common-lib
Version:
Object Validators and Utilities
124 lines • 11.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
var DeviceDetectorService = /** @class */ (function () {
function DeviceDetectorService() {
}
/**
* @return {?}
*/
DeviceDetectorService.prototype._knowYourBrowser = /**
* @return {?}
*/
function () {
if ((navigator.userAgent.indexOf("Opera") || navigator.userAgent.indexOf('OPR')) != -1) {
return 'Opera';
}
else if (navigator.userAgent.indexOf("Chrome") != -1) {
return 'Chrome';
}
else if (navigator.userAgent.indexOf("Safari") != -1) {
return 'Safari';
}
else if (navigator.userAgent.indexOf("Firefox") != -1) {
return 'Firefox';
}
else if ((navigator.userAgent.indexOf("MSIE") != -1) || (!!window.document.documentMode == true)) //IF IE > 10
{
return 'IE';
}
else {
return 'Unknown';
}
};
/**
* @return {?}
*/
DeviceDetectorService.prototype.info = /**
* @return {?}
*/
function () {
return {
userAgent: navigator.userAgent,
browser: this._knowYourBrowser(),
device: '',
os_version: window.navigator.platform,
browser_version: _getBrowserVersion(),
isDesktop: _isDesktop(),
isMobile: _isMobile(),
//('ontouchstart' in document.documentElement && navigator.userAgent.match(/Mobi/)),
isTablet: _isTablet()
};
/**
* @return {?}
*/
function _isMobile() {
if (window.innerWidth >= 320 && window.innerWidth <= 767) {
return true;
}
else {
return false;
}
}
/**
* @return {?}
*/
function _isTablet() {
if (window.innerWidth >= 768 && window.innerWidth <= 979) {
return true;
}
else {
return false;
}
}
/**
* @return {?}
*/
function _isDesktop() {
if (window.innerWidth >= 980) {
return true;
}
else {
return false;
}
}
/**
* @return {?}
*/
function _getBrowserVersion() {
/** @type {?} */
var ua = navigator.userAgent;
/** @type {?} */
var tem;
/** @type {?} */
var M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
if (/trident/i.test(M[1])) {
tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
return 'IE ' + (tem[1] || '');
}
if (M[1] === 'Chrome') {
tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
if (tem != null)
return tem.slice(1).join(' ').replace('OPR', 'Opera');
}
M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
if ((tem = ua.match(/version\/(\d+)/i)) != null)
M.splice(1, 1, tem[1]);
return M.join(' ');
}
};
DeviceDetectorService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
DeviceDetectorService.ctorParameters = function () { return []; };
/** @nocollapse */ DeviceDetectorService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DeviceDetectorService_Factory() { return new DeviceDetectorService(); }, token: DeviceDetectorService, providedIn: "root" });
return DeviceDetectorService;
}());
export { DeviceDetectorService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWRldGVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jZi1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2RldmljZS1kZXRlY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVEzQztJQUtFO0lBQWdCLENBQUM7Ozs7SUFFakIsZ0RBQWdCOzs7SUFBaEI7UUFDRSxJQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDakY7WUFDSSxPQUFPLE9BQU8sQ0FBQztTQUNsQjthQUNJLElBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ25EO1lBQ1EsT0FBTyxRQUFRLENBQUM7U0FDdkI7YUFDSSxJQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNuRDtZQUNRLE9BQU8sUUFBUSxDQUFFO1NBQ3hCO2FBQ0ksSUFBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDcEQ7WUFDUSxPQUFPLFNBQVMsQ0FBQztTQUN4QjthQUNJLElBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBRSxFQUFFLFlBQVk7U0FDL0c7WUFDUSxPQUFPLElBQUksQ0FBRTtTQUNwQjthQUVEO1lBQ1EsT0FBTyxTQUFTLENBQUU7U0FD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bXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIERvY3VtZW50IHtcbiAgICAgIGRvY3VtZW50TW9kZT86IGFueTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VEZXRlY3RvclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgX2tub3dZb3VyQnJvd3NlcigpIHsgXG4gICAgaWYoKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZihcIk9wZXJhXCIpIHx8IG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignT1BSJykpICE9IC0xICkgXG4gICAgICAgIHtcbiAgICAgICAgICAgIHJldHVybiAnT3BlcmEnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKFwiQ2hyb21lXCIpICE9IC0xIClcbiAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiAnQ2hyb21lJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZihcIlNhZmFyaVwiKSAhPSAtMSlcbiAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiAnU2FmYXJpJyA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoXCJGaXJlZm94XCIpICE9IC0xICkgXG4gICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ0ZpcmVmb3gnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYoKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZihcIk1TSUVcIikgIT0gLTEgKSB8fCAoISF3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRNb2RlID09IHRydWUgKSkgLy9JRiBJRSA+IDEwXG4gICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ0lFJyA7IFxuICAgICAgICB9ICBcbiAgICAgICAgZWxzZSBcbiAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiAnVW5rbm93bicgO1xuICAgICAgICB9XG4gICB9XG5cbiAgIHB1YmxpYyBpbmZvKCl7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1c2VyQWdlbnQgOiBuYXZpZ2F0b3IudXNlckFnZW50LFxuICAgICAgICBicm93c2VyIDogdGhpcy5fa25vd1lvdXJCcm93c2VyKCkgLFxuICAgICAgICBkZXZpY2UgOiAnJywgXG4gICAgICAgIG9zX3ZlcnNpb24gOiB3aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtLFxuICAgICAgICBicm93c2VyX3ZlcnNpb24gOiBfZ2V0QnJvd3NlclZlcnNpb24oKSxcbiAgICAgICAgaXNEZXNrdG9wIDogX2lzRGVza3RvcCgpLFxuICAgICAgICBpc01vYmlsZSA6ICBfaXNNb2JpbGUoKSwvLygnb250b3VjaHN0YXJ0JyBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvTW9iaS8pKSxcbiAgICAgICAgaXNUYWJsZXQgOiBfaXNUYWJsZXQoKVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBfaXNNb2JpbGUoKSB7XG4gICAgICAgIGlmKHdpbmRvdy5pbm5lcldpZHRoID49IDMyMCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA3NjcpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gX2lzVGFibGV0KCkge1xuICAgICAgICBpZih3aW5kb3cuaW5uZXJXaWR0aCA+PSA3NjggJiYgd2luZG93LmlubmVyV2lkdGggPD0gOTc5KSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIF9pc0Rlc2t0b3AoKSB7XG4gICAgICAgIGlmKHdpbmRvdy5pbm5lcldpZHRoID49IDk4MCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBfZ2V0QnJvd3NlclZlcnNpb24oKXtcbiAgICAgICAgdmFyIHVhPSBuYXZpZ2F0b3IudXNlckFnZW50LCB0ZW0sIFxuICAgICAgICAgIE09IHVhLm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg/PVxcLykpXFwvP1xccyooXFxkKykvaSkgfHwgW107XG4gICAgICAgICAgaWYoL3RyaWRlbnQvaS50ZXN0KE1bMV0pKXtcbiAgICAgICAgICAgICAgdGVtPSAgL1xcYnJ2WyA6XSsoXFxkKykvZy5leGVjKHVhKSB8fCBbXTtcbiAgICAgICAgICAgICAgcmV0dXJuICdJRSAnKyh0ZW1bMV0gfHwgJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZihNWzFdPT09ICdDaHJvbWUnKXtcbiAgICAgICAgICAgICAgdGVtPSB1YS5tYXRjaCgvXFxiKE9QUnxFZGdlKVxcLyhcXGQrKS8pO1xuICAgICAgICAgICAgICBpZih0ZW0hPSBudWxsKSByZXR1cm4gdGVtLnNsaWNlKDEpLmpvaW4oJyAnKS5yZXBsYWNlKCdPUFInLCAnT3BlcmEnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgTT0gTVsyXT8gW01bMV0sIE1bMl1dOiBbbmF2aWdhdG9yLmFwcE5hbWUsIG5hdmlnYXRvci5hcHBWZXJzaW9uLCAnLT8nXTtcbiAgICAgICAgICBpZigodGVtPSB1YS5tYXRjaCgvdmVyc2lvblxcLyhcXGQrKS9pKSkhPSBudWxsKSBNLnNwbGljZSgxLCAxLCB0ZW1bMV0pO1xuICAgICAgICAgIHJldHVybiBNLmpvaW4oJyAnKTtcbiAgICAgIH1cbiAgIH1cbn1cblxuLy8gdXNlckFnZW50XHRNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIFVidW50dSBDaHJvbWl1bS82OS4wLjM0OTcuODEgQ2hyb21lLzY5LjAuMzQ5Ny44MSBTYWZhcmkvNTM3LjM2XG4vLyBvc1x0bGludXhcbi8vIGJyb3dzZXJcdGNocm9tZVxuLy8gZGV2aWNlXHR1bmtub3duXG4vLyBvc192ZXJzaW9uXHR1bmtub3duXG4vLyBicm93c2VyX3ZlcnNpb25cdDY5LjAuMzQ5Ny44MVxuLy8gaXNEZXNrdG9wKClcdHRydWVcbi8vIGlzTW9iaWxlKClcdGZhbHNlXG4vLyBpc1RhYmxldCgpXHRmYWxzZSJdfQ==