@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.
Files changed (150) hide show
  1. package/bnsights-bbsf-admin-portal-1.0.8.tgz +0 -0
  2. package/bundles/bnsights-bbsf-admin-portal.umd.js +8335 -3660
  3. package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
  4. package/esm2015/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.js +2 -2
  5. package/esm2015/lib/Pages/account/account-routing.module.js +9 -1
  6. package/esm2015/lib/Pages/account/account.component.js +15 -6
  7. package/esm2015/lib/Pages/account/account.module.js +19 -8
  8. package/esm2015/lib/Pages/account/activation/activation.component.js +91 -0
  9. package/esm2015/lib/Pages/account/forgot-password/forgot-password.component.js +54 -0
  10. package/esm2015/lib/Pages/account/rest-password/rest-password.component.js +89 -0
  11. package/esm2015/lib/Pages/account/upload-license/upload-license.component.js +70 -0
  12. package/esm2015/lib/Pages/configurations/configuration/configuration.component.js +203 -184
  13. package/esm2015/lib/Pages/core/authentication/auth.guard.js +10 -4
  14. package/esm2015/lib/Pages/core/authentication/auth.service.js +1 -2
  15. package/esm2015/lib/Pages/departments/department/department.component.js +12 -9
  16. package/esm2015/lib/Pages/departments/department-info/department-info.component.js +1 -1
  17. package/esm2015/lib/Pages/departments/departments.module.js +6 -4
  18. package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +9 -9
  19. package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +9 -9
  20. package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +9 -9
  21. package/esm2015/lib/Pages/home/home.component.js +2 -2
  22. package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +1 -1
  23. package/esm2015/lib/Pages/jobs/jobs/jobs.component.js +1 -1
  24. package/esm2015/lib/Pages/localizations/localizations.component.js +10 -11
  25. package/esm2015/lib/Pages/lookups/lookup/lookup.component.js +10 -10
  26. package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +5 -5
  27. package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +5 -5
  28. package/esm2015/lib/Pages/notifications/add/add.component.js +11 -13
  29. package/esm2015/lib/Pages/notifications/edit/edit.component.js +11 -13
  30. package/esm2015/lib/Pages/notifications/master-layouts/master-layouts.component.js +1 -1
  31. package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +5 -5
  32. package/esm2015/lib/Pages/notifications/templates/templates.component.js +9 -9
  33. package/esm2015/lib/Pages/providers/provider/provider.component.js +2 -1
  34. package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +78 -84
  35. package/esm2015/lib/Pages/roles/permission-set-info/permission-set-info.component.js +1 -1
  36. package/esm2015/lib/Pages/roles/permissions/permissions.component.js +5 -5
  37. package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +5 -5
  38. package/esm2015/lib/Pages/sectors/department-info/department-info.component.js +1 -1
  39. package/esm2015/lib/Pages/sectors/sector/sector.component.js +5 -5
  40. package/esm2015/lib/Pages/sectors/sector-info/sector-info.component.js +1 -1
  41. package/esm2015/lib/Pages/shared/Enums/ConditionRHSType.js +6 -0
  42. package/esm2015/lib/Pages/shared/Enums/ConfigurationScope.js +8 -0
  43. package/esm2015/lib/Pages/shared/Enums/ConfigurationType.js +8 -0
  44. package/esm2015/lib/Pages/shared/Enums/ConfigurationValueSource.js +6 -0
  45. package/esm2015/lib/Pages/shared/Enums/WFActivityType.js +12 -0
  46. package/esm2015/lib/Pages/shared/Enums/WFVariableDataType.js +14 -0
  47. package/esm2015/lib/Pages/shared/Services/AccountService.service.js +41 -0
  48. package/esm2015/lib/Pages/shared/Services/DepartmentService.service.js +1 -1
  49. package/esm2015/lib/Pages/shared/Services/WorkFlowVersionService.service.js +24 -0
  50. package/esm2015/lib/Pages/shared/Services/WorkflowActivityService.service.js +32 -5
  51. package/esm2015/lib/Pages/shared/Services/WorkflowInstanceService.service.js +24 -0
  52. package/esm2015/lib/Pages/shared/Services/WorkflowLogVariablesService.service.js +24 -0
  53. package/esm2015/lib/Pages/shared/Services/WorkflowService.service.js +12 -4
  54. package/esm2015/lib/Pages/shared/Services/WorkflowVariablesService.service.js +12 -6
  55. package/esm2015/lib/Pages/shared/models/AccountModels/forgotPasswordModel.js +6 -0
  56. package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentModel.js +3 -2
  57. package/esm2015/lib/Pages/shared/models/UserModels/ActivationModel.js +3 -0
  58. package/esm2015/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.js +8 -0
  59. package/esm2015/lib/Pages/users/users.component.js +7 -6
  60. package/esm2015/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.js +535 -0
  61. package/esm2015/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.js +852 -0
  62. package/esm2015/lib/Pages/workflows/instance-info/instance-info.component.js +309 -0
  63. package/esm2015/lib/Pages/workflows/tabs/tabs.component.js +611 -430
  64. package/esm2015/lib/Pages/workflows/version-info/version-info.component.js +143 -0
  65. package/esm2015/lib/Pages/workflows/workflow/workflow.component.js +136 -148
  66. package/esm2015/lib/Pages/workflows/workflows-routing.module.js +9 -1
  67. package/esm2015/lib/Pages/workflows/workflows.module.js +7 -3
  68. package/esm2015/lib/masterlayout.component.js +1 -2
  69. package/esm2015/lib/masterlayout.module.js +2 -4
  70. package/esm2015/public-api.js +2 -1
  71. package/fesm2015/bnsights-bbsf-admin-portal.js +7678 -3098
  72. package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
  73. package/lib/Pages/account/account.component.d.ts +5 -1
  74. package/lib/Pages/account/account.module.d.ts +11 -6
  75. package/lib/Pages/account/activation/activation.component.d.ts +32 -0
  76. package/lib/Pages/account/forgot-password/forgot-password.component.d.ts +23 -0
  77. package/lib/Pages/account/rest-password/rest-password.component.d.ts +32 -0
  78. package/lib/Pages/account/upload-license/upload-license.component.d.ts +25 -0
  79. package/lib/Pages/configurations/configuration/configuration.component.d.ts +12 -8
  80. package/lib/Pages/core/authentication/auth.guard.d.ts +1 -0
  81. package/lib/Pages/departments/department/department.component.d.ts +3 -2
  82. package/lib/Pages/departments/department-info/department-info.component.d.ts +1 -1
  83. package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +1 -1
  84. package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +1 -1
  85. package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +1 -1
  86. package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +1 -1
  87. package/lib/Pages/jobs/jobs/jobs.component.d.ts +6 -6
  88. package/lib/Pages/localizations/localizations.component.d.ts +1 -1
  89. package/lib/Pages/lookups/lookup/lookup.component.d.ts +1 -1
  90. package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +1 -1
  91. package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +1 -1
  92. package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +1 -1
  93. package/lib/Pages/notifications/templates/templates.component.d.ts +1 -1
  94. package/lib/Pages/providers/provider/provider.component.d.ts +1 -1
  95. package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +12 -15
  96. package/lib/Pages/roles/permission-set-info/permission-set-info.component.d.ts +1 -1
  97. package/lib/Pages/roles/permissions/permissions.component.d.ts +1 -1
  98. package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +1 -1
  99. package/lib/Pages/sectors/department-info/department-info.component.d.ts +1 -1
  100. package/lib/Pages/sectors/sector/sector.component.d.ts +1 -1
  101. package/lib/Pages/sectors/sector-info/sector-info.component.d.ts +1 -1
  102. package/lib/Pages/shared/Enums/ConditionRHSType.d.ts +4 -0
  103. package/lib/Pages/shared/Enums/ConfigurationScope.d.ts +5 -0
  104. package/lib/Pages/shared/Enums/ConfigurationType.d.ts +6 -0
  105. package/lib/Pages/shared/Enums/ConfigurationValueSource.d.ts +4 -0
  106. package/lib/Pages/shared/Enums/WFActivityType.d.ts +10 -0
  107. package/lib/Pages/shared/Enums/WFVariableDataType.d.ts +12 -0
  108. package/lib/Pages/shared/Services/AccountService.service.d.ts +17 -0
  109. package/lib/Pages/shared/Services/ActiveDirectoryService.service.d.ts +8 -8
  110. package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +7 -7
  111. package/lib/Pages/shared/Services/DepartmentService.service.d.ts +7 -7
  112. package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +5 -5
  113. package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +8 -8
  114. package/lib/Pages/shared/Services/ImpersonationRuleService.service.d.ts +5 -5
  115. package/lib/Pages/shared/Services/JobsService.service.d.ts +1 -1
  116. package/lib/Pages/shared/Services/LicenseService.service.d.ts +2 -2
  117. package/lib/Pages/shared/Services/LogsService.d.ts +1 -1
  118. package/lib/Pages/shared/Services/LookupGroupsService.service.d.ts +4 -4
  119. package/lib/Pages/shared/Services/LookupService.service.d.ts +14 -14
  120. package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +8 -8
  121. package/lib/Pages/shared/Services/PermissionsService.service.d.ts +5 -5
  122. package/lib/Pages/shared/Services/PublicHolidayService.service.d.ts +6 -6
  123. package/lib/Pages/shared/Services/SectorService.service.d.ts +7 -7
  124. package/lib/Pages/shared/Services/TemplateService.service.d.ts +20 -20
  125. package/lib/Pages/shared/Services/WorkFlowVersionService.service.d.ts +10 -0
  126. package/lib/Pages/shared/Services/WorkflowActivityService.service.d.ts +9 -3
  127. package/lib/Pages/shared/Services/WorkflowInstanceService.service.d.ts +10 -0
  128. package/lib/Pages/shared/Services/WorkflowLogVariablesService.service.d.ts +10 -0
  129. package/lib/Pages/shared/Services/WorkflowService.service.d.ts +5 -3
  130. package/lib/Pages/shared/Services/WorkflowVariablesService.service.d.ts +5 -4
  131. package/lib/Pages/shared/Services/localizationsService.service .d.ts +12 -12
  132. package/lib/Pages/shared/Services/provider.service.d.ts +10 -10
  133. package/lib/Pages/shared/Services/userService.service.d.ts +14 -14
  134. package/lib/Pages/shared/models/AccountModels/forgotPasswordModel.d.ts +3 -0
  135. package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +9 -8
  136. package/lib/Pages/shared/models/UserModels/ActivationModel.d.ts +10 -0
  137. package/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.d.ts +13 -0
  138. package/lib/Pages/users/users.component.d.ts +1 -1
  139. package/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.d.ts +77 -0
  140. package/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.d.ts +83 -0
  141. package/lib/Pages/workflows/instance-info/instance-info.component.d.ts +81 -0
  142. package/lib/Pages/workflows/tabs/tabs.component.d.ts +73 -80
  143. package/lib/Pages/workflows/version-info/version-info.component.d.ts +41 -0
  144. package/lib/Pages/workflows/workflow/workflow.component.d.ts +26 -29
  145. package/lib/Pages/workflows/workflows.module.d.ts +19 -15
  146. package/package.json +5 -3
  147. package/public-api.d.ts +1 -0
  148. package/src/lib/assets/sass/core/components/_variables.scss +1 -1
  149. package/src/lib/assets/sass/custom-styles-rtl.scss +5 -0
  150. 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==