@dsivd/prestations-ng 16.5.4-beta.1 → 16.5.4-beta.2
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/CHANGELOG.md +0 -5
- package/dsivd-prestations-ng-v16.5.4-beta.2.tgz +0 -0
- package/esm2020/sdk-redirect/iam-expired-interceptor.service.mjs +3 -3
- package/esm2020/sdk-redirect/redirect.component.mjs +14 -26
- package/fesm2015/dsivd-prestations-ng.mjs +14 -24
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
- package/fesm2020/dsivd-prestations-ng.mjs +14 -24
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
- package/package.json +1 -1
- package/sdk-redirect/redirect.component.d.ts +2 -4
- package/dsivd-prestations-ng-v16.5.4-beta.1.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -13,11 +13,6 @@
|
|
|
13
13
|
- [foehn-input-time.component.html](projects/prestations-ng/src/foehn-input-time/foehn-input-time.component.html)
|
|
14
14
|
- added `allowLeadingZero` to true to allowed leading 0 in hours and minutes
|
|
15
15
|
|
|
16
|
-
### Fixed
|
|
17
|
-
|
|
18
|
-
- [redirect.component.ts](projects/prestations-ng/src/sdk-redirect/redirect.component.ts)
|
|
19
|
-
- fixed redirect url when IAM ACV session is expired
|
|
20
|
-
|
|
21
16
|
## [16.5.3]
|
|
22
17
|
|
|
23
18
|
### Added
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { HttpErrorResponse,
|
|
2
|
+
import { HttpErrorResponse, HttpResponseBase } from '@angular/common/http';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { Subject, throwError } from 'rxjs';
|
|
5
5
|
import { catchError, map } from 'rxjs/operators';
|
|
@@ -27,7 +27,7 @@ export class IamExpiredInterceptorService {
|
|
|
27
27
|
}
|
|
28
28
|
intercept(req, next) {
|
|
29
29
|
return next.handle(req).pipe(map(event => {
|
|
30
|
-
if (event instanceof
|
|
30
|
+
if (event instanceof HttpResponseBase) {
|
|
31
31
|
if (hasIamExpiredHeader(event) ||
|
|
32
32
|
isRedirectionToLogin(event)) {
|
|
33
33
|
this._isIamSessionExpired.next(true);
|
|
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
58
58
|
providedIn: 'root'
|
|
59
59
|
}]
|
|
60
60
|
}] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstcmVkaXJlY3QvaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUNILGlCQUFpQixFQUtqQixnQkFBZ0IsRUFFbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWpELE1BQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDekMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBRW5DLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUF1QixFQUFXLEVBQUUsQ0FDN0QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFcEQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQXVCLEVBQVcsRUFBRTtJQUM5RCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxtQ0FBeUIsQ0FBQztJQUM1RCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVyRCxNQUFNLG9CQUFvQixHQUFHLGNBQWMsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN4RSxNQUFNLGtCQUFrQixHQUFHLGNBQWMsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFcEUsT0FBTyxhQUFhLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxrQkFBa0IsQ0FBQyxDQUFDO0FBQ3pFLENBQUMsQ0FBQztBQUtGLE1BQU0sT0FBTyw0QkFBNEI7SUFIekM7UUFJWSx5QkFBb0IsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQStDM0U7SUE3Q0csSUFBSSxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELDRCQUE0QjtRQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxTQUFTLENBQ0wsR0FBcUIsRUFDckIsSUFBaUI7UUFFakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDeEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxLQUFLLFlBQVksZ0JBQWdCLEVBQUU7Z0JBQ25DLElBQ0ksbUJBQW1CLENBQUMsS0FBSyxDQUFDO29CQUMxQixvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFDN0I7b0JBQ0UsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDeEM7YUFDSjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMxQyxDQUFDO0lBQ04sQ0FBQztJQUVPLFdBQVcsQ0FDZixHQUF1QztRQUV2QyxJQUFJLEdBQUcsWUFBWSxpQkFBaUIsRUFBRTtZQUNsQywwQ0FBMEM7WUFDMUMsbURBQW1EO1lBQ25ELE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLGdDQUFzQixDQUFDO1lBQ3BELE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDM0QsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFdkQsSUFBSSxVQUFVLElBQUksQ0FBQyxlQUFlLElBQUksYUFBYSxDQUFDLEVBQUU7Z0JBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEM7U0FDSjtRQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OzBIQS9DUSw0QkFBNEI7OEhBQTVCLDRCQUE0QixjQUZ6QixNQUFNOzRGQUVULDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQge1xuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIEh0dHBFdmVudCxcbiAgICBIdHRwSGFuZGxlcixcbiAgICBIdHRwSW50ZXJjZXB0b3IsXG4gICAgSHR0cFJlcXVlc3QsXG4gICAgSHR0cFJlc3BvbnNlQmFzZSxcbiAgICBIdHRwU3RhdHVzQ29kZVxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IElBTV9TRVNTSU9OX0VYUElSRURfSEVBREVSID0gJ2lhbS1zZXNzaW9uLWV4cGlyZWQnO1xuY29uc3QgQ1lCRVJfTE9HSU5fUEFUSCA9ICcvMTAwMDE4L2xvZ2luJztcbmNvbnN0IEFDVl9MT0dJTl9QQVRIID0gJy9pYW1sb2dpbic7XG5cbmNvbnN0IGhhc0lhbUV4cGlyZWRIZWFkZXIgPSAoZXZlbnQ6IEh0dHBSZXNwb25zZUJhc2UpOiBib29sZWFuID0+XG4gICAgISFldmVudC5oZWFkZXJzLmdldChJQU1fU0VTU0lPTl9FWFBJUkVEX0hFQURFUik7XG5cbmNvbnN0IGlzUmVkaXJlY3Rpb25Ub0xvZ2luID0gKGV2ZW50OiBIdHRwUmVzcG9uc2VCYXNlKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgaXNSZWRpcmVjdGlvbiA9IGV2ZW50LnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuRm91bmQ7XG4gICAgY29uc3QgbG9jYXRpb25IZWFkZXIgPSBldmVudC5oZWFkZXJzLmdldCgnTG9jYXRpb24nKTtcblxuICAgIGNvbnN0IGlzTG9jYXRpb25DeWJlckxvZ2luID0gbG9jYXRpb25IZWFkZXI/LmluY2x1ZGVzKENZQkVSX0xPR0lOX1BBVEgpO1xuICAgIGNvbnN0IGlzTG9jYXRpb25BY3ZMb2dpbiA9IGxvY2F0aW9uSGVhZGVyPy5pbmNsdWRlcyhBQ1ZfTE9HSU5fUEFUSCk7XG5cbiAgICByZXR1cm4gaXNSZWRpcmVjdGlvbiAmJiAoaXNMb2NhdGlvbkN5YmVyTG9naW4gfHwgaXNMb2NhdGlvbkFjdkxvZ2luKTtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSWFtRXhwaXJlZEludGVyY2VwdG9yU2VydmljZSBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gICAgcHJpdmF0ZSBfaXNJYW1TZXNzaW9uRXhwaXJlZDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBnZXQgaXNJYW1TZXNzaW9uRXhwaXJlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSWFtU2Vzc2lvbkV4cGlyZWQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0SWFtU2Vzc2lvbkV4cGlyZWRNYW51YWxseSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNJYW1TZXNzaW9uRXhwaXJlZC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIGludGVyY2VwdChcbiAgICAgICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxuICAgICAgICBuZXh0OiBIdHRwSGFuZGxlclxuICAgICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4gfCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcbiAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlQmFzZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNJYW1FeHBpcmVkSGVhZGVyKGV2ZW50KSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSZWRpcmVjdGlvblRvTG9naW4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNJYW1TZXNzaW9uRXhwaXJlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBldmVudDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcbiAgICAgICAgZXJyOiBIdHRwRXJyb3JSZXNwb25zZSB8IEh0dHBFdmVudDxhbnk+XG4gICAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIHN0YXR1cyBpcyAyMDAsIGJ1dCBzdGlsbCBhbiBlcnJvciBzaW5jZVxuICAgICAgICAgICAgLy8gbG9naW4gcGFnZSBpcyByZXR1cm5lZCB3aGVuIHhtbC9qc29uIGlzIGV4cGVjdGVkXG4gICAgICAgICAgICBjb25zdCBpc1N0YXR1c09rID0gZXJyLnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuT2s7XG4gICAgICAgICAgICBjb25zdCBpc1VybEN5YmVyTG9naW4gPSBlcnIudXJsLmluY2x1ZGVzKENZQkVSX0xPR0lOX1BBVEgpO1xuICAgICAgICAgICAgY29uc3QgaXNVcmxBY3ZMb2dpbiA9IGVyci51cmwuaW5jbHVkZXMoQUNWX0xPR0lOX1BBVEgpO1xuXG4gICAgICAgICAgICBpZiAoaXNTdGF0dXNPayAmJiAoaXNVcmxDeWJlckxvZ2luIHx8IGlzVXJsQWN2TG9naW4pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNJYW1TZXNzaW9uRXhwaXJlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,35 +1,23 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import { of, switchMap } from 'rxjs';
|
|
3
2
|
import { first, tap } from 'rxjs/operators';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "./iam-expired-interceptor.service";
|
|
6
5
|
import * as i2 from "../foehn-page/foehn-page-modal.service";
|
|
7
|
-
import * as i3 from "../
|
|
8
|
-
import * as i4 from "
|
|
9
|
-
import * as i5 from "@angular/common";
|
|
6
|
+
import * as i3 from "../foehn-modal/foehn-modal.component";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
10
8
|
export class RedirectComponent {
|
|
11
|
-
constructor(iamInterceptor, foehnPageModalService
|
|
9
|
+
constructor(iamInterceptor, foehnPageModalService) {
|
|
12
10
|
this.iamInterceptor = iamInterceptor;
|
|
13
11
|
this.foehnPageModalService = foehnPageModalService;
|
|
14
|
-
this.
|
|
15
|
-
this.redirectUrl = '';
|
|
16
|
-
this.sessionInfo.data
|
|
17
|
-
.pipe(first(), switchMap(data => {
|
|
18
|
-
if (!data || !!data.context) {
|
|
19
|
-
// not connected or connected cyber
|
|
20
|
-
return this.foehnPageModalService.buildSelfRedirectionThroughCyberLogin();
|
|
21
|
-
}
|
|
22
|
-
// connected ACV, refresh page
|
|
23
|
-
return of('');
|
|
24
|
-
}), tap(redirectUrl => {
|
|
25
|
-
this.redirectUrl = redirectUrl;
|
|
26
|
-
}))
|
|
27
|
-
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
28
|
-
.subscribe( /* redirect url should be calculated when the user is still connected to know if IAM or Cyber*/);
|
|
12
|
+
this.redirectUrl = this.foehnPageModalService.buildSelfRedirectionThroughCyberLogin();
|
|
29
13
|
this.isModalVisible = this.iamInterceptor.isIamSessionExpired.pipe(first(), tap(() => this.startTimer()));
|
|
30
14
|
}
|
|
31
15
|
reloadPage() {
|
|
32
|
-
|
|
16
|
+
this.redirectUrl
|
|
17
|
+
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
18
|
+
.subscribe(redirectUrl => {
|
|
19
|
+
window.location.href = redirectUrl;
|
|
20
|
+
});
|
|
33
21
|
}
|
|
34
22
|
startTimer() {
|
|
35
23
|
this.counter = 10;
|
|
@@ -42,10 +30,10 @@ export class RedirectComponent {
|
|
|
42
30
|
}, 1000);
|
|
43
31
|
}
|
|
44
32
|
}
|
|
45
|
-
RedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedirectComponent, deps: [{ token: i1.IamExpiredInterceptorService }, { token: i2.FoehnPageModalService }
|
|
46
|
-
RedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RedirectComponent, selector: "redirector", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible | async\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>\n Vous pouvez\n <a [href]=\"redirectUrl\">vous connecter</a>\n \u00E0 nouveau pour continuer \u00E0 utiliser nos services.\n </p>\n\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n", dependencies: [{ kind: "component", type:
|
|
33
|
+
RedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedirectComponent, deps: [{ token: i1.IamExpiredInterceptorService }, { token: i2.FoehnPageModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
RedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RedirectComponent, selector: "redirector", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible | async\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>\n Vous pouvez\n <a [href]=\"redirectUrl | async\">vous connecter</a>\n \u00E0 nouveau pour continuer \u00E0 utiliser nos services.\n </p>\n\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n", dependencies: [{ kind: "component", type: i3.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
47
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedirectComponent, decorators: [{
|
|
48
36
|
type: Component,
|
|
49
|
-
args: [{ selector: 'redirector', template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible | async\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>\n Vous pouvez\n <a [href]=\"redirectUrl\">vous connecter</a>\n \u00E0 nouveau pour continuer \u00E0 utiliser nos services.\n </p>\n\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n" }]
|
|
50
|
-
}], ctorParameters: function () { return [{ type: i1.IamExpiredInterceptorService }, { type: i2.FoehnPageModalService }
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
args: [{ selector: 'redirector', template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible | async\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>\n Vous pouvez\n <a [href]=\"redirectUrl | async\">vous connecter</a>\n \u00E0 nouveau pour continuer \u00E0 utiliser nos services.\n </p>\n\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n" }]
|
|
38
|
+
}], ctorParameters: function () { return [{ type: i1.IamExpiredInterceptorService }, { type: i2.FoehnPageModalService }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1yZWRpcmVjdC9yZWRpcmVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlZGlyZWN0L3JlZGlyZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBVTVDLE1BQU0sT0FBTyxpQkFBaUI7SUFNMUIsWUFDWSxjQUE0QyxFQUM1QyxxQkFBNEM7UUFENUMsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBQzVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFFcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMscUNBQXFDLEVBQUUsQ0FBQztRQUN0RixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUM5RCxLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQy9CLENBQUM7SUFDTixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxXQUFXO1lBQ1osMERBQTBEO2FBQ3pELFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU87YUFDVjtZQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDOzsrR0FsQ1EsaUJBQWlCO21HQUFqQixpQkFBaUIsa0RDWjlCLGdnQkFnQkE7NEZESmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUVJLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvZWhuUGFnZU1vZGFsU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IElhbUV4cGlyZWRJbnRlcmNlcHRvclNlcnZpY2UgfSBmcm9tICcuL2lhbS1leHBpcmVkLWludGVyY2VwdG9yLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3JlZGlyZWN0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWRpcmVjdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RDb21wb25lbnQge1xuICAgIGlzTW9kYWxWaXNpYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGNvdW50ZXI6IG51bWJlcjtcblxuICAgIHJlZGlyZWN0VXJsOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpYW1JbnRlcmNlcHRvcjogSWFtRXhwaXJlZEludGVyY2VwdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmb2VoblBhZ2VNb2RhbFNlcnZpY2U6IEZvZWhuUGFnZU1vZGFsU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLnJlZGlyZWN0VXJsID0gdGhpcy5mb2VoblBhZ2VNb2RhbFNlcnZpY2UuYnVpbGRTZWxmUmVkaXJlY3Rpb25UaHJvdWdoQ3liZXJMb2dpbigpO1xuICAgICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdGhpcy5pYW1JbnRlcmNlcHRvci5pc0lhbVNlc3Npb25FeHBpcmVkLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuc3RhcnRUaW1lcigpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbG9hZFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVkaXJlY3RVcmxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVkaXJlY3RVcmwgPT4ge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVcmw7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0VGltZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY291bnRlciA9IDEwO1xuICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoMCA9PT0gdGhpcy5jb3VudGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWRQYWdlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb3VudGVyLS07XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cbn1cbiIsIjxmb2Vobi1tb2RhbFxuICAgIFttb2RhbEhlYWRlclRleHRdPVwiJ0luZm9ybWF0aW9uJ1wiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cImlzTW9kYWxWaXNpYmxlIHwgYXN5bmNcIlxuICAgIFtjbG9zZWFibGVdPVwiZmFsc2VcIlxuPlxuICAgIDxwPlZvdHJlIHNlc3Npb24gYSBleHBpcsOpLjwvcD5cbiAgICA8cD5cbiAgICAgICAgVm91cyBwb3V2ZXpcbiAgICAgICAgPGEgW2hyZWZdPVwicmVkaXJlY3RVcmwgfCBhc3luY1wiPnZvdXMgY29ubmVjdGVyPC9hPlxuICAgICAgICDDoCBub3V2ZWF1IHBvdXIgY29udGludWVyIMOgIHV0aWxpc2VyIG5vcyBzZXJ2aWNlcy5cbiAgICA8L3A+XG5cbiAgICA8ZGl2IG1vZGFsLWZvb3RlciBjbGFzcz1cInctMTAwIHRleHQtcmlnaHQgZm9udC13ZWlnaHQtYm9sZFwiPlxuICAgICAgICBWb3VzIGFsbGV6IMOqdHJlIHJlZGlyaWfDqSBkYW5zIHt7IGNvdW50ZXIgfX0gcy5cbiAgICA8L2Rpdj5cbjwvZm9laG4tbW9kYWw+XG4iXX0=
|
|
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, Optional, Inject, EventEmitter, Directive, Input, ViewChildren, ViewChild, forwardRef, Output, HostBinding, Pipe, Component, ContentChildren, HostListener, NgModule, TemplateRef, ContentChild, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/router';
|
|
4
4
|
import { ActivatedRoute, NavigationStart, RouterModule, NavigationEnd, RouterLink } from '@angular/router';
|
|
5
|
-
import { of, BehaviorSubject, combineLatest, Subject, throwError, tap as tap$1, concat, toArray, EMPTY, merge, withLatestFrom, debounceTime as debounceTime$1,
|
|
5
|
+
import { of, BehaviorSubject, combineLatest, Subject, throwError, tap as tap$1, concat, toArray, EMPTY, merge, withLatestFrom, debounceTime as debounceTime$1, map as map$1 } from 'rxjs';
|
|
6
6
|
import { map, shareReplay, debounceTime, catchError, switchMap, tap, first, filter, throttleTime, mergeMap, share, finalize, distinctUntilChanged } from 'rxjs/operators';
|
|
7
7
|
import * as i1 from '@angular/common/http';
|
|
8
|
-
import {
|
|
8
|
+
import { HttpResponseBase, HttpErrorResponse, HttpParams, HttpEventType, HttpResponse, HTTP_INTERCEPTORS, HttpClientModule, HttpClient } from '@angular/common/http';
|
|
9
9
|
import * as i3 from '@angular/forms';
|
|
10
10
|
import { NgModel, NgForm, FormsModule } from '@angular/forms';
|
|
11
11
|
import * as i2 from '@angular/common';
|
|
@@ -1422,7 +1422,7 @@ class IamExpiredInterceptorService {
|
|
|
1422
1422
|
}
|
|
1423
1423
|
intercept(req, next) {
|
|
1424
1424
|
return next.handle(req).pipe(map(event => {
|
|
1425
|
-
if (event instanceof
|
|
1425
|
+
if (event instanceof HttpResponseBase) {
|
|
1426
1426
|
if (hasIamExpiredHeader(event) ||
|
|
1427
1427
|
isRedirectionToLogin(event)) {
|
|
1428
1428
|
this._isIamSessionExpired.next(true);
|
|
@@ -12961,28 +12961,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
12961
12961
|
}] });
|
|
12962
12962
|
|
|
12963
12963
|
class RedirectComponent {
|
|
12964
|
-
constructor(iamInterceptor, foehnPageModalService
|
|
12964
|
+
constructor(iamInterceptor, foehnPageModalService) {
|
|
12965
12965
|
this.iamInterceptor = iamInterceptor;
|
|
12966
12966
|
this.foehnPageModalService = foehnPageModalService;
|
|
12967
|
-
this.
|
|
12968
|
-
this.redirectUrl = '';
|
|
12969
|
-
this.sessionInfo.data
|
|
12970
|
-
.pipe(first(), switchMap$1(data => {
|
|
12971
|
-
if (!data || !!data.context) {
|
|
12972
|
-
// not connected or connected cyber
|
|
12973
|
-
return this.foehnPageModalService.buildSelfRedirectionThroughCyberLogin();
|
|
12974
|
-
}
|
|
12975
|
-
// connected ACV, refresh page
|
|
12976
|
-
return of('');
|
|
12977
|
-
}), tap(redirectUrl => {
|
|
12978
|
-
this.redirectUrl = redirectUrl;
|
|
12979
|
-
}))
|
|
12980
|
-
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
12981
|
-
.subscribe( /* redirect url should be calculated when the user is still connected to know if IAM or Cyber*/);
|
|
12967
|
+
this.redirectUrl = this.foehnPageModalService.buildSelfRedirectionThroughCyberLogin();
|
|
12982
12968
|
this.isModalVisible = this.iamInterceptor.isIamSessionExpired.pipe(first(), tap(() => this.startTimer()));
|
|
12983
12969
|
}
|
|
12984
12970
|
reloadPage() {
|
|
12985
|
-
|
|
12971
|
+
this.redirectUrl
|
|
12972
|
+
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
12973
|
+
.subscribe(redirectUrl => {
|
|
12974
|
+
window.location.href = redirectUrl;
|
|
12975
|
+
});
|
|
12986
12976
|
}
|
|
12987
12977
|
startTimer() {
|
|
12988
12978
|
this.counter = 10;
|
|
@@ -12995,12 +12985,12 @@ class RedirectComponent {
|
|
|
12995
12985
|
}, 1000);
|
|
12996
12986
|
}
|
|
12997
12987
|
}
|
|
12998
|
-
RedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedirectComponent, deps: [{ token: IamExpiredInterceptorService }, { token: FoehnPageModalService }
|
|
12999
|
-
RedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RedirectComponent, selector: "redirector", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible | async\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>\n Vous pouvez\n <a [href]=\"redirectUrl\">vous connecter</a>\n \u00E0 nouveau pour continuer \u00E0 utiliser nos services.\n </p>\n\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n", dependencies: [{ kind: "component", type: FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
12988
|
+
RedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedirectComponent, deps: [{ token: IamExpiredInterceptorService }, { token: FoehnPageModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12989
|
+
RedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RedirectComponent, selector: "redirector", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible | async\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>\n Vous pouvez\n <a [href]=\"redirectUrl | async\">vous connecter</a>\n \u00E0 nouveau pour continuer \u00E0 utiliser nos services.\n </p>\n\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n", dependencies: [{ kind: "component", type: FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
13000
12990
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedirectComponent, decorators: [{
|
|
13001
12991
|
type: Component,
|
|
13002
|
-
args: [{ selector: 'redirector', template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible | async\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>\n Vous pouvez\n <a [href]=\"redirectUrl\">vous connecter</a>\n \u00E0 nouveau pour continuer \u00E0 utiliser nos services.\n </p>\n\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n" }]
|
|
13003
|
-
}], ctorParameters: function () { return [{ type: IamExpiredInterceptorService }, { type: FoehnPageModalService }
|
|
12992
|
+
args: [{ selector: 'redirector', template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible | async\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>\n Vous pouvez\n <a [href]=\"redirectUrl | async\">vous connecter</a>\n \u00E0 nouveau pour continuer \u00E0 utiliser nos services.\n </p>\n\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n" }]
|
|
12993
|
+
}], ctorParameters: function () { return [{ type: IamExpiredInterceptorService }, { type: FoehnPageModalService }]; } });
|
|
13004
12994
|
|
|
13005
12995
|
class SdkRedirectModule {
|
|
13006
12996
|
}
|