ngx-techlify-core 14.6.3-alpha-2 → 14.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/esm2020/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +127 -0
  2. package/esm2020/lib/access-control-config/access-control-config-routing.module.mjs +31 -0
  3. package/esm2020/lib/access-control-config/access-control-config.component.mjs +131 -0
  4. package/esm2020/lib/access-control-config/access-control-config.model.mjs +21 -0
  5. package/esm2020/lib/access-control-config/access-control-config.module.mjs +60 -0
  6. package/esm2020/lib/access-control-config/access-control-config.service.mjs +31 -0
  7. package/esm2020/lib/change-password/change-password-routing.module.mjs +24 -0
  8. package/esm2020/lib/change-password/change-password.component.mjs +87 -0
  9. package/esm2020/lib/change-password/change-password.module.mjs +48 -0
  10. package/esm2020/lib/core/index.mjs +1 -2
  11. package/esm2020/lib/core/techlify-config.model.mjs +1 -5
  12. package/esm2020/lib/entity-files/entity-file-form/entity-file-form.component.mjs +25 -8
  13. package/esm2020/lib/entity-files/entity-file.service.mjs +4 -11
  14. package/esm2020/lib/entity-files/entity-files-view-all.component.mjs +34 -21
  15. package/esm2020/lib/entity-files/entity-files-view-all.module.mjs +8 -4
  16. package/esm2020/lib/forgot-password/forgot-password-routing.module.mjs +22 -0
  17. package/esm2020/lib/forgot-password/forgot-password.component.mjs +67 -0
  18. package/esm2020/lib/forgot-password/forgot-password.module.mjs +34 -0
  19. package/esm2020/lib/forgot-password/index.mjs +3 -0
  20. package/esm2020/lib/ip-address-selector/ip-address-selector.module.mjs +48 -0
  21. package/esm2020/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +109 -0
  22. package/esm2020/lib/login/index.mjs +3 -0
  23. package/esm2020/lib/login/login-routing.module.mjs +23 -0
  24. package/esm2020/lib/login/login.component.mjs +153 -0
  25. package/esm2020/lib/login/login.module.mjs +50 -0
  26. package/esm2020/lib/ngx-techlify-users/ngx-techlify-users-routing.module.mjs +43 -0
  27. package/esm2020/lib/ngx-techlify-users/ngx-techlify-users.module.mjs +22 -0
  28. package/esm2020/lib/password-requirement-check/password-check-result.mjs +2 -0
  29. package/esm2020/lib/password-requirement-check/password-check.service.mjs +43 -0
  30. package/esm2020/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +47 -0
  31. package/esm2020/lib/password-requirement-check/password-requirement-check.module.mjs +24 -0
  32. package/esm2020/lib/profile/index.mjs +3 -0
  33. package/esm2020/lib/profile/profile-edit.component.mjs +75 -0
  34. package/esm2020/lib/profile/profile-routing.module.mjs +23 -0
  35. package/esm2020/lib/profile/profile.module.mjs +36 -0
  36. package/esm2020/lib/restrictors/index.mjs +4 -0
  37. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +91 -0
  38. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +36 -0
  39. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +19 -0
  40. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +91 -0
  41. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +32 -0
  42. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +19 -0
  43. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +92 -0
  44. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +36 -0
  45. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +19 -0
  46. package/esm2020/lib/restrictors/restrictor.service.mjs +19 -0
  47. package/esm2020/lib/restrictors/restrictors-form/restrictors-form.component.mjs +102 -0
  48. package/esm2020/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +44 -0
  49. package/esm2020/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +145 -0
  50. package/esm2020/lib/restrictors/restrictors-routing.module.mjs +42 -0
  51. package/esm2020/lib/restrictors/restrictors.module.mjs +99 -0
  52. package/esm2020/lib/role/index.mjs +9 -0
  53. package/esm2020/lib/role/permission/permission.model.mjs +9 -0
  54. package/esm2020/lib/role/permission/permission.module.mjs +45 -0
  55. package/esm2020/lib/role/permission/permission.routes.mjs +26 -0
  56. package/esm2020/lib/role/permission/permissions-management.component.mjs +105 -0
  57. package/esm2020/lib/role/role-form.component.mjs +99 -0
  58. package/esm2020/lib/role/role-view/role-view.component.mjs +39 -0
  59. package/esm2020/lib/role/role.model.mjs +56 -0
  60. package/esm2020/lib/role/role.module.mjs +59 -0
  61. package/esm2020/lib/role/role.routes.mjs +28 -0
  62. package/esm2020/lib/role/role.service.mjs +26 -0
  63. package/esm2020/lib/role/roles-view-all.component.mjs +131 -0
  64. package/esm2020/lib/signup/index.mjs +3 -0
  65. package/esm2020/lib/signup/signup-routing.module.mjs +22 -0
  66. package/esm2020/lib/signup/signup.component.mjs +78 -0
  67. package/esm2020/lib/signup/signup.module.mjs +34 -0
  68. package/esm2020/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs +40 -63
  69. package/esm2020/lib/user/current-user.service.mjs +135 -0
  70. package/esm2020/lib/user/index.mjs +8 -0
  71. package/esm2020/lib/user/user-explore.component.mjs +50 -0
  72. package/esm2020/lib/user/user-form.component.mjs +219 -0
  73. package/esm2020/lib/user/user-view.component.mjs +68 -0
  74. package/esm2020/lib/user/user.model.mjs +30 -0
  75. package/esm2020/lib/user/user.module.mjs +99 -0
  76. package/esm2020/lib/user/user.routes.mjs +29 -0
  77. package/esm2020/lib/user/user.service.mjs +31 -0
  78. package/esm2020/lib/user/users-view-all.component.mjs +208 -0
  79. package/esm2020/lib/user-config/index.mjs +3 -0
  80. package/esm2020/lib/user-config/user-config.model.mjs +50 -0
  81. package/esm2020/lib/user-config/user-config.service.mjs +65 -0
  82. package/esm2020/lib/user-selector/index.mjs +3 -0
  83. package/esm2020/lib/user-selector/user-data.service.mjs +35 -0
  84. package/esm2020/lib/user-selector/user-selector.component.mjs +91 -0
  85. package/esm2020/lib/user-selector/user-selector.module.mjs +38 -0
  86. package/esm2020/public-api.mjs +24 -1
  87. package/fesm2015/ngx-techlify-core.mjs +3880 -300
  88. package/fesm2015/ngx-techlify-core.mjs.map +1 -1
  89. package/fesm2020/ngx-techlify-core.mjs +3844 -293
  90. package/fesm2020/ngx-techlify-core.mjs.map +1 -1
  91. package/lib/access-control-config/access-control-config-form/access-control-config-form.component.d.ts +44 -0
  92. package/lib/access-control-config/access-control-config-routing.module.d.ts +7 -0
  93. package/lib/access-control-config/access-control-config.component.d.ts +31 -0
  94. package/lib/access-control-config/access-control-config.model.d.ts +17 -0
  95. package/lib/access-control-config/access-control-config.module.d.ts +18 -0
  96. package/lib/access-control-config/access-control-config.service.d.ts +13 -0
  97. package/lib/change-password/change-password-routing.module.d.ts +7 -0
  98. package/lib/change-password/change-password.component.d.ts +27 -0
  99. package/lib/change-password/change-password.module.d.ts +14 -0
  100. package/lib/core/index.d.ts +0 -1
  101. package/lib/core/techlify-config.model.d.ts +0 -2
  102. package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +4 -0
  103. package/lib/entity-files/entity-file.service.d.ts +3 -5
  104. package/lib/entity-files/entity-files-view-all.component.d.ts +5 -2
  105. package/lib/entity-files/entity-files-view-all.module.d.ts +2 -1
  106. package/lib/forgot-password/forgot-password-routing.module.d.ts +7 -0
  107. package/lib/forgot-password/forgot-password.component.d.ts +34 -0
  108. package/lib/forgot-password/forgot-password.module.d.ts +11 -0
  109. package/lib/forgot-password/index.d.ts +2 -0
  110. package/lib/ip-address-selector/ip-address-selector.module.d.ts +14 -0
  111. package/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.d.ts +28 -0
  112. package/lib/login/index.d.ts +2 -0
  113. package/lib/login/login-routing.module.d.ts +7 -0
  114. package/lib/login/login.component.d.ts +53 -0
  115. package/lib/login/login.module.d.ts +15 -0
  116. package/lib/ngx-techlify-users/ngx-techlify-users-routing.module.d.ts +7 -0
  117. package/lib/ngx-techlify-users/ngx-techlify-users.module.d.ts +8 -0
  118. package/lib/password-requirement-check/password-check-result.d.ts +7 -0
  119. package/lib/password-requirement-check/password-check.service.d.ts +15 -0
  120. package/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.d.ts +22 -0
  121. package/lib/password-requirement-check/password-requirement-check.module.d.ts +8 -0
  122. package/lib/profile/index.d.ts +2 -0
  123. package/lib/profile/profile-edit.component.d.ts +33 -0
  124. package/lib/profile/profile-routing.module.d.ts +7 -0
  125. package/lib/profile/profile.module.d.ts +11 -0
  126. package/lib/restrictors/index.d.ts +3 -0
  127. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.d.ts +34 -0
  128. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.d.ts +11 -0
  129. package/lib/restrictors/restrictor-level-selector/restrictor-level.service.d.ts +9 -0
  130. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.d.ts +34 -0
  131. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.d.ts +10 -0
  132. package/lib/restrictors/restrictor-status-selector/restrictor-status.service.d.ts +9 -0
  133. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.d.ts +34 -0
  134. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.d.ts +11 -0
  135. package/lib/restrictors/restrictor-type-selector/restrictor-type.service.d.ts +9 -0
  136. package/lib/restrictors/restrictor.service.d.ts +9 -0
  137. package/lib/restrictors/restrictors-form/restrictors-form.component.d.ts +30 -0
  138. package/lib/restrictors/restrictors-form-page/restrictors-form-page.component.d.ts +21 -0
  139. package/lib/restrictors/restrictors-list-page/restrictors-list-page.component.d.ts +51 -0
  140. package/lib/restrictors/restrictors-routing.module.d.ts +7 -0
  141. package/lib/restrictors/restrictors.module.d.ts +28 -0
  142. package/lib/role/index.d.ts +8 -0
  143. package/lib/role/permission/permission.model.d.ts +11 -0
  144. package/lib/role/permission/permission.module.d.ts +12 -0
  145. package/lib/role/permission/permission.routes.d.ts +7 -0
  146. package/lib/role/permission/permissions-management.component.d.ts +38 -0
  147. package/lib/role/role-form.component.d.ts +34 -0
  148. package/lib/role/role-view/role-view.component.d.ts +16 -0
  149. package/lib/role/role.model.d.ts +31 -0
  150. package/lib/role/role.module.d.ts +16 -0
  151. package/lib/role/role.routes.d.ts +7 -0
  152. package/lib/role/role.service.d.ts +11 -0
  153. package/lib/role/roles-view-all.component.d.ts +40 -0
  154. package/lib/signup/index.d.ts +2 -0
  155. package/lib/signup/signup-routing.module.d.ts +7 -0
  156. package/lib/signup/signup.component.d.ts +29 -0
  157. package/lib/signup/signup.module.d.ts +11 -0
  158. package/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.d.ts +5 -12
  159. package/lib/user/current-user.service.d.ts +63 -0
  160. package/lib/user/index.d.ts +7 -0
  161. package/lib/user/user-explore.component.d.ts +26 -0
  162. package/lib/user/user-form.component.d.ts +52 -0
  163. package/lib/user/user-view.component.d.ts +31 -0
  164. package/lib/user/user.model.d.ts +29 -0
  165. package/lib/user/user.module.d.ts +26 -0
  166. package/lib/user/user.routes.d.ts +7 -0
  167. package/lib/user/user.service.d.ts +13 -0
  168. package/lib/user/users-view-all.component.d.ts +56 -0
  169. package/lib/user-config/index.d.ts +2 -0
  170. package/lib/user-config/user-config.model.d.ts +50 -0
  171. package/lib/user-config/user-config.service.d.ts +14 -0
  172. package/lib/user-selector/index.d.ts +2 -0
  173. package/lib/user-selector/user-data.service.d.ts +16 -0
  174. package/lib/user-selector/user-selector.component.d.ts +29 -0
  175. package/lib/user-selector/user-selector.module.d.ts +10 -0
  176. package/package.json +2 -3
  177. package/public-api.d.ts +23 -0
  178. package/esm2020/lib/core/pusher.service.mjs +0 -41
  179. package/lib/core/pusher.service.d.ts +0 -15
