@lenne.tech/ng-base 14.3.1 → 14.6.0
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/change-password/change-password.component.d.ts +24 -0
- package/base-components/components/input/input.component.d.ts +6 -1
- package/base-components/components/refence-input/refence-input.component.d.ts +10 -2
- package/base-components/components/tags/tags.component.d.ts +0 -2
- package/base-components/public-api.d.ts +1 -0
- package/base-prototype/base-prototype.module.d.ts +7 -6
- package/base-prototype/pages/reset-password/reset-password.component.d.ts +29 -0
- package/base-prototype/public-api.d.ts +1 -0
- package/esm2020/base-cms/pages/base-cms/base-cms.component.mjs +2 -2
- package/esm2020/base-components/base-components.module.mjs +5 -1
- package/esm2020/base-components/components/change-password/change-password.component.mjs +70 -0
- package/esm2020/base-components/components/input/input.component.mjs +17 -3
- package/esm2020/base-components/components/model-form/model-form.component.mjs +3 -3
- package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +3 -3
- package/esm2020/base-components/components/refence-input/refence-input.component.mjs +60 -10
- package/esm2020/base-components/components/tags/tags.component.mjs +12 -5
- package/esm2020/base-components/public-api.mjs +2 -1
- package/esm2020/base-prototype/base-prototype.module.mjs +7 -3
- package/esm2020/base-prototype/pages/forgot-password/forgot-password.component.mjs +4 -3
- package/esm2020/base-prototype/pages/login/login.component.mjs +4 -3
- package/esm2020/base-prototype/pages/profile/profile.component.mjs +2 -2
- package/esm2020/base-prototype/pages/register/register.component.mjs +4 -4
- package/esm2020/base-prototype/pages/reset-password/reset-password.component.mjs +82 -0
- package/esm2020/base-prototype/public-api.mjs +2 -1
- package/esm2020/shared/classes/graphql-meta.class.mjs +13 -2
- package/esm2020/shared/public-api.mjs +2 -1
- package/esm2020/shared/services/user.service.mjs +28 -1
- package/esm2020/shared/validators/email.validator.mjs +7 -0
- package/fesm2015/lenne.tech-ng-base-base-cms.mjs +4 -4
- package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +158 -24
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +90 -13
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-shared.mjs +47 -2
- package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-cms.mjs +1 -1
- package/fesm2020/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-components.mjs +157 -21
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +89 -13
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-shared.mjs +47 -2
- package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/package.json +1 -1
- package/shared/classes/graphql-meta.class.d.ts +1 -1
- package/shared/public-api.d.ts +1 -0
- package/shared/services/user.service.d.ts +14 -0
- package/shared/validators/email.validator.d.ts +2 -0
|
@@ -1,5 +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
4
|
import { Subscription } from 'rxjs';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@lenne.tech/ng-base/shared";
|
|
@@ -38,7 +39,7 @@ export class LoginComponent {
|
|
|
38
39
|
*/
|
|
39
40
|
createForm() {
|
|
40
41
|
this.form = new UntypedFormGroup({
|
|
41
|
-
email: new UntypedFormControl('', [Validators.required,
|
|
42
|
+
email: new UntypedFormControl('', [Validators.required, fullEmail()]),
|
|
42
43
|
password: new UntypedFormControl('', Validators.required),
|
|
43
44
|
});
|
|
44
45
|
}
|
|
@@ -86,9 +87,9 @@ export class LoginComponent {
|
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
LoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoginComponent, deps: [{ token: i1.FormsService }, { token: i1.UserService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
-
LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoginComponent, selector: "base-login", ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column login-container\">\n <div class=\"container\">\n <img *ngIf=\"config?.logoUrl\" class=\"img-fluid mb-5\" [src]=\"config.logoUrl\" alt=\"Logo\" />\n\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 [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'current-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Einloggen</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=\"../passwort-vergessen\" *ngIf=\"config?.showPasswordForget\">Passwort vergessen</a>\n <a routerLink=\"../registrieren\" *ngIf=\"config?.showRegister\">Noch kein Konto? Dann registriere Dich jetzt!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".login-container{width:100%;padding:20px 0}@media (min-width: 768px){.login-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"], outputs: ["enter"] }] });
|
|
90
|
+
LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoginComponent, selector: "base-login", ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column login-container\">\n <div class=\"container\">\n <img *ngIf=\"config?.logoUrl\" class=\"img-fluid mb-5\" [src]=\"config.logoUrl\" alt=\"Logo\" />\n\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 [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'current-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Einloggen</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=\"../passwort-vergessen\" *ngIf=\"config?.showPasswordForget\">Passwort vergessen</a>\n <a routerLink=\"../registrieren\" *ngIf=\"config?.showRegister\">Noch kein Konto? Dann registriere Dich jetzt!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".login-container{width:100%;padding:20px 0}@media (min-width: 768px){.login-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"] }] });
|
|
90
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoginComponent, decorators: [{
|
|
91
92
|
type: Component,
|
|
92
93
|
args: [{ selector: 'base-login', template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column login-container\">\n <div class=\"container\">\n <img *ngIf=\"config?.logoUrl\" class=\"img-fluid mb-5\" [src]=\"config.logoUrl\" alt=\"Logo\" />\n\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 [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'current-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Einloggen</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=\"../passwort-vergessen\" *ngIf=\"config?.showPasswordForget\">Passwort vergessen</a>\n <a routerLink=\"../registrieren\" *ngIf=\"config?.showRegister\">Noch kein Konto? Dann registriere Dich jetzt!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".login-container{width:100%;padding:20px 0}@media (min-width: 768px){.login-container{max-width:400px}}\n"] }]
|
|
93
94
|
}], ctorParameters: function () { return [{ type: i1.FormsService }, { type: i1.UserService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLXByb3RvdHlwZS9wYWdlcy9sb2dpbi9sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQTZCLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFPcEMsTUFBTSxPQUFPLGNBQWM7SUFZekIsWUFDVSxZQUEwQixFQUMxQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsS0FBcUI7UUFIckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBWi9CLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxXQUFNLEdBQUc7WUFDUCxXQUFXLEVBQUUsT0FBTztZQUNwQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztJQU9DLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FB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bXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9ybXNTZXJ2aWNlLCBVc2VyU2VydmljZSwgZnVsbEVtYWlsIH0gZnJvbSAnQGxlbm5lLnRlY2gvbmctYmFzZS9zaGFyZWQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtbG9naW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2dpbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgZXJyb3I6IHN0cmluZztcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBjb25maWcgPSB7XG4gICAgcmVkaXJlY3RVcmw6ICcvbWFpbicsXG4gICAgc2hvd1Bhc3N3b3JkRm9yZ2V0OiB0cnVlLFxuICAgIHNob3dSZWdpc3RlcjogdHJ1ZSxcbiAgICBsb2dvVXJsOiAnJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1zU2VydmljZTogRm9ybXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5yb3V0ZS5kYXRhLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAvLyBNZXJnZSBjb25maWcgZnJvbSByb3V0ZSB0byBjb21wb25lbnRcbiAgICAgICAgaWYgKGRhdGE/LmNvbmZpZykge1xuICAgICAgICAgIHRoaXMuY29uZmlnID0geyAuLi50aGlzLmNvbmZpZywgLi4uZGF0YS5jb25maWcgfTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbG9naW4gZm9ybVxuICAgKi9cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgICBlbWFpbDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGZ1bGxFbWFpbCgpXSksXG4gICAgICBwYXNzd29yZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3VibWl0IGxvZ2luIGZvcm1cbiAgICovXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5mb3Jtc1NlcnZpY2UudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybSk7XG4gICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmxvZ2luKHRoaXMuZm9ybS52YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5jb25maWcucmVkaXJlY3RVcmxdKTtcbiAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVycm9yID0gJ0V0d2FzIGlzdCBzY2hpZWZnZWxhdWZlbi4gQml0dGUgcHJvYmllcmUgZXMgc3DDpHRlciBlcm5ldXQuJztcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmVycm9yID0gJ0V0d2FzIGlzdCBzY2hpZWZnZWxhdWZlbi4gQml0dGUgcHJvYmllcmUgZXMgc3DDpHRlciBlcm5ldXQuJztcblxuICAgICAgICAvLyBXcm9uZyBwYXNzd29yZFxuICAgICAgICBpZiAoZXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdVbmF1dGhvcml6ZWQnKSkge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSAnRGVpbiBQYXNzd29ydCBpc3QgbGVpZGVyIGZhbHNjaC4gQml0dGUgw7xiZXJwcsO8ZmUgZGVpbmUgRWluZ2FiZSEnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlciBub3QgZm91bmRcbiAgICAgICAgaWYgKGVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnTm90IHVzZXIgZm91bmQnKSkge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSAnRXMga29ubnRlIGtlaW4gS29udG8gbWl0IGRlciBFLU1haWwgZ2VmdW5kZW4gd2VyZGVuLiBCaXR0ZSBnaWIgZWluZSBnw7xsdGlnZSBFLU1haWwgZWluISc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHNjcm9sbFRvVG9wKCkge1xuICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGgtMTAwIHB5LTVcIj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBsb2dpbi1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8aW1nICpuZ0lmPVwiY29uZmlnPy5sb2dvVXJsXCIgY2xhc3M9XCJpbWctZmx1aWQgbWItNVwiIFtzcmNdPVwiY29uZmlnLmxvZ29VcmxcIiBhbHQ9XCJMb2dvXCIgLz5cblxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiByb2xlPVwiYWxlcnRcIiAqbmdJZj1cImVycm9yXCI+XG4gICAgICAgICAge3sgZXJyb3IgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgW2lkXT1cIidlbWFpbCdcIlxuICAgICAgICAgIFtuYW1lXT1cIidlbWFpbCdcIlxuICAgICAgICAgIFtsYWJlbF09XCInRS1NYWlsIEFkcmVzc2UnXCJcbiAgICAgICAgICBbdHlwZV09XCInZW1haWwnXCJcbiAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldCgnZW1haWwnKVwiXG4gICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCInZW1haWwnXCJcbiAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICBbaWRdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICAgICAgW25hbWVdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidQYXNzd29ydCdcIlxuICAgICAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiJ2N1cnJlbnQtcGFzc3dvcmQnXCJcbiAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldCgncGFzc3dvcmQnKVwiXG4gICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWdyaWQgZ2FwLTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgKm5nSWY9XCIhbG9hZGluZ1wiPkVpbmxvZ2dlbjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgZGlzYWJsZWQgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtXCIgcm9sZT1cInN0YXR1c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIExvYWRpbmcuLi5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICA8YSByb3V0ZXJMaW5rPVwiLi4vcGFzc3dvcnQtdmVyZ2Vzc2VuXCIgKm5nSWY9XCJjb25maWc/LnNob3dQYXNzd29yZEZvcmdldFwiPlBhc3N3b3J0IHZlcmdlc3NlbjwvYT5cbiAgICAgICAgICA8YSByb3V0ZXJMaW5rPVwiLi4vcmVnaXN0cmllcmVuXCIgKm5nSWY9XCJjb25maWc/LnNob3dSZWdpc3RlclwiPk5vY2gga2VpbiBLb250bz8gRGFubiByZWdpc3RyaWVyZSBEaWNoIGpldHp0ITwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -39,9 +39,9 @@ export class ProfileComponent {
|
|
|
39
39
|
},
|
|
40
40
|
};
|
|
41
41
|
this.currentUser = authService.currentUser;
|
|
42
|
-
this.profileConfig = { ...this.profileConfig, ...this.config };
|
|
43
42
|
}
|
|
44
43
|
ngOnInit() {
|
|
44
|
+
this.profileConfig = { ...this.profileConfig, ...this.config };
|
|
45
45
|
this.route.data.subscribe((data) => {
|
|
46
46
|
// Merge config from route to component
|
|
47
47
|
if (data) {
|
|
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
68
68
|
}], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.ActivatedRoute }, { type: i1.UserService }]; }, propDecorators: { config: [{
|
|
69
69
|
type: Input
|
|
70
70
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTekQsTUFBTSxPQUFPLGdCQUFnQjtJQWtDM0IsWUFBb0IsV0FBd0IsRUFBVSxLQUFxQixFQUFVLFdBQXdCO1FBQXpGLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWpDcEcsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUMxQixrQkFBYSxHQUFHO1lBQ2QsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSxRQUFRO2dCQUNmLFdBQVcsRUFBRSxFQUFFO2FBQ2hCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxRQUFRO2dCQUNmLFdBQVcsRUFBRSxFQUFFO2FBQ2hCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBRSxTQUFTO2dCQUNoQixXQUFXLEVBQUUsRUFBRTthQUNoQjtZQUNELFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsVUFBVTtnQkFDakIsV0FBVyxFQUFFLEVBQUU7YUFDaEI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ2pCO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxjQUFjO2dCQUNyQixXQUFXLEVBQUUsRUFBRTthQUNoQjtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsSUFBSTthQUNkO1NBQ0YsQ0FBQztRQUtBLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakMsdUNBQXVDO1lBQ3ZDLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQzthQUN6RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkUsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs2R0F6RFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isa0ZDVDdCLGlVQVlBOzJGREhhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxjQUFjO3lKQUtmLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEJhc2ljVXNlciwgVXNlclNlcnZpY2UgfSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtcHJvZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZmlsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY29uZmlnOiBhbnkgPSB7fTtcbiAgcHJvZmlsZUNvbmZpZyA9IHtcbiAgICBhdmF0YXI6IHtcbiAgICAgIGxhYmVsOiAnRS1NYWlsJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICB9LFxuICAgIGVtYWlsOiB7XG4gICAgICBsYWJlbDogJ0UtTWFpbCcsXG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgfSxcbiAgICBmaXJzdE5hbWU6IHtcbiAgICAgIGxhYmVsOiAnVm9ybmFtZScsXG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgfSxcbiAgICBsYXN0TmFtZToge1xuICAgICAgbGFiZWw6ICdOYWNobmFtZScsXG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgfSxcbiAgICByb2xlczoge1xuICAgICAgZXhjbHVkZTogdHJ1ZSxcbiAgICAgIHJvbGVzOiBbJ2FkbWluJ10sXG4gICAgfSxcbiAgICB1c2VybmFtZToge1xuICAgICAgbGFiZWw6ICdCZW51dHplcm5hbWUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgIH0sXG4gICAgcGFzc3dvcmQ6IHtcbiAgICAgIGV4Y2x1ZGU6IHRydWUsXG4gICAgfSxcbiAgfTtcblxuICBjdXJyZW50VXNlcjogQmFzaWNVc2VyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UpIHtcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gYXV0aFNlcnZpY2UuY3VycmVudFVzZXI7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnByb2ZpbGVDb25maWcgPSB7IC4uLnRoaXMucHJvZmlsZUNvbmZpZywgLi4udGhpcy5jb25maWcgfTtcbiAgICB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAvLyBNZXJnZSBjb25maWcgZnJvbSByb3V0ZSB0byBjb21wb25lbnRcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMucHJvZmlsZUNvbmZpZyA9IHsgLi4udGhpcy5wcm9maWxlQ29uZmlnLCAuLi5kYXRhIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgZ2V0cyB0aGUgY3VycmVudCB1c2VyIGZyb20gdGhlIGRhdGFiYXNlIGFuZCB1cGRhdGVzIHRoZSBjdXJyZW50IHVzZXIgaW4gdGhlIHNlc3Npb25cbiAgICovXG4gIHVwZGF0ZVNlc3Npb25Vc2VyKCkge1xuICAgIHRoaXMudXNlclNlcnZpY2UuZ2V0KHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIuaWQpLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlciA9IHVzZXI7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cInB5LTVcIj5cbiAgICA8YmFzZS1tb2RlbC1mb3JtXG4gICAgICBbaWRdPVwiY3VycmVudFVzZXI/LmlkXCJcbiAgICAgIFttb2RlbE5hbWVdPVwiJ3VzZXInXCJcbiAgICAgIFtsYWJlbF09XCInTWVpbiBQcm9maWwnXCJcbiAgICAgIFtjb25maWddPVwicHJvZmlsZUNvbmZpZyB8fCB7fVwiXG4gICAgICBbZGVsZXRlXT1cImZhbHNlXCJcbiAgICAgIChmaW5pc2hlZCk9XCJ1cGRhdGVTZXNzaW9uVXNlcigpXCJcbiAgICA+PC9iYXNlLW1vZGVsLWZvcm0+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
3
|
-
import { Validation } from '@lenne.tech/ng-base/shared';
|
|
3
|
+
import { Validation, fullEmail } 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";
|
|
@@ -23,7 +23,7 @@ export class RegisterComponent {
|
|
|
23
23
|
this.form = new UntypedFormGroup({
|
|
24
24
|
firstName: new UntypedFormControl('', [Validators.required]),
|
|
25
25
|
lastName: new UntypedFormControl('', [Validators.required]),
|
|
26
|
-
email: new UntypedFormControl('', [Validators.required,
|
|
26
|
+
email: new UntypedFormControl('', [Validators.required, fullEmail()]),
|
|
27
27
|
password: new UntypedFormControl('', [Validators.required, Validators.minLength(6)]),
|
|
28
28
|
passwordConfirm: new UntypedFormControl('', [Validators.required, Validators.minLength(6)]),
|
|
29
29
|
privacy: new UntypedFormControl(false, Validators.requiredTrue),
|
|
@@ -71,9 +71,9 @@ export class RegisterComponent {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
RegisterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: RegisterComponent, deps: [{ token: i1.FormsService }, { token: i1.UserService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
RegisterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: RegisterComponent, selector: "base-register", ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column register-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div id=\"register-error\" class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'firstName'\"\n [name]=\"'firstName'\"\n [label]=\"'Vorname'\"\n [type]=\"'text'\"\n [control]=\"form.get('firstName')\"\n [autocomplete]=\"'given-name'\"\n ></base-input>\n <base-input\n [id]=\"'lastName'\"\n [name]=\"'lastName'\"\n [label]=\"'Nachname'\"\n [type]=\"'text'\"\n [control]=\"form.get('lastName')\"\n [autocomplete]=\"'family-name'\"\n ></base-input>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'new-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [name]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [autocomplete]=\"'new-password'\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n ></base-input>\n <base-checkbox [id]=\"'privacy'\" [control]=\"form.get('privacy')\">\n Hiermit best\u00E4tige ich, dass ich die <a routerLink=\"/datenschutz\">Datenschutzerkl\u00E4rung</a> gelesen habe und\n akzeptiere.\n </base-checkbox>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Registrieren</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 </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".register-container{width:100%;padding:20px 0}@media (min-width: 768px){.register-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"], outputs: ["enter"] }, { kind: "component", type: i5.CheckboxComponent, selector: "base-checkbox", inputs: ["id", "name", "label", "value", "control", "required"] }] });
|
|
74
|
+
RegisterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: RegisterComponent, selector: "base-register", ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column register-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div id=\"register-error\" class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'firstName'\"\n [name]=\"'firstName'\"\n [label]=\"'Vorname'\"\n [type]=\"'text'\"\n [control]=\"form.get('firstName')\"\n [autocomplete]=\"'given-name'\"\n ></base-input>\n <base-input\n [id]=\"'lastName'\"\n [name]=\"'lastName'\"\n [label]=\"'Nachname'\"\n [type]=\"'text'\"\n [control]=\"form.get('lastName')\"\n [autocomplete]=\"'family-name'\"\n ></base-input>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'new-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [name]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [autocomplete]=\"'new-password'\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n ></base-input>\n <base-checkbox [id]=\"'privacy'\" [control]=\"form.get('privacy')\">\n Hiermit best\u00E4tige ich, dass ich die <a routerLink=\"/datenschutz\">Datenschutzerkl\u00E4rung</a> gelesen habe und\n akzeptiere.\n </base-checkbox>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Registrieren</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 </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".register-container{width:100%;padding:20px 0}@media (min-width: 768px){.register-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"] }, { kind: "component", type: i5.CheckboxComponent, selector: "base-checkbox", inputs: ["id", "name", "label", "value", "control", "required"] }] });
|
|
75
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: RegisterComponent, decorators: [{
|
|
76
76
|
type: Component,
|
|
77
77
|
args: [{ selector: 'base-register', template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column register-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div id=\"register-error\" class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'firstName'\"\n [name]=\"'firstName'\"\n [label]=\"'Vorname'\"\n [type]=\"'text'\"\n [control]=\"form.get('firstName')\"\n [autocomplete]=\"'given-name'\"\n ></base-input>\n <base-input\n [id]=\"'lastName'\"\n [name]=\"'lastName'\"\n [label]=\"'Nachname'\"\n [type]=\"'text'\"\n [control]=\"form.get('lastName')\"\n [autocomplete]=\"'family-name'\"\n ></base-input>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'new-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [name]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [autocomplete]=\"'new-password'\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n ></base-input>\n <base-checkbox [id]=\"'privacy'\" [control]=\"form.get('privacy')\">\n Hiermit best\u00E4tige ich, dass ich die <a routerLink=\"/datenschutz\">Datenschutzerkl\u00E4rung</a> gelesen habe und\n akzeptiere.\n </base-checkbox>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Registrieren</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 </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".register-container{width:100%;padding:20px 0}@media (min-width: 768px){.register-container{max-width:400px}}\n"] }]
|
|
78
78
|
}], ctorParameters: function () { return [{ type: i1.FormsService }, { type: i1.UserService }, { type: i2.Router }]; } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLXByb3RvdHlwZS9wYWdlcy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBNkIsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBUTlGLE1BQU0sT0FBTyxpQkFBaUI7SUFLNUIsWUFBb0IsWUFBMEIsRUFBVSxXQUF3QixFQUFVLE1BQWM7UUFBcEYsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBRTVHLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDOUI7WUFDRSxTQUFTLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUQsUUFBUSxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNELEtBQUssRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNyRSxRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRixlQUFlLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRixPQUFPLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQztTQUNoRSxFQUNEO1lBQ0UsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztTQUM5RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsT0FBTztTQUNSO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRXJCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDYixJQUFJLElBQUksRUFBRTtvQkFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ2pDO3FCQUFNO29CQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsNERBQTRELENBQUM7b0JBQzFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDcEI7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLElBQUksR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtvQkFDNUMsSUFBSSxDQUFDLEtBQUs7d0JBQ1IsOEhBQThILENBQUM7b0JBQ2pJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDcEI7Z0JBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7OEdBdkVVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFEQ1Y5QiwrOEVBZ0VBOzJGRHREYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3Jtc1NlcnZpY2UsIFVzZXJTZXJ2aWNlLCBWYWxpZGF0aW9uLCBmdWxsRW1haWwgfSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXJlZ2lzdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVnaXN0ZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBlcnJvcjogc3RyaW5nO1xuICBsb2FkaW5nOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybXNTZXJ2aWNlOiBGb3Jtc1NlcnZpY2UsIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBsb2dpbiBmb3JtXG4gICAqL1xuICBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKFxuICAgICAge1xuICAgICAgICBmaXJzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIGxhc3ROYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgICBlbWFpbDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGZ1bGxFbWFpbCgpXSksXG4gICAgICAgIHBhc3N3b3JkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNildKSxcbiAgICAgICAgcGFzc3dvcmRDb25maXJtOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNildKSxcbiAgICAgICAgcHJpdmFjeTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChmYWxzZSwgVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRpb24ubWF0Y2goJ3Bhc3N3b3JkJywgJ3Bhc3N3b3JkQ29uZmlybScpXSxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCBsb2dpbiBmb3JtXG4gICAqL1xuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5lcnJvciA9ICcnO1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybXNTZXJ2aWNlLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm0pO1xuICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmZvcm0udmFsdWU7XG4gICAgZGVsZXRlIGlucHV0LnByaXZhY3k7XG5cbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnJlZ2lzdGVyKGlucHV0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGF1dGgpID0+IHtcbiAgICAgICAgaWYgKGF1dGgpIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYWluJ10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSAnRXR3YXMgaXN0IHNjaGllZmdlbGF1ZmVuLiBCaXR0ZSBwcm9iaWVyZSBlcyBzcMOkdGVyIGVybmV1dC4nO1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICBpZiAoZXJyPy5tZXNzYWdlPy5pbmNsdWRlcygnYWxyZWFkeSBleGlzdHMnKSkge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPVxuICAgICAgICAgICAgJ01pdCBkaWVzZXIgRS1NYWlsIGdpYnQgZXMgYmVyZWl0cyBlaW4gS29udG8uIEJpdHRlIHfDpGhsZSBlaW5lIGFuZGVyZSBFLU1haWwgQWRyZXNzZSBvZGVyIGxvZ2dlIGRpY2ggbWl0IGRlaW5lbSBQYXNzd29ydCBlaW4uJztcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBzY3JvbGxUb1RvcCgpIHtcbiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBoLTEwMCBweS01XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gcmVnaXN0ZXItY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxkaXYgaWQ9XCJyZWdpc3Rlci1lcnJvclwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCIgcm9sZT1cImFsZXJ0XCIgKm5nSWY9XCJlcnJvclwiPlxuICAgICAgICAgIHt7IGVycm9yIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgIFtpZF09XCInZmlyc3ROYW1lJ1wiXG4gICAgICAgICAgW25hbWVdPVwiJ2ZpcnN0TmFtZSdcIlxuICAgICAgICAgIFtsYWJlbF09XCInVm9ybmFtZSdcIlxuICAgICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ2ZpcnN0TmFtZScpXCJcbiAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIidnaXZlbi1uYW1lJ1wiXG4gICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgW2lkXT1cIidsYXN0TmFtZSdcIlxuICAgICAgICAgIFtuYW1lXT1cIidsYXN0TmFtZSdcIlxuICAgICAgICAgIFtsYWJlbF09XCInTmFjaG5hbWUnXCJcbiAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgIFtjb250cm9sXT1cImZvcm0uZ2V0KCdsYXN0TmFtZScpXCJcbiAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIidmYW1pbHktbmFtZSdcIlxuICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgIFtpZF09XCInZW1haWwnXCJcbiAgICAgICAgICBbbmFtZV09XCInZW1haWwnXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0UtTWFpbCBBZHJlc3NlJ1wiXG4gICAgICAgICAgW3R5cGVdPVwiJ2VtYWlsJ1wiXG4gICAgICAgICAgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ2VtYWlsJylcIlxuICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiJ2VtYWlsJ1wiXG4gICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgW2lkXT1cIidwYXNzd29yZCdcIlxuICAgICAgICAgIFtuYW1lXT1cIidwYXNzd29yZCdcIlxuICAgICAgICAgIFtsYWJlbF09XCInUGFzc3dvcnQnXCJcbiAgICAgICAgICBbdHlwZV09XCIncGFzc3dvcmQnXCJcbiAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIiduZXctcGFzc3dvcmQnXCJcbiAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldCgncGFzc3dvcmQnKVwiXG4gICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgW2lkXT1cIidwYXNzd29yZC1jb25maXJtJ1wiXG4gICAgICAgICAgW25hbWVdPVwiJ3Bhc3N3b3JkLWNvbmZpcm0nXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ1Bhc3N3b3J0IGJlc3TDpHRpZ2VuJ1wiXG4gICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCInbmV3LXBhc3N3b3JkJ1wiXG4gICAgICAgICAgW3R5cGVdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICAgICAgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ3Bhc3N3b3JkQ29uZmlybScpXCJcbiAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgPGJhc2UtY2hlY2tib3ggW2lkXT1cIidwcml2YWN5J1wiIFtjb250cm9sXT1cImZvcm0uZ2V0KCdwcml2YWN5JylcIj5cbiAgICAgICAgICBIaWVybWl0IGJlc3TDpHRpZ2UgaWNoLCBkYXNzIGljaCBkaWUgPGEgcm91dGVyTGluaz1cIi9kYXRlbnNjaHV0elwiPkRhdGVuc2NodXR6ZXJrbMOkcnVuZzwvYT4gZ2VsZXNlbiBoYWJlIHVuZFxuICAgICAgICAgIGFremVwdGllcmUuXG4gICAgICAgIDwvYmFzZS1jaGVja2JveD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZ3JpZCBnYXAtMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic3VibWl0KClcIiAqbmdJZj1cIiFsb2FkaW5nXCI+UmVnaXN0cmllcmVuPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBkaXNhYmxlZCAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc21cIiByb2xlPVwic3RhdHVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgTG9hZGluZy4uLlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxociAvPlxuICAgICAgICAgIDxhIHJvdXRlckxpbms9XCIuLi9sb2dpblwiPkJlcmVpdHMgZWluIEtvbnRvPyBEYW5uIGxvZ2dlIERpY2ggaGllciBlaW4hPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { FormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
3
|
+
import { ToastType, Validation } from '@lenne.tech/ng-base/shared';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@lenne.tech/ng-base/shared";
|
|
6
|
+
import * as i2 from "@angular/router";
|
|
7
|
+
import * as i3 from "@angular/forms";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
9
|
+
import * as i5 from "@lenne.tech/ng-base/base-components";
|
|
10
|
+
export class ResetPasswordComponent {
|
|
11
|
+
constructor(formsService, userService, toastService, route, router) {
|
|
12
|
+
this.formsService = formsService;
|
|
13
|
+
this.userService = userService;
|
|
14
|
+
this.toastService = toastService;
|
|
15
|
+
this.route = route;
|
|
16
|
+
this.router = router;
|
|
17
|
+
this.redirectUrl = '/';
|
|
18
|
+
this.loading = false;
|
|
19
|
+
this.error = '';
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
this.token = this.route.snapshot.params?.token;
|
|
23
|
+
if (!this.token) {
|
|
24
|
+
this.error =
|
|
25
|
+
'Der Link ist abgelaufen oder ungültig, bitte probiere es später erneut oder wende Dich an den Support.';
|
|
26
|
+
}
|
|
27
|
+
this.createForm();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create password change form
|
|
31
|
+
*/
|
|
32
|
+
createForm() {
|
|
33
|
+
this.form = new UntypedFormGroup({
|
|
34
|
+
password: new FormControl('', [Validators.required, Validators.minLength(6)]),
|
|
35
|
+
passwordConfirm: new FormControl('', [Validators.required, Validators.minLength(6)]),
|
|
36
|
+
}, { validators: Validation.match('password', 'passwordConfirm') });
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Submit form and change password of user
|
|
40
|
+
*/
|
|
41
|
+
submit() {
|
|
42
|
+
this.loading = true;
|
|
43
|
+
if (this.form.invalid) {
|
|
44
|
+
this.formsService.validateAllFormFields(this.form);
|
|
45
|
+
this.loading = false;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.userService.resetPassword(this.token, this.form.get('password').value).subscribe({
|
|
49
|
+
next: (response) => {
|
|
50
|
+
if (response) {
|
|
51
|
+
this.form.reset();
|
|
52
|
+
this.toastService.show({
|
|
53
|
+
id: 'password-reset-success',
|
|
54
|
+
title: 'Erfolgreich',
|
|
55
|
+
description: 'Passwort wurde erfolgreich geändert.',
|
|
56
|
+
type: ToastType.SUCCESS,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
this.router.navigate([this.redirectUrl]);
|
|
60
|
+
this.loading = false;
|
|
61
|
+
},
|
|
62
|
+
error: (error) => {
|
|
63
|
+
this.loading = false;
|
|
64
|
+
this.toastService.show({
|
|
65
|
+
id: 'password-reset-error',
|
|
66
|
+
title: 'Fehlgeschlagen',
|
|
67
|
+
description: 'Passwort zurücksetzen ist fehlgeschlagen, bitte versuche es später erneut.',
|
|
68
|
+
type: ToastType.ERROR,
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
ResetPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ResetPasswordComponent, deps: [{ token: i1.FormsService }, { token: i1.UserService }, { token: i1.ToastService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
+
ResetPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ResetPasswordComponent, selector: "base-reset-password", inputs: { redirectUrl: "redirectUrl" }, ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column reset-password-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]=\"'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-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Passwort zur\u00FCcksetzen</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 </form>\n </div>\n </div>\n</div>\n", styles: [".reset-password-container{width:100%;padding:20px 0}@media (min-width: 768px){.reset-password-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: 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"] }] });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ResetPasswordComponent, decorators: [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{ selector: 'base-reset-password', template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column reset-password-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]=\"'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-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Passwort zur\u00FCcksetzen</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 </form>\n </div>\n </div>\n</div>\n", styles: [".reset-password-container{width:100%;padding:20px 0}@media (min-width: 768px){.reset-password-container{max-width:400px}}\n"] }]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: i1.FormsService }, { type: i1.UserService }, { type: i1.ToastService }, { type: i2.ActivatedRoute }, { type: i2.Router }]; }, propDecorators: { redirectUrl: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}] } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLXByb3RvdHlwZS9wYWdlcy9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQWEsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUE4QixTQUFTLEVBQWUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFRNUcsTUFBTSxPQUFPLHNCQUFzQjtJQU9qQyxZQUNVLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLEtBQXFCLEVBQ3JCLE1BQWM7UUFKZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWGYsZ0JBQVcsR0FBRyxHQUFHLENBQUM7UUFFM0IsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixVQUFLLEdBQUcsRUFBRSxDQUFDO0lBUVIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSztnQkFDUix3R0FBd0csQ0FBQztTQUM1RztRQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUM5QjtZQUNFLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRixlQUFlLEVBQUUsSUFBSSxXQUFXLENBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0YsRUFDRCxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQ2hFLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNwRixJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxRQUFRLEVBQUU7b0JBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7d0JBQ3JCLEVBQUUsRUFBRSx3QkFBd0I7d0JBQzVCLEtBQUssRUFBRSxhQUFhO3dCQUNwQixXQUFXLEVBQUUsc0NBQXNDO3dCQUNuRCxJQUFJLEVBQUUsU0FBUyxDQUFDLE9BQU87cUJBQ3hCLENBQUMsQ0FBQztpQkFDSjtnQkFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO29CQUNyQixFQUFFLEVBQUUsc0JBQXNCO29CQUMxQixLQUFLLEVBQUUsZ0JBQWdCO29CQUN2QixXQUFXLEVBQUUsNEVBQTRFO29CQUN6RixJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUs7aUJBQ3RCLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzttSEE1RVUsc0JBQXNCO3VHQUF0QixzQkFBc0IsbUdDVm5DLDQyQ0FxQ0E7MkZEM0JhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7ME1BS3RCLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3Jtc1NlcnZpY2UsIFRvYXN0U2VydmljZSwgVG9hc3RUeXBlLCBVc2VyU2VydmljZSwgVmFsaWRhdGlvbiB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXJlc2V0LXBhc3N3b3JkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzZXRQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHJlZGlyZWN0VXJsID0gJy8nO1xuICBmb3JtOiBGb3JtR3JvdXA7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgdG9rZW46IHN0cmluZztcbiAgZXJyb3IgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1zU2VydmljZTogRm9ybXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50b2tlbiA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zPy50b2tlbjtcblxuICAgIGlmICghdGhpcy50b2tlbikge1xuICAgICAgdGhpcy5lcnJvciA9XG4gICAgICAgICdEZXIgTGluayBpc3QgYWJnZWxhdWZlbiBvZGVyIHVuZ8O8bHRpZywgYml0dGUgcHJvYmllcmUgZXMgc3DDpHRlciBlcm5ldXQgb2RlciB3ZW5kZSBEaWNoIGFuIGRlbiBTdXBwb3J0Lic7XG4gICAgfVxuXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHBhc3N3b3JkIGNoYW5nZSBmb3JtXG4gICAqL1xuICBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKFxuICAgICAge1xuICAgICAgICBwYXNzd29yZDogbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KV0pLFxuICAgICAgICBwYXNzd29yZENvbmZpcm06IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNildKSxcbiAgICAgIH0sXG4gICAgICB7IHZhbGlkYXRvcnM6IFZhbGlkYXRpb24ubWF0Y2goJ3Bhc3N3b3JkJywgJ3Bhc3N3b3JkQ29uZmlybScpIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCBmb3JtIGFuZCBjaGFuZ2UgcGFzc3dvcmQgb2YgdXNlclxuICAgKi9cbiAgc3VibWl0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybXNTZXJ2aWNlLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm0pO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51c2VyU2VydmljZS5yZXNldFBhc3N3b3JkKHRoaXMudG9rZW4sIHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykudmFsdWUpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICBpZDogJ3Bhc3N3b3JkLXJlc2V0LXN1Y2Nlc3MnLFxuICAgICAgICAgICAgdGl0bGU6ICdFcmZvbGdyZWljaCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Bhc3N3b3J0IHd1cmRlIGVyZm9sZ3JlaWNoIGdlw6RuZGVydC4nLFxuICAgICAgICAgICAgdHlwZTogVG9hc3RUeXBlLlNVQ0NFU1MsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5yZWRpcmVjdFVybF0pO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICBpZDogJ3Bhc3N3b3JkLXJlc2V0LWVycm9yJyxcbiAgICAgICAgICB0aXRsZTogJ0ZlaGxnZXNjaGxhZ2VuJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Bhc3N3b3J0IHp1csO8Y2tzZXR6ZW4gaXN0IGZlaGxnZXNjaGxhZ2VuLCBiaXR0ZSB2ZXJzdWNoZSBlcyBzcMOkdGVyIGVybmV1dC4nLFxuICAgICAgICAgIHR5cGU6IFRvYXN0VHlwZS5FUlJPUixcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGgtMTAwIHB5LTVcIj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiByZXNldC1wYXNzd29yZC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiIHJvbGU9XCJhbGVydFwiICpuZ0lmPVwiZXJyb3JcIj5cbiAgICAgICAgICB7eyBlcnJvciB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICBbaWRdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidQYXNzd29ydCdcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbdHlwZV09XCIncGFzc3dvcmQnXCJcbiAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldCgncGFzc3dvcmQnKVwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cIjFcIlxuICAgICAgICAgIFtleWVCdXR0b25dPVwidHJ1ZVwiXG4gICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgW2lkXT1cIidwYXNzd29yZC1jb25maXJtJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidQYXNzd29ydCBiZXN0w6R0aWdlbidcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbdHlwZV09XCIncGFzc3dvcmQnXCJcbiAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldCgncGFzc3dvcmRDb25maXJtJylcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCIyXCJcbiAgICAgICAgICBbZXllQnV0dG9uXT1cInRydWVcIlxuICAgICAgICA+PC9iYXNlLWlucHV0PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWdyaWQgZ2FwLTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlBhc3N3b3J0IHp1csO8Y2tzZXR6ZW48L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGRpc2FibGVkICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbVwiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -8,4 +8,5 @@ export * from './pages/login/login.component';
|
|
|
8
8
|
export * from './pages/register/register.component';
|
|
9
9
|
export * from './pages/forgot-password/forgot-password.component';
|
|
10
10
|
export * from './pages/profile/profile.component';
|
|
11
|
-
|
|
11
|
+
export * from './pages/reset-password/reset-password.component';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1wcm90b3R5cGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILFNBQVM7QUFDVCxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLFFBQVE7QUFDUixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaURBQWlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV4cG9ydHMgZm9yIHB1YmxpYyBBUElcbiAqL1xuXG4vLyBNb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1wcm90b3R5cGUubW9kdWxlJztcblxuLy8gUGFnZXNcbmV4cG9ydCAqIGZyb20gJy4vcGFnZXMvbG9naW4vbG9naW4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZXMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZXMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlcy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZXMvcmVzZXQtcGFzc3dvcmQvcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -24,10 +24,13 @@ export class GraphQLMeta {
|
|
|
24
24
|
*
|
|
25
25
|
* @returns An array of objects with the name of the model, and the CRUD operations that are available for that model.
|
|
26
26
|
*/
|
|
27
|
-
getTypes() {
|
|
27
|
+
getTypes(logging = false) {
|
|
28
28
|
const possibleTypes = [];
|
|
29
29
|
const mutationType = this.schema.getMutationType();
|
|
30
30
|
const queryType = this.schema.getQueryType();
|
|
31
|
+
if (logging) {
|
|
32
|
+
console.log('GraphQLMeta::getTypes->queryTypeFields', queryType.getFields());
|
|
33
|
+
}
|
|
31
34
|
for (const [key, value] of Object.entries(queryType.getFields())) {
|
|
32
35
|
if (key.startsWith('find')) {
|
|
33
36
|
possibleTypes.push({
|
|
@@ -39,6 +42,10 @@ export class GraphQLMeta {
|
|
|
39
42
|
});
|
|
40
43
|
}
|
|
41
44
|
}
|
|
45
|
+
if (logging) {
|
|
46
|
+
console.log('GraphQLMeta::getTypes->mutationTypeFields', mutationType.getFields());
|
|
47
|
+
console.log('GraphQLMeta::getTypes->possibleTypes', possibleTypes);
|
|
48
|
+
}
|
|
42
49
|
for (const [key, value] of Object.entries(mutationType.getFields())) {
|
|
43
50
|
if (key.startsWith('create')) {
|
|
44
51
|
const model = key.split('create').pop();
|
|
@@ -65,6 +72,10 @@ export class GraphQLMeta {
|
|
|
65
72
|
}
|
|
66
73
|
}
|
|
67
74
|
}
|
|
75
|
+
if (logging) {
|
|
76
|
+
console.log('GraphQLMeta::getTypes->possibleTypes', possibleTypes);
|
|
77
|
+
console.log('GraphQLMeta::getTypes->filteredPossibleTypes', possibleTypes.filter((e) => e.create || e.update));
|
|
78
|
+
}
|
|
68
79
|
return possibleTypes.filter((e) => e.create || e.update);
|
|
69
80
|
}
|
|
70
81
|
/**
|
|
@@ -307,4 +318,4 @@ export class GraphQLMeta {
|
|
|
307
318
|
return graphQLType;
|
|
308
319
|
}
|
|
309
320
|
}
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1tZXRhLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvY2xhc3Nlcy9ncmFwaHFsLW1ldGEuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsV0FBVyxFQUVYLGNBQWMsRUFDZCxpQkFBaUIsR0FFbEIsTUFBTSxTQUFTLENBQUM7QUFFakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUduRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBS3RCOztPQUVHO0lBQ0gsWUFBc0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQVAzQyxnQkFBZ0I7UUFDTixTQUFJLEdBQXdCLEVBQUUsQ0FBQztRQUMvQixXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQU16QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRO1FBQ04sTUFBTSxhQUFhLEdBQXNCLEVBQVMsQ0FBQztRQUNuRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ25ELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFN0MsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUU7WUFDaEUsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMxQixhQUFhLENBQUMsSUFB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QUNsQzthQUNGO1NBQ0Y7UUFFRCxTQUFTO1FBQ1QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgR3JhcGhRTEVudW1UeXBlLFxuICBHcmFwaFFMSW5wdXRPYmplY3RUeXBlLFxuICBHcmFwaFFMTGlzdCxcbiAgR3JhcGhRTE5hbWVkVHlwZSxcbiAgR3JhcGhRTE5vbk51bGwsXG4gIEdyYXBoUUxTY2FsYXJUeXBlLFxuICBHcmFwaFFMU2NoZW1hLFxufSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7IEdyYXBoUUxSZXF1ZXN0VHlwZSB9IGZyb20gJy4uL2VudW1zL2dyYXBocWwtcmVxdWVzdC10eXBlLmVudW0nO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xuaW1wb3J0IHsgR3JhcGhRTFR5cGUgfSBmcm9tICcuL2dyYXBocWwtdHlwZS5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaHFsQ3J1ZFR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2dyYXBocWwtY3J1ZC10eXBlLmludGVyZmFjZSc7XG5cbi8qKlxuICogR3JhcGhRTCBtZXRhXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmFwaFFMTWV0YSB7XG4gIC8vIEZyb3plbiBjYWNoZXNcbiAgcHJvdGVjdGVkIGFyZ3M6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgcHJvdGVjdGVkIGZpZWxkczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIC8qKlxuICAgKiBJbnRlZ3JhdGUgc2NoZW1hXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2NoZW1hOiBHcmFwaFFMU2NoZW1hKSB7XG4gICAgaWYgKCFzY2hlbWEpIHtcbiAgICAgIHRocm93IEVycm9yKCdNaXNzaW5nIHNjaGVtYScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXZSdyZSBnb2luZyB0byBnZXQgdGhlIHF1ZXJ5IGFuZCBtdXRhdGlvbiB0eXBlcyBmcm9tIHRoZSBzY2hlbWEsIHRoZW4gd2UncmUgZ29pbmcgdG8gbG9vcCB0aHJvdWdoIHRoZSBmaWVsZHMgb2YgZWFjaFxuICAgKiB0eXBlIGFuZCBjaGVjayBpZiB0aGUgZmllbGQgbmFtZSBzdGFydHMgd2l0aCBgZmluZGAsIGBjcmVhdGVgLCBgdXBkYXRlYCwgb3IgYGRlbGV0ZWAuIElmIGl0IGRvZXMsIHdlJ3JlIGdvaW5nIHRvIGFkZFxuICAgKiB0aGUgbW9kZWwgbmFtZSB0byB0aGUgYHBvc3NpYmxlVHlwZXNgIGFycmF5XG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbW9kZWwsIGFuZCB0aGUgQ1JVRCBvcGVyYXRpb25zIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhhdCBtb2RlbC5cbiAgICovXG4gIGdldFR5cGVzKCk6IEdyYXBocWxDcnVkVHlwZVtdIHtcbiAgICBjb25zdCBwb3NzaWJsZVR5cGVzOiBHcmFwaHFsQ3J1ZFR5cGVbXSA9IFtdIGFzIGFueTtcbiAgICBjb25zdCBtdXRhdGlvblR5cGUgPSB0aGlzLnNjaGVtYS5nZXRNdXRhdGlvblR5cGUoKTtcbiAgICBjb25zdCBxdWVyeVR5cGUgPSB0aGlzLnNjaGVtYS5nZXRRdWVyeVR5cGUoKTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHF1ZXJ5VHlwZS5nZXRGaWVsZHMoKSkpIHtcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnZmluZCcpKSB7XG4gICAgICAgIHBvc3NpYmxlVHlwZXMucHVzaCh7XG4gICAgICAgICAgbmFtZToga2V5LnNwbGl0KCdmaW5kJykucG9wKCkuc2xpY2UoMCwgLTEpLFxuICAgICAgICAgIGNyZWF0ZTogZmFsc2UsXG4gICAgICAgICAgdXBkYXRlOiBmYWxzZSxcbiAgICAgICAgICBkZWxldGU6IGZhbHNlLFxuICAgICAgICAgIGR1cGxpY2F0ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG11dGF0aW9uVHlwZS5nZXRGaWVsZHMoKSkpIHtcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnY3JlYXRlJykpIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBrZXkuc3BsaXQoJ2NyZWF0ZScpLnBvcCgpO1xuICAgICAgICBpZiAocG9zc2libGVUeXBlcy5maW5kKChlKSA9PiBlLm5hbWUgPT09IG1vZGVsKSkge1xuICAgICAgICAgIHBvc3NpYmxlVHlwZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBtb2RlbCkuY3JlYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ3VwZGF0ZScpKSB7XG4gICAgICAgIGNvbnN0IG1vZGVsID0ga2V5LnNwbGl0KCd1cGRhdGUnKS5wb3AoKTtcbiAgICAgICAgaWYgKHBvc3NpYmxlVHlwZXMuZmluZCgoZSkgPT4gZS5uYW1lID09PSBtb2RlbCkpIHtcbiAgICAgICAgICBwb3NzaWJsZVR5cGVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gbW9kZWwpLnVwZGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGtleS5zdGFydHNXaXRoKCdkZWxldGUnKSkge1xuICAgICAgICBjb25zdCBtb2RlbCA9IGtleS5zcGxpdCgnZGVsZXRlJykucG9wKCk7XG4gICAgICAgIGlmIChwb3NzaWJsZVR5cGVzLmZpbmQoKGUpID0+IGUubmFtZSA9PT0gbW9kZWwpKSB7XG4gICAgICAgICAgcG9zc2libGVUeXBlcy5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IG1vZGVsKS5kZWxldGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnZHVwbGljYXRlJykpIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBrZXkuc3BsaXQoJ2R1cGxpY2F0ZScpLnBvcCgpO1xuICAgICAgICBpZiAocG9zc2libGVUeXBlcy5maW5kKChlKSA9PiBlLm5hbWUgPT09IG1vZGVsKSkge1xuICAgICAgICAgIHBvc3NpYmxlVHlwZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBtb2RlbCkuZHVwbGljYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwb3NzaWJsZVR5cGVzLmZpbHRlcigoZSkgPT4gZS5jcmVhdGUgfHwgZS51cGRhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhcmd1bWVudHMgb2YgR3JhcGhRTCBmdW5jdGlvblxuICAgKi9cbiAgZ2V0QXJncyhcbiAgICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7IGNhY2hlPzogYm9vbGVhbjsgZnJlZXplPzogYm9vbGVhbjsgdHlwZT86IEdyYXBoUUxSZXF1ZXN0VHlwZSB9ID0ge31cbiAgKTogR3JhcGhRTFR5cGUge1xuICAgIGNvbnN0IHsgY2FjaGUsIGZyZWV6ZSwgdHlwZSB9ID0ge1xuICAgICAgY2FjaGU6IHRydWUsXG4gICAgICBmcmVlemU6IHRydWUsXG4gICAgICB0eXBlOiB1bmRlZmluZWQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBHZXQgY2FjaGVcbiAgICBpZiAoY2FjaGUgJiYgZnJlZXplKSB7XG4gICAgICBjb25zdCBhcmdzID0gdGhpcy5hcmdzW2Z1bmN0aW9uTmFtZSArIHR5cGVdO1xuICAgICAgaWYgKGFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZnVuYyA9IHRoaXMuZ2V0RnVuY3Rpb24oZnVuY3Rpb25OYW1lLCB7IHR5cGUgfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEdyYXBoUUxUeXBlKCk7XG4gICAgaWYgKGZ1bmM/LmFyZ3MpIHtcbiAgICAgIGZ1bmMuYXJncy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHJlc3VsdC5maWVsZHNbaXRlbS5uYW1lXSA9IHRoaXMuZ2V0RGVlcFR5cGUoaXRlbS50eXBlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFNldCBjYWNoZVxuICAgIGlmIChmcmVlemUpIHtcbiAgICAgIHRoaXMuYXJnc1tmdW5jdGlvbk5hbWUgKyB0eXBlXSA9IEhlbHBlci5kZWVwRnJlZXplKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZmllbGRzIG9mIEdyYXBoUUwgZnVuY3Rpb25cbiAgICovXG4gIGdldEZpZWxkcyhcbiAgICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7IGNhY2hlPzogYm9vbGVhbjsgZnJlZXplPzogYm9vbGVhbjsgdHlwZT86IEdyYXBoUUxSZXF1ZXN0VHlwZSB9ID0ge31cbiAgKTogR3JhcGhRTFR5cGUge1xuICAgIGNvbnN0IHsgY2FjaGUsIGZyZWV6ZSwgdHlwZSB9ID0ge1xuICAgICAgY2FjaGU6IHRydWUsXG4gICAgICBmcmVlemU6IHRydWUsXG4gICAgICB0eXBlOiB1bmRlZmluZWQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBHZXQgY2FjaGVcbiAgICBpZiAoY2FjaGUgJiYgZnJlZXplKSB7XG4gICAgICBjb25zdCBhcmdzID0gdGhpcy5maWVsZHNbZnVuY3Rpb25OYW1lICsgdHlwZV07XG4gICAgICBpZiAoYXJncykge1xuICAgICAgICByZXR1cm4gYXJncztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmdW5jID0gdGhpcy5nZXRGdW5jdGlvbihmdW5jdGlvbk5hbWUsIG9wdGlvbnMpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZ2V0RGVlcFR5cGUoZnVuYy50eXBlKTtcblxuICAgIC8vIFNldCBjYWNoZVxuICAgIGlmIChmcmVlemUpIHtcbiAgICAgIHRoaXMuZmllbGRzW2Z1bmN0aW9uTmFtZSArIHR5cGVdID0gSGVscGVyLmRlZXBGcmVlemUocmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBHcmFwaFFMIGZ1bmN0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0RnVuY3Rpb24obmFtZTogc3RyaW5nLCBvcHRpb25zOiB7IHR5cGU/OiBHcmFwaFFMUmVxdWVzdFR5cGUgfSA9IHt9KTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgLy8gU2V0IGNvbmZpZ1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIEluaXQgcG9zc2libGUgZnVuY3Rpb25zXG4gICAgbGV0IGZ1bmN0aW9ucyA9IHt9O1xuXG4gICAgLy8gSWYgZnVuY3Rpb24gdHlwZSBpcyBzZXRcbiAgICBpZiAoY29uZmlnLnR5cGUpIHtcbiAgICAgIGNvbnN0IGdyYXBoUUxUeXBlID0gY29uZmlnLnR5cGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjb25maWcudHlwZS5zbGljZSgxKTtcbiAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLnNjaGVtYS5nZXRUeXBlKGdyYXBoUUxUeXBlKTtcbiAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgIGZ1bmN0aW9ucyA9ICh0eXBlIGFzIGFueSkuZ2V0RmllbGRzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgZnVuY3Rpb24gdHlwZSBpcyBub3Qgc2V0XG4gICAgZWxzZSB7XG4gICAgICBbJ1N1YnNjcmlwdGlvbicsICdNdXRhdGlvbicsICdRdWVyeSddLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgdHlwZTogYW55ID0gdGhpcy5zY2hlbWEuZ2V0VHlwZShpdGVtKTtcbiAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICBmdW5jdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5mdW5jdGlvbnMsXG4gICAgICAgICAgICAuLi4odHlwZS5nZXRGaWVsZHMoKSB8fCB7fSksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gR2V0IGZ1bmN0aW9uIHZpYSBuYW1lXG4gICAgcmV0dXJuIGZ1bmN0aW9uc1tuYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHlwZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFR5cGUobmFtZTogc3RyaW5nKTogR3JhcGhRTE5hbWVkVHlwZSB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYS5nZXRUeXBlKG5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCAoZGVlcCkgdHlwZSBuYW1lXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VHlwZU5hbWUodHlwZTogYW55KSB7XG4gICAgaWYgKFxuICAgICAgdHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUgfHxcbiAgICAgIHR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMU2NhbGFyVHlwZSB8fFxuICAgICAgdHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxFbnVtVHlwZVxuICAgICkge1xuICAgICAgcmV0dXJuIHR5cGUubmFtZTtcbiAgICB9IGVsc2UgaWYgKHR5cGUudHlwZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZU5hbWUodHlwZS50eXBlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUub2ZUeXBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUeXBlTmFtZSh0eXBlLm9mVHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlLm5hbWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkZWVwIHR5cGUgZGF0YVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldERlZXBUeXBlKHR5cGU6IGFueSwgcHJlcGFyZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSwgc2V0TWV0YURhdGEgPSBmYWxzZSk6IEdyYXBoUUxUeXBlIHtcbiAgICAvLyBDaGVjayB0eXBlXG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG5cbiAgICAvLyBJbmZpbml0ZSByZWdyZXNzIHByb3RlY3Rpb25cbiAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMuZ2V0VHlwZU5hbWUodHlwZSk7XG4gICAgY29uc3QgZ3JhcGhRTFR5cGUgPSBHcmFwaFFMVHlwZS5tYXAoe1xuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlTmFtZSh0eXBlKSxcbiAgICB9KTtcblxuICAgIC8vIENoZWNrIHByZXBhcmVkXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3QgcHJlcGFyZWRUeXBlID0gcHJlcGFyZWRbdHlwZU5hbWVdO1xuXG4gICAgICAvLyBXb3JrIHdpdGggY2FjaGVkIHR5cGVcbiAgICAgIGlmIChwcmVwYXJlZFR5cGUpIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IG9iamVjdCB0byBwcm90ZWN0IG93biBpc1hYWCBpbmZvcm1hdGlvblxuICAgICAgICBjb25zdCBjbG9uZSA9IE9iamVjdC5hc3NpZ24oe30sIHByZXBhcmVkVHlwZSk7XG5cbiAgICAgICAgLy8gQnV0IHVzZSBmaWVsZHMgYXMgcmVmZXJlbmNlIHRvIGdldCBmdXR1cmUgY2hhbmdlcyB2aWEgcHJlcGFyZWQgY2FjaGluZ1xuICAgICAgICBjbG9uZS5maWVsZHMgPSBwcmVwYXJlZFR5cGUuZmllbGRzO1xuXG4gICAgICAgIC8vIERpc2FibGUgbWV0YSBmbGFncyBmb3Igc3ViIG9iamVjdHNcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGU/LnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlIHx8XG4gICAgICAgICAgKHR5cGU/LnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbCAmJiB0eXBlPy50eXBlPy5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlICYmIHNldE1ldGFEYXRhKVxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRNZXRhRGF0YSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIG1ldGEgZmxhZ3NcbiAgICAgICAgaWYgKHR5cGUudHlwZSAmJiBzZXRNZXRhRGF0YSkge1xuICAgICAgICAgIGlmICh0eXBlLnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbCkge1xuICAgICAgICAgICAgY2xvbmUuaXNSZXF1aXJlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAodHlwZS50eXBlLm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxMaXN0KSB7XG4gICAgICAgICAgICAgIGNsb25lLmlzTGlzdCA9IHRydWU7XG4gICAgICAgICAgICAgIGNsb25lLmlzSXRlbVJlcXVpcmVkID0gdHlwZS50eXBlLm9mVHlwZS5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNsb25lLmlzTGlzdCA9IGZhbHNlO1xuICAgICAgICAgICAgICBjbG9uZS5pc0l0ZW1SZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbG9uZS5pc1JlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIExpc3QgZmlyc3RcbiAgICAgICAgICAgIGlmICh0eXBlLnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTGlzdCkge1xuICAgICAgICAgICAgICBjbG9uZS5pc0xpc3QgPSB0cnVlO1xuICAgICAgICAgICAgICBjbG9uZS5pc0l0ZW1SZXF1aXJlZCA9IHR5cGUub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjbG9uZS5pc0xpc3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY2xvbmUuaXNJdGVtUmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xvbmU7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBwcmVwYXJlZCBjYWNoZSBmb3IgR3JhcGhRTCB0eXBlc1xuICAgICAgLy8gKHR5cGUgbmFtZXMgc3RhcnQgd2l0aCB1cHBlcmNhc2UgbGV0dGVycyBhcyBvcHBvc2VkIHRvIHByb3BlcnR5IG5hbWVzIHRoYXQgc3RhcnQgd2l0aCBsb3dlcmNhc2UgbGV0dGVycylcbiAgICAgIGlmICh0eXBlLm5hbWUgJiYgdHlwZS5uYW1lWzBdLnRvVXBwZXJDYXNlKCkgPT09IHR5cGUubmFtZVswXSAmJiAhcHJlcGFyZWRbdHlwZS5uYW1lXSkge1xuICAgICAgICBwcmVwYXJlZFt0eXBlLm5hbWVdID0gZ3JhcGhRTFR5cGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VhcmNoIGRlZXBlclxuICAgIGlmICh0eXBlLm9mVHlwZSkge1xuICAgICAgY29uc3Qgb2ZUeXBlUmVzdWx0ID0gdGhpcy5nZXREZWVwVHlwZSh0eXBlLm9mVHlwZSwgcHJlcGFyZWQsIHNldE1ldGFEYXRhKTtcbiAgICAgIE9iamVjdC5hc3NpZ24oZ3JhcGhRTFR5cGUsIG9mVHlwZVJlc3VsdCk7XG4gICAgICByZXR1cm4gZ3JhcGhRTFR5cGU7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBmaWVsZHNcbiAgICBpZiAodHlwZS5fZmllbGRzKSB7XG4gICAgICBjb25zdCBmaWVsZHMgPSB7fTtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHR5cGUuX2ZpZWxkcykpIHtcbiAgICAgICAgZmllbGRzW2tleV0gPSB0aGlzLmdldERlZXBUeXBlKHZhbHVlLCBwcmVwYXJlZCwgdHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEFzc2lnbiBhbmQgbm90IHJlcGxhY2UgdG8gcHJlc2VydmUgdXBkYXRlcyBpbiB0aGUgY2FjaGVcbiAgICAgIE9iamVjdC5hc3NpZ24oZ3JhcGhRTFR5cGUuZmllbGRzLCBmaWVsZHMpO1xuICAgICAgcmV0dXJuIGdyYXBoUUxUeXBlO1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3MgdHlwZVxuICAgIGlmICh0eXBlLnR5cGUpIHtcbiAgICAgIGNvbnN0IHR5cGVSZXN1bHQgPSB0aGlzLmdldERlZXBUeXBlKHR5cGUudHlwZSwgcHJlcGFyZWQsIHNldE1ldGFEYXRhKTtcblxuICAgICAgLy8gRGlzYWJsZSBtZXRhIGZsYWdzIGZvciBzdWIgb2JqZWN0c1xuICAgICAgaWYgKFxuICAgICAgICB0eXBlPy50eXBlIGluc3RhbmNlb2YgR3JhcGhRTElucHV0T2JqZWN0VHlwZSB8fFxuICAgICAgICAodHlwZT8udHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsICYmIHR5cGU/LnR5cGU/Lm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUgJiYgc2V0TWV0YURhdGEpXG4gICAgICApIHtcbiAgICAgICAgc2V0TWV0YURhdGEgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgZm9yIG1ldGEgZmxhZ3NcbiAgICAgIGlmIChzZXRNZXRhRGF0YSkge1xuICAgICAgICBpZiAodHlwZS50eXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGwpIHtcbiAgICAgICAgICB0eXBlUmVzdWx0LmlzUmVxdWlyZWQgPSB0cnVlO1xuICAgICAgICAgIGlmICh0eXBlLnR5cGUub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTExpc3QpIHtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNMaXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNJdGVtUmVxdWlyZWQgPSB0eXBlLnR5cGUub2ZUeXBlLm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzTGlzdCA9IGZhbHNlO1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0l0ZW1SZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0eXBlUmVzdWx0LmlzUmVxdWlyZWQgPSBmYWxzZTtcblxuICAgICAgICAgIC8vIExpc3QgZmlyc3RcbiAgICAgICAgICBpZiAodHlwZS50eXBlIGluc3RhbmNlb2YgR3JhcGhRTExpc3QpIHtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNMaXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNJdGVtUmVxdWlyZWQgPSB0eXBlLm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzTGlzdCA9IGZhbHNlO1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0l0ZW1SZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBPYmplY3QuYXNzaWduKGdyYXBoUUxUeXBlLCB0eXBlUmVzdWx0KTtcbiAgICAgIHJldHVybiBncmFwaFFMVHlwZTtcbiAgICB9XG5cbiAgICAvLyBTZXQgZW51bSB2YWx1ZXNcbiAgICBpZiAoISF0eXBlLl92YWx1ZXMpIHtcbiAgICAgIGdyYXBoUUxUeXBlLmlzRW51bSA9IHRydWU7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0eXBlLl9uYW1lTG9va3VwKSkge1xuICAgICAgICBpZiAoISh2YWx1ZSBhcyBhbnkpLmlzRGVwcmVjYXRlZCkge1xuICAgICAgICAgIGdyYXBoUUxUeXBlLnZhbGlkRW51bXMucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluaXNoXG4gICAgcmV0dXJuIGdyYXBoUUxUeXBlO1xuICB9XG59XG4iXX0=
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1tZXRhLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvY2xhc3Nlcy9ncmFwaHFsLW1ldGEuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsV0FBVyxFQUVYLGNBQWMsRUFDZCxpQkFBaUIsR0FFbEIsTUFBTSxTQUFTLENBQUM7QUFFakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUduRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBS3RCOztPQUVHO0lBQ0gsWUFBc0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQVAzQyxnQkFBZ0I7UUFDTixTQUFJLEdBQXdCLEVBQUUsQ0FBQztRQUMvQixXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQU16QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUs7UUFDdEIsTUFBTSxhQUFhLEdBQXNCLEVBQVMsQ0FBQztRQUNuRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ25ELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFN0MsSUFBSSxPQUFPLEVBQUU7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLHdDQUF3QyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1B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TUFBTSxZQUFZLGNBQWMsQ0FBQztxQkFDbkU7eUJBQU07d0JBQ0wsVUFBVSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7d0JBQzFCLFVBQVUsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO3FCQUNuQztpQkFDRjthQUNGO1lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDdkMsT0FBTyxXQUFXLENBQUM7U0FDcEI7UUFFRCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNsQixXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUMxQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzNELElBQUksQ0FBRSxLQUFhLENBQUMsWUFBWSxFQUFFO29CQUNoQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDbEM7YUFDRjtTQUNGO1FBRUQsU0FBUztRQUNULE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEdyYXBoUUxFbnVtVHlwZSxcbiAgR3JhcGhRTElucHV0T2JqZWN0VHlwZSxcbiAgR3JhcGhRTExpc3QsXG4gIEdyYXBoUUxOYW1lZFR5cGUsXG4gIEdyYXBoUUxOb25OdWxsLFxuICBHcmFwaFFMU2NhbGFyVHlwZSxcbiAgR3JhcGhRTFNjaGVtYSxcbn0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBHcmFwaFFMUmVxdWVzdFR5cGUgfSBmcm9tICcuLi9lbnVtcy9ncmFwaHFsLXJlcXVlc3QtdHlwZS5lbnVtJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4vaGVscGVyLmNsYXNzJztcbmltcG9ydCB7IEdyYXBoUUxUeXBlIH0gZnJvbSAnLi9ncmFwaHFsLXR5cGUuY2xhc3MnO1xuaW1wb3J0IHsgR3JhcGhxbENydWRUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ncmFwaHFsLWNydWQtdHlwZS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEdyYXBoUUwgbWV0YVxuICovXG5leHBvcnQgY2xhc3MgR3JhcGhRTE1ldGEge1xuICAvLyBGcm96ZW4gY2FjaGVzXG4gIHByb3RlY3RlZCBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIHByb3RlY3RlZCBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICAvKipcbiAgICogSW50ZWdyYXRlIHNjaGVtYVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNjaGVtYTogR3JhcGhRTFNjaGVtYSkge1xuICAgIGlmICghc2NoZW1hKSB7XG4gICAgICB0aHJvdyBFcnJvcignTWlzc2luZyBzY2hlbWEnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2UncmUgZ29pbmcgdG8gZ2V0IHRoZSBxdWVyeSBhbmQgbXV0YXRpb24gdHlwZXMgZnJvbSB0aGUgc2NoZW1hLCB0aGVuIHdlJ3JlIGdvaW5nIHRvIGxvb3AgdGhyb3VnaCB0aGUgZmllbGRzIG9mIGVhY2hcbiAgICogdHlwZSBhbmQgY2hlY2sgaWYgdGhlIGZpZWxkIG5hbWUgc3RhcnRzIHdpdGggYGZpbmRgLCBgY3JlYXRlYCwgYHVwZGF0ZWAsIG9yIGBkZWxldGVgLiBJZiBpdCBkb2VzLCB3ZSdyZSBnb2luZyB0byBhZGRcbiAgICogdGhlIG1vZGVsIG5hbWUgdG8gdGhlIGBwb3NzaWJsZVR5cGVzYCBhcnJheVxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBvYmplY3RzIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vZGVsLCBhbmQgdGhlIENSVUQgb3BlcmF0aW9ucyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoYXQgbW9kZWwuXG4gICAqL1xuICBnZXRUeXBlcyhsb2dnaW5nID0gZmFsc2UpOiBHcmFwaHFsQ3J1ZFR5cGVbXSB7XG4gICAgY29uc3QgcG9zc2libGVUeXBlczogR3JhcGhxbENydWRUeXBlW10gPSBbXSBhcyBhbnk7XG4gICAgY29uc3QgbXV0YXRpb25UeXBlID0gdGhpcy5zY2hlbWEuZ2V0TXV0YXRpb25UeXBlKCk7XG4gICAgY29uc3QgcXVlcnlUeXBlID0gdGhpcy5zY2hlbWEuZ2V0UXVlcnlUeXBlKCk7XG5cbiAgICBpZiAobG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coJ0dyYXBoUUxNZXRhOjpnZXRUeXBlcy0+cXVlcnlUeXBlRmllbGRzJywgcXVlcnlUeXBlLmdldEZpZWxkcygpKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhxdWVyeVR5cGUuZ2V0RmllbGRzKCkpKSB7XG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ2ZpbmQnKSkge1xuICAgICAgICBwb3NzaWJsZVR5cGVzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IGtleS5zcGxpdCgnZmluZCcpLnBvcCgpLnNsaWNlKDAsIC0xKSxcbiAgICAgICAgICBjcmVhdGU6IGZhbHNlLFxuICAgICAgICAgIHVwZGF0ZTogZmFsc2UsXG4gICAgICAgICAgZGVsZXRlOiBmYWxzZSxcbiAgICAgICAgICBkdXBsaWNhdGU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coJ0dyYXBoUUxNZXRhOjpnZXRUeXBlcy0+bXV0YXRpb25UeXBlRmllbGRzJywgbXV0YXRpb25UeXBlLmdldEZpZWxkcygpKTtcbiAgICAgIGNvbnNvbGUubG9nKCdHcmFwaFFMTWV0YTo6Z2V0VHlwZXMtPnBvc3NpYmxlVHlwZXMnLCBwb3NzaWJsZVR5cGVzKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhtdXRhdGlvblR5cGUuZ2V0RmllbGRzKCkpKSB7XG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ2NyZWF0ZScpKSB7XG4gICAgICAgIGNvbnN0IG1vZGVsID0ga2V5LnNwbGl0KCdjcmVhdGUnKS5wb3AoKTtcbiAgICAgICAgaWYgKHBvc3NpYmxlVHlwZXMuZmluZCgoZSkgPT4gZS5uYW1lID09PSBtb2RlbCkpIHtcbiAgICAgICAgICBwb3NzaWJsZVR5cGVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gbW9kZWwpLmNyZWF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGtleS5zdGFydHNXaXRoKCd1cGRhdGUnKSkge1xuICAgICAgICBjb25zdCBtb2RlbCA9IGtleS5zcGxpdCgndXBkYXRlJykucG9wKCk7XG4gICAgICAgIGlmIChwb3NzaWJsZVR5cGVzLmZpbmQoKGUpID0+IGUubmFtZSA9PT0gbW9kZWwpKSB7XG4gICAgICAgICAgcG9zc2libGVUeXBlcy5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IG1vZGVsKS51cGRhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnZGVsZXRlJykpIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBrZXkuc3BsaXQoJ2RlbGV0ZScpLnBvcCgpO1xuICAgICAgICBpZiAocG9zc2libGVUeXBlcy5maW5kKChlKSA9PiBlLm5hbWUgPT09IG1vZGVsKSkge1xuICAgICAgICAgIHBvc3NpYmxlVHlwZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBtb2RlbCkuZGVsZXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ2R1cGxpY2F0ZScpKSB7XG4gICAgICAgIGNvbnN0IG1vZGVsID0ga2V5LnNwbGl0KCdkdXBsaWNhdGUnKS5wb3AoKTtcbiAgICAgICAgaWYgKHBvc3NpYmxlVHlwZXMuZmluZCgoZSkgPT4gZS5uYW1lID09PSBtb2RlbCkpIHtcbiAgICAgICAgICBwb3NzaWJsZVR5cGVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gbW9kZWwpLmR1cGxpY2F0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coJ0dyYXBoUUxNZXRhOjpnZXRUeXBlcy0+cG9zc2libGVUeXBlcycsIHBvc3NpYmxlVHlwZXMpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICdHcmFwaFFMTWV0YTo6Z2V0VHlwZXMtPmZpbHRlcmVkUG9zc2libGVUeXBlcycsXG4gICAgICAgIHBvc3NpYmxlVHlwZXMuZmlsdGVyKChlKSA9PiBlLmNyZWF0ZSB8fCBlLnVwZGF0ZSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBvc3NpYmxlVHlwZXMuZmlsdGVyKChlKSA9PiBlLmNyZWF0ZSB8fCBlLnVwZGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFyZ3VtZW50cyBvZiBHcmFwaFFMIGZ1bmN0aW9uXG4gICAqL1xuICBnZXRBcmdzKFxuICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHsgY2FjaGU/OiBib29sZWFuOyBmcmVlemU/OiBib29sZWFuOyB0eXBlPzogR3JhcGhRTFJlcXVlc3RUeXBlIH0gPSB7fVxuICApOiBHcmFwaFFMVHlwZSB7XG4gICAgY29uc3QgeyBjYWNoZSwgZnJlZXplLCB0eXBlIH0gPSB7XG4gICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgIGZyZWV6ZTogdHJ1ZSxcbiAgICAgIHR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIEdldCBjYWNoZVxuICAgIGlmIChjYWNoZSAmJiBmcmVlemUpIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSB0aGlzLmFyZ3NbZnVuY3Rpb25OYW1lICsgdHlwZV07XG4gICAgICBpZiAoYXJncykge1xuICAgICAgICByZXR1cm4gYXJncztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmdW5jID0gdGhpcy5nZXRGdW5jdGlvbihmdW5jdGlvbk5hbWUsIHsgdHlwZSB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgR3JhcGhRTFR5cGUoKTtcbiAgICBpZiAoZnVuYz8uYXJncykge1xuICAgICAgZnVuYy5hcmdzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgcmVzdWx0LmZpZWxkc1tpdGVtLm5hbWVdID0gdGhpcy5nZXREZWVwVHlwZShpdGVtLnR5cGUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gU2V0IGNhY2hlXG4gICAgaWYgKGZyZWV6ZSkge1xuICAgICAgdGhpcy5hcmdzW2Z1bmN0aW9uTmFtZSArIHR5cGVdID0gSGVscGVyLmRlZXBGcmVlemUocmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmaWVsZHMgb2YgR3JhcGhRTCBmdW5jdGlvblxuICAgKi9cbiAgZ2V0RmllbGRzKFxuICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHsgY2FjaGU/OiBib29sZWFuOyBmcmVlemU/OiBib29sZWFuOyB0eXBlPzogR3JhcGhRTFJlcXVlc3RUeXBlIH0gPSB7fVxuICApOiBHcmFwaFFMVHlwZSB7XG4gICAgY29uc3QgeyBjYWNoZSwgZnJlZXplLCB0eXBlIH0gPSB7XG4gICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgIGZyZWV6ZTogdHJ1ZSxcbiAgICAgIHR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIEdldCBjYWNoZVxuICAgIGlmIChjYWNoZSAmJiBmcmVlemUpIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSB0aGlzLmZpZWxkc1tmdW5jdGlvbk5hbWUgKyB0eXBlXTtcbiAgICAgIGlmIChhcmdzKSB7XG4gICAgICAgIHJldHVybiBhcmdzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmdldEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSwgb3B0aW9ucyk7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXREZWVwVHlwZShmdW5jLnR5cGUpO1xuXG4gICAgLy8gU2V0IGNhY2hlXG4gICAgaWYgKGZyZWV6ZSkge1xuICAgICAgdGhpcy5maWVsZHNbZnVuY3Rpb25OYW1lICsgdHlwZV0gPSBIZWxwZXIuZGVlcEZyZWV6ZShyZXN1bHQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IEdyYXBoUUwgZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBnZXRGdW5jdGlvbihuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IHsgdHlwZT86IEdyYXBoUUxSZXF1ZXN0VHlwZSB9ID0ge30pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAvLyBTZXQgY29uZmlnXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLy8gSW5pdCBwb3NzaWJsZSBmdW5jdGlvbnNcbiAgICBsZXQgZnVuY3Rpb25zID0ge307XG5cbiAgICAvLyBJZiBmdW5jdGlvbiB0eXBlIGlzIHNldFxuICAgIGlmIChjb25maWcudHlwZSkge1xuICAgICAgY29uc3QgZ3JhcGhRTFR5cGUgPSBjb25maWcudHlwZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNvbmZpZy50eXBlLnNsaWNlKDEpO1xuICAgICAgY29uc3QgdHlwZSA9IHRoaXMuc2NoZW1hLmdldFR5cGUoZ3JhcGhRTFR5cGUpO1xuICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgZnVuY3Rpb25zID0gKHR5cGUgYXMgYW55KS5nZXRGaWVsZHMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBmdW5jdGlvbiB0eXBlIGlzIG5vdCBzZXRcbiAgICBlbHNlIHtcbiAgICAgIFsnU3Vic2NyaXB0aW9uJywgJ011dGF0aW9uJywgJ1F1ZXJ5J10uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlOiBhbnkgPSB0aGlzLnNjaGVtYS5nZXRUeXBlKGl0ZW0pO1xuICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgIGZ1bmN0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLmZ1bmN0aW9ucyxcbiAgICAgICAgICAgIC4uLih0eXBlLmdldEZpZWxkcygpIHx8IHt9KSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBHZXQgZnVuY3Rpb24gdmlhIG5hbWVcbiAgICByZXR1cm4gZnVuY3Rpb25zW25hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0eXBlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VHlwZShuYW1lOiBzdHJpbmcpOiBHcmFwaFFMTmFtZWRUeXBlIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZW1hLmdldFR5cGUobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IChkZWVwKSB0eXBlIG5hbWVcbiAgICovXG4gIHByb3RlY3RlZCBnZXRUeXBlTmFtZSh0eXBlOiBhbnkpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlIGluc3RhbmNlb2YgR3JhcGhRTElucHV0T2JqZWN0VHlwZSB8fFxuICAgICAgdHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxTY2FsYXJUeXBlIHx8XG4gICAgICB0eXBlIGluc3RhbmNlb2YgR3JhcGhRTEVudW1UeXBlXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHlwZS5uYW1lO1xuICAgIH0gZWxzZSBpZiAodHlwZS50eXBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUeXBlTmFtZSh0eXBlLnR5cGUpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5vZlR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFR5cGVOYW1lKHR5cGUub2ZUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHR5cGUubmFtZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRlZXAgdHlwZSBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0RGVlcFR5cGUodHlwZTogYW55LCBwcmVwYXJlZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LCBzZXRNZXRhRGF0YSA9IGZhbHNlKTogR3JhcGhRTFR5cGUge1xuICAgIC8vIENoZWNrIHR5cGVcbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cblxuICAgIC8vIEluZmluaXRlIHJlZ3Jlc3MgcHJvdGVjdGlvblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdGhpcy5nZXRUeXBlTmFtZSh0eXBlKTtcbiAgICBjb25zdCBncmFwaFFMVHlwZSA9IEdyYXBoUUxUeXBlLm1hcCh7XG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGVOYW1lKHR5cGUpLFxuICAgIH0pO1xuXG4gICAgLy8gQ2hlY2sgcHJlcGFyZWRcbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBwcmVwYXJlZFR5cGUgPSBwcmVwYXJlZFt0eXBlTmFtZV07XG5cbiAgICAgIC8vIFdvcmsgd2l0aCBjYWNoZWQgdHlwZVxuICAgICAgaWYgKHByZXBhcmVkVHlwZSkge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgb2JqZWN0IHRvIHByb3RlY3Qgb3duIGlzWFhYIGluZm9ybWF0aW9uXG4gICAgICAgIGNvbnN0IGNsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgcHJlcGFyZWRUeXBlKTtcblxuICAgICAgICAvLyBCdXQgdXNlIGZpZWxkcyBhcyByZWZlcmVuY2UgdG8gZ2V0IGZ1dHVyZSBjaGFuZ2VzIHZpYSBwcmVwYXJlZCBjYWNoaW5nXG4gICAgICAgIGNsb25lLmZpZWxkcyA9IHByZXBhcmVkVHlwZS5maWVsZHM7XG5cbiAgICAgICAgLy8gRGlzYWJsZSBtZXRhIGZsYWdzIGZvciBzdWIgb2JqZWN0c1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdHlwZT8udHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUgfHxcbiAgICAgICAgICAodHlwZT8udHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsICYmIHR5cGU/LnR5cGU/Lm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUgJiYgc2V0TWV0YURhdGEpXG4gICAgICAgICkge1xuICAgICAgICAgIHNldE1ldGFEYXRhID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBmb3IgbWV0YSBmbGFnc1xuICAgICAgICBpZiAodHlwZS50eXBlICYmIHNldE1ldGFEYXRhKSB7XG4gICAgICAgICAgaWYgKHR5cGUudHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsKSB7XG4gICAgICAgICAgICBjbG9uZS5pc1JlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0eXBlLnR5cGUub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTExpc3QpIHtcbiAgICAgICAgICAgICAgY2xvbmUuaXNMaXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY2xvbmUuaXNJdGVtUmVxdWlyZWQgPSB0eXBlLnR5cGUub2ZUeXBlLm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY2xvbmUuaXNMaXN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNsb25lLmlzSXRlbVJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsb25lLmlzUmVxdWlyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgLy8gTGlzdCBmaXJzdFxuICAgICAgICAgICAgaWYgKHR5cGUudHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxMaXN0KSB7XG4gICAgICAgICAgICAgIGNsb25lLmlzTGlzdCA9IHRydWU7XG4gICAgICAgICAgICAgIGNsb25lLmlzSXRlbVJlcXVpcmVkID0gdHlwZS5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNsb25lLmlzTGlzdCA9IGZhbHNlO1xuICAgICAgICAgICAgICBjbG9uZS5pc0l0ZW1SZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbG9uZTtcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IHByZXBhcmVkIGNhY2hlIGZvciBHcmFwaFFMIHR5cGVzXG4gICAgICAvLyAodHlwZSBuYW1lcyBzdGFydCB3aXRoIHVwcGVyY2FzZSBsZXR0ZXJzIGFzIG9wcG9zZWQgdG8gcHJvcGVydHkgbmFtZXMgdGhhdCBzdGFydCB3aXRoIGxvd2VyY2FzZSBsZXR0ZXJzKVxuICAgICAgaWYgKHR5cGUubmFtZSAmJiB0eXBlLm5hbWVbMF0udG9VcHBlckNhc2UoKSA9PT0gdHlwZS5uYW1lWzBdICYmICFwcmVwYXJlZFt0eXBlLm5hbWVdKSB7XG4gICAgICAgIHByZXBhcmVkW3R5cGUubmFtZV0gPSBncmFwaFFMVHlwZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZWFyY2ggZGVlcGVyXG4gICAgaWYgKHR5cGUub2ZUeXBlKSB7XG4gICAgICBjb25zdCBvZlR5cGVSZXN1bHQgPSB0aGlzLmdldERlZXBUeXBlKHR5cGUub2ZUeXBlLCBwcmVwYXJlZCwgc2V0TWV0YURhdGEpO1xuICAgICAgT2JqZWN0LmFzc2lnbihncmFwaFFMVHlwZSwgb2ZUeXBlUmVzdWx0KTtcbiAgICAgIHJldHVybiBncmFwaFFMVHlwZTtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIGZpZWxkc1xuICAgIGlmICh0eXBlLl9maWVsZHMpIHtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IHt9O1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModHlwZS5fZmllbGRzKSkge1xuICAgICAgICBmaWVsZHNba2V5XSA9IHRoaXMuZ2V0RGVlcFR5cGUodmFsdWUsIHByZXBhcmVkLCB0cnVlKTtcbiAgICAgIH1cblxuICAgICAgLy8gQXNzaWduIGFuZCBub3QgcmVwbGFjZSB0byBwcmVzZXJ2ZSB1cGRhdGVzIGluIHRoZSBjYWNoZVxuICAgICAgT2JqZWN0LmFzc2lnbihncmFwaFFMVHlwZS5maWVsZHMsIGZpZWxkcyk7XG4gICAgICByZXR1cm4gZ3JhcGhRTFR5cGU7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyB0eXBlXG4gICAgaWYgKHR5cGUudHlwZSkge1xuICAgICAgY29uc3QgdHlwZVJlc3VsdCA9IHRoaXMuZ2V0RGVlcFR5cGUodHlwZS50eXBlLCBwcmVwYXJlZCwgc2V0TWV0YURhdGEpO1xuXG4gICAgICAvLyBEaXNhYmxlIG1ldGEgZmxhZ3MgZm9yIHN1YiBvYmplY3RzXG4gICAgICBpZiAoXG4gICAgICAgIHR5cGU/LnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlIHx8XG4gICAgICAgICh0eXBlPy50eXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGwgJiYgdHlwZT8udHlwZT8ub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTElucHV0T2JqZWN0VHlwZSAmJiBzZXRNZXRhRGF0YSlcbiAgICAgICkge1xuICAgICAgICBzZXRNZXRhRGF0YSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBmb3IgbWV0YSBmbGFnc1xuICAgICAgaWYgKHNldE1ldGFEYXRhKSB7XG4gICAgICAgIGlmICh0eXBlLnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbCkge1xuICAgICAgICAgIHR5cGVSZXN1bHQuaXNSZXF1aXJlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKHR5cGUudHlwZS5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTGlzdCkge1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0xpc3QgPSB0cnVlO1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0l0ZW1SZXF1aXJlZCA9IHR5cGUudHlwZS5vZlR5cGUub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNMaXN0ID0gZmFsc2U7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzSXRlbVJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHR5cGVSZXN1bHQuaXNSZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgLy8gTGlzdCBmaXJzdFxuICAgICAgICAgIGlmICh0eXBlLnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTGlzdCkge1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0xpc3QgPSB0cnVlO1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0l0ZW1SZXF1aXJlZCA9IHR5cGUub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNMaXN0ID0gZmFsc2U7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzSXRlbVJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIE9iamVjdC5hc3NpZ24oZ3JhcGhRTFR5cGUsIHR5cGVSZXN1bHQpO1xuICAgICAgcmV0dXJuIGdyYXBoUUxUeXBlO1xuICAgIH1cblxuICAgIC8vIFNldCBlbnVtIHZhbHVlc1xuICAgIGlmICghIXR5cGUuX3ZhbHVlcykge1xuICAgICAgZ3JhcGhRTFR5cGUuaXNFbnVtID0gdHJ1ZTtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHR5cGUuX25hbWVMb29rdXApKSB7XG4gICAgICAgIGlmICghKHZhbHVlIGFzIGFueSkuaXNEZXByZWNhdGVkKSB7XG4gICAgICAgICAgZ3JhcGhRTFR5cGUudmFsaWRFbnVtcy5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaW5pc2hcbiAgICByZXR1cm4gZ3JhcGhRTFR5cGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -58,6 +58,7 @@ export * from './types/storage.type';
|
|
|
58
58
|
export * from './types/graphql-fields.type';
|
|
59
59
|
// Validators
|
|
60
60
|
export * from './validators/match.validator';
|
|
61
|
+
export * from './validators/email.validator';
|
|
61
62
|
// Functions
|
|
62
63
|
export * from './functions/ws-client.function';
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxVQUFVO0FBQ1YsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGFBQWE7QUFDYixjQUFjLGlDQUFpQyxDQUFDO0FBRWhELFdBQVc7QUFDWCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxRQUFRO0FBQ1IsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsYUFBYTtBQUNiLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxRQUFRO0FBQ1IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGFBQWE7QUFDYixjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsWUFBWTtBQUNaLGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV4cG9ydHMgZm9yIHB1YmxpYyBBUElcbiAqL1xuXG4vLyBDbGFzc2VzXG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvYmFzaWMtdXNlci5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvZ3JhcGhxbC1lbnVtLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9ncmFwaHFsLW1ldGEuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2dyYXBocWwtdHlwZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9zdGFuZGFyZC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvYXV0aC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvc29ydC5jbGFzcyc7XG5cbi8vIERlY29yYXRvcnNcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3InO1xuXG4vLyBTZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9ncmFwaHFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9ncmFwaHFsLW1ldGEuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2dyYXBocWwtcGx1cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZm9ybXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3dzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3Njcm9sbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaW1hZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9icmVhZGNydW1iLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9jbXMuc2VydmljZSc7XG5cbi8vIEVudW1zXG5leHBvcnQgKiBmcm9tICcuL2VudW1zL2NvbXBhcmlzb24tb3BlcmF0b3IuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2VudW1zL2dyYXBocWwtcmVxdWVzdC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9sb2dpY2FsLW9wZXJhdG9yLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9zb3J0LW9yZGVyLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy90b2FzdC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9za2VsZXRvbi10eXBlLmVudW0nO1xuXG4vLyBJbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvYmFzZS1tb2R1bGUtY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY2FuLWNvbXBvbmVudC1kZWFjdGl2YXRlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY29tYmluZWQtZmlsdGVyLWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZmllbGQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9maWVsZC1vYmplY3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9maWx0ZXItaW5wdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLW9wdGlvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLXBsdXMtb3B0aW9ucy5pbnRlcmZhY2VuJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLXR5cGUtY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2dyYXBocWwtZmllbGRzLW9iamVjdC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3NpbmdsZS1maWx0ZXItaW5wdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9zb3J0LWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZmluZC1hcmdzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvdGltZS1jb21wb25lbnRzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvdG9hc3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9icmVhZGNydW1iLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZ3JhcGhxbC1jcnVkLXR5cGUuaW50ZXJmYWNlJztcblxuLy8gVHlwZXNcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvc3RvcmFnZS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvZ3JhcGhxbC1maWVsZHMudHlwZSc7XG5cbi8vIFZhbGlkYXRvcnNcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy9tYXRjaC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0b3JzL2VtYWlsLnZhbGlkYXRvcic7XG5cbi8vIEZ1bmN0aW9uc1xuZXhwb3J0ICogZnJvbSAnLi9mdW5jdGlvbnMvd3MtY2xpZW50LmZ1bmN0aW9uJztcbiJdfQ==
|