tango-app-ui-shared 3.0.27-dev → 3.0.28-dev
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/esm2022/lib/interceptors/http-auth-interceptor.mjs +56 -19
- package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +12 -6
- package/esm2022/lib/routes/routing.mjs +6 -6
- package/esm2022/lib/services/auth.service.mjs +12 -2
- package/fesm2022/tango-app-ui-shared.mjs +81 -28
- package/fesm2022/tango-app-ui-shared.mjs.map +1 -1
- package/lib/interceptors/http-auth-interceptor.d.ts +5 -4
- package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +2 -0
- package/lib/services/auth.service.d.ts +1 -0
- package/package.json +1 -1
- package/esm2022/lib/routes/route-wraper-modules/edge-wrapper.module.mjs +0 -18
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-DM8Er_Bd.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-DM8Er_Bd.mjs.map +0 -1
- package/lib/routes/route-wraper-modules/edge-wrapper.module.d.ts +0 -7
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
3
|
-
import { catchError, throwError } from 'rxjs';
|
|
3
|
+
import { BehaviorSubject, catchError, switchMap, throwError } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "tango-app-ui-global";
|
|
6
6
|
import * as i2 from "../services/auth.service";
|
|
7
|
-
import * as i3 from "@angular/router";
|
|
8
7
|
export class HttpAuthInterceptor {
|
|
9
8
|
gs;
|
|
10
|
-
|
|
11
|
-
router;
|
|
9
|
+
authService;
|
|
12
10
|
authlocalStorageToken = '';
|
|
13
|
-
|
|
11
|
+
isRefreshingToken = false;
|
|
12
|
+
tokenRefreshed = new BehaviorSubject(false);
|
|
13
|
+
constructor(gs, authService) {
|
|
14
14
|
this.gs = gs;
|
|
15
|
-
this.
|
|
16
|
-
this.router = router;
|
|
15
|
+
this.authService = authService;
|
|
17
16
|
this.gs.environment.subscribe((env) => {
|
|
18
17
|
if (env) {
|
|
19
18
|
this.authlocalStorageToken = `${env.appVersion}-${env.USERDATA_KEY}`;
|
|
@@ -27,22 +26,60 @@ export class HttpAuthInterceptor {
|
|
|
27
26
|
Authorization: 'Bearer ' + user.authenticationToken
|
|
28
27
|
}
|
|
29
28
|
});
|
|
30
|
-
return next.handle(request).pipe(catchError(
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
this.router.navigate(["/auth/login"]);
|
|
35
|
-
});
|
|
36
|
-
localStorage.clear();
|
|
37
|
-
}
|
|
29
|
+
return next.handle(request).pipe(catchError((error) => {
|
|
30
|
+
if (error instanceof HttpErrorResponse && error.status === 401) {
|
|
31
|
+
// If the error is due to unauthorized access, try to refresh the token
|
|
32
|
+
return this.handle401Error(request, next);
|
|
38
33
|
}
|
|
39
|
-
return throwError(
|
|
34
|
+
return throwError(error);
|
|
40
35
|
}));
|
|
41
36
|
}
|
|
42
|
-
|
|
37
|
+
handle401Error(request, next) {
|
|
38
|
+
if (!this.isRefreshingToken) {
|
|
39
|
+
this.isRefreshingToken = true;
|
|
40
|
+
return this.authService.refreshToken().pipe(switchMap((res) => {
|
|
41
|
+
if (res && res.code == 200 && res.data.result) {
|
|
42
|
+
// Update local storage with the new token
|
|
43
|
+
localStorage.setItem(this.authlocalStorageToken, JSON.stringify(res.data.result));
|
|
44
|
+
// Clone the request with the new token
|
|
45
|
+
request = request.clone({
|
|
46
|
+
setHeaders: {
|
|
47
|
+
Authorization: `Bearer ${res.data.result.authenticationToken}`
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
// Reset the flag for token refreshing
|
|
51
|
+
this.isRefreshingToken = false;
|
|
52
|
+
// Retry the original request with the new token
|
|
53
|
+
return next.handle(request);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Logout user if refresh token fails
|
|
57
|
+
this.authService.logout();
|
|
58
|
+
return throwError('Token Expired Please Login Again!');
|
|
59
|
+
}
|
|
60
|
+
}), catchError((error) => {
|
|
61
|
+
// Logout user if refresh token fails
|
|
62
|
+
this.authService.logout();
|
|
63
|
+
return throwError(error);
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// If already refreshing the token, queue the request and wait
|
|
68
|
+
return this.tokenRefreshed.pipe(switchMap(() => {
|
|
69
|
+
const tokens = JSON.parse(localStorage.getItem(this.authlocalStorageToken) || '{}');
|
|
70
|
+
request = request.clone({
|
|
71
|
+
setHeaders: {
|
|
72
|
+
Authorization: 'Bearer ' + tokens.authenticationToken
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
return next.handle(request);
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: i1.GlobalStateService }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
43
80
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HttpAuthInterceptor });
|
|
44
81
|
}
|
|
45
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HttpAuthInterceptor, decorators: [{
|
|
46
83
|
type: Injectable
|
|
47
|
-
}], ctorParameters: () => [{ type: i1.GlobalStateService }, { type: i2.AuthService }
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
}], ctorParameters: () => [{ type: i1.GlobalStateService }, { type: i2.AuthService }] });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hdXRoLWludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL2ludGVyY2VwdG9ycy9odHRwLWF1dGgtaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBS0wsaUJBQWlCLEVBQ2xCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGVBQWUsRUFBYyxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUl0RixNQUFNLE9BQU8sbUJBQW1CO0lBT3BCO0lBQ0E7SUFOVixxQkFBcUIsR0FBUyxFQUFFLENBQUM7SUFDekIsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBQ25DLGNBQWMsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFdkYsWUFDVSxFQUFxQixFQUNyQixXQUF3QjtRQUR4QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUVoQyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUMsRUFBRTtZQUNuQyxJQUFHLEdBQUcsRUFBQztnQkFDTixJQUFJLENBQUMscUJBQXFCLEdBQUcsR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELE1BQU0sSUFBSSxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FB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QjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBIdHRwUmVxdWVzdCxcclxuICBIdHRwSGFuZGxlcixcclxuICBIdHRwRXZlbnQsXHJcbiAgSHR0cEludGVyY2VwdG9yLFxyXG4gIEh0dHBFcnJvclJlc3BvbnNlXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIHN3aXRjaE1hcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBIdHRwQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuXHJcbiAgYXV0aGxvY2FsU3RvcmFnZVRva2VuOiBzdHJpbmc9Jyc7XHJcbiAgcHJpdmF0ZSBpc1JlZnJlc2hpbmdUb2tlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdG9rZW5SZWZyZXNoZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5zdWJzY3JpYmUoKGVudik9PntcclxuICAgICAgaWYoZW52KXtcclxuICAgICAgIHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuID0gYCR7ZW52LmFwcFZlcnNpb259LSR7ZW52LlVTRVJEQVRBX0tFWX1gO31cclxuICAgICB9KVxyXG4gIH1cclxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBjb25zdCB1c2VyOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuKSB8fCAne30nKTtcclxuICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcclxuICAgICAgc2V0SGVhZGVyczoge1xyXG4gICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHVzZXIuYXV0aGVudGljYXRpb25Ub2tlblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjphbnkpPT57XHJcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgJiYgZXJyb3Iuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgIC8vIElmIHRoZSBlcnJvciBpcyBkdWUgdG8gdW5hdXRob3JpemVkIGFjY2VzcywgdHJ5IHRvIHJlZnJlc2ggdGhlIHRva2VuXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGU0MDFFcnJvcihyZXF1ZXN0LCBuZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlNDAxRXJyb3IocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBpZiAoIXRoaXMuaXNSZWZyZXNoaW5nVG9rZW4pIHtcclxuICAgICAgdGhpcy5pc1JlZnJlc2hpbmdUb2tlbiA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbigpLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBsb2NhbCBzdG9yYWdlIHdpdGggdGhlIG5ldyB0b2tlblxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbiwgSlNPTi5zdHJpbmdpZnkocmVzLmRhdGEucmVzdWx0KSk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyBDbG9uZSB0aGUgcmVxdWVzdCB3aXRoIHRoZSBuZXcgdG9rZW5cclxuICAgICAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xyXG4gICAgICAgICAgICAgIHNldEhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtyZXMuZGF0YS5yZXN1bHQuYXV0aGVudGljYXRpb25Ub2tlbn1gXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICBcclxuICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGZsYWcgZm9yIHRva2VuIHJlZnJlc2hpbmdcclxuICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmdUb2tlbiA9IGZhbHNlO1xyXG4gIFxyXG4gICAgICAgICAgICAvLyBSZXRyeSB0aGUgb3JpZ2luYWwgcmVxdWVzdCB3aXRoIHRoZSBuZXcgdG9rZW5cclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gTG9nb3V0IHVzZXIgaWYgcmVmcmVzaCB0b2tlbiBmYWlsc1xyXG4gICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignVG9rZW4gRXhwaXJlZCBQbGVhc2UgTG9naW4gQWdhaW4hJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIC8vIExvZ291dCB1c2VyIGlmIHJlZnJlc2ggdG9rZW4gZmFpbHNcclxuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIElmIGFscmVhZHkgcmVmcmVzaGluZyB0aGUgdG9rZW4sIHF1ZXVlIHRoZSByZXF1ZXN0IGFuZCB3YWl0XHJcbiAgICAgIHJldHVybiB0aGlzLnRva2VuUmVmcmVzaGVkLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHRva2VuczogYW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbikgfHwgJ3t9Jyk7XHJcbiAgICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgICAgIHNldEhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0b2tlbnMuYXV0aGVudGljYXRpb25Ub2tlblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxufSJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "../../../../services/auth.service";
|
|
4
5
|
import * as i2 from "@angular/router";
|
|
@@ -19,6 +20,8 @@ export class SidebarFooterComponent {
|
|
|
19
20
|
currentLayoutType;
|
|
20
21
|
userValuefooter = '';
|
|
21
22
|
toggleAttr;
|
|
23
|
+
shouldShowMenuTop = true;
|
|
24
|
+
destroy$ = new Subject();
|
|
22
25
|
constructor(auth, router, layout) {
|
|
23
26
|
this.auth = auth;
|
|
24
27
|
this.router = router;
|
|
@@ -27,7 +30,7 @@ export class SidebarFooterComponent {
|
|
|
27
30
|
ngOnInit() {
|
|
28
31
|
this.toggleAttr = `app-sidebar-${this.toggleType}`;
|
|
29
32
|
const layoutSubscr = this.layout.currentLayoutTypeSubject
|
|
30
|
-
.asObservable()
|
|
33
|
+
.asObservable().pipe(takeUntil(this.destroy$))
|
|
31
34
|
.subscribe((layout) => {
|
|
32
35
|
this.currentLayoutType = layout;
|
|
33
36
|
});
|
|
@@ -61,13 +64,16 @@ export class SidebarFooterComponent {
|
|
|
61
64
|
// }
|
|
62
65
|
}
|
|
63
66
|
logout() {
|
|
64
|
-
this.auth.logout()
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
this.auth.logout();
|
|
68
|
+
// .pipe(takeUntil(this.destroy$)).subscribe((res:any)=>{
|
|
69
|
+
this.router.navigate(["/auth/login"]);
|
|
70
|
+
// })
|
|
67
71
|
localStorage.clear();
|
|
68
72
|
}
|
|
69
73
|
ngOnDestroy() {
|
|
70
|
-
this.unsubscribe.forEach((sb) => sb.unsubscribe());
|
|
74
|
+
// this.unsubscribe.forEach((sb) => sb.unsubscribe());
|
|
75
|
+
this.destroy$.next(true);
|
|
76
|
+
this.destroy$.complete();
|
|
71
77
|
}
|
|
72
78
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SidebarFooterComponent, deps: [{ token: i1.AuthService }, { token: i2.Router }, { token: i3.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
79
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SidebarFooterComponent, selector: "lib-sidebar-footer", inputs: { toggleButtonClass: "toggleButtonClass", toggleEnabled: "toggleEnabled", toggleType: "toggleType", toggleState: "toggleState", userValuefooter: "userValuefooter" }, ngImport: i0, template: "<div class=\"container-with-overflow\">\r\n <div id=\"kt_app_sidebar_menu_scroll\" class=\"\" data-kt-scroll=\"true\" data-kt-scroll-activate=\"true\"\r\n data-kt-scroll-height=\"auto\" data-kt-scroll-dependencies=\"#kt_app_sidebar_logo, #kt_app_sidebar_footer\"\r\n data-kt-scroll-wrappers=\"#kt_app_sidebar_menu\" data-kt-scroll-offset=\"5px\" data-kt-scroll-save-state=\"true\">\r\n <div class=\"menu menu-column menu-rounded menu-sub-indention fw-semibold fs-6\" id=\"kt_app_sidebar_menu\"\r\n data-kt-menu=\"true\" data-kt-menu-expand=\"false\">\r\n <div class=\"menu-item menu-accordion w-100 px-3\" id=\"#kt_app_sidebar_menu\" [ngClass]=\"{'active': isSubMenuActive}\"\r\n data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link without-sub\">\r\n <span class=\"menu-icon\">\r\n <img src=\"./assets/tango/Icons/Avatar.svg\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">{{ userValue.userName | titlecase}}<br>\r\n {{ userValue.email | titlecase}}</span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion w-100\" #accordion [ngClass]=\"{'menu-sub-top': isSubMenuActive}\"\r\n routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item px-3 border-profile-first\">\r\n <a class=\"menu-link without-sub\" href=\"/profile\" >\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M11.8574 3.83162C11.8574 5.94799 10.0668 7.66324 7.85742 7.66324C5.64805 7.66324 3.85742 5.94799 3.85742 3.83162C3.85742 1.71525 5.64805 0 7.85742 0C10.0668 0 11.8574 1.71525 11.8574 3.83162Z\"\r\n fill=\"#98A2B3\" />\r\n <path\r\n d=\"M6.36786 9.38452C2.85 9.38452 0 11.9226 0 15.0554C0 15.577 0.475 16.0001 1.06071 16.0001H14.9393C15.525 16.0001 16 15.577 16 15.0554C16 11.9226 13.15 9.38452 9.63214 9.38452H6.36786Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title\">Profile</span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path opacity=\"0.3\"\r\n d=\"M14.2222 11.5556V8C14.2222 4.56356 11.4364 1.77778 8 1.77778C4.56356 1.77778 1.77778 4.56356 1.77778 8V11.5556H14.2222ZM16 11.5556H0V8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8V11.5556Z\"\r\n fill=\"#D0D5DD\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M1.77778 9.77759H2.66667C3.64851 9.77759 4.44444 10.5735 4.44444 11.5554V14.222C4.44444 15.2039 3.64851 15.9998 2.66667 15.9998H1.77778C0.795938 15.9998 0 15.2039 0 14.222V11.5554C0 10.5735 0.795938 9.77759 1.77778 9.77759ZM13.3333 9.77759H14.2222C15.2041 9.77759 16 10.5735 16 11.5554V14.222C16 15.2039 15.2041 15.9998 14.2222 15.9998H13.3333C12.3515 15.9998 11.5556 15.2039 11.5556 14.222V11.5554C11.5556 10.5735 12.3515 9.77759 13.3333 9.77759Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title\">Support</span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" (click)=\"logout()\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path\r\n d=\"M5 13H2.33333C1.97971 13 1.64057 12.8595 1.39052 12.6095C1.14048 12.3594 1 12.0203 1 11.6667V2.33333C1 1.97971 1.14048 1.64057 1.39052 1.39052C1.64057 1.14048 1.97971 1 2.33333 1H5\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M9.66667 10.3332L13 6.99984M13 6.99984L9.66667 3.6665M13 6.99984H5\" stroke=\"#D0D5DD\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title\">Logout</span>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".menu{background:var(--Gray-700, #344054)}.menu .menu-item{position:relative;background:var(--Gray-700, #344054)}.menu .border-profile-first{border-top-left-radius:8px;border-top-right-radius:8px}.menu .menu-sub{position:absolute;top:100;bottom:calc(100% + 5px);left:0}.menu .menu-sub-top{bottom:auto;top:calc(100% + 5px)}.menu-sub-indention .menu-sub{margin-left:0rem!important}.custom-scroll{max-height:300px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }] });
|
|
@@ -86,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
86
92
|
}], userValuefooter: [{
|
|
87
93
|
type: Input
|
|
88
94
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFVcEUsTUFBTSxPQUFPLHNCQUFzQjtJQVliO0lBQTJCO0lBQXVCO0lBWHRFLGVBQWUsR0FBWSxLQUFLLENBQUM7SUFDakMsU0FBUyxDQUFNO0lBQ2YsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNSLFdBQVcsR0FBbUIsRUFBRSxDQUFDO0lBQ2hDLGlCQUFpQixHQUFXLEVBQUUsQ0FBQztJQUMvQixhQUFhLENBQVU7SUFDdkIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ2xDLGlCQUFpQixDQUFvQjtJQUM1QixlQUFlLEdBQU0sRUFBRSxDQUFDO0lBQ2pDLFVBQVUsQ0FBUztJQUNuQixZQUFvQixJQUFpQixFQUFVLE1BQWMsRUFBUyxNQUFxQjtRQUF2RSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQWU7SUFBRyxDQUFDO0lBRS9GLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCO2FBQ3RELFlBQVksRUFBRTthQUNkLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxJQUFJLFdBQVcsSUFBSSxZQUFZLEVBQUU7WUFDL0IsTUFBTSxRQUFRLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FDOUIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQzFDLENBQUM7WUFDRixXQUFXO1lBQ1gsa0NBQWtDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1lBQzFCLElBQUk7U0FDTDtJQUNILENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGVBQWUsR0FBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUMsd0ZBQXdGO1FBQ3hGLGlCQUFpQjtRQUNqQixpRkFBaUY7UUFDakYsb0JBQW9CO1FBQ3BCLGlIQUFpSDtRQUNqSCwrQ0FBK0M7UUFDL0MsK0NBQStDO1FBQy9DLDRGQUE0RjtRQUM1RiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLDRDQUE0QztRQUM1QyxlQUFlO1FBQ2Ysc0NBQXNDO1FBQ3RDLFFBQVE7UUFDUiwyQkFBMkI7UUFDM0IsTUFBTTtRQUNOLElBQUk7SUFDTixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBTyxFQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7dUdBN0RVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHdPQ1ZuQyxpeEpBbUVNOzsyRkR6RE8sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjtpSUFTckIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlLCBMYXlvdXRUeXBlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1zaWRlYmFyLWZvb3RlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgaXNTdWJNZW51QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdXNlclZhbHVlOiBhbnk7XHJcbiAgaG92ZXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgQElucHV0KCkgdG9nZ2xlQnV0dG9uQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRvZ2dsZUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdG9nZ2xlVHlwZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdG9nZ2xlU3RhdGU6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnRMYXlvdXRUeXBlOiBMYXlvdXRUeXBlIHwgbnVsbDtcclxuICBASW5wdXQoKSB1c2VyVmFsdWVmb290ZXI6IGFueT0nJztcclxuICB0b2dnbGVBdHRyOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixwcml2YXRlIGxheW91dDogTGF5b3V0U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvZ2dsZUF0dHIgPSBgYXBwLXNpZGViYXItJHt0aGlzLnRvZ2dsZVR5cGV9YDtcclxuICAgIGNvbnN0IGxheW91dFN1YnNjciA9IHRoaXMubGF5b3V0LmN1cnJlbnRMYXlvdXRUeXBlU3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnN1YnNjcmliZSgobGF5b3V0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGF5b3V0VHlwZSA9IGxheW91dDtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLnB1c2gobGF5b3V0U3Vic2NyKTtcclxuICAgIGlmICgndXNlci1pbmZvJyBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8IFwie31cIlxyXG4gICAgICApO1xyXG4gICAgICAvLyBkZWJ1Z2dlclxyXG4gICAgICAvLyBpZih0aGlzLnVzZXJWYWx1ZWZvb3RlciA9PT0nJyl7XHJcbiAgICAgIHRoaXMudXNlclZhbHVlID0gdXNlckRhdGE7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuaXNTdWJNZW51QWN0aXZlID0hdGhpcy5pc1N1Yk1lbnVBY3RpdmU7XHJcbiAgICAvLyBjb25zdCBzdWJtZW51ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1lbnUtc3ViJykgYXMgSFRNTEVsZW1lbnQ7IC8vIFR5cGUgYXNzZXJ0aW9uXHJcbiAgICAvLyBpZiAoc3VibWVudSkge1xyXG4gICAgLy8gICBjb25zdCBtZW51SXRlbSA9IHN1Ym1lbnUucGFyZW50RWxlbWVudDsgLy8gR2V0IHRoZSBwYXJlbnQgZWxlbWVudCBvZiBzdWJtZW51XHJcbiAgICAvLyAgIGlmIChtZW51SXRlbSkge1xyXG4gICAgLy8gICAgIGNvbnN0IG1lbnVJdGVtUmVjdCA9IG1lbnVJdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyAvLyBHZXQgdGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBvZiB0aGUgcGFyZW50IGVsZW1lbnRcclxuICAgIC8vICAgICBjb25zdCBtZW51SGVpZ2h0ID0gc3VibWVudS5vZmZzZXRIZWlnaHQ7XHJcbiAgICAvLyAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgLy8gICAgIC8vIGNvbnN0IG9mZnNldCA9IG1lbnVJdGVtUmVjdC50b3AgKyBtZW51SXRlbVJlY3QuaGVpZ2h0ICsgbWVudUhlaWdodCAtIHdpbmRvd0hlaWdodDtcclxuICAgIC8vICAgICBjb25zdCBvZmZzZXQgID0gMTAwXHJcbiAgICAvLyAgICAgaWYgKG9mZnNldCA+IDApIHtcclxuICAgIC8vICAgICAgIHN1Ym1lbnUuc3R5bGUudG9wID0gYC0ke29mZnNldH1weGA7XHJcbiAgICAvLyAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgIHN1Ym1lbnUuc3R5bGUudG9wID0gJzE4MDBweCc7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKHN1Ym1lbnUpXHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIHRoaXMuYXV0aC5sb2dvdXQoKS5zdWJzY3JpYmUoKHJlczphbnkpPT57XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvYXV0aC9sb2dpblwiXSk7XHJcbiAgICB9KVxyXG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5mb3JFYWNoKChzYikgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXdpdGgtb3ZlcmZsb3dcIj5cclxuICA8ZGl2IGlkPVwia3RfYXBwX3NpZGViYXJfbWVudV9zY3JvbGxcIiBjbGFzcz1cIlwiIGRhdGEta3Qtc2Nyb2xsPVwidHJ1ZVwiIGRhdGEta3Qtc2Nyb2xsLWFjdGl2YXRlPVwidHJ1ZVwiXHJcbiAgICBkYXRhLWt0LXNjcm9sbC1oZWlnaHQ9XCJhdXRvXCIgZGF0YS1rdC1zY3JvbGwtZGVwZW5kZW5jaWVzPVwiI2t0X2FwcF9zaWRlYmFyX2xvZ28sICNrdF9hcHBfc2lkZWJhcl9mb290ZXJcIlxyXG4gICAgZGF0YS1rdC1zY3JvbGwtd3JhcHBlcnM9XCIja3RfYXBwX3NpZGViYXJfbWVudVwiIGRhdGEta3Qtc2Nyb2xsLW9mZnNldD1cIjVweFwiIGRhdGEta3Qtc2Nyb2xsLXNhdmUtc3RhdGU9XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudSBtZW51LWNvbHVtbiBtZW51LXJvdW5kZWQgbWVudS1zdWItaW5kZW50aW9uIGZ3LXNlbWlib2xkIGZzLTZcIiBpZD1cImt0X2FwcF9zaWRlYmFyX21lbnVcIlxyXG4gICAgICBkYXRhLWt0LW1lbnU9XCJ0cnVlXCIgZGF0YS1rdC1tZW51LWV4cGFuZD1cImZhbHNlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1hY2NvcmRpb24gdy0xMDAgcHgtM1wiIGlkPVwiI2t0X2FwcF9zaWRlYmFyX21lbnVcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzU3ViTWVudUFjdGl2ZX1cIlxyXG4gICAgICAgIGRhdGEta3QtbWVudS10cmlnZ2VyPVwiY2xpY2tcIiByb3V0ZXJMaW5rQWN0aXZlPVwiaGVyZSBzaG93XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvQXZhdGFyLnN2Z1wiPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCIgZGF0YS1saW5rPVwiL2NyYWZ0ZWQvYWNjb3VudFwiPnt7IHVzZXJWYWx1ZS51c2VyTmFtZSB8IHRpdGxlY2FzZX19PGJyPlxyXG4gICAgICAgICAge3sgdXNlclZhbHVlLmVtYWlsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYXJyb3dcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb24gdy0xMDBcIiAjYWNjb3JkaW9uIFtuZ0NsYXNzXT1cInsnbWVudS1zdWItdG9wJzogaXNTdWJNZW51QWN0aXZlfVwiXHJcbiAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwibWVudS1hY3RpdmUtYmdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtMyBib3JkZXItcHJvZmlsZS1maXJzdFwiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIGhyZWY9XCIvcHJvZmlsZVwiID5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjg1NzQgMy44MzE2MkMxMS44NTc0IDUuOTQ3OTkgMTAuMDY2OCA3LjY2MzI0IDcuODU3NDIgNy42NjMyNEM1LjY0ODA1IDcuNjYzMjQgMy44NTc0MiA1Ljk0Nzk5IDMuODU3NDIgMy44MzE2MkMzLjg1NzQyIDEuNzE1MjUgNS42NDgwNSAwIDcuODU3NDIgMEMxMC4wNjY4IDAgMTEuODU3NCAxLjcxNTI1IDExLjg1NzQgMy44MzE2MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjOThBMkIzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMzY3ODYgOS4zODQ1MkMyLjg1IDkuMzg0NTIgMCAxMS45MjI2IDAgMTUuMDU1NEMwIDE1LjU3NyAwLjQ3NSAxNi4wMDAxIDEuMDYwNzEgMTYuMDAwMUgxNC45MzkzQzE1LjUyNSAxNi4wMDAxIDE2IDE1LjU3NyAxNiAxNS4wNTU0QzE2IDExLjkyMjYgMTMuMTUgOS4zODQ1MiA5LjYzMjE0IDkuMzg0NTJINi4zNjc4NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5Qcm9maWxlPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtM1wiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMHB4O1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggb3BhY2l0eT1cIjAuM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4yMjIyIDExLjU1NTZWOEMxNC4yMjIyIDQuNTYzNTYgMTEuNDM2NCAxLjc3Nzc4IDggMS43Nzc3OEM0LjU2MzU2IDEuNzc3NzggMS43Nzc3OCA0LjU2MzU2IDEuNzc3NzggOFYxMS41NTU2SDE0LjIyMjJaTTE2IDExLjU1NTZIMFY4QzAgMy41ODE3MiAzLjU4MTcyIDAgOCAwQzEyLjQxODMgMCAxNiAzLjU4MTcyIDE2IDhWMTEuNTU1NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMS43Nzc3OCA5Ljc3NzU5SDIuNjY2NjdDMy42NDg1MSA5Ljc3NzU5IDQuNDQ0NDQgMTAuNTczNSA0LjQ0NDQ0IDExLjU1NTRWMTQuMjIyQzQuNDQ0NDQgMTUuMjAzOSAzLjY0ODUxIDE1Ljk5OTggMi42NjY2NyAxNS45OTk4SDEuNzc3NzhDMC43OTU5MzggMTUuOTk5OCAwIDE1LjIwMzkgMCAxNC4yMjJWMTEuNTU1NEMwIDEwLjU3MzUgMC43OTU5MzggOS43Nzc1OSAxLjc3Nzc4IDkuNzc3NTlaTTEzLjMzMzMgOS43Nzc1OUgxNC4yMjIyQzE1LjIwNDEgOS43Nzc1OSAxNiAxMC41NzM1IDE2IDExLjU1NTRWMTQuMjIyQzE2IDE1LjIwMzkgMTUuMjA0MSAxNS45OTk4IDE0LjIyMjIgMTUuOTk5OEgxMy4zMzMzQzEyLjM1MTUgMTUuOTk5OCAxMS41NTU2IDE1LjIwMzkgMTEuNTU1NiAxNC4yMjJWMTEuNTU1NEMxMS41NTU2IDEwLjU3MzUgMTIuMzUxNSA5Ljc3NzU5IDEzLjMzMzMgOS43Nzc1OVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5TdXBwb3J0PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtM1wiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMHB4O1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIChjbGljayk9XCJsb2dvdXQoKVwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMTNIMi4zMzMzM0MxLjk3OTcxIDEzIDEuNjQwNTcgMTIuODU5NSAxLjM5MDUyIDEyLjYwOTVDMS4xNDA0OCAxMi4zNTk0IDEgMTIuMDIwMyAxIDExLjY2NjdWMi4zMzMzM0MxIDEuOTc5NzEgMS4xNDA0OCAxLjY0MDU3IDEuMzkwNTIgMS4zOTA1MkMxLjY0MDU3IDEuMTQwNDggMS45Nzk3MSAxIDIuMzMzMzMgMUg1XCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS42NjY2NyAxMC4zMzMyTDEzIDYuOTk5ODRNMTMgNi45OTk4NEw5LjY2NjY3IDMuNjY2NU0xMyA2Ljk5OTg0SDVcIiBzdHJva2U9XCIjRDBENUREXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5Mb2dvdXQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR3BFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBT3hELE1BQU0sT0FBTyxzQkFBc0I7SUFjYjtJQUEyQjtJQUF1QjtJQWJ0RSxlQUFlLEdBQVksS0FBSyxDQUFDO0lBQ2pDLFNBQVMsQ0FBTTtJQUNmLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDUixXQUFXLEdBQW1CLEVBQUUsQ0FBQztJQUNoQyxpQkFBaUIsR0FBVyxFQUFFLENBQUM7SUFDL0IsYUFBYSxDQUFVO0lBQ3ZCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUNsQyxpQkFBaUIsQ0FBb0I7SUFDNUIsZUFBZSxHQUFNLEVBQUUsQ0FBQztJQUNqQyxVQUFVLENBQVM7SUFDbkIsaUJBQWlCLEdBQVksSUFBSSxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFlBQW9CLElBQWlCLEVBQVUsTUFBYyxFQUFTLE1BQXFCO1FBQXZFLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUFHLENBQUM7SUFFL0YsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0I7YUFDdEQsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0MsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLElBQUksV0FBVyxJQUFJLFlBQVksRUFBRTtZQUMvQixNQUFNLFFBQVEsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUM5QixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FDMUMsQ0FBQztZQUNGLFdBQVc7WUFDWCxrQ0FBa0M7WUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7WUFDMUIsSUFBSTtTQUNMO0lBQ0gsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsZUFBZSxHQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM1Qyx3RkFBd0Y7UUFDeEYsaUJBQWlCO1FBQ2pCLGlGQUFpRjtRQUNqRixvQkFBb0I7UUFDcEIsaUhBQWlIO1FBQ2pILCtDQUErQztRQUMvQywrQ0FBK0M7UUFDL0MsNEZBQTRGO1FBQzVGLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIsNENBQTRDO1FBQzVDLGVBQWU7UUFDZixzQ0FBc0M7UUFDdEMsUUFBUTtRQUNSLDJCQUEyQjtRQUMzQixNQUFNO1FBQ04sSUFBSTtJQUNOLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNsQix5REFBeUQ7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLEtBQUs7UUFDTCxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELFdBQVc7UUFDVCxzREFBc0Q7UUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO3VHQWxFVSxzQkFBc0I7MkZBQXRCLHNCQUFzQix3T0NWbkMsaXhKQW1FTTs7MkZEekRPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7aUlBU3JCLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlLCBMYXlvdXRUeXBlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1zaWRlYmFyLWZvb3RlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgaXNTdWJNZW51QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdXNlclZhbHVlOiBhbnk7XHJcbiAgaG92ZXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgQElucHV0KCkgdG9nZ2xlQnV0dG9uQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRvZ2dsZUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdG9nZ2xlVHlwZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdG9nZ2xlU3RhdGU6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnRMYXlvdXRUeXBlOiBMYXlvdXRUeXBlIHwgbnVsbDtcclxuICBASW5wdXQoKSB1c2VyVmFsdWVmb290ZXI6IGFueT0nJztcclxuICB0b2dnbGVBdHRyOiBzdHJpbmc7XHJcbiAgc2hvdWxkU2hvd01lbnVUb3A6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIscHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50b2dnbGVBdHRyID0gYGFwcC1zaWRlYmFyLSR7dGhpcy50b2dnbGVUeXBlfWA7XHJcbiAgICBjb25zdCBsYXlvdXRTdWJzY3IgPSB0aGlzLmxheW91dC5jdXJyZW50TGF5b3V0VHlwZVN1YmplY3RcclxuICAgICAgLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsYXlvdXQpID0+IHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMYXlvdXRUeXBlID0gbGF5b3V0O1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUucHVzaChsYXlvdXRTdWJzY3IpO1xyXG4gICAgaWYgKCd1c2VyLWluZm8nIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCB1c2VyRGF0YTogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIGRlYnVnZ2VyXHJcbiAgICAgIC8vIGlmKHRoaXMudXNlclZhbHVlZm9vdGVyID09PScnKXtcclxuICAgICAgdGhpcy51c2VyVmFsdWUgPSB1c2VyRGF0YTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGVNZW51KCkge1xyXG4gICAgdGhpcy5pc1N1Yk1lbnVBY3RpdmUgPSF0aGlzLmlzU3ViTWVudUFjdGl2ZTtcclxuICAgIC8vIGNvbnN0IHN1Ym1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVudS1zdWInKSBhcyBIVE1MRWxlbWVudDsgLy8gVHlwZSBhc3NlcnRpb25cclxuICAgIC8vIGlmIChzdWJtZW51KSB7XHJcbiAgICAvLyAgIGNvbnN0IG1lbnVJdGVtID0gc3VibWVudS5wYXJlbnRFbGVtZW50OyAvLyBHZXQgdGhlIHBhcmVudCBlbGVtZW50IG9mIHN1Ym1lbnVcclxuICAgIC8vICAgaWYgKG1lbnVJdGVtKSB7XHJcbiAgICAvLyAgICAgY29uc3QgbWVudUl0ZW1SZWN0ID0gbWVudUl0ZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IC8vIEdldCB0aGUgYm91bmRpbmcgcmVjdGFuZ2xlIG9mIHRoZSBwYXJlbnQgZWxlbWVudFxyXG4gICAgLy8gICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBzdWJtZW51Lm9mZnNldEhlaWdodDtcclxuICAgIC8vICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAvLyAgICAgLy8gY29uc3Qgb2Zmc2V0ID0gbWVudUl0ZW1SZWN0LnRvcCArIG1lbnVJdGVtUmVjdC5oZWlnaHQgKyBtZW51SGVpZ2h0IC0gd2luZG93SGVpZ2h0O1xyXG4gICAgLy8gICAgIGNvbnN0IG9mZnNldCAgPSAxMDBcclxuICAgIC8vICAgICBpZiAob2Zmc2V0ID4gMCkge1xyXG4gICAgLy8gICAgICAgc3VibWVudS5zdHlsZS50b3AgPSBgLSR7b2Zmc2V0fXB4YDtcclxuICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgc3VibWVudS5zdHlsZS50b3AgPSAnMTgwMHB4JztcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgY29uc29sZS5sb2coc3VibWVudSlcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5hdXRoLmxvZ291dCgpXHJcbiAgICAvLyAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzOmFueSk9PntcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9hdXRoL2xvZ2luXCJdKTtcclxuICAgIC8vIH0pXHJcbiAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyB0aGlzLnVuc3Vic2NyaWJlLmZvckVhY2goKHNiKSA9PiBzYi51bnN1YnNjcmliZSgpKTtcclxuICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXdpdGgtb3ZlcmZsb3dcIj5cclxuICA8ZGl2IGlkPVwia3RfYXBwX3NpZGViYXJfbWVudV9zY3JvbGxcIiBjbGFzcz1cIlwiIGRhdGEta3Qtc2Nyb2xsPVwidHJ1ZVwiIGRhdGEta3Qtc2Nyb2xsLWFjdGl2YXRlPVwidHJ1ZVwiXHJcbiAgICBkYXRhLWt0LXNjcm9sbC1oZWlnaHQ9XCJhdXRvXCIgZGF0YS1rdC1zY3JvbGwtZGVwZW5kZW5jaWVzPVwiI2t0X2FwcF9zaWRlYmFyX2xvZ28sICNrdF9hcHBfc2lkZWJhcl9mb290ZXJcIlxyXG4gICAgZGF0YS1rdC1zY3JvbGwtd3JhcHBlcnM9XCIja3RfYXBwX3NpZGViYXJfbWVudVwiIGRhdGEta3Qtc2Nyb2xsLW9mZnNldD1cIjVweFwiIGRhdGEta3Qtc2Nyb2xsLXNhdmUtc3RhdGU9XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudSBtZW51LWNvbHVtbiBtZW51LXJvdW5kZWQgbWVudS1zdWItaW5kZW50aW9uIGZ3LXNlbWlib2xkIGZzLTZcIiBpZD1cImt0X2FwcF9zaWRlYmFyX21lbnVcIlxyXG4gICAgICBkYXRhLWt0LW1lbnU9XCJ0cnVlXCIgZGF0YS1rdC1tZW51LWV4cGFuZD1cImZhbHNlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1hY2NvcmRpb24gdy0xMDAgcHgtM1wiIGlkPVwiI2t0X2FwcF9zaWRlYmFyX21lbnVcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzU3ViTWVudUFjdGl2ZX1cIlxyXG4gICAgICAgIGRhdGEta3QtbWVudS10cmlnZ2VyPVwiY2xpY2tcIiByb3V0ZXJMaW5rQWN0aXZlPVwiaGVyZSBzaG93XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvQXZhdGFyLnN2Z1wiPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCIgZGF0YS1saW5rPVwiL2NyYWZ0ZWQvYWNjb3VudFwiPnt7IHVzZXJWYWx1ZS51c2VyTmFtZSB8IHRpdGxlY2FzZX19PGJyPlxyXG4gICAgICAgICAge3sgdXNlclZhbHVlLmVtYWlsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYXJyb3dcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb24gdy0xMDBcIiAjYWNjb3JkaW9uIFtuZ0NsYXNzXT1cInsnbWVudS1zdWItdG9wJzogaXNTdWJNZW51QWN0aXZlfVwiXHJcbiAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwibWVudS1hY3RpdmUtYmdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtMyBib3JkZXItcHJvZmlsZS1maXJzdFwiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIGhyZWY9XCIvcHJvZmlsZVwiID5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjg1NzQgMy44MzE2MkMxMS44NTc0IDUuOTQ3OTkgMTAuMDY2OCA3LjY2MzI0IDcuODU3NDIgNy42NjMyNEM1LjY0ODA1IDcuNjYzMjQgMy44NTc0MiA1Ljk0Nzk5IDMuODU3NDIgMy44MzE2MkMzLjg1NzQyIDEuNzE1MjUgNS42NDgwNSAwIDcuODU3NDIgMEMxMC4wNjY4IDAgMTEuODU3NCAxLjcxNTI1IDExLjg1NzQgMy44MzE2MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjOThBMkIzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMzY3ODYgOS4zODQ1MkMyLjg1IDkuMzg0NTIgMCAxMS45MjI2IDAgMTUuMDU1NEMwIDE1LjU3NyAwLjQ3NSAxNi4wMDAxIDEuMDYwNzEgMTYuMDAwMUgxNC45MzkzQzE1LjUyNSAxNi4wMDAxIDE2IDE1LjU3NyAxNiAxNS4wNTU0QzE2IDExLjkyMjYgMTMuMTUgOS4zODQ1MiA5LjYzMjE0IDkuMzg0NTJINi4zNjc4NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5Qcm9maWxlPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtM1wiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMHB4O1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggb3BhY2l0eT1cIjAuM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4yMjIyIDExLjU1NTZWOEMxNC4yMjIyIDQuNTYzNTYgMTEuNDM2NCAxLjc3Nzc4IDggMS43Nzc3OEM0LjU2MzU2IDEuNzc3NzggMS43Nzc3OCA0LjU2MzU2IDEuNzc3NzggOFYxMS41NTU2SDE0LjIyMjJaTTE2IDExLjU1NTZIMFY4QzAgMy41ODE3MiAzLjU4MTcyIDAgOCAwQzEyLjQxODMgMCAxNiAzLjU4MTcyIDE2IDhWMTEuNTU1NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMS43Nzc3OCA5Ljc3NzU5SDIuNjY2NjdDMy42NDg1MSA5Ljc3NzU5IDQuNDQ0NDQgMTAuNTczNSA0LjQ0NDQ0IDExLjU1NTRWMTQuMjIyQzQuNDQ0NDQgMTUuMjAzOSAzLjY0ODUxIDE1Ljk5OTggMi42NjY2NyAxNS45OTk4SDEuNzc3NzhDMC43OTU5MzggMTUuOTk5OCAwIDE1LjIwMzkgMCAxNC4yMjJWMTEuNTU1NEMwIDEwLjU3MzUgMC43OTU5MzggOS43Nzc1OSAxLjc3Nzc4IDkuNzc3NTlaTTEzLjMzMzMgOS43Nzc1OUgxNC4yMjIyQzE1LjIwNDEgOS43Nzc1OSAxNiAxMC41NzM1IDE2IDExLjU1NTRWMTQuMjIyQzE2IDE1LjIwMzkgMTUuMjA0MSAxNS45OTk4IDE0LjIyMjIgMTUuOTk5OEgxMy4zMzMzQzEyLjM1MTUgMTUuOTk5OCAxMS41NTU2IDE1LjIwMzkgMTEuNTU1NiAxNC4yMjJWMTEuNTU1NEMxMS41NTU2IDEwLjU3MzUgMTIuMzUxNSA5Ljc3NzU5IDEzLjMzMzMgOS43Nzc1OVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5TdXBwb3J0PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtM1wiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMHB4O1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIChjbGljayk9XCJsb2dvdXQoKVwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMTNIMi4zMzMzM0MxLjk3OTcxIDEzIDEuNjQwNTcgMTIuODU5NSAxLjM5MDUyIDEyLjYwOTVDMS4xNDA0OCAxMi4zNTk0IDEgMTIuMDIwMyAxIDExLjY2NjdWMi4zMzMzM0MxIDEuOTc5NzEgMS4xNDA0OCAxLjY0MDU3IDEuMzkwNTIgMS4zOTA1MkMxLjY0MDU3IDEuMTQwNDggMS45Nzk3MSAxIDIuMzMzMzMgMUg1XCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS42NjY2NyAxMC4zMzMyTDEzIDYuOTk5ODRNMTMgNi45OTk4NEw5LjY2NjY3IDMuNjY2NU0xMyA2Ljk5OTg0SDVcIiBzdHJva2U9XCIjRDBENUREXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5Mb2dvdXQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -4,11 +4,11 @@ const Routing = [
|
|
|
4
4
|
path: 'manage',
|
|
5
5
|
loadChildren: () => import('./route-wraper-modules/manage-wrapper.module').then((m) => m.ManageWrapperModule),
|
|
6
6
|
},
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
},
|
|
7
|
+
// {
|
|
8
|
+
// path: 'manage/stores/edge-app',
|
|
9
|
+
// loadChildren: () => import('./route-wraper-modules/edge-wrapper.module').then((m) => m.TangoEdgeAppWrapperModule),
|
|
10
|
+
// canActivate:[storesGuard]
|
|
11
|
+
// },
|
|
12
12
|
{
|
|
13
13
|
path: 'manage/stores/:id',
|
|
14
14
|
loadChildren: () => import('./route-wraper-modules/store-wrapper.module').then((m) => m.StoreWrapperModule),
|
|
@@ -34,4 +34,4 @@ const Routing = [
|
|
|
34
34
|
},
|
|
35
35
|
];
|
|
36
36
|
export { Routing };
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9yb3V0ZXMvcm91dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJckQsTUFBTSxPQUFPLEdBQVc7SUFDdEI7UUFDRSxJQUFJLEVBQUUsUUFBUTtRQUNkLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsOENBQThDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztLQUM5RztJQUNELElBQUk7SUFDSixvQ0FBb0M7SUFDcEMsdUhBQXVIO0lBQ3ZILDhCQUE4QjtJQUM5QixLQUFLO0lBQ0w7UUFDRSxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUMzRyxXQUFXLEVBQUMsQ0FBQyxXQUFXLENBQUM7S0FDMUI7SUFDRDtRQUNFLElBQUksRUFBRSxTQUFTO1FBQ2YsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0tBQ2hIO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsU0FBUztRQUNmLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsOENBQThDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztRQUM3Ryw2QkFBNkI7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsVUFBVSxFQUFFLFNBQVM7UUFDckIsU0FBUyxFQUFFLE1BQU07S0FDbEI7SUFDRDtRQUNFLElBQUksRUFBRSxJQUFJO1FBQ1YsVUFBVSxFQUFFLFdBQVc7S0FDeEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgc3RvcmVzR3VhcmQgfSBmcm9tICcuLi9ndWFyZHMvc3RvcmVzLmd1YXJkJztcclxuaW1wb3J0IHsgdGlja2V0c0d1YXJkIH0gZnJvbSAnLi4vZ3VhcmRzL3RpY2tldHMuZ3VhcmQnO1xyXG5cclxuXHJcbmNvbnN0IFJvdXRpbmc6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiAnbWFuYWdlJyxcclxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCcuL3JvdXRlLXdyYXBlci1tb2R1bGVzL21hbmFnZS13cmFwcGVyLm1vZHVsZScpLnRoZW4oKG0pID0+IG0uTWFuYWdlV3JhcHBlck1vZHVsZSksXHJcbiAgfSxcclxuICAvLyB7XHJcbiAgLy8gICBwYXRoOiAnbWFuYWdlL3N0b3Jlcy9lZGdlLWFwcCcsXHJcbiAgLy8gICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9yb3V0ZS13cmFwZXItbW9kdWxlcy9lZGdlLXdyYXBwZXIubW9kdWxlJykudGhlbigobSkgPT4gbS5UYW5nb0VkZ2VBcHBXcmFwcGVyTW9kdWxlKSxcclxuICAvLyAgIGNhbkFjdGl2YXRlOltzdG9yZXNHdWFyZF1cclxuICAvLyB9LFxyXG4gIHtcclxuICAgIHBhdGg6ICdtYW5hZ2Uvc3RvcmVzLzppZCcsXHJcbiAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9yb3V0ZS13cmFwZXItbW9kdWxlcy9zdG9yZS13cmFwcGVyLm1vZHVsZScpLnRoZW4oKG0pID0+IG0uU3RvcmVXcmFwcGVyTW9kdWxlKSxcclxuICAgIGNhbkFjdGl2YXRlOltzdG9yZXNHdWFyZF1cclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6ICdwcm9maWxlJyxcclxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCcuL3JvdXRlLXdyYXBlci1tb2R1bGVzL3Byb2ZpbGUtd3JhcHBlci5tb2R1bGUnKS50aGVuKChtKSA9PiBtLlByb2ZpbGVXcmFwcGVyTW9kdWxlKSxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6ICd0aWNrZXRzJyxcclxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCcuL3JvdXRlLXdyYXBlci1tb2R1bGVzL3RpY2tldC13cmFwcGVyLm1vZHVsZScpLnRoZW4oKG0pID0+IG0uVGlja2V0V3JhcHBlck1vZHVsZSksXHJcbiAgICAvLyBjYW5BY3RpdmF0ZTpbdGlja2V0c0d1YXJkXVxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogJycsXHJcbiAgICByZWRpcmVjdFRvOiAnL21hbmFnZScsXHJcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6ICcqKicsXHJcbiAgICByZWRpcmVjdFRvOiAnZXJyb3IvNDA0JyxcclxuICB9LFxyXG5dO1xyXG5cclxuZXhwb3J0IHsgUm91dGluZyB9O1xyXG4iXX0=
|
|
@@ -4,7 +4,6 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
import * as i1 from "@angular/router";
|
|
5
5
|
import * as i2 from "tango-app-ui-global";
|
|
6
6
|
import * as i3 from "@angular/common/http";
|
|
7
|
-
// import { GlobalStateService } from './global-state.service';
|
|
8
7
|
export class AuthService {
|
|
9
8
|
router;
|
|
10
9
|
gs;
|
|
@@ -63,6 +62,17 @@ export class AuthService {
|
|
|
63
62
|
return response;
|
|
64
63
|
}), catchError(this.handleError));
|
|
65
64
|
}
|
|
65
|
+
refreshToken() {
|
|
66
|
+
const userId = JSON.parse(localStorage.getItem("user-info") || "")?._id;
|
|
67
|
+
const refreshToken = JSON.parse(localStorage.getItem(this.authlocalStorageToken) || "")?.refreshToken;
|
|
68
|
+
let params = {
|
|
69
|
+
userId: userId,
|
|
70
|
+
refreshToken: refreshToken,
|
|
71
|
+
};
|
|
72
|
+
return this.http
|
|
73
|
+
.get(`${this.userApiUrl}/refresh-token`, { params: params })
|
|
74
|
+
.pipe(map((response) => response), catchError(this.handleError));
|
|
75
|
+
}
|
|
66
76
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AuthService, deps: [{ token: i1.Router }, { token: i2.GlobalStateService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
67
77
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
68
78
|
}
|
|
@@ -72,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
72
82
|
providedIn: 'root'
|
|
73
83
|
}]
|
|
74
84
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.GlobalStateService }, { type: i3.HttpClient }] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFNLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFPbkUsTUFBTSxPQUFPLFdBQVc7SUFPRjtJQUFzQjtJQUE4QjtJQU54RSxZQUFZLENBQVM7SUFDckIscUJBQXFCLENBQVM7SUFDOUIsVUFBVSxDQUFTO0lBQ25CLFdBQVcsQ0FBUztJQUNwQixlQUFlLENBQVM7SUFFeEIsWUFBb0IsTUFBYSxFQUFTLEVBQXFCLEVBQVMsSUFBZTtRQUFuRSxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQ3JGLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFO1lBQ3JDLElBQUcsR0FBRyxFQUFDO2dCQUNOLElBQUksQ0FBQyxZQUFZLEdBQUksR0FBRyxDQUFDLFlBQVksQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckU7UUFDRixDQUFDLENBQUMsQ0FBQTtJQUFDLENBQUM7SUFFSixX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dUdBOUVVLFdBQVc7MkdBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBtYXAsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xyXG4gIGNsaWVudEFwaVVybDogc3RyaW5nO1xyXG4gIGF1dGhsb2NhbFN0b3JhZ2VUb2tlbjogc3RyaW5nO1xyXG4gIHVzZXJBcGlVcmw6IHN0cmluZztcclxuICBzdG9yZUFwaVVybDogc3RyaW5nO1xyXG4gIG9sZERhc2hib2FyZFVybDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjpSb3V0ZXIscHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSBodHRwOkh0dHBDbGllbnQpIHsgIFxyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5zdWJzY3JpYmUoKGVudik9PntcclxuICAgIGlmKGVudil7XHJcbiAgICAgdGhpcy5jbGllbnRBcGlVcmwgPSAgZW52LmNsaWVudEFwaVVybDtcclxuICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDsgXHJcbiAgICAgdGhpcy5zdG9yZUFwaVVybCA9ZW52LnN0b3JlQXBpVXJsO1xyXG4gICAgIHRoaXMub2xkRGFzaGJvYXJkVXJsID1lbnYub2xkRGFzaGJvYXJkVXJsO1xyXG4gICAgIHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuID0gYCR7ZW52LmFwcFZlcnNpb259LSR7ZW52LlVTRVJEQVRBX0tFWX1gO1xyXG4gICAgfVxyXG4gICB9KSB9XHJcbiAgIFxyXG4gICBoYW5kbGVFcnJvcihyZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRocm93RXJyb3IocmVzLmVycm9yKTtcclxufVxyXG5nZXRIZWFkZXJzKCkge1xyXG4gIGNvbnN0IGhlYWRlcnMgPSB7XHJcbiAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgdGhpcy5hdXRobG9jYWxTdG9yYWdlVG9rZW5cclxuICB9O1xyXG5cclxuICByZXR1cm4gaGVhZGVycztcclxufVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVzZXJBcGlVcmx9L2xvZ291dGAsIHtcclxuICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKClcclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldENsaWVudHMoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9nZXQtY2xpZW50c2AsIHtcclxuICB9KVxyXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG4gIH1cclxuICBnZXRTdG9yZXMoaWQ6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc3RvcmVBcGlVcmx9L2dldC1zdG9yZXM/Y2xpZW50SWQ9JHtpZH1gLCB7XHJcbiAgfSlcclxuICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxuICB9XHJcbiAgZ2V0T2xkRGFzaGJvYXJkUmVkaXJlY3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMub2xkRGFzaGJvYXJkVXJsfS9hdXRoL29sZERhc2hib2FyZFVzZXJMb2dpbmAsZGF0YSwge1xyXG4gICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKVxyXG4gICAgfSlcclxuICB9XHJcbiAgdXNlclByb2ZpbGVEZXQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLnVzZXJBcGlVcmx9L3Byb2ZpbGVgLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJ1c2VyLWluZm9cIiwgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSkpO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hUb2tlbigpIHtcclxuICAgIGNvbnN0IHVzZXJJZCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJcIik/Ll9pZDtcclxuICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IEpTT04ucGFyc2UoXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuKSB8fCBcIlwiXHJcbiAgICApPy5yZWZyZXNoVG9rZW47XHJcbiAgICBsZXQgcGFyYW1zOiBhbnkgPSB7XHJcbiAgICAgIHVzZXJJZDogdXNlcklkLFxyXG4gICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbixcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy51c2VyQXBpVXJsfS9yZWZyZXNoLXRva2VuYCwgeyBwYXJhbXM6IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -4,7 +4,7 @@ import * as i1 from '@angular/router';
|
|
|
4
4
|
import { NavigationEnd, NavigationCancel, ResolveEnd, Router, RouterModule } from '@angular/router';
|
|
5
5
|
import * as i1$1 from 'tango-app-ui-global';
|
|
6
6
|
import { MenuComponent, ToggleComponent, ScrollTopComponent, DrawerComponent, StickyComponent, ScrollComponent, GlobalStateService } from 'tango-app-ui-global';
|
|
7
|
-
import { throwError, map, catchError, takeUntil, Subject, take } from 'rxjs';
|
|
7
|
+
import { throwError, map, catchError, takeUntil, Subject, take, BehaviorSubject, switchMap } from 'rxjs';
|
|
8
8
|
import * as i3 from '@angular/common/http';
|
|
9
9
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
10
10
|
import Swal from 'sweetalert2';
|
|
@@ -28,7 +28,6 @@ import { TranslateModule } from '@ngx-translate/core';
|
|
|
28
28
|
import { InlineSVGModule } from 'ng-inline-svg-2';
|
|
29
29
|
import { NgbDropdownModule, NgbProgressbarModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
|
|
30
30
|
|
|
31
|
-
// import { GlobalStateService } from './global-state.service';
|
|
32
31
|
class AuthService {
|
|
33
32
|
router;
|
|
34
33
|
gs;
|
|
@@ -87,6 +86,17 @@ class AuthService {
|
|
|
87
86
|
return response;
|
|
88
87
|
}), catchError(this.handleError));
|
|
89
88
|
}
|
|
89
|
+
refreshToken() {
|
|
90
|
+
const userId = JSON.parse(localStorage.getItem("user-info") || "")?._id;
|
|
91
|
+
const refreshToken = JSON.parse(localStorage.getItem(this.authlocalStorageToken) || "")?.refreshToken;
|
|
92
|
+
let params = {
|
|
93
|
+
userId: userId,
|
|
94
|
+
refreshToken: refreshToken,
|
|
95
|
+
};
|
|
96
|
+
return this.http
|
|
97
|
+
.get(`${this.userApiUrl}/refresh-token`, { params: params })
|
|
98
|
+
.pipe(map((response) => response), catchError(this.handleError));
|
|
99
|
+
}
|
|
90
100
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AuthService, deps: [{ token: i1.Router }, { token: i1$1.GlobalStateService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
91
101
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
92
102
|
}
|
|
@@ -2789,6 +2799,8 @@ class SidebarFooterComponent {
|
|
|
2789
2799
|
currentLayoutType;
|
|
2790
2800
|
userValuefooter = '';
|
|
2791
2801
|
toggleAttr;
|
|
2802
|
+
shouldShowMenuTop = true;
|
|
2803
|
+
destroy$ = new Subject();
|
|
2792
2804
|
constructor(auth, router, layout) {
|
|
2793
2805
|
this.auth = auth;
|
|
2794
2806
|
this.router = router;
|
|
@@ -2797,7 +2809,7 @@ class SidebarFooterComponent {
|
|
|
2797
2809
|
ngOnInit() {
|
|
2798
2810
|
this.toggleAttr = `app-sidebar-${this.toggleType}`;
|
|
2799
2811
|
const layoutSubscr = this.layout.currentLayoutTypeSubject
|
|
2800
|
-
.asObservable()
|
|
2812
|
+
.asObservable().pipe(takeUntil(this.destroy$))
|
|
2801
2813
|
.subscribe((layout) => {
|
|
2802
2814
|
this.currentLayoutType = layout;
|
|
2803
2815
|
});
|
|
@@ -2831,13 +2843,16 @@ class SidebarFooterComponent {
|
|
|
2831
2843
|
// }
|
|
2832
2844
|
}
|
|
2833
2845
|
logout() {
|
|
2834
|
-
this.auth.logout()
|
|
2835
|
-
|
|
2836
|
-
|
|
2846
|
+
this.auth.logout();
|
|
2847
|
+
// .pipe(takeUntil(this.destroy$)).subscribe((res:any)=>{
|
|
2848
|
+
this.router.navigate(["/auth/login"]);
|
|
2849
|
+
// })
|
|
2837
2850
|
localStorage.clear();
|
|
2838
2851
|
}
|
|
2839
2852
|
ngOnDestroy() {
|
|
2840
|
-
this.unsubscribe.forEach((sb) => sb.unsubscribe());
|
|
2853
|
+
// this.unsubscribe.forEach((sb) => sb.unsubscribe());
|
|
2854
|
+
this.destroy$.next(true);
|
|
2855
|
+
this.destroy$.complete();
|
|
2841
2856
|
}
|
|
2842
2857
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SidebarFooterComponent, deps: [{ token: AuthService }, { token: i1.Router }, { token: i1$1.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2843
2858
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SidebarFooterComponent, selector: "lib-sidebar-footer", inputs: { toggleButtonClass: "toggleButtonClass", toggleEnabled: "toggleEnabled", toggleType: "toggleType", toggleState: "toggleState", userValuefooter: "userValuefooter" }, ngImport: i0, template: "<div class=\"container-with-overflow\">\r\n <div id=\"kt_app_sidebar_menu_scroll\" class=\"\" data-kt-scroll=\"true\" data-kt-scroll-activate=\"true\"\r\n data-kt-scroll-height=\"auto\" data-kt-scroll-dependencies=\"#kt_app_sidebar_logo, #kt_app_sidebar_footer\"\r\n data-kt-scroll-wrappers=\"#kt_app_sidebar_menu\" data-kt-scroll-offset=\"5px\" data-kt-scroll-save-state=\"true\">\r\n <div class=\"menu menu-column menu-rounded menu-sub-indention fw-semibold fs-6\" id=\"kt_app_sidebar_menu\"\r\n data-kt-menu=\"true\" data-kt-menu-expand=\"false\">\r\n <div class=\"menu-item menu-accordion w-100 px-3\" id=\"#kt_app_sidebar_menu\" [ngClass]=\"{'active': isSubMenuActive}\"\r\n data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link without-sub\">\r\n <span class=\"menu-icon\">\r\n <img src=\"./assets/tango/Icons/Avatar.svg\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">{{ userValue.userName | titlecase}}<br>\r\n {{ userValue.email | titlecase}}</span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion w-100\" #accordion [ngClass]=\"{'menu-sub-top': isSubMenuActive}\"\r\n routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item px-3 border-profile-first\">\r\n <a class=\"menu-link without-sub\" href=\"/profile\" >\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M11.8574 3.83162C11.8574 5.94799 10.0668 7.66324 7.85742 7.66324C5.64805 7.66324 3.85742 5.94799 3.85742 3.83162C3.85742 1.71525 5.64805 0 7.85742 0C10.0668 0 11.8574 1.71525 11.8574 3.83162Z\"\r\n fill=\"#98A2B3\" />\r\n <path\r\n d=\"M6.36786 9.38452C2.85 9.38452 0 11.9226 0 15.0554C0 15.577 0.475 16.0001 1.06071 16.0001H14.9393C15.525 16.0001 16 15.577 16 15.0554C16 11.9226 13.15 9.38452 9.63214 9.38452H6.36786Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title\">Profile</span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path opacity=\"0.3\"\r\n d=\"M14.2222 11.5556V8C14.2222 4.56356 11.4364 1.77778 8 1.77778C4.56356 1.77778 1.77778 4.56356 1.77778 8V11.5556H14.2222ZM16 11.5556H0V8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8V11.5556Z\"\r\n fill=\"#D0D5DD\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M1.77778 9.77759H2.66667C3.64851 9.77759 4.44444 10.5735 4.44444 11.5554V14.222C4.44444 15.2039 3.64851 15.9998 2.66667 15.9998H1.77778C0.795938 15.9998 0 15.2039 0 14.222V11.5554C0 10.5735 0.795938 9.77759 1.77778 9.77759ZM13.3333 9.77759H14.2222C15.2041 9.77759 16 10.5735 16 11.5554V14.222C16 15.2039 15.2041 15.9998 14.2222 15.9998H13.3333C12.3515 15.9998 11.5556 15.2039 11.5556 14.222V11.5554C11.5556 10.5735 12.3515 9.77759 13.3333 9.77759Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title\">Support</span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" (click)=\"logout()\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path\r\n d=\"M5 13H2.33333C1.97971 13 1.64057 12.8595 1.39052 12.6095C1.14048 12.3594 1 12.0203 1 11.6667V2.33333C1 1.97971 1.14048 1.64057 1.39052 1.39052C1.64057 1.14048 1.97971 1 2.33333 1H5\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M9.66667 10.3332L13 6.99984M13 6.99984L9.66667 3.6665M13 6.99984H5\" stroke=\"#D0D5DD\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title\">Logout</span>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".menu{background:var(--Gray-700, #344054)}.menu .menu-item{position:relative;background:var(--Gray-700, #344054)}.menu .border-profile-first{border-top-left-radius:8px;border-top-right-radius:8px}.menu .menu-sub{position:absolute;top:100;bottom:calc(100% + 5px);left:0}.menu .menu-sub-top{bottom:auto;top:calc(100% + 5px)}.menu-sub-indention .menu-sub{margin-left:0rem!important}.custom-scroll{max-height:300px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }] });
|
|
@@ -4460,11 +4475,11 @@ const Routing = [
|
|
|
4460
4475
|
path: 'manage',
|
|
4461
4476
|
loadChildren: () => import('./tango-app-ui-shared-manage-wrapper.module-B6GJQNQZ.mjs').then((m) => m.ManageWrapperModule),
|
|
4462
4477
|
},
|
|
4463
|
-
{
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
},
|
|
4478
|
+
// {
|
|
4479
|
+
// path: 'manage/stores/edge-app',
|
|
4480
|
+
// loadChildren: () => import('./route-wraper-modules/edge-wrapper.module').then((m) => m.TangoEdgeAppWrapperModule),
|
|
4481
|
+
// canActivate:[storesGuard]
|
|
4482
|
+
// },
|
|
4468
4483
|
{
|
|
4469
4484
|
path: 'manage/stores/:id',
|
|
4470
4485
|
loadChildren: () => import('./tango-app-ui-shared-store-wrapper.module-UYYC9an_.mjs').then((m) => m.StoreWrapperModule),
|
|
@@ -4729,13 +4744,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
4729
4744
|
|
|
4730
4745
|
class HttpAuthInterceptor {
|
|
4731
4746
|
gs;
|
|
4732
|
-
|
|
4733
|
-
router;
|
|
4747
|
+
authService;
|
|
4734
4748
|
authlocalStorageToken = '';
|
|
4735
|
-
|
|
4749
|
+
isRefreshingToken = false;
|
|
4750
|
+
tokenRefreshed = new BehaviorSubject(false);
|
|
4751
|
+
constructor(gs, authService) {
|
|
4736
4752
|
this.gs = gs;
|
|
4737
|
-
this.
|
|
4738
|
-
this.router = router;
|
|
4753
|
+
this.authService = authService;
|
|
4739
4754
|
this.gs.environment.subscribe((env) => {
|
|
4740
4755
|
if (env) {
|
|
4741
4756
|
this.authlocalStorageToken = `${env.appVersion}-${env.USERDATA_KEY}`;
|
|
@@ -4749,24 +4764,62 @@ class HttpAuthInterceptor {
|
|
|
4749
4764
|
Authorization: 'Bearer ' + user.authenticationToken
|
|
4750
4765
|
}
|
|
4751
4766
|
});
|
|
4752
|
-
return next.handle(request).pipe(catchError(
|
|
4753
|
-
if (
|
|
4754
|
-
|
|
4755
|
-
|
|
4756
|
-
this.router.navigate(["/auth/login"]);
|
|
4757
|
-
});
|
|
4758
|
-
localStorage.clear();
|
|
4759
|
-
}
|
|
4767
|
+
return next.handle(request).pipe(catchError((error) => {
|
|
4768
|
+
if (error instanceof HttpErrorResponse && error.status === 401) {
|
|
4769
|
+
// If the error is due to unauthorized access, try to refresh the token
|
|
4770
|
+
return this.handle401Error(request, next);
|
|
4760
4771
|
}
|
|
4761
|
-
return throwError(
|
|
4772
|
+
return throwError(error);
|
|
4762
4773
|
}));
|
|
4763
4774
|
}
|
|
4764
|
-
|
|
4775
|
+
handle401Error(request, next) {
|
|
4776
|
+
if (!this.isRefreshingToken) {
|
|
4777
|
+
this.isRefreshingToken = true;
|
|
4778
|
+
return this.authService.refreshToken().pipe(switchMap((res) => {
|
|
4779
|
+
if (res && res.code == 200 && res.data.result) {
|
|
4780
|
+
// Update local storage with the new token
|
|
4781
|
+
localStorage.setItem(this.authlocalStorageToken, JSON.stringify(res.data.result));
|
|
4782
|
+
// Clone the request with the new token
|
|
4783
|
+
request = request.clone({
|
|
4784
|
+
setHeaders: {
|
|
4785
|
+
Authorization: `Bearer ${res.data.result.authenticationToken}`
|
|
4786
|
+
}
|
|
4787
|
+
});
|
|
4788
|
+
// Reset the flag for token refreshing
|
|
4789
|
+
this.isRefreshingToken = false;
|
|
4790
|
+
// Retry the original request with the new token
|
|
4791
|
+
return next.handle(request);
|
|
4792
|
+
}
|
|
4793
|
+
else {
|
|
4794
|
+
// Logout user if refresh token fails
|
|
4795
|
+
this.authService.logout();
|
|
4796
|
+
return throwError('Token Expired Please Login Again!');
|
|
4797
|
+
}
|
|
4798
|
+
}), catchError((error) => {
|
|
4799
|
+
// Logout user if refresh token fails
|
|
4800
|
+
this.authService.logout();
|
|
4801
|
+
return throwError(error);
|
|
4802
|
+
}));
|
|
4803
|
+
}
|
|
4804
|
+
else {
|
|
4805
|
+
// If already refreshing the token, queue the request and wait
|
|
4806
|
+
return this.tokenRefreshed.pipe(switchMap(() => {
|
|
4807
|
+
const tokens = JSON.parse(localStorage.getItem(this.authlocalStorageToken) || '{}');
|
|
4808
|
+
request = request.clone({
|
|
4809
|
+
setHeaders: {
|
|
4810
|
+
Authorization: 'Bearer ' + tokens.authenticationToken
|
|
4811
|
+
}
|
|
4812
|
+
});
|
|
4813
|
+
return next.handle(request);
|
|
4814
|
+
}));
|
|
4815
|
+
}
|
|
4816
|
+
}
|
|
4817
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: i1$1.GlobalStateService }, { token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4765
4818
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HttpAuthInterceptor });
|
|
4766
4819
|
}
|
|
4767
4820
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HttpAuthInterceptor, decorators: [{
|
|
4768
4821
|
type: Injectable
|
|
4769
|
-
}], ctorParameters: () => [{ type: i1$1.GlobalStateService }, { type: AuthService }
|
|
4822
|
+
}], ctorParameters: () => [{ type: i1$1.GlobalStateService }, { type: AuthService }] });
|
|
4770
4823
|
|
|
4771
4824
|
/*
|
|
4772
4825
|
* Public API Surface of tango-app-shared
|