@@ -0,0 +1,87 @@
1
+ /* tslint:disable:component-selector one-variable-per-declaration */
2
+ import { Component } from '@angular/core';
3
+ import { Validators, UntypedFormControl } from '@angular/forms';
4
+ import { User } from '../user';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../core";
7
+ import * as i2 from "@angular/router";
8
+ import * as i3 from "../user";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "@angular/material/button";
12
+ import * as i7 from "@angular/material/form-field";
13
+ import * as i8 from "@angular/material/icon";
14
+ import * as i9 from "@angular/material/input";
15
+ import * as i10 from "@angular/material/card";
16
+ import * as i11 from "@angular/flex-layout/flex";
17
+ import * as i12 from "../password-requirement-check/password-requirement-check/password-requirement-check.component";
18
+ const errorMessages = {
19
+ current_password: {
20
+ required: 'Current password is required'
21
+ },
22
+ password: {
23
+ required: 'New password is required',
24
+ capitalLetter: 'Password should contain at-least 1 capital letter',
25
+ symbol: 'Password should contain at-least 1 symbol',
26
+ digit: 'Password should contain at-least 1 digit',
27
+ minLength: 'Should have minimum length',
28
+ },
29
+ password_confirmation: {
30
+ required: 'Confirm password is required',
31
+ passwordMismatch: 'Password should match'
32
+ }
33
+ };
34
+ export class ChangePasswordComponent {
35
+ constructor(http, alertService, router, currentUserService, fb, errorHandler, formValidatorService) {
36
+ this.http = http;
37
+ this.alertService = alertService;
38
+ this.router = router;
39
+ this.currentUserService = currentUserService;
40
+ this.fb = fb;
41
+ this.errorHandler = errorHandler;
42
+ this.formValidatorService = formValidatorService;
43
+ this.passwordHide = true;
44
+ this.passwordConfirmationHide = true;
45
+ this.isWorking = false;
46
+ this.passwordResetForm = fb.group({
47
+ current_password: new UntypedFormControl('', Validators.required),
48
+ password: new UntypedFormControl('', Validators.required),
49
+ password_confirmation: new UntypedFormControl('', Validators.required),
50
+ });
51
+ }
52
+ ngOnInit() {
53
+ this.user = new User();
54
+ this.currentUserService.getUserObservable(true).subscribe(user => {
55
+ this.user = user;
56
+ });
57
+ }
58
+ saveNewPassword() {
59
+ if (!this.passwordResetForm.valid) {
60
+ this.passwordResetForm.markAllAsTouched();
61
+ return;
62
+ }
63
+ this.isWorking = true;
64
+ this.http.patch('api/user/current/update-password', this.passwordResetForm.value).toPromise().then(res => {
65
+ this.isWorking = false;
66
+ this.alertService.addAlert('Successfully changed your password', 'success');
67
+ this.router.navigate(['/dashboard']);
68
+ }).catch(error => {
69
+ this.errorHandler.handleError(error);
70
+ }).finally(() => {
71
+ this.isWorking = false;
72
+ });
73
+ }
74
+ isFieldValid(field) {
75
+ return this.formValidatorService.isFieldValid(field, this.passwordResetForm);
76
+ }
77
+ getErrorMessage(field) {
78
+ return this.formValidatorService.getErrorMessage(field, this.passwordResetForm, errorMessages);
79
+ }
80
+ }
81
+ ChangePasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ChangePasswordComponent, deps: [{ token: i1.HttpService }, { token: i1.AlertService }, { token: i2.Router }, { token: i3.CurrentUserService }, { token: i4.UntypedFormBuilder }, { token: i1.ErrorHandlerService }, { token: i1.FormValidatorService }], target: i0.ɵɵFactoryTarget.Component });
82
+ ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ChangePasswordComponent, selector: "app-change-password", ngImport: i0, template: "<div fxLayout=\"column wrap\" fxFlexFill fxLayoutAlign=\"center center\">\n <mat-card>\n <mat-card-title fxLayoutAlign=\"center center\">\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle fxLayoutAlign=\"center center\">\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">{{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">{{getErrorMessage('password')}}</mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\" placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">{{getErrorMessage('password_confirmation')}}</mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n</div>\n", styles: ["mat-card{width:500px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i10.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i10.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i10.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i11.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i12.PasswordRequirementCheckComponent, selector: "techlify-password-requirement-check", inputs: ["password"] }] });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ChangePasswordComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'app-change-password', template: "<div fxLayout=\"column wrap\" fxFlexFill fxLayoutAlign=\"center center\">\n <mat-card>\n <mat-card-title fxLayoutAlign=\"center center\">\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle fxLayoutAlign=\"center center\">\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">{{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">{{getErrorMessage('password')}}</mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\" placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">{{getErrorMessage('password_confirmation')}}</mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n</div>\n", styles: ["mat-card{width:500px}\n"] }]
86
+ }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i1.AlertService }, { type: i2.Router }, { type: i3.CurrentUserService }, { type: i4.UntypedFormBuilder }, { type: i1.ErrorHandlerService }, { type: i1.FormValidatorService }]; } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUF3QyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBQXNCLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFFbkQsTUFBTSxhQUFhLEdBQVE7SUFDekIsZ0JBQWdCLEVBQUU7UUFDaEIsUUFBUSxFQUFFLDhCQUE4QjtLQUN6QztJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsYUFBYSxFQUFFLG1EQUFtRDtRQUNsRSxNQUFNLEVBQUUsMkNBQTJDO1FBQ25ELEtBQUssRUFBRSwwQ0FBMEM7UUFDakQsU0FBUyxFQUFFLDRCQUE0QjtLQUN4QztJQUNELHFCQUFxQixFQUFFO1FBQ3JCLFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsZ0JBQWdCLEVBQUUsdUJBQXVCO0tBQzFDO0NBQ0YsQ0FBQztBQU9GLE1BQU0sT0FBTyx1QkFBdUI7SUFPbEMsWUFDVSxJQUFpQixFQUNqQixZQUEwQixFQUMxQixNQUFjLEVBQ2Ysa0JBQXNDLEVBQ3JDLEVBQXNCLEVBQ3RCLFlBQWlDLEVBQ2pDLG9CQUEwQztRQU4xQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3JDLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBYnBELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLDZCQUF3QixHQUFHLElBQUksQ0FBQztRQUdoQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBV2hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2hDLGdCQUFnQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDakUsUUFBUSxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUNqQyxVQUFVLENBQUMsUUFBUSxDQUNwQjtZQUNELHFCQUFxQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDdkUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDaEcsR0FBRyxDQUFDLEVBQUU7WUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxvQ0FBb0MsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUNGLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7O29IQXpEVSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwyREMvQnBDLHM5RkF5REE7MkZEMUJhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpjb21wb25lbnQtc2VsZWN0b3Igb25lLXZhcmlhYmxlLXBlci1kZWNsYXJhdGlvbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7SHR0cFNlcnZpY2UsIEFsZXJ0U2VydmljZSwgRXJyb3JIYW5kbGVyU2VydmljZSwgRm9ybVZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcblxuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDdXJyZW50VXNlclNlcnZpY2UsIFVzZXIgfSBmcm9tICcuLi91c2VyJztcblxuY29uc3QgZXJyb3JNZXNzYWdlczogYW55ID0ge1xuICBjdXJyZW50X3Bhc3N3b3JkOiB7XG4gICAgcmVxdWlyZWQ6ICdDdXJyZW50IHBhc3N3b3JkIGlzIHJlcXVpcmVkJ1xuICB9LFxuICBwYXNzd29yZDoge1xuICAgIHJlcXVpcmVkOiAnTmV3IHBhc3N3b3JkIGlzIHJlcXVpcmVkJyxcbiAgICBjYXBpdGFsTGV0dGVyOiAnUGFzc3dvcmQgc2hvdWxkIGNvbnRhaW4gYXQtbGVhc3QgMSBjYXBpdGFsIGxldHRlcicsXG4gICAgc3ltYm9sOiAnUGFzc3dvcmQgc2hvdWxkIGNvbnRhaW4gYXQtbGVhc3QgMSBzeW1ib2wnLFxuICAgIGRpZ2l0OiAnUGFzc3dvcmQgc2hvdWxkIGNvbnRhaW4gYXQtbGVhc3QgMSBkaWdpdCcsXG4gICAgbWluTGVuZ3RoOiAnU2hvdWxkIGhhdmUgbWluaW11bSBsZW5ndGgnLFxuICB9LFxuICBwYXNzd29yZF9jb25maXJtYXRpb246IHtcbiAgICByZXF1aXJlZDogJ0NvbmZpcm0gcGFzc3dvcmQgaXMgcmVxdWlyZWQnLFxuICAgIHBhc3N3b3JkTWlzbWF0Y2g6ICdQYXNzd29yZCBzaG91bGQgbWF0Y2gnXG4gIH1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jaGFuZ2UtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwYXNzd29yZEhpZGUgPSB0cnVlO1xuICBwYXNzd29yZENvbmZpcm1hdGlvbkhpZGUgPSB0cnVlO1xuICBwYXNzd29yZFJlc2V0Rm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgdXNlcjogVXNlcjtcbiAgaXNXb3JraW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHVibGljIGN1cnJlbnRVc2VyU2VydmljZTogQ3VycmVudFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5wYXNzd29yZFJlc2V0Rm9ybSA9IGZiLmdyb3VwKHtcbiAgICAgIGN1cnJlbnRfcGFzc3dvcmQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgcGFzc3dvcmQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICApLFxuICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXNlciA9IG5ldyBVc2VyKCk7XG4gICAgdGhpcy5jdXJyZW50VXNlclNlcnZpY2UuZ2V0VXNlck9ic2VydmFibGUodHJ1ZSkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmVOZXdQYXNzd29yZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGFzc3dvcmRSZXNldEZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMucGFzc3dvcmRSZXNldEZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgdGhpcy5odHRwLnBhdGNoKCdhcGkvdXNlci9jdXJyZW50L3VwZGF0ZS1wYXNzd29yZCcsIHRoaXMucGFzc3dvcmRSZXNldEZvcm0udmFsdWUpLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICByZXMgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnU3VjY2Vzc2Z1bGx5IGNoYW5nZWQgeW91ciBwYXNzd29yZCcsICdzdWNjZXNzJyk7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Rhc2hib2FyZCddKTtcbiAgICAgIH1cbiAgICApLmNhdGNoKGVycm9yID0+IHtcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBpc0ZpZWxkVmFsaWQoZmllbGQ6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuaXNGaWVsZFZhbGlkKGZpZWxkLCB0aGlzLnBhc3N3b3JkUmVzZXRGb3JtKTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoZmllbGQsIHRoaXMucGFzc3dvcmRSZXNldEZvcm0sIGVycm9yTWVzc2FnZXMpO1xuICB9XG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uIHdyYXBcIiBmeEZsZXhGaWxsIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG4gIDxtYXQtY2FyZD5cbiAgICA8bWF0LWNhcmQtdGl0bGUgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgIFVwZGF0ZSBZb3VyIFBhc3N3b3JkXG4gICAgPC9tYXQtY2FyZC10aXRsZT5cbiAgICA8bWF0LWNhcmQtc3VidGl0bGUgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtbXV0ZWRcIiAqbmdJZj1cInVzZXI/LmlzX3RlbXBvcmFyeV9wYXNzd29yZFwiPlxuICAgICAgICBZb3XigJlyZSBjdXJyZW50bHkgdXNpbmcgYSB0ZW1wb3JhcnkgcGFzc3dvcmQsIHBsZWFzZSBjaGFuZ2UgaXQgdG8gcHJvY2VlZFxuICAgICAgPC9zbWFsbD5cbiAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwicGFzc3dvcmRSZXNldEZvcm1cIiAobmdTdWJtaXQpPVwic2F2ZU5ld1Bhc3N3b3JkKClcIj5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50IGZ4TGF5b3V0PVwiY29sdW1uIHdyYXBcIiBmeExheW91dEdhcD1cIjFyZW1cIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPkN1cnJlbnQgUGFzc3dvcmQ8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVudF9wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ3VycmVudCBQYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgIHJlcXVpcmVkIC8+XG4gICAgICAgICAgPG1hdC1oaW50PllvdXIgY3VycmVudCBwYXNzd29yZC48L21hdC1oaW50PlxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ2N1cnJlbnRfcGFzc3dvcmQnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKCdjdXJyZW50X3Bhc3N3b3JkJyl9fVxuICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+TmV3IFBhc3N3b3JkPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJOZXcgUGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICBbdHlwZV09XCJwYXNzd29yZEhpZGUgPyAncGFzc3dvcmQnIDogJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQgLz5cbiAgICAgICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInBhc3N3b3JkSGlkZSA9ICFwYXNzd29yZEhpZGVcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+e3twYXNzd29yZEhpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3Bhc3N3b3JkJylcIj57e2dldEVycm9yTWVzc2FnZSgncGFzc3dvcmQnKX19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgPG1hdC1oaW50PlRoZSBuZXcgcGFzc3dvcmQgeW91IHdvdWxkIGxpa2UgdG8gdXNlLjwvbWF0LWhpbnQ+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5Db25maXJtIFBhc3N3b3JkPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkX2NvbmZpcm1hdGlvblwiIHBsYWNlaG9sZGVyPVwiQ29uZmlybSBQYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgIFt0eXBlXT1cInBhc3N3b3JkQ29uZmlybWF0aW9uSGlkZSA/ICdwYXNzd29yZCcgOiAndGV4dCdcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCAvPlxuICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicGFzc3dvcmRDb25maXJtYXRpb25IaWRlID0gIXBhc3N3b3JkQ29uZmlybWF0aW9uSGlkZVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj57e3Bhc3N3b3JkQ29uZmlybWF0aW9uSGlkZSA/ICd2aXNpYmlsaXR5X29mZicgOiAndmlzaWJpbGl0eSd9fTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncGFzc3dvcmRfY29uZmlybWF0aW9uJylcIj57e2dldEVycm9yTWVzc2FnZSgncGFzc3dvcmRfY29uZmlybWF0aW9uJyl9fTwvbWF0LWVycm9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTIgbWItMlwiPlxuICAgICAgICA8dGVjaGxpZnktcGFzc3dvcmQtcmVxdWlyZW1lbnQtY2hlY2sgW3Bhc3N3b3JkXT1cInBhc3N3b3JkUmVzZXRGb3JtLmdldCgncGFzc3dvcmQnKS52YWx1ZVwiPjwvdGVjaGxpZnktcGFzc3dvcmQtcmVxdWlyZW1lbnQtY2hlY2s+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxtYXQtY2FyZC1hY3Rpb25zIGZ4TGF5b3V0QWxpZ249XCJlbmRcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1wcmltYXJ5IHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCI+XG4gICAgICAgICAgQ2hhbmdlIFBhc3N3b3JkXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgIDwvZm9ybT5cbiAgPC9tYXQtY2FyZD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,48 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ChangePasswordRoutingModule } from './change-password-routing.module';
4
+ import { ChangePasswordComponent } from './change-password.component';
5
+ import { MaterialModule } from '../material.module';
6
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import { FlexLayoutModule } from '@angular/flex-layout';
8
+ import { MatInputModule } from '@angular/material/input';
9
+ import { PasswordRequirementCheckModule } from '../password-requirement-check/password-requirement-check.module';
10
+ import * as i0 from "@angular/core";
11
+ export class ChangePasswordModule {
12
+ }
13
+ ChangePasswordModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ChangePasswordModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ ChangePasswordModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: ChangePasswordModule, declarations: [ChangePasswordComponent], imports: [CommonModule,
15
+ ChangePasswordRoutingModule,
16
+ MaterialModule,
17
+ FormsModule,
18
+ ReactiveFormsModule,
19
+ FlexLayoutModule,
20
+ MatInputModule,
21
+ PasswordRequirementCheckModule] });
22
+ ChangePasswordModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ChangePasswordModule, imports: [CommonModule,
23
+ ChangePasswordRoutingModule,
24
+ MaterialModule,
25
+ FormsModule,
26
+ ReactiveFormsModule,
27
+ FlexLayoutModule,
28
+ MatInputModule,
29
+ PasswordRequirementCheckModule] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ChangePasswordModule, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ declarations: [
34
+ ChangePasswordComponent,
35
+ ],
36
+ imports: [
37
+ CommonModule,
38
+ ChangePasswordRoutingModule,
39
+ MaterialModule,
40
+ FormsModule,
41
+ ReactiveFormsModule,
42
+ FlexLayoutModule,
43
+ MatInputModule,
44
+ PasswordRequirementCheckModule
45
+ ]
46
+ }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0saUVBQWlFLENBQUM7O0FBa0IvRyxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBYjdCLHVCQUF1QixhQUd2QixZQUFZO1FBQ1osMkJBQTJCO1FBQzNCLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsOEJBQThCO2tIQUdyQixvQkFBb0IsWUFWN0IsWUFBWTtRQUNaLDJCQUEyQjtRQUMzQixjQUFjO1FBQ2QsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLDhCQUE4QjsyRkFHckIsb0JBQW9CO2tCQWZoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLDJCQUEyQjt3QkFDM0IsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLDhCQUE4QjtxQkFDL0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmRSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9jaGFuZ2UtcGFzc3dvcmQtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtQYXNzd29yZFJlcXVpcmVtZW50Q2hlY2tNb2R1bGV9IGZyb20gJy4uL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrLm1vZHVsZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2hhbmdlUGFzc3dvcmRSb3V0aW5nTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBQYXNzd29yZFJlcXVpcmVtZW50Q2hlY2tNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaGFuZ2VQYXNzd29yZE1vZHVsZSB7IH1cbiJdfQ==
@@ -18,6 +18,5 @@ export * from './storage.service';
18
18
  export * from './techlify-config.model';
