@cause-911/core
Version:
Run `npm install @cause-911/core --save` to add this library to your project
196 lines • 13.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { CoreService } from './../../core.service';
import { EventEmitter, Injectable, Output } from '@angular/core';
import { Observable } from 'rxjs';
import { ApiLookupService } from './api-lookup.service';
import { Browser } from '../classes/browser';
import { OperatingSystem } from '../classes/operating-system';
import * as i0 from "@angular/core";
import * as i1 from "../../core.service";
import * as i2 from "./api-lookup.service";
var ClientInformationService = /** @class */ (function () {
function ClientInformationService(coreService, apiLookup) {
var _this = this;
this.apiLookup = apiLookup;
this.visibilityChange = new EventEmitter();
this.config = coreService.getConfig();
document.addEventListener('visibilitychange webkitvisibilitychange mozvisibilitychange msvisibilitychange', (/**
* @return {?}
*/
function () { return _this.onVisibilityChange(document.visibilityState === 'visible'); }));
}
/**
* @return {?}
*/
ClientInformationService.prototype.getCoordinates = /**
* @return {?}
*/
function () {
var _this = this;
return new Observable((/**
* @param {?} observer
* @return {?}
*/
function (observer) {
if (navigator && 'geolocation' in navigator) {
navigator.geolocation.getCurrentPosition((/**
* @param {?} position
* @return {?}
*/
function (position) {
observer.next([
position.coords.longitude,
position.coords.latitude,
]);
observer.complete();
}), (/**
* @return {?}
*/
function () { return _this.getCoordinatesWithClientIP(observer); }));
}
else {
_this.getCoordinatesWithClientIP(observer);
}
}));
};
/**
* @return {?}
*/
ClientInformationService.prototype.getLanguage = /**
* @return {?}
*/
function () {
var _this = this;
return new Observable((/**
* @param {?} observer
* @return {?}
*/
function (observer) {
/** @type {?} */
var lang = [_this.config.locale];
if (navigator && 'languages' in navigator) {
lang = (/** @type {?} */ (navigator.languages));
}
else if (navigator && 'language' in navigator) {
lang = [navigator.language];
}
else if (navigator && 'userLanguage' in navigator) {
lang = [navigator['userLanguage']];
}
observer.next(lang);
observer.complete();
}));
};
/**
* @return {?}
*/
ClientInformationService.prototype.getBrowser = /**
* @return {?}
*/
function () {
return new Observable((/**
* @param {?} observer
* @return {?}
*/
function (observer) {
/** @type {?} */
var browser = new Browser();
observer.next(browser);
observer.complete();
}));
};
/**
* @return {?}
*/
ClientInformationService.prototype.getOperatingSystem = /**
* @return {?}
*/
function () {
return new Observable((/**
* @param {?} observer
* @return {?}
*/
function (observer) {
/** @type {?} */
var os = new OperatingSystem();
observer.next(os);
observer.complete();
}));
};
/**
* @private
* @param {?} observer
* @return {?}
*/
ClientInformationService.prototype.getCoordinatesWithClientIP = /**
* @private
* @param {?} observer
* @return {?}
*/
function (observer) {
this.apiLookup.getIpInformation().subscribe((/**
* @param {?} info
* @return {?}
*/
function (info) {
observer.next([
info.longitude,
info.latitude,
]);
observer.complete();
}), (/**
* @return {?}
*/
function () {
observer.next([-71.00, 48.00]);
observer.error('Can\'t find the client location');
}));
};
/**
* @private
* @param {?} visible
* @return {?}
*/
ClientInformationService.prototype.onVisibilityChange = /**
* @private
* @param {?} visible
* @return {?}
*/
function (visible) {
this.visibilityChange.emit(visible);
};
ClientInformationService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
ClientInformationService.ctorParameters = function () { return [
{ type: CoreService },
{ type: ApiLookupService }
]; };
ClientInformationService.propDecorators = {
visibilityChange: [{ type: Output }]
};
/** @nocollapse */ ClientInformationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ClientInformationService_Factory() { return new ClientInformationService(i0.ɵɵinject(i1.CoreService), i0.ɵɵinject(i2.ApiLookupService)); }, token: ClientInformationService, providedIn: "root" });
return ClientInformationService;
}());
export { ClientInformationService };
if (false) {
/**
* @type {?}
* @private
*/
ClientInformationService.prototype.config;
/** @type {?} */
ClientInformationService.prototype.visibilityChange;
/**
* @type {?}
* @private
*/
ClientInformationService.prototype.apiLookup;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluZm9ybWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2F1c2UtOTExL2NvcmUvIiwic291cmNlcyI6WyJsaWIvc2hhcmVkL3NlcnZpY2VzL2NsaWVudC1pbmZvcm1hdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUU1RDtJQVNFLGtDQUNJLFdBQXdCLEVBQ2hCLFNBQTJCO1FBRnZDLGlCQVNDO1FBUFcsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFKaEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU0zQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUV0QyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0ZBQWdGOzs7UUFDdEcsY0FBTSxPQUFBLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxFQUEvRCxDQUErRCxFQUN4RSxDQUFDO0lBQ0osQ0FBQzs7OztJQUVNLGlEQUFjOzs7SUFBckI7UUFBQSxpQkFjQztRQWJDLE9BQU8sSUFBSSxVQUFVOzs7O1FBQUMsVUFBQSxRQUFRO1lBQzVCLElBQUksU0FBUyxJQUFJLGFBQWEsSUFBSSxTQUFTLEVBQUU7Z0JBQzNDLFNBQVMsQ0FBQyxXQUFXLENBQUMsa0JB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QixNQUFNOzs7bUNBZFQ7Q0ErRkMsQUF2RkQsSUF1RkM7U0FwRlksd0JBQXdCOzs7Ozs7SUFDbkMsMENBQThCOztJQUU5QixvREFDNkM7Ozs7O0lBSXpDLDZDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9jb3JlLnNlcnZpY2UnO1xuaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBcGlMb29rdXBTZXJ2aWNlfSBmcm9tICcuL2FwaS1sb29rdXAuc2VydmljZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gJy4uL2NsYXNzZXMvY29uZmlndXJhdGlvbic7XG5pbXBvcnQge0Jyb3dzZXJ9IGZyb20gJy4uL2NsYXNzZXMvYnJvd3Nlcic7XG5pbXBvcnQge09wZXJhdGluZ1N5c3RlbX0gZnJvbSAnLi4vY2xhc3Nlcy9vcGVyYXRpbmctc3lzdGVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpZW50SW5mb3JtYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ3VyYXRpb247XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB2aXNpYmlsaXR5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgY29yZVNlcnZpY2U6IENvcmVTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBhcGlMb29rdXA6IEFwaUxvb2t1cFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb3JlU2VydmljZS5nZXRDb25maWcoKTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2Ugd2Via2l0dmlzaWJpbGl0eWNoYW5nZSBtb3p2aXNpYmlsaXR5Y2hhbmdlIG1zdmlzaWJpbGl0eWNoYW5nZScsXG4gICAgICAgICgpID0+IHRoaXMub25WaXNpYmlsaXR5Q2hhbmdlKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gJ3Zpc2libGUnKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29vcmRpbmF0ZXMoKTogT2JzZXJ2YWJsZTxudW1iZXJbXT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBpZiAobmF2aWdhdG9yICYmICdnZW9sb2NhdGlvbicgaW4gbmF2aWdhdG9yKSB7XG4gICAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24ocG9zaXRpb24gPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoW1xuICAgICAgICAgICAgcG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSxcbiAgICAgICAgICAgIHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICB9LCAoKSA9PiB0aGlzLmdldENvb3JkaW5hdGVzV2l0aENsaWVudElQKG9ic2VydmVyKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmdldENvb3JkaW5hdGVzV2l0aENsaWVudElQKG9ic2VydmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYW5ndWFnZSgpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIGxldCBsYW5nID0gW3RoaXMuY29uZmlnLmxvY2FsZV07XG5cbiAgICAgIGlmIChuYXZpZ2F0b3IgJiYgJ2xhbmd1YWdlcycgaW4gbmF2aWdhdG9yKSB7XG4gICAgICAgIGxhbmcgPSA8c3RyaW5nW10+bmF2aWdhdG9yLmxhbmd1YWdlcztcbiAgICAgIH0gZWxzZSBpZiAobmF2aWdhdG9yICYmICdsYW5ndWFnZScgaW4gbmF2aWdhdG9yKSB7XG4gICAgICAgIGxhbmcgPSBbbmF2aWdhdG9yLmxhbmd1YWdlXTtcbiAgICAgIH0gZWxzZSBpZiAobmF2aWdhdG9yICYmICd1c2VyTGFuZ3VhZ2UnIGluIG5hdmlnYXRvcikge1xuICAgICAgICBsYW5nID0gW25hdmlnYXRvclsndXNlckxhbmd1YWdlJ11dO1xuICAgICAgfVxuXG4gICAgICBvYnNlcnZlci5uZXh0KGxhbmcpO1xuICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCcm93c2VyKCk6IE9ic2VydmFibGU8QnJvd3Nlcj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBjb25zdCBicm93c2VyID0gbmV3IEJyb3dzZXIoKTtcblxuICAgICAgb2JzZXJ2ZXIubmV4dChicm93c2VyKTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3BlcmF0aW5nU3lzdGVtKCk6IE9ic2VydmFibGU8T3BlcmF0aW5nU3lzdGVtPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IG9zID0gbmV3IE9wZXJhdGluZ1N5c3RlbSgpO1xuXG4gICAgICBvYnNlcnZlci5uZXh0KG9zKTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENvb3JkaW5hdGVzV2l0aENsaWVudElQKG9ic2VydmVyKTogdm9pZCB7XG4gICAgdGhpcy5hcGlMb29rdXAuZ2V0SXBJbmZvcm1hdGlvbigpLnN1YnNjcmliZShpbmZvID0+IHtcbiAgICAgIG9ic2VydmVyLm5leHQoW1xuICAgICAgICBpbmZvLmxvbmdpdHVkZSxcbiAgICAgICAgaW5mby5sYXRpdHVkZSxcbiAgICAgIF0pO1xuICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICB9LCAoKSA9PiB7XG4gICAgICBvYnNlcnZlci5uZXh0KFstNzEuMDAsIDQ4LjAwXSk7XG4gICAgICBvYnNlcnZlci5lcnJvcignQ2FuXFwndCBmaW5kIHRoZSBjbGllbnQgbG9jYXRpb24nKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25WaXNpYmlsaXR5Q2hhbmdlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnZpc2liaWxpdHlDaGFuZ2UuZW1pdCh2aXNpYmxlKTtcbiAgfVxufVxuIl19