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
JavaScript
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