19
19
  export * from './token.interceptor';
20
20
  export * from './dataManager.service';
21
- export * from './pusher.service';
22
21
  export * from './filter.service';
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc25hY2svc25hY2suY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc25hY2svc25hY2subW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpLXByZWZpeC5pbnRlcmNlcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2F1dGhlbnRpY2F0aW9uLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhY2hlLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVkZW50aWFscy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3ItaGFuZGxlci5pbnRlcmNlcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLWhhbmRsZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tdmFsaWRhdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLWNhY2hlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2dnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlLXJldXNhYmxlLXN0cmF0ZWd5JztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGVjaGxpZnktY29uZmlnLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4uaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhTWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcHVzaGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXIuc2VydmljZSc7XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NuYWNrL3NuYWNrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NuYWNrL3NuYWNrLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWxlcnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS1wcmVmaXguaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoZW50aWNhdGlvbi5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWNoZS5pbnRlcmNlcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlZGVudGlhbHMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLWhhbmRsZXIuaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLXZhbGlkYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1jYWNoZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9nZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZS1yZXVzYWJsZS1zdHJhdGVneSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RlY2hsaWZ5LWNvbmZpZy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2VuLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YU1hbmFnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci5zZXJ2aWNlJztcbiJdfQ==
@@ -12,8 +12,6 @@ export class TechlifyConfig {
12
12
  this.authGrantType = '';
13
13
  this.apiUrl = '';
14
14
  this.isLogoutWhileApiGetsFailed = false;
15
- this.pusherAppKey = '';
16
- this.pusherAppCluster = '';
17
15
  this.loadFromMap(data);
18
16
  }
