@solidev/data 0.0.1-beta.0 → 0.0.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/updates/update/update.component.mjs +17 -0
- package/esm2020/lib/updates/update.service.mjs +58 -0
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/solidev-data.mjs +70 -3
- package/fesm2015/solidev-data.mjs.map +1 -1
- package/fesm2020/solidev-data.mjs +70 -3
- package/fesm2020/solidev-data.mjs.map +1 -1
- package/lib/updates/update/update.component.d.ts +8 -0
- package/lib/updates/update.service.d.ts +16 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../update.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export class UpdateComponent {
|
|
7
|
+
constructor(update) {
|
|
8
|
+
this.update = update;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
UpdateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateComponent, deps: [{ token: i1.UpdateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
UpdateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: UpdateComponent, isStandalone: true, selector: "data-update", ngImport: i0, template: "\n<div class=\"snack\" *ngIf=\"update.available$|async\">\n <p>Une nouvelle version de l'application est disponible.</p>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <button class=\"btn btn-primary btn-block w-100\" (click)=\"update.activate()\">L'ACTIVER MAINTENANT</button>\n </div>\n <div class=\"col-sm-6\">\n <button class=\"btn btn-warning btn-block w-100\" (click)=\"update.dismiss()\">Plus tard</button>\n </div>\n </div>\n</div>", styles: [".snack{position:fixed;bottom:0;margin-left:auto;margin-right:auto;left:auto;right:auto;background-color:#ff7a00cc;padding:20px;z-index:2000;border-top:1px solid rgb(255,122,0);font-size:1.5rem;font-weight:700;color:#8b0000;width:100%;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'data-update', standalone: true, imports: [CommonModule], template: "\n<div class=\"snack\" *ngIf=\"update.available$|async\">\n <p>Une nouvelle version de l'application est disponible.</p>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <button class=\"btn btn-primary btn-block w-100\" (click)=\"update.activate()\">L'ACTIVER MAINTENANT</button>\n </div>\n <div class=\"col-sm-6\">\n <button class=\"btn btn-warning btn-block w-100\" (click)=\"update.dismiss()\">Plus tard</button>\n </div>\n </div>\n</div>", styles: [".snack{position:fixed;bottom:0;margin-left:auto;margin-right:auto;left:auto;right:auto;background-color:#ff7a00cc;padding:20px;z-index:2000;border-top:1px solid rgb(255,122,0);font-size:1.5rem;font-weight:700;color:#8b0000;width:100%;text-align:center}\n"] }]
|
|
16
|
+
}], ctorParameters: function () { return [{ type: i1.UpdateService }]; } });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi91cGRhdGVzL3VwZGF0ZS91cGRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL3VwZGF0ZXMvdXBkYXRlL3VwZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVMvQyxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFtQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO0lBQUcsQ0FBQzs7NEdBRGpDLGVBQWU7Z0dBQWYsZUFBZSx1RUNYNUIsc2RBV00sdVRERk0sWUFBWTsyRkFFWCxlQUFlO2tCQVAzQixTQUFTOytCQUNFLGFBQWEsY0FHWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVwZGF0ZVNlcnZpY2UgfSBmcm9tICcuLi91cGRhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLXVwZGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGRhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91cGRhdGUuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFVwZGF0ZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1cGRhdGU6IFVwZGF0ZVNlcnZpY2UpIHt9XG59XG4iLCJcbjxkaXYgY2xhc3M9XCJzbmFja1wiICpuZ0lmPVwidXBkYXRlLmF2YWlsYWJsZSR8YXN5bmNcIj5cbiAgPHA+VW5lIG5vdXZlbGxlIHZlcnNpb24gZGUgbCdhcHBsaWNhdGlvbiBlc3QgZGlzcG9uaWJsZS48L3A+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIHctMTAwXCIgKGNsaWNrKT1cInVwZGF0ZS5hY3RpdmF0ZSgpXCI+TCdBQ1RJVkVSIE1BSU5URU5BTlQ8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXdhcm5pbmcgYnRuLWJsb2NrIHctMTAwXCIgKGNsaWNrKT1cInVwZGF0ZS5kaXNtaXNzKClcIj5QbHVzIHRhcmQ8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { filter, first, map, tap } from 'rxjs/operators';
|
|
3
|
+
import { merge, ReplaySubject, timer } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/service-worker";
|
|
6
|
+
export class UpdateService {
|
|
7
|
+
constructor(appRef, swUpdate) {
|
|
8
|
+
this.appRef = appRef;
|
|
9
|
+
this.swUpdate = swUpdate;
|
|
10
|
+
this.stable = false;
|
|
11
|
+
this._available$ = new ReplaySubject(1);
|
|
12
|
+
this._available$.next(false);
|
|
13
|
+
const appIsStable$ = this.appRef.isStable
|
|
14
|
+
.pipe(first((isStable) => isStable))
|
|
15
|
+
.pipe(tap(() => console.log('App is stable')));
|
|
16
|
+
const checkInterval$ = timer(10 * 1000, 5 * 60 * 1000);
|
|
17
|
+
const checkWhenStable$ = merge(appIsStable$, checkInterval$);
|
|
18
|
+
const updatesAvailable = swUpdate.versionUpdates.pipe(tap((evt) => console.log('Version updates event', evt)), filter((evt) => evt.type === 'VERSION_READY'), map((evt) => ({
|
|
19
|
+
type: 'UPDATE_AVAILABLE',
|
|
20
|
+
current: evt.currentVersion,
|
|
21
|
+
available: evt.latestVersion,
|
|
22
|
+
})));
|
|
23
|
+
updatesAvailable.subscribe(async (evt) => {
|
|
24
|
+
this._available$.next(true);
|
|
25
|
+
});
|
|
26
|
+
checkWhenStable$.subscribe(async () => {
|
|
27
|
+
this.stable = true;
|
|
28
|
+
try {
|
|
29
|
+
console.log('Checking for update');
|
|
30
|
+
const res = await swUpdate.checkForUpdate();
|
|
31
|
+
console.log('Check for update result', res);
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
console.warn('No service worker');
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
get available$() {
|
|
39
|
+
return this._available$.asObservable();
|
|
40
|
+
}
|
|
41
|
+
activate() {
|
|
42
|
+
this._available$.next(false);
|
|
43
|
+
console.log('RELOADING FULL PAGE');
|
|
44
|
+
document.location.reload();
|
|
45
|
+
}
|
|
46
|
+
dismiss() {
|
|
47
|
+
this._available$.next(false);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
UpdateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateService, deps: [{ token: i0.ApplicationRef }, { token: i1.SwUpdate }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
51
|
+
UpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateService, providedIn: 'root' });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateService, decorators: [{
|
|
53
|
+
type: Injectable,
|
|
54
|
+
args: [{
|
|
55
|
+
providedIn: 'root',
|
|
56
|
+
}]
|
|
57
|
+
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i1.SwUpdate }]; } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvdXBkYXRlcy91cGRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLL0QsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBb0IsTUFBc0IsRUFBVSxRQUFrQjtRQUFsRCxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFGOUQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTthQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDdkQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ25ELEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUN2RCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQTRCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxFQUN2RSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDWixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLE9BQU8sRUFBRSxHQUFHLENBQUMsY0FBYztZQUMzQixTQUFTLEVBQUUsR0FBRyxDQUFDLGFBQWE7U0FDN0IsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUNGLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSTtnQkFDRixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7Z0JBQ25DLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQzdDO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBSUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNuQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7MEdBakRVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3dVcGRhdGUsIFZlcnNpb25SZWFkeUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvc2VydmljZS13b3JrZXInO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVwZGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHN0YWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZiwgcHJpdmF0ZSBzd1VwZGF0ZTogU3dVcGRhdGUpIHtcbiAgICB0aGlzLl9hdmFpbGFibGUkID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgdGhpcy5fYXZhaWxhYmxlJC5uZXh0KGZhbHNlKTtcbiAgICBjb25zdCBhcHBJc1N0YWJsZSQgPSB0aGlzLmFwcFJlZi5pc1N0YWJsZVxuICAgICAgLnBpcGUoZmlyc3QoKGlzU3RhYmxlKSA9PiBpc1N0YWJsZSkpXG4gICAgICAucGlwZSh0YXAoKCkgPT4gY29uc29sZS5sb2coJ0FwcCBpcyBzdGFibGUnKSkpO1xuICAgIGNvbnN0IGNoZWNrSW50ZXJ2YWwkID0gdGltZXIoMTAgKiAxMDAwLCA1ICogNjAgKiAxMDAwKTtcbiAgICBjb25zdCBjaGVja1doZW5TdGFibGUkID0gbWVyZ2UoYXBwSXNTdGFibGUkLCBjaGVja0ludGVydmFsJCk7XG4gICAgY29uc3QgdXBkYXRlc0F2YWlsYWJsZSA9IHN3VXBkYXRlLnZlcnNpb25VcGRhdGVzLnBpcGUoXG4gICAgICB0YXAoKGV2dCkgPT4gY29uc29sZS5sb2coJ1ZlcnNpb24gdXBkYXRlcyBldmVudCcsIGV2dCkpLFxuICAgICAgZmlsdGVyKChldnQpOiBldnQgaXMgVmVyc2lvblJlYWR5RXZlbnQgPT4gZXZ0LnR5cGUgPT09ICdWRVJTSU9OX1JFQURZJyksXG4gICAgICBtYXAoKGV2dCkgPT4gKHtcbiAgICAgICAgdHlwZTogJ1VQREFURV9BVkFJTEFCTEUnLFxuICAgICAgICBjdXJyZW50OiBldnQuY3VycmVudFZlcnNpb24sXG4gICAgICAgIGF2YWlsYWJsZTogZXZ0LmxhdGVzdFZlcnNpb24sXG4gICAgICB9KSlcbiAgICApO1xuICAgIHVwZGF0ZXNBdmFpbGFibGUuc3Vic2NyaWJlKGFzeW5jIChldnQpID0+IHtcbiAgICAgIHRoaXMuX2F2YWlsYWJsZSQubmV4dCh0cnVlKTtcbiAgICB9KTtcbiAgICBjaGVja1doZW5TdGFibGUkLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLnN0YWJsZSA9IHRydWU7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zb2xlLmxvZygnQ2hlY2tpbmcgZm9yIHVwZGF0ZScpO1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBzd1VwZGF0ZS5jaGVja0ZvclVwZGF0ZSgpO1xuICAgICAgICBjb25zb2xlLmxvZygnQ2hlY2sgZm9yIHVwZGF0ZSByZXN1bHQnLCByZXMpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ05vIHNlcnZpY2Ugd29ya2VyJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hdmFpbGFibGUkOiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+O1xuXG4gIHB1YmxpYyBnZXQgYXZhaWxhYmxlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fYXZhaWxhYmxlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hdmFpbGFibGUkLm5leHQoZmFsc2UpO1xuICAgIGNvbnNvbGUubG9nKCdSRUxPQURJTkcgRlVMTCBQQUdFJyk7XG4gICAgZG9jdW1lbnQubG9jYXRpb24ucmVsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9hdmFpbGFibGUkLm5leHQoZmFsc2UpO1xuICB9XG59XG4iXX0=
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -48,4 +48,6 @@ export * from './lib/routing/routing';
|
|
|
48
48
|
export * from './lib/routing/breadcrumb/breadcrumb.component';
|
|
49
49
|
export * from './lib/utils/tab-memory.service';
|
|
50
50
|
export * from './lib/utils/slugify';
|
|
51
|
-
|
|
51
|
+
export * from './lib/updates/update.service';
|
|
52
|
+
export * from './lib/updates/update/update.component';
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG1HQUFtRyxDQUFDO0FBQ2xILGNBQWMsNkZBQTZGLENBQUM7QUFDNUcsY0FBYyxpRkFBaUYsQ0FBQztBQUNoRyxjQUFjLGtHQUFrRyxDQUFDO0FBQ2pILGNBQWMsb0ZBQW9GLENBQUM7QUFDbkcsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSxjQUFjLDBHQUEwRyxDQUFDO0FBQ3pILGNBQWMsc0hBQXNILENBQUM7QUFDckksY0FBYyxrR0FBa0csQ0FBQztBQUNqSCxjQUFjLDBGQUEwRixDQUFDO0FBQ3pHLGNBQWMsNEdBQTRHLENBQUM7QUFDM0gsY0FBYyw0RkFBNEYsQ0FBQztBQUMzRyxjQUFjLHdHQUF3RyxDQUFDO0FBQ3ZILGNBQWMsOEZBQThGLENBQUM7QUFDN0csY0FBYyw4RkFBOEYsQ0FBQztBQUM3RyxjQUFjLDBHQUEwRyxDQUFDO0FBQ3pILGNBQWMsMEZBQTBGLENBQUM7QUFDekcsY0FBYywwRkFBMEYsQ0FBQztBQUV6RyxjQUFjLHVGQUF1RixDQUFDO0FBRXRHLGNBQWMsMEZBQTBGLENBQUM7QUFFekcsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0RBQW9ELENBQUM7QUFFbkUsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBkYXRhXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS9kYXRhLXBhcmFtZXRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS9kYXRhLW1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEvZGF0YS1iYWNrZW5kJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEvZGF0YS1xdWVyeSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGRzLXNlbGVjdG9yL21vZGVsLWxpc3QtZmllbGRzLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWVsZHMvbW9kZWwtbGlzdC1maWVsZC1oZWFkZXIvbW9kZWwtbGlzdC1maWVsZC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LXNvcnRlci9tb2RlbC1saXN0LXNvcnRlci9tb2RlbC1saXN0LXNvcnRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9tb2RlbC1saXN0LWZpbHRlcnMtc2VsZWN0L21vZGVsLWxpc3QtZmlsdGVycy1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9tb2RlbC1saXN0LWZpbHRlcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtZmlsdGVyL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtbXVsdGktZmlsdGVyL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLW11bHRpLWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1kYXRldGltZS1maWx0ZXIvbW9kZWwtbGlzdC1kYXRldGltZS1maWx0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtZGF0ZS1maWx0ZXIvbW9kZWwtbGlzdC1kYXRlLWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1kYXRldGltZXJhbmdlLWZpbHRlci9tb2RlbC1saXN0LWRhdGV0aW1lcmFuZ2UtZmlsdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvZmlsdGVycy9tb2RlbC1saXN0LWZsYWdzLWZpbHRlci9tb2RlbC1saXN0LWZsYWdzLWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1nZW9kaXN0YW5jZS1maWx0ZXIvbW9kZWwtbGlzdC1nZW9kaXN0YW5jZS1maWx0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtbnVtYmVyLWZpbHRlci9tb2RlbC1saXN0LW51bWJlci1maWx0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3Qtc2VsZWN0LWZpbHRlci9tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3Qtc2VsZWN0LW11bHRpLWZpbHRlci9tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtdGV4dC1maWx0ZXIvbW9kZWwtbGlzdC10ZXh0LWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC10cmVlLWZpbHRlci9tb2RlbC1saXN0LXRyZWUtZmlsdGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtZ2VvZGlzdGFuY2UtZmlsdGVyL2FkYXB0ZXJzL2Jhbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LXBhZ2luYXRvci9tb2RlbC1saXN0LXBhZ2luYXRvci9tb2RlbC1saXN0LXBhZ2luYXRvci5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwZWRpdC9jaG9pY2UucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwZWRpdC9mYWN0b3IucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwZWRpdC9mYWN0b3JjLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzcGVkaXQvZGlzcGVkaXQvZGlzcGVkaXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rpc3BlZGl0L2Zrc2VsZWN0L2Zrc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwZWRpdC9tMm1zZWxlY3QvbTJtc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwZWRpdC9mbGFncy9mbGFncy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzcGVkaXQvcmljaGVkaXQvcmljaGVkaXQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzcGVkaXQvc2RlbGV0ZS9zZGVsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhL2ZpZWxkcy9pbmRleCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2VzL21lc3NhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlcy9tZXNzYWdlLXpvbmUvbWVzc2FnZS16b25lLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEvZGF0YS1jb2xsZWN0aW9uLm1vY2snO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBsb2FkZXIvaW5kZXgnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoL2F1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoL2F1dGgtaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoL2p3dCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3JvdXRpbmcvcm91dGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yb3V0aW5nL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy90YWItbWVtb3J5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc2x1Z2lmeSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3VwZGF0ZXMvdXBkYXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBkYXRlcy91cGRhdGUvdXBkYXRlLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -3,8 +3,8 @@ import { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, Component, I
|
|
|
3
3
|
import 'reflect-metadata';
|
|
4
4
|
import * as i2$2 from '@angular/forms';
|
|
5
5
|
import { FormControl, Validators, FormGroup, UntypedFormControl, ReactiveFormsModule, NG_VALUE_ACCESSOR, UntypedFormGroup } from '@angular/forms';
|
|
6
|
-
import { throwError, ReplaySubject, share, combineLatest, of, takeUntil, NEVER, Subject, debounceTime, distinctUntilChanged, isObservable, firstValueFrom, timer, Observable, BehaviorSubject } from 'rxjs';
|
|
7
|
-
import { tap, switchMap, map, throttleTime, filter, mergeMap, finalize, catchError, take } from 'rxjs/operators';
|
|
6
|
+
import { throwError, ReplaySubject, share, combineLatest, of, takeUntil, NEVER, Subject, debounceTime, distinctUntilChanged, isObservable, firstValueFrom, timer, Observable, BehaviorSubject, merge } from 'rxjs';
|
|
7
|
+
import { tap, switchMap, map, throttleTime, filter, mergeMap, finalize, catchError, take, first } from 'rxjs/operators';
|
|
8
8
|
import * as i2 from '@angular/platform-browser';
|
|
9
9
|
import { makeStateKey } from '@angular/platform-browser';
|
|
10
10
|
import * as i1$1 from '@angular/common';
|
|
@@ -25,6 +25,7 @@ import { provideAnimations } from '@angular/platform-browser/animations';
|
|
|
25
25
|
import jwt_decode from 'jwt-decode';
|
|
26
26
|
import * as i1$2 from '@angular/router';
|
|
27
27
|
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
28
|
+
import * as i1$3 from '@angular/service-worker';
|
|
28
29
|
|
|
29
30
|
/**
|
|
30
31
|
* DATA_API_URL: stores data api base url
|
|
@@ -5537,6 +5538,71 @@ const slugify = (str) => {
|
|
|
5537
5538
|
return str;
|
|
5538
5539
|
};
|
|
5539
5540
|
|
|
5541
|
+
class UpdateService {
|
|
5542
|
+
constructor(appRef, swUpdate) {
|
|
5543
|
+
this.appRef = appRef;
|
|
5544
|
+
this.swUpdate = swUpdate;
|
|
5545
|
+
this.stable = false;
|
|
5546
|
+
this._available$ = new ReplaySubject(1);
|
|
5547
|
+
this._available$.next(false);
|
|
5548
|
+
const appIsStable$ = this.appRef.isStable
|
|
5549
|
+
.pipe(first((isStable) => isStable))
|
|
5550
|
+
.pipe(tap(() => console.log('App is stable')));
|
|
5551
|
+
const checkInterval$ = timer(10 * 1000, 5 * 60 * 1000);
|
|
5552
|
+
const checkWhenStable$ = merge(appIsStable$, checkInterval$);
|
|
5553
|
+
const updatesAvailable = swUpdate.versionUpdates.pipe(tap((evt) => console.log('Version updates event', evt)), filter((evt) => evt.type === 'VERSION_READY'), map((evt) => ({
|
|
5554
|
+
type: 'UPDATE_AVAILABLE',
|
|
5555
|
+
current: evt.currentVersion,
|
|
5556
|
+
available: evt.latestVersion,
|
|
5557
|
+
})));
|
|
5558
|
+
updatesAvailable.subscribe((evt) => __awaiter(this, void 0, void 0, function* () {
|
|
5559
|
+
this._available$.next(true);
|
|
5560
|
+
}));
|
|
5561
|
+
checkWhenStable$.subscribe(() => __awaiter(this, void 0, void 0, function* () {
|
|
5562
|
+
this.stable = true;
|
|
5563
|
+
try {
|
|
5564
|
+
console.log('Checking for update');
|
|
5565
|
+
const res = yield swUpdate.checkForUpdate();
|
|
5566
|
+
console.log('Check for update result', res);
|
|
5567
|
+
}
|
|
5568
|
+
catch (e) {
|
|
5569
|
+
console.warn('No service worker');
|
|
5570
|
+
}
|
|
5571
|
+
}));
|
|
5572
|
+
}
|
|
5573
|
+
get available$() {
|
|
5574
|
+
return this._available$.asObservable();
|
|
5575
|
+
}
|
|
5576
|
+
activate() {
|
|
5577
|
+
this._available$.next(false);
|
|
5578
|
+
console.log('RELOADING FULL PAGE');
|
|
5579
|
+
document.location.reload();
|
|
5580
|
+
}
|
|
5581
|
+
dismiss() {
|
|
5582
|
+
this._available$.next(false);
|
|
5583
|
+
}
|
|
5584
|
+
}
|
|
5585
|
+
UpdateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateService, deps: [{ token: i0.ApplicationRef }, { token: i1$3.SwUpdate }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5586
|
+
UpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateService, providedIn: 'root' });
|
|
5587
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateService, decorators: [{
|
|
5588
|
+
type: Injectable,
|
|
5589
|
+
args: [{
|
|
5590
|
+
providedIn: 'root',
|
|
5591
|
+
}]
|
|
5592
|
+
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i1$3.SwUpdate }]; } });
|
|
5593
|
+
|
|
5594
|
+
class UpdateComponent {
|
|
5595
|
+
constructor(update) {
|
|
5596
|
+
this.update = update;
|
|
5597
|
+
}
|
|
5598
|
+
}
|
|
5599
|
+
UpdateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateComponent, deps: [{ token: UpdateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5600
|
+
UpdateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: UpdateComponent, isStandalone: true, selector: "data-update", ngImport: i0, template: "\n<div class=\"snack\" *ngIf=\"update.available$|async\">\n <p>Une nouvelle version de l'application est disponible.</p>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <button class=\"btn btn-primary btn-block w-100\" (click)=\"update.activate()\">L'ACTIVER MAINTENANT</button>\n </div>\n <div class=\"col-sm-6\">\n <button class=\"btn btn-warning btn-block w-100\" (click)=\"update.dismiss()\">Plus tard</button>\n </div>\n </div>\n</div>", styles: [".snack{position:fixed;bottom:0;margin-left:auto;margin-right:auto;left:auto;right:auto;background-color:#ff7a00cc;padding:20px;z-index:2000;border-top:1px solid rgb(255,122,0);font-size:1.5rem;font-weight:700;color:#8b0000;width:100%;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] });
|
|
5601
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UpdateComponent, decorators: [{
|
|
5602
|
+
type: Component,
|
|
5603
|
+
args: [{ selector: 'data-update', standalone: true, imports: [CommonModule], template: "\n<div class=\"snack\" *ngIf=\"update.available$|async\">\n <p>Une nouvelle version de l'application est disponible.</p>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <button class=\"btn btn-primary btn-block w-100\" (click)=\"update.activate()\">L'ACTIVER MAINTENANT</button>\n </div>\n <div class=\"col-sm-6\">\n <button class=\"btn btn-warning btn-block w-100\" (click)=\"update.dismiss()\">Plus tard</button>\n </div>\n </div>\n</div>", styles: [".snack{position:fixed;bottom:0;margin-left:auto;margin-right:auto;left:auto;right:auto;background-color:#ff7a00cc;padding:20px;z-index:2000;border-top:1px solid rgb(255,122,0);font-size:1.5rem;font-weight:700;color:#8b0000;width:100%;text-align:center}\n"] }]
|
|
5604
|
+
}], ctorParameters: function () { return [{ type: UpdateService }]; } });
|
|
5605
|
+
|
|
5540
5606
|
/*
|
|
5541
5607
|
* Public API Surface of data
|
|
5542
5608
|
*/
|
|
@@ -5545,5 +5611,6 @@ const slugify = (str) => {
|
|
|
5545
5611
|
* Generated bundle index. Do not edit.
|
|
5546
5612
|
*/
|
|
5547
5613
|
|
|
5548
|
-
export { AuthInterceptor, AuthServiceBase, BanAdapter, BootstrapDataDisplayConfig, BreadcrumbComponent, ChoicePipe, Collection, CollectionMock, DATA_API_URL, DATA_AUTH_PARAMS, DATA_AUTH_SERVICE, DATA_AUTH_USER_SERVICE, DATA_DISPLAY_CONFIG, DATA_MAX_TRANSFERSTATE_TIME, DATA_MESSAGE_SOUNDS, DEFAULT_TIMEOUTS, DataBackend, DataMessageService, DataModel, DataUploaderService, DispeditComponent, FactorPipe, FactorcPipe, FkselectComponent, FlagsComponent, Jwt, Link, M2mselectComponent, Message, MessageZoneComponent, ModelList, ModelListAutocompleteFilter, ModelListAutocompleteMultiFilter, ModelListDateFilter, ModelListDatetimeFilter, ModelListDatetimerangeFilter, ModelListFieldHeaderComponent, ModelListFieldsSelectorComponent, ModelListFilters, ModelListFiltersComponent, ModelListFiltersSelectComponent, ModelListFlagsFilter, ModelListGeodistanceFilter, ModelListNumberFilter, ModelListNumberOperations, ModelListPaginatorComponent, ModelListSelectFilter, ModelListSelectMultiFilter, ModelListService, ModelListSorterComponent, ModelListTextFilter, ModelListTreeFilter, NavDriver, NgFileDropDirective, NgFileSelectDirective, NgxUploaderModule, PChoicePipe, PFactorPipe, PFactorcPipe, Queryset, RData, RicheditComponent, STATUS, SafeDeleteComponent, TabMemoryService, UploadStatus, booleanField, charField, computedField, dateField, datetimeField, decimalField, detailsField, emailField, floatField, foreignKeyField, humanizeBytes, integerField, isValue, manyToManyField, passwordField, primaryField, reverseForeignKeyField, slugify, strToNumber, textField };
|
|
5614
|
+
export { AuthInterceptor, AuthServiceBase, BanAdapter, BootstrapDataDisplayConfig, BreadcrumbComponent, ChoicePipe, Collection, CollectionMock, DATA_API_URL, DATA_AUTH_PARAMS, DATA_AUTH_SERVICE, DATA_AUTH_USER_SERVICE, DATA_DISPLAY_CONFIG, DATA_MAX_TRANSFERSTATE_TIME, DATA_MESSAGE_SOUNDS, DEFAULT_TIMEOUTS, DataBackend, DataMessageService, DataModel, DataUploaderService, DispeditComponent, FactorPipe, FactorcPipe, FkselectComponent, FlagsComponent, Jwt, Link, M2mselectComponent, Message, MessageZoneComponent, ModelList, ModelListAutocompleteFilter, ModelListAutocompleteMultiFilter, ModelListDateFilter, ModelListDatetimeFilter, ModelListDatetimerangeFilter, ModelListFieldHeaderComponent, ModelListFieldsSelectorComponent, ModelListFilters, ModelListFiltersComponent, ModelListFiltersSelectComponent, ModelListFlagsFilter, ModelListGeodistanceFilter, ModelListNumberFilter, ModelListNumberOperations, ModelListPaginatorComponent, ModelListSelectFilter, ModelListSelectMultiFilter, ModelListService, ModelListSorterComponent, ModelListTextFilter, ModelListTreeFilter, NavDriver, NgFileDropDirective, NgFileSelectDirective, NgxUploaderModule, PChoicePipe, PFactorPipe, PFactorcPipe, Queryset, RData, RicheditComponent, STATUS, SafeDeleteComponent, TabMemoryService, UpdateComponent, UpdateService, UploadStatus, booleanField, charField, computedField, dateField, datetimeField, decimalField, detailsField, emailField, floatField, foreignKeyField, humanizeBytes, integerField, isValue, manyToManyField, passwordField, primaryField, reverseForeignKeyField, slugify, strToNumber, textField };
|
|
5615
|
+
//# sourceMappingURL=solidev-data.mjs.map
|
|
5549
5616
|
//# sourceMappingURL=solidev-data.mjs.map
|