tango-app-ui-shared 3.0.26-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/guards/stores.guard.mjs +16 -0
- package/esm2022/lib/guards/tickets.guard.mjs +16 -0
- package/esm2022/lib/interceptors/http-auth-interceptor.mjs +60 -5
- package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +37 -8
- package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +17 -12
- package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +4 -3
- package/esm2022/lib/modules/layout/toolbar/single-store/single-store.component.mjs +5 -3
- package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +10 -8
- package/esm2022/lib/routes/route-wraper-modules/ticket-wrapper.module.mjs +1 -1
- package/esm2022/lib/routes/routing.mjs +9 -5
- package/esm2022/lib/services/auth.service.mjs +12 -2
- package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-BLrWsK0B.mjs.map +1 -1
- package/fesm2022/tango-app-ui-shared.mjs +220 -105
- package/fesm2022/tango-app-ui-shared.mjs.map +1 -1
- package/lib/guards/stores.guard.d.ts +2 -0
- package/lib/guards/tickets.guard.d.ts +2 -0
- package/lib/interceptors/http-auth-interceptor.d.ts +6 -1
- package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +4 -1
- package/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.d.ts +4 -3
- package/lib/modules/layout/sidebar/sidebar.component.d.ts +1 -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
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { map, take } from 'rxjs';
|
|
4
|
+
import { GlobalStateService } from 'tango-app-ui-global';
|
|
5
|
+
export const storesGuard = (route, state) => {
|
|
6
|
+
const gs = inject(GlobalStateService);
|
|
7
|
+
const router = inject(Router);
|
|
8
|
+
return gs.userAccess.pipe(take(1), map((e) => {
|
|
9
|
+
if (e && !e?.manage_stores_isView) {
|
|
10
|
+
router.navigateByUrl('/manage');
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
}));
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVzLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL2d1YXJkcy9zdG9yZXMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBa0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDekQsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDckMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRTlCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFO1FBQ3pDLElBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixFQUFDO1lBQzdCLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDakMsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUZuLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmV4cG9ydCBjb25zdCBzdG9yZXNHdWFyZDogQ2FuQWN0aXZhdGVGbiA9IChyb3V0ZSwgc3RhdGUpID0+IHtcclxuICBjb25zdCBncyA9IGluamVjdChHbG9iYWxTdGF0ZVNlcnZpY2UpXHJcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcilcclxuICBcclxuIHJldHVybiBncy51c2VyQWNjZXNzLnBpcGUodGFrZSgxKSwgbWFwKChlKT0+e1xyXG4gICAgaWYoZSAmJiAhZT8ubWFuYWdlX3N0b3Jlc19pc1ZpZXcpe1xyXG4gICAgICAgIHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvbWFuYWdlJylcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9KSlcclxufTtcclxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { map } from 'rxjs';
|
|
4
|
+
import { GlobalStateService } from 'tango-app-ui-global';
|
|
5
|
+
export const ticketsGuard = (route, state) => {
|
|
6
|
+
const gs = inject(GlobalStateService);
|
|
7
|
+
const router = inject(Router);
|
|
8
|
+
return gs.userAccess.pipe(map((e) => {
|
|
9
|
+
if (e && e?.manage_tickets_isView) {
|
|
10
|
+
router.navigateByUrl('/manage');
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
}));
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0cy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9ndWFyZHMvdGlja2V0cy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBaUIsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEdBQUcsRUFBUSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQzFELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUU5QixPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFO1FBQ2pDLElBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxxQkFBcUIsRUFBQztZQUM3QixNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ2pDLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FuQWN0aXZhdGVGbiwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFwLCBza2lwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5leHBvcnQgY29uc3QgdGlja2V0c0d1YXJkOiBDYW5BY3RpdmF0ZUZuID0gKHJvdXRlLCBzdGF0ZSkgPT4ge1xyXG4gIGNvbnN0IGdzID0gaW5qZWN0KEdsb2JhbFN0YXRlU2VydmljZSlcclxuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKVxyXG4gIFxyXG4gcmV0dXJuIGdzLnVzZXJBY2Nlc3MucGlwZSggbWFwKChlKT0+eyAgXHJcbiAgICBpZihlICYmIGU/Lm1hbmFnZV90aWNrZXRzX2lzVmlldyl7XHJcbiAgICAgICAgcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9tYW5hZ2UnKVxyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0pKVxyXG59O1xyXG4iXX0=
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
|
3
|
+
import { BehaviorSubject, catchError, switchMap, throwError } from 'rxjs';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
import * as i1 from "tango-app-ui-global";
|
|
6
|
+
import * as i2 from "../services/auth.service";
|
|
4
7
|
export class HttpAuthInterceptor {
|
|
5
8
|
gs;
|
|
9
|
+
authService;
|
|
6
10
|
authlocalStorageToken = '';
|
|
7
|
-
|
|
11
|
+
isRefreshingToken = false;
|
|
12
|
+
tokenRefreshed = new BehaviorSubject(false);
|
|
13
|
+
constructor(gs, authService) {
|
|
8
14
|
this.gs = gs;
|
|
15
|
+
this.authService = authService;
|
|
9
16
|
this.gs.environment.subscribe((env) => {
|
|
10
17
|
if (env) {
|
|
11
18
|
this.authlocalStorageToken = `${env.appVersion}-${env.USERDATA_KEY}`;
|
|
@@ -19,12 +26,60 @@ export class HttpAuthInterceptor {
|
|
|
19
26
|
Authorization: 'Bearer ' + user.authenticationToken
|
|
20
27
|
}
|
|
21
28
|
});
|
|
22
|
-
return next.handle(request)
|
|
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);
|
|
33
|
+
}
|
|
34
|
+
return throwError(error);
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
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
|
+
}
|
|
23
78
|
}
|
|
24
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: i1.GlobalStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
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 });
|
|
25
80
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HttpAuthInterceptor });
|
|
26
81
|
}
|
|
27
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HttpAuthInterceptor, decorators: [{
|
|
28
83
|
type: Injectable
|
|
29
|
-
}], ctorParameters: () => [{ type: i1.GlobalStateService }] });
|
|
30
|
-
//# 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";
|
|
@@ -17,7 +18,10 @@ export class SidebarFooterComponent {
|
|
|
17
18
|
toggleType = '';
|
|
18
19
|
toggleState = '';
|
|
19
20
|
currentLayoutType;
|
|
21
|
+
userValuefooter = '';
|
|
20
22
|
toggleAttr;
|
|
23
|
+
shouldShowMenuTop = true;
|
|
24
|
+
destroy$ = new Subject();
|
|
21
25
|
constructor(auth, router, layout) {
|
|
22
26
|
this.auth = auth;
|
|
23
27
|
this.router = router;
|
|
@@ -26,34 +30,57 @@ export class SidebarFooterComponent {
|
|
|
26
30
|
ngOnInit() {
|
|
27
31
|
this.toggleAttr = `app-sidebar-${this.toggleType}`;
|
|
28
32
|
const layoutSubscr = this.layout.currentLayoutTypeSubject
|
|
29
|
-
.asObservable()
|
|
33
|
+
.asObservable().pipe(takeUntil(this.destroy$))
|
|
30
34
|
.subscribe((layout) => {
|
|
31
35
|
this.currentLayoutType = layout;
|
|
32
36
|
});
|
|
33
37
|
this.unsubscribe.push(layoutSubscr);
|
|
34
38
|
if ('user-info' in localStorage) {
|
|
35
39
|
const userData = JSON.parse(localStorage.getItem('user-info') || "{}");
|
|
40
|
+
// debugger
|
|
41
|
+
// if(this.userValuefooter ===''){
|
|
36
42
|
this.userValue = userData;
|
|
43
|
+
// }
|
|
37
44
|
}
|
|
38
45
|
}
|
|
39
46
|
toggleMenu() {
|
|
40
47
|
this.isSubMenuActive = !this.isSubMenuActive;
|
|
48
|
+
// const submenu = document.querySelector('.menu-sub') as HTMLElement; // Type assertion
|
|
49
|
+
// if (submenu) {
|
|
50
|
+
// const menuItem = submenu.parentElement; // Get the parent element of submenu
|
|
51
|
+
// if (menuItem) {
|
|
52
|
+
// const menuItemRect = menuItem.getBoundingClientRect(); // Get the bounding rectangle of the parent element
|
|
53
|
+
// const menuHeight = submenu.offsetHeight;
|
|
54
|
+
// const windowHeight = window.innerHeight;
|
|
55
|
+
// // const offset = menuItemRect.top + menuItemRect.height + menuHeight - windowHeight;
|
|
56
|
+
// const offset = 100
|
|
57
|
+
// if (offset > 0) {
|
|
58
|
+
// submenu.style.top = `-${offset}px`;
|
|
59
|
+
// } else {
|
|
60
|
+
// submenu.style.top = '1800px';
|
|
61
|
+
// }
|
|
62
|
+
// console.log(submenu)
|
|
63
|
+
// }
|
|
64
|
+
// }
|
|
41
65
|
}
|
|
42
66
|
logout() {
|
|
43
|
-
this.auth.logout()
|
|
44
|
-
|
|
45
|
-
|
|
67
|
+
this.auth.logout();
|
|
68
|
+
// .pipe(takeUntil(this.destroy$)).subscribe((res:any)=>{
|
|
69
|
+
this.router.navigate(["/auth/login"]);
|
|
70
|
+
// })
|
|
46
71
|
localStorage.clear();
|
|
47
72
|
}
|
|
48
73
|
ngOnDestroy() {
|
|
49
|
-
this.unsubscribe.forEach((sb) => sb.unsubscribe());
|
|
74
|
+
// this.unsubscribe.forEach((sb) => sb.unsubscribe());
|
|
75
|
+
this.destroy$.next(true);
|
|
76
|
+
this.destroy$.complete();
|
|
50
77
|
}
|
|
51
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 });
|
|
52
|
-
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" }, ngImport: i0, template: "<div id=\"kt_app_sidebar_menu_scroll\"
|
|
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" }] });
|
|
53
80
|
}
|
|
54
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SidebarFooterComponent, decorators: [{
|
|
55
82
|
type: Component,
|
|
56
|
-
args: [{ selector: "lib-sidebar-footer", template: "<div id=\"kt_app_sidebar_menu_scroll\"
|
|
83
|
+
args: [{ selector: "lib-sidebar-footer", 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"] }]
|
|
57
84
|
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.Router }, { type: i3.LayoutService }], propDecorators: { toggleButtonClass: [{
|
|
58
85
|
type: Input
|
|
59
86
|
}], toggleEnabled: [{
|
|
@@ -62,5 +89,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
62
89
|
type: Input
|
|
63
90
|
}], toggleState: [{
|
|
64
91
|
type: Input
|
|
92
|
+
}], userValuefooter: [{
|
|
93
|
+
type: Input
|
|
65
94
|
}] } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFVcEUsTUFBTSxPQUFPLHNCQUFzQjtJQVliO0lBQTJCO0lBQXVCO0lBWHRFLGVBQWUsR0FBWSxLQUFLLENBQUM7SUFDakMsU0FBUyxDQUFNO0lBQ2YsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNSLFdBQVcsR0FBbUIsRUFBRSxDQUFDO0lBQ2hDLGlCQUFpQixHQUFXLEVBQUUsQ0FBQztJQUMvQixhQUFhLENBQVU7SUFDdkIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ2xDLGlCQUFpQixDQUFvQjtJQUVyQyxVQUFVLENBQVM7SUFDbkIsWUFBb0IsSUFBaUIsRUFBVSxNQUFjLEVBQVMsTUFBcUI7UUFBdkUsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFlO0lBQUcsQ0FBQztJQUUvRixRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHdCQUF3QjthQUN0RCxZQUFZLEVBQUU7YUFDZCxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsSUFBSSxXQUFXLElBQUksWUFBWSxFQUFFO1lBQy9CLE1BQU0sUUFBUSxHQUFRLElBQUksQ0FBQyxLQUFLLENBQzlCLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUMxQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUE7UUFDRixZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQzt1R0F6Q1Usc0JBQXNCOzJGQUF0QixzQkFBc0Isb01DVm5DLDQzSUFzREE7OzJGRDVDYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CO2lJQVNyQixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlLCBMYXlvdXRUeXBlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1zaWRlYmFyLWZvb3RlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgaXNTdWJNZW51QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdXNlclZhbHVlOiBhbnk7XHJcbiAgaG92ZXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgQElucHV0KCkgdG9nZ2xlQnV0dG9uQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRvZ2dsZUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdG9nZ2xlVHlwZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdG9nZ2xlU3RhdGU6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnRMYXlvdXRUeXBlOiBMYXlvdXRUeXBlIHwgbnVsbDtcclxuXHJcbiAgdG9nZ2xlQXR0cjogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIscHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50b2dnbGVBdHRyID0gYGFwcC1zaWRlYmFyLSR7dGhpcy50b2dnbGVUeXBlfWA7XHJcbiAgICBjb25zdCBsYXlvdXRTdWJzY3IgPSB0aGlzLmxheW91dC5jdXJyZW50TGF5b3V0VHlwZVN1YmplY3RcclxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxheW91dCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VycmVudExheW91dFR5cGUgPSBsYXlvdXQ7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5wdXNoKGxheW91dFN1YnNjcik7XHJcbiAgICBpZiAoJ3VzZXItaW5mbycgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIGNvbnN0IHVzZXJEYXRhOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKSB8fCBcInt9XCJcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51c2VyVmFsdWUgPSB1c2VyRGF0YTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuaXNTdWJNZW51QWN0aXZlID0gIXRoaXMuaXNTdWJNZW51QWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5hdXRoLmxvZ291dCgpLnN1YnNjcmliZSgocmVzOmFueSk9PntcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9hdXRoL2xvZ2luXCJdKTtcclxuICAgIH0pXHJcbiAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLmZvckVhY2goKHNiKSA9PiBzYi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cImt0X2FwcF9zaWRlYmFyX21lbnVfc2Nyb2xsXCIgIGNsYXNzPVwiXCIgZGF0YS1rdC1zY3JvbGw9XCJ0cnVlXCIgZGF0YS1rdC1zY3JvbGwtYWN0aXZhdGU9XCJ0cnVlXCIgXHJcbiAgZGF0YS1rdC1zY3JvbGwtaGVpZ2h0PVwiYXV0b1wiIGRhdGEta3Qtc2Nyb2xsLWRlcGVuZGVuY2llcz1cIiNrdF9hcHBfc2lkZWJhcl9sb2dvLCAja3RfYXBwX3NpZGViYXJfZm9vdGVyXCJcclxuICBkYXRhLWt0LXNjcm9sbC13cmFwcGVycz1cIiNrdF9hcHBfc2lkZWJhcl9tZW51XCIgZGF0YS1rdC1zY3JvbGwtb2Zmc2V0PVwiNXB4XCIgZGF0YS1rdC1zY3JvbGwtc2F2ZS1zdGF0ZT1cInRydWVcIj5cclxuICA8ZGl2IGNsYXNzPVwibWVudSBtZW51LWNvbHVtbiBtZW51LXJvdW5kZWQgbWVudS1zdWItaW5kZW50aW9uIGZ3LXNlbWlib2xkIGZzLTZcIiBpZD1cImt0X2FwcF9zaWRlYmFyX21lbnVcIlxyXG4gICAgZGF0YS1rdC1tZW51PVwidHJ1ZVwiIGRhdGEta3QtbWVudS1leHBhbmQ9XCJmYWxzZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWFjY29yZGlvbiB3LTEwMCBweC0zXCIgaWQ9XCIja3RfYXBwX3NpZGViYXJfbWVudVwiXHJcbiAgICAgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpc1N1Yk1lbnVBY3RpdmV9XCIgZGF0YS1rdC1tZW51LXRyaWdnZXI9XCJjbGlja1wiIHJvdXRlckxpbmtBY3RpdmU9XCJoZXJlIHNob3dcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaWNvblwiPlxyXG4gICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9BdmF0YXIuc3ZnXCI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiIGRhdGEtbGluaz1cIi9jcmFmdGVkL2FjY291bnRcIj57e3VzZXJWYWx1ZS51c2VyTmFtZSB8IHRpdGxlY2FzZX19PGJyPnt7dXNlclZhbHVlLmVtYWlsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWFycm93XCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb24gdy0xMDBcIiAgW25nQ2xhc3NdPVwieydtZW51LXN1Yi10b3AnOiBpc1N1Yk1lbnVBY3RpdmV9XCIgcm91dGVyTGlua0FjdGl2ZT1cIm1lbnUtYWN0aXZlLWJnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBweC0zIGJvcmRlci1wcm9maWxlLWZpcnN0XCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbms9XCJwcm9maWxlXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjg1NzQgMy44MzE2MkMxMS44NTc0IDUuOTQ3OTkgMTAuMDY2OCA3LjY2MzI0IDcuODU3NDIgNy42NjMyNEM1LjY0ODA1IDcuNjYzMjQgMy44NTc0MiA1Ljk0Nzk5IDMuODU3NDIgMy44MzE2MkMzLjg1NzQyIDEuNzE1MjUgNS42NDgwNSAwIDcuODU3NDIgMEMxMC4wNjY4IDAgMTEuODU3NCAxLjcxNTI1IDExLjg1NzQgMy44MzE2MlpcIiBmaWxsPVwiIzk4QTJCM1wiLz5cclxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuMzY3ODYgOS4zODQ1MkMyLjg1IDkuMzg0NTIgMCAxMS45MjI2IDAgMTUuMDU1NEMwIDE1LjU3NyAwLjQ3NSAxNi4wMDAxIDEuMDYwNzEgMTYuMDAwMUgxNC45MzkzQzE1LjUyNSAxNi4wMDAxIDE2IDE1LjU3NyAxNiAxNS4wNTU0QzE2IDExLjkyMjYgMTMuMTUgOS4zODQ1MiA5LjYzMjE0IDkuMzg0NTJINi4zNjc4NlpcIiBmaWxsPVwiIzY2NzA4NVwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlByb2ZpbGU8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBweC0zXCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiAwcHg7XCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggb3BhY2l0eT1cIjAuM1wiIGQ9XCJNMTQuMjIyMiAxMS41NTU2VjhDMTQuMjIyMiA0LjU2MzU2IDExLjQzNjQgMS43Nzc3OCA4IDEuNzc3NzhDNC41NjM1NiAxLjc3Nzc4IDEuNzc3NzggNC41NjM1NiAxLjc3Nzc4IDhWMTEuNTU1NkgxNC4yMjIyWk0xNiAxMS41NTU2SDBWOEMwIDMuNTgxNzIgMy41ODE3MiAwIDggMEMxMi40MTgzIDAgMTYgMy41ODE3MiAxNiA4VjExLjU1NTZaXCIgZmlsbD1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43Nzc3OCA5Ljc3NzU5SDIuNjY2NjdDMy42NDg1MSA5Ljc3NzU5IDQuNDQ0NDQgMTAuNTczNSA0LjQ0NDQ0IDExLjU1NTRWMTQuMjIyQzQuNDQ0NDQgMTUuMjAzOSAzLjY0ODUxIDE1Ljk5OTggMi42NjY2NyAxNS45OTk4SDEuNzc3NzhDMC43OTU5MzggMTUuOTk5OCAwIDE1LjIwMzkgMCAxNC4yMjJWMTEuNTU1NEMwIDEwLjU3MzUgMC43OTU5MzggOS43Nzc1OSAxLjc3Nzc4IDkuNzc3NTlaTTEzLjMzMzMgOS43Nzc1OUgxNC4yMjIyQzE1LjIwNDEgOS43Nzc1OSAxNiAxMC41NzM1IDE2IDExLjU1NTRWMTQuMjIyQzE2IDE1LjIwMzkgMTUuMjA0MSAxNS45OTk4IDE0LjIyMjIgMTUuOTk5OEgxMy4zMzMzQzEyLjM1MTUgMTUuOTk5OCAxMS41NTU2IDE1LjIwMzkgMTEuNTU1NiAxNC4yMjJWMTEuNTU1NEMxMS41NTU2IDEwLjU3MzUgMTIuMzUxNSA5Ljc3NzU5IDEzLjMzMzMgOS43Nzc1OVpcIiBmaWxsPVwiIzY2NzA4NVwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlN1cHBvcnQ8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBweC0zXCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiAwcHg7XCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIChjbGljayk9XCJsb2dvdXQoKVwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDEzSDIuMzMzMzNDMS45Nzk3MSAxMyAxLjY0MDU3IDEyLjg1OTUgMS4zOTA1MiAxMi42MDk1QzEuMTQwNDggMTIuMzU5NCAxIDEyLjAyMDMgMSAxMS42NjY3VjIuMzMzMzNDMSAxLjk3OTcxIDEuMTQwNDggMS42NDA1NyAxLjM5MDUyIDEuMzkwNTJDMS42NDA1NyAxLjE0MDQ4IDEuOTc5NzEgMSAyLjMzMzMzIDFINVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk05LjY2NjY3IDEwLjMzMzJMMTMgNi45OTk4NE0xMyA2Ljk5OTg0TDkuNjY2NjcgMy42NjY1TTEzIDYuOTk5ODRINVwiIHN0cm9rZT1cIiNEMEQ1RERcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+TG9nb3V0PC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR3BFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBT3hELE1BQU0sT0FBTyxzQkFBc0I7SUFjYjtJQUEyQjtJQUF1QjtJQWJ0RSxlQUFlLEdBQVksS0FBSyxDQUFDO0lBQ2pDLFNBQVMsQ0FBTTtJQUNmLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDUixXQUFXLEdBQW1CLEVBQUUsQ0FBQztJQUNoQyxpQkFBaUIsR0FBVyxFQUFFLENBQUM7SUFDL0IsYUFBYSxDQUFVO0lBQ3ZCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUNsQyxpQkFBaUIsQ0FBb0I7SUFDNUIsZUFBZSxHQUFNLEVBQUUsQ0FBQztJQUNqQyxVQUFVLENBQVM7SUFDbkIsaUJBQWlCLEdBQVksSUFBSSxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFlBQW9CLElBQWlCLEVBQVUsTUFBYyxFQUFTLE1BQXFCO1FBQXZFLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUFHLENBQUM7SUFFL0YsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0I7YUFDdEQsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0MsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLElBQUksV0FBVyxJQUFJLFlBQVksRUFBRTtZQUMvQixNQUFNLFFBQVEsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUM5QixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FDMUMsQ0FBQztZQUNGLFdBQVc7WUFDWCxrQ0FBa0M7WUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7WUFDMUIsSUFBSTtTQUNMO0lBQ0gsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsZUFBZSxHQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM1Qyx3RkFBd0Y7UUFDeEYsaUJBQWlCO1FBQ2pCLGlGQUFpRjtRQUNqRixvQkFBb0I7UUFDcEIsaUhBQWlIO1FBQ2pILCtDQUErQztRQUMvQywrQ0FBK0M7UUFDL0MsNEZBQTRGO1FBQzVGLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIsNENBQTRDO1FBQzVDLGVBQWU7UUFDZixzQ0FBc0M7UUFDdEMsUUFBUTtRQUNSLDJCQUEyQjtRQUMzQixNQUFNO1FBQ04sSUFBSTtJQUNOLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNsQix5REFBeUQ7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLEtBQUs7UUFDTCxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELFdBQVc7UUFDVCxzREFBc0Q7UUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO3VHQWxFVSxzQkFBc0I7MkZBQXRCLHNCQUFzQix3T0NWbkMsaXhKQW1FTTs7MkZEekRPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7aUlBU3JCLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlLCBMYXlvdXRUeXBlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1zaWRlYmFyLWZvb3RlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgaXNTdWJNZW51QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdXNlclZhbHVlOiBhbnk7XHJcbiAgaG92ZXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgQElucHV0KCkgdG9nZ2xlQnV0dG9uQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRvZ2dsZUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdG9nZ2xlVHlwZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdG9nZ2xlU3RhdGU6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnRMYXlvdXRUeXBlOiBMYXlvdXRUeXBlIHwgbnVsbDtcclxuICBASW5wdXQoKSB1c2VyVmFsdWVmb290ZXI6IGFueT0nJztcclxuICB0b2dnbGVBdHRyOiBzdHJpbmc7XHJcbiAgc2hvdWxkU2hvd01lbnVUb3A6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIscHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50b2dnbGVBdHRyID0gYGFwcC1zaWRlYmFyLSR7dGhpcy50b2dnbGVUeXBlfWA7XHJcbiAgICBjb25zdCBsYXlvdXRTdWJzY3IgPSB0aGlzLmxheW91dC5jdXJyZW50TGF5b3V0VHlwZVN1YmplY3RcclxuICAgICAgLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsYXlvdXQpID0+IHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMYXlvdXRUeXBlID0gbGF5b3V0O1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUucHVzaChsYXlvdXRTdWJzY3IpO1xyXG4gICAgaWYgKCd1c2VyLWluZm8nIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCB1c2VyRGF0YTogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIGRlYnVnZ2VyXHJcbiAgICAgIC8vIGlmKHRoaXMudXNlclZhbHVlZm9vdGVyID09PScnKXtcclxuICAgICAgdGhpcy51c2VyVmFsdWUgPSB1c2VyRGF0YTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGVNZW51KCkge1xyXG4gICAgdGhpcy5pc1N1Yk1lbnVBY3RpdmUgPSF0aGlzLmlzU3ViTWVudUFjdGl2ZTtcclxuICAgIC8vIGNvbnN0IHN1Ym1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVudS1zdWInKSBhcyBIVE1MRWxlbWVudDsgLy8gVHlwZSBhc3NlcnRpb25cclxuICAgIC8vIGlmIChzdWJtZW51KSB7XHJcbiAgICAvLyAgIGNvbnN0IG1lbnVJdGVtID0gc3VibWVudS5wYXJlbnRFbGVtZW50OyAvLyBHZXQgdGhlIHBhcmVudCBlbGVtZW50IG9mIHN1Ym1lbnVcclxuICAgIC8vICAgaWYgKG1lbnVJdGVtKSB7XHJcbiAgICAvLyAgICAgY29uc3QgbWVudUl0ZW1SZWN0ID0gbWVudUl0ZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IC8vIEdldCB0aGUgYm91bmRpbmcgcmVjdGFuZ2xlIG9mIHRoZSBwYXJlbnQgZWxlbWVudFxyXG4gICAgLy8gICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBzdWJtZW51Lm9mZnNldEhlaWdodDtcclxuICAgIC8vICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAvLyAgICAgLy8gY29uc3Qgb2Zmc2V0ID0gbWVudUl0ZW1SZWN0LnRvcCArIG1lbnVJdGVtUmVjdC5oZWlnaHQgKyBtZW51SGVpZ2h0IC0gd2luZG93SGVpZ2h0O1xyXG4gICAgLy8gICAgIGNvbnN0IG9mZnNldCAgPSAxMDBcclxuICAgIC8vICAgICBpZiAob2Zmc2V0ID4gMCkge1xyXG4gICAgLy8gICAgICAgc3VibWVudS5zdHlsZS50b3AgPSBgLSR7b2Zmc2V0fXB4YDtcclxuICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgc3VibWVudS5zdHlsZS50b3AgPSAnMTgwMHB4JztcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgY29uc29sZS5sb2coc3VibWVudSlcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5hdXRoLmxvZ291dCgpXHJcbiAgICAvLyAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzOmFueSk9PntcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9hdXRoL2xvZ2luXCJdKTtcclxuICAgIC8vIH0pXHJcbiAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyB0aGlzLnVuc3Vic2NyaWJlLmZvckVhY2goKHNiKSA9PiBzYi51bnN1YnNjcmliZSgpKTtcclxuICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXdpdGgtb3ZlcmZsb3dcIj5cclxuICA8ZGl2IGlkPVwia3RfYXBwX3NpZGViYXJfbWVudV9zY3JvbGxcIiBjbGFzcz1cIlwiIGRhdGEta3Qtc2Nyb2xsPVwidHJ1ZVwiIGRhdGEta3Qtc2Nyb2xsLWFjdGl2YXRlPVwidHJ1ZVwiXHJcbiAgICBkYXRhLWt0LXNjcm9sbC1oZWlnaHQ9XCJhdXRvXCIgZGF0YS1rdC1zY3JvbGwtZGVwZW5kZW5jaWVzPVwiI2t0X2FwcF9zaWRlYmFyX2xvZ28sICNrdF9hcHBfc2lkZWJhcl9mb290ZXJcIlxyXG4gICAgZGF0YS1rdC1zY3JvbGwtd3JhcHBlcnM9XCIja3RfYXBwX3NpZGViYXJfbWVudVwiIGRhdGEta3Qtc2Nyb2xsLW9mZnNldD1cIjVweFwiIGRhdGEta3Qtc2Nyb2xsLXNhdmUtc3RhdGU9XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudSBtZW51LWNvbHVtbiBtZW51LXJvdW5kZWQgbWVudS1zdWItaW5kZW50aW9uIGZ3LXNlbWlib2xkIGZzLTZcIiBpZD1cImt0X2FwcF9zaWRlYmFyX21lbnVcIlxyXG4gICAgICBkYXRhLWt0LW1lbnU9XCJ0cnVlXCIgZGF0YS1rdC1tZW51LWV4cGFuZD1cImZhbHNlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1hY2NvcmRpb24gdy0xMDAgcHgtM1wiIGlkPVwiI2t0X2FwcF9zaWRlYmFyX21lbnVcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzU3ViTWVudUFjdGl2ZX1cIlxyXG4gICAgICAgIGRhdGEta3QtbWVudS10cmlnZ2VyPVwiY2xpY2tcIiByb3V0ZXJMaW5rQWN0aXZlPVwiaGVyZSBzaG93XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvQXZhdGFyLnN2Z1wiPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCIgZGF0YS1saW5rPVwiL2NyYWZ0ZWQvYWNjb3VudFwiPnt7IHVzZXJWYWx1ZS51c2VyTmFtZSB8IHRpdGxlY2FzZX19PGJyPlxyXG4gICAgICAgICAge3sgdXNlclZhbHVlLmVtYWlsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYXJyb3dcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb24gdy0xMDBcIiAjYWNjb3JkaW9uIFtuZ0NsYXNzXT1cInsnbWVudS1zdWItdG9wJzogaXNTdWJNZW51QWN0aXZlfVwiXHJcbiAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwibWVudS1hY3RpdmUtYmdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtMyBib3JkZXItcHJvZmlsZS1maXJzdFwiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIGhyZWY9XCIvcHJvZmlsZVwiID5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjg1NzQgMy44MzE2MkMxMS44NTc0IDUuOTQ3OTkgMTAuMDY2OCA3LjY2MzI0IDcuODU3NDIgNy42NjMyNEM1LjY0ODA1IDcuNjYzMjQgMy44NTc0MiA1Ljk0Nzk5IDMuODU3NDIgMy44MzE2MkMzLjg1NzQyIDEuNzE1MjUgNS42NDgwNSAwIDcuODU3NDIgMEMxMC4wNjY4IDAgMTEuODU3NCAxLjcxNTI1IDExLjg1NzQgMy44MzE2MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjOThBMkIzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMzY3ODYgOS4zODQ1MkMyLjg1IDkuMzg0NTIgMCAxMS45MjI2IDAgMTUuMDU1NEMwIDE1LjU3NyAwLjQ3NSAxNi4wMDAxIDEuMDYwNzEgMTYuMDAwMUgxNC45MzkzQzE1LjUyNSAxNi4wMDAxIDE2IDE1LjU3NyAxNiAxNS4wNTU0QzE2IDExLjkyMjYgMTMuMTUgOS4zODQ1MiA5LjYzMjE0IDkuMzg0NTJINi4zNjc4NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5Qcm9maWxlPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtM1wiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMHB4O1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggb3BhY2l0eT1cIjAuM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4yMjIyIDExLjU1NTZWOEMxNC4yMjIyIDQuNTYzNTYgMTEuNDM2NCAxLjc3Nzc4IDggMS43Nzc3OEM0LjU2MzU2IDEuNzc3NzggMS43Nzc3OCA0LjU2MzU2IDEuNzc3NzggOFYxMS41NTU2SDE0LjIyMjJaTTE2IDExLjU1NTZIMFY4QzAgMy41ODE3MiAzLjU4MTcyIDAgOCAwQzEyLjQxODMgMCAxNiAzLjU4MTcyIDE2IDhWMTEuNTU1NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMS43Nzc3OCA5Ljc3NzU5SDIuNjY2NjdDMy42NDg1MSA5Ljc3NzU5IDQuNDQ0NDQgMTAuNTczNSA0LjQ0NDQ0IDExLjU1NTRWMTQuMjIyQzQuNDQ0NDQgMTUuMjAzOSAzLjY0ODUxIDE1Ljk5OTggMi42NjY2NyAxNS45OTk4SDEuNzc3NzhDMC43OTU5MzggMTUuOTk5OCAwIDE1LjIwMzkgMCAxNC4yMjJWMTEuNTU1NEMwIDEwLjU3MzUgMC43OTU5MzggOS43Nzc1OSAxLjc3Nzc4IDkuNzc3NTlaTTEzLjMzMzMgOS43Nzc1OUgxNC4yMjIyQzE1LjIwNDEgOS43Nzc1OSAxNiAxMC41NzM1IDE2IDExLjU1NTRWMTQuMjIyQzE2IDE1LjIwMzkgMTUuMjA0MSAxNS45OTk4IDE0LjIyMjIgMTUuOTk5OEgxMy4zMzMzQzEyLjM1MTUgMTUuOTk5OCAxMS41NTU2IDE1LjIwMzkgMTEuNTU1NiAxNC4yMjJWMTEuNTU1NEMxMS41NTU2IDEwLjU3MzUgMTIuMzUxNSA5Ljc3NzU5IDEzLjMzMzMgOS43Nzc1OVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5TdXBwb3J0PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtM1wiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMHB4O1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIChjbGljayk9XCJsb2dvdXQoKVwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMTNIMi4zMzMzM0MxLjk3OTcxIDEzIDEuNjQwNTcgMTIuODU5NSAxLjM5MDUyIDEyLjYwOTVDMS4xNDA0OCAxMi4zNTk0IDEgMTIuMDIwMyAxIDExLjY2NjdWMi4zMzMzM0MxIDEuOTc5NzEgMS4xNDA0OCAxLjY0MDU3IDEuMzkwNTIgMS4zOTA1MkMxLjY0MDU3IDEuMTQwNDggMS45Nzk3MSAxIDIuMzMzMzMgMUg1XCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS42NjY2NyAxMC4zMzMyTDEzIDYuOTk5ODRNMTMgNi45OTk4NEw5LjY2NjY3IDMuNjY2NU0xMyA2Ljk5OTg0SDVcIiBzdHJva2U9XCIjRDBENUREXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5Mb2dvdXQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|