19
17
  loadFromMap(data) {
@@ -25,8 +23,6 @@ export class TechlifyConfig {
25
23
  this.storage = data?.storage;
26
24
  this.rawConfigs = data;
27
25
  this.isLogoutWhileApiGetsFailed = data?.isLogoutWhileApiGetsFailed;
28
- this.pusherAppKey = data?.pusherAppKey;
29
- this.pusherAppCluster = data?.pusherAppCluster;
30
26
  }
31
27
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jb3JlL3RlY2hsaWZ5LWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBWXZCLFlBQVksSUFBUztRQVhyQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUM5QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBR3BCLCtCQUEwQixHQUFZLEtBQUssQ0FBQztRQUM1QyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFHMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLEVBQUUsMEJBQTBCLENBQUM7UUFDbkUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEVBQUUsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsZ0JBQWdCLENBQUM7SUFDbkQsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDbGFzcyB0aGF0IHN0b3JlcyB0aGUgY29uZmlndXJhdGlvbiBkYXRhXG4gKlxuICogQGF1dGhvciBKb3NodWEgS2lzc29vblxuICogQHNpbmNlIDIwMTgwNzI0XG4gKi9cbmV4cG9ydCBjbGFzcyBUZWNobGlmeUNvbmZpZyB7XG4gICAgcHJvamVjdEtleTogc3RyaW5nID0gJyc7XG4gICAgZW52aXJvbm1lbnQ6IHN0cmluZyA9ICcnO1xuICAgIGF1dGhDbGllbnRTZWNyZXQ6IHN0cmluZyA9ICcnO1xuICAgIGF1dGhHcmFudFR5cGU6IHN0cmluZyA9ICcnO1xuICAgIGFwaVVybDogc3RyaW5nID0gJyc7XG4gICAgcmF3Q29uZmlnczogYW55O1xuICAgIHN0b3JhZ2U6IFN0b3JhZ2U7XG4gICAgaXNMb2dvdXRXaGlsZUFwaUdldHNGYWlsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdXNoZXJBcHBLZXk6IHN0cmluZyA9ICcnO1xuICAgIHB1c2hlckFwcENsdXN0ZXI6IHN0cmluZyA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMubG9hZEZyb21NYXAoZGF0YSk7XG4gICAgfVxuXG4gICAgbG9hZEZyb21NYXAoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMucHJvamVjdEtleSA9IGRhdGEucHJvamVjdEtleTtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGRhdGEuZW52aXJvbm1lbnQ7XG4gICAgICAgIHRoaXMuYXV0aENsaWVudFNlY3JldCA9IGRhdGEuYXV0aENsaWVudFNlY3JldDtcbiAgICAgICAgdGhpcy5hdXRoR3JhbnRUeXBlID0gZGF0YS5hdXRoR3JhbnRUeXBlO1xuICAgICAgICB0aGlzLmFwaVVybCA9IGRhdGEuYXBpVXJsO1xuICAgICAgICB0aGlzLnN0b3JhZ2UgPSBkYXRhPy5zdG9yYWdlO1xuICAgICAgICB0aGlzLnJhd0NvbmZpZ3MgPSBkYXRhO1xuICAgICAgICB0aGlzLmlzTG9nb3V0V2hpbGVBcGlHZXRzRmFpbGVkID0gZGF0YT8uaXNMb2dvdXRXaGlsZUFwaUdldHNGYWlsZWQ7XG4gICAgICAgIHRoaXMucHVzaGVyQXBwS2V5ID0gZGF0YT8ucHVzaGVyQXBwS2V5O1xuICAgICAgICB0aGlzLnB1c2hlckFwcENsdXN0ZXIgPSBkYXRhPy5wdXNoZXJBcHBDbHVzdGVyO1xuICAgIH1cblxufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jb3JlL3RlY2hsaWZ5LWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBVXZCLFlBQVksSUFBUztRQVRyQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUM5QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBR3BCLCtCQUEwQixHQUFZLEtBQUssQ0FBQztRQUd4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBUztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksRUFBRSwwQkFBMEIsQ0FBQztJQUN2RSxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsYXNzIHRoYXQgc3RvcmVzIHRoZSBjb25maWd1cmF0aW9uIGRhdGFcbiAqXG4gKiBAYXV0aG9yIEpvc2h1YSBLaXNzb29uXG4gKiBAc2luY2UgMjAxODA3MjRcbiAqL1xuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5Q29uZmlnIHtcbiAgICBwcm9qZWN0S2V5OiBzdHJpbmcgPSAnJztcbiAgICBlbnZpcm9ubWVudDogc3RyaW5nID0gJyc7XG4gICAgYXV0aENsaWVudFNlY3JldDogc3RyaW5nID0gJyc7XG4gICAgYXV0aEdyYW50VHlwZTogc3RyaW5nID0gJyc7XG4gICAgYXBpVXJsOiBzdHJpbmcgPSAnJztcbiAgICByYXdDb25maWdzOiBhbnk7XG4gICAgc3RvcmFnZTogU3RvcmFnZTtcbiAgICBpc0xvZ291dFdoaWxlQXBpR2V0c0ZhaWxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMubG9hZEZyb21NYXAoZGF0YSk7XG4gICAgfVxuXG4gICAgbG9hZEZyb21NYXAoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMucHJvamVjdEtleSA9IGRhdGEucHJvamVjdEtleTtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGRhdGEuZW52aXJvbm1lbnQ7XG4gICAgICAgIHRoaXMuYXV0aENsaWVudFNlY3JldCA9IGRhdGEuYXV0aENsaWVudFNlY3JldDtcbiAgICAgICAgdGhpcy5hdXRoR3JhbnRUeXBlID0gZGF0YS5hdXRoR3JhbnRUeXBlO1xuICAgICAgICB0aGlzLmFwaVVybCA9IGRhdGEuYXBpVXJsO1xuICAgICAgICB0aGlzLnN0b3JhZ2UgPSBkYXRhPy5zdG9yYWdlO1xuICAgICAgICB0aGlzLnJhd0NvbmZpZ3MgPSBkYXRhO1xuICAgICAgICB0aGlzLmlzTG9nb3V0V2hpbGVBcGlHZXRzRmFpbGVkID0gZGF0YT8uaXNMb2dvdXRXaGlsZUFwaUdldHNGYWlsZWQ7XG4gICAgfVxuXG59XG4iXX0=
@@ -29,10 +29,12 @@ export class EntityFileFormComponent {
29
29
  this.entityFileService = entityFileService;
30
30
  this.alertService = alertService;
31
31
  this.fileList = [];
32
+ this.isSaving = false;
32
33
  /**
33
34
  * Should we allow tagging entity-files?
34
35
  */
35
36
  this.useTechlifyTags = false;
37
+ this.techlifyTagCategories = [];
36
38
  this.createForm();
37
39
  }
38
40
  /** Method to create a form **/
@@ -64,6 +66,11 @@ export class EntityFileFormComponent {
64
66
  }
65
67
  if (this.data?.useTechlifyTags) {
66
68
  this.useTechlifyTags = this.data?.useTechlifyTags;
69
+ this.techlifyTagCategories = this.data?.techlifyTagCategories;
70
+ this.techlifyTagConfig = this.data?.techlifyTagConfig;
71
+ if (this.data.file?.tags) {
72
+ this.entityFileGroup.get('tag_ids').setValue(this.data.file?.tags.map((tag) => tag.id));
73
+ }
67
74
  }
68
75
  //File dropper config
69
76
  this.fileConfig = {
@@ -95,11 +102,21 @@ export class EntityFileFormComponent {
95
102
  model.title = model.file;
96
103
  }
97
104
  model.tag_ids = model.tag_ids.toString();
98
- const result = this.updateMode
99
- ? await this.entityFileService.updateEntityFile(model)
100
- : await this.entityFileService.createEntityFile(model);
101
- this.dialogRef.close(result.item);
102
- this.alertService.addAlert("File submitted successfully", "success");
105
+ const params = {
106
+ with: 'creator,tags'
107
+ };
108
+ this.isSaving = true;
109
+ const request = this.updateMode
110
+ ? this.entityFileService.update(model, params)
111
+ : this.entityFileService.store(model, params);
112
+ request.subscribe({
113
+ next: (result) => {
114
+ this.isSaving = false;
115
+ this.dialogRef.close(result.item);
116
+ this.alertService.addAlert('File submitted successfully', 'success');
117
+ },
118
+ error: () => this.isSaving = false
119
+ });
103
120
  }
104
121
  async fileChanged(event) {
105
122
  this.fileList = event;
@@ -133,12 +150,12 @@ export class EntityFileFormComponent {
133
150
  }
134
151
  }
135
152
  EntityFileFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: EntityFileFormComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.FormValidatorService }, { token: i3.UntypedFormBuilder }, { token: i4.EntityFileService }, { token: i5.AlertService }], target: i0.ɵɵFactoryTarget.Component });
