@lenne.tech/ng-base 14.6.0 → 14.8.1
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/base-components/base-components.module.d.ts +5 -4
- package/base-components/components/delete-account/delete-account.component.d.ts +15 -0
- package/base-components/public-api.d.ts +1 -0
- package/base-prototype/pages/forgot-password/forgot-password.component.d.ts +3 -2
- package/esm2020/base-components/base-components.module.mjs +5 -1
- package/esm2020/base-components/components/change-password/change-password.component.mjs +3 -3
- package/esm2020/base-components/components/delete-account/delete-account.component.mjs +56 -0
- package/esm2020/base-components/public-api.mjs +2 -1
- package/esm2020/base-prototype/pages/forgot-password/forgot-password.component.mjs +12 -5
- package/esm2020/shared/services/graphql.service.mjs +5 -10
- package/esm2020/shared/services/user.service.mjs +14 -1
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +56 -3
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +10 -3
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-shared.mjs +17 -9
- package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-components.mjs +56 -3
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +10 -3
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-shared.mjs +17 -9
- package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/package.json +1 -1
- package/shared/services/user.service.d.ts +6 -0
|
@@ -17,11 +17,12 @@ import * as i15 from "./components/model-form-sub/model-form-sub.component";
|
|
|
17
17
|
import * as i16 from "./components/upload-image/upload-image.component";
|
|
18
18
|
import * as i17 from "./components/refence-input/refence-input.component";
|
|
19
19
|
import * as i18 from "./components/change-password/change-password.component";
|
|
20
|
-
import * as i19 from "./
|
|
21
|
-
import * as i20 from "
|
|
22
|
-
import * as i21 from "@angular/
|
|
20
|
+
import * as i19 from "./components/delete-account/delete-account.component";
|
|
21
|
+
import * as i20 from "./pipes/ellipses.pipe";
|
|
22
|
+
import * as i21 from "@angular/forms";
|
|
23
|
+
import * as i22 from "@angular/common";
|
|
23
24
|
export declare class BaseComponentsModule {
|
|
24
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseComponentsModule, never>;
|
|
25
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<BaseComponentsModule, [typeof i1.SortDirective, typeof i2.BackButtonDirective, typeof i3.ContextMenuDirective, typeof i4.InputComponent, typeof i5.SelectComponent, typeof i6.CheckboxComponent, typeof i7.TextareaComponent, typeof i8.ToastComponent, typeof i9.TagsComponent, typeof i10.LoadingBarComponent, typeof i11.SkeletonLoaderComponent, typeof i12.BreadcrumbComponent, typeof i13.ModelFormComponent, typeof i14.ModelTableComponent, typeof i15.ModelFormSubComponent, typeof i16.UploadImageComponent, typeof i17.RefenceInputComponent, typeof i18.ChangePasswordComponent, typeof i19.EllipsesPipe], [typeof
|
|
26
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<BaseComponentsModule, [typeof i1.SortDirective, typeof i2.BackButtonDirective, typeof i3.ContextMenuDirective, typeof i4.InputComponent, typeof i5.SelectComponent, typeof i6.CheckboxComponent, typeof i7.TextareaComponent, typeof i8.ToastComponent, typeof i9.TagsComponent, typeof i10.LoadingBarComponent, typeof i11.SkeletonLoaderComponent, typeof i12.BreadcrumbComponent, typeof i13.ModelFormComponent, typeof i14.ModelTableComponent, typeof i15.ModelFormSubComponent, typeof i16.UploadImageComponent, typeof i17.RefenceInputComponent, typeof i18.ChangePasswordComponent, typeof i19.DeleteAccountComponent, typeof i20.EllipsesPipe], [typeof i21.FormsModule, typeof i21.ReactiveFormsModule, typeof i22.CommonModule], [typeof i1.SortDirective, typeof i2.BackButtonDirective, typeof i3.ContextMenuDirective, typeof i4.InputComponent, typeof i5.SelectComponent, typeof i6.CheckboxComponent, typeof i7.TextareaComponent, typeof i8.ToastComponent, typeof i9.TagsComponent, typeof i10.LoadingBarComponent, typeof i11.SkeletonLoaderComponent, typeof i12.BreadcrumbComponent, typeof i13.ModelFormComponent, typeof i14.ModelTableComponent, typeof i15.ModelFormSubComponent, typeof i16.UploadImageComponent, typeof i17.RefenceInputComponent, typeof i18.ChangePasswordComponent, typeof i19.DeleteAccountComponent, typeof i20.EllipsesPipe]>;
|
|
26
27
|
static ɵinj: i0.ɵɵInjectorDeclaration<BaseComponentsModule>;
|
|
27
28
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AuthService, ToastService, UserService } from '@lenne.tech/ng-base/shared';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class DeleteAccountComponent {
|
|
5
|
+
private userService;
|
|
6
|
+
private authService;
|
|
7
|
+
private toastService;
|
|
8
|
+
private router;
|
|
9
|
+
description: string;
|
|
10
|
+
loading: boolean;
|
|
11
|
+
constructor(userService: UserService, authService: AuthService, toastService: ToastService, router: Router);
|
|
12
|
+
deleteAccount(): void;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DeleteAccountComponent, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DeleteAccountComponent, "base-delete-account", never, { "description": "description"; }, {}, never, never, false>;
|
|
15
|
+
}
|
|
@@ -21,3 +21,4 @@ export * from './components/model-form-sub/model-form-sub.component';
|
|
|
21
21
|
export * from './components/upload-image/upload-image.component';
|
|
22
22
|
export * from './components/refence-input/refence-input.component';
|
|
23
23
|
export * from './components/change-password/change-password.component';
|
|
24
|
+
export * from './components/delete-account/delete-account.component';
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { UntypedFormGroup } from '@angular/forms';
|
|
3
|
-
import { FormsService, UserService } from '@lenne.tech/ng-base/shared';
|
|
3
|
+
import { FormsService, ToastService, UserService } from '@lenne.tech/ng-base/shared';
|
|
4
4
|
import { Router } from '@angular/router';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class ForgotPasswordComponent implements OnInit {
|
|
7
7
|
private formsService;
|
|
8
8
|
private userService;
|
|
9
9
|
private router;
|
|
10
|
+
private toastService;
|
|
10
11
|
form: UntypedFormGroup;
|
|
11
12
|
error: string;
|
|
12
13
|
loading: boolean;
|
|
13
|
-
constructor(formsService: FormsService, userService: UserService, router: Router);
|
|
14
|
+
constructor(formsService: FormsService, userService: UserService, router: Router, toastService: ToastService);
|
|
14
15
|
ngOnInit(): void;
|
|
15
16
|
/**
|
|
16
17
|
* Create login form
|
|
@@ -16,6 +16,7 @@ import { ModelFormSubComponent } from './components/model-form-sub/model-form-su
|
|
|
16
16
|
import { UploadImageComponent } from './components/upload-image/upload-image.component';
|
|
17
17
|
import { RefenceInputComponent } from './components/refence-input/refence-input.component';
|
|
18
18
|
import { ChangePasswordComponent } from './components/change-password/change-password.component';
|
|
19
|
+
import { DeleteAccountComponent } from './components/delete-account/delete-account.component';
|
|
19
20
|
import { BackButtonDirective } from './directives/back-button.directive';
|
|
20
21
|
import { SortDirective } from './directives/sort.directive';
|
|
21
22
|
import { ContextMenuDirective } from './directives/context-menu.directive';
|
|
@@ -45,6 +46,7 @@ const elements = [
|
|
|
45
46
|
UploadImageComponent,
|
|
46
47
|
RefenceInputComponent,
|
|
47
48
|
ChangePasswordComponent,
|
|
49
|
+
DeleteAccountComponent,
|
|
48
50
|
// Pipes
|
|
49
51
|
EllipsesPipe,
|
|
50
52
|
];
|
|
@@ -72,6 +74,7 @@ BaseComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ve
|
|
|
72
74
|
UploadImageComponent,
|
|
73
75
|
RefenceInputComponent,
|
|
74
76
|
ChangePasswordComponent,
|
|
77
|
+
DeleteAccountComponent,
|
|
75
78
|
// Pipes
|
|
76
79
|
EllipsesPipe], imports: [FormsModule, ReactiveFormsModule, CommonModule], exports: [
|
|
77
80
|
// Directives
|
|
@@ -94,6 +97,7 @@ BaseComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ve
|
|
|
94
97
|
UploadImageComponent,
|
|
95
98
|
RefenceInputComponent,
|
|
96
99
|
ChangePasswordComponent,
|
|
100
|
+
DeleteAccountComponent,
|
|
97
101
|
// Pipes
|
|
98
102
|
EllipsesPipe] });
|
|
99
103
|
BaseComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BaseComponentsModule, imports: [imports] });
|
|
@@ -105,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
105
109
|
exports: elements,
|
|
106
110
|
}]
|
|
107
111
|
}] });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUU5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUVyRCxVQUFVO0FBQ1YsTUFBTSxPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFFakUsaUNBQWlDO0FBQ2pDLE1BQU0sUUFBUSxHQUFHO0lBQ2YsYUFBYTtJQUNiLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBRXBCLGFBQWE7SUFDYixjQUFjO0lBQ2QsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsY0FBYztJQUNkLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLHFCQUFxQjtJQUNyQixvQkFBb0I7SUFDcEIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QixzQkFBc0I7SUFFdEIsUUFBUTtJQUNSLFlBQVk7Q0FDYixDQUFDO0FBT0YsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CO1FBaEMvQixhQUFhO1FBQ2IsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFFcEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2QsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIscUJBQXFCO1FBQ3JCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUV0QixRQUFRO1FBQ1IsWUFBWSxhQTVCRyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsWUFBWTtRQUk3RCxhQUFhO1FBQ2IsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFFcEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2QsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIscUJBQXFCO1FBQ3JCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUV0QixRQUFRO1FBQ1IsWUFBWTtrSEFRRCxvQkFBb0IsWUFIL0IsT0FBTzsyRkFHSSxvQkFBb0I7a0JBTGhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLFFBQVE7b0JBQ3RCLE9BQU87b0JBQ1AsT0FBTyxFQUFFLFFBQVE7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0JhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2FkaW5nLWJhci9sb2FkaW5nLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2tlbGV0b25Mb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2tlbGV0b24tbG9hZGVyL3NrZWxldG9uLWxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kZWwtdGFibGUvbW9kZWwtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RlbC1mb3JtL21vZGVsLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsRm9ybVN1YkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RlbC1mb3JtLXN1Yi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXBsb2FkLWltYWdlL3VwbG9hZC1pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVmZW5jZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVsZXRlQWNjb3VudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kZWxldGUtYWNjb3VudC9kZWxldGUtYWNjb3VudC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBCYWNrQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2JhY2stYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NvcnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRleHRNZW51RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvbnRleHQtbWVudS5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyBFbGxpcHNlc1BpcGUgfSBmcm9tICcuL3BpcGVzL2VsbGlwc2VzLnBpcGUnO1xuXG4vLyBNb2R1bGVzXG5jb25zdCBpbXBvcnRzID0gW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGVdO1xuXG4vLyBJbXBvcnRlZCBhbmQgZXhwb3J0ZWQgZWxlbWVudHNcbmNvbnN0IGVsZW1lbnRzID0gW1xuICAvLyBEaXJlY3RpdmVzXG4gIFNvcnREaXJlY3RpdmUsXG4gIEJhY2tCdXR0b25EaXJlY3RpdmUsXG4gIENvbnRleHRNZW51RGlyZWN0aXZlLFxuXG4gIC8vIENvbXBvbmVudHNcbiAgSW5wdXRDb21wb25lbnQsXG4gIFNlbGVjdENvbXBvbmVudCxcbiAgQ2hlY2tib3hDb21wb25lbnQsXG4gIFRleHRhcmVhQ29tcG9uZW50LFxuICBUb2FzdENvbXBvbmVudCxcbiAgVGFnc0NvbXBvbmVudCxcbiAgTG9hZGluZ0JhckNvbXBvbmVudCxcbiAgU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsXG4gIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gIE1vZGVsRm9ybUNvbXBvbmVudCxcbiAgTW9kZWxUYWJsZUNvbXBvbmVudCxcbiAgTW9kZWxGb3JtU3ViQ29tcG9uZW50LFxuICBVcGxvYWRJbWFnZUNvbXBvbmVudCxcbiAgUmVmZW5jZUlucHV0Q29tcG9uZW50LFxuICBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCxcbiAgRGVsZXRlQWNjb3VudENvbXBvbmVudCxcblxuICAvLyBQaXBlc1xuICBFbGxpcHNlc1BpcGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IGVsZW1lbnRzLFxuICBpbXBvcnRzLFxuICBleHBvcnRzOiBlbGVtZW50cyxcbn0pXG5leHBvcnQgY2xhc3MgQmFzZUNvbXBvbmVudHNNb2R1bGUge31cbiJdfQ==
|
|
@@ -62,9 +62,9 @@ export class ChangePasswordComponent {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
ChangePasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ChangePasswordComponent, deps: [{ token: i1.FormsService }, { token: i1.UserService }, { token: i1.AuthService }, { token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
-
ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ChangePasswordComponent, selector: "base-change-password", ngImport: i0, template: "<form [formGroup]=\"form\">\n <base-input\n [id]=\"'password'\"\n [label]=\"'Passwort'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('password')\"\n [tabIndex]=\"1\"\n [eyeButton]=\"true\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n [tabIndex]=\"2\"\n [eyeButton]=\"true\"\n ></base-input>\n\n <div class=\"d-flex justify-content-end\">\n <div>\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Passwort \u00E4ndern</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n </div>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.InputComponent, selector: "base-input", inputs: ["id", "name", "label", "placeholder", "autocomplete", "tabIndex", "control", "type", "required", "eyeButton"], outputs: ["enter"] }] });
|
|
65
|
+
ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ChangePasswordComponent, selector: "base-change-password", ngImport: i0, template: "<h3>Passwort \u00E4ndern</h3>\n\n<form [formGroup]=\"form\">\n <base-input\n [id]=\"'password'\"\n [label]=\"'Passwort'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('password')\"\n [tabIndex]=\"1\"\n [eyeButton]=\"true\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n [tabIndex]=\"2\"\n [eyeButton]=\"true\"\n ></base-input>\n\n <div class=\"d-flex justify-content-end\">\n <div>\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Passwort \u00E4ndern</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n </div>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.InputComponent, selector: "base-input", inputs: ["id", "name", "label", "placeholder", "autocomplete", "tabIndex", "control", "type", "required", "eyeButton"], outputs: ["enter"] }] });
|
|
66
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ChangePasswordComponent, decorators: [{
|
|
67
67
|
type: Component,
|
|
68
|
-
args: [{ selector: 'base-change-password', template: "<form [formGroup]=\"form\">\n <base-input\n [id]=\"'password'\"\n [label]=\"'Passwort'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('password')\"\n [tabIndex]=\"1\"\n [eyeButton]=\"true\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n [tabIndex]=\"2\"\n [eyeButton]=\"true\"\n ></base-input>\n\n <div class=\"d-flex justify-content-end\">\n <div>\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Passwort \u00E4ndern</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n </div>\n </div>\n</form>\n" }]
|
|
68
|
+
args: [{ selector: 'base-change-password', template: "<h3>Passwort \u00E4ndern</h3>\n\n<form [formGroup]=\"form\">\n <base-input\n [id]=\"'password'\"\n [label]=\"'Passwort'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('password')\"\n [tabIndex]=\"1\"\n [eyeButton]=\"true\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n [tabIndex]=\"2\"\n [eyeButton]=\"true\"\n ></base-input>\n\n <div class=\"d-flex justify-content-end\">\n <div>\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Passwort \u00E4ndern</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n </div>\n </div>\n</form>\n" }]
|
|
69
69
|
}], ctorParameters: function () { return [{ type: i1.FormsService }, { type: i1.UserService }, { type: i1.AuthService }, { type: i1.ToastService }]; } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1jb21wb25lbnRzL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFhLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFJTCxTQUFTLEVBRVQsVUFBVSxHQUNYLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQU9wQyxNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQ1UsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsWUFBMEI7UUFIMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFOcEMsWUFBTyxHQUFHLEtBQUssQ0FBQztJQU9iLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZ0JBQWdCLENBQzlCO1lBQ0UsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLGVBQWUsRUFBRSxJQUFJLFdBQVcsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RixFQUNELEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FDaEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDMUcsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksUUFBUSxFQUFFO29CQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO3dCQUNyQixFQUFFLEVBQUUseUJBQXlCO3dCQUM3QixLQUFLLEVBQUUsYUFBYTt3QkFDcEIsV0FBVyxFQUFFLHNDQUFzQzt3QkFDbkQsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPO3FCQUN4QixDQUFDLENBQUM7aUJBQ0o7Z0JBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztvQkFDckIsRUFBRSxFQUFFLHVCQUF1QjtvQkFDM0IsS0FBSyxFQUFFLGdCQUFnQjtvQkFDdkIsV0FBVyxFQUFFLHNFQUFzRTtvQkFDbkYsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLO2lCQUN0QixDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBaEVVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDREQ2hCcEMsNjhCQWdDQTsyRkRoQmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQXV0aFNlcnZpY2UsXG4gIEZvcm1zU2VydmljZSxcbiAgVG9hc3RTZXJ2aWNlLFxuICBUb2FzdFR5cGUsXG4gIFVzZXJTZXJ2aWNlLFxuICBWYWxpZGF0aW9uLFxufSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtY2hhbmdlLXBhc3N3b3JkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybXNTZXJ2aWNlOiBGb3Jtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHBhc3N3b3JkIGNoYW5nZSBmb3JtXG4gICAqL1xuICBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKFxuICAgICAge1xuICAgICAgICBwYXNzd29yZDogbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KV0pLFxuICAgICAgICBwYXNzd29yZENvbmZpcm06IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNildKSxcbiAgICAgIH0sXG4gICAgICB7IHZhbGlkYXRvcnM6IFZhbGlkYXRpb24ubWF0Y2goJ3Bhc3N3b3JkJywgJ3Bhc3N3b3JkQ29uZmlybScpIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCBmb3JtIGFuZCBjaGFuZ2UgcGFzc3dvcmQgb2YgdXNlclxuICAgKi9cbiAgc3VibWl0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybXNTZXJ2aWNlLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm0pO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51c2VyU2VydmljZS5jaGFuZ2VQYXNzd29yZCh0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyLmlkLCB0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpLnZhbHVlKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgaWQ6ICdwYXNzd29yZC1jaGFuZ2Utc3VjY2VzcycsXG4gICAgICAgICAgICB0aXRsZTogJ0VyZm9sZ3JlaWNoJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGFzc3dvcnQgd3VyZGUgZXJmb2xncmVpY2ggZ2XDpG5kZXJ0LicsXG4gICAgICAgICAgICB0eXBlOiBUb2FzdFR5cGUuU1VDQ0VTUyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgIGlkOiAncGFzc3dvcmQtY2hhbmdlLWVycm9yJyxcbiAgICAgICAgICB0aXRsZTogJ0ZlaGxnZXNjaGxhZ2VuJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Bhc3N3b3J0IMOkbmRlcm4gaXN0IGZlaGxnZXNjaGxhZ2VuLCBiaXR0ZSB2ZXJzdWNoZSBlcyBzcMOkdGVyIGVybmV1dC4nLFxuICAgICAgICAgIHR5cGU6IFRvYXN0VHlwZS5FUlJPUixcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8aDM+UGFzc3dvcnQgw6RuZGVybjwvaDM+XG5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8YmFzZS1pbnB1dFxuICAgIFtpZF09XCIncGFzc3dvcmQnXCJcbiAgICBbbGFiZWxdPVwiJ1Bhc3N3b3J0J1wiXG4gICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgIFtjb250cm9sXT1cImZvcm0uZ2V0KCdwYXNzd29yZCcpXCJcbiAgICBbdGFiSW5kZXhdPVwiMVwiXG4gICAgW2V5ZUJ1dHRvbl09XCJ0cnVlXCJcbiAgPjwvYmFzZS1pbnB1dD5cbiAgPGJhc2UtaW5wdXRcbiAgICBbaWRdPVwiJ3Bhc3N3b3JkLWNvbmZpcm0nXCJcbiAgICBbbGFiZWxdPVwiJ1Bhc3N3b3J0IGJlc3TDpHRpZ2VuJ1wiXG4gICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgIFtjb250cm9sXT1cImZvcm0uZ2V0KCdwYXNzd29yZENvbmZpcm0nKVwiXG4gICAgW3RhYkluZGV4XT1cIjJcIlxuICAgIFtleWVCdXR0b25dPVwidHJ1ZVwiXG4gID48L2Jhc2UtaW5wdXQ+XG5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgPGRpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic3VibWl0KClcIiAqbmdJZj1cIiFsb2FkaW5nXCI+UGFzc3dvcnQgw6RuZGVybjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBkaXNhYmxlZCAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbVwiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgIExvYWRpbmcuLi5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { ToastType } from '@lenne.tech/ng-base/shared';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@lenne.tech/ng-base/shared";
|
|
5
|
+
import * as i2 from "@angular/router";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
export class DeleteAccountComponent {
|
|
8
|
+
constructor(userService, authService, toastService, router) {
|
|
9
|
+
this.userService = userService;
|
|
10
|
+
this.authService = authService;
|
|
11
|
+
this.toastService = toastService;
|
|
12
|
+
this.router = router;
|
|
13
|
+
this.description = 'Mit dem Löschen Deines Kontos werden alle persönlichen Daten sofort gelöscht und sind nicht wiederherstellbar.';
|
|
14
|
+
this.loading = false;
|
|
15
|
+
}
|
|
16
|
+
deleteAccount() {
|
|
17
|
+
this.loading = true;
|
|
18
|
+
if (!confirm('Willst Du wirklich ein Konto unwiderruflich löschen?')) {
|
|
19
|
+
this.loading = false;
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this.userService.delete(this.authService.currentUser.id).subscribe({
|
|
23
|
+
next: (response) => {
|
|
24
|
+
if (response) {
|
|
25
|
+
this.toastService.show({
|
|
26
|
+
id: 'delete-user-success',
|
|
27
|
+
title: 'Erfolgreich',
|
|
28
|
+
description: 'Dein Konto wurde erfolgreich gelöscht.',
|
|
29
|
+
type: ToastType.SUCCESS,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
this.authService.logout();
|
|
33
|
+
this.router.navigate(['/']);
|
|
34
|
+
this.loading = false;
|
|
35
|
+
},
|
|
36
|
+
error: (error) => {
|
|
37
|
+
this.loading = false;
|
|
38
|
+
this.toastService.show({
|
|
39
|
+
id: 'delete-user-error',
|
|
40
|
+
title: 'Fehlgeschlagen',
|
|
41
|
+
description: 'Konto löschen ist fehlgeschlagen, bitte versuche es später erneut.',
|
|
42
|
+
type: ToastType.ERROR,
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
DeleteAccountComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DeleteAccountComponent, deps: [{ token: i1.UserService }, { token: i1.AuthService }, { token: i1.ToastService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
+
DeleteAccountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: DeleteAccountComponent, selector: "base-delete-account", inputs: { description: "description" }, ngImport: i0, template: "<div>\n <h3>Konto l\u00F6schen</h3>\n\n <p>{{ description }}</p>\n\n <div class=\"d-flex justify-content-end mt-3\">\n <div>\n <button class=\"btn btn-primary\" (click)=\"deleteAccount()\" *ngIf=\"!loading\">Konto l\u00F6schen</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DeleteAccountComponent, decorators: [{
|
|
51
|
+
type: Component,
|
|
52
|
+
args: [{ selector: 'base-delete-account', template: "<div>\n <h3>Konto l\u00F6schen</h3>\n\n <p>{{ description }}</p>\n\n <div class=\"d-flex justify-content-end mt-3\">\n <div>\n <button class=\"btn btn-primary\" (click)=\"deleteAccount()\" *ngIf=\"!loading\">Konto l\u00F6schen</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n </div>\n </div>\n</div>\n" }]
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i1.UserService }, { type: i1.AuthService }, { type: i1.ToastService }, { type: i2.Router }]; }, propDecorators: { description: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}] } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWFjY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLWNvbXBvbmVudHMvY29tcG9uZW50cy9kZWxldGUtYWNjb3VudC9kZWxldGUtYWNjb3VudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL2RlbGV0ZS1hY2NvdW50L2RlbGV0ZS1hY2NvdW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBNkIsU0FBUyxFQUFlLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBUS9GLE1BQU0sT0FBTyxzQkFBc0I7SUFLakMsWUFDVSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixNQUFjO1FBSGQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVJmLGdCQUFXLEdBQ2xCLGdIQUFnSCxDQUFDO1FBQ25ILFlBQU8sR0FBRyxLQUFLLENBQUM7SUFPYixDQUFDO0lBRUosYUFBYTtRQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksQ0FBQyxPQUFPLENBQUMsc0RBQXNELENBQUMsRUFBRTtZQUNwRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDakUsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksUUFBUSxFQUFFO29CQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO3dCQUNyQixFQUFFLEVBQUUscUJBQXFCO3dCQUN6QixLQUFLLEVBQUUsYUFBYTt3QkFDcEIsV0FBVyxFQUFFLHdDQUF3Qzt3QkFDckQsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPO3FCQUN4QixDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUU1QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO29CQUNyQixFQUFFLEVBQUUsbUJBQW1CO29CQUN2QixLQUFLLEVBQUUsZ0JBQWdCO29CQUN2QixXQUFXLEVBQUUsb0VBQW9FO29CQUNqRixJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUs7aUJBQ3RCLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzttSEE3Q1Usc0JBQXNCO3VHQUF0QixzQkFBc0IsbUdDVG5DLHlmQWVBOzJGRE5hLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7NEtBS3RCLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgVG9hc3RTZXJ2aWNlLCBUb2FzdFR5cGUsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnQGxlbm5lLnRlY2gvbmctYmFzZS9zaGFyZWQnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS1kZWxldGUtYWNjb3VudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWxldGUtYWNjb3VudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RlbGV0ZS1hY2NvdW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERlbGV0ZUFjY291bnRDb21wb25lbnQge1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9XG4gICAgJ01pdCBkZW0gTMO2c2NoZW4gRGVpbmVzIEtvbnRvcyB3ZXJkZW4gYWxsZSBwZXJzw7ZubGljaGVuIERhdGVuIHNvZm9ydCBnZWzDtnNjaHQgdW5kIHNpbmQgbmljaHQgd2llZGVyaGVyc3RlbGxiYXIuJztcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgZGVsZXRlQWNjb3VudCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgaWYgKCFjb25maXJtKCdXaWxsc3QgRHUgd2lya2xpY2ggZWluIEtvbnRvIHVud2lkZXJydWZsaWNoIGzDtnNjaGVuPycpKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmRlbGV0ZSh0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgaWQ6ICdkZWxldGUtdXNlci1zdWNjZXNzJyxcbiAgICAgICAgICAgIHRpdGxlOiAnRXJmb2xncmVpY2gnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEZWluIEtvbnRvIHd1cmRlIGVyZm9sZ3JlaWNoIGdlbMO2c2NodC4nLFxuICAgICAgICAgICAgdHlwZTogVG9hc3RUeXBlLlNVQ0NFU1MsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgIGlkOiAnZGVsZXRlLXVzZXItZXJyb3InLFxuICAgICAgICAgIHRpdGxlOiAnRmVobGdlc2NobGFnZW4nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnS29udG8gbMO2c2NoZW4gaXN0IGZlaGxnZXNjaGxhZ2VuLCBiaXR0ZSB2ZXJzdWNoZSBlcyBzcMOkdGVyIGVybmV1dC4nLFxuICAgICAgICAgIHR5cGU6IFRvYXN0VHlwZS5FUlJPUixcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8aDM+S29udG8gbMO2c2NoZW48L2gzPlxuXG4gIDxwPnt7IGRlc2NyaXB0aW9uIH19PC9wPlxuXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0zXCI+XG4gICAgPGRpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiZGVsZXRlQWNjb3VudCgpXCIgKm5nSWY9XCIhbG9hZGluZ1wiPktvbnRvIGzDtnNjaGVuPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGRpc2FibGVkICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtXCIgcm9sZT1cInN0YXR1c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgTG9hZGluZy4uLlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -25,4 +25,5 @@ export * from './components/model-form-sub/model-form-sub.component';
|
|
|
25
25
|
export * from './components/upload-image/upload-image.component';
|
|
26
26
|
export * from './components/refence-input/refence-input.component';
|
|
27
27
|
export * from './components/change-password/change-password.component';
|
|
28
|
-
|
|
28
|
+
export * from './components/delete-account/delete-account.component';
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1jb21wb25lbnRzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxTQUFTO0FBQ1QsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxhQUFhO0FBQ2IsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsUUFBUTtBQUNSLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsYUFBYTtBQUNiLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV4cG9ydHMgZm9yIHB1YmxpYyBBUElcbiAqL1xuXG4vLyBNb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jb21wb25lbnRzLm1vZHVsZSc7XG5cbi8vIERpcmVjdGl2ZXNcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9zb3J0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvYmFjay1idXR0b24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9jb250ZXh0LW1lbnUuZGlyZWN0aXZlJztcblxuLy8gUGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZWxsaXBzZXMucGlwZSc7XG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFncy90YWdzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9sb2FkaW5nLWJhci9sb2FkaW5nLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NrZWxldG9uLWxvYWRlci9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9tb2RlbC1mb3JtL21vZGVsLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9tb2RlbC10YWJsZS9tb2RlbC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL21vZGVsLWZvcm0tc3ViL21vZGVsLWZvcm0tc3ViLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdXBsb2FkLWltYWdlL3VwbG9hZC1pbWFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9kZWxldGUtYWNjb3VudC9kZWxldGUtYWNjb3VudC5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
3
|
-
import { fullEmail } from '@lenne.tech/ng-base/shared';
|
|
3
|
+
import { fullEmail, ToastType } from '@lenne.tech/ng-base/shared';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@lenne.tech/ng-base/shared";
|
|
6
6
|
import * as i2 from "@angular/router";
|
|
@@ -8,10 +8,11 @@ import * as i3 from "@angular/forms";
|
|
|
8
8
|
import * as i4 from "@angular/common";
|
|
9
9
|
import * as i5 from "@lenne.tech/ng-base/base-components";
|
|
10
10
|
export class ForgotPasswordComponent {
|
|
11
|
-
constructor(formsService, userService, router) {
|
|
11
|
+
constructor(formsService, userService, router, toastService) {
|
|
12
12
|
this.formsService = formsService;
|
|
13
13
|
this.userService = userService;
|
|
14
14
|
this.router = router;
|
|
15
|
+
this.toastService = toastService;
|
|
15
16
|
}
|
|
16
17
|
ngOnInit() {
|
|
17
18
|
this.createForm();
|
|
@@ -37,6 +38,12 @@ export class ForgotPasswordComponent {
|
|
|
37
38
|
this.userService.requestPasswordResetMail(this.form.get('email').value).subscribe({
|
|
38
39
|
next: (response) => {
|
|
39
40
|
if (response) {
|
|
41
|
+
this.toastService.show({
|
|
42
|
+
id: 'password-forgot-success',
|
|
43
|
+
title: 'Erfolgreich',
|
|
44
|
+
description: 'Wir haben Dir eine E-Mail geschickt. Bitte überprüfe Dein Postfach.',
|
|
45
|
+
type: ToastType.SUCCESS,
|
|
46
|
+
});
|
|
40
47
|
this.router.navigate(['/']);
|
|
41
48
|
}
|
|
42
49
|
else {
|
|
@@ -51,10 +58,10 @@ export class ForgotPasswordComponent {
|
|
|
51
58
|
});
|
|
52
59
|
}
|
|
53
60
|
}
|
|
54
|
-
ForgotPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.FormsService }, { token: i1.UserService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
+
ForgotPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.FormsService }, { token: i1.UserService }, { token: i2.Router }, { token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
55
62
|
ForgotPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ForgotPasswordComponent, selector: "base-forgot-password", ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column forgot-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [autocomplete]=\"'email'\"\n [control]=\"form.get('email')\"\n ></base-input>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">E-Mail senden</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n <hr />\n <a routerLink=\"../login\">Bereits ein Konto? Dann logge Dich hier ein!</a>\n <a routerLink=\"../registrieren\">Noch kein Konto? Dann registriere Dich jetzt!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".forgot-container{width:100%;padding:20px 0}@media (min-width: 768px){.forgot-container{max-width:400px}}\n"], dependencies: [{ kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.InputComponent, selector: "base-input", inputs: ["id", "name", "label", "placeholder", "autocomplete", "tabIndex", "control", "type", "required", "eyeButton"], outputs: ["enter"] }] });
|
|
56
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
|
|
57
64
|
type: Component,
|
|
58
65
|
args: [{ selector: 'base-forgot-password', template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column forgot-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [autocomplete]=\"'email'\"\n [control]=\"form.get('email')\"\n ></base-input>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">E-Mail senden</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n <hr />\n <a routerLink=\"../login\">Bereits ein Konto? Dann logge Dich hier ein!</a>\n <a routerLink=\"../registrieren\">Noch kein Konto? Dann registriere Dich jetzt!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".forgot-container{width:100%;padding:20px 0}@media (min-width: 768px){.forgot-container{max-width:400px}}\n"] }]
|
|
59
|
-
}], ctorParameters: function () { return [{ type: i1.FormsService }, { type: i1.UserService }, { type: i2.Router }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
}], ctorParameters: function () { return [{ type: i1.FormsService }, { type: i1.UserService }, { type: i2.Router }, { type: i1.ToastService }]; } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1wcm90b3R5cGUvcGFnZXMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFnQixTQUFTLEVBQWdCLFNBQVMsRUFBZSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBUTNHLE1BQU0sT0FBTyx1QkFBdUI7SUFLbEMsWUFDVSxZQUEwQixFQUMxQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsWUFBMEI7UUFIMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2pDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDL0IsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ3RFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hGLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLFFBQVEsRUFBRTtvQkFDWixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQzt3QkFDckIsRUFBRSxFQUFFLHlCQUF5Qjt3QkFDN0IsS0FBSyxFQUFFLGFBQWE7d0JBQ3BCLFdBQVcsRUFBRSxxRUFBcUU7d0JBQ2xGLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTztxQkFDeEIsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDN0I7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyw0REFBNEQsQ0FBQztpQkFDM0U7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyw0REFBNEQsQ0FBQztnQkFDMUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQTFEVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qiw0RENWcEMsNHNDQTZCQTsyRkRuQmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3Jtc1NlcnZpY2UsIGZ1bGxFbWFpbCwgVG9hc3RTZXJ2aWNlLCBUb2FzdFR5cGUsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnQGxlbm5lLnRlY2gvbmctYmFzZS9zaGFyZWQnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS1mb3Jnb3QtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcmdvdFBhc3N3b3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgZXJyb3I6IHN0cmluZztcbiAgbG9hZGluZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1zU2VydmljZTogRm9ybXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGxvZ2luIGZvcm1cbiAgICovXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5mb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgICAgZW1haWw6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBmdWxsRW1haWwoKV0pLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCBmb3JtXG4gICAqL1xuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5mb3Jtc1NlcnZpY2UudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybSk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnJlcXVlc3RQYXNzd29yZFJlc2V0TWFpbCh0aGlzLmZvcm0uZ2V0KCdlbWFpbCcpLnZhbHVlKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgaWQ6ICdwYXNzd29yZC1mb3Jnb3Qtc3VjY2VzcycsXG4gICAgICAgICAgICB0aXRsZTogJ0VyZm9sZ3JlaWNoJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnV2lyIGhhYmVuIERpciBlaW5lIEUtTWFpbCBnZXNjaGlja3QuIEJpdHRlIMO8YmVycHLDvGZlIERlaW4gUG9zdGZhY2guJyxcbiAgICAgICAgICAgIHR5cGU6IFRvYXN0VHlwZS5TVUNDRVNTLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSAnRXR3YXMgaXN0IHNjaGllZmdlbGF1ZmVuLiBCaXR0ZSBwcm9iaWVyZSBlcyBzcMOkdGVyIGVybmV1dC4nO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3IgPSAnRXR3YXMgaXN0IHNjaGllZmdlbGF1ZmVuLiBCaXR0ZSBwcm9iaWVyZSBlcyBzcMOkdGVyIGVybmV1dC4nO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgaC0xMDAgcHktNVwiPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZvcmdvdC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiIHJvbGU9XCJhbGVydFwiICpuZ0lmPVwiZXJyb3JcIj5cbiAgICAgICAgICB7eyBlcnJvciB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICBbaWRdPVwiJ2VtYWlsJ1wiXG4gICAgICAgICAgW25hbWVdPVwiJ2VtYWlsJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidFLU1haWwgQWRyZXNzZSdcIlxuICAgICAgICAgIFt0eXBlXT1cIidlbWFpbCdcIlxuICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiJ2VtYWlsJ1wiXG4gICAgICAgICAgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ2VtYWlsJylcIlxuICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ncmlkIGdhcC0yIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzdWJtaXQoKVwiICpuZ0lmPVwiIWxvYWRpbmdcIj5FLU1haWwgc2VuZGVuPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBkaXNhYmxlZCAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc21cIiByb2xlPVwic3RhdHVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgTG9hZGluZy4uLlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxociAvPlxuICAgICAgICAgIDxhIHJvdXRlckxpbms9XCIuLi9sb2dpblwiPkJlcmVpdHMgZWluIEtvbnRvPyBEYW5uIGxvZ2dlIERpY2ggaGllciBlaW4hPC9hPlxuICAgICAgICAgIDxhIHJvdXRlckxpbms9XCIuLi9yZWdpc3RyaWVyZW5cIj5Ob2NoIGtlaW4gS29udG8/IERhbm4gcmVnaXN0cmllcmUgRGljaCBqZXR6dCE8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -67,14 +67,6 @@ export class GraphQLService {
|
|
|
67
67
|
const fieldsData = this.prepareFields(config.fields, {
|
|
68
68
|
allowed: allowedFields,
|
|
69
69
|
});
|
|
70
|
-
// Log fields data
|
|
71
|
-
if (config.log) {
|
|
72
|
-
fieldsData.usedFields.sort();
|
|
73
|
-
fieldsData.schemaFields.sort();
|
|
74
|
-
const filtered = fieldsData.schemaFields.filter((field) => !fieldsData.usedFields.includes(field));
|
|
75
|
-
const unused = this.graphQLTypeToStringArray(allowedFields).filter((field) => !fieldsData.usedFields.includes(field));
|
|
76
|
-
console.log({ fieldsData, filtered, unused });
|
|
77
|
-
}
|
|
78
70
|
fields = fieldsData.fieldsString;
|
|
79
71
|
}
|
|
80
72
|
if (fields && !fields.startsWith('{')) {
|
|
@@ -103,7 +95,10 @@ export class GraphQLService {
|
|
|
103
95
|
.filter((field) => !argsData.usedArgs.includes(field));
|
|
104
96
|
console.log({ argsData, filtered, unused });
|
|
105
97
|
}
|
|
106
|
-
|
|
98
|
+
let args = argsData?.argsString || '';
|
|
99
|
+
if (args === '{}') {
|
|
100
|
+
args = '';
|
|
101
|
+
}
|
|
107
102
|
// Log
|
|
108
103
|
if (config.log) {
|
|
109
104
|
console.log({ graphQL: graphql, args, fields, type: config.type });
|
|
@@ -437,4 +432,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
437
432
|
providedIn: 'root',
|
|
438
433
|
}]
|
|
439
434
|
}], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.GraphQLMetaService }]; } });
|
|
440
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvZ3JhcGhxbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBRW5DOztHQUVHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFDekI7O09BRUc7SUFDSCxZQUFzQixNQUFjLEVBQVksa0JBQXNDO1FBQWhFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUUxRjs7T0FFRztJQUNJLE9BQU8sQ0FBQyxPQUFlLEVBQUUsVUFBMkIsRUFBRTtRQUMzRCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsYUFBYTtRQUNiLE1BQU0sTUFBTSxHQUFHO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsRUFBRSxLQUFLO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsa0JBQWtCLENBQUMsS0FBSztZQUM5QixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsd0NBQXdDO1FBQ3hDLElBQUksT0FBTyxNQUFNLENBQUMsU0FB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WTtnQ0FDWixHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7Z0NBQ1osVUFBVTs2QkFDWCxDQUFDLENBQUMsWUFBWTs0QkFDZixJQUFJOzRCQUNKLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzs0QkFDOUIsR0FBRyxDQUFDO2lCQUNQO2FBQ0Y7U0FDRjtRQUVELGdCQUFnQjtRQUNoQixPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUNwRCxDQUFDOzsyR0F6ZlUsY0FBYzsrR0FBZCxjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwb2xsbywgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUdyYXBoUUxPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ncmFwaHFsLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyYXBoUUxSZXF1ZXN0VHlwZSB9IGZyb20gJy4uL2VudW1zL2dyYXBocWwtcmVxdWVzdC10eXBlLmVudW0nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JhcGhRTE1ldGFTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaHFsLW1ldGEuc2VydmljZSc7XG5pbXBvcnQgeyBHcmFwaFFMRW51bSB9IGZyb20gJy4uL2NsYXNzZXMvZ3JhcGhxbC1lbnVtLmNsYXNzJztcbmltcG9ydCB7IEdyYXBoUUxUeXBlIH0gZnJvbSAnLi4vY2xhc3Nlcy9ncmFwaHFsLXR5cGUuY2xhc3MnO1xuaW1wb3J0IHsgSUdyYXBoUUxUeXBlQ29sbGVjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3JhcGhxbC10eXBlLWNvbGxlY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IHNoYTI1NiB9IGZyb20gJ2pzLXNoYTI1Nic7XG5cbi8qKlxuICogR3JhcGhRTCBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFwaFFMU2VydmljZSB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIHNlcnZpY2VzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBvbGxvOiBBcG9sbG8sIHByb3RlY3RlZCBncmFwaFFMTWV0YVNlcnZpY2U6IEdyYXBoUUxNZXRhU2VydmljZSkge31cblxuICAvKipcbiAgICogR3JhcGhRTCByZXF1ZXN0XG4gICAqL1xuICBwdWJsaWMgZ3JhcGhRbChncmFwaHFsOiBzdHJpbmcsIG9wdGlvbnM6IElHcmFwaFFMT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBDaGVjayBhcmd1bWVudHNcbiAgICBpZiAoIWdyYXBocWwpIHtcbiAgICAgIHRocm93RXJyb3IoJ01pc3NpbmcgZ3JhcGhxbCBhcmd1bWVudCcpO1xuICAgIH1cblxuICAgIC8vIEdldCBjb25maWdcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBhcmd1bWVudHM6IG51bGwsXG4gICAgICBmaWVsZHM6IG51bGwsXG4gICAgICBsb2c6IGZhbHNlLFxuICAgICAgbW9kZWw6IG51bGwsXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgYXJndW1lbnRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuYXJndW1lbnRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuYXJndW1lbnRzID0gbmV3IGNvbmZpZy5hcmd1bWVudHMoKTtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgZmllbGRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuZmllbGRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuZmllbGRzID0gbmV3IGNvbmZpZy5maWVsZHMoKTtcbiAgICB9XG5cbiAgICAvLyBMb2dcbiAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgY29uc29sZS5sb2coeyBjb25maWcgfSk7XG4gICAgfVxuXG4gICAgLy8gU2VuZCByZXF1ZXN0XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAvLyBHZXQgbWV0YVxuICAgICAgdGhpcy5ncmFwaFFMTWV0YVNlcnZpY2UuZ2V0TWV0YSh7IGxvZzogY29uZmlnLmxvZyB9KS5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgICAgLy8gUHJlcGFyZSBmaWVsZHNcbiAgICAgICAgbGV0IGZpZWxkcztcbiAgICAgICAgbGV0IGFsbG93ZWRGaWVsZHM7XG5cbiAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IG1ldGEgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLmZpZWxkcykge1xuICAgICAgICAgIGFsbG93ZWRGaWVsZHMgPSBtZXRhLmdldEZpZWxkcyhncmFwaHFsLCB7IHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuXG4gICAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coeyBhbGxvd2VkRmllbGRzIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZpZWxkc0RhdGEgPSB0aGlzLnByZXBhcmVGaWVsZHMoY29uZmlnLmZpZWxkcywge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZEZpZWxkcyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIExvZyBmaWVsZHMgZGF0YVxuICAgICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgICBmaWVsZHNEYXRhLnVzZWRGaWVsZHMuc29ydCgpO1xuICAgICAgICAgICAgZmllbGRzRGF0YS5zY2hlbWFGaWVsZHMuc29ydCgpO1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWQgPSBmaWVsZHNEYXRhLnNjaGVtYUZpZWxkcy5maWx0ZXIoKGZpZWxkKSA9PiAhZmllbGRzRGF0YS51c2VkRmllbGRzLmluY2x1ZGVzKGZpZWxkKSk7XG4gICAgICAgICAgICBjb25zdCB1bnVzZWQgPSB0aGlzLmdyYXBoUUxUeXBlVG9TdHJpbmdBcnJheShhbGxvd2VkRmllbGRzKS5maWx0ZXIoXG4gICAgICAgICAgICAgIChmaWVsZCkgPT4gIWZpZWxkc0RhdGEudXNlZEZpZWxkcy5pbmNsdWRlcyhmaWVsZClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyh7IGZpZWxkc0RhdGEsIGZpbHRlcmVkLCB1bnVzZWQgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZmllbGRzID0gZmllbGRzRGF0YS5maWVsZHNTdHJpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGRzICYmICFmaWVsZHMuc3RhcnRzV2l0aCgneycpKSB7XG4gICAgICAgICAgZmllbGRzID0gJ3snICsgZmllbGRzICsgJ1xcbn0nO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTG9nIGZpZWxkc1xuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgZmllbGRzIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IGFsbG93ZWQgYXJnc1xuICAgICAgICBjb25zdCBhbGxvd2VkQXJncyA9IG1ldGEuZ2V0QXJncyhncmFwaHFsLCB7IHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuXG4gICAgICAgIC8vIExvZyBhbGxvd2VkIGFyZ3NcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IGFsbG93ZWRBcmdzIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJnc0RhdGEgPSB0aGlzLnByZXBhcmVBcmd1bWVudHMoY29uZmlnLmFyZ3VtZW50cywge1xuICAgICAgICAgIGFsbG93ZWQ6IGFsbG93ZWRBcmdzLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBMb2cgYXJncyBkYXRhXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgYXJnc0RhdGEudXNlZEFyZ3Muc29ydCgpO1xuICAgICAgICAgIGFyZ3NEYXRhLnNjaGVtYUFyZ3Muc29ydCgpO1xuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkID0gYXJnc0RhdGEuc2NoZW1hQXJncy5maWx0ZXIoKGZpZWxkKSA9PiAhYXJnc0RhdGEudXNlZEFyZ3MuaW5jbHVkZXMoZmllbGQpKTtcbiAgICAgICAgICBjb25zdCB1bnVzZWQgPSB0aGlzLmdyYXBoUUxUeXBlVG9TdHJpbmdBcnJheShhbGxvd2VkQXJncylcbiAgICAgICAgICAgIC5zb3J0KClcbiAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiAhYXJnc0RhdGEudXNlZEFyZ3MuaW5jbHVkZXMoZmllbGQpKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IGFyZ3NEYXRhLCBmaWx0ZXJlZCwgdW51c2VkIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJncyA9IGFyZ3NEYXRhPy5hcmdzU3RyaW5nIHx8ICcnO1xuXG4gICAgICAgIC8vIExvZ1xuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgZ3JhcGhRTDogZ3JhcGhxbCwgYXJncywgZmllbGRzLCB0eXBlOiBjb25maWcudHlwZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgcmVxdWVzdFxuICAgICAgICBjb25zdCBkb2N1bWVudE5vZGUgPSBmaWVsZHNcbiAgICAgICAgICA/IGdxbChjb25maWcudHlwZSArICd7XFxuJyArIGdyYXBocWwgKyBhcmdzICsgZmllbGRzICsgJ1xcbn0nKVxuICAgICAgICAgIDogZ3FsKGNvbmZpZy50eXBlICsgJ3tcXG4nICsgZ3JhcGhxbCArIGFyZ3MgKyAnXFxufScpO1xuXG4gICAgICAgIC8vIExvZ1xuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgZG9jdW1lbnROb2RlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdDogYW55ID0ge307XG4gICAgICAgIHJlcXVlc3RbY29uZmlnLnR5cGVdID0gZG9jdW1lbnROb2RlO1xuXG4gICAgICAgIC8vIExvZ1xuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgcmVxdWVzdCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmdW5jO1xuICAgICAgICBpZiAoY29uZmlnLnR5cGUgPT09IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTikge1xuICAgICAgICAgIGZ1bmMgPSAnbXV0YXRlJztcbiAgICAgICAgICByZXF1ZXN0W2NvbmZpZy50eXBlXSA9IGRvY3VtZW50Tm9kZTtcbiAgICAgICAgfSBlbHNlIGlmIChjb25maWcudHlwZSA9PT0gR3JhcGhRTFJlcXVlc3RUeXBlLlNVQlNDUklQVElPTikge1xuICAgICAgICAgIGZ1bmMgPSAnc3Vic2NyaWJlJztcbiAgICAgICAgICByZXF1ZXN0LnF1ZXJ5ID0gZG9jdW1lbnROb2RlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZ1bmMgPSBjb25maWcudHlwZTtcbiAgICAgICAgICByZXF1ZXN0W2NvbmZpZy50eXBlXSA9IGRvY3VtZW50Tm9kZTtcbiAgICAgICAgfVxuXG4gICAgICAgICh0aGlzLmFwb2xsbyBhcyBhbnkpW2Z1bmNdKHJlcXVlc3QpLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQ/LmRhdGE/LltncmFwaHFsXSAhPT0gdW5kZWZpbmVkID8gcmVzdWx0LmRhdGFbZ3JhcGhxbF0gOiByZXN1bHQ7XG5cbiAgICAgICAgICAgIC8vIERpcmVjdCBkYXRhXG4gICAgICAgICAgICBpZiAoIWNvbmZpZy5tb2RlbCkge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE1hcCBkYXRhIGFzIGFycmF5XG4gICAgICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChcbiAgICAgICAgICAgICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5tb2RlbC5tYXAoaXRlbSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTWFwIGRhdGFcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoY29uZmlnLm1vZGVsLm1hcChkYXRhKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjb25maWcudHlwZSAhPT0gR3JhcGhRTFJlcXVlc3RUeXBlLlNVQlNDUklQVElPTikge1xuICAgICAgICAgICAgICAvLyBEb25lXG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZmllbGRzIC8gYXJncyBmcm9tIElHcmFwaFFMVHlwZUNvbGxlY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBncmFwaFFMVHlwZVRvU3RyaW5nQXJyYXkoZ3JhcGhRTFR5cGU6IEdyYXBoUUxUeXBlLCBjdXJyZW50ID0gJycsIHJlc3VsdCA9IFtdLCBjYWNoZU5vZGUgPSBbXSkge1xuICAgIGlmICghZ3JhcGhRTFR5cGUpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmIChjdXJyZW50Py5pbmNsdWRlcygnLicpKSB7XG4gICAgICBjYWNoZU5vZGUucHVzaChjdXJyZW50LnNwbGl0KCcuJylbMV0pO1xuICAgIH0gZWxzZSBpZiAoY3VycmVudCkge1xuICAgICAgY2FjaGVOb2RlLnB1c2goY3VycmVudCk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGdyYXBoUUxUeXBlLmZpZWxkcykpIHtcbiAgICAgIGlmIChjdXJyZW50ID09PSBrZXkgfHwgY2FjaGVOb2RlLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aGlzLmdyYXBoUUxUeXBlVG9TdHJpbmdBcnJheShncmFwaFFMVHlwZS5maWVsZHNba2V5XSwgY3VycmVudCA/IGN1cnJlbnQgKyAnLicgKyBrZXkgOiBrZXksIHJlc3VsdCwgY2FjaGVOb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGFyZ3VtZW50cyBmb3IgR3JhcGhRTCByZXF1ZXN0XG4gICAqL1xuICBwcm90ZWN0ZWQgcHJlcGFyZUFyZ3VtZW50cyhcbiAgICBhcmdzOiBhbnksXG4gICAgb3B0aW9uczoge1xuICAgICAgYWxsb3dlZD86IEdyYXBoUUxUeXBlO1xuICAgICAgbGV2ZWw/OiBudW1iZXI7XG4gICAgICBwYXJlbnQ/OiBzdHJpbmc7XG4gICAgICBzY2hlbWFBcmdzPzogc3RyaW5nW107XG4gICAgICB1c2VkQXJncz86IHN0cmluZ1tdO1xuICAgIH0gPSB7fVxuICApOiB7IGFyZ3NTdHJpbmc6IHN0cmluZzsgc2NoZW1hQXJnczogc3RyaW5nW107IHVzZWRBcmdzOiBzdHJpbmdbXSB9IHtcbiAgICAvLyBJbml0IGNvbmZpZyB2YXJpYWJsZXNcbiAgICBjb25zdCB7IGFsbG93ZWQsIGxldmVsLCBwYXJlbnQsIHNjaGVtYUFyZ3MsIHVzZWRBcmdzIH0gPSB7XG4gICAgICBhbGxvd2VkOiBudWxsLFxuICAgICAgbGV2ZWw6IDEsXG4gICAgICBwYXJlbnQ6ICcnLFxuICAgICAgc2NoZW1hQXJnczogW10sXG4gICAgICB1c2VkQXJnczogW10sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBDaGVjayBhcmdzXG4gICAgaWYgKGFyZ3MgPT09IHVuZGVmaW5lZCB8fCBhcmdzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAnJywgc2NoZW1hQXJncywgdXNlZEFyZ3MgfTtcbiAgICB9XG5cbiAgICAvLyBJbml0IGFyZ3NcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgIC8vIFByb2Nlc3MgYXJyYXlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhcmdzKSkge1xuICAgICAgY29uc3QgYWxsb3dlZEtleXMgPSBhbGxvd2VkID8gT2JqZWN0LmtleXMoYWxsb3dlZC5maWVsZHMpIDogbnVsbDtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcmdzKSB7XG4gICAgICAgIGxldCBrZXkgPSBudWxsO1xuICAgICAgICBpZiAoYWxsb3dlZCkge1xuICAgICAgICAgIGlmICghYWxsb3dlZEtleXMgfHwgYWxsb3dlZEtleXMubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGtleSA9IGFsbG93ZWRLZXlzLnNoaWZ0KCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcm9jZXNzIHZhbHVlXG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgIHRoaXMucHJlcGFyZUFyZ3VtZW50cyhpdGVtLCB7XG4gICAgICAgICAgICBhbGxvd2VkOiBrZXkgPyBhbGxvd2VkLmZpZWxkc1trZXldIDogbnVsbCxcbiAgICAgICAgICAgIGxldmVsOiBsZXZlbCArIDEsXG4gICAgICAgICAgICBwYXJlbnQ6IHBhcmVudCArIGtleSArICcuJyxcbiAgICAgICAgICAgIHNjaGVtYUFyZ3MsXG4gICAgICAgICAgICB1c2VkQXJncyxcbiAgICAgICAgICB9KS5hcmdzU3RyaW5nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEVuY2Fwc3VsYXRpb24gb2YgdGhlIGFycmF5IHJlc3VsdFxuICAgICAgaWYgKHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgLy8gQ29tcGxldGUgcmVzdWx0LCBlbmNhcHN1bGF0ZWQgdmlhIHJvdW5kIGJyYWNrZXRzXG4gICAgICAgIGlmIChsZXZlbCA9PT0gMSkge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICcoJyArIHJlc3VsdC5qb2luKCcsICcpICsgJyknLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVlcGVyIHJlc3VsdCBwYXJ0LCBlbmNhcHN1bGF0ZWQgdmlhIHNxdWFyZSBicmFja2V0c1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAnWycgKyByZXN1bHQuam9pbignLCAnKSArICddJywgc2NoZW1hQXJncywgdXNlZEFyZ3MgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgb2JqZWN0XG4gICAgZWxzZSBpZiAodHlwZW9mIGFyZ3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAvLyBDaGVjayBvYmplY3QgaXMgZW1wdHlcbiAgICAgIGlmIChhcmdzICYmIE9iamVjdC5rZXlzKGFyZ3MpLmxlbmd0aCA9PT0gMCAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoYXJncykgPT09IE9iamVjdC5wcm90b3R5cGUpIHtcbiAgICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogJ3t9Jywgc2NoZW1hQXJncywgdXNlZEFyZ3MgfTtcbiAgICAgIH1cbiAgICAgIC8vIFByb2Nlc3MgYWxsIG9iamVjdCBlbnRyaWVzXG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhhcmdzKSkge1xuICAgICAgICAvLyBJbml0IGRhdGEgZm9yIGN1cnJlbnQgZW50cnlcbiAgICAgICAgY29uc3QgY3VycmVudEtleSA9IHBhcmVudCArIGtleTtcbiAgICAgICAgc2NoZW1hQXJncy5wdXNoKGN1cnJlbnRLZXkpO1xuXG4gICAgICAgIC8vIElmIHRoZSBhbGxvd2VkIGtleSBoYW5kbGluZyBpcyBlbmFibGVkIGFuZCB0aGUgY3VycmVudCBrZXkgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIGFsbG93ZWQga2V5cyxcbiAgICAgICAgLy8gdGhlIGN1cnJlbnQga2V5IHdpbGwgYmUgc2tpcHBlZFxuICAgICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNba2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2tpcCB2YWx1ZSBpZiBub3QgZXhpc3RzXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgY3VycmVudCBrZXkgdG8gbWV0YWRhdGFcbiAgICAgICAgdXNlZEFyZ3MucHVzaChjdXJyZW50S2V5KTtcblxuICAgICAgICAvLyBQcm9jZXNzIEdyYXBoUUxFbnVtXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEdyYXBoUUxFbnVtKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5ICsgJzonICsgdmFsdWUudmFsdWUpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSArICc6JyArIGBcIiR7c2hhMjU2KHZhbHVlIGFzIHN0cmluZyl9XCJgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByb2Nlc3MgYXJyYXlcbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAgIGtleSArXG4gICAgICAgICAgICAgICc6IFsnICtcbiAgICAgICAgICAgICAgdmFsdWUubWFwKFxuICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlQXJndW1lbnRzKGl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50S2V5ICsgJy4nLFxuICAgICAgICAgICAgICAgICAgICBzY2hlbWFBcmdzLFxuICAgICAgICAgICAgICAgICAgICB1c2VkQXJncyxcbiAgICAgICAgICAgICAgICAgIH0pLmFyZ3NTdHJpbmdcbiAgICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgICddJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmVwYXJlIGFkZGl0aW9uYWwgcmVzdWx0IHN0cmluZ1xuICAgICAgICBsZXQgYWRkaXRpb25hbFJlc3VsdCA9IGtleSArICc6ICc7XG5cbiAgICAgICAgLy8gVmFsdWUgaXMgYSBkYXRlIG9iamVjdFxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBEYXRlXScpIHtcbiAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IGBcIlwiXCIkeyh2YWx1ZSBhcyBEYXRlKS50b1N0cmluZygpfVwiXCJcImA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIHN0cmluZ1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgLy8gRW51bSAoZG9lc24ndCBuZWVkIHF1b3RhdGlvbiBtYXJrcylcbiAgICAgICAgICBpZiAoYWxsb3dlZC5maWVsZHNba2V5XS5pc0VudW0pIHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gdmFsdWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU3RyaW5nXG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IGBcIiR7dmFsdWUucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKX1cImA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsdWUgaXMgYSBzaW1wbGUgYm9vbGVhbiBvciBhIG51bWJlclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgYWRkaXRpb25hbFJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE90aGVyc1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IHRoaXMucHJlcGFyZUFyZ3VtZW50cyh2YWx1ZSwge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSxcbiAgICAgICAgICAgIGxldmVsOiBsZXZlbCArIDEsXG4gICAgICAgICAgICBwYXJlbnQ6IGN1cnJlbnRLZXkgKyAnLicsXG4gICAgICAgICAgICBzY2hlbWFBcmdzLFxuICAgICAgICAgICAgdXNlZEFyZ3MsXG4gICAgICAgICAgfSkuYXJnc1N0cmluZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFB1c2ggZGVlcGVyIHBhcnQgaW50byByZXN1bHQgYXJyYXlcbiAgICAgICAgcmVzdWx0LnB1c2goYWRkaXRpb25hbFJlc3VsdCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEVuY2Fwc3VsYXRpb24gb2YgdGhlIG9iamVjdCByZXN1bHRcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgIC8vIENvbXBsZXRlIHJlc3VsdCwgZW5jYXBzdWxhdGVkIHZpYSByb3VuZCBicmFja2V0c1xuICAgICAgICBpZiAobGV2ZWwgPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAnKCcgKyByZXN1bHQuam9pbignLCAnKSArICcpJywgc2NoZW1hQXJncywgdXNlZEFyZ3MgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZXBlciByZXN1bHQgcGFydCwgZW5jYXBzdWxhdGVkIHZpYSBjdXJseSBicmFja2V0c1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAneycgKyByZXN1bHQuam9pbignLCAnKSArICd9Jywgc2NoZW1hQXJncywgdXNlZEFyZ3MgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByZXBhcmUgYW5kIHByb2Nlc3Mgb3RoZXIgLyB1bmtub3duIHZhbHVlcyBhcyBKU09OXG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiBKU09OLnN0cmluZ2lmeShhcmdzKSwgc2NoZW1hQXJncywgdXNlZEFyZ3MgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBmaWVsZHMgZm9yIEdyYXBoUUwgcmVxdWVzdFxuICAgKi9cbiAgcHJvdGVjdGVkIHByZXBhcmVGaWVsZHMoXG4gICAgZmllbGRzOiBhbnksXG4gICAgb3B0aW9uczoge1xuICAgICAgYWxsb3dlZD86IEdyYXBoUUxUeXBlO1xuICAgICAgc2NoZW1hRmllbGRzPzogc3RyaW5nW107XG4gICAgICB1c2VkRmllbGRzPzogc3RyaW5nW107XG4gICAgICBwYXJlbnQ/OiBzdHJpbmc7XG4gICAgICBzcGFjZXM/OiBudW1iZXI7XG4gICAgICB0YWI/OiBudW1iZXI7XG4gICAgfSA9IHt9XG4gICk6IHsgc2NoZW1hRmllbGRzOiBzdHJpbmdbXTsgZmllbGRzU3RyaW5nOiBzdHJpbmc7IHVzZWRGaWVsZHM6IHN0cmluZ1tdIH0ge1xuICAgIC8vIENvbmZpZ1xuICAgIGNvbnN0IHsgYWxsb3dlZCwgcGFyZW50LCBzY2hlbWFGaWVsZHMsIHNwYWNlcywgdGFiLCB1c2VkRmllbGRzIH0gPSB7XG4gICAgICBhbGxvd2VkOiBudWxsLFxuICAgICAgcGFyZW50OiAnJyxcbiAgICAgIHNjaGVtYUZpZWxkczogW10sXG4gICAgICBzcGFjZXM6IDIsXG4gICAgICB0YWI6IDEsXG4gICAgICB1c2VkRmllbGRzOiBbXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIEluaXQgZmllbGRzIHN0cmluZ1xuICAgIGxldCBmaWVsZHNTdHJpbmcgPSAnJztcblxuICAgIC8vIENoZWNrIGZpZWxkc1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmcsIHNjaGVtYUZpZWxkcywgdXNlZEZpZWxkcyB9O1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgc3RyaW5nXG4gICAgaWYgKHR5cGVvZiBmaWVsZHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNbZmllbGRzXSkge1xuICAgICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmcsIHNjaGVtYUZpZWxkcywgdXNlZEZpZWxkcyB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZmllbGRzU3RyaW5nOiAnXFxuJyArICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArIGZpZWxkcywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBhcnJheVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRzKSkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGZpZWxkcykge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZmllbGRzU3RyaW5nID1cbiAgICAgICAgICAgIGZpZWxkc1N0cmluZyArXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHMoaXRlbSwge1xuICAgICAgICAgICAgICBhbGxvd2VkLCAvLyBpdGVtIGlzIG9iamVjdCBvciBhcnJheVxuICAgICAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgICAgIHNwYWNlcyxcbiAgICAgICAgICAgICAgc2NoZW1hRmllbGRzLFxuICAgICAgICAgICAgICB0YWI6IHRhYiArIDEsXG4gICAgICAgICAgICAgIHVzZWRGaWVsZHMsXG4gICAgICAgICAgICB9KS5maWVsZHNTdHJpbmc7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXJlbnQgKyBpdGVtO1xuICAgICAgICBzY2hlbWFGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1tpdGVtXSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHVzZWRGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGZpZWxkc1N0cmluZyA9XG4gICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHMoaXRlbSwge1xuICAgICAgICAgICAgYWxsb3dlZDogbnVsbCwgLy8gaXRlbSBpcyBzdHJpbmdcbiAgICAgICAgICAgIHBhcmVudDogY3VycmVudFBhdGggKyAnLicsXG4gICAgICAgICAgICBzcGFjZXMsXG4gICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICB0YWI6IHRhYiArIDEsXG4gICAgICAgICAgICB1c2VkRmllbGRzLFxuICAgICAgICAgIH0pLmZpZWxkc1N0cmluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIG9iamVjdFxuICAgIGVsc2UgaWYgKHR5cGVvZiBmaWVsZHMgPT09ICdvYmplY3QnKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMoZmllbGRzKSkge1xuICAgICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhcmVudCArIGtleTtcbiAgICAgICAgc2NoZW1hRmllbGRzLnB1c2goY3VycmVudFBhdGgpO1xuICAgICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNba2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHVzZWRGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXModmFsKS5sZW5ndGgpIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPSBmaWVsZHNTdHJpbmcgKyAnXFxuJyArICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArIGtleTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPVxuICAgICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArXG4gICAgICAgICAgICBrZXkgK1xuICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICd7JyArXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHModmFsLCB7XG4gICAgICAgICAgICAgIGFsbG93ZWQ6IGFsbG93ZWQuZmllbGRzW2tleV0sIC8vIHZhbCBpcyBvYmplY3Qgb3IgYXJyYXlcbiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGF0aCArICcuJyxcbiAgICAgICAgICAgICAgc3BhY2VzLFxuICAgICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICAgIHRhYjogdGFiICsgMSxcbiAgICAgICAgICAgICAgdXNlZEZpZWxkcyxcbiAgICAgICAgICAgIH0pLmZpZWxkc1N0cmluZyArXG4gICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAnICcucmVwZWF0KHNwYWNlcykucmVwZWF0KHRhYikgK1xuICAgICAgICAgICAgJ30nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHJlc3VsdFxuICAgIHJldHVybiB7IGZpZWxkc1N0cmluZywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gIH1cbn1cbiJdfQ==
|
|
435
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvZ3JhcGhxbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBRW5DOztHQUVHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFDekI7O09BRUc7SUFDSCxZQUFzQixNQUFjLEVBQVksa0JBQXNDO1FBQWhFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUUxRjs7T0FFRztJQUNJLE9BQU8sQ0FBQyxPQUFlLEVBQUUsVUFBMkIsRUFBRTtRQUMzRCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsYUFBYTtRQUNiLE1BQU0sTUFBTSxHQUFHO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsRUFBRSxLQUFLO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsa0JBQWtCLENBQUMsS0FBSztZQUM5QixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsd0NBQXdDO1FBQ3hDLElBQUksT0FBTyxNQUFNLENBQUMsU0FB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QUFDO2dCQUM3QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUN2RCxZQUFZLEdBQUcsWUFBWSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQzNFO3FCQUFNO29CQUNMLFlBQVk7d0JBQ1YsWUFBWTs0QkFDWixJQUFJOzRCQUNKLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzs0QkFDOUIsR0FBRzs0QkFDSCxHQUFHOzRCQUNILEdBQUc7NEJBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUU7Z0NBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztnQ0FDNUIsTUFBTSxFQUFFLFdBQVcsR0FBRyxHQUFHO2dDQUN6QixNQUFNO2dDQUNOLFlBQVk7Z0NBQ1osR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO2dDQUNaLFVBQVU7NkJBQ1gsQ0FBQyxDQUFDLFlBQVk7NEJBQ2YsSUFBSTs0QkFDSixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQzlCLEdBQUcsQ0FBQztpQkFDUDthQUNGO1NBQ0Y7UUFFRCxnQkFBZ0I7UUFDaEIsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEQsQ0FBQzs7MkdBamZVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcG9sbG8sIGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElHcmFwaFFMT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3JhcGhxbC1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmFwaFFMUmVxdWVzdFR5cGUgfSBmcm9tICcuLi9lbnVtcy9ncmFwaHFsLXJlcXVlc3QtdHlwZS5lbnVtJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyYXBoUUxNZXRhU2VydmljZSB9IGZyb20gJy4vZ3JhcGhxbC1tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JhcGhRTEVudW0gfSBmcm9tICcuLi9jbGFzc2VzL2dyYXBocWwtZW51bS5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaFFMVHlwZSB9IGZyb20gJy4uL2NsYXNzZXMvZ3JhcGhxbC10eXBlLmNsYXNzJztcbmltcG9ydCB7IHNoYTI1NiB9IGZyb20gJ2pzLXNoYTI1Nic7XG5cbi8qKlxuICogR3JhcGhRTCBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFwaFFMU2VydmljZSB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIHNlcnZpY2VzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBvbGxvOiBBcG9sbG8sIHByb3RlY3RlZCBncmFwaFFMTWV0YVNlcnZpY2U6IEdyYXBoUUxNZXRhU2VydmljZSkge31cblxuICAvKipcbiAgICogR3JhcGhRTCByZXF1ZXN0XG4gICAqL1xuICBwdWJsaWMgZ3JhcGhRbChncmFwaHFsOiBzdHJpbmcsIG9wdGlvbnM6IElHcmFwaFFMT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBDaGVjayBhcmd1bWVudHNcbiAgICBpZiAoIWdyYXBocWwpIHtcbiAgICAgIHRocm93RXJyb3IoJ01pc3NpbmcgZ3JhcGhxbCBhcmd1bWVudCcpO1xuICAgIH1cblxuICAgIC8vIEdldCBjb25maWdcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBhcmd1bWVudHM6IG51bGwsXG4gICAgICBmaWVsZHM6IG51bGwsXG4gICAgICBsb2c6IGZhbHNlLFxuICAgICAgbW9kZWw6IG51bGwsXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgYXJndW1lbnRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuYXJndW1lbnRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuYXJndW1lbnRzID0gbmV3IGNvbmZpZy5hcmd1bWVudHMoKTtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgZmllbGRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuZmllbGRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuZmllbGRzID0gbmV3IGNvbmZpZy5maWVsZHMoKTtcbiAgICB9XG5cbiAgICAvLyBMb2dcbiAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgY29uc29sZS5sb2coeyBjb25maWcgfSk7XG4gICAgfVxuXG4gICAgLy8gU2VuZCByZXF1ZXN0XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAvLyBHZXQgbWV0YVxuICAgICAgdGhpcy5ncmFwaFFMTWV0YVNlcnZpY2UuZ2V0TWV0YSh7IGxvZzogY29uZmlnLmxvZyB9KS5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgICAgLy8gUHJlcGFyZSBmaWVsZHNcbiAgICAgICAgbGV0IGZpZWxkcztcbiAgICAgICAgbGV0IGFsbG93ZWRGaWVsZHM7XG5cbiAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IG1ldGEgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLmZpZWxkcykge1xuICAgICAgICAgIGFsbG93ZWRGaWVsZHMgPSBtZXRhLmdldEZpZWxkcyhncmFwaHFsLCB7IHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuXG4gICAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coeyBhbGxvd2VkRmllbGRzIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZpZWxkc0RhdGEgPSB0aGlzLnByZXBhcmVGaWVsZHMoY29uZmlnLmZpZWxkcywge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZEZpZWxkcyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGZpZWxkcyA9IGZpZWxkc0RhdGEuZmllbGRzU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkcyAmJiAhZmllbGRzLnN0YXJ0c1dpdGgoJ3snKSkge1xuICAgICAgICAgIGZpZWxkcyA9ICd7JyArIGZpZWxkcyArICdcXG59JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvZyBmaWVsZHNcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IGZpZWxkcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBhbGxvd2VkIGFyZ3NcbiAgICAgICAgY29uc3QgYWxsb3dlZEFyZ3MgPSBtZXRhLmdldEFyZ3MoZ3JhcGhxbCwgeyB0eXBlOiBjb25maWcudHlwZSB9KTtcblxuICAgICAgICAvLyBMb2cgYWxsb3dlZCBhcmdzXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBhbGxvd2VkQXJncyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFyZ3NEYXRhID0gdGhpcy5wcmVwYXJlQXJndW1lbnRzKGNvbmZpZy5hcmd1bWVudHMsIHtcbiAgICAgICAgICBhbGxvd2VkOiBhbGxvd2VkQXJncyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gTG9nIGFyZ3MgZGF0YVxuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGFyZ3NEYXRhLnVzZWRBcmdzLnNvcnQoKTtcbiAgICAgICAgICBhcmdzRGF0YS5zY2hlbWFBcmdzLnNvcnQoKTtcbiAgICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IGFyZ3NEYXRhLnNjaGVtYUFyZ3MuZmlsdGVyKChmaWVsZCkgPT4gIWFyZ3NEYXRhLnVzZWRBcmdzLmluY2x1ZGVzKGZpZWxkKSk7XG4gICAgICAgICAgY29uc3QgdW51c2VkID0gdGhpcy5ncmFwaFFMVHlwZVRvU3RyaW5nQXJyYXkoYWxsb3dlZEFyZ3MpXG4gICAgICAgICAgICAuc29ydCgpXG4gICAgICAgICAgICAuZmlsdGVyKChmaWVsZCkgPT4gIWFyZ3NEYXRhLnVzZWRBcmdzLmluY2x1ZGVzKGZpZWxkKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBhcmdzRGF0YSwgZmlsdGVyZWQsIHVudXNlZCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBhcmdzID0gYXJnc0RhdGE/LmFyZ3NTdHJpbmcgfHwgJyc7XG4gICAgICAgIGlmIChhcmdzID09PSAne30nKSB7XG4gICAgICAgICAgYXJncyA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBncmFwaFFMOiBncmFwaHFsLCBhcmdzLCBmaWVsZHMsIHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJlcGFyZSByZXF1ZXN0XG4gICAgICAgIGNvbnN0IGRvY3VtZW50Tm9kZSA9IGZpZWxkc1xuICAgICAgICAgID8gZ3FsKGNvbmZpZy50eXBlICsgJ3tcXG4nICsgZ3JhcGhxbCArIGFyZ3MgKyBmaWVsZHMgKyAnXFxufScpXG4gICAgICAgICAgOiBncWwoY29uZmlnLnR5cGUgKyAne1xcbicgKyBncmFwaHFsICsgYXJncyArICdcXG59Jyk7XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBkb2N1bWVudE5vZGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0OiBhbnkgPSB7fTtcbiAgICAgICAgcmVxdWVzdFtjb25maWcudHlwZV0gPSBkb2N1bWVudE5vZGU7XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyByZXF1ZXN0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZ1bmM7XG4gICAgICAgIGlmIChjb25maWcudHlwZSA9PT0gR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OKSB7XG4gICAgICAgICAgZnVuYyA9ICdtdXRhdGUnO1xuICAgICAgICAgIHJlcXVlc3RbY29uZmlnLnR5cGVdID0gZG9jdW1lbnROb2RlO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy50eXBlID09PSBHcmFwaFFMUmVxdWVzdFR5cGUuU1VCU0NSSVBUSU9OKSB7XG4gICAgICAgICAgZnVuYyA9ICdzdWJzY3JpYmUnO1xuICAgICAgICAgIHJlcXVlc3QucXVlcnkgPSBkb2N1bWVudE5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZnVuYyA9IGNvbmZpZy50eXBlO1xuICAgICAgICAgIHJlcXVlc3RbY29uZmlnLnR5cGVdID0gZG9jdW1lbnROb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgKHRoaXMuYXBvbGxvIGFzIGFueSlbZnVuY10ocmVxdWVzdCkuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3VsdD8uZGF0YT8uW2dyYXBocWxdICE9PSB1bmRlZmluZWQgPyByZXN1bHQuZGF0YVtncmFwaHFsXSA6IHJlc3VsdDtcblxuICAgICAgICAgICAgLy8gRGlyZWN0IGRhdGFcbiAgICAgICAgICAgIGlmICghY29uZmlnLm1vZGVsKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTWFwIGRhdGEgYXMgYXJyYXlcbiAgICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KFxuICAgICAgICAgICAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLm1vZGVsLm1hcChpdGVtKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBNYXAgZGF0YVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChjb25maWcubW9kZWwubWFwKGRhdGEpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvbmZpZy50eXBlICE9PSBHcmFwaFFMUmVxdWVzdFR5cGUuU1VCU0NSSVBUSU9OKSB7XG4gICAgICAgICAgICAgIC8vIERvbmVcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmaWVsZHMgLyBhcmdzIGZyb20gSUdyYXBoUUxUeXBlQ29sbGVjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGdyYXBoUUxUeXBlVG9TdHJpbmdBcnJheShncmFwaFFMVHlwZTogR3JhcGhRTFR5cGUsIGN1cnJlbnQgPSAnJywgcmVzdWx0ID0gW10sIGNhY2hlTm9kZSA9IFtdKSB7XG4gICAgaWYgKCFncmFwaFFMVHlwZSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnQ/LmluY2x1ZGVzKCcuJykpIHtcbiAgICAgIGNhY2hlTm9kZS5wdXNoKGN1cnJlbnQuc3BsaXQoJy4nKVsxXSk7XG4gICAgfSBlbHNlIGlmIChjdXJyZW50KSB7XG4gICAgICBjYWNoZU5vZGUucHVzaChjdXJyZW50KTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZ3JhcGhRTFR5cGUuZmllbGRzKSkge1xuICAgICAgaWYgKGN1cnJlbnQgPT09IGtleSB8fCBjYWNoZU5vZGUuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ3JhcGhRTFR5cGVUb1N0cmluZ0FycmF5KGdyYXBoUUxUeXBlLmZpZWxkc1trZXldLCBjdXJyZW50ID8gY3VycmVudCArICcuJyArIGtleSA6IGtleSwgcmVzdWx0LCBjYWNoZU5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgYXJndW1lbnRzIGZvciBHcmFwaFFMIHJlcXVlc3RcbiAgICovXG4gIHByb3RlY3RlZCBwcmVwYXJlQXJndW1lbnRzKFxuICAgIGFyZ3M6IGFueSxcbiAgICBvcHRpb25zOiB7XG4gICAgICBhbGxvd2VkPzogR3JhcGhRTFR5cGU7XG4gICAgICBsZXZlbD86IG51bWJlcjtcbiAgICAgIHBhcmVudD86IHN0cmluZztcbiAgICAgIHNjaGVtYUFyZ3M/OiBzdHJpbmdbXTtcbiAgICAgIHVzZWRBcmdzPzogc3RyaW5nW107XG4gICAgfSA9IHt9XG4gICk6IHsgYXJnc1N0cmluZzogc3RyaW5nOyBzY2hlbWFBcmdzOiBzdHJpbmdbXTsgdXNlZEFyZ3M6IHN0cmluZ1tdIH0ge1xuICAgIC8vIEluaXQgY29uZmlnIHZhcmlhYmxlc1xuICAgIGNvbnN0IHsgYWxsb3dlZCwgbGV2ZWwsIHBhcmVudCwgc2NoZW1hQXJncywgdXNlZEFyZ3MgfSA9IHtcbiAgICAgIGFsbG93ZWQ6IG51bGwsXG4gICAgICBsZXZlbDogMSxcbiAgICAgIHBhcmVudDogJycsXG4gICAgICBzY2hlbWFBcmdzOiBbXSxcbiAgICAgIHVzZWRBcmdzOiBbXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIGFyZ3NcbiAgICBpZiAoYXJncyA9PT0gdW5kZWZpbmVkIHx8IGFyZ3MgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICcnLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgIH1cblxuICAgIC8vIEluaXQgYXJnc1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgLy8gUHJvY2VzcyBhcnJheVxuICAgIGlmIChBcnJheS5pc0FycmF5KGFyZ3MpKSB7XG4gICAgICBjb25zdCBhbGxvd2VkS2V5cyA9IGFsbG93ZWQgPyBPYmplY3Qua2V5cyhhbGxvd2VkLmZpZWxkcykgOiBudWxsO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGFyZ3MpIHtcbiAgICAgICAgbGV0IGtleSA9IG51bGw7XG4gICAgICAgIGlmIChhbGxvd2VkKSB7XG4gICAgICAgICAgaWYgKCFhbGxvd2VkS2V5cyB8fCBhbGxvd2VkS2V5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAga2V5ID0gYWxsb3dlZEtleXMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByb2Nlc3MgdmFsdWVcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgdGhpcy5wcmVwYXJlQXJndW1lbnRzKGl0ZW0sIHtcbiAgICAgICAgICAgIGFsbG93ZWQ6IGtleSA/IGFsbG93ZWQuZmllbGRzW2tleV0gOiBudWxsLFxuICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50ICsga2V5ICsgJy4nLFxuICAgICAgICAgICAgc2NoZW1hQXJncyxcbiAgICAgICAgICAgIHVzZWRBcmdzLFxuICAgICAgICAgIH0pLmFyZ3NTdHJpbmdcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRW5jYXBzdWxhdGlvbiBvZiB0aGUgYXJyYXkgcmVzdWx0XG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCkge1xuICAgICAgICAvLyBDb21wbGV0ZSByZXN1bHQsIGVuY2Fwc3VsYXRlZCB2aWEgcm91bmQgYnJhY2tldHNcbiAgICAgICAgaWYgKGxldmVsID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogJygnICsgcmVzdWx0LmpvaW4oJywgJykgKyAnKScsIHNjaGVtYUFyZ3MsIHVzZWRBcmdzIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWVwZXIgcmVzdWx0IHBhcnQsIGVuY2Fwc3VsYXRlZCB2aWEgc3F1YXJlIGJyYWNrZXRzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICdbJyArIHJlc3VsdC5qb2luKCcsICcpICsgJ10nLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBvYmplY3RcbiAgICBlbHNlIGlmICh0eXBlb2YgYXJncyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIENoZWNrIG9iamVjdCBpcyBlbXB0eVxuICAgICAgaWYgKGFyZ3MgJiYgT2JqZWN0LmtleXMoYXJncykubGVuZ3RoID09PSAwICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihhcmdzKSA9PT0gT2JqZWN0LnByb3RvdHlwZSkge1xuICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAne30nLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgfVxuICAgICAgLy8gUHJvY2VzcyBhbGwgb2JqZWN0IGVudHJpZXNcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGFyZ3MpKSB7XG4gICAgICAgIC8vIEluaXQgZGF0YSBmb3IgY3VycmVudCBlbnRyeVxuICAgICAgICBjb25zdCBjdXJyZW50S2V5ID0gcGFyZW50ICsga2V5O1xuICAgICAgICBzY2hlbWFBcmdzLnB1c2goY3VycmVudEtleSk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGFsbG93ZWQga2V5IGhhbmRsaW5nIGlzIGVuYWJsZWQgYW5kIHRoZSBjdXJyZW50IGtleSBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGxpc3Qgb2YgYWxsb3dlZCBrZXlzLFxuICAgICAgICAvLyB0aGUgY3VycmVudCBrZXkgd2lsbCBiZSBza2lwcGVkXG4gICAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1trZXldKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTa2lwIHZhbHVlIGlmIG5vdCBleGlzdHNcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCBjdXJyZW50IGtleSB0byBtZXRhZGF0YVxuICAgICAgICB1c2VkQXJncy5wdXNoKGN1cnJlbnRLZXkpO1xuXG4gICAgICAgIC8vIFByb2Nlc3MgR3JhcGhRTEVudW1cbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgR3JhcGhRTEVudW0pIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkgKyAnOicgKyB2YWx1ZS52YWx1ZSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5ID09PSAncGFzc3dvcmQnKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5ICsgJzonICsgYFwiJHtzaGEyNTYodmFsdWUgYXMgc3RyaW5nKX1cImApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJvY2VzcyBhcnJheVxuICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICAga2V5ICtcbiAgICAgICAgICAgICAgJzogWycgK1xuICAgICAgICAgICAgICB2YWx1ZS5tYXAoXG4gICAgICAgICAgICAgICAgKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVBcmd1bWVudHMoaXRlbSwge1xuICAgICAgICAgICAgICAgICAgICBhbGxvd2VkOiBhbGxvd2VkLmZpZWxkc1trZXldLFxuICAgICAgICAgICAgICAgICAgICBsZXZlbDogbGV2ZWwgKyAxLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN1cnJlbnRLZXkgKyAnLicsXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYUFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIHVzZWRBcmdzLFxuICAgICAgICAgICAgICAgICAgfSkuYXJnc1N0cmluZ1xuICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgJ10nXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgYWRkaXRpb25hbCByZXN1bHQgc3RyaW5nXG4gICAgICAgIGxldCBhZGRpdGlvbmFsUmVzdWx0ID0ga2V5ICsgJzogJztcblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIGRhdGUgb2JqZWN0XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gYFwiXCJcIiR7KHZhbHVlIGFzIERhdGUpLnRvU3RyaW5nKCl9XCJcIlwiYDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbHVlIGlzIGEgc3RyaW5nXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAvLyBFbnVtIChkb2Vzbid0IG5lZWQgcXVvdGF0aW9uIG1hcmtzKVxuICAgICAgICAgIGlmIChhbGxvd2VkLmZpZWxkc1trZXldLmlzRW51bSkge1xuICAgICAgICAgICAgYWRkaXRpb25hbFJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTdHJpbmdcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gYFwiJHt2YWx1ZS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csICdcXFxcbicpfVwiYDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIHNpbXBsZSBib29sZWFuIG9yIGEgbnVtYmVyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3RoZXJzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gdGhpcy5wcmVwYXJlQXJndW1lbnRzKHZhbHVlLCB7XG4gICAgICAgICAgICBhbGxvd2VkOiBhbGxvd2VkLmZpZWxkc1trZXldLFxuICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgIHBhcmVudDogY3VycmVudEtleSArICcuJyxcbiAgICAgICAgICAgIHNjaGVtYUFyZ3MsXG4gICAgICAgICAgICB1c2VkQXJncyxcbiAgICAgICAgICB9KS5hcmdzU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHVzaCBkZWVwZXIgcGFydCBpbnRvIHJlc3VsdCBhcnJheVxuICAgICAgICByZXN1bHQucHVzaChhZGRpdGlvbmFsUmVzdWx0KTtcbiAgICAgIH1cblxuICAgICAgLy8gRW5jYXBzdWxhdGlvbiBvZiB0aGUgb2JqZWN0IHJlc3VsdFxuICAgICAgaWYgKHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgLy8gQ29tcGxldGUgcmVzdWx0LCBlbmNhcHN1bGF0ZWQgdmlhIHJvdW5kIGJyYWNrZXRzXG4gICAgICAgIGlmIChsZXZlbCA9PT0gMSkge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICcoJyArIHJlc3VsdC5qb2luKCcsICcpICsgJyknLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVlcGVyIHJlc3VsdCBwYXJ0LCBlbmNhcHN1bGF0ZWQgdmlhIGN1cmx5IGJyYWNrZXRzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICd7JyArIHJlc3VsdC5qb2luKCcsICcpICsgJ30nLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJlcGFyZSBhbmQgcHJvY2VzcyBvdGhlciAvIHVua25vd24gdmFsdWVzIGFzIEpTT05cbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6IEpTT04uc3RyaW5naWZ5KGFyZ3MpLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGZpZWxkcyBmb3IgR3JhcGhRTCByZXF1ZXN0XG4gICAqL1xuICBwcm90ZWN0ZWQgcHJlcGFyZUZpZWxkcyhcbiAgICBmaWVsZHM6IGFueSxcbiAgICBvcHRpb25zOiB7XG4gICAgICBhbGxvd2VkPzogR3JhcGhRTFR5cGU7XG4gICAgICBzY2hlbWFGaWVsZHM/OiBzdHJpbmdbXTtcbiAgICAgIHVzZWRGaWVsZHM/OiBzdHJpbmdbXTtcbiAgICAgIHBhcmVudD86IHN0cmluZztcbiAgICAgIHNwYWNlcz86IG51bWJlcjtcbiAgICAgIHRhYj86IG51bWJlcjtcbiAgICB9ID0ge31cbiAgKTogeyBzY2hlbWFGaWVsZHM6IHN0cmluZ1tdOyBmaWVsZHNTdHJpbmc6IHN0cmluZzsgdXNlZEZpZWxkczogc3RyaW5nW10gfSB7XG4gICAgLy8gQ29uZmlnXG4gICAgY29uc3QgeyBhbGxvd2VkLCBwYXJlbnQsIHNjaGVtYUZpZWxkcywgc3BhY2VzLCB0YWIsIHVzZWRGaWVsZHMgfSA9IHtcbiAgICAgIGFsbG93ZWQ6IG51bGwsXG4gICAgICBwYXJlbnQ6ICcnLFxuICAgICAgc2NoZW1hRmllbGRzOiBbXSxcbiAgICAgIHNwYWNlczogMixcbiAgICAgIHRhYjogMSxcbiAgICAgIHVzZWRGaWVsZHM6IFtdLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLy8gSW5pdCBmaWVsZHMgc3RyaW5nXG4gICAgbGV0IGZpZWxkc1N0cmluZyA9ICcnO1xuXG4gICAgLy8gQ2hlY2sgZmllbGRzXG4gICAgaWYgKCFmaWVsZHMpIHtcbiAgICAgIHJldHVybiB7IGZpZWxkc1N0cmluZywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBzdHJpbmdcbiAgICBpZiAodHlwZW9mIGZpZWxkcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1tmaWVsZHNdKSB7XG4gICAgICAgIHJldHVybiB7IGZpZWxkc1N0cmluZywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmc6ICdcXG4nICsgJyAnLnJlcGVhdChzcGFjZXMpLnJlcGVhdCh0YWIpICsgZmllbGRzLCBzY2hlbWFGaWVsZHMsIHVzZWRGaWVsZHMgfTtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIGFycmF5XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShmaWVsZHMpKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZmllbGRzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPVxuICAgICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZUZpZWxkcyhpdGVtLCB7XG4gICAgICAgICAgICAgIGFsbG93ZWQsIC8vIGl0ZW0gaXMgb2JqZWN0IG9yIGFycmF5XG4gICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgc3BhY2VzLFxuICAgICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICAgIHRhYjogdGFiICsgMSxcbiAgICAgICAgICAgICAgdXNlZEZpZWxkcyxcbiAgICAgICAgICAgIH0pLmZpZWxkc1N0cmluZztcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhcmVudCArIGl0ZW07XG4gICAgICAgIHNjaGVtYUZpZWxkcy5wdXNoKGN1cnJlbnRQYXRoKTtcbiAgICAgICAgaWYgKGFsbG93ZWQgJiYgIWFsbG93ZWQuZmllbGRzW2l0ZW1dKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdXNlZEZpZWxkcy5wdXNoKGN1cnJlbnRQYXRoKTtcbiAgICAgICAgZmllbGRzU3RyaW5nID1cbiAgICAgICAgICBmaWVsZHNTdHJpbmcgK1xuICAgICAgICAgIHRoaXMucHJlcGFyZUZpZWxkcyhpdGVtLCB7XG4gICAgICAgICAgICBhbGxvd2VkOiBudWxsLCAvLyBpdGVtIGlzIHN0cmluZ1xuICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGF0aCArICcuJyxcbiAgICAgICAgICAgIHNwYWNlcyxcbiAgICAgICAgICAgIHNjaGVtYUZpZWxkcyxcbiAgICAgICAgICAgIHRhYjogdGFiICsgMSxcbiAgICAgICAgICAgIHVzZWRGaWVsZHMsXG4gICAgICAgICAgfSkuZmllbGRzU3RyaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgb2JqZWN0XG4gICAgZWxzZSBpZiAodHlwZW9mIGZpZWxkcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyhmaWVsZHMpKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGFyZW50ICsga2V5O1xuICAgICAgICBzY2hlbWFGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1trZXldKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdXNlZEZpZWxkcy5wdXNoKGN1cnJlbnRQYXRoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgIT09ICdvYmplY3QnIHx8ICFPYmplY3Qua2V5cyh2YWwpLmxlbmd0aCkge1xuICAgICAgICAgIGZpZWxkc1N0cmluZyA9IGZpZWxkc1N0cmluZyArICdcXG4nICsgJyAnLnJlcGVhdChzcGFjZXMpLnJlcGVhdCh0YWIpICsga2V5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpZWxkc1N0cmluZyA9XG4gICAgICAgICAgICBmaWVsZHNTdHJpbmcgK1xuICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgJyAnLnJlcGVhdChzcGFjZXMpLnJlcGVhdCh0YWIpICtcbiAgICAgICAgICAgIGtleSArXG4gICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgJ3snICtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZUZpZWxkcyh2YWwsIHtcbiAgICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSwgLy8gdmFsIGlzIG9iamVjdCBvciBhcnJheVxuICAgICAgICAgICAgICBwYXJlbnQ6IGN1cnJlbnRQYXRoICsgJy4nLFxuICAgICAgICAgICAgICBzcGFjZXMsXG4gICAgICAgICAgICAgIHNjaGVtYUZpZWxkcyxcbiAgICAgICAgICAgICAgdGFiOiB0YWIgKyAxLFxuICAgICAgICAgICAgICB1c2VkRmllbGRzLFxuICAgICAgICAgICAgfSkuZmllbGRzU3RyaW5nICtcbiAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArXG4gICAgICAgICAgICAnfSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gcmVzdWx0XG4gICAgcmV0dXJuIHsgZmllbGRzU3RyaW5nLCBzY2hlbWFGaWVsZHMsIHVzZWRGaWVsZHMgfTtcbiAgfVxufVxuIl19
|