@foblex/core
Version:
A core library providing a set of utilities and interfaces for various projects.
69 lines • 9.52 kB
JavaScript
import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
import { EOperationSystem } from './e-operation-system';
import * as i0 from "@angular/core";
let hasV8BreakIterator;
try {
hasV8BreakIterator = typeof Intl !== 'undefined' && Intl.v8BreakIterator;
}
catch (_a) {
hasV8BreakIterator = false;
}
/**
* @deprecated This class is deprecated and will be removed in future versions.
* Please use @foblex/platform instead.
*/
export class PlatformService {
constructor(_platformId) {
this._platformId = _platformId;
this.isBrowser = this._platformId
? isPlatformBrowser(this._platformId)
: typeof document === 'object' && !!document;
this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);
this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);
this.BLINK = this.isBrowser &&
!!(window.chrome || hasV8BreakIterator) &&
typeof CSS !== 'undefined' &&
!this.EDGE &&
!this.TRIDENT;
this.WEBKIT = this.isBrowser &&
/AppleWebKit/i.test(navigator.userAgent) &&
!this.BLINK &&
!this.EDGE &&
!this.TRIDENT;
this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);
this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);
this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;
this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;
}
getOS() {
let userAgent = navigator.userAgent.toLowerCase(), macosPlatforms = /(macintosh|macintel|macppc|mac68k|macos)/i, windowsPlatforms = /(win32|win64|windows|wince)/i;
let result;
if (macosPlatforms.test(userAgent)) {
result = EOperationSystem.MAC_OS;
}
else if (this.IOS) {
result = EOperationSystem.IOS;
}
else if (windowsPlatforms.test(userAgent)) {
result = EOperationSystem.WINDOWS;
}
else if (this.ANDROID) {
result = EOperationSystem.ANDROID;
}
else if (!result && /linux/.test(userAgent)) {
result = EOperationSystem.LINUX;
}
return result;
}
}
PlatformService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PlatformService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
PlatformService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PlatformService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PlatformService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: Object, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtY29yZS9zcmMvcGxhdGZvcm0vcGxhdGZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXhELElBQUksa0JBQTJCLENBQUM7QUFFaEMsSUFBSTtJQUNGLGtCQUFrQixHQUFHLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSyxJQUFZLENBQUMsZUFBZSxDQUFDO0NBQ25GO0FBQUMsV0FBTTtJQUNOLGtCQUFrQixHQUFHLEtBQUssQ0FBQztDQUM1QjtBQUVEOzs7R0FHRztBQUVILE1BQU0sT0FBTyxlQUFlO0lBaUMxQixZQUMrQixXQUFtQjtRQUFuQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQWhDbEQsY0FBUyxHQUFZLElBQUksQ0FBQyxXQUFXO1lBQ25DLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUUvQyxTQUFJLEdBQVksSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0RSxZQUFPLEdBQVksSUFBSSxDQUFDLFNBQVMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpGLFVBQUssR0FDSCxJQUFJLENBQUMsU0FBUztZQUNkLENBQUMsQ0FBQyxDQUFFLE1BQWMsQ0FBQyxNQUFNLElBQUksa0JBQWtCLENBQUM7WUFDaEQsT0FBTyxHQUFHLEtBQUssV0FBVztZQUMxQixDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ1YsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRWhCLFdBQU0sR0FDSixJQUFJLENBQUMsU0FBUztZQUNkLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUN4QyxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ1gsQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNWLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUVoQixRQUFHLEdBQ0QsSUFBSSxDQUFDLFNBQVMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLENBQUM7UUFFNUYsWUFBTyxHQUFZLElBQUksQ0FBQyxTQUFTLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0RixZQUFPLEdBQVksSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFM0YsV0FBTSxHQUFZLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUt2RixDQUFDO0lBRU0sS0FBSztRQUVWLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQy9DLGNBQWMsR0FBRywyQ0FBMkMsRUFDNUQsZ0JBQWdCLEdBQUcsOEJBQThCLENBQUM7UUFFcEQsSUFBSSxNQUFvQyxDQUFDO1FBRXpDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNsQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1NBQ2xDO2FBQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ25CLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7U0FDL0I7YUFBTSxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO1NBQ25DO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7U0FDbkM7YUFBTSxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0MsTUFBTSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztTQUNqQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OzZHQTNEVSxlQUFlLGtCQWtDaEIsV0FBVztpSEFsQ1YsZUFBZSxjQURGLE1BQU07NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzBEQW1DWSxNQUFNOzBCQUEvQyxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFT3BlcmF0aW9uU3lzdGVtIH0gZnJvbSAnLi9lLW9wZXJhdGlvbi1zeXN0ZW0nO1xuXG5sZXQgaGFzVjhCcmVha0l0ZXJhdG9yOiBib29sZWFuO1xuXG50cnkge1xuICBoYXNWOEJyZWFrSXRlcmF0b3IgPSB0eXBlb2YgSW50bCAhPT0gJ3VuZGVmaW5lZCcgJiYgKEludGwgYXMgYW55KS52OEJyZWFrSXRlcmF0b3I7XG59IGNhdGNoIHtcbiAgaGFzVjhCcmVha0l0ZXJhdG9yID0gZmFsc2U7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhpcyBjbGFzcyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zLlxuICogUGxlYXNlIHVzZSBAZm9ibGV4L3BsYXRmb3JtIGluc3RlYWQuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1TZXJ2aWNlIHtcblxuICBpc0Jyb3dzZXI6IGJvb2xlYW4gPSB0aGlzLl9wbGF0Zm9ybUlkXG4gICAgPyBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybUlkKVxuICAgIDogdHlwZW9mIGRvY3VtZW50ID09PSAnb2JqZWN0JyAmJiAhIWRvY3VtZW50O1xuXG4gIEVER0U6IGJvb2xlYW4gPSB0aGlzLmlzQnJvd3NlciAmJiAvKGVkZ2UpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuICBUUklERU5UOiBib29sZWFuID0gdGhpcy5pc0Jyb3dzZXIgJiYgLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuICBCTElOSzogYm9vbGVhbiA9XG4gICAgdGhpcy5pc0Jyb3dzZXIgJiZcbiAgICAhISgod2luZG93IGFzIGFueSkuY2hyb21lIHx8IGhhc1Y4QnJlYWtJdGVyYXRvcikgJiZcbiAgICB0eXBlb2YgQ1NTICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICF0aGlzLkVER0UgJiZcbiAgICAhdGhpcy5UUklERU5UO1xuXG4gIFdFQktJVDogYm9vbGVhbiA9XG4gICAgdGhpcy5pc0Jyb3dzZXIgJiZcbiAgICAvQXBwbGVXZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmXG4gICAgIXRoaXMuQkxJTksgJiZcbiAgICAhdGhpcy5FREdFICYmXG4gICAgIXRoaXMuVFJJREVOVDtcblxuICBJT1M6IGJvb2xlYW4gPVxuICAgIHRoaXMuaXNCcm93c2VyICYmIC9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICEoJ01TU3RyZWFtJyBpbiB3aW5kb3cpO1xuXG4gIEZJUkVGT1g6IGJvb2xlYW4gPSB0aGlzLmlzQnJvd3NlciAmJiAvKGZpcmVmb3h8bWluZWZpZWxkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbiAgQU5EUk9JRDogYm9vbGVhbiA9IHRoaXMuaXNCcm93c2VyICYmIC9hbmRyb2lkL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAhdGhpcy5UUklERU5UO1xuXG4gIFNBRkFSSTogYm9vbGVhbiA9IHRoaXMuaXNCcm93c2VyICYmIC9zYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIHRoaXMuV0VCS0lUO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgX3BsYXRmb3JtSWQ6IE9iamVjdFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPUygpOiBFT3BlcmF0aW9uU3lzdGVtIHwgdW5kZWZpbmVkIHtcblxuICAgIGxldCB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCksXG4gICAgICBtYWNvc1BsYXRmb3JtcyA9IC8obWFjaW50b3NofG1hY2ludGVsfG1hY3BwY3xtYWM2OGt8bWFjb3MpL2ksXG4gICAgICB3aW5kb3dzUGxhdGZvcm1zID0gLyh3aW4zMnx3aW42NHx3aW5kb3dzfHdpbmNlKS9pO1xuXG4gICAgbGV0IHJlc3VsdDogRU9wZXJhdGlvblN5c3RlbSB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChtYWNvc1BsYXRmb3Jtcy50ZXN0KHVzZXJBZ2VudCkpIHtcbiAgICAgIHJlc3VsdCA9IEVPcGVyYXRpb25TeXN0ZW0uTUFDX09TO1xuICAgIH0gZWxzZSBpZiAodGhpcy5JT1MpIHtcbiAgICAgIHJlc3VsdCA9IEVPcGVyYXRpb25TeXN0ZW0uSU9TO1xuICAgIH0gZWxzZSBpZiAod2luZG93c1BsYXRmb3Jtcy50ZXN0KHVzZXJBZ2VudCkpIHtcbiAgICAgIHJlc3VsdCA9IEVPcGVyYXRpb25TeXN0ZW0uV0lORE9XUztcbiAgICB9IGVsc2UgaWYgKHRoaXMuQU5EUk9JRCkge1xuICAgICAgcmVzdWx0ID0gRU9wZXJhdGlvblN5c3RlbS5BTkRST0lEO1xuICAgIH0gZWxzZSBpZiAoIXJlc3VsdCAmJiAvbGludXgvLnRlc3QodXNlckFnZW50KSkge1xuICAgICAgcmVzdWx0ID0gRU9wZXJhdGlvblN5c3RlbS5MSU5VWDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=