@dsivd/prestations-ng 14.5.16 → 14.5.17-beta1

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.
@@ -1,8 +1,10 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, combineLatest, interval, merge } from 'rxjs';
3
- import { filter, map, shareReplay, switchMap } from 'rxjs/operators';
2
+ import { BehaviorSubject, combineLatest, merge } from 'rxjs';
3
+ import { filter, map, shareReplay, switchMap, throttleTime } from 'rxjs/operators';
4
+ import { NavigationStart } from '@angular/router';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/common/http";
7
+ import * as i2 from "@angular/router";
6
8
  // Shared between prestations.
7
9
  const STORAGE_KEY = 'hidden-alerts';
8
10
  /**
@@ -33,18 +35,17 @@ const getPersistedDismissedAlertIds = () => {
33
35
  }
34
36
  };
35
37
  export class SupportAlertService {
36
- constructor(http) {
38
+ constructor(http, router) {
37
39
  this.http = http;
40
+ this.router = router;
38
41
  this.hiddenAlertIds = new BehaviorSubject(getPersistedDismissedAlertIds());
39
42
  this.refreshTrigger = new BehaviorSubject(true);
40
- this.refreshIntervalInSeconds = new BehaviorSubject(5 * 60);
41
43
  this.supportAlertUrl = new BehaviorSubject('');
42
- // This ensures that we load the alerts when the page loads and at every configured interval.
43
- const refreshInterval = this.refreshIntervalInSeconds.pipe(filter(valueInSeconds => !!valueInSeconds), switchMap(valueInSeconds => interval(valueInSeconds * 1000)));
44
- const refreshAlertsTriggerAndTimer = merge(this.refreshTrigger, refreshInterval);
44
+ const navigationTrigger = this.router.events.pipe(filter(e => e instanceof NavigationStart));
45
+ const refreshAlertsTriggerAndNavigation = merge(this.refreshTrigger, navigationTrigger).pipe(throttleTime(3 * 60 * 1000));
45
46
  this.allAlerts = combineLatest([
46
47
  this.supportAlertUrl,
47
- refreshAlertsTriggerAndTimer
48
+ refreshAlertsTriggerAndNavigation
48
49
  ]).pipe(
49
50
  // Only if an url is defined
50
51
  filter(([url]) => !!url),
@@ -101,16 +102,13 @@ export class SupportAlertService {
101
102
  getHasAtLeastOneBlockingAlert() {
102
103
  return this.hasAtLeastOneBlockingAlert;
103
104
  }
104
- setRefreshIntervalInSeconds(refreshIntervalsInSeconds) {
105
- this.refreshIntervalInSeconds.next(refreshIntervalsInSeconds);
106
- }
107
105
  }
108
- SupportAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
106
+ SupportAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertService, deps: [{ token: i1.HttpClient }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
109
107
  SupportAlertService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertService, providedIn: 'root' });
110
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertService, decorators: [{
111
109
  type: Injectable,
112
110
  args: [{
113
111
  providedIn: 'root'
114
112
  }]
115
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC1hbGVydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1zdXBwb3J0LWFsZXJ0L3N1cHBvcnQtYWxlcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFDSCxlQUFlLEVBQ2YsYUFBYSxFQUNiLFFBQVEsRUFDUixLQUFLLEVBR1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUVyRSw4QkFBOEI7QUFDOUIsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDO0FBRXBDOztHQUVHO0FBQ0gsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEdBQWEsRUFBUSxFQUFFO0lBQ3JELElBQUk7UUFDQSxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDMUQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNSLDJDQUEyQztLQUM5QztBQUNMLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSw2QkFBNkIsR0FBRyxHQUFhLEVBQUU7SUFDakQsSUFBSTtRQUNBLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7S0FDbkM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNSLCtEQUErRDtRQUMvRCxPQUFPLEVBQUUsQ0FBQztLQUNiO0FBQ0wsQ0FBQyxDQUFDO0FBS0Ys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bUJBQW1CLGNBRmhCLE1BQU07MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3VwcG9ydEFsZXJ0IH0gZnJvbSAnLi9zdXBwb3J0LWFsZXJ0Lm1vZGVsJztcbmltcG9ydCB7XG4gICAgQmVoYXZpb3JTdWJqZWN0LFxuICAgIGNvbWJpbmVMYXRlc3QsXG4gICAgaW50ZXJ2YWwsXG4gICAgbWVyZ2UsXG4gICAgT2JzZXJ2YWJsZSxcbiAgICBTdWJzY3JpcHRpb25cbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFNoYXJlZCBiZXR3ZWVuIHByZXN0YXRpb25zLlxuY29uc3QgU1RPUkFHRV9LRVkgPSAnaGlkZGVuLWFsZXJ0cyc7XG5cbi8qKlxuICogQHBhcmFtIGlkcyBhbGVydCBpZHMgdG8gYmUgZGlzbWlzc2VkXG4gKi9cbmNvbnN0IHBlcnNpc3REaXNtaXNzZWRBbGVydElkcyA9IChpZHM6IG51bWJlcltdKTogdm9pZCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KGlkcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gTm90aGluZyBpbiBjYXNlIHRoZSBsb2NhbCBzdG9yYWdlIGZhaWxzLlxuICAgIH1cbn07XG5cbi8qKlxuICogQHJldHVybnMgYXJyYXlcbiAqL1xuY29uc3QgZ2V0UGVyc2lzdGVkRGlzbWlzc2VkQWxlcnRJZHMgPSAoKTogbnVtYmVyW10gPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHN0b3JhZ2VWYWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKTtcbiAgICAgICAgaWYgKCFzdG9yYWdlVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHN0b3JhZ2VWYWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBJbiBjYXNlIHRoZSBzdG9yYWdlIGZhaWxzLCB3ZSBkb24ndCB3YW50IHRvIGltcGFjdCB0aGUgdXNlci5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3VwcG9ydEFsZXJ0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxBbGVydHM6IE9ic2VydmFibGU8U3VwcG9ydEFsZXJ0W10+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheWFibGVBbGVydHM6IE9ic2VydmFibGU8U3VwcG9ydEFsZXJ0W10+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFzQWxlcnRzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFzSGlkZGVuQWxlcnRzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFzQXRMZWFzdE9uZUJsb2NraW5nQWxlcnQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHJpdmF0ZSByZWFkb25seSBoaWRkZW5BbGVydElkcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyW10+KFxuICAgICAgICBnZXRQZXJzaXN0ZWREaXNtaXNzZWRBbGVydElkcygpXG4gICAgKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpZGRlbkFsZXJ0SWRzU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaFRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgcHJpdmF0ZSByZWZyZXNoSW50ZXJ2YWxJblNlY29uZHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNSAqIDYwKTtcblxuICAgIHByaXZhdGUgc3VwcG9ydEFsZXJ0VXJsID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICAgICAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCB3ZSBsb2FkIHRoZSBhbGVydHMgd2hlbiB0aGUgcGFnZSBsb2FkcyBhbmQgYXQgZXZlcnkgY29uZmlndXJlZCBpbnRlcnZhbC5cbiAgICAgICAgY29uc3QgcmVmcmVzaEludGVydmFsID0gdGhpcy5yZWZyZXNoSW50ZXJ2YWxJblNlY29uZHMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcih2YWx1ZUluU2Vjb25kcyA9PiAhIXZhbHVlSW5TZWNvbmRzKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCh2YWx1ZUluU2Vjb25kcyA9PiBpbnRlcnZhbCh2YWx1ZUluU2Vjb25kcyAqIDEwMDApKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJlZnJlc2hBbGVydHNUcmlnZ2VyQW5kVGltZXIgPSBtZXJnZShcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFRyaWdnZXIsXG4gICAgICAgICAgICByZWZyZXNoSW50ZXJ2YWxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmFsbEFsZXJ0cyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5zdXBwb3J0QWxlcnRVcmwsXG4gICAgICAgICAgICByZWZyZXNoQWxlcnRzVHJpZ2dlckFuZFRpbWVyXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBPbmx5IGlmIGFuIHVybCBpcyBkZWZpbmVkXG4gICAgICAgICAgICBmaWx0ZXIoKFt1cmxdKSA9PiAhIXVybCksXG4gICAgICAgICAgICAvLyBMb2FkIHRoZSBhbGVydHMgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICAgICAgc3dpdGNoTWFwKChbdXJsXSkgPT4gdGhpcy5odHRwLmdldDxTdXBwb3J0QWxlcnRbXT4odXJsKSksXG4gICAgICAgICAgICBtYXAoc3VwcG9ydEFsZXJ0cyA9PiAoISFzdXBwb3J0QWxlcnRzID8gc3VwcG9ydEFsZXJ0cyA6IFtdKSksXG4gICAgICAgICAgICAvLyBFbnN1cmVzIHRoYXQgb2JzZXJ2YWJsZXMgdGhhdCBkZXBlbmQgb24gdGhpcyBvbmUgZG9uJ3QgcmUtdHJpZ2dlciBhbiBodHRwIGNhbGwuXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaGFzQWxlcnRzID0gdGhpcy5hbGxBbGVydHMucGlwZShtYXAoYWxlcnRzID0+ICEhYWxlcnRzLmxlbmd0aCkpO1xuXG4gICAgICAgIHRoaXMuaGFzQXRMZWFzdE9uZUJsb2NraW5nQWxlcnQgPSB0aGlzLmFsbEFsZXJ0cy5waXBlKFxuICAgICAgICAgICAgbWFwKGFsZXJ0cyA9PiBhbGVydHMuc29tZShhbGVydCA9PiBhbGVydC5ibG9ja2luZykpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5YWJsZUFsZXJ0cyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5hbGxBbGVydHMsXG4gICAgICAgICAgICB0aGlzLmhpZGRlbkFsZXJ0SWRzXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBGaWx0ZXIgdGhlIGFsZXJ0cyB0aGF0IGFyZSBoaWRkZW4gYnkgdGhlIHVzZXIsIHBlciBJZC5cbiAgICAgICAgICAgIG1hcCgoW2FsZXJ0cywgaGlkZGVuQWxlcnRzSWRdKSA9PlxuICAgICAgICAgICAgICAgIC8vIEFsd2F5cyBkaXNwbGF5IHRoZSBibG9ja2luZyBhbGVydHMsIGluIGNhc2UgdGhlIGFsZXJ0IGlzIGhpZGRlbiBidXQgZWRpdGVkLlxuICAgICAgICAgICAgICAgIGFsZXJ0cy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGVydC5ibG9ja2luZyB8fCAhaGlkZGVuQWxlcnRzSWQuaW5jbHVkZXMoYWxlcnQuaWQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaGFzSGlkZGVuQWxlcnRzID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmFsbEFsZXJ0cyxcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWFibGVBbGVydHNcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAoW2FsbEFsZXJ0cywgZGlzcGxheWFibGVBbGVydHNdKSA9PlxuICAgICAgICAgICAgICAgICAgICBhbGxBbGVydHMubGVuZ3RoICE9PSBkaXNwbGF5YWJsZUFsZXJ0cy5sZW5ndGhcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBQZXJzaXN0IHRoZSBpZHMgdGhhdCBhcmUgZGlzbWlzc2VkLlxuICAgICAgICB0aGlzLmhpZGRlbkFsZXJ0SWRzU3Vic2NyaXB0aW9ucyA9IHRoaXMuaGlkZGVuQWxlcnRJZHMuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcGVyc2lzdERpc21pc3NlZEFsZXJ0SWRzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZGVuQWxlcnRJZHNTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc2V0U3VwcG9ydEFsZXJ0VXJsKHN1cHBvcnRBbGVydFVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3VwcG9ydEFsZXJ0VXJsLm5leHQoc3VwcG9ydEFsZXJ0VXJsKTtcbiAgICB9XG5cbiAgICBoaWRlQWxlcnQoYWxlcnQ6IFN1cHBvcnRBbGVydCk6IHZvaWQge1xuICAgICAgICBpZiAoIWFsZXJ0LmJsb2NraW5nKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGRlbkFsZXJ0SWRzLm5leHQoW1xuICAgICAgICAgICAgICAgIGFsZXJ0LmlkLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuaGlkZGVuQWxlcnRJZHMuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXN0b3JlQWxsQWxlcnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGRlbkFsZXJ0SWRzLm5leHQoW10pO1xuICAgIH1cblxuICAgIHJlZnJlc2hBbGVydHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVmcmVzaFRyaWdnZXIubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICBnZXREaXNwbGF5YWJsZUFsZXJ0cygpOiBPYnNlcnZhYmxlPFN1cHBvcnRBbGVydFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlhYmxlQWxlcnRzO1xuICAgIH1cblxuICAgIGdldEhhc0FsZXJ0cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQWxlcnRzO1xuICAgIH1cblxuICAgIGdldEhhc0hpZGRlbkFsZXJ0cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzSGlkZGVuQWxlcnRzO1xuICAgIH1cblxuICAgIGdldEhhc0F0TGVhc3RPbmVCbG9ja2luZ0FsZXJ0KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNBdExlYXN0T25lQmxvY2tpbmdBbGVydDtcbiAgICB9XG5cbiAgICBzZXRSZWZyZXNoSW50ZXJ2YWxJblNlY29uZHMocmVmcmVzaEludGVydmFsc0luU2Vjb25kczogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVmcmVzaEludGVydmFsSW5TZWNvbmRzLm5leHQocmVmcmVzaEludGVydmFsc0luU2Vjb25kcyk7XG4gICAgfVxufVxuIl19
113
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Router }]; } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC1hbGVydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1zdXBwb3J0LWFsZXJ0L3N1cHBvcnQtYWxlcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFDSCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEtBQUssRUFHUixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDSCxNQUFNLEVBQ04sR0FBRyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBRTFELDhCQUE4QjtBQUM5QixNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLHdCQUF3QixHQUFHLENBQUMsR0FBYSxFQUFRLEVBQUU7SUFDckQsSUFBSTtRQUNBLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUMxRDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1IsMkNBQTJDO0tBQzlDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLDZCQUE2QixHQUFHLEdBQWEsRUFBRTtJQUNqRCxJQUFJO1FBQ0EsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2YsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNuQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1IsK0RBQStEO1FB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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3VwcG9ydEFsZXJ0IH0gZnJvbSAnLi9zdXBwb3J0LWFsZXJ0Lm1vZGVsJztcbmltcG9ydCB7XG4gICAgQmVoYXZpb3JTdWJqZWN0LFxuICAgIGNvbWJpbmVMYXRlc3QsXG4gICAgbWVyZ2UsXG4gICAgT2JzZXJ2YWJsZSxcbiAgICBTdWJzY3JpcHRpb25cbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgICBmaWx0ZXIsXG4gICAgbWFwLFxuICAgIHNoYXJlUmVwbGF5LFxuICAgIHN3aXRjaE1hcCxcbiAgICB0aHJvdHRsZVRpbWVcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG4vLyBTaGFyZWQgYmV0d2VlbiBwcmVzdGF0aW9ucy5cbmNvbnN0IFNUT1JBR0VfS0VZID0gJ2hpZGRlbi1hbGVydHMnO1xuXG4vKipcbiAqIEBwYXJhbSBpZHMgYWxlcnQgaWRzIHRvIGJlIGRpc21pc3NlZFxuICovXG5jb25zdCBwZXJzaXN0RGlzbWlzc2VkQWxlcnRJZHMgPSAoaWRzOiBudW1iZXJbXSk6IHZvaWQgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShpZHMpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIE5vdGhpbmcgaW4gY2FzZSB0aGUgbG9jYWwgc3RvcmFnZSBmYWlscy5cbiAgICB9XG59O1xuXG4vKipcbiAqIEByZXR1cm5zIGFycmF5XG4gKi9cbmNvbnN0IGdldFBlcnNpc3RlZERpc21pc3NlZEFsZXJ0SWRzID0gKCk6IG51bWJlcltdID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBzdG9yYWdlVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSk7XG4gICAgICAgIGlmICghc3RvcmFnZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdG9yYWdlVmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgc3RvcmFnZSBmYWlscywgd2UgZG9uJ3Qgd2FudCB0byBpbXBhY3QgdGhlIHVzZXIuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN1cHBvcnRBbGVydFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsQWxlcnRzOiBPYnNlcnZhYmxlPFN1cHBvcnRBbGVydFtdPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXlhYmxlQWxlcnRzOiBPYnNlcnZhYmxlPFN1cHBvcnRBbGVydFtdPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhc0FsZXJ0czogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhc0hpZGRlbkFsZXJ0czogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhc0F0TGVhc3RPbmVCbG9ja2luZ0FsZXJ0OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGlkZGVuQWxlcnRJZHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcltdPihcbiAgICAgICAgZ2V0UGVyc2lzdGVkRGlzbWlzc2VkQWxlcnRJZHMoKVxuICAgICk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBoaWRkZW5BbGVydElkc1N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hUcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAgIHByaXZhdGUgc3VwcG9ydEFsZXJ0VXJsID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgICAgICBjb25zdCBuYXZpZ2F0aW9uVHJpZ2dlciA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydClcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCByZWZyZXNoQWxlcnRzVHJpZ2dlckFuZE5hdmlnYXRpb24gPSBtZXJnZShcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFRyaWdnZXIsXG4gICAgICAgICAgICBuYXZpZ2F0aW9uVHJpZ2dlclxuICAgICAgICApLnBpcGUodGhyb3R0bGVUaW1lKDMgKiA2MCAqIDEwMDApKTtcblxuICAgICAgICB0aGlzLmFsbEFsZXJ0cyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5zdXBwb3J0QWxlcnRVcmwsXG4gICAgICAgICAgICByZWZyZXNoQWxlcnRzVHJpZ2dlckFuZE5hdmlnYXRpb25cbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIE9ubHkgaWYgYW4gdXJsIGlzIGRlZmluZWRcbiAgICAgICAgICAgIGZpbHRlcigoW3VybF0pID0+ICEhdXJsKSxcbiAgICAgICAgICAgIC8vIExvYWQgdGhlIGFsZXJ0cyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFt1cmxdKSA9PiB0aGlzLmh0dHAuZ2V0PFN1cHBvcnRBbGVydFtdPih1cmwpKSxcbiAgICAgICAgICAgIG1hcChzdXBwb3J0QWxlcnRzID0+ICghIXN1cHBvcnRBbGVydHMgPyBzdXBwb3J0QWxlcnRzIDogW10pKSxcbiAgICAgICAgICAgIC8vIEVuc3VyZXMgdGhhdCBvYnNlcnZhYmxlcyB0aGF0IGRlcGVuZCBvbiB0aGlzIG9uZSBkb24ndCByZS10cmlnZ2VyIGFuIGh0dHAgY2FsbC5cbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5oYXNBbGVydHMgPSB0aGlzLmFsbEFsZXJ0cy5waXBlKG1hcChhbGVydHMgPT4gISFhbGVydHMubGVuZ3RoKSk7XG5cbiAgICAgICAgdGhpcy5oYXNBdExlYXN0T25lQmxvY2tpbmdBbGVydCA9IHRoaXMuYWxsQWxlcnRzLnBpcGUoXG4gICAgICAgICAgICBtYXAoYWxlcnRzID0+IGFsZXJ0cy5zb21lKGFsZXJ0ID0+IGFsZXJ0LmJsb2NraW5nKSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlhYmxlQWxlcnRzID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmFsbEFsZXJ0cyxcbiAgICAgICAgICAgIHRoaXMuaGlkZGVuQWxlcnRJZHNcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIEZpbHRlciB0aGUgYWxlcnRzIHRoYXQgYXJlIGhpZGRlbiBieSB0aGUgdXNlciwgcGVyIElkLlxuICAgICAgICAgICAgbWFwKChbYWxlcnRzLCBoaWRkZW5BbGVydHNJZF0pID0+XG4gICAgICAgICAgICAgICAgLy8gQWx3YXlzIGRpc3BsYXkgdGhlIGJsb2NraW5nIGFsZXJ0cywgaW4gY2FzZSB0aGUgYWxlcnQgaXMgaGlkZGVuIGJ1dCBlZGl0ZWQuXG4gICAgICAgICAgICAgICAgYWxlcnRzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0LmJsb2NraW5nIHx8ICFoaWRkZW5BbGVydHNJZC5pbmNsdWRlcyhhbGVydC5pZClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5oYXNIaWRkZW5BbGVydHMgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuYWxsQWxlcnRzLFxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5YWJsZUFsZXJ0c1xuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIChbYWxsQWxlcnRzLCBkaXNwbGF5YWJsZUFsZXJ0c10pID0+XG4gICAgICAgICAgICAgICAgICAgIGFsbEFsZXJ0cy5sZW5ndGggIT09IGRpc3BsYXlhYmxlQWxlcnRzLmxlbmd0aFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFBlcnNpc3QgdGhlIGlkcyB0aGF0IGFyZSBkaXNtaXNzZWQuXG4gICAgICAgIHRoaXMuaGlkZGVuQWxlcnRJZHNTdWJzY3JpcHRpb25zID0gdGhpcy5oaWRkZW5BbGVydElkcy5zdWJzY3JpYmUoXG4gICAgICAgICAgICBwZXJzaXN0RGlzbWlzc2VkQWxlcnRJZHNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRkZW5BbGVydElkc1N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBzZXRTdXBwb3J0QWxlcnRVcmwoc3VwcG9ydEFsZXJ0VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdXBwb3J0QWxlcnRVcmwubmV4dChzdXBwb3J0QWxlcnRVcmwpO1xuICAgIH1cblxuICAgIGhpZGVBbGVydChhbGVydDogU3VwcG9ydEFsZXJ0KTogdm9pZCB7XG4gICAgICAgIGlmICghYWxlcnQuYmxvY2tpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZGVuQWxlcnRJZHMubmV4dChbXG4gICAgICAgICAgICAgICAgYWxlcnQuaWQsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5oaWRkZW5BbGVydElkcy5nZXRWYWx1ZSgpXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc3RvcmVBbGxBbGVydHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZGVuQWxlcnRJZHMubmV4dChbXSk7XG4gICAgfVxuXG4gICAgcmVmcmVzaEFsZXJ0cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoVHJpZ2dlci5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIGdldERpc3BsYXlhYmxlQWxlcnRzKCk6IE9ic2VydmFibGU8U3VwcG9ydEFsZXJ0W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheWFibGVBbGVydHM7XG4gICAgfVxuXG4gICAgZ2V0SGFzQWxlcnRzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNBbGVydHM7XG4gICAgfVxuXG4gICAgZ2V0SGFzSGlkZGVuQWxlcnRzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNIaWRkZW5BbGVydHM7XG4gICAgfVxuXG4gICAgZ2V0SGFzQXRMZWFzdE9uZUJsb2NraW5nQWxlcnQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0F0TGVhc3RPbmVCbG9ja2luZ0FsZXJ0O1xuICAgIH1cbn1cbiJdfQ==
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { Injectable, NgModule, EventEmitter, Directive, Input, ViewChildren, ViewChild, Output, HostBinding, Pipe, Component, ContentChildren, forwardRef, HostListener, TemplateRef, ContentChild } from '@angular/core';
3
3
  import * as i1 from '@angular/common/http';
4
4
  import { HttpResponse, HttpErrorResponse, HTTP_INTERCEPTORS, HttpClientModule, HttpParams, HttpClient } from '@angular/common/http';
5
- import { Subject, throwError, BehaviorSubject, combineLatest, of, EMPTY, interval, merge } from 'rxjs';
6
- import { map, catchError, filter, shareReplay, mergeMap, tap, switchMap, debounceTime, throttleTime, share, first, finalize, distinctUntilChanged } from 'rxjs/operators';
5
+ import { Subject, throwError, BehaviorSubject, combineLatest, of, EMPTY, merge } from 'rxjs';
6
+ import { map, catchError, filter, shareReplay, mergeMap, tap, switchMap, first, debounceTime, throttleTime, share, finalize, distinctUntilChanged } from 'rxjs/operators';
7
7
  import * as i1$1 from '@angular/router';
8
- import { RouterModule, ActivatedRoute, NavigationEnd } from '@angular/router';
8
+ import { RouterModule, ActivatedRoute, NavigationStart, NavigationEnd } from '@angular/router';
9
9
  import * as i3 from '@angular/common';
10
10
  import { AsyncPipe, CommonModule, registerLocaleData, DatePipe } from '@angular/common';
11
11
  import * as i4 from '@angular/forms';
@@ -461,42 +461,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
461
461
 
462
462
  const SESSION_INFO_API_URL = 'api/sessionInfo/data';
463
463
  class SessionInfo {
464
- constructor(http) {
464
+ constructor(http, growlService, ngZone) {
465
465
  this.http = http;
466
+ this.growlService = growlService;
467
+ this.ngZone = ngZone;
468
+ this.neverConnected_ = new BehaviorSubject(undefined);
466
469
  }
467
470
  get data() {
468
- if (this.neverConnected_) {
469
- return of(null);
470
- }
471
- else {
472
- if (!this.pulling_) {
473
- this.pulling_ = this.http
474
- .get(SESSION_INFO_API_URL)
475
- .pipe(map((r) => {
476
- if (r) {
477
- return (this.sessionData = r);
478
- }
479
- return null;
480
- }), shareReplay(1));
471
+ return this.neverConnected_.asObservable().pipe(tap(() => {
472
+ if (this.timeoutLogError) {
473
+ clearTimeout(this.timeoutLogError);
474
+ }
475
+ }), switchMap(neverConnected => {
476
+ if (neverConnected !== false) {
477
+ if (neverConnected === undefined) {
478
+ this.logErrorNeverConnectedIsNotSet();
479
+ }
480
+ if (!this.onMicroTaskEmptyPulling_) {
481
+ // Need 'onMicrotaskEmpty' to avoid 'ExpressionChangedAfterItHasBeenCheckedError'
482
+ this.onMicroTaskEmptyPulling_ = this.ngZone.onMicrotaskEmpty.pipe(first(), map(() => null), shareReplay(1));
483
+ }
484
+ return this.onMicroTaskEmptyPulling_;
481
485
  }
482
- return this.pulling_;
483
- }
486
+ else {
487
+ if (!this.pulling_) {
488
+ this.pulling_ = this.http
489
+ .get(SESSION_INFO_API_URL)
490
+ .pipe(catchError(() => {
491
+ const message = 'Impossible de récupérer les informations de la personne connectée';
492
+ this.growlService.addWithType(GrowlType.DANGER, message);
493
+ return of(null);
494
+ }), map((r) => {
495
+ if (r) {
496
+ return (this.sessionData = r);
497
+ }
498
+ return null;
499
+ }), shareReplay(1));
500
+ }
501
+ return this.pulling_;
502
+ }
503
+ }));
484
504
  }
485
505
  set neverConnected(neverConnected) {
486
- this.neverConnected_ = neverConnected;
506
+ this.neverConnected_.next(neverConnected);
487
507
  }
488
508
  get neverConnected() {
489
- return this.neverConnected_;
509
+ return this.neverConnected_.getValue();
510
+ }
511
+ logErrorNeverConnectedIsNotSet() {
512
+ // Use of setTimeout to avoid unnecessary error log
513
+ this.timeoutLogError = setTimeout(() => {
514
+ console.error("Error: 'neverConnected' is not set. " +
515
+ 'Find more at https://dsi-vd.github.io/prestations-ng/CHANGELOG.md#_14_5_16_');
516
+ }, 2000);
490
517
  }
491
518
  }
492
- SessionInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SessionInfo, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
519
+ SessionInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SessionInfo, deps: [{ token: i1.HttpClient }, { token: GrowlBrokerService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
493
520
  SessionInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SessionInfo, providedIn: 'root' });
494
521
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SessionInfo, decorators: [{
495
522
  type: Injectable,
496
523
  args: [{
497
524
  providedIn: 'root'
498
525
  }]
499
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
526
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: GrowlBrokerService }, { type: i0.NgZone }]; } });
500
527
 
501
528
  class GesdemHandlerService {
502
529
  constructor(http, growlService, validationHandlerService, router, route, errorHandlerService, sessionInfo) {
@@ -2660,11 +2687,13 @@ class AbstractPageComponent {
2660
2687
  else {
2661
2688
  this._validationHandlerService.shouldDisplayErrors(true);
2662
2689
  }
2663
- this.sendForFormConcurrentSafe.subscribe(() => this.onFormSent(goToNextPage));
2690
+ this.sendForFormConcurrentSafe
2691
+ .pipe(first())
2692
+ .subscribe(() => this.onFormSent(goToNextPage));
2664
2693
  }
2665
2694
  transmit() {
2666
2695
  this._validationHandlerService.shouldDisplayErrors(true);
2667
- this.transmitConcurrentSafe.subscribe(() => {
2696
+ this.transmitConcurrentSafe.pipe(first()).subscribe(() => {
2668
2697
  if (!this._gesdemService.lastResponse.errors.length) {
2669
2698
  this._gesdemEventService.formTransmittedSubject.next(this._gesdemService.lastResponse);
2670
2699
  this._navigation.next();
@@ -2783,18 +2812,17 @@ const getPersistedDismissedAlertIds = () => {
2783
2812
  }
2784
2813
  };
2785
2814
  class SupportAlertService {
2786
- constructor(http) {
2815
+ constructor(http, router) {
2787
2816
  this.http = http;
2817
+ this.router = router;
2788
2818
  this.hiddenAlertIds = new BehaviorSubject(getPersistedDismissedAlertIds());
2789
2819
  this.refreshTrigger = new BehaviorSubject(true);
2790
- this.refreshIntervalInSeconds = new BehaviorSubject(5 * 60);
2791
2820
  this.supportAlertUrl = new BehaviorSubject('');
2792
- // This ensures that we load the alerts when the page loads and at every configured interval.
2793
- const refreshInterval = this.refreshIntervalInSeconds.pipe(filter(valueInSeconds => !!valueInSeconds), switchMap(valueInSeconds => interval(valueInSeconds * 1000)));
2794
- const refreshAlertsTriggerAndTimer = merge(this.refreshTrigger, refreshInterval);
2821
+ const navigationTrigger = this.router.events.pipe(filter(e => e instanceof NavigationStart));
2822
+ const refreshAlertsTriggerAndNavigation = merge(this.refreshTrigger, navigationTrigger).pipe(throttleTime(3 * 60 * 1000));
2795
2823
  this.allAlerts = combineLatest([
2796
2824
  this.supportAlertUrl,
2797
- refreshAlertsTriggerAndTimer
2825
+ refreshAlertsTriggerAndNavigation
2798
2826
  ]).pipe(
2799
2827
  // Only if an url is defined
2800
2828
  filter(([url]) => !!url),
@@ -2851,18 +2879,15 @@ class SupportAlertService {
2851
2879
  getHasAtLeastOneBlockingAlert() {
2852
2880
  return this.hasAtLeastOneBlockingAlert;
2853
2881
  }
2854
- setRefreshIntervalInSeconds(refreshIntervalsInSeconds) {
2855
- this.refreshIntervalInSeconds.next(refreshIntervalsInSeconds);
2856
- }
2857
2882
  }
2858
- SupportAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2883
+ SupportAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertService, deps: [{ token: i1.HttpClient }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
2859
2884
  SupportAlertService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertService, providedIn: 'root' });
2860
2885
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertService, decorators: [{
2861
2886
  type: Injectable,
2862
2887
  args: [{
2863
2888
  providedIn: 'root'
2864
2889
  }]
2865
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
2890
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i1$1.Router }]; } });
2866
2891
 
2867
2892
  class FoehnDisplayAddressComponent {
2868
2893
  /**
@@ -4534,7 +4559,6 @@ class SupportAlertContainerComponent {
4534
4559
  this.alertsToDisplay = this.supportAlertService.getDisplayableAlerts();
4535
4560
  this.hasAlerts = this.supportAlertService.getHasAlerts();
4536
4561
  this.hasHiddenAlerts = this.supportAlertService.getHasHiddenAlerts();
4537
- this.supportAlertService.setRefreshIntervalInSeconds(this.refreshIntervalsInSeconds);
4538
4562
  }
4539
4563
  restoreAllAlerts() {
4540
4564
  this.supportAlertService.restoreAllAlerts();
@@ -4560,7 +4584,7 @@ class SupportAlertContainerComponent {
4560
4584
  }
4561
4585
  }
4562
4586
  SupportAlertContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertContainerComponent, deps: [{ token: SupportAlertService }], target: i0.ɵɵFactoryTarget.Component });
4563
- SupportAlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SupportAlertContainerComponent, selector: "sdk-support-alert-container", inputs: { etapeId: "etapeId", supportAlertUrl: "supportAlertUrl", refreshIntervalsInSeconds: "refreshIntervalsInSeconds" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex flex-column container mt-2\" *ngIf=\"hasAlerts | async\">\n <h2 class=\"sr-only\">Messages de support</h2>\n <div class=\"mb-2 mt-2\" *ngIf=\"hasHiddenAlerts | async\">\n <button class=\"btn btn-link pr-0 pl-0\" (click)=\"restoreAllAlerts()\">\n Afficher tous les messages\n </button>\n </div>\n <sdk-support-alert\n *ngFor=\"let alert of alertsToDisplay | async\"\n [alert]=\"alert\"\n ></sdk-support-alert>\n</div>\n", components: [{ type: SupportAlertComponent, selector: "sdk-support-alert", inputs: ["alert"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe } });
4587
+ SupportAlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SupportAlertContainerComponent, selector: "sdk-support-alert-container", inputs: { etapeId: "etapeId", supportAlertUrl: "supportAlertUrl" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex flex-column container mt-2\" *ngIf=\"hasAlerts | async\">\n <h2 class=\"sr-only\">Messages de support</h2>\n <div class=\"mb-2 mt-2\" *ngIf=\"hasHiddenAlerts | async\">\n <button class=\"btn btn-link pr-0 pl-0\" (click)=\"restoreAllAlerts()\">\n Afficher tous les messages\n </button>\n </div>\n <sdk-support-alert\n *ngFor=\"let alert of alertsToDisplay | async\"\n [alert]=\"alert\"\n ></sdk-support-alert>\n</div>\n", components: [{ type: SupportAlertComponent, selector: "sdk-support-alert", inputs: ["alert"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe } });
4564
4588
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SupportAlertContainerComponent, decorators: [{
4565
4589
  type: Component,
4566
4590
  args: [{
@@ -4572,8 +4596,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
4572
4596
  type: Input
4573
4597
  }], supportAlertUrl: [{
4574
4598
  type: Input
4575
- }], refreshIntervalsInSeconds: [{
4576
- type: Input
4577
4599
  }] } });
4578
4600
 
4579
4601
  class FoehnUserConnectedAsComponent {
@@ -4929,6 +4951,7 @@ class FoehnPageComponent {
4929
4951
  this.sessionInfo = sessionInfo;
4930
4952
  this.foehnPageModalService = foehnPageModalService;
4931
4953
  this.sdkDictionaryService = sdkDictionaryService;
4954
+ this.neverConnected = false;
4932
4955
  this.supportAlertEnabled = true;
4933
4956
  this.userConnectedAsDisplayed = true;
4934
4957
  this.confirmLeavingAlert = {
@@ -5060,7 +5083,7 @@ class FoehnPageComponent {
5060
5083
  }
5061
5084
  }
5062
5085
  FoehnPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnPageComponent, deps: [{ token: i1$3.Title }, { token: FoehnPageService }, { token: SupportAlertService }, { token: FoehnNavigationService }, { token: ApplicationInfoService }, { token: GesdemEventService }, { token: BreadcrumbEventService }, { token: i1$1.Router }, { token: SessionInfo }, { token: FoehnPageModalService }, { token: SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
5063
- FoehnPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnPageComponent, selector: "foehn-page", inputs: { appTitle: "appTitle", footerLinks: "footerLinks", neverConnected: "neverConnected", supportAlertEnabled: "supportAlertEnabled", supportAlertUrl: "supportAlertUrl", supportAlertRefreshIntervalsInSeconds: "supportAlertRefreshIntervalsInSeconds", etapeId: "etapeId", userConnectedAsDisplayed: "userConnectedAsDisplayed", confirmLeavingAlert: "confirmLeavingAlert", showDefaultContactFooterLink: "showDefaultContactFooterLink", showDefaultGuideFooterLink: "showDefaultGuideFooterLink", showDefaultTermOfUseLink: "showDefaultTermOfUseLink", showDefaultSecurityBestPracticeLink: "showDefaultSecurityBestPracticeLink" }, usesOnChanges: true, ngImport: i0, template: "<foehn-header\n id=\"foehn_header\"\n [title]=\"appTitle\"\n [neverConnected]=\"neverConnected\"\n></foehn-header>\n<foehn-growl id=\"foehn_growl\"></foehn-growl>\n<div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <foehn-breadcrumb\n [neverConnected]=\"neverConnected\"\n [confirmLeavingAlert]=\"confirmLeavingAlert\"\n ></foehn-breadcrumb>\n </div>\n</div>\n<main id=\"main\">\n <div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <!-- Fix annoying flickering when the page loads -->\n <div class=\"h1 mt-0\" *ngIf=\"!pageTitle\">&nbsp;</div>\n <h1\n [tabIndex]=\"-1\"\n class=\"mt-0\"\n id=\"page-title\"\n *ngIf=\"!!pageTitle\"\n [innerHTML]=\"pageTitle\"\n ></h1>\n </div>\n </div>\n\n <section\n *ngIf=\"!isBrowserSupported\"\n class=\"container alert alert-danger\"\n id=\"browser_not_supported_block\"\n role=\"alert\"\n >\n <p class=\"alert-heading\">\n <strong>\n Cette prestation n\u2019est pas compatible avec votre navigateur.\n </strong>\n </p>\n <p class=\"mb-0\">\n Nous vous invitons \u00E0 utiliser une version r\u00E9cente de\n <ng-container *ngIf=\"!isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Edge'\"\n href=\"https://www.microsoft.com/fr-ch/windows/microsoft-edge\"\n target=\"_blank\"\n >\n Edge\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <ng-container *ngIf=\"isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Safari'\"\n href=\"https://support.apple.com/downloads/safari\"\n target=\"_blank\"\n >\n Safari\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <a\n [title]=\"browserLinkTitlePrefix + ' Firefox'\"\n href=\"https://www.mozilla.org/fr/firefox/\"\n target=\"_blank\"\n >\n Firefox\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ou\n <a\n [title]=\"browserLinkTitlePrefix + ' Chrome'\"\n href=\"https://www.google.com/intl/fr/chrome/\"\n target=\"_blank\"\n >\n Chrome\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n .\n </p>\n <div class=\"row mt-3\">\n <div class=\"col-md-12\">\n <button\n id=\"browser_not_supported_bypass\"\n class=\"float-right btn btn-danger\"\n *ngIf=\"!browserNotSupportedBypass\"\n (click)=\"browserNotSupportedBypass = true\"\n >\n Continuer avec ce navigateur\n </button>\n </div>\n </div>\n </section>\n\n <sdk-support-alert-container\n *ngIf=\"supportAlertEnabled\"\n [etapeId]=\"etapeId\"\n [supportAlertUrl]=\"supportAlertUrl\"\n [refreshIntervalsInSeconds]=\"supportAlertRefreshIntervalsInSeconds\"\n ></sdk-support-alert-container>\n <ng-container\n *ngIf=\"\n !(hasBlockingSupportAlert | async) &&\n (isBrowserSupported || browserNotSupportedBypass)\n \"\n >\n <div class=\"container mt-5\" id=\"page_content\">\n <foehn-user-connected-as\n *ngIf=\"displayUserCategory | async\"\n ></foehn-user-connected-as>\n <ng-container\n *ngIf=\"displayLoginMessages | async as displayLoginMessagesData\"\n >\n <div\n *ngIf=\"displayLoginMessagesData.displayShouldLoginMessage\"\n class=\"alert alert-info\"\n id=\"displayLoginMessage\"\n >\n <p\n [innerHTML]=\"\n getFullLoginMessage(\n displayLoginMessagesData.decisionElectroniqueAvailable\n ) | async\n \"\n ></p>\n <div class=\"d-flex justify-content-start mr-2 mb-2 mt-2\">\n <a\n class=\"btn btn-primary\"\n [href]=\"getFullLoginUrl() | async\"\n >\n {{ 'use-login.button.text' | fromDictionary }}\n </a>\n </div>\n </div>\n </ng-container>\n </div>\n <ng-content></ng-content>\n </ng-container>\n</main>\n<foehn-footer\n id=\"foehn_footer\"\n [links]=\"footerLinks\"\n [showDefaultContactLink]=\"showDefaultContactFooterLink\"\n [showDefaultGuideLink]=\"showDefaultGuideFooterLink\"\n [showDefaultTermOfUseLink]=\"showDefaultTermOfUseLink\"\n [showDefaultSecurityBestPracticeLink]=\"showDefaultSecurityBestPracticeLink\"\n></foehn-footer>\n<foehn-page-modal></foehn-page-modal>\n<foehn-confirm-modal></foehn-confirm-modal>\n", components: [{ type: FoehnHeaderComponent, selector: "foehn-header", inputs: ["userInfo", "title", "neverConnected"] }, { type: FoehnGrowlComponent, selector: "foehn-growl" }, { type: FoehnBreadcrumbComponent, selector: "foehn-breadcrumb", inputs: ["breadcrumbItems", "currentNav", "neverConnected", "confirmLeavingAlert"] }, { type: FoehnIconExternalLinkAltComponent, selector: "foehn-icon-external-link-alt" }, { type: SupportAlertContainerComponent, selector: "sdk-support-alert-container", inputs: ["etapeId", "supportAlertUrl", "refreshIntervalsInSeconds"] }, { type: FoehnUserConnectedAsComponent, selector: "foehn-user-connected-as" }, { type: FoehnFooterComponent, selector: "foehn-footer", inputs: ["links", "showDefaultContactLink", "showDefaultGuideLink", "showDefaultTermOfUseLink", "showDefaultSecurityBestPracticeLink"] }, { type: FoehnPageModalComponent, selector: "foehn-page-modal" }, { type: FoehnConfirmModalComponent, selector: "foehn-confirm-modal" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe, "fromDictionary": SdkDictionaryPipe } });
5086
+ FoehnPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnPageComponent, selector: "foehn-page", inputs: { appTitle: "appTitle", footerLinks: "footerLinks", neverConnected: "neverConnected", supportAlertEnabled: "supportAlertEnabled", supportAlertUrl: "supportAlertUrl", etapeId: "etapeId", userConnectedAsDisplayed: "userConnectedAsDisplayed", confirmLeavingAlert: "confirmLeavingAlert", showDefaultContactFooterLink: "showDefaultContactFooterLink", showDefaultGuideFooterLink: "showDefaultGuideFooterLink", showDefaultTermOfUseLink: "showDefaultTermOfUseLink", showDefaultSecurityBestPracticeLink: "showDefaultSecurityBestPracticeLink" }, usesOnChanges: true, ngImport: i0, template: "<foehn-header\n id=\"foehn_header\"\n [title]=\"appTitle\"\n [neverConnected]=\"neverConnected\"\n></foehn-header>\n<foehn-growl id=\"foehn_growl\"></foehn-growl>\n<div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <foehn-breadcrumb\n [neverConnected]=\"neverConnected\"\n [confirmLeavingAlert]=\"confirmLeavingAlert\"\n ></foehn-breadcrumb>\n </div>\n</div>\n<main id=\"main\">\n <div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <!-- Fix annoying flickering when the page loads -->\n <div class=\"h1 mt-0\" *ngIf=\"!pageTitle\">&nbsp;</div>\n <h1\n [tabIndex]=\"-1\"\n class=\"mt-0\"\n id=\"page-title\"\n *ngIf=\"!!pageTitle\"\n [innerHTML]=\"pageTitle\"\n ></h1>\n </div>\n </div>\n\n <section\n *ngIf=\"!isBrowserSupported\"\n class=\"container alert alert-danger\"\n id=\"browser_not_supported_block\"\n role=\"alert\"\n >\n <p class=\"alert-heading\">\n <strong>\n Cette prestation n\u2019est pas compatible avec votre navigateur.\n </strong>\n </p>\n <p class=\"mb-0\">\n Nous vous invitons \u00E0 utiliser une version r\u00E9cente de\n <ng-container *ngIf=\"!isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Edge'\"\n href=\"https://www.microsoft.com/fr-ch/windows/microsoft-edge\"\n target=\"_blank\"\n >\n Edge\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <ng-container *ngIf=\"isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Safari'\"\n href=\"https://support.apple.com/downloads/safari\"\n target=\"_blank\"\n >\n Safari\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <a\n [title]=\"browserLinkTitlePrefix + ' Firefox'\"\n href=\"https://www.mozilla.org/fr/firefox/\"\n target=\"_blank\"\n >\n Firefox\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ou\n <a\n [title]=\"browserLinkTitlePrefix + ' Chrome'\"\n href=\"https://www.google.com/intl/fr/chrome/\"\n target=\"_blank\"\n >\n Chrome\n <span class=\"sr-only\">(lien externe)</span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n .\n </p>\n <div class=\"row mt-3\">\n <div class=\"col-md-12\">\n <button\n id=\"browser_not_supported_bypass\"\n class=\"float-right btn btn-danger\"\n *ngIf=\"!browserNotSupportedBypass\"\n (click)=\"browserNotSupportedBypass = true\"\n >\n Continuer avec ce navigateur\n </button>\n </div>\n </div>\n </section>\n\n <sdk-support-alert-container\n *ngIf=\"supportAlertEnabled\"\n [etapeId]=\"etapeId\"\n [supportAlertUrl]=\"supportAlertUrl\"\n ></sdk-support-alert-container>\n <ng-container\n *ngIf=\"\n !(hasBlockingSupportAlert | async) &&\n (isBrowserSupported || browserNotSupportedBypass)\n \"\n >\n <div class=\"container mt-5\" id=\"page_content\">\n <foehn-user-connected-as\n *ngIf=\"displayUserCategory | async\"\n ></foehn-user-connected-as>\n <ng-container\n *ngIf=\"displayLoginMessages | async as displayLoginMessagesData\"\n >\n <div\n *ngIf=\"displayLoginMessagesData.displayShouldLoginMessage\"\n class=\"alert alert-info\"\n id=\"displayLoginMessage\"\n >\n <p\n [innerHTML]=\"\n getFullLoginMessage(\n displayLoginMessagesData.decisionElectroniqueAvailable\n ) | async\n \"\n ></p>\n <div class=\"d-flex justify-content-start mr-2 mb-2 mt-2\">\n <a\n class=\"btn btn-primary\"\n [href]=\"getFullLoginUrl() | async\"\n >\n {{ 'use-login.button.text' | fromDictionary }}\n </a>\n </div>\n </div>\n </ng-container>\n </div>\n <ng-content></ng-content>\n </ng-container>\n</main>\n<foehn-footer\n id=\"foehn_footer\"\n [links]=\"footerLinks\"\n [showDefaultContactLink]=\"showDefaultContactFooterLink\"\n [showDefaultGuideLink]=\"showDefaultGuideFooterLink\"\n [showDefaultTermOfUseLink]=\"showDefaultTermOfUseLink\"\n [showDefaultSecurityBestPracticeLink]=\"showDefaultSecurityBestPracticeLink\"\n></foehn-footer>\n<foehn-page-modal></foehn-page-modal>\n<foehn-confirm-modal></foehn-confirm-modal>\n", components: [{ type: FoehnHeaderComponent, selector: "foehn-header", inputs: ["userInfo", "title", "neverConnected"] }, { type: FoehnGrowlComponent, selector: "foehn-growl" }, { type: FoehnBreadcrumbComponent, selector: "foehn-breadcrumb", inputs: ["breadcrumbItems", "currentNav", "neverConnected", "confirmLeavingAlert"] }, { type: FoehnIconExternalLinkAltComponent, selector: "foehn-icon-external-link-alt" }, { type: SupportAlertContainerComponent, selector: "sdk-support-alert-container", inputs: ["etapeId", "supportAlertUrl"] }, { type: FoehnUserConnectedAsComponent, selector: "foehn-user-connected-as" }, { type: FoehnFooterComponent, selector: "foehn-footer", inputs: ["links", "showDefaultContactLink", "showDefaultGuideLink", "showDefaultTermOfUseLink", "showDefaultSecurityBestPracticeLink"] }, { type: FoehnPageModalComponent, selector: "foehn-page-modal" }, { type: FoehnConfirmModalComponent, selector: "foehn-confirm-modal" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe, "fromDictionary": SdkDictionaryPipe } });
5064
5087
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnPageComponent, decorators: [{
5065
5088
  type: Component,
5066
5089
  args: [{
@@ -5077,8 +5100,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
5077
5100
  type: Input
5078
5101
  }], supportAlertUrl: [{
5079
5102
  type: Input
5080
- }], supportAlertRefreshIntervalsInSeconds: [{
5081
- type: Input
5082
5103
  }], etapeId: [{
5083
5104
  type: Input
5084
5105
  }], userConnectedAsDisplayed: [{