UNPKG

cf-common-lib

Version:

Object Validators and Utilities

124 lines 11.7 kB
/** * @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==