136
- EntityFileFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: EntityFileFormComponent, selector: "entity-file-form", ngImport: i0, template: "<form [formGroup]=\"entityFileGroup\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>Entity File</div>\n </div>\n <div mat-dialog-content fxLayout=\"column\" fxLayoutAlign.=\"start\">\n <ng-container *ngIf=\"!hideTitleAndDetails\">\n <mat-form-field>\n <input type=\"text\" matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\">\n </mat-form-field>\n <mat-form-field>\n <textarea matInput formControlName=\"details\" placeholder=\"Details\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n </ng-container>\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field modelType=\"entity-file\" formControlName=\"tag_ids\"\n [modelId]=\"entityFileGroup.get('id').value\" placeholder=\"Enter new tag\"></app-techlify-tagger-tag-form-field>\n </mat-form-field>\n </ng-container>\n <ng-template #fileUpload>\n <section fxFlex=\"100%\">\n <div>Entity File*</div>\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\" [fileArray]=\"fileList\">\n </app-file-dropper>\n <div class=\"text-danger\" *ngIf=\"isFieldValid('url')\">\n {{getErrorMessage(\"url\")}}\n </div>\n </section>\n </ng-template>\n <div fxFlex=\"100%\" class=\"mt-2\" *ngIf=\"entityFileGroup.get('url').value;else fileUpload;\">\n <app-document-viewer [file]=\"entityFileGroup.get('file').value\" [fileUrl]=\"entityFileGroup.get('url').value\"\n [config]=\"this.viewerConfig\" (remove)=\"removeFile()\" [disableEdit]=\"updateMode\">\n </app-document-viewer>\n </div>\n <div class=\"mt-4 mb-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button mat-raised-button type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button type=\"submit\" color=\"primary\">Save</button>\n </div>\n </div>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i8.FileDropperComponent, selector: "app-file-dropper", inputs: ["fileArray", "config", "styles"], outputs: ["fileChanged"] }, { kind: "component", type: i9.DocumentViewerComponent, selector: "app-document-viewer", inputs: ["config", "file", "fileUrl", "disableEdit"], outputs: ["remove"] }, { kind: "component", type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "directive", type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i13.TechlifyTaggerTagFormFieldComponent, selector: "app-techlify-tagger-tag-form-field", inputs: ["config", "modelType", "modelId", "allTags", "categories", "defaultCreateCategory", "required", "disabled", "value", "placeholder"] }] });
153
+ EntityFileFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: EntityFileFormComponent, selector: "entity-file-form", ngImport: i0, template: "<form [formGroup]=\"entityFileGroup\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>Entity File</div>\n </div>\n <div mat-dialog-content fxLayout=\"column\" fxLayoutAlign.=\"start\">\n <ng-container *ngIf=\"!hideTitleAndDetails\">\n <mat-form-field>\n <input type=\"text\" matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\">\n </mat-form-field>\n <mat-form-field>\n <textarea matInput formControlName=\"details\" placeholder=\"Details\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n </ng-container>\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field\n [categories]=\"techlifyTagCategories\"\n modelType=\"entity-file\"\n formControlName=\"tag_ids\"\n [modelId]=\"entityFileGroup.get('id').value\"\n placeholder=\"Enter new tag\"\n [config]=\"techlifyTagConfig\"\n ></app-techlify-tagger-tag-form-field>\n </mat-form-field>\n </ng-container>\n <ng-template #fileUpload>\n <section fxFlex=\"100%\">\n <div>Entity File*</div>\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\" [fileArray]=\"fileList\">\n </app-file-dropper>\n <div class=\"text-danger\" *ngIf=\"isFieldValid('url')\">\n {{getErrorMessage(\"url\")}}\n </div>\n </section>\n </ng-template>\n <div fxFlex=\"100%\" class=\"mt-2\" *ngIf=\"entityFileGroup.get('url').value;else fileUpload;\">\n <app-document-viewer [file]=\"entityFileGroup.get('file').value\" [fileUrl]=\"entityFileGroup.get('url').value\"\n [config]=\"this.viewerConfig\" (remove)=\"removeFile()\" [disableEdit]=\"updateMode\">\n </app-document-viewer>\n </div>\n <div class=\"mt-4 mb-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button [disabled]=\"isSaving\" mat-raised-button type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button [disabled]=\"isSaving\" mat-raised-button type=\"submit\" color=\"primary\">Save</button>\n </div>\n </div>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i8.FileDropperComponent, selector: "app-file-dropper", inputs: ["fileArray", "config", "styles"], outputs: ["fileChanged"] }, { kind: "component", type: i9.DocumentViewerComponent, selector: "app-document-viewer", inputs: ["config", "file", "fileUrl", "disableEdit"], outputs: ["remove"] }, { kind: "component", type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "directive", type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i13.TechlifyTaggerTagFormFieldComponent, selector: "app-techlify-tagger-tag-form-field", inputs: ["config", "modelType", "modelId", "allTags", "categories", "defaultCreateCategory", "required", "disabled", "value", "placeholder"] }] });
137
154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: EntityFileFormComponent, decorators: [{
138
155
  type: Component,
139
- args: [{ selector: 'entity-file-form', template: "<form [formGroup]=\"entityFileGroup\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>Entity File</div>\n </div>\n <div mat-dialog-content fxLayout=\"column\" fxLayoutAlign.=\"start\">\n <ng-container *ngIf=\"!hideTitleAndDetails\">\n <mat-form-field>\n <input type=\"text\" matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\">\n </mat-form-field>\n <mat-form-field>\n <textarea matInput formControlName=\"details\" placeholder=\"Details\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n </ng-container>\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field modelType=\"entity-file\" formControlName=\"tag_ids\"\n [modelId]=\"entityFileGroup.get('id').value\" placeholder=\"Enter new tag\"></app-techlify-tagger-tag-form-field>\n </mat-form-field>\n </ng-container>\n <ng-template #fileUpload>\n <section fxFlex=\"100%\">\n <div>Entity File*</div>\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\" [fileArray]=\"fileList\">\n </app-file-dropper>\n <div class=\"text-danger\" *ngIf=\"isFieldValid('url')\">\n {{getErrorMessage(\"url\")}}\n </div>\n </section>\n </ng-template>\n <div fxFlex=\"100%\" class=\"mt-2\" *ngIf=\"entityFileGroup.get('url').value;else fileUpload;\">\n <app-document-viewer [file]=\"entityFileGroup.get('file').value\" [fileUrl]=\"entityFileGroup.get('url').value\"\n [config]=\"this.viewerConfig\" (remove)=\"removeFile()\" [disableEdit]=\"updateMode\">\n </app-document-viewer>\n </div>\n <div class=\"mt-4 mb-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button mat-raised-button type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button type=\"submit\" color=\"primary\">Save</button>\n </div>\n </div>\n </div>\n</form>\n" }]
156
+ args: [{ selector: 'entity-file-form', template: "<form [formGroup]=\"entityFileGroup\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>Entity File</div>\n </div>\n <div mat-dialog-content fxLayout=\"column\" fxLayoutAlign.=\"start\">\n <ng-container *ngIf=\"!hideTitleAndDetails\">\n <mat-form-field>\n <input type=\"text\" matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\">\n </mat-form-field>\n <mat-form-field>\n <textarea matInput formControlName=\"details\" placeholder=\"Details\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n </ng-container>\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field\n [categories]=\"techlifyTagCategories\"\n modelType=\"entity-file\"\n formControlName=\"tag_ids\"\n [modelId]=\"entityFileGroup.get('id').value\"\n placeholder=\"Enter new tag\"\n [config]=\"techlifyTagConfig\"\n ></app-techlify-tagger-tag-form-field>\n </mat-form-field>\n </ng-container>\n <ng-template #fileUpload>\n <section fxFlex=\"100%\">\n <div>Entity File*</div>\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\" [fileArray]=\"fileList\">\n </app-file-dropper>\n <div class=\"text-danger\" *ngIf=\"isFieldValid('url')\">\n {{getErrorMessage(\"url\")}}\n </div>\n </section>\n </ng-template>\n <div fxFlex=\"100%\" class=\"mt-2\" *ngIf=\"entityFileGroup.get('url').value;else fileUpload;\">\n <app-document-viewer [file]=\"entityFileGroup.get('file').value\" [fileUrl]=\"entityFileGroup.get('url').value\"\n [config]=\"this.viewerConfig\" (remove)=\"removeFile()\" [disableEdit]=\"updateMode\">\n </app-document-viewer>\n </div>\n <div class=\"mt-4 mb-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button [disabled]=\"isSaving\" mat-raised-button type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button [disabled]=\"isSaving\" mat-raised-button type=\"submit\" color=\"primary\">Save</button>\n </div>\n </div>\n </div>\n</form>\n" }]
140
157
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
141
158
  type: Inject,
142
159
  args: [MAT_DIALOG_DATA]
143
160
  }] }, { type: i2.FormValidatorService }, { type: i3.UntypedFormBuilder }, { type: i4.EntityFileService }, { type: i5.AlertService }]; } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2VudGl0eS1maWxlcy9lbnRpdHktZmlsZS1mb3JtL2VudGl0eS1maWxlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9lbnRpdHktZmlsZXMvZW50aXR5LWZpbGUtZm9ybS9lbnRpdHktZmlsZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBT2xGLE1BQU0sYUFBYSxHQUFRO0lBQ3pCLEdBQUcsRUFBRTtRQUNILFFBQVEsRUFBRSxrQkFBa0I7S0FDN0I7Q0FDRixDQUFDO0FBT0YsTUFBTSxPQUFPLHVCQUF1QjtJQWVsQyxZQUNTLFNBQWdELEVBQ3ZCLElBQVMsRUFDakMsb0JBQTBDLEVBQzFDLEVBQXNCLEVBQ3RCLGlCQUFvQyxFQUNwQyxZQUEwQjtRQUwzQixjQUFTLEdBQVQsU0FBUyxDQUF1QztRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWZwQyxhQUFRLEdBQVUsRUFBRSxDQUFDO1FBSXJCOztXQUVHO1FBQ0gsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFV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LG1DQUFtQztJQUNuQyxZQUFZLENBQUMsS0FBYTtRQUN4QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQzNDLEtBQUssRUFDTCxJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsMEJBQTBCLENBQ2hDLENBQUM7SUFDSixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLGVBQWUsQ0FBQyxLQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FDOUMsS0FBSyxFQUNMLElBQUksQ0FBQyxlQUFlLEVBQ3BCLGFBQWEsQ0FDZCxDQUFDO0lBQ0osQ0FBQzs7b0hBckpVLHVCQUF1Qiw4Q0FpQnhCLGVBQWU7d0dBakJkLHVCQUF1Qix3RENwQnBDLHlyRUE2Q0E7MkZEekJhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQXFCekIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRW50aXR5RmlsZVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVEcm9wcGVyQ29uZmlnIH0gZnJvbSAnLi4vLi4vZmlsZS1kcm9wcGVyL2ZpbGUtZHJvcHBlci5tb2RlbCc7XG5pbXBvcnQgeyBWaWV3ZXJDb25maWcgfSBmcm9tICcuLi8uLi9kb2N1bWVudC12aWV3ZXIvdmlld2VyLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS12YWxpZGF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9hbGVydC5zZXJ2aWNlXCI7XG5cbmNvbnN0IGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgdXJsOiB7XG4gICAgcmVxdWlyZWQ6IFwiRmlsZSBpcyByZXF1aXJlZFwiXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbnRpdHktZmlsZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1maWxlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRpdHktZmlsZS1mb3JtLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlGaWxlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZW50aXR5RmlsZUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBhc3NpZ25tZW50RmlsZUZpcnN0QXR0ZW1wdDogYm9vbGVhbjtcbiAgdXBkYXRlTW9kZTogYm9vbGVhbjtcbiAgZmlsZUNvbmZpZzogRmlsZURyb3BwZXJDb25maWc7XG4gIGZpbGVMaXN0OiBhbnlbXSA9IFtdO1xuICB2aWV3ZXJDb25maWc6IFZpZXdlckNvbmZpZztcbiAgaGlkZVRpdGxlQW5kRGV0YWlsczogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdWxkIHdlIGFsbG93IHRhZ2dpbmcgZW50aXR5LWZpbGVzP1xuICAgKi9cbiAgdXNlVGVjaGxpZnlUYWdzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVudGl0eUZpbGVGb3JtQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBlbnRpdHlGaWxlU2VydmljZTogRW50aXR5RmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIC8qKiBNZXRob2QgdG8gY3JlYXRlIGEgZm9ybSAqKi9cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIC8vVE9ETzogRmluaWFsaXplIGFuZCBhZGQgbW9yZSB2YWxpZGF0aW9ucy5cbiAgICB0aGlzLmVudGl0eUZpbGVHcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgaWQ6IFsnJ10sXG4gICAgICB0aXRsZTogWycnXSxcbiAgICAgIGRldGFpbHM6IFsnJ10sXG4gICAgICBlbnRpdHlfdHlwZTogWycnXSxcbiAgICAgIGVudGl0eV9pZDogW10sXG4gICAgICBmaWxlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgdXJsOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZmlsZV9zaXplOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgdGFnX2lkczogW1tdXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YS5lbnRpdHkpIHtcbiAgICAgIHRoaXMuZW50aXR5RmlsZUdyb3VwLmdldCgnZW50aXR5X3R5cGUnKS5zZXRWYWx1ZSh0aGlzLmRhdGEuZW50aXR5LmVudGl0eV90eXBlKTtcbiAgICAgIHRoaXMuZW50aXR5RmlsZUdyb3VwLmdldCgnZW50aXR5X2lkJykuc2V0VmFsdWUodGhpcy5kYXRhLmVudGl0eS5lbnRpdHlfaWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kYXRhLmZpbGUpIHtcbiAgICAgIHRoaXMudXBkYXRlTW9kZSA9IHRydWU7XG4gICAgICB0aGlzLmVudGl0eUZpbGVHcm91cC5wYXRjaFZhbHVlKHRoaXMuZGF0YS5maWxlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhPy5oaWRlVGl0bGVBbmREZXRhaWxzKSB7XG4gICAgICB0aGlzLmhpZGVUaXRsZUFuZERldGFpbHMgPSB0aGlzLmRhdGE/LmhpZGVUaXRsZUFuZERldGFpbHM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0YT8udXNlVGVjaGxpZnlUYWdzKSB7XG4gICAgICB0aGlzLnVzZVRlY2hsaWZ5VGFncyA9IHRoaXMuZGF0YT8udXNlVGVjaGxpZnlUYWdzO1xuICAgIH1cblxuICAgIC8vRmlsZSBkcm9wcGVyIGNvbmZpZ1xuICAgIHRoaXMuZmlsZUNvbmZpZyA9IHtcbiAgICAgIGZpbGVJZDogXCJzdWJqZWN0RmlsZVwiLFxuICAgICAgY29udGFpbmVySWQ6IFwic3ViamVjdEZpbGVDb250YWluZXJcIixcbiAgICAgIHN0eWxlczoge1xuICAgICAgICBoZWlnaHQ6IFwiMjAwcHhcIlxuICAgICAgfSxcbiAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgIGFjY2VwdEZpbGU6IFwiKlwiLFxuICAgICAgbWF4U2l6ZTogMTAsXG4gICAgICBhY2NlcHRGaWxlVGV4dDogXCJBbGwgRmlsZXNcIlxuICAgIH07XG5cbiAgICB0aGlzLnZpZXdlckNvbmZpZyA9IHtcbiAgICAgIHZpZXdlclN0eWxlOiB7XG4gICAgICAgIGhlaWdodDogJzIwMHB4JyxcbiAgICAgICAgd2lkdGg6ICcxMDAlJ1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLy9NZXRob2QgdG8gdHJpZ2dlciBzdWJtaXRcbiAgYXN5bmMgc3VibWl0KCkge1xuICAgIHRoaXMuYXNzaWdubWVudEZpbGVGaXJzdEF0dGVtcHQgPSB0cnVlO1xuICAgIGlmICghdGhpcy5lbnRpdHlGaWxlR3JvdXAudmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmVudGl0eUZpbGVHcm91cC52YWx1ZTtcblxuICAgIGlmICh0aGlzLmhpZGVUaXRsZUFuZERldGFpbHMpIHtcbiAgICAgIG1vZGVsLnRpdGxlID0gbW9kZWwuZmlsZTtcbiAgICB9XG4gICAgbW9kZWwudGFnX2lkcyA9IG1vZGVsLnRhZ19pZHMudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gdGhpcy51cGRhdGVNb2RlXG4gICAgICA/IGF3YWl0IHRoaXMuZW50aXR5RmlsZVNlcnZpY2UudXBkYXRlRW50aXR5RmlsZShtb2RlbClcbiAgICAgIDogYXdhaXQgdGhpcy5lbnRpdHlGaWxlU2VydmljZS5jcmVhdGVFbnRpdHlGaWxlKG1vZGVsKTtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQuaXRlbSk7XG4gICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoXG4gICAgICBcIkZpbGUgc3VibWl0dGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgXCJzdWNjZXNzXCJcbiAgICApO1xuXG4gIH1cblxuICBhc3luYyBmaWxlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5maWxlTGlzdCA9IGV2ZW50O1xuXG4gICAgaWYgKHRoaXMuZmlsZUxpc3QubGVuZ3RoID4gMCkge1xuXG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IGF3YWl0IHRoaXMuZW50aXR5RmlsZVNlcnZpY2UudXBsb2FkRW50aXR5RmlsZShcbiAgICAgICAgdGhpcy5maWxlTGlzdFswXSxcbiAgICAgICk7XG4gICAgICB0aGlzLmVudGl0eUZpbGVHcm91cC5wYXRjaFZhbHVlKHJlc3VsdC5pdGVtKTs7XG4gICAgICB0aGlzLmZpbGVMaXN0ID0gW107XG4gICAgfVxuICB9XG5cblxuICBhc3luYyByZW1vdmVGaWxlKCkge1xuICAgIGlmICh0aGlzLmVudGl0eUZpbGVHcm91cC52YWx1ZS5maWxlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmVudGl0eUZpbGVHcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBmaWxlOiBcIlwiLFxuICAgICAgICAgIHVybDogXCJcIlxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KFwiVW5hYmxlIHRvIHJlbW92ZSBmaWxlLCB0cnkgbGF0ZXJcIiwgXCJ3YXJuXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKk1ldGhvZCB0byBldmFsdWF0ZSBmb3JtIGZpZWxkcyovXG4gIGlzRmllbGRWYWxpZChmaWVsZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuaXNGaWVsZFZhbGlkKFxuICAgICAgZmllbGQsXG4gICAgICB0aGlzLmVudGl0eUZpbGVHcm91cCxcbiAgICAgIHRoaXMuYXNzaWdubWVudEZpbGVGaXJzdEF0dGVtcHRcbiAgICApO1xuICB9XG5cbiAgLyoqTWV0aG9kIHRvIGZpbmQgZXJyb3IgaW4gZm9ybSBmaWVsZHMqL1xuICBnZXRFcnJvck1lc3NhZ2UoZmllbGQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWxpZGF0b3JTZXJ2aWNlLmdldEVycm9yTWVzc2FnZShcbiAgICAgIGZpZWxkLFxuICAgICAgdGhpcy5lbnRpdHlGaWxlR3JvdXAsXG4gICAgICBlcnJvck1lc3NhZ2VzXG4gICAgKTtcbiAgfVxuXG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImVudGl0eUZpbGVHcm91cFwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgIDxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICA8ZGl2PkVudGl0eSBGaWxlPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduLj1cInN0YXJ0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVUaXRsZUFuZERldGFpbHNcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgcGxhY2Vob2xkZXI9XCJUaXRsZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImRldGFpbHNcIiBwbGFjZWhvbGRlcj1cIkRldGFpbHNcIiBhdXRvY29tcGxldGU9XCJvZmZcIj48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlVGVjaGxpZnlUYWdzXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPlRhZzwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxhcHAtdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkIG1vZGVsVHlwZT1cImVudGl0eS1maWxlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGFnX2lkc1wiXG4gICAgICAgICAgICBbbW9kZWxJZF09XCJlbnRpdHlGaWxlR3JvdXAuZ2V0KCdpZCcpLnZhbHVlXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBuZXcgdGFnXCI+PC9hcHAtdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2ZpbGVVcGxvYWQ+XG4gICAgICAgIDxzZWN0aW9uIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgICA8ZGl2PkVudGl0eSBGaWxlKjwvZGl2PlxuICAgICAgICAgIDxhcHAtZmlsZS1kcm9wcGVyIFtjb25maWddPVwiZmlsZUNvbmZpZ1wiIChmaWxlQ2hhbmdlZCk9XCJmaWxlQ2hhbmdlZCgkZXZlbnQpXCIgW2ZpbGVBcnJheV09XCJmaWxlTGlzdFwiPlxuICAgICAgICAgIDwvYXBwLWZpbGUtZHJvcHBlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIiAqbmdJZj1cImlzRmllbGRWYWxpZCgndXJsJylcIj5cbiAgICAgICAgICAgIHt7Z2V0RXJyb3JNZXNzYWdlKFwidXJsXCIpfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxkaXYgZnhGbGV4PVwiMTAwJVwiIGNsYXNzPVwibXQtMlwiICpuZ0lmPVwiZW50aXR5RmlsZUdyb3VwLmdldCgndXJsJykudmFsdWU7ZWxzZSBmaWxlVXBsb2FkO1wiPlxuICAgICAgICA8YXBwLWRvY3VtZW50LXZpZXdlciBbZmlsZV09XCJlbnRpdHlGaWxlR3JvdXAuZ2V0KCdmaWxlJykudmFsdWVcIiBbZmlsZVVybF09XCJlbnRpdHlGaWxlR3JvdXAuZ2V0KCd1cmwnKS52YWx1ZVwiXG4gICAgICAgICAgW2NvbmZpZ109XCJ0aGlzLnZpZXdlckNvbmZpZ1wiIChyZW1vdmUpPVwicmVtb3ZlRmlsZSgpXCIgW2Rpc2FibGVFZGl0XT1cInVwZGF0ZU1vZGVcIj5cbiAgICAgICAgPC9hcHAtZG9jdW1lbnQtdmlld2VyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibXQtNCBtYi0yXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjMwcHhcIiBmeExheW91dEFsaWduPVwiZW5kXCIgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZGlhbG9nUmVmLmNsb3NlKClcIj5cbiAgICAgICAgICBDYW5jZWxcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiPlNhdmU8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2VudGl0eS1maWxlcy9lbnRpdHktZmlsZS1mb3JtL2VudGl0eS1maWxlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9lbnRpdHktZmlsZXMvZW50aXR5LWZpbGUtZm9ybS9lbnRpdHktZmlsZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBV2xGLE1BQU0sYUFBYSxHQUFRO0lBQ3pCLEdBQUcsRUFBRTtRQUNILFFBQVEsRUFBRSxrQkFBa0I7S0FDN0I7Q0FDRixDQUFDO0FBT0YsTUFBTSxPQUFPLHVCQUF1QjtJQWlCbEMsWUFDUyxTQUFnRCxFQUN2QixJQUFTLEVBQ2pDLG9CQUEwQyxFQUMxQyxFQUFzQixFQUN0QixpQkFBb0MsRUFDcEMsWUFBMEI7UUFMM0IsY0FBUyxHQUFULFNBQVMsQ0FBdUM7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFsQnBDLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFHckIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQjs7V0FFRztR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RUFDTCxJQUFJLENBQUMsZUFBZSxFQUNwQixhQUFhLENBQ2QsQ0FBQztJQUNKLENBQUM7O29IQXRLVSx1QkFBdUIsOENBbUJ4QixlQUFlO3dHQW5CZCx1QkFBdUIsd0RDeEJwQyw0M0VBbURBOzJGRDNCYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0JBQWtCOzswQkF1QnpCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEVudGl0eUZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LWZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlRHJvcHBlckNvbmZpZyB9IGZyb20gJy4uLy4uL2ZpbGUtZHJvcHBlci9maWxlLWRyb3BwZXIubW9kZWwnO1xuaW1wb3J0IHsgVmlld2VyQ29uZmlnIH0gZnJvbSAnLi4vLi4vZG9jdW1lbnQtdmlld2VyL3ZpZXdlci1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm0tdmFsaWRhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvYWxlcnQuc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgVGVjaGxpZnlUYWdnZXJUYWdGb3JtQ29uZmlnTW9kZWxcbn0gZnJvbSBcIi4uLy4uL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tY29uZmlnLm1vZGVsXCI7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbmNvbnN0IGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgdXJsOiB7XG4gICAgcmVxdWlyZWQ6IFwiRmlsZSBpcyByZXF1aXJlZFwiXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbnRpdHktZmlsZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1maWxlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRpdHktZmlsZS1mb3JtLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlGaWxlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVudGl0eUZpbGVHcm91cDogVW50eXBlZEZvcm1Hcm91cDtcbiAgYXNzaWdubWVudEZpbGVGaXJzdEF0dGVtcHQ6IGJvb2xlYW47XG4gIHVwZGF0ZU1vZGU6IGJvb2xlYW47XG4gIGZpbGVDb25maWc6IEZpbGVEcm9wcGVyQ29uZmlnO1xuICBmaWxlTGlzdDogYW55W10gPSBbXTtcbiAgdmlld2VyQ29uZmlnOiBWaWV3ZXJDb25maWc7XG4gIGhpZGVUaXRsZUFuZERldGFpbHM6IGJvb2xlYW47XG4gIGlzU2F2aW5nID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB3ZSBhbGxvdyB0YWdnaW5nIGVudGl0eS1maWxlcz9cbiAgICovXG4gIHVzZVRlY2hsaWZ5VGFncyA9IGZhbHNlO1xuICB0ZWNobGlmeVRhZ0NhdGVnb3JpZXM6IHN0cmluZ1tdID0gW107XG4gIHRlY2hsaWZ5VGFnQ29uZmlnOiBUZWNobGlmeVRhZ2dlclRhZ0Zvcm1Db25maWdNb2RlbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RW50aXR5RmlsZUZvcm1Db21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgIHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGVudGl0eUZpbGVTZXJ2aWNlOiBFbnRpdHlGaWxlU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgLyoqIE1ldGhvZCB0byBjcmVhdGUgYSBmb3JtICoqL1xuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgLy9UT0RPOiBGaW5pYWxpemUgYW5kIGFkZCBtb3JlIHZhbGlkYXRpb25zLlxuICAgIHRoaXMuZW50aXR5RmlsZUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBpZDogWycnXSxcbiAgICAgIHRpdGxlOiBbJyddLFxuICAgICAgZGV0YWlsczogWycnXSxcbiAgICAgIGVudGl0eV90eXBlOiBbJyddLFxuICAgICAgZW50aXR5X2lkOiBbXSxcbiAgICAgIGZpbGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICB1cmw6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBmaWxlX3NpemU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICB0YWdfaWRzOiBbW11dXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhLmVudGl0eSkge1xuICAgICAgdGhpcy5lbnRpdHlGaWxlR3JvdXAuZ2V0KCdlbnRpdHlfdHlwZScpLnNldFZhbHVlKHRoaXMuZGF0YS5lbnRpdHkuZW50aXR5X3R5cGUpO1xuICAgICAgdGhpcy5lbnRpdHlGaWxlR3JvdXAuZ2V0KCdlbnRpdHlfaWQnKS5zZXRWYWx1ZSh0aGlzLmRhdGEuZW50aXR5LmVudGl0eV9pZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRhdGEuZmlsZSkge1xuICAgICAgdGhpcy51cGRhdGVNb2RlID0gdHJ1ZTtcbiAgICAgIHRoaXMuZW50aXR5RmlsZUdyb3VwLnBhdGNoVmFsdWUodGhpcy5kYXRhLmZpbGUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGE/LmhpZGVUaXRsZUFuZERldGFpbHMpIHtcbiAgICAgIHRoaXMuaGlkZVRpdGxlQW5kRGV0YWlscyA9IHRoaXMuZGF0YT8uaGlkZVRpdGxlQW5kRGV0YWlscztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhPy51c2VUZWNobGlmeVRhZ3MpIHtcbiAgICAgIHRoaXMudXNlVGVjaGxpZnlUYWdzID0gdGhpcy5kYXRhPy51c2VUZWNobGlmeVRhZ3M7XG4gICAgICB0aGlzLnRlY2hsaWZ5VGFnQ2F0ZWdvcmllcyA9IHRoaXMuZGF0YT8udGVjaGxpZnlUYWdDYXRlZ29yaWVzO1xuICAgICAgdGhpcy50ZWNobGlmeVRhZ0NvbmZpZyA9IHRoaXMuZGF0YT8udGVjaGxpZnlUYWdDb25maWc7XG4gICAgICBpZiAodGhpcy5kYXRhLmZpbGU/LnRhZ3MpIHtcbiAgICAgICAgdGhpcy5lbnRpdHlGaWxlR3JvdXAuZ2V0KCd0YWdfaWRzJykuc2V0VmFsdWUoXG4gICAgICAgICAgKHRoaXMuZGF0YS5maWxlPy50YWdzIGFzIFtdKS5tYXAoKHRhZzogYW55KSA9PiB0YWcuaWQpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9GaWxlIGRyb3BwZXIgY29uZmlnXG4gICAgdGhpcy5maWxlQ29uZmlnID0ge1xuICAgICAgZmlsZUlkOiBcInN1YmplY3RGaWxlXCIsXG4gICAgICBjb250YWluZXJJZDogXCJzdWJqZWN0RmlsZUNvbnRhaW5lclwiLFxuICAgICAgc3R5bGVzOiB7XG4gICAgICAgIGhlaWdodDogXCIyMDBweFwiXG4gICAgICB9LFxuICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgYWNjZXB0RmlsZTogXCIqXCIsXG4gICAgICBtYXhTaXplOiAxMCxcbiAgICAgIGFjY2VwdEZpbGVUZXh0OiBcIkFsbCBGaWxlc1wiXG4gICAgfTtcblxuICAgIHRoaXMudmlld2VyQ29uZmlnID0ge1xuICAgICAgdmlld2VyU3R5bGU6IHtcbiAgICAgICAgaGVpZ2h0OiAnMjAwcHgnLFxuICAgICAgICB3aWR0aDogJzEwMCUnXG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvL01ldGhvZCB0byB0cmlnZ2VyIHN1Ym1pdFxuICBhc3luYyBzdWJtaXQoKSB7XG4gICAgdGhpcy5hc3NpZ25tZW50RmlsZUZpcnN0QXR0ZW1wdCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmVudGl0eUZpbGVHcm91cC52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuZW50aXR5RmlsZUdyb3VwLnZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaGlkZVRpdGxlQW5kRGV0YWlscykge1xuICAgICAgbW9kZWwudGl0bGUgPSBtb2RlbC5maWxlO1xuICAgIH1cbiAgICBtb2RlbC50YWdfaWRzID0gbW9kZWwudGFnX2lkcy50b1N0cmluZygpO1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgd2l0aDogJ2NyZWF0b3IsdGFncydcbiAgICB9O1xuICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHJlcXVlc3Q6IE9ic2VydmFibGU8YW55PiA9IHRoaXMudXBkYXRlTW9kZVxuICAgICAgPyB0aGlzLmVudGl0eUZpbGVTZXJ2aWNlLnVwZGF0ZShtb2RlbCwgcGFyYW1zKVxuICAgICAgOiB0aGlzLmVudGl0eUZpbGVTZXJ2aWNlLnN0b3JlKG1vZGVsLCBwYXJhbXMpO1xuICAgIHJlcXVlc3Quc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlc3VsdC5pdGVtKTtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChcbiAgICAgICAgICAgICdGaWxlIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHknLFxuICAgICAgICAgICAgJ3N1Y2Nlc3MnXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMuaXNTYXZpbmcgPSBmYWxzZVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZmlsZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsZUxpc3QgPSBldmVudDtcblxuICAgIGlmICh0aGlzLmZpbGVMaXN0Lmxlbmd0aCA+IDApIHtcblxuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCB0aGlzLmVudGl0eUZpbGVTZXJ2aWNlLnVwbG9hZEVudGl0eUZpbGUoXG4gICAgICAgIHRoaXMuZmlsZUxpc3RbMF0sXG4gICAgICApO1xuICAgICAgdGhpcy5lbnRpdHlGaWxlR3JvdXAucGF0Y2hWYWx1ZShyZXN1bHQuaXRlbSk7O1xuICAgICAgdGhpcy5maWxlTGlzdCA9IFtdO1xuICAgIH1cbiAgfVxuXG5cbiAgYXN5bmMgcmVtb3ZlRmlsZSgpIHtcbiAgICBpZiAodGhpcy5lbnRpdHlGaWxlR3JvdXAudmFsdWUuZmlsZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5lbnRpdHlGaWxlR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgZmlsZTogXCJcIixcbiAgICAgICAgICB1cmw6IFwiXCJcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChcIlVuYWJsZSB0byByZW1vdmUgZmlsZSwgdHJ5IGxhdGVyXCIsIFwid2FyblwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipNZXRob2QgdG8gZXZhbHVhdGUgZm9ybSBmaWVsZHMqL1xuICBpc0ZpZWxkVmFsaWQoZmllbGQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWxpZGF0b3JTZXJ2aWNlLmlzRmllbGRWYWxpZChcbiAgICAgIGZpZWxkLFxuICAgICAgdGhpcy5lbnRpdHlGaWxlR3JvdXAsXG4gICAgICB0aGlzLmFzc2lnbm1lbnRGaWxlRmlyc3RBdHRlbXB0XG4gICAgKTtcbiAgfVxuXG4gIC8qKk1ldGhvZCB0byBmaW5kIGVycm9yIGluIGZvcm0gZmllbGRzKi9cbiAgZ2V0RXJyb3JNZXNzYWdlKGZpZWxkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXG4gICAgICBmaWVsZCxcbiAgICAgIHRoaXMuZW50aXR5RmlsZUdyb3VwLFxuICAgICAgZXJyb3JNZXNzYWdlc1xuICAgICk7XG4gIH1cblxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJlbnRpdHlGaWxlR3JvdXBcIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgPGRpdj5FbnRpdHkgRmlsZTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbi49XCJzdGFydFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoaWRlVGl0bGVBbmREZXRhaWxzXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHBsYWNlaG9sZGVyPVwiVGl0bGVcIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXRhaWxzXCIgcGxhY2Vob2xkZXI9XCJEZXRhaWxzXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZVRlY2hsaWZ5VGFnc1wiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1sYWJlbD5UYWc8L21hdC1sYWJlbD5cbiAgICAgICAgICA8YXBwLXRlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZFxuICAgICAgICAgICAgW2NhdGVnb3JpZXNdPVwidGVjaGxpZnlUYWdDYXRlZ29yaWVzXCJcbiAgICAgICAgICAgIG1vZGVsVHlwZT1cImVudGl0eS1maWxlXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRhZ19pZHNcIlxuICAgICAgICAgICAgW21vZGVsSWRdPVwiZW50aXR5RmlsZUdyb3VwLmdldCgnaWQnKS52YWx1ZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIG5ldyB0YWdcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJ0ZWNobGlmeVRhZ0NvbmZpZ1wiXG4gICAgICAgICAgPjwvYXBwLXRlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNmaWxlVXBsb2FkPlxuICAgICAgICA8c2VjdGlvbiBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgPGRpdj5FbnRpdHkgRmlsZSo8L2Rpdj5cbiAgICAgICAgICA8YXBwLWZpbGUtZHJvcHBlciBbY29uZmlnXT1cImZpbGVDb25maWdcIiAoZmlsZUNoYW5nZWQpPVwiZmlsZUNoYW5nZWQoJGV2ZW50KVwiIFtmaWxlQXJyYXldPVwiZmlsZUxpc3RcIj5cbiAgICAgICAgICA8L2FwcC1maWxlLWRyb3BwZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3VybCcpXCI+XG4gICAgICAgICAgICB7e2dldEVycm9yTWVzc2FnZShcInVybFwiKX19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IGZ4RmxleD1cIjEwMCVcIiBjbGFzcz1cIm10LTJcIiAqbmdJZj1cImVudGl0eUZpbGVHcm91cC5nZXQoJ3VybCcpLnZhbHVlO2Vsc2UgZmlsZVVwbG9hZDtcIj5cbiAgICAgICAgPGFwcC1kb2N1bWVudC12aWV3ZXIgW2ZpbGVdPVwiZW50aXR5RmlsZUdyb3VwLmdldCgnZmlsZScpLnZhbHVlXCIgW2ZpbGVVcmxdPVwiZW50aXR5RmlsZUdyb3VwLmdldCgndXJsJykudmFsdWVcIlxuICAgICAgICAgIFtjb25maWddPVwidGhpcy52aWV3ZXJDb25maWdcIiAocmVtb3ZlKT1cInJlbW92ZUZpbGUoKVwiIFtkaXNhYmxlRWRpdF09XCJ1cGRhdGVNb2RlXCI+XG4gICAgICAgIDwvYXBwLWRvY3VtZW50LXZpZXdlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbWItMlwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIzMHB4XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNTYXZpbmdcIiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgpXCI+XG4gICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJpc1NhdmluZ1wiIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjb2xvcj1cInByaW1hcnlcIj5TYXZlPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -1,19 +1,12 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { TechlifyServiceBaseClass } from "../base-model";
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../core/http.service";
4
- export class EntityFileService {
5
+ export class EntityFileService extends TechlifyServiceBaseClass {
5
6
  constructor(http) {
7
+ super(http, 'entity-files');
6
8
  this.http = http;
7
9
  }
8
- getEntityFiles(filters) {
9
- return this.http.get(`api/entity-files`, { params: filters }).toPromise();
10
- }
11
- createEntityFile(model) {
12
- return this.http.post("api/entity-files", model).toPromise();
13
- }
14
- updateEntityFile(model) {
15
- return this.http.put(`api/entity-files/${model.id}`, model).toPromise();
16
- }
17
10
  deleteEntityFile(model) {
18
11
  return this.http.delete(`api/entity-files/${model.id}`).toPromise();
19
12
  }
@@ -40,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
40
33
  providedIn: 'root'
41
34
  }]
