ngx-techlify-core 18.5.0 → 18.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/esm2022/lib/access-control-config/access-control-config.service.mjs +7 -1
- package/esm2022/lib/change-password/change-password.component.mjs +1 -1
- package/esm2022/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +16 -7
- package/esm2022/lib/reset-password/index.mjs +4 -0
- package/esm2022/lib/reset-password/reset-password-routing.module.mjs +22 -0
- package/esm2022/lib/reset-password/reset-password.component.mjs +90 -0
- package/esm2022/lib/reset-password/reset-password.module.mjs +49 -0
- package/esm2022/lib/reset-password/reset-password.service.mjs +25 -0
- package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +2 -2
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/ngx-techlify-core.mjs +317 -152
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/access-control-config/access-control-config.service.d.ts +2 -0
- package/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.d.ts +4 -3
- package/lib/reset-password/index.d.ts +3 -0
- package/lib/reset-password/reset-password-routing.module.d.ts +7 -0
- package/lib/reset-password/reset-password.component.d.ts +29 -0
- package/lib/reset-password/reset-password.module.d.ts +14 -0
- package/lib/reset-password/reset-password.service.d.ts +11 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -7,6 +7,12 @@ export class AccessControlConfigService extends TechlifyServiceBaseClass {
|
|
|
7
7
|
super(http, 'access-control-configs');
|
|
8
8
|
this.http = http;
|
|
9
9
|
}
|
|
10
|
+
getConfigsForCurrentClient() {
|
|
11
|
+
return this.http.get(`api/access-control-configs/current-client`);
|
|
12
|
+
}
|
|
13
|
+
getConfigsForEmail(email) {
|
|
14
|
+
return this.http.get(`api/access-control-configs/email`, { params: { 'email': email } });
|
|
15
|
+
}
|
|
10
16
|
getConfigs(filters) {
|
|
11
17
|
return this.http.get(`api/access-control-configs`, { params: filters }).toPromise();
|
|
12
18
|
}
|
|
@@ -28,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28
34
|
providedIn: 'root'
|
|
29
35
|
}]
|
|
30
36
|
}], ctorParameters: () => [{ type: i1.HttpService }] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2FjY2Vzcy1jb250cm9sLWNvbmZpZy9hY2Nlc3MtY29udHJvbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTXpELE1BQU0sT0FBTywwQkFBMkIsU0FBUSx3QkFBd0I7SUFFdEUsWUFDUyxJQUFpQjtRQUV4QixLQUFLLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUM7UUFGL0IsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUcxQixDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBR0QsVUFBVSxDQUFDLE9BQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RGLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBVztRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBVztRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDhCQUE4QixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEYsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsOEJBQThCLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEYsQ0FBQzsrR0EvQlUsMEJBQTBCO21IQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzcyB9IGZyb20gJy4uL2Jhc2UtbW9kZWwnO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbENvbmZpZ1NlcnZpY2UgZXh0ZW5kcyBUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3Mge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBodHRwOiBIdHRwU2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwLCAnYWNjZXNzLWNvbnRyb2wtY29uZmlncycpO1xuICB9XG5cbiAgZ2V0Q29uZmlnc0ZvckN1cnJlbnRDbGllbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYGFwaS9hY2Nlc3MtY29udHJvbC1jb25maWdzL2N1cnJlbnQtY2xpZW50YCk7XG4gIH1cblxuICBnZXRDb25maWdzRm9yRW1haWwoZW1haWw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGBhcGkvYWNjZXNzLWNvbnRyb2wtY29uZmlncy9lbWFpbGAsIHsgcGFyYW1zOiB7ICdlbWFpbCc6IGVtYWlsIH0gfSk7XG4gIH1cblxuXG4gIGdldENvbmZpZ3MoZmlsdGVyczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYGFwaS9hY2Nlc3MtY29udHJvbC1jb25maWdzYCwgeyBwYXJhbXM6IGZpbHRlcnMgfSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBjcmVhdGVDb25maWcoY29uZmlnOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYGFwaS9hY2Nlc3MtY29udHJvbC1jb25maWdzYCwgY29uZmlnKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwZGF0ZUNvbmZpZyhjb25maWc6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGBhcGkvYWNjZXNzLWNvbnRyb2wtY29uZmlncy8ke2NvbmZpZy5pZH1gLCBjb25maWcpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZGVsZXRlQ29uZmlnKGNvbmZpZ0lkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgYXBpL2FjY2Vzcy1jb250cm9sLWNvbmZpZ3MvJHtjb25maWdJZH1gKS50b1Byb21pc2UoKTtcbiAgfVxufVxuIl19
|
|
@@ -78,7 +78,7 @@ export class ChangePasswordComponent {
|
|
|
78
78
|
return this.formValidatorService.getErrorMessage(field, this.passwordResetForm, errorMessages);
|
|
79
79
|
}
|
|
80
80
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordComponent, deps: [{ token: i1.HttpService }, { token: i1.AlertService }, { token: i2.Router }, { token: i3.CurrentUserService }, { token: i4.UntypedFormBuilder }, { token: i1.ErrorHandlerService }, { token: i1.FormValidatorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChangePasswordComponent, selector: "app-change-password", ngImport: i0, template: "<div class=\"h-100 d-flex justify-content-center align-items-center w-100\">\n <div class=\"row w-100\">\n <div class=\"col-lg-6 col-md-8 col-sm-10 col-xs-12 col-12 mx-auto\">\n <mat-card>\n <mat-card-title>\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle>\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">\n {{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">\n {{getErrorMessage('password')}}\n </mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\"\n placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\"\n autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">\n {{getErrorMessage('password_confirmation')}}\n </mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i10.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i10.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i12.PasswordRequirementCheckComponent, selector: "techlify-password-requirement-check", inputs: ["password"] }] }); }
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChangePasswordComponent, selector: "app-change-password", ngImport: i0, template: "<div class=\"h-100 d-flex justify-content-center align-items-center w-100\">\n <div class=\"row w-100\">\n <div class=\"col-lg-6 col-md-8 col-sm-10 col-xs-12 col-12 mx-auto\">\n <mat-card>\n <mat-card-title>\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle>\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">\n {{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">\n {{getErrorMessage('password')}}\n </mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\"\n placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\"\n autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">\n {{getErrorMessage('password_confirmation')}}\n </mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i10.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i10.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i12.PasswordRequirementCheckComponent, selector: "techlify-password-requirement-check", inputs: ["password", "email"] }] }); }
|
|
82
82
|
}
|
|
83
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
@@ -23,25 +23,34 @@ export class PasswordRequirementCheckComponent {
|
|
|
23
23
|
this.showResult = true;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
* Load the access control config for the current client.
|
|
26
|
+
* Load the access control config for the current client or by email.
|
|
27
27
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
getConfiguration() {
|
|
29
|
+
let request;
|
|
30
|
+
if (this.email) {
|
|
31
|
+
request = this.accessControlConfigService.getConfigsForEmail(this.email);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
request = this.accessControlConfigService.getConfigsForCurrentClient();
|
|
35
|
+
}
|
|
36
|
+
request.subscribe({
|
|
30
37
|
next: (response) => {
|
|
31
|
-
this.accessControlConfiguration = AccessControlConfiguration.fromObject(response?.
|
|
38
|
+
this.accessControlConfiguration = AccessControlConfiguration.fromObject(response?.item);
|
|
32
39
|
}
|
|
33
40
|
});
|
|
34
41
|
}
|
|
35
42
|
ngOnInit() {
|
|
36
|
-
this.
|
|
43
|
+
this.getConfiguration();
|
|
37
44
|
}
|
|
38
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasswordRequirementCheckComponent, deps: [{ token: i1.AccessControlConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PasswordRequirementCheckComponent, selector: "techlify-password-requirement-check", inputs: { password: "password" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"alert\"\n style=\"font-size: 12px; padding: 5px;\"\n [ngClass]=\"{ 'alert-success' : result.isValid, 'alert-danger': !result.isValid }\"\n *ngIf=\"showResult\">\n <ul style=\"margin-bottom: 2px; padding-inline-start: 20px;\">\n <li *ngIf=\"accessControlConfiguration?.minPasswordLength > 0\">\n <span [ngClass]=\"{ 'text-success': result.minLength, 'text-danger': !result.minLength }\">\n Minimum Length Requirement: {{ accessControlConfiguration?.minPasswordLength }} Characters\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireNumber\">\n <span [ngClass]=\"{ 'text-success': result.hasNumber, 'text-danger': !result.hasNumber }\">\n Your password is required to add at least 1 number\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireSymbol\">\n <span [ngClass]=\"{ 'text-success': result.hasSymbol, 'text-danger': !result.hasSymbol }\">\n Your password is required to add at least 1 symbol.\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireCapitalLetter\">\n <span [ngClass]=\"{ 'text-success': result.hasCapitalLetter, 'text-danger': !result.hasCapitalLetter }\">\n Your password is required to add at least 1 capital and small letter\n </span>\n </li>\n </ul>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PasswordRequirementCheckComponent, selector: "techlify-password-requirement-check", inputs: { password: "password", email: "email" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"alert\"\n style=\"font-size: 12px; padding: 5px;\"\n [ngClass]=\"{ 'alert-success' : result.isValid, 'alert-danger': !result.isValid }\"\n *ngIf=\"showResult\">\n <ul style=\"margin-bottom: 2px; padding-inline-start: 20px;\">\n <li *ngIf=\"accessControlConfiguration?.minPasswordLength > 0\">\n <span [ngClass]=\"{ 'text-success': result.minLength, 'text-danger': !result.minLength }\">\n Minimum Length Requirement: {{ accessControlConfiguration?.minPasswordLength }} Characters\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireNumber\">\n <span [ngClass]=\"{ 'text-success': result.hasNumber, 'text-danger': !result.hasNumber }\">\n Your password is required to add at least 1 number\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireSymbol\">\n <span [ngClass]=\"{ 'text-success': result.hasSymbol, 'text-danger': !result.hasSymbol }\">\n Your password is required to add at least 1 symbol.\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireCapitalLetter\">\n <span [ngClass]=\"{ 'text-success': result.hasCapitalLetter, 'text-danger': !result.hasCapitalLetter }\">\n Your password is required to add at least 1 capital and small letter\n </span>\n </li>\n </ul>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
40
47
|
}
|
|
41
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasswordRequirementCheckComponent, decorators: [{
|
|
42
49
|
type: Component,
|
|
43
50
|
args: [{ selector: 'techlify-password-requirement-check', template: "<div class=\"alert\"\n style=\"font-size: 12px; padding: 5px;\"\n [ngClass]=\"{ 'alert-success' : result.isValid, 'alert-danger': !result.isValid }\"\n *ngIf=\"showResult\">\n <ul style=\"margin-bottom: 2px; padding-inline-start: 20px;\">\n <li *ngIf=\"accessControlConfiguration?.minPasswordLength > 0\">\n <span [ngClass]=\"{ 'text-success': result.minLength, 'text-danger': !result.minLength }\">\n Minimum Length Requirement: {{ accessControlConfiguration?.minPasswordLength }} Characters\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireNumber\">\n <span [ngClass]=\"{ 'text-success': result.hasNumber, 'text-danger': !result.hasNumber }\">\n Your password is required to add at least 1 number\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireSymbol\">\n <span [ngClass]=\"{ 'text-success': result.hasSymbol, 'text-danger': !result.hasSymbol }\">\n Your password is required to add at least 1 symbol.\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireCapitalLetter\">\n <span [ngClass]=\"{ 'text-success': result.hasCapitalLetter, 'text-danger': !result.hasCapitalLetter }\">\n Your password is required to add at least 1 capital and small letter\n </span>\n </li>\n </ul>\n</div>\n" }]
|
|
44
51
|
}], ctorParameters: () => [{ type: i1.AccessControlConfigService }], propDecorators: { password: [{
|
|
45
52
|
type: Input
|
|
53
|
+
}], email: [{
|
|
54
|
+
type: Input
|
|
46
55
|
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtcmVxdWlyZW1lbnQtY2hlY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFFckcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFTakUsTUFBTSxPQUFPLGlDQUFpQztJQVM1QyxZQUNVLDBCQUFzRDtRQUF0RCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBSmhFLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsV0FBTSxHQUF3QixFQUFFLENBQUM7SUFJN0IsQ0FBQztJQUVMLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELHlCQUF5QjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQjtZQUFFLE9BQU87UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzdHLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQjtRQUNkLElBQUksT0FBd0IsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3pFLENBQUM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ2hCLElBQUksRUFBRSxDQUFDLFFBQWEsRUFBUSxFQUFFO2dCQUM1QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsMEJBQTBCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMxRixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQTVDVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyxrSkNiOUMsazJDQTJCQTs7NEZEZGEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLHFDQUFxQzsrRkFNdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vYWNjZXNzLWNvbnRyb2wtY29uZmlnL2FjY2Vzcy1jb250cm9sLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgUGFzc3dvcmRDaGVja1Jlc3VsdCBmcm9tICcuLi9wYXNzd29yZC1jaGVjay1yZXN1bHQnO1xuaW1wb3J0IHsgUGFzc3dvcmRDaGVja1NlcnZpY2UgfSBmcm9tICcuLi9wYXNzd29yZC1jaGVjay5zZXJ2aWNlJztcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xDb25maWdTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2FjY2Vzcy1jb250cm9sLWNvbmZpZy9hY2Nlc3MtY29udHJvbC1jb25maWcuc2VydmljZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZWNobGlmeS1wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFJlcXVpcmVtZW50Q2hlY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcGFzc3dvcmQ6IHN0cmluZztcbiAgQElucHV0KCkgZW1haWw6IHN0cmluZztcblxuICBhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbjogQWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb247XG4gIHNob3dSZXN1bHQgPSBmYWxzZTtcbiAgcmVzdWx0OiBQYXNzd29yZENoZWNrUmVzdWx0ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZTogQWNjZXNzQ29udHJvbENvbmZpZ1NlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucGFzc3dvcmQpIHtcbiAgICAgIHRoaXMuY2hlY2tQYXNzd29yZFJlcXVpcmVtZW50cygpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrUGFzc3dvcmRSZXF1aXJlbWVudHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWd1cmF0aW9uKSByZXR1cm47XG4gICAgdGhpcy5yZXN1bHQgPSBQYXNzd29yZENoZWNrU2VydmljZS5jaGVja1Bhc3N3b3JkUmVxdWlyZW1lbnRzKHRoaXMucGFzc3dvcmQsIHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb24pO1xuICAgIHRoaXMuc2hvd1Jlc3VsdCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgYWNjZXNzIGNvbnRyb2wgY29uZmlnIGZvciB0aGUgY3VycmVudCBjbGllbnQgb3IgYnkgZW1haWwuXG4gICAqL1xuICBnZXRDb25maWd1cmF0aW9uKCk6IHZvaWQge1xuICAgIGxldCByZXF1ZXN0OiBPYnNlcnZhYmxlPGFueT47XG4gICAgaWYgKHRoaXMuZW1haWwpIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWdTZXJ2aWNlLmdldENvbmZpZ3NGb3JFbWFpbCh0aGlzLmVtYWlsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnc0ZvckN1cnJlbnRDbGllbnQoKTtcbiAgICB9XG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbiA9IEFjY2Vzc0NvbnRyb2xDb25maWd1cmF0aW9uLmZyb21PYmplY3QocmVzcG9uc2U/Lml0ZW0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRDb25maWd1cmF0aW9uKCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImFsZXJ0XCJcbiAgICAgc3R5bGU9XCJmb250LXNpemU6IDEycHg7IHBhZGRpbmc6IDVweDtcIlxuICAgICBbbmdDbGFzc109XCJ7ICdhbGVydC1zdWNjZXNzJyA6IHJlc3VsdC5pc1ZhbGlkLCAnYWxlcnQtZGFuZ2VyJzogIXJlc3VsdC5pc1ZhbGlkIH1cIlxuICAgICAqbmdJZj1cInNob3dSZXN1bHRcIj5cbiAgPHVsIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMnB4OyBwYWRkaW5nLWlubGluZS1zdGFydDogMjBweDtcIj5cbiAgICA8bGkgKm5nSWY9XCJhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbj8ubWluUGFzc3dvcmRMZW5ndGggPiAwXCI+XG4gICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICd0ZXh0LXN1Y2Nlc3MnOiByZXN1bHQubWluTGVuZ3RoLCAndGV4dC1kYW5nZXInOiAhcmVzdWx0Lm1pbkxlbmd0aCB9XCI+XG4gICAgICAgIE1pbmltdW0gTGVuZ3RoIFJlcXVpcmVtZW50OiB7eyBhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbj8ubWluUGFzc3dvcmRMZW5ndGggfX0gQ2hhcmFjdGVyc1xuICAgICAgPC9zcGFuPlxuICAgIDwvbGk+XG4gICAgPGxpICpuZ0lmPVwiYWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb24/LmlzUGFzc3dvcmRSZXF1aXJlTnVtYmVyXCI+XG4gICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICd0ZXh0LXN1Y2Nlc3MnOiByZXN1bHQuaGFzTnVtYmVyLCAndGV4dC1kYW5nZXInOiAhcmVzdWx0Lmhhc051bWJlciB9XCI+XG4gICAgICAgIFlvdXIgcGFzc3dvcmQgaXMgcmVxdWlyZWQgdG8gYWRkIGF0IGxlYXN0IDEgbnVtYmVyXG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nSWY9XCJhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbj8uaXNQYXNzd29yZFJlcXVpcmVTeW1ib2xcIj5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsgJ3RleHQtc3VjY2Vzcyc6IHJlc3VsdC5oYXNTeW1ib2wsICd0ZXh0LWRhbmdlcic6ICFyZXN1bHQuaGFzU3ltYm9sIH1cIj5cbiAgICAgICAgWW91ciBwYXNzd29yZCBpcyByZXF1aXJlZCB0byBhZGQgYXQgbGVhc3QgMSBzeW1ib2wuXG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nSWY9XCJhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbj8uaXNQYXNzd29yZFJlcXVpcmVDYXBpdGFsTGV0dGVyXCI+XG4gICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICd0ZXh0LXN1Y2Nlc3MnOiByZXN1bHQuaGFzQ2FwaXRhbExldHRlciwgJ3RleHQtZGFuZ2VyJzogIXJlc3VsdC5oYXNDYXBpdGFsTGV0dGVyIH1cIj5cbiAgICAgICAgWW91ciBwYXNzd29yZCBpcyByZXF1aXJlZCB0byBhZGQgYXQgbGVhc3QgMSBjYXBpdGFsIGFuZCBzbWFsbCBsZXR0ZXJcbiAgICAgIDwvc3Bhbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './reset-password.service';
|
|
2
|
+
export * from './reset-password.component';
|
|
3
|
+
export * from './reset-password-routing.module';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc2V0LXBhc3N3b3JkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNldC1wYXNzd29yZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmVzZXQtcGFzc3dvcmQtcm91dGluZy5tb2R1bGUnO1xuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { ResetPasswordComponent } from './reset-password.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
const routes = [
|
|
7
|
+
{ path: '**', component: ResetPasswordComponent }
|
|
8
|
+
];
|
|
9
|
+
export class ResetPasswordRoutingModule {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
|
|
12
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
imports: [RouterModule.forChild(routes)],
|
|
18
|
+
exports: [RouterModule],
|
|
19
|
+
providers: []
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFcEUsTUFBTSxNQUFNLEdBQVc7SUFDckIsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRTtDQUNsRCxDQUFDO0FBT0YsTUFBTSxPQUFPLDBCQUEwQjsrR0FBMUIsMEJBQTBCO2dIQUExQiwwQkFBMEIsd0NBSDNCLFlBQVk7Z0hBR1gsMEJBQTBCLFlBSjNCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzRGQUdYLDBCQUEwQjtrQkFMdEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJlc2V0UGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7IHBhdGg6ICcqKicsIGNvbXBvbmVudDogUmVzZXRQYXNzd29yZENvbXBvbmVudCB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBSZXNldFBhc3N3b3JkUm91dGluZ01vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { Validators, UntypedFormControl } from '@angular/forms';
|
|
3
|
+
import { TechlifyFormComponentInterface } from '../base-model';
|
|
4
|
+
import { finalize } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./reset-password.service";
|
|
7
|
+
import * as i2 from "../core";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "../user";
|
|
10
|
+
import * as i5 from "@angular/forms";
|
|
11
|
+
import * as i6 from "../user-config";
|
|
12
|
+
import * as i7 from "@angular/common";
|
|
13
|
+
import * as i8 from "@angular/material/input";
|
|
14
|
+
import * as i9 from "@angular/material/form-field";
|
|
15
|
+
import * as i10 from "@angular/material/button";
|
|
16
|
+
import * as i11 from "@angular/material/icon";
|
|
17
|
+
import * as i12 from "../password-requirement-check/password-requirement-check/password-requirement-check.component";
|
|
18
|
+
export class ResetPasswordComponent extends TechlifyFormComponentInterface {
|
|
19
|
+
constructor(resetPasswordService, alertService, router, currentUserService, fb, formValidatorService, userConfigService, activatedRoute) {
|
|
20
|
+
super(formValidatorService);
|
|
21
|
+
this.resetPasswordService = resetPasswordService;
|
|
22
|
+
this.alertService = alertService;
|
|
23
|
+
this.router = router;
|
|
24
|
+
this.currentUserService = currentUserService;
|
|
25
|
+
this.fb = fb;
|
|
26
|
+
this.formValidatorService = formValidatorService;
|
|
27
|
+
this.userConfigService = userConfigService;
|
|
28
|
+
this.activatedRoute = activatedRoute;
|
|
29
|
+
this.passwordHide = true;
|
|
30
|
+
this.passwordConfirmationHide = true;
|
|
31
|
+
this.isWorking = false;
|
|
32
|
+
this.errorMessages = {
|
|
33
|
+
otp: {
|
|
34
|
+
required: 'OTP is required',
|
|
35
|
+
email: 'Invalid email'
|
|
36
|
+
},
|
|
37
|
+
email: {
|
|
38
|
+
required: 'Email is required',
|
|
39
|
+
email: 'Invalid email'
|
|
40
|
+
},
|
|
41
|
+
password: {
|
|
42
|
+
required: 'New password is required',
|
|
43
|
+
capitalLetter: 'Password should contain at-least 1 capital letter',
|
|
44
|
+
symbol: 'Password should contain at-least 1 symbol',
|
|
45
|
+
digit: 'Password should contain at-least 1 digit',
|
|
46
|
+
minLength: 'Should have minimum length',
|
|
47
|
+
},
|
|
48
|
+
password_confirmation: {
|
|
49
|
+
required: 'Confirm password is required',
|
|
50
|
+
passwordMismatch: 'Password should match'
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this.form = fb.group({
|
|
54
|
+
otp: ['', Validators.required],
|
|
55
|
+
email: ['', [Validators.required, Validators.email]],
|
|
56
|
+
password: new UntypedFormControl('', Validators.required),
|
|
57
|
+
password_confirmation: new UntypedFormControl('', Validators.required),
|
|
58
|
+
});
|
|
59
|
+
this.userConfig = this.userConfigService.getConfig();
|
|
60
|
+
}
|
|
61
|
+
ngOnInit() {
|
|
62
|
+
this.activatedRoute.queryParamMap.subscribe((queryParamMap) => {
|
|
63
|
+
this.form.patchValue({
|
|
64
|
+
otp: queryParamMap.get('otp') ?? '',
|
|
65
|
+
email: queryParamMap.get('email') ?? ''
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
submit() {
|
|
70
|
+
if (!this.form.valid) {
|
|
71
|
+
this.form.markAllAsTouched();
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
this.isWorking = true;
|
|
75
|
+
this.resetPasswordService.store(this.form.value)
|
|
76
|
+
.pipe(finalize(() => this.isWorking = false))
|
|
77
|
+
.subscribe((res) => {
|
|
78
|
+
this.isWorking = false;
|
|
79
|
+
this.alertService.addAlert('Successfully changed your password', 'success');
|
|
80
|
+
this.router.navigate(['/login']);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordComponent, deps: [{ token: i1.ResetPasswordService }, { token: i2.AlertService }, { token: i3.Router }, { token: i4.CurrentUserService }, { token: i5.UntypedFormBuilder }, { token: i2.FormValidatorService }, { token: i6.UserConfigService }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResetPasswordComponent, selector: "app-reset-password", usesInheritance: true, ngImport: i0, template: "<div class=\"h-100 row align-items-center mx-0\">\n <div class=\"col\">\n <header class=\"branding-block mb-0 mt-4\">\n <div class=\"branding text-center\">\n <a *ngIf=\"userConfig.appLogoUrl\" href=\"{{userConfig.appUrl}}\" target=\"_blank\">\n <img class=\"techlify-logo d-inline-block\" [src]=\"userConfig.appLogoUrl\" />\n </a>\n </div>\n <div class=\"product-info text-center mt-2\">\n <h3 class=\"product-name\">{{ userConfig.appName }}</h3>\n </div>\n </header>\n\n <div id=\"login-form-wrapper\"\n class=\"form-bordered mx-auto form-medium form-bordered form-centered form-horizontal mt-3 white-box\"\n style=\"width:550px\">\n\n <h4 class=\"section-title text-center mt-4\">Reset Password</h4>\n\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\" class=\"mt-4\">\n\n <div class=\"form-group row\">\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>Email</mat-label>\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\" autocomplete=\"off\"\n required readonly />\n <mat-error *ngIf=\"isFieldValid('email')\">{{getErrorMessage('email')}}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>OTP</mat-label>\n <input matInput formControlName=\"otp\" placeholder=\"OTP\" type=\"string\" autocomplete=\"off\"\n required />\n <mat-error *ngIf=\"isFieldValid('otp')\">{{getErrorMessage('otp')}}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\" placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">\n {{getErrorMessage('password')}}\n </mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8 mt-3\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\" placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\"\n type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">\n {{getErrorMessage('password_confirmation')}}\n </mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"mt-4 row\">\n <techlify-password-requirement-check class=\"offset-2 col-8\" [password]=\"form.get('password').value\"\n [email]=\"form.get('email').value\"></techlify-password-requirement-check>\n </div>\n\n <div class=\"row mt-4\">\n <div class=\"offset-2 col-8 text-center\">\n <button mat-raised-button color=\"primary\" class=\"w-100\" type=\"submit\" [disabled]=\"isWorking\">\n Submit\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n</div>", styles: ["#login-form-wrapper{margin-top:100px}#login-form-wrapper .branding-block{margin-bottom:60px}#login-form-wrapper .techlify-logo{height:40px;padding-right:10px;bottom:10px;position:relative}#login-form-wrapper .company-name{margin-bottom:0}:host{width:100%}.white-box{background-color:#fff;padding:10px}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.PasswordRequirementCheckComponent, selector: "techlify-password-requirement-check", inputs: ["password", "email"] }] }); }
|
|
85
|
+
}
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordComponent, decorators: [{
|
|
87
|
+
type: Component,
|
|
88
|
+
args: [{ selector: 'app-reset-password', template: "<div class=\"h-100 row align-items-center mx-0\">\n <div class=\"col\">\n <header class=\"branding-block mb-0 mt-4\">\n <div class=\"branding text-center\">\n <a *ngIf=\"userConfig.appLogoUrl\" href=\"{{userConfig.appUrl}}\" target=\"_blank\">\n <img class=\"techlify-logo d-inline-block\" [src]=\"userConfig.appLogoUrl\" />\n </a>\n </div>\n <div class=\"product-info text-center mt-2\">\n <h3 class=\"product-name\">{{ userConfig.appName }}</h3>\n </div>\n </header>\n\n <div id=\"login-form-wrapper\"\n class=\"form-bordered mx-auto form-medium form-bordered form-centered form-horizontal mt-3 white-box\"\n style=\"width:550px\">\n\n <h4 class=\"section-title text-center mt-4\">Reset Password</h4>\n\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\" class=\"mt-4\">\n\n <div class=\"form-group row\">\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>Email</mat-label>\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\" autocomplete=\"off\"\n required readonly />\n <mat-error *ngIf=\"isFieldValid('email')\">{{getErrorMessage('email')}}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>OTP</mat-label>\n <input matInput formControlName=\"otp\" placeholder=\"OTP\" type=\"string\" autocomplete=\"off\"\n required />\n <mat-error *ngIf=\"isFieldValid('otp')\">{{getErrorMessage('otp')}}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\" placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">\n {{getErrorMessage('password')}}\n </mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8 mt-3\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\" placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\"\n type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">\n {{getErrorMessage('password_confirmation')}}\n </mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"mt-4 row\">\n <techlify-password-requirement-check class=\"offset-2 col-8\" [password]=\"form.get('password').value\"\n [email]=\"form.get('email').value\"></techlify-password-requirement-check>\n </div>\n\n <div class=\"row mt-4\">\n <div class=\"offset-2 col-8 text-center\">\n <button mat-raised-button color=\"primary\" class=\"w-100\" type=\"submit\" [disabled]=\"isWorking\">\n Submit\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n</div>", styles: ["#login-form-wrapper{margin-top:100px}#login-form-wrapper .branding-block{margin-bottom:60px}#login-form-wrapper .techlify-logo{height:40px;padding-right:10px;bottom:10px;position:relative}#login-form-wrapper .company-name{margin-bottom:0}:host{width:100%}.white-box{background-color:#fff;padding:10px}\n"] }]
|
|
89
|
+
}], ctorParameters: () => [{ type: i1.ResetPasswordService }, { type: i2.AlertService }, { type: i3.Router }, { type: i4.CurrentUserService }, { type: i5.UntypedFormBuilder }, { type: i2.FormValidatorService }, { type: i6.UserConfigService }, { type: i3.ActivatedRoute }] });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFzQixVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPaEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDhCQUE4QjtJQTRCdEUsWUFDWSxvQkFBMEMsRUFDMUMsWUFBMEIsRUFDMUIsTUFBYyxFQUNmLGtCQUFzQyxFQUNyQyxFQUFzQixFQUN2QixvQkFBMEMsRUFDMUMsaUJBQW9DLEVBQ25DLGNBQThCO1FBRXRDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBVHBCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNmLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDckMsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdkIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQW5DMUMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsNkJBQXdCLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsa0JBQWEsR0FBUTtZQUNqQixHQUFHLEVBQUU7Z0JBQ0QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsS0FBSyxFQUFFLGVBQWU7YUFDekI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0gsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsS0FBSyxFQUFFLGVBQWU7YUFDekI7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsYUFBYSxFQUFFLG1EQUFtRDtnQkFDbEUsTUFBTSxFQUFFLDJDQUEyQztnQkFDbkQsS0FBSyxFQUFFLDBDQUEwQztnQkFDakQsU0FBUyxFQUFFLDRCQUE0QjthQUMxQztZQUNELHFCQUFxQixFQUFFO2dCQUNuQixRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxnQkFBZ0IsRUFBRSx1QkFBdUI7YUFDNUM7U0FDSixDQUFDO1FBYUUsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2pCLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzlCLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELFFBQVEsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFDL0IsVUFBVSxDQUFDLFFBQVEsQ0FDdEI7WUFDRCxxQkFBcUIsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3pFLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBdUIsRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNqQixHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNuQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO2FBQzFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDN0IsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQzthQUM1QyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxvQ0FBb0MsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOytHQXhFUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixpRkNqQm5DLCt5SUEyRU07OzRGRDFETyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbU1hcCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBGb3JtVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEN1cnJlbnRVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXInO1xuaW1wb3J0IHsgVGVjaGxpZnlGb3JtQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBNdWx0aVVzZXJDb25maWcsIFVzZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci1jb25maWcnO1xuaW1wb3J0IHsgUmVzZXRQYXNzd29yZFNlcnZpY2UgfSBmcm9tICcuL3Jlc2V0LXBhc3N3b3JkLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcmVzZXQtcGFzc3dvcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXNldC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZXNldFBhc3N3b3JkQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlGb3JtQ29tcG9uZW50SW50ZXJmYWNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwYXNzd29yZEhpZGUgPSB0cnVlO1xuICAgIHBhc3N3b3JkQ29uZmlybWF0aW9uSGlkZSA9IHRydWU7XG4gICAgaXNXb3JraW5nID0gZmFsc2U7XG4gICAgdXNlckNvbmZpZzogTXVsdGlVc2VyQ29uZmlnO1xuXG4gICAgZXJyb3JNZXNzYWdlczogYW55ID0ge1xuICAgICAgICBvdHA6IHtcbiAgICAgICAgICAgIHJlcXVpcmVkOiAnT1RQIGlzIHJlcXVpcmVkJyxcbiAgICAgICAgICAgIGVtYWlsOiAnSW52YWxpZCBlbWFpbCdcbiAgICAgICAgfSxcbiAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICAgIHJlcXVpcmVkOiAnRW1haWwgaXMgcmVxdWlyZWQnLFxuICAgICAgICAgICAgZW1haWw6ICdJbnZhbGlkIGVtYWlsJ1xuICAgICAgICB9LFxuICAgICAgICBwYXNzd29yZDoge1xuICAgICAgICAgICAgcmVxdWlyZWQ6ICdOZXcgcGFzc3dvcmQgaXMgcmVxdWlyZWQnLFxuICAgICAgICAgICAgY2FwaXRhbExldHRlcjogJ1Bhc3N3b3JkIHNob3VsZCBjb250YWluIGF0LWxlYXN0IDEgY2FwaXRhbCBsZXR0ZXInLFxuICAgICAgICAgICAgc3ltYm9sOiAnUGFzc3dvcmQgc2hvdWxkIGNvbnRhaW4gYXQtbGVhc3QgMSBzeW1ib2wnLFxuICAgICAgICAgICAgZGlnaXQ6ICdQYXNzd29yZCBzaG91bGQgY29udGFpbiBhdC1sZWFzdCAxIGRpZ2l0JyxcbiAgICAgICAgICAgIG1pbkxlbmd0aDogJ1Nob3VsZCBoYXZlIG1pbmltdW0gbGVuZ3RoJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiB7XG4gICAgICAgICAgICByZXF1aXJlZDogJ0NvbmZpcm0gcGFzc3dvcmQgaXMgcmVxdWlyZWQnLFxuICAgICAgICAgICAgcGFzc3dvcmRNaXNtYXRjaDogJ1Bhc3N3b3JkIHNob3VsZCBtYXRjaCdcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZXNldFBhc3N3b3JkU2VydmljZTogUmVzZXRQYXNzd29yZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHB1YmxpYyBjdXJyZW50VXNlclNlcnZpY2U6IEN1cnJlbnRVc2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgICAgICBwdWJsaWMgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdXNlckNvbmZpZ1NlcnZpY2U6IFVzZXJDb25maWdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybVZhbGlkYXRvclNlcnZpY2UpO1xuICAgICAgICB0aGlzLmZvcm0gPSBmYi5ncm91cCh7XG4gICAgICAgICAgICBvdHA6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICBlbWFpbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51c2VyQ29uZmlnID0gdGhpcy51c2VyQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtTWFwLnN1YnNjcmliZSgocXVlcnlQYXJhbU1hcDogUGFyYW1NYXApID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBvdHA6IHF1ZXJ5UGFyYW1NYXAuZ2V0KCdvdHAnKSA/PyAnJyxcbiAgICAgICAgICAgICAgICBlbWFpbDogcXVlcnlQYXJhbU1hcC5nZXQoJ2VtYWlsJykgPz8gJydcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdWJtaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZXNldFBhc3N3b3JkU2VydmljZS5zdG9yZSh0aGlzLmZvcm0udmFsdWUpXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzV29ya2luZyA9IGZhbHNlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnU3VjY2Vzc2Z1bGx5IGNoYW5nZWQgeW91ciBwYXNzd29yZCcsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaC0xMDAgIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgbXgtMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgPGhlYWRlciBjbGFzcz1cImJyYW5kaW5nLWJsb2NrIG1iLTAgbXQtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJyYW5kaW5nIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJ1c2VyQ29uZmlnLmFwcExvZ29VcmxcIiBocmVmPVwie3t1c2VyQ29uZmlnLmFwcFVybH19XCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ0ZWNobGlmeS1sb2dvIGQtaW5saW5lLWJsb2NrXCIgW3NyY109XCJ1c2VyQ29uZmlnLmFwcExvZ29VcmxcIiAvPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtaW5mbyB0ZXh0LWNlbnRlciBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicHJvZHVjdC1uYW1lXCI+e3sgdXNlckNvbmZpZy5hcHBOYW1lIH19PC9oMz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICA8ZGl2IGlkPVwibG9naW4tZm9ybS13cmFwcGVyXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1ib3JkZXJlZCBteC1hdXRvIGZvcm0tbWVkaXVtIGZvcm0tYm9yZGVyZWQgZm9ybS1jZW50ZXJlZCBmb3JtLWhvcml6b250YWwgbXQtMyB3aGl0ZS1ib3hcIlxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDo1NTBweFwiPlxuXG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJzZWN0aW9uLXRpdGxlIHRleHQtY2VudGVyIG10LTRcIj5SZXNldCBQYXNzd29yZDwvaDQ+XG5cbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiIGNsYXNzPVwibXQtNFwiPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm9mZnNldC0yIGNvbC04XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkVtYWlsPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiBwbGFjZWhvbGRlcj1cIkVtYWlsXCIgdHlwZT1cImVtYWlsXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCByZWFkb25seSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnZW1haWwnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKCdlbWFpbCcpfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwib2Zmc2V0LTIgY29sLThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+T1RQPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwib3RwXCIgcGxhY2Vob2xkZXI9XCJPVFBcIiB0eXBlPVwic3RyaW5nXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnb3RwJylcIj57e2dldEVycm9yTWVzc2FnZSgnb3RwJyl9fTwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJvZmZzZXQtMiBjb2wtOFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5OZXcgUGFzc3dvcmQ8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIHBsYWNlaG9sZGVyPVwiTmV3IFBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJwYXNzd29yZEhpZGUgPyAncGFzc3dvcmQnIDogJ3RleHQnXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicGFzc3dvcmRIaWRlID0gIXBhc3N3b3JkSGlkZVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+e3twYXNzd29yZEhpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdwYXNzd29yZCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRFcnJvck1lc3NhZ2UoJ3Bhc3N3b3JkJyl9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+VGhlIG5ldyBwYXNzd29yZCB5b3Ugd291bGQgbGlrZSB0byB1c2UuPC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwib2Zmc2V0LTIgY29sLTggbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Db25maXJtIFBhc3N3b3JkPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRfY29uZmlybWF0aW9uXCIgcGxhY2Vob2xkZXI9XCJDb25maXJtIFBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJwYXNzd29yZENvbmZpcm1hdGlvbkhpZGUgPyAncGFzc3dvcmQnIDogJ3RleHQnXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicGFzc3dvcmRDb25maXJtYXRpb25IaWRlID0gIXBhc3N3b3JkQ29uZmlybWF0aW9uSGlkZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj57e3Bhc3N3b3JkQ29uZmlybWF0aW9uSGlkZSA/ICd2aXNpYmlsaXR5X29mZicgOiAndmlzaWJpbGl0eSd9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3Bhc3N3b3JkX2NvbmZpcm1hdGlvbicpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRFcnJvck1lc3NhZ2UoJ3Bhc3N3b3JkX2NvbmZpcm1hdGlvbicpfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZWNobGlmeS1wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjayBjbGFzcz1cIm9mZnNldC0yIGNvbC04XCIgW3Bhc3N3b3JkXT1cImZvcm0uZ2V0KCdwYXNzd29yZCcpLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlbWFpbF09XCJmb3JtLmdldCgnZW1haWwnKS52YWx1ZVwiPjwvdGVjaGxpZnktcGFzc3dvcmQtcmVxdWlyZW1lbnQtY2hlY2s+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9mZnNldC0yIGNvbC04IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwidy0xMDBcIiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { ResetPasswordRoutingModule } from './reset-password-routing.module';
|
|
5
|
+
import { ResetPasswordComponent } from './reset-password.component';
|
|
6
|
+
import { MaterialModule } from '../material.module';
|
|
7
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
8
|
+
import { MatInputModule } from '@angular/material/input';
|
|
9
|
+
import { PasswordRequirementCheckModule } from '../password-requirement-check/password-requirement-check.module';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class ResetPasswordModule {
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordModule, declarations: [ResetPasswordComponent], imports: [CommonModule,
|
|
14
|
+
FormsModule,
|
|
15
|
+
FlexLayoutModule,
|
|
16
|
+
MatInputModule,
|
|
17
|
+
ReactiveFormsModule,
|
|
18
|
+
MaterialModule,
|
|
19
|
+
ResetPasswordRoutingModule,
|
|
20
|
+
PasswordRequirementCheckModule] }); }
|
|
21
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordModule, imports: [CommonModule,
|
|
22
|
+
FormsModule,
|
|
23
|
+
FlexLayoutModule,
|
|
24
|
+
MatInputModule,
|
|
25
|
+
ReactiveFormsModule,
|
|
26
|
+
MaterialModule,
|
|
27
|
+
ResetPasswordRoutingModule,
|
|
28
|
+
PasswordRequirementCheckModule] }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordModule, decorators: [{
|
|
31
|
+
type: NgModule,
|
|
32
|
+
args: [{
|
|
33
|
+
imports: [
|
|
34
|
+
CommonModule,
|
|
35
|
+
FormsModule,
|
|
36
|
+
FlexLayoutModule,
|
|
37
|
+
MatInputModule,
|
|
38
|
+
ReactiveFormsModule,
|
|
39
|
+
MaterialModule,
|
|
40
|
+
ResetPasswordRoutingModule,
|
|
41
|
+
PasswordRequirementCheckModule
|
|
42
|
+
],
|
|
43
|
+
declarations: [
|
|
44
|
+
ResetPasswordComponent
|
|
45
|
+
],
|
|
46
|
+
providers: []
|
|
47
|
+
}]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUVBQWlFLENBQUM7O0FBbUJqSCxNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixpQkFMNUIsc0JBQXNCLGFBVnRCLFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLDBCQUEwQjtZQUMxQiw4QkFBOEI7Z0hBUXJCLG1CQUFtQixZQWY1QixZQUFZO1lBQ1osV0FBVztZQUNYLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCwwQkFBMEI7WUFDMUIsOEJBQThCOzs0RkFRckIsbUJBQW1CO2tCQWpCL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsMEJBQTBCO3dCQUMxQiw4QkFBOEI7cUJBQy9CO29CQUNELFlBQVksRUFBRTt3QkFDWixzQkFBc0I7cUJBQ3ZCO29CQUNELFNBQVMsRUFBRSxFQUNWO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlc2V0UGFzc3dvcmRSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9yZXNldC1wYXNzd29yZC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBSZXNldFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9yZXNldC1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgUGFzc3dvcmRSZXF1aXJlbWVudENoZWNrTW9kdWxlIH0gZnJvbSAnLi4vcGFzc3dvcmQtcmVxdWlyZW1lbnQtY2hlY2svcGFzc3dvcmQtcmVxdWlyZW1lbnQtY2hlY2subW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgUmVzZXRQYXNzd29yZFJvdXRpbmdNb2R1bGUsXG4gICAgUGFzc3dvcmRSZXF1aXJlbWVudENoZWNrTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJlc2V0UGFzc3dvcmRDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVzZXRQYXNzd29yZE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { TechlifyServiceBaseClass } from "../base-model";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../core/http.service";
|
|
5
|
+
export class ResetPasswordService extends TechlifyServiceBaseClass {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
super(http, 'my-user/reset-password');
|
|
8
|
+
this.http = http;
|
|
9
|
+
}
|
|
10
|
+
//Override the store to skip auth token
|
|
11
|
+
store(model, params) {
|
|
12
|
+
return this.http
|
|
13
|
+
.skipToken()
|
|
14
|
+
.post(`api/${this.baseUrl}`, model, { params });
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordService, providedIn: 'root' }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordService, decorators: [{
|
|
20
|
+
type: Injectable,
|
|
21
|
+
args: [{
|
|
22
|
+
providedIn: 'root'
|
|
23
|
+
}]
|
|
24
|
+
}], ctorParameters: () => [{ type: i1.HttpService }] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVzZXQtcGFzc3dvcmQvcmVzZXQtcGFzc3dvcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTXpELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx3QkFBd0I7SUFFaEUsWUFBbUIsSUFBaUI7UUFDbEMsS0FBSyxDQUFDLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBRHJCLFNBQUksR0FBSixJQUFJLENBQWE7SUFFcEMsQ0FBQztJQUVELHVDQUF1QztJQUN2QyxLQUFLLENBQUMsS0FBVSxFQUFFLE1BQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLFNBQVMsRUFBRTthQUNYLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7K0dBWFUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzIH0gZnJvbSBcIi4uL2Jhc2UtbW9kZWxcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVzZXRQYXNzd29yZFNlcnZpY2UgZXh0ZW5kcyBUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3Mge1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwU2VydmljZSkge1xuICAgIHN1cGVyKGh0dHAsICdteS11c2VyL3Jlc2V0LXBhc3N3b3JkJyk7XG4gIH1cblxuICAvL092ZXJyaWRlIHRoZSBzdG9yZSB0byBza2lwIGF1dGggdG9rZW5cbiAgc3RvcmUobW9kZWw6IGFueSwgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuc2tpcFRva2VuKClcbiAgICAgIC5wb3N0KGBhcGkvJHt0aGlzLmJhc2VVcmx9YCwgbW9kZWwsIHsgcGFyYW1zIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -24,7 +24,7 @@ import * as i9 from "@angular/material/datepicker";
|
|
|
24
24
|
let TimelineFilterComponent = class TimelineFilterComponent {
|
|
25
25
|
static { TimelineFilterComponent_1 = this; }
|
|
26
26
|
set defaultValue(value) {
|
|
27
|
-
this.
|
|
27
|
+
this.value = value;
|
|
28
28
|
}
|
|
29
29
|
get empty() {
|
|
30
30
|
const { value: { select_value } } = this.selectorForm;
|
|
@@ -219,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
219
219
|
}], selectionChange: [{
|
|
220
220
|
type: Output
|
|
221
221
|
}] } });
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGltZWxpbmUtZmlsdGVyL3RpbWVsaW5lLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RpbWVsaW5lLWZpbHRlci90aW1lbGluZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEI7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBS0wsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFlcEMsSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7O0lBQ2xDLElBQWEsWUFBWSxDQUFDLEtBQVU7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ZTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6cmFkaXggKi9cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2VsZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxuICBOZ0NvbnRyb2wsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBUaW1lbGluZVZhbHVlLCBjYWxjdWxhdGVUaW1lbGluZSB9IGZyb20gJy4vY2FsY3VsYXRlLXRpbWVsaW5lJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaW1lbGluZSB9IGZyb20gJy4vdGltZWxpbmUubW9kZWwnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10aW1lbGluZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIERhdGVQaXBlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogVGltZWxpbmVGaWx0ZXJDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgc2V0IGRlZmF1bHRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy50aW1lbGluZVZhbHVlLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBlbXB0eSgpIHtcbiAgICBjb25zdCB7IHZhbHVlOiB7IHNlbGVjdF92YWx1ZSB9IH0gPSB0aGlzLnNlbGVjdG9yRm9ybTtcbiAgICByZXR1cm4gIXNlbGVjdF92YWx1ZTtcbiAgfVxuXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkgeyByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5OyB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7IH1cbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZWxlY3RvckZvcm0/LmdldCgnc2VsZWN0X3ZhbHVlJyk/LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLl9kaXNhYmxlZCA/IHRoaXMuc2VsZWN0b3JGb3JtLmRpc2FibGUoKSA6IHRoaXMuc2VsZWN0b3JGb3JtLmVuYWJsZSgpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLnNlbGVjdG9yRm9ybS52YWxpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JGb3JtLnZhbHVlLnNlbGVjdF92YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHNldCB2YWx1ZShkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdG9yRm9ybS5wYXRjaFZhbHVlKHsgc2VsZWN0X3ZhbHVlOiBwYXJzZUludChkYXRhKSB8fCAnJyB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5jaGFuZ2VUaW1lbGluZShwYXJzZUludChkYXRhKSB8fCAnJyk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicpIHBpY2tlcjogTWF0RGF0ZXBpY2tlcjxhbnk+O1xuICBASW5wdXQoKSB0aW1lbGluZXM6IGFueVtdID0gW1xuICAgIHsgdmFsdWU6IFRpbWVsaW5lLkNVU1RPTSwgdmlld1ZhbHVlOiAnQ3VzdG9tJyB9LFxuICAgIHsgdmFsdWU6IFRpbWVsaW5lLlRPREFZLCB2aWV3VmFsdWU6ICdUb2RheScgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5ZRVNURVJEQVksIHZpZXdWYWx1ZTogJ1llc3RlcmRheScgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5UT01NT1JPVywgdmlld1ZhbHVlOiAnVG9tb3Jyb3cnIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuVEhJU19XRUVLLCB2aWV3VmFsdWU6ICdUaGlzIFdlZWsnIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuTEFTVF9XRUVLLCB2aWV3VmFsdWU6ICdMYXN0IFdlZWsnIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuTkVYVF9XRUVLLCB2aWV3VmFsdWU6ICdOZXh0IFdlZWsnIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuVEhJU19NT05USCwgdmlld1ZhbHVlOiAnVGhpcyBNb250aCcgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5MQVNUX01PTlRILCB2aWV3VmFsdWU6ICdMYXN0IE1vbnRoJyB9LFxuICAgIHsgdmFsdWU6IFRpbWVsaW5lLk5FWFRfTU9OVEgsIHZpZXdWYWx1ZTogJ05leHQgTW9udGgnIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuVEhJU19RVUFSVEVSLCB2aWV3VmFsdWU6ICdUaGlzIFF1YXJ0ZXInIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuTEFTVF9RVUFSVEVSLCB2aWV3VmFsdWU6ICdMYXN0IFF1YXJ0ZXInIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuVEhJU19ZRUFSLCB2aWV3VmFsdWU6ICdUaGlzIFllYXInIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuTEFTVF9ZRUFSLCB2aWV3VmFsdWU6ICdMYXN0IFllYXInIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuQUxMLCB2aWV3VmFsdWU6ICdBbGwgZGF0ZXMnIH0sXG4gIF07XG4gIEBJbnB1dCgpIGRhdGVGcm9tID0gJ2RhdGVfZnJvbSc7XG4gIEBJbnB1dCgpIGRhdGVUbyA9ICdkYXRlX3RvJztcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogYW55ID0gJ2ZpbGwnO1xuICBASW5wdXQoKSBzaG93Q2xlYXJCdXR0b24gPSBmYWxzZTtcbiAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgQElucHV0KCkgbGFiZWxUZXh0ID0gJ1NlbGVjdCBUaW1lbGluZSc7XG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgc2VsZWN0b3JGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBjb250cm9sVHlwZSA9ICd0aW1lbGluZS1maWx0ZXInO1xuICBpZCA9IGB0aW1lbGluZS1maWx0ZXItJHtUaW1lbGluZUZpbHRlckNvbXBvbmVudC5uZXh0SWQrK31gO1xuICBkZXNjcmliZWRCeSA9ICcnO1xuICBmb2N1c2VkID0gZmFsc2U7XG4gIHNob3dDdXN0b21EYXRlRmllbGRzID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyB9O1xuXG4gIGdldCB0aW1lbGluZVZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdG9yRm9ybS5nZXQoJ3NlbGVjdF92YWx1ZScpO1xuICB9XG5cbiAgZ2V0IGN1c3RvbURhdGVGcm9tKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdG9yRm9ybS5nZXQoJ2N1c3RvbV9kYXRlX2Zyb20nKTtcbiAgfVxuXG4gIGdldCBjdXN0b21EYXRlVG8oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JGb3JtLmdldCgnY3VzdG9tX2RhdGVfdG8nKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcbiAgKSB7XG4gICAgdGhpcy5zZWxlY3RvckZvcm0gPSBmb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBzZWxlY3RfdmFsdWU6IFsnJ10sXG4gICAgICBjdXN0b21fZGF0ZV9mcm9tOiBbJyddLFxuICAgICAgY3VzdG9tX2RhdGVfdG86IFsnJ10sXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50aW1lbGluZVZhbHVlLnZhbHVlQ2hhbmdlcy5cbiAgICAgIHBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKS5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy52YWx1ZSA9IHZhbHVlKTtcblxuICAgIHRoaXMuY3VzdG9tRGF0ZUZyb20udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMuc2V0RmllbGRWYWx1ZSh0aGlzLmRhdGVGcm9tLCB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ3l5eXktTU0tZGQnKSkpO1xuXG4gICAgdGhpcy5jdXN0b21EYXRlVG8udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMuc2V0RmllbGRWYWx1ZSh0aGlzLmRhdGVUbywgdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUsICd5eXl5LU1NLWRkJykpKTtcblxuICB9XG5cbiAgcmVzZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZvcm0/LmdldChmaWVsZCk/LnNldFZhbHVlKCcnKTtcbiAgfVxuXG4gIGdldEZpZWxkVmFsdWUoZmllbGQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZvcm0/LmdldChmaWVsZCk/LnZhbHVlO1xuICB9XG5cbiAgc2V0RmllbGRWYWx1ZShmaWVsZDogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5mb3JtPy5nZXQoZmllbGQpPy5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBjaGFuZ2VUaW1lbGluZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7XG4gICAgY29uc3QgdGltZWxpbmUgPSBjYWxjdWxhdGVUaW1lbGluZSh2YWx1ZSwgdGhpcy5kYXRlRnJvbSwgdGhpcy5kYXRlVG8pO1xuICAgIGlmICh0aW1lbGluZSkge1xuICAgICAgdGhpcy5zaG93Q3VzdG9tRGF0ZUZpZWxkcyA9IHRpbWVsaW5lLnNob3dfY3VzdG9tX2ZpZWxkO1xuXG4gICAgICAvL0ZvciBjdXN0b20gdGltZWxpbmUsIHNldCB0aGUgaW5pdGlhbCBmcm9tIHRoZSBwcmV2aW91cyByYW5nZXMgaWYgcHJlc2VudFxuICAgICAgaWYgKHZhbHVlID09IFRpbWVsaW5lLkNVU1RPTSkge1xuICAgICAgICB0aW1lbGluZS5kYXRlX2Zyb20gPSB0aGlzLmdldEZpZWxkVmFsdWUodGhpcy5kYXRlRnJvbSkgPz8gJyc7XG4gICAgICAgIHRpbWVsaW5lLmRhdGVfdG8gPSB0aGlzLmdldEZpZWxkVmFsdWUodGhpcy5kYXRlVG8pID8/ICcnO1xuICAgICAgICB0aGlzLnNlbGVjdG9yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAnY3VzdG9tX2RhdGVfZnJvbSc6IHRpbWVsaW5lLmRhdGVfZnJvbSxcbiAgICAgICAgICAnY3VzdG9tX2RhdGVfdG8nOiB0aW1lbGluZS5kYXRlX3RvLFxuICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldEZpZWxkVmFsdWUodGhpcy5kYXRlRnJvbSwgdGltZWxpbmUuZGF0ZV9mcm9tKTtcbiAgICAgIHRoaXMuc2V0RmllbGRWYWx1ZSh0aGlzLmRhdGVUbywgdGltZWxpbmUuZGF0ZV90byk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aW1lbGluZSk7XG4gIH1cblxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XG4gIH1cblxuICBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBkYXRhO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cInNlbGVjdG9yRm9ybVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3tsYWJlbFRleHR9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RfdmFsdWVcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lbGluZSBvZiB0aW1lbGluZXNcIiBbdmFsdWVdPVwidGltZWxpbmUudmFsdWVcIj5cbiAgICAgICAgICAgICAgICB7e3RpbWVsaW5lLnZpZXdWYWx1ZX19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dDbGVhckJ1dHRvbiAmJiB0aW1lbGluZVZhbHVlLnZhbHVlXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInRpbWVsaW5lVmFsdWUuc2V0VmFsdWUoJycpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDdXN0b21EYXRlRmllbGRzXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgc3R5bGU9XCJ3aWR0aDoyMDBweFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5Gcm9tIERhdGU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjdXN0b21fZGF0ZV9mcm9tXCIgW21hdERhdGVwaWNrZXJdPVwiZnJvbVBpY2tlclwiIChjbGljayk9XCJmcm9tUGlja2VyLm9wZW4oKVwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJGcm9tIERhdGVcIiByZWFkb25seSAvPlxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNmcm9tUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZ2V0RmllbGRWYWx1ZShkYXRlRnJvbSlcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZXNldEZpZWxkVmFsdWUoZGF0ZUZyb20pXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgc3R5bGU9XCJ3aWR0aDoyMDBweFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5UbyBEYXRlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY3VzdG9tX2RhdGVfdG9cIiBbbWF0RGF0ZXBpY2tlcl09XCJ0b1BpY2tlclwiIChjbGljayk9XCJ0b1BpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVG8gRGF0ZVwiIHJlYWRvbmx5IC8+XG4gICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3RvUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZ2V0RmllbGRWYWx1ZShkYXRlVG8pXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXRGaWVsZFZhbHVlKGRhdGVUbylcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGltZWxpbmUtZmlsdGVyL3RpbWVsaW5lLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RpbWVsaW5lLWZpbHRlci90aW1lbGluZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEI7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBS0wsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFlcEMsSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7O0lBQ2xDLElBQWEsWUFBWSxDQUFDLEtBQVU7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QkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6cmFkaXggKi9cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2VsZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxuICBOZ0NvbnRyb2wsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBUaW1lbGluZVZhbHVlLCBjYWxjdWxhdGVUaW1lbGluZSB9IGZyb20gJy4vY2FsY3VsYXRlLXRpbWVsaW5lJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaW1lbGluZSB9IGZyb20gJy4vdGltZWxpbmUubW9kZWwnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10aW1lbGluZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIERhdGVQaXBlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogVGltZWxpbmVGaWx0ZXJDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgc2V0IGRlZmF1bHRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGVtcHR5KCkge1xuICAgIGNvbnN0IHsgdmFsdWU6IHsgc2VsZWN0X3ZhbHVlIH0gfSA9IHRoaXMuc2VsZWN0b3JGb3JtO1xuICAgIHJldHVybiAhc2VsZWN0X3ZhbHVlO1xuICB9XG5cbiAgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7IHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7IH1cblxuICBASW5wdXQoKVxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9yZXF1aXJlZDsgfVxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNlbGVjdG9yRm9ybT8uZ2V0KCdzZWxlY3RfdmFsdWUnKT8uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuX2Rpc2FibGVkID8gdGhpcy5zZWxlY3RvckZvcm0uZGlzYWJsZSgpIDogdGhpcy5zZWxlY3RvckZvcm0uZW5hYmxlKCk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0b3JGb3JtLnZhbGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RvckZvcm0udmFsdWUuc2VsZWN0X3ZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgc2V0IHZhbHVlKGRhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0b3JGb3JtLnBhdGNoVmFsdWUoeyBzZWxlY3RfdmFsdWU6IHBhcnNlSW50KGRhdGEpIHx8ICcnIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLmNoYW5nZVRpbWVsaW5lKHBhcnNlSW50KGRhdGEpIHx8ICcnKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgQFZpZXdDaGlsZCgncGlja2VyJykgcGlja2VyOiBNYXREYXRlcGlja2VyPGFueT47XG4gIEBJbnB1dCgpIHRpbWVsaW5lczogYW55W10gPSBbXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuQ1VTVE9NLCB2aWV3VmFsdWU6ICdDdXN0b20nIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuVE9EQVksIHZpZXdWYWx1ZTogJ1RvZGF5JyB9LFxuICAgIHsgdmFsdWU6IFRpbWVsaW5lLllFU1RFUkRBWSwgdmlld1ZhbHVlOiAnWWVzdGVyZGF5JyB9LFxuICAgIHsgdmFsdWU6IFRpbWVsaW5lLlRPTU1PUk9XLCB2aWV3VmFsdWU6ICdUb21vcnJvdycgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5USElTX1dFRUssIHZpZXdWYWx1ZTogJ1RoaXMgV2VlaycgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5MQVNUX1dFRUssIHZpZXdWYWx1ZTogJ0xhc3QgV2VlaycgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5ORVhUX1dFRUssIHZpZXdWYWx1ZTogJ05leHQgV2VlaycgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5USElTX01PTlRILCB2aWV3VmFsdWU6ICdUaGlzIE1vbnRoJyB9LFxuICAgIHsgdmFsdWU6IFRpbWVsaW5lLkxBU1RfTU9OVEgsIHZpZXdWYWx1ZTogJ0xhc3QgTW9udGgnIH0sXG4gICAgeyB2YWx1ZTogVGltZWxpbmUuTkVYVF9NT05USCwgdmlld1ZhbHVlOiAnTmV4dCBNb250aCcgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5USElTX1FVQVJURVIsIHZpZXdWYWx1ZTogJ1RoaXMgUXVhcnRlcicgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5MQVNUX1FVQVJURVIsIHZpZXdWYWx1ZTogJ0xhc3QgUXVhcnRlcicgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5USElTX1lFQVIsIHZpZXdWYWx1ZTogJ1RoaXMgWWVhcicgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5MQVNUX1lFQVIsIHZpZXdWYWx1ZTogJ0xhc3QgWWVhcicgfSxcbiAgICB7IHZhbHVlOiBUaW1lbGluZS5BTEwsIHZpZXdWYWx1ZTogJ0FsbCBkYXRlcycgfSxcbiAgXTtcbiAgQElucHV0KCkgZGF0ZUZyb20gPSAnZGF0ZV9mcm9tJztcbiAgQElucHV0KCkgZGF0ZVRvID0gJ2RhdGVfdG8nO1xuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBhbnkgPSAnZmlsbCc7XG4gIEBJbnB1dCgpIHNob3dDbGVhckJ1dHRvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBASW5wdXQoKSBsYWJlbFRleHQgPSAnU2VsZWN0IFRpbWVsaW5lJztcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBzZWxlY3RvckZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGNvbnRyb2xUeXBlID0gJ3RpbWVsaW5lLWZpbHRlcic7XG4gIGlkID0gYHRpbWVsaW5lLWZpbHRlci0ke1RpbWVsaW5lRmlsdGVyQ29tcG9uZW50Lm5leHRJZCsrfWA7XG4gIGRlc2NyaWJlZEJ5ID0gJyc7XG4gIGZvY3VzZWQgPSBmYWxzZTtcbiAgc2hvd0N1c3RvbURhdGVGaWVsZHMgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7IH07XG5cbiAgZ2V0IHRpbWVsaW5lVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JGb3JtLmdldCgnc2VsZWN0X3ZhbHVlJyk7XG4gIH1cblxuICBnZXQgY3VzdG9tRGF0ZUZyb20oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JGb3JtLmdldCgnY3VzdG9tX2RhdGVfZnJvbScpO1xuICB9XG5cbiAgZ2V0IGN1c3RvbURhdGVUbygpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvckZvcm0uZ2V0KCdjdXN0b21fZGF0ZV90bycpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxuICApIHtcbiAgICB0aGlzLnNlbGVjdG9yRm9ybSA9IGZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHNlbGVjdF92YWx1ZTogWycnXSxcbiAgICAgIGN1c3RvbV9kYXRlX2Zyb206IFsnJ10sXG4gICAgICBjdXN0b21fZGF0ZV90bzogWycnXSxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWVsaW5lVmFsdWUudmFsdWVDaGFuZ2VzLlxuICAgICAgcGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnZhbHVlID0gdmFsdWUpO1xuXG4gICAgdGhpcy5jdXN0b21EYXRlRnJvbS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5zZXRGaWVsZFZhbHVlKHRoaXMuZGF0ZUZyb20sIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAneXl5eS1NTS1kZCcpKSk7XG5cbiAgICB0aGlzLmN1c3RvbURhdGVUby52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5zZXRGaWVsZFZhbHVlKHRoaXMuZGF0ZVRvLCB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ3l5eXktTU0tZGQnKSkpO1xuXG4gIH1cblxuICByZXNldEZpZWxkVmFsdWUoZmllbGQ6IHN0cmluZykge1xuICAgIHRoaXMuZm9ybT8uZ2V0KGZpZWxkKT8uc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgZ2V0RmllbGRWYWx1ZShmaWVsZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uZ2V0KGZpZWxkKT8udmFsdWU7XG4gIH1cblxuICBzZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmZvcm0/LmdldChmaWVsZCk/LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIGNoYW5nZVRpbWVsaW5lKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlKTtcbiAgICBjb25zdCB0aW1lbGluZSA9IGNhbGN1bGF0ZVRpbWVsaW5lKHZhbHVlLCB0aGlzLmRhdGVGcm9tLCB0aGlzLmRhdGVUbyk7XG4gICAgaWYgKHRpbWVsaW5lKSB7XG4gICAgICB0aGlzLnNob3dDdXN0b21EYXRlRmllbGRzID0gdGltZWxpbmUuc2hvd19jdXN0b21fZmllbGQ7XG5cbiAgICAgIC8vRm9yIGN1c3RvbSB0aW1lbGluZSwgc2V0IHRoZSBpbml0aWFsIGZyb20gdGhlIHByZXZpb3VzIHJhbmdlcyBpZiBwcmVzZW50XG4gICAgICBpZiAodmFsdWUgPT0gVGltZWxpbmUuQ1VTVE9NKSB7XG4gICAgICAgIHRpbWVsaW5lLmRhdGVfZnJvbSA9IHRoaXMuZ2V0RmllbGRWYWx1ZSh0aGlzLmRhdGVGcm9tKSA/PyAnJztcbiAgICAgICAgdGltZWxpbmUuZGF0ZV90byA9IHRoaXMuZ2V0RmllbGRWYWx1ZSh0aGlzLmRhdGVUbykgPz8gJyc7XG4gICAgICAgIHRoaXMuc2VsZWN0b3JGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICdjdXN0b21fZGF0ZV9mcm9tJzogdGltZWxpbmUuZGF0ZV9mcm9tLFxuICAgICAgICAgICdjdXN0b21fZGF0ZV90byc6IHRpbWVsaW5lLmRhdGVfdG8sXG4gICAgICAgIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0RmllbGRWYWx1ZSh0aGlzLmRhdGVGcm9tLCB0aW1lbGluZS5kYXRlX2Zyb20pO1xuICAgICAgdGhpcy5zZXRGaWVsZFZhbHVlKHRoaXMuZGF0ZVRvLCB0aW1lbGluZS5kYXRlX3RvKTtcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRpbWVsaW5lKTtcbiAgfVxuXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoZGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IGRhdGE7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwic2VsZWN0b3JGb3JtXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57e2xhYmVsVGV4dH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInNlbGVjdF92YWx1ZVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRpbWVsaW5lIG9mIHRpbWVsaW5lc1wiIFt2YWx1ZV09XCJ0aW1lbGluZS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7dGltZWxpbmUudmlld1ZhbHVlfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0NsZWFyQnV0dG9uICYmIHRpbWVsaW5lVmFsdWUudmFsdWVcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwidGltZWxpbmVWYWx1ZS5zZXRWYWx1ZSgnJylcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0N1c3RvbURhdGVGaWVsZHNcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIiBzdHlsZT1cIndpZHRoOjIwMHB4XCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPkZyb20gRGF0ZTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImN1c3RvbV9kYXRlX2Zyb21cIiBbbWF0RGF0ZXBpY2tlcl09XCJmcm9tUGlja2VyXCIgKGNsaWNrKT1cImZyb21QaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZyb20gRGF0ZVwiIHJlYWRvbmx5IC8+XG4gICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2Zyb21QaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJnZXRGaWVsZFZhbHVlKGRhdGVGcm9tKVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlc2V0RmllbGRWYWx1ZShkYXRlRnJvbSlcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIiBzdHlsZT1cIndpZHRoOjIwMHB4XCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPlRvIERhdGU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjdXN0b21fZGF0ZV90b1wiIFttYXREYXRlcGlja2VyXT1cInRvUGlja2VyXCIgKGNsaWNrKT1cInRvUGlja2VyLm9wZW4oKVwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUbyBEYXRlXCIgcmVhZG9ubHkgLz5cbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdG9QaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJnZXRGaWVsZFZhbHVlKGRhdGVUbylcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZXNldEZpZWxkVmFsdWUoZGF0ZVRvKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+Il19
|