UNPKG

@cause-911/core

Version:

Run `npm install @cause-911/core --save` to add this library to your project

196 lines 13.6 kB
/** * @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