@bnsights/bbsf-admin-portal 1.0.4 → 1.0.8
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/bnsights-bbsf-admin-portal-1.0.8.tgz +0 -0
- package/bundles/bnsights-bbsf-admin-portal.umd.js +8335 -3660
- package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
- package/esm2015/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.js +2 -2
- package/esm2015/lib/Pages/account/account-routing.module.js +9 -1
- package/esm2015/lib/Pages/account/account.component.js +15 -6
- package/esm2015/lib/Pages/account/account.module.js +19 -8
- package/esm2015/lib/Pages/account/activation/activation.component.js +91 -0
- package/esm2015/lib/Pages/account/forgot-password/forgot-password.component.js +54 -0
- package/esm2015/lib/Pages/account/rest-password/rest-password.component.js +89 -0
- package/esm2015/lib/Pages/account/upload-license/upload-license.component.js +70 -0
- package/esm2015/lib/Pages/configurations/configuration/configuration.component.js +203 -184
- package/esm2015/lib/Pages/core/authentication/auth.guard.js +10 -4
- package/esm2015/lib/Pages/core/authentication/auth.service.js +1 -2
- package/esm2015/lib/Pages/departments/department/department.component.js +12 -9
- package/esm2015/lib/Pages/departments/department-info/department-info.component.js +1 -1
- package/esm2015/lib/Pages/departments/departments.module.js +6 -4
- package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +9 -9
- package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +9 -9
- package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +9 -9
- package/esm2015/lib/Pages/home/home.component.js +2 -2
- package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +1 -1
- package/esm2015/lib/Pages/jobs/jobs/jobs.component.js +1 -1
- package/esm2015/lib/Pages/localizations/localizations.component.js +10 -11
- package/esm2015/lib/Pages/lookups/lookup/lookup.component.js +10 -10
- package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +5 -5
- package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +5 -5
- package/esm2015/lib/Pages/notifications/add/add.component.js +11 -13
- package/esm2015/lib/Pages/notifications/edit/edit.component.js +11 -13
- package/esm2015/lib/Pages/notifications/master-layouts/master-layouts.component.js +1 -1
- package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +5 -5
- package/esm2015/lib/Pages/notifications/templates/templates.component.js +9 -9
- package/esm2015/lib/Pages/providers/provider/provider.component.js +2 -1
- package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +78 -84
- package/esm2015/lib/Pages/roles/permission-set-info/permission-set-info.component.js +1 -1
- package/esm2015/lib/Pages/roles/permissions/permissions.component.js +5 -5
- package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +5 -5
- package/esm2015/lib/Pages/sectors/department-info/department-info.component.js +1 -1
- package/esm2015/lib/Pages/sectors/sector/sector.component.js +5 -5
- package/esm2015/lib/Pages/sectors/sector-info/sector-info.component.js +1 -1
- package/esm2015/lib/Pages/shared/Enums/ConditionRHSType.js +6 -0
- package/esm2015/lib/Pages/shared/Enums/ConfigurationScope.js +8 -0
- package/esm2015/lib/Pages/shared/Enums/ConfigurationType.js +8 -0
- package/esm2015/lib/Pages/shared/Enums/ConfigurationValueSource.js +6 -0
- package/esm2015/lib/Pages/shared/Enums/WFActivityType.js +12 -0
- package/esm2015/lib/Pages/shared/Enums/WFVariableDataType.js +14 -0
- package/esm2015/lib/Pages/shared/Services/AccountService.service.js +41 -0
- package/esm2015/lib/Pages/shared/Services/DepartmentService.service.js +1 -1
- package/esm2015/lib/Pages/shared/Services/WorkFlowVersionService.service.js +24 -0
- package/esm2015/lib/Pages/shared/Services/WorkflowActivityService.service.js +32 -5
- package/esm2015/lib/Pages/shared/Services/WorkflowInstanceService.service.js +24 -0
- package/esm2015/lib/Pages/shared/Services/WorkflowLogVariablesService.service.js +24 -0
- package/esm2015/lib/Pages/shared/Services/WorkflowService.service.js +12 -4
- package/esm2015/lib/Pages/shared/Services/WorkflowVariablesService.service.js +12 -6
- package/esm2015/lib/Pages/shared/models/AccountModels/forgotPasswordModel.js +6 -0
- package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentModel.js +3 -2
- package/esm2015/lib/Pages/shared/models/UserModels/ActivationModel.js +3 -0
- package/esm2015/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.js +8 -0
- package/esm2015/lib/Pages/users/users.component.js +7 -6
- package/esm2015/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.js +535 -0
- package/esm2015/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.js +852 -0
- package/esm2015/lib/Pages/workflows/instance-info/instance-info.component.js +309 -0
- package/esm2015/lib/Pages/workflows/tabs/tabs.component.js +611 -430
- package/esm2015/lib/Pages/workflows/version-info/version-info.component.js +143 -0
- package/esm2015/lib/Pages/workflows/workflow/workflow.component.js +136 -148
- package/esm2015/lib/Pages/workflows/workflows-routing.module.js +9 -1
- package/esm2015/lib/Pages/workflows/workflows.module.js +7 -3
- package/esm2015/lib/masterlayout.component.js +1 -2
- package/esm2015/lib/masterlayout.module.js +2 -4
- package/esm2015/public-api.js +2 -1
- package/fesm2015/bnsights-bbsf-admin-portal.js +7678 -3098
- package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
- package/lib/Pages/account/account.component.d.ts +5 -1
- package/lib/Pages/account/account.module.d.ts +11 -6
- package/lib/Pages/account/activation/activation.component.d.ts +32 -0
- package/lib/Pages/account/forgot-password/forgot-password.component.d.ts +23 -0
- package/lib/Pages/account/rest-password/rest-password.component.d.ts +32 -0
- package/lib/Pages/account/upload-license/upload-license.component.d.ts +25 -0
- package/lib/Pages/configurations/configuration/configuration.component.d.ts +12 -8
- package/lib/Pages/core/authentication/auth.guard.d.ts +1 -0
- package/lib/Pages/departments/department/department.component.d.ts +3 -2
- package/lib/Pages/departments/department-info/department-info.component.d.ts +1 -1
- package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +1 -1
- package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +1 -1
- package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +1 -1
- package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +1 -1
- package/lib/Pages/jobs/jobs/jobs.component.d.ts +6 -6
- package/lib/Pages/localizations/localizations.component.d.ts +1 -1
- package/lib/Pages/lookups/lookup/lookup.component.d.ts +1 -1
- package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +1 -1
- package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +1 -1
- package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +1 -1
- package/lib/Pages/notifications/templates/templates.component.d.ts +1 -1
- package/lib/Pages/providers/provider/provider.component.d.ts +1 -1
- package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +12 -15
- package/lib/Pages/roles/permission-set-info/permission-set-info.component.d.ts +1 -1
- package/lib/Pages/roles/permissions/permissions.component.d.ts +1 -1
- package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +1 -1
- package/lib/Pages/sectors/department-info/department-info.component.d.ts +1 -1
- package/lib/Pages/sectors/sector/sector.component.d.ts +1 -1
- package/lib/Pages/sectors/sector-info/sector-info.component.d.ts +1 -1
- package/lib/Pages/shared/Enums/ConditionRHSType.d.ts +4 -0
- package/lib/Pages/shared/Enums/ConfigurationScope.d.ts +5 -0
- package/lib/Pages/shared/Enums/ConfigurationType.d.ts +6 -0
- package/lib/Pages/shared/Enums/ConfigurationValueSource.d.ts +4 -0
- package/lib/Pages/shared/Enums/WFActivityType.d.ts +10 -0
- package/lib/Pages/shared/Enums/WFVariableDataType.d.ts +12 -0
- package/lib/Pages/shared/Services/AccountService.service.d.ts +17 -0
- package/lib/Pages/shared/Services/ActiveDirectoryService.service.d.ts +8 -8
- package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +7 -7
- package/lib/Pages/shared/Services/DepartmentService.service.d.ts +7 -7
- package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +5 -5
- package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +8 -8
- package/lib/Pages/shared/Services/ImpersonationRuleService.service.d.ts +5 -5
- package/lib/Pages/shared/Services/JobsService.service.d.ts +1 -1
- package/lib/Pages/shared/Services/LicenseService.service.d.ts +2 -2
- package/lib/Pages/shared/Services/LogsService.d.ts +1 -1
- package/lib/Pages/shared/Services/LookupGroupsService.service.d.ts +4 -4
- package/lib/Pages/shared/Services/LookupService.service.d.ts +14 -14
- package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +8 -8
- package/lib/Pages/shared/Services/PermissionsService.service.d.ts +5 -5
- package/lib/Pages/shared/Services/PublicHolidayService.service.d.ts +6 -6
- package/lib/Pages/shared/Services/SectorService.service.d.ts +7 -7
- package/lib/Pages/shared/Services/TemplateService.service.d.ts +20 -20
- package/lib/Pages/shared/Services/WorkFlowVersionService.service.d.ts +10 -0
- package/lib/Pages/shared/Services/WorkflowActivityService.service.d.ts +9 -3
- package/lib/Pages/shared/Services/WorkflowInstanceService.service.d.ts +10 -0
- package/lib/Pages/shared/Services/WorkflowLogVariablesService.service.d.ts +10 -0
- package/lib/Pages/shared/Services/WorkflowService.service.d.ts +5 -3
- package/lib/Pages/shared/Services/WorkflowVariablesService.service.d.ts +5 -4
- package/lib/Pages/shared/Services/localizationsService.service .d.ts +12 -12
- package/lib/Pages/shared/Services/provider.service.d.ts +10 -10
- package/lib/Pages/shared/Services/userService.service.d.ts +14 -14
- package/lib/Pages/shared/models/AccountModels/forgotPasswordModel.d.ts +3 -0
- package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +9 -8
- package/lib/Pages/shared/models/UserModels/ActivationModel.d.ts +10 -0
- package/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.d.ts +13 -0
- package/lib/Pages/users/users.component.d.ts +1 -1
- package/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.d.ts +77 -0
- package/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.d.ts +83 -0
- package/lib/Pages/workflows/instance-info/instance-info.component.d.ts +81 -0
- package/lib/Pages/workflows/tabs/tabs.component.d.ts +73 -80
- package/lib/Pages/workflows/version-info/version-info.component.d.ts +41 -0
- package/lib/Pages/workflows/workflow/workflow.component.d.ts +26 -29
- package/lib/Pages/workflows/workflows.module.d.ts +19 -15
- package/package.json +5 -3
- package/public-api.d.ts +1 -0
- package/src/lib/assets/sass/core/components/_variables.scss +1 -1
- package/src/lib/assets/sass/custom-styles-rtl.scss +5 -0
- package/src/lib/assets/sass/custom-styles.scss +38 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
|
+
import { CustomValidation, FormOptions, InputType, TextBoxOptions } from '@bnsights/bbsf-controls';
|
|
4
|
+
import { ActivationModel } from '../../shared/models/UserModels/ActivationModel';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
import * as i2 from "../../shared/Services/AccountService.service";
|
|
8
|
+
import * as i3 from "@bnsights/bbsf-utilities";
|
|
9
|
+
import * as i4 from "@bnsights/bbsf-controls";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
export class ActivationComponent {
|
|
12
|
+
constructor(activatedRoute, accountService, utilityService, router) {
|
|
13
|
+
this.activatedRoute = activatedRoute;
|
|
14
|
+
this.accountService = accountService;
|
|
15
|
+
this.utilityService = utilityService;
|
|
16
|
+
this.router = router;
|
|
17
|
+
this.ActivationModel = new ActivationModel();
|
|
18
|
+
this.ErrorMessage = null;
|
|
19
|
+
this.UserName = "";
|
|
20
|
+
//activate Model Controls
|
|
21
|
+
this.activateForm = new FormGroup({});
|
|
22
|
+
this.activateFormOptions = new FormOptions;
|
|
23
|
+
this.customValidation = new CustomValidation();
|
|
24
|
+
this.isModelLoaded = false;
|
|
25
|
+
this.getActivateModel = () => {
|
|
26
|
+
let paramArray = [];
|
|
27
|
+
let ResultModel = this.activateForm.value;
|
|
28
|
+
let RestModel = new ActivationModel();
|
|
29
|
+
RestModel.Token = this.Token;
|
|
30
|
+
RestModel.Password = ResultModel.password;
|
|
31
|
+
RestModel.PasswordConfirmation = ResultModel.confirmPassword;
|
|
32
|
+
paramArray.push(RestModel);
|
|
33
|
+
return paramArray;
|
|
34
|
+
};
|
|
35
|
+
this.getActivateFunction = (model) => {
|
|
36
|
+
return this.accountService.activate(model);
|
|
37
|
+
};
|
|
38
|
+
this.onSuccessHandler = (result) => {
|
|
39
|
+
if (result.val)
|
|
40
|
+
this.router.navigate(['/Admin/account/login']);
|
|
41
|
+
};
|
|
42
|
+
this.activatedRoute.params.subscribe(params => {
|
|
43
|
+
this.Token = params['id'];
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
ngOnInit() {
|
|
47
|
+
this.accountService.getActivation(this.Token).subscribe((result) => {
|
|
48
|
+
let model = result;
|
|
49
|
+
this.UserName = model.username;
|
|
50
|
+
if (model.isValid) {
|
|
51
|
+
this.activateForm = new FormGroup({});
|
|
52
|
+
this.activateFormOptions = new FormOptions();
|
|
53
|
+
this.activateFormOptions.FormGroup = this.activateForm;
|
|
54
|
+
this.activateFormOptions.GetModelFunction = this.getActivateModel;
|
|
55
|
+
this.activateFormOptions.ServiceSubmitFunction = this.getActivateFunction;
|
|
56
|
+
this.activateFormOptions.OnSuccessHandler = this.onSuccessHandler;
|
|
57
|
+
this.password = new TextBoxOptions();
|
|
58
|
+
this.password.Name = "password";
|
|
59
|
+
this.password.LabelKey = "password";
|
|
60
|
+
this.password.Type = InputType.Password;
|
|
61
|
+
this.password.IsRequired = true;
|
|
62
|
+
this.customValidation.functionBody = (control) => {
|
|
63
|
+
let Password = this.activateForm.controls["password"].value;
|
|
64
|
+
if (control.value != Password)
|
|
65
|
+
return { 'customerError': true };
|
|
66
|
+
return null;
|
|
67
|
+
};
|
|
68
|
+
this.customValidation.massage = this.utilityService.getResourceValue("PasswordNotMatch");
|
|
69
|
+
this.confirmPassword = new TextBoxOptions();
|
|
70
|
+
this.confirmPassword.Name = "confirmPassword";
|
|
71
|
+
this.confirmPassword.LabelKey = "confirmPassword";
|
|
72
|
+
this.confirmPassword.Type = InputType.Password;
|
|
73
|
+
this.confirmPassword.IsRequired = true;
|
|
74
|
+
this.confirmPassword.CustomValidation = [this.customValidation];
|
|
75
|
+
}
|
|
76
|
+
else
|
|
77
|
+
this.ErrorMessage = model.validationError;
|
|
78
|
+
this.isModelLoaded = true;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
ActivationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ActivationComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.AccountService }, { token: i3.UtilityService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
+
ActivationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ActivationComponent, selector: "lib-activation", ngImport: i0, template: "<div class=\"d-flex flex-column flex-root h-100\">\r\n <!--begin::Authentication - Sign-in -->\r\n <div class=\"d-flex flex-column flex-lg-row flex-column-fluid h-100\">\r\n <!--begin::Aside-->\r\n <div class=\"d-flex flex-column flex-lg-row-auto w-xl-600px positon-xl-relative\"\r\n style=\"background-color: #1E1E2D;\">\r\n <div class=\"d-flex flex-column position-xl-fixed top-0 bottom-0 w-xl-600px scroll-y\">\r\n <div class=\"d-flex flex-row-fluid flex-column text-center p-10 pt-lg-20\">\r\n <!--begin::Logo-->\r\n <img alt=\"Logo\" src=\"./src/assets/images/bnsights-logo.svg\" class=\"h-60px mt-10\">\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Aside-->\r\n <div class=\"d-flex flex-column flex-lg-row-fluid py-10\">\r\n <div class=\"d-flex flex-center flex-column flex-column-fluid\">\r\n <div class=\"w-lg-500px p-10 p-lg-15 mx-auto\">\r\n\r\n <div class=\"form w-100\" novalidate=\"novalidate\" id=\"kt_sign_in_form\">\r\n <div class=\"text-center mb-10\">\r\n <h1 class=\"text-dark mb-3\"> {{UserName}} </h1>\r\n </div>\r\n <BBSF-Form [options]=\"activateFormOptions\" *ngIf=\"ErrorMessage==null &&isModelLoaded\">\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-TextBox [options]=\"password\" [group]=\"activateForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-TextBox [options]=\"confirmPassword\" [group]=\"activateForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"text-center\">\r\n <!--begin::Submit button-->\r\n <button type=\"submit\"\r\n class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Activate\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n <div *ngIf=\"ErrorMessage!=null\">\r\n <ul class=\"alert alert-danger alert-InvalidValidation\">\r\n <li>\r\n {{ErrorMessage}}\r\n </li>\r\n </ul>\r\n <a href=\"/Admin/account/login\"\r\n class=\"link-primary fs-6 fw-bolder d-flex justify-content-end mt-2\"><i\r\n class=\"fas fa-arrow-left\"></i> {{utilityService.getResourceValue(\"Back\")}} </a>\r\n\r\n </div>\r\n </div>\r\n <!--end::Form-->\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i4.ɵv, selector: "BBSF-Form", inputs: ["options"] }, { type: i4.ɵd, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ActivationComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{
|
|
87
|
+
selector: 'lib-activation',
|
|
88
|
+
templateUrl: './activation.component.html',
|
|
89
|
+
}]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.AccountService }, { type: i3.UtilityService }, { type: i1.Router }]; } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2FjY291bnQvYWN0aXZhdGlvbi9hY3RpdmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvYWNjb3VudC9hY3RpdmF0aW9uL2FjdGl2YXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7O0FBT2pGLE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFlBRVksY0FBOEIsRUFDOUIsY0FBOEIsRUFDOUIsY0FBOEIsRUFDOUIsTUFBYztRQUhkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFuQjFCLG9CQUFlLEdBQW9CLElBQUksZUFBZSxFQUFFLENBQUM7UUFDekQsaUJBQVksR0FBVyxJQUFJLENBQUE7UUFDM0IsYUFBUSxHQUFTLEVBQUUsQ0FBQTtRQUduQix5QkFBeUI7UUFDekIsaUJBQVksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQyx3QkFBbUIsR0FBRyxJQUFJLFdBQVcsQ0FBQztRQUd0QyxxQkFB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QUFRO3dCQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO29CQUNuQyxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBRXpGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDO2dCQUNsRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUdqRTs7Z0JBRUMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFBO1lBRTNDLElBQUksQ0FBQyxhQUFhLEdBQUUsSUFBSSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7aUhBekVVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLHNEQ2JoQyxrL0ZBc0RNOzRGRHpDTyxtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtpQkFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDdXN0b21WYWxpZGF0aW9uLCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvVXNlck1vZGVscy9BY3RpdmF0aW9uTW9kZWwnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9BY2NvdW50U2VydmljZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjdGl2YXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3RpdmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2YXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvL1BhZ2UgIGRhdGFcclxuICBUb2tlbjogc3RyaW5nO1xyXG4gIEFjdGl2YXRpb25Nb2RlbDogQWN0aXZhdGlvbk1vZGVsID0gbmV3IEFjdGl2YXRpb25Nb2RlbCgpO1xyXG4gIEVycm9yTWVzc2FnZTogc3RyaW5nID0gbnVsbFxyXG4gIFVzZXJOYW1lOnN0cmluZyA9XCJcIlxyXG5cclxuXHJcbiAgLy9hY3RpdmF0ZSBNb2RlbCBDb250cm9sc1xyXG4gIGFjdGl2YXRlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGFjdGl2YXRlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnM7XHJcbiAgcGFzc3dvcmQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIGNvbmZpcm1QYXNzd29yZDogVGV4dEJveE9wdGlvbnM7XHJcbiAgY3VzdG9tVmFsaWRhdGlvbjogQ3VzdG9tVmFsaWRhdGlvbiA9IG5ldyBDdXN0b21WYWxpZGF0aW9uKCk7XHJcbiAgaXNNb2RlbExvYWRlZDpib29sZWFuPWZhbHNlXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvclxyXG4gICAgKFxyXG4gICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgcHJpdmF0ZSBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXHJcbiAgICAgIHB1YmxpYyAgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICkge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgIHRoaXMuVG9rZW4gPSBwYXJhbXNbJ2lkJ107XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuZ2V0QWN0aXZhdGlvbih0aGlzLlRva2VuKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgbW9kZWwgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIHRoaXMuVXNlck5hbWU9IG1vZGVsLnVzZXJuYW1lXHJcbiAgICAgIGlmIChtb2RlbC5pc1ZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuYWN0aXZhdGVGb3JtXHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZUZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEFjdGl2YXRlTW9kZWw7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZUZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWN0aXZhdGVGdW5jdGlvbjtcclxuICAgICAgICB0aGlzLmFjdGl2YXRlRm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25TdWNjZXNzSGFuZGxlcjtcclxuXHJcblxyXG4gICAgICAgIHRoaXMucGFzc3dvcmQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLnBhc3N3b3JkLk5hbWUgPSBcInBhc3N3b3JkXCI7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZC5MYWJlbEtleSA9IFwicGFzc3dvcmRcIjtcclxuICAgICAgICB0aGlzLnBhc3N3b3JkLlR5cGUgPSBJbnB1dFR5cGUuUGFzc3dvcmQ7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5jdXN0b21WYWxpZGF0aW9uLmZ1bmN0aW9uQm9keSA9IChjb250cm9sKSA9PiB7XHJcbiAgICAgICAgICBsZXQgUGFzc3dvcmQgPSB0aGlzLmFjdGl2YXRlRm9ybS5jb250cm9sc1tcInBhc3N3b3JkXCJdLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgIT0gUGFzc3dvcmQpXHJcbiAgICAgICAgICAgIHJldHVybiB7ICdjdXN0b21lckVycm9yJzogdHJ1ZSB9O1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmN1c3RvbVZhbGlkYXRpb24ubWFzc2FnZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhc3N3b3JkTm90TWF0Y2hcIik7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlybVBhc3N3b3JkID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5jb25maXJtUGFzc3dvcmQuTmFtZSA9IFwiY29uZmlybVBhc3N3b3JkXCI7XHJcbiAgICAgICAgdGhpcy5jb25maXJtUGFzc3dvcmQuTGFiZWxLZXkgPSBcImNvbmZpcm1QYXNzd29yZFwiO1xyXG4gICAgICAgIHRoaXMuY29uZmlybVBhc3N3b3JkLlR5cGUgPSBJbnB1dFR5cGUuUGFzc3dvcmQ7XHJcbiAgICAgICAgdGhpcy5jb25maXJtUGFzc3dvcmQuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jb25maXJtUGFzc3dvcmQuQ3VzdG9tVmFsaWRhdGlvbiA9IFt0aGlzLmN1c3RvbVZhbGlkYXRpb25dO1xyXG5cclxuXHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuRXJyb3JNZXNzYWdlID0gbW9kZWwudmFsaWRhdGlvbkVycm9yXHJcblxyXG4gICAgICB0aGlzLmlzTW9kZWxMb2FkZWQ9IHRydWU7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZhdGVNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5hY3RpdmF0ZUZvcm0udmFsdWU7XHJcbiAgICBsZXQgUmVzdE1vZGVsOkFjdGl2YXRpb25Nb2RlbD0gbmV3IEFjdGl2YXRpb25Nb2RlbCgpO1xyXG4gICAgUmVzdE1vZGVsLlRva2VuPXRoaXMuVG9rZW5cclxuICAgIFJlc3RNb2RlbC5QYXNzd29yZD1SZXN1bHRNb2RlbC5wYXNzd29yZFxyXG4gICAgUmVzdE1vZGVsLlBhc3N3b3JkQ29uZmlybWF0aW9uPVJlc3VsdE1vZGVsLmNvbmZpcm1QYXNzd29yZFxyXG4gICAgcGFyYW1BcnJheS5wdXNoKFJlc3RNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEFjdGl2YXRlRnVuY3Rpb24gPSAobW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFNlcnZpY2UuYWN0aXZhdGUobW9kZWwpXHJcbiAgfVxyXG4gIG9uU3VjY2Vzc0hhbmRsZXIgPSAocmVzdWx0KSA9PiB7XHJcbiAgICBpZiAocmVzdWx0LnZhbClcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vYWNjb3VudC9sb2dpbiddKVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtcm9vdCBoLTEwMFwiPlxyXG4gICAgPCEtLWJlZ2luOjpBdXRoZW50aWNhdGlvbiAtIFNpZ24taW4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbGctcm93IGZsZXgtY29sdW1uLWZsdWlkIGgtMTAwXCI+XHJcbiAgICAgICAgPCEtLWJlZ2luOjpBc2lkZS0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1sZy1yb3ctYXV0byB3LXhsLTYwMHB4IHBvc2l0b24teGwtcmVsYXRpdmVcIlxyXG4gICAgICAgICAgICBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMxRTFFMkQ7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gcG9zaXRpb24teGwtZml4ZWQgdG9wLTAgYm90dG9tLTAgdy14bC02MDBweCBzY3JvbGwteVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdy1mbHVpZCBmbGV4LWNvbHVtbiB0ZXh0LWNlbnRlciBwLTEwIHB0LWxnLTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLWJlZ2luOjpMb2dvLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJMb2dvXCIgc3JjPVwiLi9zcmMvYXNzZXRzL2ltYWdlcy9ibnNpZ2h0cy1sb2dvLnN2Z1wiIGNsYXNzPVwiaC02MHB4IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLWVuZDo6QXNpZGUtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbGctcm93LWZsdWlkIHB5LTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jZW50ZXIgZmxleC1jb2x1bW4gZmxleC1jb2x1bW4tZmx1aWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWxnLTUwMHB4IHAtMTAgcC1sZy0xNSBteC1hdXRvXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtIHctMTAwXCIgbm92YWxpZGF0ZT1cIm5vdmFsaWRhdGVcIiBpZD1cImt0X3NpZ25faW5fZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cInRleHQtZGFyayBtYi0zXCI+IHt7VXNlck5hbWV9fSA8L2gxPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJhY3RpdmF0ZUZvcm1PcHRpb25zXCIgKm5nSWY9XCJFcnJvck1lc3NhZ2U9PW51bGwgJiZpc01vZGVsTG9hZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJwYXNzd29yZFwiIFtncm91cF09XCJhY3RpdmF0ZUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiY29uZmlybVBhc3N3b3JkXCIgW2dyb3VwXT1cImFjdGl2YXRlRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tYmVnaW46OlN1Ym1pdCBidXR0b24tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmF0ZVwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLUZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJFcnJvck1lc3NhZ2UhPW51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlciBhbGVydC1JbnZhbGlkVmFsaWRhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tFcnJvck1lc3NhZ2V9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9BZG1pbi9hY2NvdW50L2xvZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpbmstcHJpbWFyeSBmcy02IGZ3LWJvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0yXCI+PGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtYXJyb3ctbGVmdFwiPjwvaT4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQmFja1wiKX19IDwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS1lbmQ6OkZvcm0tLT5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
|
+
import { FormOptions, InputType, TextBoxOptions } from '@bnsights/bbsf-controls';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@bnsights/bbsf-utilities";
|
|
6
|
+
import * as i2 from "../../shared/Services/AccountService.service";
|
|
7
|
+
import * as i3 from "@angular/router";
|
|
8
|
+
import * as i4 from "@bnsights/bbsf-controls";
|
|
9
|
+
export class ForgotPasswordComponent {
|
|
10
|
+
constructor(utilityService, accountService, router) {
|
|
11
|
+
this.utilityService = utilityService;
|
|
12
|
+
this.accountService = accountService;
|
|
13
|
+
this.router = router;
|
|
14
|
+
//Forgot Model Controls
|
|
15
|
+
this.forgotForm = new FormGroup({});
|
|
16
|
+
this.forgotFormOptions = new FormOptions;
|
|
17
|
+
this.getForgotModel = () => {
|
|
18
|
+
let paramArray = [];
|
|
19
|
+
let ResultModel = this.forgotForm.value;
|
|
20
|
+
paramArray.push(ResultModel.Email);
|
|
21
|
+
return paramArray;
|
|
22
|
+
};
|
|
23
|
+
this.getForgotFunction = (email) => {
|
|
24
|
+
return this.accountService.forgotPassword(email);
|
|
25
|
+
};
|
|
26
|
+
this.onSuccessHandler = (result) => {
|
|
27
|
+
this.router.navigate(['/Admin/account/login']);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
this.forgotForm = new FormGroup({});
|
|
32
|
+
this.forgotFormOptions = new FormOptions();
|
|
33
|
+
this.forgotFormOptions.FormGroup = this.forgotForm;
|
|
34
|
+
this.forgotFormOptions.GetModelFunction = this.getForgotModel;
|
|
35
|
+
this.forgotFormOptions.ServiceSubmitFunction = this.getForgotFunction;
|
|
36
|
+
this.forgotFormOptions.OnSuccessHandler = this.onSuccessHandler;
|
|
37
|
+
this.email = new TextBoxOptions();
|
|
38
|
+
this.email.Value = null;
|
|
39
|
+
this.email.Name = "Email";
|
|
40
|
+
this.email.LabelKey = "Email";
|
|
41
|
+
this.email.Type = InputType.Email;
|
|
42
|
+
this.email.IsRequired = true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
ForgotPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.UtilityService }, { token: i2.AccountService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
+
ForgotPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ForgotPasswordComponent, selector: "lib-forgot-password", ngImport: i0, template: "\r\n<div class=\"d-flex flex-column flex-root h-100\">\r\n <!--begin::Authentication - Sign-in -->\r\n <div class=\"d-flex flex-column flex-lg-row flex-column-fluid h-100\">\r\n <!--begin::Aside-->\r\n <div class=\"d-flex flex-column flex-lg-row-auto w-xl-600px positon-xl-relative\" style=\"background-color: #1E1E2D;\">\r\n <div class=\"d-flex flex-column position-xl-fixed top-0 bottom-0 w-xl-600px scroll-y\">\r\n <div class=\"d-flex flex-row-fluid flex-column text-center p-10 pt-lg-20\">\r\n <!--begin::Logo-->\r\n <img alt=\"Logo\" src=\"./src/assets/images/bnsights-logo.svg\" class=\"h-60px mt-10\">\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Aside-->\r\n <div class=\"d-flex flex-column flex-lg-row-fluid py-10\">\r\n <div class=\"d-flex flex-center flex-column flex-column-fluid\">\r\n <div class=\"w-lg-500px p-10 p-lg-15 mx-auto\">\r\n \r\n <div class=\"form w-100\" novalidate=\"novalidate\" id=\"kt_sign_in_form\" >\r\n <input type=\"hidden\" name=\"ReturnUrl\" value=\"@Model.ReturnUrl\" />\r\n <div class=\"text-center mb-10\">\r\n <h1 class=\"text-dark mb-3\"> {{utilityService.getResourceValue(\"ForgotPassword\")}} ?</h1>\r\n </div>\r\n <BBSF-Form [options]=\"forgotFormOptions\">\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-TextBox [options]=\"email\" [group]=\"forgotForm\"></BBSF-TextBox>\r\n <a href=\"/Admin/account/login\" class=\"link-primary fs-6 fw-bolder d-flex justify-content-end mt-2\"><i class=\"fas fa-arrow-left\"></i> {{utilityService.getResourceValue(\"Back\")}} </a>\r\n \r\n </div>\r\n <div class=\"text-center\">\r\n <!--begin::Submit button-->\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"RestPassword\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n \r\n \r\n </div>\r\n <!--end::Form-->\r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n</div>", components: [{ type: i4.ɵv, selector: "BBSF-Form", inputs: ["options"] }, { type: i4.ɵd, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }] });
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{
|
|
50
|
+
selector: 'lib-forgot-password',
|
|
51
|
+
templateUrl: './forgot-password.component.html',
|
|
52
|
+
}]
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i1.UtilityService }, { type: i2.AccountService }, { type: i3.Router }]; } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvYWNjb3VudC9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvYWNjb3VudC9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFVakYsTUFBTSxPQUFPLHVCQUF1QjtJQU1sQyxZQUNTLGNBQThCLEVBQzdCLGNBQThCLEVBQzlCLE1BQWM7UUFGZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFQeEIsdUJBQXVCO1FBQ3ZCLGVBQVUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixzQkFBaUIsR0FBRyxJQUFJLFdBQVcsQ0FBQztRQTRCcEMsbUJBQWMsR0FBRyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxVQUFVLEdBQVUsRUFBRSxDQUFDO1lBQzNCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQTtRQUVELHNCQUFpQixHQUFHLENBQUMsS0FBSyxFQUFtQixFQUFFO1lBQzdDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbEQsQ0FBQyxDQUFBO1FBRUQscUJBQWdCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQTtRQUNsRCxDQUFDLENBQUE7SUFsQ0csQ0FBQztJQUVMLFFBQVE7UUFFTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQTtRQUNsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM5RCxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3RFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFHaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7O3FIQTlCVSx1QkFBdUI7eUdBQXZCLHVCQUF1QiwyRENicEMsOGtGQTRDTTs0RkQvQk8sdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxrQ0FBa0M7aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvcmdvdFBhc3N3b3JkTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0FjY291bnRNb2RlbHMvZm9yZ290UGFzc3dvcmRNb2RlbCc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0FjY291bnRTZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9yZ290LXBhc3N3b3JkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcmdvdFBhc3N3b3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLy9Gb3Jnb3QgTW9kZWwgQ29udHJvbHNcclxuICBmb3Jnb3RGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZm9yZ290Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnM7XHJcbiAgZW1haWw6IFRleHRCb3hPcHRpb25zO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5mb3Jnb3RGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgdGhpcy5mb3Jnb3RGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5mb3Jnb3RGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmZvcmdvdEZvcm1cclxuICAgIHRoaXMuZm9yZ290Rm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0Rm9yZ290TW9kZWw7XHJcbiAgICB0aGlzLmZvcmdvdEZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0Rm9yZ290RnVuY3Rpb247XHJcbiAgICB0aGlzLmZvcmdvdEZvcm1PcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIgPSB0aGlzLm9uU3VjY2Vzc0hhbmRsZXI7XHJcblxyXG5cclxuICAgIHRoaXMuZW1haWwgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuZW1haWwuVmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5lbWFpbC5OYW1lID0gXCJFbWFpbFwiO1xyXG4gICAgdGhpcy5lbWFpbC5MYWJlbEtleSA9IFwiRW1haWxcIjtcclxuICAgIHRoaXMuZW1haWwuVHlwZSA9IElucHV0VHlwZS5FbWFpbDtcclxuICAgIHRoaXMuZW1haWwuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRGb3Jnb3RNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5mb3Jnb3RGb3JtLnZhbHVlO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKFJlc3VsdE1vZGVsLkVtYWlsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9yZ290RnVuY3Rpb24gPSAoZW1haWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFNlcnZpY2UuZm9yZ290UGFzc3dvcmQoZW1haWwpXHJcbiAgfVxyXG5cclxuICBvblN1Y2Nlc3NIYW5kbGVyID0gKHJlc3VsdCkgPT4ge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9BZG1pbi9hY2NvdW50L2xvZ2luJ10pXHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LXJvb3QgaC0xMDBcIj5cclxuICAgIDwhLS1iZWdpbjo6QXV0aGVudGljYXRpb24gLSBTaWduLWluIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdyBmbGV4LWNvbHVtbi1mbHVpZCBoLTEwMFwiPlxyXG4gICAgICAgIDwhLS1iZWdpbjo6QXNpZGUtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbGctcm93LWF1dG8gdy14bC02MDBweCBwb3NpdG9uLXhsLXJlbGF0aXZlXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMUUxRTJEO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHBvc2l0aW9uLXhsLWZpeGVkIHRvcC0wIGJvdHRvbS0wIHcteGwtNjAwcHggc2Nyb2xsLXlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3ctZmx1aWQgZmxleC1jb2x1bW4gdGV4dC1jZW50ZXIgcC0xMCBwdC1sZy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6TG9nby0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiTG9nb1wiIHNyYz1cIi4vc3JjL2Fzc2V0cy9pbWFnZXMvYm5zaWdodHMtbG9nby5zdmdcIiBjbGFzcz1cImgtNjBweCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1lbmQ6OkFzaWRlLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdy1mbHVpZCBweS0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY2VudGVyIGZsZXgtY29sdW1uIGZsZXgtY29sdW1uLWZsdWlkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1sZy01MDBweCBwLTEwIHAtbGctMTUgbXgtYXV0b1wiPlxyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybSB3LTEwMFwiIG5vdmFsaWRhdGU9XCJub3ZhbGlkYXRlXCIgaWQ9XCJrdF9zaWduX2luX2Zvcm1cIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJSZXR1cm5VcmxcIiB2YWx1ZT1cIkBNb2RlbC5SZXR1cm5VcmxcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwidGV4dC1kYXJrIG1iLTNcIj4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRm9yZ290UGFzc3dvcmRcIil9fSA/PC9oMT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJmb3Jnb3RGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlbWFpbFwiIFtncm91cF09XCJmb3Jnb3RGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvQWRtaW4vYWNjb3VudC9sb2dpblwiIGNsYXNzPVwibGluay1wcmltYXJ5IGZzLTYgZnctYm9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTJcIj48aSBjbGFzcz1cImZhcyBmYS1hcnJvdy1sZWZ0XCI+PC9pPiB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJCYWNrXCIpfX0gIDwvYT5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tYmVnaW46OlN1Ym1pdCBidXR0b24tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVzdFBhc3N3b3JkXCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1Gb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLWVuZDo6Rm9ybS0tPlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
|
+
import { CustomValidation, FormOptions, InputType, TextBoxOptions } from '@bnsights/bbsf-controls';
|
|
4
|
+
import { ActivationModel } from '../../shared/models/UserModels/ActivationModel';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
import * as i2 from "../../shared/Services/AccountService.service";
|
|
8
|
+
import * as i3 from "@bnsights/bbsf-utilities";
|
|
9
|
+
import * as i4 from "@bnsights/bbsf-controls";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
export class RestPasswordComponent {
|
|
12
|
+
constructor(activatedRoute, accountService, utilityService, router) {
|
|
13
|
+
this.activatedRoute = activatedRoute;
|
|
14
|
+
this.accountService = accountService;
|
|
15
|
+
this.utilityService = utilityService;
|
|
16
|
+
this.router = router;
|
|
17
|
+
this.ActivationModel = new ActivationModel();
|
|
18
|
+
this.ErrorMessage = null;
|
|
19
|
+
//rest Model Controls
|
|
20
|
+
this.restForm = new FormGroup({});
|
|
21
|
+
this.restFormOptions = new FormOptions;
|
|
22
|
+
this.customValidation = new CustomValidation();
|
|
23
|
+
this.isModelLoaded = false;
|
|
24
|
+
this.getRestModel = () => {
|
|
25
|
+
let paramArray = [];
|
|
26
|
+
let ResultModel = this.restForm.value;
|
|
27
|
+
let RestModel = new ActivationModel();
|
|
28
|
+
RestModel.Token = this.Token;
|
|
29
|
+
RestModel.Password = ResultModel.password;
|
|
30
|
+
RestModel.PasswordConfirmation = ResultModel.confirmPassword;
|
|
31
|
+
paramArray.push(RestModel);
|
|
32
|
+
return paramArray;
|
|
33
|
+
};
|
|
34
|
+
this.getRestFunction = (model) => {
|
|
35
|
+
return this.accountService.resetPassword(model);
|
|
36
|
+
};
|
|
37
|
+
this.onSuccessHandler = (result) => {
|
|
38
|
+
if (result.val)
|
|
39
|
+
this.router.navigate(['/Admin/account/login']);
|
|
40
|
+
};
|
|
41
|
+
this.activatedRoute.params.subscribe(params => {
|
|
42
|
+
this.Token = params['id'];
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
this.accountService.getResetPassword(this.Token).subscribe((result) => {
|
|
47
|
+
let model = result;
|
|
48
|
+
if (model.isValid) {
|
|
49
|
+
this.restForm = new FormGroup({});
|
|
50
|
+
this.restFormOptions = new FormOptions();
|
|
51
|
+
this.restFormOptions.FormGroup = this.restForm;
|
|
52
|
+
this.restFormOptions.GetModelFunction = this.getRestModel;
|
|
53
|
+
this.restFormOptions.ServiceSubmitFunction = this.getRestFunction;
|
|
54
|
+
this.restFormOptions.OnSuccessHandler = this.onSuccessHandler;
|
|
55
|
+
this.password = new TextBoxOptions();
|
|
56
|
+
this.password.Name = "password";
|
|
57
|
+
this.password.LabelKey = "password";
|
|
58
|
+
this.password.Type = InputType.Password;
|
|
59
|
+
this.password.IsRequired = true;
|
|
60
|
+
this.customValidation.functionBody = (control) => {
|
|
61
|
+
let Password = this.restForm.controls["password"].value;
|
|
62
|
+
if (control.value != Password)
|
|
63
|
+
return { 'customerError': true };
|
|
64
|
+
return null;
|
|
65
|
+
};
|
|
66
|
+
this.customValidation.massage = this.utilityService.getResourceValue("PasswordNotMatch");
|
|
67
|
+
this.confirmPassword = new TextBoxOptions();
|
|
68
|
+
this.confirmPassword.Name = "confirmPassword";
|
|
69
|
+
this.confirmPassword.LabelKey = "confirmPassword";
|
|
70
|
+
this.confirmPassword.Type = InputType.Password;
|
|
71
|
+
this.confirmPassword.IsRequired = true;
|
|
72
|
+
this.confirmPassword.CustomValidation = [this.customValidation];
|
|
73
|
+
}
|
|
74
|
+
else
|
|
75
|
+
this.ErrorMessage = model.validationError;
|
|
76
|
+
this.isModelLoaded = true;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
RestPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RestPasswordComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.AccountService }, { token: i3.UtilityService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
RestPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RestPasswordComponent, selector: "lib-rest-password", ngImport: i0, template: "<div class=\"d-flex flex-column flex-root h-100\">\r\n <!--begin::Authentication - Sign-in -->\r\n <div class=\"d-flex flex-column flex-lg-row flex-column-fluid h-100\">\r\n <!--begin::Aside-->\r\n <div class=\"d-flex flex-column flex-lg-row-auto w-xl-600px positon-xl-relative\"\r\n style=\"background-color: #1E1E2D;\">\r\n <div class=\"d-flex flex-column position-xl-fixed top-0 bottom-0 w-xl-600px scroll-y\">\r\n <div class=\"d-flex flex-row-fluid flex-column text-center p-10 pt-lg-20\">\r\n <!--begin::Logo-->\r\n <img alt=\"Logo\" src=\"./src/assets/images/bnsights-logo.svg\" class=\"h-60px mt-10\">\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Aside-->\r\n <div class=\"d-flex flex-column flex-lg-row-fluid py-10\">\r\n <div class=\"d-flex flex-center flex-column flex-column-fluid\">\r\n <div class=\"w-lg-500px p-10 p-lg-15 mx-auto\">\r\n\r\n <div class=\"form w-100\" novalidate=\"novalidate\" id=\"kt_sign_in_form\">\r\n <div class=\"text-center mb-10\">\r\n <h1 class=\"text-dark mb-3\"> {{utilityService.getResourceValue(\"RestPassword\")}} ?</h1>\r\n </div>\r\n <BBSF-Form [options]=\"restFormOptions\" *ngIf=\"ErrorMessage==null &&isModelLoaded\">\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-TextBox [options]=\"password\" [group]=\"restForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-TextBox [options]=\"confirmPassword\" [group]=\"restForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"text-center\">\r\n <!--begin::Submit button-->\r\n <button type=\"submit\"\r\n class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SetPassword\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n <div *ngIf=\"ErrorMessage!=null\">\r\n <ul class=\"alert alert-danger alert-InvalidValidation\">\r\n <li>\r\n {{ErrorMessage}}\r\n </li>\r\n </ul>\r\n <a href=\"/Admin/account/login\"\r\n class=\"link-primary fs-6 fw-bolder d-flex justify-content-end mt-2\"><i\r\n class=\"fas fa-arrow-left\"></i> {{utilityService.getResourceValue(\"Back\")}} </a>\r\n\r\n </div>\r\n </div>\r\n <!--end::Form-->\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i4.ɵv, selector: "BBSF-Form", inputs: ["options"] }, { type: i4.ɵd, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RestPasswordComponent, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{
|
|
85
|
+
selector: 'lib-rest-password',
|
|
86
|
+
templateUrl: './rest-password.component.html',
|
|
87
|
+
}]
|
|
88
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.AccountService }, { type: i3.UtilityService }, { type: i1.Router }]; } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1wYXNzd29yZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2FjY291bnQvcmVzdC1wYXNzd29yZC9yZXN0LXBhc3N3b3JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvYWNjb3VudC9yZXN0LXBhc3N3b3JkL3Jlc3QtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7O0FBT2pGLE1BQU0sT0FBTyxxQkFBcUI7SUFpQmhDLFlBRVksY0FBOEIsRUFDOUIsY0FBOEIsRUFDOUIsY0FBOEIsRUFDOUIsTUFBYztRQUhkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFsQjFCLG9CQUFlLEdBQW9CLElBQUksZUFBZSxFQUFFLENBQUM7UUFDekQsaUJBQVksR0FBVyxJQUFJLENBQUE7UUFHM0IscUJBQXFCO1FBQ3JCLGFBQVEsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixvQkFBZSxHQUFHLElBQUksV0FBVyxDQUFDO1FBR2xDLHFCQUFnQixHQUFxQixJQUFJ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LENBQUMsQ0FBQztnQkFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFFekYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBR2pFOztnQkFFQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7WUFFM0MsSUFBSSxDQUFDLGFBQWEsR0FBRSxJQUFJLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzttSEF4RVUscUJBQXFCO3VHQUFyQixxQkFBcUIseURDZGxDLG1oR0FzRE07NEZEeENPLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixXQUFXLEVBQUUsZ0NBQWdDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDdXN0b21WYWxpZGF0aW9uLCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvVXNlck1vZGVscy9BY3RpdmF0aW9uTW9kZWwnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9BY2NvdW50U2VydmljZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXJlc3QtcGFzc3dvcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc3RQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vUGFnZSAgZGF0YVxyXG4gIFRva2VuOiBzdHJpbmc7XHJcbiAgQWN0aXZhdGlvbk1vZGVsOiBBY3RpdmF0aW9uTW9kZWwgPSBuZXcgQWN0aXZhdGlvbk1vZGVsKCk7XHJcbiAgRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBudWxsXHJcblxyXG5cclxuICAvL3Jlc3QgTW9kZWwgQ29udHJvbHNcclxuICByZXN0Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHJlc3RGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucztcclxuICBwYXNzd29yZDogVGV4dEJveE9wdGlvbnM7XHJcbiAgY29uZmlybVBhc3N3b3JkOiBUZXh0Qm94T3B0aW9ucztcclxuICBjdXN0b21WYWxpZGF0aW9uOiBDdXN0b21WYWxpZGF0aW9uID0gbmV3IEN1c3RvbVZhbGlkYXRpb24oKTtcclxuICBpc01vZGVsTG9hZGVkOmJvb2xlYW49ZmFsc2VcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yXHJcbiAgICAoXHJcbiAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICBwcml2YXRlIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcclxuICAgICAgcHVibGljICB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy5Ub2tlbiA9IHBhcmFtc1snaWQnXTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG5cclxuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuZ2V0UmVzZXRQYXNzd29yZCh0aGlzLlRva2VuKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgbW9kZWwgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIGlmIChtb2RlbC5pc1ZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5yZXN0Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgICAgICB0aGlzLnJlc3RGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMucmVzdEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMucmVzdEZvcm1cclxuICAgICAgICB0aGlzLnJlc3RGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRSZXN0TW9kZWw7XHJcbiAgICAgICAgdGhpcy5yZXN0Rm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRSZXN0RnVuY3Rpb247XHJcbiAgICAgICAgdGhpcy5yZXN0Rm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25TdWNjZXNzSGFuZGxlcjtcclxuXHJcblxyXG4gICAgICAgIHRoaXMucGFzc3dvcmQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLnBhc3N3b3JkLk5hbWUgPSBcInBhc3N3b3JkXCI7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZC5MYWJlbEtleSA9IFwicGFzc3dvcmRcIjtcclxuICAgICAgICB0aGlzLnBhc3N3b3JkLlR5cGUgPSBJbnB1dFR5cGUuUGFzc3dvcmQ7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5jdXN0b21WYWxpZGF0aW9uLmZ1bmN0aW9uQm9keSA9IChjb250cm9sKSA9PiB7XHJcbiAgICAgICAgICBsZXQgUGFzc3dvcmQgPSB0aGlzLnJlc3RGb3JtLmNvbnRyb2xzW1wicGFzc3dvcmRcIl0udmFsdWU7XHJcbiAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSAhPSBQYXNzd29yZClcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ2N1c3RvbWVyRXJyb3InOiB0cnVlIH07XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuY3VzdG9tVmFsaWRhdGlvbi5tYXNzYWdlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGFzc3dvcmROb3RNYXRjaFwiKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb25maXJtUGFzc3dvcmQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZC5OYW1lID0gXCJjb25maXJtUGFzc3dvcmRcIjtcclxuICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZC5MYWJlbEtleSA9IFwiY29uZmlybVBhc3N3b3JkXCI7XHJcbiAgICAgICAgdGhpcy5jb25maXJtUGFzc3dvcmQuVHlwZSA9IElucHV0VHlwZS5QYXNzd29yZDtcclxuICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZC5DdXN0b21WYWxpZGF0aW9uID0gW3RoaXMuY3VzdG9tVmFsaWRhdGlvbl07XHJcblxyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5FcnJvck1lc3NhZ2UgPSBtb2RlbC52YWxpZGF0aW9uRXJyb3JcclxuXHJcbiAgICAgIHRoaXMuaXNNb2RlbExvYWRlZD0gdHJ1ZTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRSZXN0TW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMucmVzdEZvcm0udmFsdWU7XHJcbiAgICBsZXQgUmVzdE1vZGVsOkFjdGl2YXRpb25Nb2RlbD0gbmV3IEFjdGl2YXRpb25Nb2RlbCgpO1xyXG4gICAgUmVzdE1vZGVsLlRva2VuPXRoaXMuVG9rZW5cclxuICAgIFJlc3RNb2RlbC5QYXNzd29yZD1SZXN1bHRNb2RlbC5wYXNzd29yZFxyXG4gICAgUmVzdE1vZGVsLlBhc3N3b3JkQ29uZmlybWF0aW9uPVJlc3VsdE1vZGVsLmNvbmZpcm1QYXNzd29yZFxyXG4gICAgcGFyYW1BcnJheS5wdXNoKFJlc3RNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldFJlc3RGdW5jdGlvbiA9IChtb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50U2VydmljZS5yZXNldFBhc3N3b3JkKG1vZGVsKVxyXG4gIH1cclxuICBvblN1Y2Nlc3NIYW5kbGVyID0gKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYgKHJlc3VsdC52YWwpXHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL0FkbWluL2FjY291bnQvbG9naW4nXSlcclxuXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LXJvb3QgaC0xMDBcIj5cclxuICAgIDwhLS1iZWdpbjo6QXV0aGVudGljYXRpb24gLSBTaWduLWluIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdyBmbGV4LWNvbHVtbi1mbHVpZCBoLTEwMFwiPlxyXG4gICAgICAgIDwhLS1iZWdpbjo6QXNpZGUtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbGctcm93LWF1dG8gdy14bC02MDBweCBwb3NpdG9uLXhsLXJlbGF0aXZlXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMUUxRTJEO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHBvc2l0aW9uLXhsLWZpeGVkIHRvcC0wIGJvdHRvbS0wIHcteGwtNjAwcHggc2Nyb2xsLXlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3ctZmx1aWQgZmxleC1jb2x1bW4gdGV4dC1jZW50ZXIgcC0xMCBwdC1sZy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6TG9nby0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiTG9nb1wiIHNyYz1cIi4vc3JjL2Fzc2V0cy9pbWFnZXMvYm5zaWdodHMtbG9nby5zdmdcIiBjbGFzcz1cImgtNjBweCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1lbmQ6OkFzaWRlLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdy1mbHVpZCBweS0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY2VudGVyIGZsZXgtY29sdW1uIGZsZXgtY29sdW1uLWZsdWlkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1sZy01MDBweCBwLTEwIHAtbGctMTUgbXgtYXV0b1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybSB3LTEwMFwiIG5vdmFsaWRhdGU9XCJub3ZhbGlkYXRlXCIgaWQ9XCJrdF9zaWduX2luX2Zvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJ0ZXh0LWRhcmsgbWItM1wiPiB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSZXN0UGFzc3dvcmRcIil9fSA/PC9oMT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwicmVzdEZvcm1PcHRpb25zXCIgKm5nSWY9XCJFcnJvck1lc3NhZ2U9PW51bGwgJiZpc01vZGVsTG9hZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJwYXNzd29yZFwiIFtncm91cF09XCJyZXN0Rm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJjb25maXJtUGFzc3dvcmRcIiBbZ3JvdXBdPVwicmVzdEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLWJlZ2luOjpTdWJtaXQgYnV0dG9uLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2V0UGFzc3dvcmRcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1Gb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiRXJyb3JNZXNzYWdlIT1udWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXIgYWxlcnQtSW52YWxpZFZhbGlkYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7RXJyb3JNZXNzYWdlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvQWRtaW4vYWNjb3VudC9sb2dpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaW5rLXByaW1hcnkgZnMtNiBmdy1ib2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtMlwiPjxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLWFycm93LWxlZnRcIj48L2k+IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkJhY2tcIil9fSA8L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tZW5kOjpGb3JtLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
|
+
import { FileType, FileUploadOptions, FormOptions } from '@bnsights/bbsf-controls';
|
|
4
|
+
import { LicenseModel } from '../../shared/models/LicenseModel/LicenseModel';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../shared/Services/AccountService.service";
|
|
7
|
+
import * as i2 from "@bnsights/bbsf-utilities";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "@bnsights/bbsf-controls";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
export class UploadLicenseComponent {
|
|
12
|
+
constructor(accountService, utilityService, router) {
|
|
13
|
+
this.accountService = accountService;
|
|
14
|
+
this.utilityService = utilityService;
|
|
15
|
+
this.router = router;
|
|
16
|
+
//Page data
|
|
17
|
+
this.ErrorMessage = null;
|
|
18
|
+
//Upload Model Controls
|
|
19
|
+
this.uploadFileForm = new FormGroup({});
|
|
20
|
+
this.getAddLicenseModel = () => {
|
|
21
|
+
let paramArray = [];
|
|
22
|
+
let ResultModel = this.uploadFileForm.value;
|
|
23
|
+
let Model = new LicenseModel();
|
|
24
|
+
Model.LicenseFile = {
|
|
25
|
+
FileBase64: ResultModel["LicenseFileInput"].File.FileBase64,
|
|
26
|
+
FileName: ResultModel["LicenseFileInput"].File.FileName,
|
|
27
|
+
FileSizeInMB: ResultModel["LicenseFileInput"].File.FileSizeInMB,
|
|
28
|
+
FileType: ResultModel["LicenseFileInput"].File.FileType
|
|
29
|
+
};
|
|
30
|
+
paramArray.push(Model);
|
|
31
|
+
return paramArray;
|
|
32
|
+
};
|
|
33
|
+
this.getAddLicenseFunction = (Model) => {
|
|
34
|
+
return this.accountService.uploadLicense(Model);
|
|
35
|
+
};
|
|
36
|
+
this.onSuccessHandler = (result) => {
|
|
37
|
+
if (result.val)
|
|
38
|
+
this.router.navigate(['/Admin/account/login']);
|
|
39
|
+
};
|
|
40
|
+
this.onErrorHandler = (err) => {
|
|
41
|
+
this.ErrorMessage = `An error occurred: ${err.error}`;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
ngOnInit() {
|
|
45
|
+
this.uploadFileForm = new FormGroup({});
|
|
46
|
+
this.uploadFileForm.reset();
|
|
47
|
+
this.uploadFileFormOptions = new FormOptions();
|
|
48
|
+
this.uploadFileFormOptions.FormGroup = this.uploadFileForm;
|
|
49
|
+
this.uploadFileFormOptions.GetModelFunction = this.getAddLicenseModel;
|
|
50
|
+
this.uploadFileFormOptions.ServiceSubmitFunction = this.getAddLicenseFunction;
|
|
51
|
+
this.uploadFileFormOptions.OnSuccessHandler = this.onSuccessHandler;
|
|
52
|
+
this.uploadFileFormOptions.OnErrorHandler = this.onErrorHandler;
|
|
53
|
+
this.licenseFileInput = new FileUploadOptions();
|
|
54
|
+
this.licenseFileInput.Name = "LicenseFileInput";
|
|
55
|
+
this.licenseFileInput.LabelKey = "UploadFile";
|
|
56
|
+
this.licenseFileInput.IsMultipleFile = false;
|
|
57
|
+
this.licenseFileInput.IsRequired = true;
|
|
58
|
+
this.licenseFileInput.FileUploadAcceptsTypes = [FileType.License];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
UploadLicenseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: UploadLicenseComponent, deps: [{ token: i1.AccountService }, { token: i2.UtilityService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
+
UploadLicenseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: UploadLicenseComponent, selector: "lib-upload-license", ngImport: i0, template: "<div class=\"d-flex flex-column flex-root h-100\">\r\n <!--begin::Authentication - Sign-in -->\r\n <div class=\"d-flex flex-column flex-lg-row flex-column-fluid h-100\">\r\n <!--begin::Aside-->\r\n <div class=\"d-flex flex-column flex-lg-row-auto w-xl-600px positon-xl-relative\"\r\n style=\"background-color: #1E1E2D;\">\r\n <div class=\"d-flex flex-column position-xl-fixed top-0 bottom-0 w-xl-600px scroll-y\">\r\n <div class=\"d-flex flex-row-fluid flex-column text-center p-10 pt-lg-20\">\r\n <!--begin::Logo-->\r\n <img alt=\"Logo\" src=\"./src/assets/images/bnsights-logo.svg\" class=\"h-60px mt-10\">\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Aside-->\r\n <div class=\"d-flex flex-column flex-lg-row-fluid py-10\">\r\n <div class=\"d-flex flex-center flex-column flex-column-fluid\">\r\n <div class=\"w-lg-500px p-10 p-lg-15 mx-auto\">\r\n\r\n <div class=\"form w-100\" novalidate=\"novalidate\" id=\"kt_sign_in_form\">\r\n <div class=\"text-center mb-10\">\r\n <h1 class=\"text-dark mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}} ?</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-FileUplaod [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUplaod>\r\n </div>\r\n <div class=\"text-center\">\r\n <!--begin::Submit button-->\r\n <button type=\"submit\"\r\n class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Upload\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n <div *ngIf=\"ErrorMessage!=null\">\r\n <ul class=\"alert alert-danger alert-InvalidValidation\">\r\n <li>\r\n {{ErrorMessage}}\r\n </li>\r\n </ul>\r\n <a href=\"/Admin/account/login\"\r\n class=\"link-primary fs-6 fw-bolder d-flex justify-content-end mt-2\"><i\r\n class=\"fas fa-arrow-left\"></i> {{utilityService.getResourceValue(\"Back\")}} </a>\r\n\r\n </div>\r\n </div>\r\n <!--end::Form-->\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i4.ɵv, selector: "BBSF-Form", inputs: ["options"] }, { type: i4.ɵb, selector: "BBSF-FileUplaod", inputs: ["group", "options"], outputs: ["OnChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: UploadLicenseComponent, decorators: [{
|
|
64
|
+
type: Component,
|
|
65
|
+
args: [{
|
|
66
|
+
selector: 'lib-upload-license',
|
|
67
|
+
templateUrl: './upload-license.component.html',
|
|
68
|
+
}]
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.AccountService }, { type: i2.UtilityService }, { type: i3.Router }]; } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWxpY2Vuc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9hY2NvdW50L3VwbG9hZC1saWNlbnNlL3VwbG9hZC1saWNlbnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvYWNjb3VudC91cGxvYWQtbGljZW5zZS91cGxvYWQtbGljZW5zZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7OztBQU83RSxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLFlBRVksY0FBOEIsRUFDL0IsY0FBOEIsRUFDN0IsTUFBYztRQUZkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWIxQixZQUFZO1FBQ1osaUJBQVksR0FBVyxJQUFJLENBQUE7UUFFM0IsdUJBQXVCO1FBQ3ZCLG1CQUFjLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFpQ25DLHVCQUFrQixHQUFHLEdBQUcsRUFBRTtZQUN4QixJQUFJLFVBQVUsR0FBVSxFQUFFLENBQUM7WUFDM0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7WUFDNUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUUvQixLQUFLLENBQUMsV0FBVyxHQUFHO2dCQUNsQixVQUFVLEVBQUUsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVU7Z0JBQzNELFFBQVEsRUFBRSxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDdkQsWUFBWSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZO2dCQUMvRCxRQUFRLEVBQUUsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVE7YUFDeEQsQ0FBQTtZQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQyxDQUFBO1FBRUQsMEJBQXFCLEdBQUcsQ0FBQyxLQUFLLEVBQW1CLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUE7UUFDRCxxQkFBZ0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzVCLElBQUksTUFBTSxDQUFDLEdBQUc7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUE7UUFDbEQsQ0FBQyxDQUFBO1FBQ0QsbUJBQWMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsc0JBQXNCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4RCxDQUFDLENBQUE7SUEvQ0csQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFBO1FBQzFELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDdEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUM5RSxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ3BFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUVoRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUE7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUE7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBR25FLENBQUM7O29IQXJDVSxzQkFBc0I7d0dBQXRCLHNCQUFzQiwwRENibkMsODBGQXFETTs0RkR4Q08sc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxpQ0FBaUM7aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRmlsZVR5cGUsIEZpbGVVcGxvYWRPcHRpb25zLCBGb3JtT3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExpY2Vuc2VNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTGljZW5zZU1vZGVsL0xpY2Vuc2VNb2RlbCc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0FjY291bnRTZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdXBsb2FkLWxpY2Vuc2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtbGljZW5zZS5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRMaWNlbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLy9QYWdlICBkYXRhXHJcbiAgRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBudWxsXHJcblxyXG4gIC8vVXBsb2FkIE1vZGVsIENvbnRyb2xzXHJcbiAgdXBsb2FkRmlsZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICB1cGxvYWRGaWxlRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgbGljZW5zZUZpbGVJbnB1dDogRmlsZVVwbG9hZE9wdGlvbnM7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvclxyXG4gICAgKFxyXG4gICAgICBwcml2YXRlIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcclxuICAgICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm0ucmVzZXQoKTtcclxuXHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy51cGxvYWRGaWxlRm9ybVxyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTGljZW5zZU1vZGVsO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMaWNlbnNlRnVuY3Rpb247XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5PblN1Y2Nlc3NIYW5kbGVyID0gdGhpcy5vblN1Y2Nlc3NIYW5kbGVyO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuT25FcnJvckhhbmRsZXIgPSB0aGlzLm9uRXJyb3JIYW5kbGVyO1xyXG5cclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dCA9IG5ldyBGaWxlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0Lk5hbWUgPSBcIkxpY2Vuc2VGaWxlSW5wdXRcIlxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LkxhYmVsS2V5ID0gXCJVcGxvYWRGaWxlXCJcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5Jc011bHRpcGxlRmlsZSA9IGZhbHNlXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQuSXNSZXF1aXJlZCA9IHRydWVcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gW0ZpbGVUeXBlLkxpY2Vuc2VdXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGdldEFkZExpY2Vuc2VNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy51cGxvYWRGaWxlRm9ybS52YWx1ZTtcclxuICAgIGxldCBNb2RlbCA9IG5ldyBMaWNlbnNlTW9kZWwoKTtcclxuXHJcbiAgICBNb2RlbC5MaWNlbnNlRmlsZSA9IHtcclxuICAgICAgRmlsZUJhc2U2NDogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZUJhc2U2NCxcclxuICAgICAgRmlsZU5hbWU6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVOYW1lLFxyXG4gICAgICBGaWxlU2l6ZUluTUI6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVTaXplSW5NQixcclxuICAgICAgRmlsZVR5cGU6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVUeXBlXHJcbiAgICB9XHJcbiAgICBwYXJhbUFycmF5LnB1c2goTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRMaWNlbnNlRnVuY3Rpb24gPSAoTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFNlcnZpY2UudXBsb2FkTGljZW5zZShNb2RlbCk7XHJcbiAgfVxyXG4gIG9uU3VjY2Vzc0hhbmRsZXIgPSAocmVzdWx0KSA9PiB7XHJcbiAgICBpZiAocmVzdWx0LnZhbClcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vYWNjb3VudC9sb2dpbiddKVxyXG4gIH1cclxuICBvbkVycm9ySGFuZGxlciA9IChlcnIpID0+IHtcclxuICAgIHRoaXMuRXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIG9jY3VycmVkOiAke2Vyci5lcnJvcn1gO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1yb290IGgtMTAwXCI+XHJcbiAgICA8IS0tYmVnaW46OkF1dGhlbnRpY2F0aW9uIC0gU2lnbi1pbiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZmxleC1jb2x1bW4tZmx1aWQgaC0xMDBcIj5cclxuICAgICAgICA8IS0tYmVnaW46OkFzaWRlLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdy1hdXRvIHcteGwtNjAwcHggcG9zaXRvbi14bC1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzFFMUUyRDtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBwb3NpdGlvbi14bC1maXhlZCB0b3AtMCBib3R0b20tMCB3LXhsLTYwMHB4IHNjcm9sbC15XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93LWZsdWlkIGZsZXgtY29sdW1uIHRleHQtY2VudGVyIHAtMTAgcHQtbGctMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tYmVnaW46OkxvZ28tLT5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD1cIkxvZ29cIiBzcmM9XCIuL3NyYy9hc3NldHMvaW1hZ2VzL2Juc2lnaHRzLWxvZ28uc3ZnXCIgY2xhc3M9XCJoLTYwcHggbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tZW5kOjpBc2lkZS0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1sZy1yb3ctZmx1aWQgcHktMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNlbnRlciBmbGV4LWNvbHVtbiBmbGV4LWNvbHVtbi1mbHVpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctbGctNTAwcHggcC0xMCBwLWxnLTE1IG14LWF1dG9cIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0gdy0xMDBcIiBub3ZhbGlkYXRlPVwibm92YWxpZGF0ZVwiIGlkPVwia3Rfc2lnbl9pbl9mb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwidGV4dC1kYXJrIG1iLTNcIj4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVXBsb2FkTGljZW5zZVwiKX19ID88L2gxPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwidXBsb2FkRmlsZUZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRmlsZVVwbGFvZCBbb3B0aW9uc109XCJsaWNlbnNlRmlsZUlucHV0XCIgW2dyb3VwXT1cInVwbG9hZEZpbGVGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLUZpbGVVcGxhb2Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6U3VibWl0IGJ1dHRvbi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlVwbG9hZFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLUZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJFcnJvck1lc3NhZ2UhPW51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlciBhbGVydC1JbnZhbGlkVmFsaWRhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tFcnJvck1lc3NhZ2V9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9BZG1pbi9hY2NvdW50L2xvZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpbmstcHJpbWFyeSBmcy02IGZ3LWJvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0yXCI+PGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtYXJyb3ctbGVmdFwiPjwvaT4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQmFja1wiKX19IDwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS1lbmQ6OkZvcm0tLT5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|