UNPKG

ngx-gem-spaas

Version:

This library contains services, components, images and styles to provide a unified look and way-of-working throughout GEM SPaaS.

58 lines 8.44 kB
import { filter, timer } from 'rxjs'; import { Inject, Injectable, Optional } from '@angular/core'; import { NewVersionComponent } from "../new-version/new-version.component"; import { SpaasConfigModel } from "../_models/config.model"; import { NewVersionConfigModel } from "../_models/new-version.model"; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/bottom-sheet"; import * as i2 from "@angular/service-worker"; import * as i3 from "../_models/config.model"; export class NewVersionService { constructor(spaasConfig, bottomSheet, swUpdate) { this.spaasConfig = spaasConfig; this.bottomSheet = bottomSheet; this.swUpdate = swUpdate; // we get the raw spaasConfig provided by the client app, not the one from the ConfigService (because // this is called from appInit, so we cannot rely on the NewVersionConfigModel constructor making things clean. // Hence, always do a new NewVersionConfigModel } getNewVersion() { // LISTEN FOR NEW VERSIONS if (!this.swUpdate?.isEnabled) { return; } this.swUpdate.versionUpdates .pipe(filter((evt) => evt.type === 'VERSION_READY')) .subscribe(() => { const cfg = new NewVersionConfigModel(this.spaasConfig?.newVersionConfig || {}); this.bottomSheet.open(NewVersionComponent, { hasBackdrop: cfg.hasBackdrop }); this.startTimer(); }); } startTimer() { const cfg = new NewVersionConfigModel(this.spaasConfig?.newVersionConfig || {}); if (cfg.reminder && cfg.hasBackdrop) { // if reminder is set and hasBackdrop is true, just start the timer (if no backdrop, the pop-up will stay open, no need for a reminder) // if the user has accepted the new version anyway, the page will reload // and after page reload, the timer will not be started again, because there will no longer be a new version timer(cfg.reminder * 60000, cfg.reminder * 60000) .subscribe(() => { this.bottomSheet.open(NewVersionComponent, { hasBackdrop: cfg.hasBackdrop }); }); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NewVersionService, deps: [{ token: SpaasConfigModel, optional: true }, { token: i1.MatBottomSheet }, { token: i2.SwUpdate }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NewVersionService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NewVersionService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i3.SpaasConfigModel, decorators: [{ type: Optional }, { type: Inject, args: [SpaasConfigModel] }] }, { type: i1.MatBottomSheet }, { type: i2.SwUpdate }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXZlcnNpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nZW0tc3BhYXMvc3JjL19zZXJ2aWNlcy9uZXctdmVyc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUczRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFLbkUsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUN5RCxXQUE2QixFQUM1RSxXQUEyQixFQUMzQixRQUFrQjtRQUY2QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDNUUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFMUIscUdBQXFHO1FBQ3JHLCtHQUErRztRQUMvRywrQ0FBK0M7SUFDakQsQ0FBQztJQUVELGFBQWE7UUFDWCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWM7YUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBNEIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLENBQUM7YUFDN0UsU0FBUyxDQUNSLEdBQUcsRUFBRTtZQUNILE1BQU0sR0FBRyxHQUFHLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNoRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFDLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLEdBQUcsR0FBRyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEYsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQyx1SUFBdUk7WUFDdkksd0VBQXdFO1lBQ3hFLDRHQUE0RztZQUM1RyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7aUJBQzlDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBQyxDQUFDLENBQUM7WUFDN0UsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDO0lBQ0gsQ0FBQzsrR0F2Q1UsaUJBQWlCLGtCQUdOLGdCQUFnQjttSEFIM0IsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUlJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmaWx0ZXIsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdEJvdHRvbVNoZWV0fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0XCI7XG5pbXBvcnQge1N3VXBkYXRlLCBWZXJzaW9uUmVhZHlFdmVudH0gZnJvbSBcIkBhbmd1bGFyL3NlcnZpY2Utd29ya2VyXCI7XG5pbXBvcnQge05ld1ZlcnNpb25Db21wb25lbnR9IGZyb20gXCIuLi9uZXctdmVyc2lvbi9uZXctdmVyc2lvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7U3BhYXNDb25maWdNb2RlbH0gZnJvbSBcIi4uL19tb2RlbHMvY29uZmlnLm1vZGVsXCI7XG5pbXBvcnQge05ld1ZlcnNpb25Db25maWdNb2RlbH0gZnJvbSBcIi4uL19tb2RlbHMvbmV3LXZlcnNpb24ubW9kZWxcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmV3VmVyc2lvblNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU3BhYXNDb25maWdNb2RlbCkgcHJpdmF0ZSByZWFkb25seSBzcGFhc0NvbmZpZzogU3BhYXNDb25maWdNb2RlbCxcbiAgICBwcml2YXRlIGJvdHRvbVNoZWV0OiBNYXRCb3R0b21TaGVldCxcbiAgICBwcml2YXRlIHN3VXBkYXRlOiBTd1VwZGF0ZSxcbiAgKSB7XG4gICAgLy8gd2UgZ2V0IHRoZSByYXcgc3BhYXNDb25maWcgcHJvdmlkZWQgYnkgdGhlIGNsaWVudCBhcHAsIG5vdCB0aGUgb25lIGZyb20gdGhlIENvbmZpZ1NlcnZpY2UgKGJlY2F1c2VcbiAgICAvLyB0aGlzIGlzIGNhbGxlZCBmcm9tIGFwcEluaXQsIHNvIHdlIGNhbm5vdCByZWx5IG9uIHRoZSBOZXdWZXJzaW9uQ29uZmlnTW9kZWwgY29uc3RydWN0b3IgbWFraW5nIHRoaW5ncyBjbGVhbi5cbiAgICAvLyBIZW5jZSwgYWx3YXlzIGRvIGEgbmV3IE5ld1ZlcnNpb25Db25maWdNb2RlbFxuICB9XG5cbiAgZ2V0TmV3VmVyc2lvbigpOiB2b2lkIHtcbiAgICAvLyBMSVNURU4gRk9SIE5FVyBWRVJTSU9OU1xuICAgIGlmICghdGhpcy5zd1VwZGF0ZT8uaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3dVcGRhdGUudmVyc2lvblVwZGF0ZXNcbiAgICAgIC5waXBlKGZpbHRlcigoZXZ0KTogZXZ0IGlzIFZlcnNpb25SZWFkeUV2ZW50ID0+IGV2dC50eXBlID09PSAnVkVSU0lPTl9SRUFEWScpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNmZyA9IG5ldyBOZXdWZXJzaW9uQ29uZmlnTW9kZWwodGhpcy5zcGFhc0NvbmZpZz8ubmV3VmVyc2lvbkNvbmZpZyB8fCB7fSk7XG4gICAgICAgICAgdGhpcy5ib3R0b21TaGVldC5vcGVuKE5ld1ZlcnNpb25Db21wb25lbnQsIHtoYXNCYWNrZHJvcDogY2ZnLmhhc0JhY2tkcm9wfSk7XG4gICAgICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0VGltZXIoKTogdm9pZCB7XG4gICAgY29uc3QgY2ZnID0gbmV3IE5ld1ZlcnNpb25Db25maWdNb2RlbCh0aGlzLnNwYWFzQ29uZmlnPy5uZXdWZXJzaW9uQ29uZmlnIHx8IHt9KTtcbiAgICBpZiAoY2ZnLnJlbWluZGVyICYmIGNmZy5oYXNCYWNrZHJvcCkge1xuICAgICAgLy8gaWYgcmVtaW5kZXIgaXMgc2V0IGFuZCBoYXNCYWNrZHJvcCBpcyB0cnVlLCBqdXN0IHN0YXJ0IHRoZSB0aW1lciAoaWYgbm8gYmFja2Ryb3AsIHRoZSBwb3AtdXAgd2lsbCBzdGF5IG9wZW4sIG5vIG5lZWQgZm9yIGEgcmVtaW5kZXIpXG4gICAgICAvLyBpZiB0aGUgdXNlciBoYXMgYWNjZXB0ZWQgdGhlIG5ldyB2ZXJzaW9uIGFueXdheSwgdGhlIHBhZ2Ugd2lsbCByZWxvYWRcbiAgICAgIC8vIGFuZCBhZnRlciBwYWdlIHJlbG9hZCwgdGhlIHRpbWVyIHdpbGwgbm90IGJlIHN0YXJ0ZWQgYWdhaW4sIGJlY2F1c2UgdGhlcmUgd2lsbCBubyBsb25nZXIgYmUgYSBuZXcgdmVyc2lvblxuICAgICAgdGltZXIoY2ZnLnJlbWluZGVyICogNjAwMDAsIGNmZy5yZW1pbmRlciAqIDYwMDAwKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmJvdHRvbVNoZWV0Lm9wZW4oTmV3VmVyc2lvbkNvbXBvbmVudCwge2hhc0JhY2tkcm9wOiBjZmcuaGFzQmFja2Ryb3B9KTtcbiAgICAgICAgfSlcbiAgICB9XG4gIH1cblxufVxuIl19