awf-test-lib 0.1.15 → 0.1.16
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2020/lib/core/menu-ge-portal/menu-ge-portal.component.mjs +81 -10
- package/fesm2015/awf-test-lib.mjs +111 -40
- package/fesm2015/awf-test-lib.mjs.map +1 -1
- package/fesm2020/awf-test-lib.mjs +111 -40
- package/fesm2020/awf-test-lib.mjs.map +1 -1
- package/lib/core/menu-ge-portal/menu-ge-portal.component.d.ts +9 -2
- package/package.json +1 -1
@@ -1,25 +1,96 @@
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
2
|
+
import jwt_decode from 'jwt-decode';
|
2
3
|
import * as i0 from "@angular/core";
|
3
|
-
import * as i1 from "@angular/
|
4
|
-
import * as i2 from "@angular/
|
4
|
+
import * as i1 from "@angular/router";
|
5
|
+
import * as i2 from "@angular/common";
|
5
6
|
export class MenuGePortalComponent {
|
6
|
-
constructor() {
|
7
|
+
constructor(router) {
|
8
|
+
this.router = router;
|
7
9
|
this.logOutClick = new EventEmitter();
|
8
10
|
this.hideMenu = new EventEmitter();
|
11
|
+
this.displayViewAs = false;
|
12
|
+
this.displayViewAs = !this.isTokenExpired();
|
9
13
|
}
|
10
14
|
logout() {
|
11
|
-
this.
|
15
|
+
this.displayViewAs = !this.isTokenExpired();
|
16
|
+
if (this.displayViewAs) {
|
17
|
+
this.deleteConnexionInfo();
|
18
|
+
this.navigate("/ge");
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
this.logOutClick.emit();
|
22
|
+
}
|
12
23
|
}
|
13
|
-
|
24
|
+
menuMethode(path) {
|
25
|
+
this.redirectByPath(path);
|
14
26
|
this.hideMenu.emit();
|
15
27
|
}
|
28
|
+
isTokenExpired() {
|
29
|
+
const token = sessionStorage.getItem("va-token");
|
30
|
+
if (!token) {
|
31
|
+
return true; // Token absent, considéré comme expiré
|
32
|
+
}
|
33
|
+
const tokenData = jwt_decode(token);
|
34
|
+
const expirationTime = tokenData?.exp; // Convertir en millisecondes
|
35
|
+
const currentTimeInSeconds = Math.floor(Date.now() / 1000); // Temps actuel en secondes
|
36
|
+
const isExpired = expirationTime ? expirationTime < currentTimeInSeconds : true;
|
37
|
+
if (isExpired) {
|
38
|
+
this.deleteConnexionInfo();
|
39
|
+
}
|
40
|
+
return isExpired;
|
41
|
+
}
|
42
|
+
redirectByPath(path) {
|
43
|
+
this.displayViewAs = !this.isTokenExpired();
|
44
|
+
if (this.displayViewAs) {
|
45
|
+
switch (path) {
|
46
|
+
case null || undefined || '':
|
47
|
+
this.navigate('/ge/view-as/home');
|
48
|
+
break;
|
49
|
+
case 'contact':
|
50
|
+
this.navigate('/ge/view-as/contact');
|
51
|
+
break;
|
52
|
+
case 'maintenance':
|
53
|
+
this.navigate('/ge/view-as/maintenance');
|
54
|
+
break;
|
55
|
+
case 'systems':
|
56
|
+
this.navigate('/ge/view-as/systems');
|
57
|
+
break;
|
58
|
+
default: this.navigate('/ge/view-as/home');
|
59
|
+
}
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
switch (path) {
|
63
|
+
case null || undefined || '':
|
64
|
+
this.navigate('/ge');
|
65
|
+
break;
|
66
|
+
case 'contact':
|
67
|
+
this.navigate('/ge/contact');
|
68
|
+
break;
|
69
|
+
case 'maintenance':
|
70
|
+
this.navigate('/ge/maintenance');
|
71
|
+
break;
|
72
|
+
case 'systems':
|
73
|
+
this.navigate('/ge/systems');
|
74
|
+
break;
|
75
|
+
default: this.navigate('/ge');
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
deleteConnexionInfo() {
|
80
|
+
sessionStorage.removeItem("va-token");
|
81
|
+
sessionStorage.removeItem("va-email");
|
82
|
+
sessionStorage.setItem("va", "false");
|
83
|
+
}
|
84
|
+
navigate(route) {
|
85
|
+
this.router.navigate([route]);
|
86
|
+
}
|
16
87
|
}
|
17
|
-
MenuGePortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: MenuGePortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
18
|
-
MenuGePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: MenuGePortalComponent, selector: "awf-menu-ge-portal", inputs: { translate: "translate", isAdmin: "isAdmin" }, outputs: { logOutClick: "logOutClick", hideMenu: "hideMenu" }, ngImport: i0, template: "<div class=\"layout-menu\" *ngIf=\"translate\">\r\n <div class=\"menu\"
|
88
|
+
MenuGePortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: MenuGePortalComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
89
|
+
MenuGePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: MenuGePortalComponent, selector: "awf-menu-ge-portal", inputs: { translate: "translate", isAdmin: "isAdmin" }, outputs: { logOutClick: "logOutClick", hideMenu: "hideMenu" }, ngImport: i0, template: "<div class=\"layout-menu\" *ngIf=\"translate\">\r\n <div class=\"menu\" (click)=\"menuMethode()\"> <i class=\"pi pi-home\"></i> {{translate.home}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('contact')\"> <i class=\"pi pi-phone\"></i> {{translate.contact}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('systems')\"> <i class=\"pi pi-eye\"></i> {{translate.systems}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('maintenance')\"> <i class=\"pi pi-inbox\"></i> {{translate.maintenance}}</div>\r\n <div class=\"menu\" (click)=\"logout()\"> <i class=\"pi pi-power-off\"></i> {{translate.logout}}</div>\r\n</div> ", styles: [".layout-menu{margin-left:50px}.layout-menu .menu{display:block;color:#8da1b5;font-weight:300;padding:1rem 0 .5rem;font-size:16px;cursor:pointer}.layout-menu .menu:hover{font-weight:700;color:var(--primarycolor)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
19
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: MenuGePortalComponent, decorators: [{
|
20
91
|
type: Component,
|
21
|
-
args: [{ selector: 'awf-menu-ge-portal', template: "<div class=\"layout-menu\" *ngIf=\"translate\">\r\n <div class=\"menu\"
|
22
|
-
}], ctorParameters: function () { return []; }, propDecorators: { logOutClick: [{
|
92
|
+
args: [{ selector: 'awf-menu-ge-portal', template: "<div class=\"layout-menu\" *ngIf=\"translate\">\r\n <div class=\"menu\" (click)=\"menuMethode()\"> <i class=\"pi pi-home\"></i> {{translate.home}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('contact')\"> <i class=\"pi pi-phone\"></i> {{translate.contact}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('systems')\"> <i class=\"pi pi-eye\"></i> {{translate.systems}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('maintenance')\"> <i class=\"pi pi-inbox\"></i> {{translate.maintenance}}</div>\r\n <div class=\"menu\" (click)=\"logout()\"> <i class=\"pi pi-power-off\"></i> {{translate.logout}}</div>\r\n</div> ", styles: [".layout-menu{margin-left:50px}.layout-menu .menu{display:block;color:#8da1b5;font-weight:300;padding:1rem 0 .5rem;font-size:16px;cursor:pointer}.layout-menu .menu:hover{font-weight:700;color:var(--primarycolor)}\n"] }]
|
93
|
+
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { logOutClick: [{
|
23
94
|
type: Output
|
24
95
|
}], translate: [{
|
25
96
|
type: Input
|
@@ -28,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
|
|
28
99
|
}], hideMenu: [{
|
29
100
|
type: Output
|
30
101
|
}] } });
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1nZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXdmLXRlc3QtbGliL3NyYy9saWIvY29yZS9tZW51LWdlLXBvcnRhbC9tZW51LWdlLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hd2YtdGVzdC1saWIvc3JjL2xpYi9jb3JlL21lbnUtZ2UtcG9ydGFsL21lbnUtZ2UtcG9ydGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7O0FBT3BDLE1BQU0sT0FBTyxxQkFBcUI7SUFPOUIsWUFBNkIsTUFBZTtRQUFmLFdBQU0sR0FBTixNQUFNLENBQVM7UUFObEMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdwRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0Qsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFHNUIsSUFBSSxDQUFDLGFBQWEsR0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsSUFBRyxJQUFJLENBQUMsYUFBYSxFQUFDO1lBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDdEI7YUFBSTtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWM7UUFDdEIs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QkFDSSxvQkFBb0I7NkZBS3BCLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCBqd3RfZGVjb2RlIGZyb20gJ2p3dC1kZWNvZGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F3Zi1tZW51LWdlLXBvcnRhbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS1nZS1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS1nZS1wb3J0YWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUdlUG9ydGFsQ29tcG9uZW50ICB7XHJcbiAgICBAT3V0cHV0KCkgbG9nT3V0Q2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQElucHV0KCkgdHJhbnNsYXRlITogYW55O1xyXG4gICAgQElucHV0KCkgaXNBZG1pbiE6IGJvb2xlYW47XHJcbiAgICBAT3V0cHV0KCkgaGlkZU1lbnU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgZGlzcGxheVZpZXdBcyA6IGJvb2xlYW4gPSBmYWxzZTsgXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXIgOiBSb3V0ZXIpIHsgXHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Vmlld0FzICA9ICF0aGlzLmlzVG9rZW5FeHBpcmVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9nb3V0KCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheVZpZXdBcyAgPSAhdGhpcy5pc1Rva2VuRXhwaXJlZCgpO1xyXG4gICAgICAgIGlmKHRoaXMuZGlzcGxheVZpZXdBcyl7XHJcbiAgICAgICAgICAgdGhpcy5kZWxldGVDb25uZXhpb25JbmZvKCk7XHJcbiAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZShcIi9nZVwiKVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmxvZ091dENsaWNrLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbWVudU1ldGhvZGUocGF0aD8gOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnJlZGlyZWN0QnlQYXRoKHBhdGgpO1xyXG4gICAgICAgIHRoaXMuaGlkZU1lbnUuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzVG9rZW5FeHBpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcInZhLXRva2VuXCIpXHJcbiAgICAgICAgaWYgKCF0b2tlbikge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7IC8vIFRva2VuIGFic2VudCwgY29uc2lkw6lyw6kgY29tbWUgZXhwaXLDqVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0b2tlbkRhdGEgOiBhbnkgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgICAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9IHRva2VuRGF0YT8uZXhwOyAvLyBDb252ZXJ0aXIgZW4gbWlsbGlzZWNvbmRlc1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lSW5TZWNvbmRzID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7IC8vIFRlbXBzIGFjdHVlbCBlbiBzZWNvbmRlc1xyXG4gICAgICAgIGNvbnN0IGlzRXhwaXJlZCA9IGV4cGlyYXRpb25UaW1lID8gZXhwaXJhdGlvblRpbWUgPCBjdXJyZW50VGltZUluU2Vjb25kcyAgOiB0cnVlO1xyXG4gICAgICAgIGlmKGlzRXhwaXJlZCl7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlQ29ubmV4aW9uSW5mbygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXNFeHBpcmVkXHJcbiAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIHJlZGlyZWN0QnlQYXRoKHBhdGg/IDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLmRpc3BsYXlWaWV3QXMgID0gIXRoaXMuaXNUb2tlbkV4cGlyZWQoKTtcclxuICAgICAgICAgICAgaWYodGhpcy5kaXNwbGF5Vmlld0FzKXtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAocGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgbnVsbCB8fCB1bmRlZmluZWQgfHwgJycgIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL3ZpZXctYXMvaG9tZScpOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdjb250YWN0JyA6IHRoaXMubmF2aWdhdGUoJy9nZS92aWV3LWFzL2NvbnRhY3QnKTsgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdtYWludGVuYW5jZScgOiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9tYWludGVuYW5jZScpOyAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3lzdGVtcycgOiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9zeXN0ZW1zJyk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9ob21lJyk7XHJcbiAgICAgICAgICAgICAgICAgIH0gICAgIFxyXG4gICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIG51bGwgfHwgdW5kZWZpbmVkIHx8ICcnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlJyk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRhY3QnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL2NvbnRhY3QnKTsgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdtYWludGVuYW5jZScgOiB0aGlzLm5hdmlnYXRlKCcvZ2UvbWFpbnRlbmFuY2UnKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N5c3RlbXMnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL3N5c3RlbXMnKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMubmF2aWdhdGUoJy9nZScpO1xyXG4gICAgICAgICAgICAgICAgICB9ICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZUNvbm5leGlvbkluZm8oKXtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwidmEtdG9rZW5cIik7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcInZhLWVtYWlsXCIpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJ2YVwiLFwiZmFsc2VcIilcclxuICAgICAgfVxyXG4gICAgICBuYXZpZ2F0ZShyb3V0ZTogc3RyaW5nKTp2b2lke1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZV0pXHJcbiAgICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1tZW51XCIgKm5nSWY9XCJ0cmFuc2xhdGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKClcIj4gPGkgY2xhc3M9XCJwaSBwaS1ob21lXCI+PC9pPiB7e3RyYW5zbGF0ZS5ob21lfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKCdjb250YWN0JylcIj4gPGkgY2xhc3M9XCJwaSBwaS1waG9uZVwiPjwvaT4ge3t0cmFuc2xhdGUuY29udGFjdH19PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudVwiIChjbGljayk9XCJtZW51TWV0aG9kZSgnc3lzdGVtcycpXCI+IDxpIGNsYXNzPVwicGkgcGktZXllXCI+PC9pPiB7e3RyYW5zbGF0ZS5zeXN0ZW1zfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKCdtYWludGVuYW5jZScpXCI+IDxpIGNsYXNzPVwicGkgcGktaW5ib3hcIj48L2k+IHt7dHJhbnNsYXRlLm1haW50ZW5hbmNlfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cImxvZ291dCgpXCI+IDxpIGNsYXNzPVwicGkgcGktcG93ZXItb2ZmXCI+PC9pPiB7e3RyYW5zbGF0ZS5sb2dvdXR9fTwvZGl2PlxyXG48L2Rpdj4gIl19
|