42
35
  }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW50aXR5LWZpbGVzL2VudGl0eS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFJLENBQUM7SUFFMUMsY0FBYyxDQUFDLE9BQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFVLEVBQUUsTUFBWTtRQUN2QyxNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxNQUFNLEVBQUUsU0FBUyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsVUFBVSxFQUFFO2FBQ1osSUFBSSxDQUNILHlCQUF5QixFQUN6QixRQUFRLENBQ1QsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNFLENBQUM7OzhHQXJDVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHR0cC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRW50aXR5RmlsZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UpIHsgfVxuXG4gIGdldEVudGl0eUZpbGVzKGZpbHRlcnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGBhcGkvZW50aXR5LWZpbGVzYCwgeyBwYXJhbXM6IGZpbHRlcnMgfSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBjcmVhdGVFbnRpdHlGaWxlKG1vZGVsOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXCJhcGkvZW50aXR5LWZpbGVzXCIsIG1vZGVsKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwZGF0ZUVudGl0eUZpbGUobW9kZWw6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGBhcGkvZW50aXR5LWZpbGVzLyR7bW9kZWwuaWR9YCwgbW9kZWwpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZGVsZXRlRW50aXR5RmlsZShtb2RlbDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYGFwaS9lbnRpdHktZmlsZXMvJHttb2RlbC5pZH1gKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwbG9hZEVudGl0eUZpbGUoZmlsZTogRmlsZSwgcGFyYW1zPzogYW55KSB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKFwiZmlsZURhdGFcIiwgZmlsZSwgZmlsZS5uYW1lKTtcbiAgICBpZiAocGFyYW1zPy5lbnRpdHlfaWQpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZW50aXR5X2lkJywgcGFyYW1zLmVudGl0eV9pZCk7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2VudGl0eV90eXBlJywgcGFyYW1zLmVudGl0eV90eXBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnNraXBIZWFkZXIoKVxuICAgICAgLnBvc3QoXG4gICAgICAgIFwiYXBpL2VudGl0eS1maWxlcy11cGxvYWRcIixcbiAgICAgICAgZm9ybURhdGEsXG4gICAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYnVsa1VwZGF0ZShtb2RlbCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgYXBpL2VudGl0eS1maWxlcy9idWxrLXVwZGF0ZWAsIG1vZGVsKS50b1Byb21pc2UoKTtcbiAgfVxuXG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW50aXR5LWZpbGVzL2VudGl0eS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQUt2RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsd0JBQXdCO0lBRTdELFlBQW1CLElBQWlCO1FBQ2xDLEtBQUssQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFEWCxTQUFJLEdBQUosSUFBSSxDQUFhO0lBRXBDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFVLEVBQUUsTUFBWTtRQUN2QyxNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxNQUFNLEVBQUUsU0FBUyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsVUFBVSxFQUFFO2FBQ1osSUFBSSxDQUNILHlCQUF5QixFQUN6QixRQUFRLENBQ1QsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNFLENBQUM7OzhHQTNCVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7VGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzfSBmcm9tIFwiLi4vYmFzZS1tb2RlbFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlGaWxlU2VydmljZSBleHRlbmRzIFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzcyB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBTZXJ2aWNlKSB7XG4gICAgc3VwZXIoaHR0cCwgJ2VudGl0eS1maWxlcycpO1xuICB9XG5cbiAgZGVsZXRlRW50aXR5RmlsZShtb2RlbDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYGFwaS9lbnRpdHktZmlsZXMvJHttb2RlbC5pZH1gKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwbG9hZEVudGl0eUZpbGUoZmlsZTogRmlsZSwgcGFyYW1zPzogYW55KSB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKFwiZmlsZURhdGFcIiwgZmlsZSwgZmlsZS5uYW1lKTtcbiAgICBpZiAocGFyYW1zPy5lbnRpdHlfaWQpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZW50aXR5X2lkJywgcGFyYW1zLmVudGl0eV9pZCk7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2VudGl0eV90eXBlJywgcGFyYW1zLmVudGl0eV90eXBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnNraXBIZWFkZXIoKVxuICAgICAgLnBvc3QoXG4gICAgICAgIFwiYXBpL2VudGl0eS1maWxlcy11cGxvYWRcIixcbiAgICAgICAgZm9ybURhdGEsXG4gICAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYnVsa1VwZGF0ZShtb2RlbCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgYXBpL2VudGl0eS1maWxlcy9idWxrLXVwZGF0ZWAsIG1vZGVsKS50b1Byb21pc2UoKTtcbiAgfVxuXG59XG4iXX0=