tin-spa 10.0.0 → 14.3.11

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 (204) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/classes/Classes.mjs +265 -0
  3. package/esm2020/lib/classes/TinCore.mjs +401 -0
  4. package/esm2020/lib/components/accounts/accountDialog.component.mjs +56 -0
  5. package/esm2020/lib/components/accounts/accounts.component.mjs +70 -0
  6. package/esm2020/lib/components/activity/activity.component.mjs +24 -0
  7. package/esm2020/lib/components/alert/alert.component.mjs +29 -0
  8. package/esm2020/lib/components/attach/attach.component.mjs +86 -0
  9. package/esm2020/lib/components/bug/bug.component.mjs +14 -0
  10. package/esm2020/lib/components/change-password/change-password.component.mjs +92 -0
  11. package/esm2020/lib/components/check/check.component.mjs +67 -0
  12. package/esm2020/lib/components/chips/chips.component.mjs +58 -0
  13. package/esm2020/lib/components/create-account/create-account.component.mjs +109 -0
  14. package/esm2020/lib/components/customers/customers.component.mjs +60 -0
  15. package/esm2020/lib/components/date/date.component.mjs +101 -0
  16. package/esm2020/lib/components/datetime/datetime.component.mjs +52 -0
  17. package/esm2020/lib/components/departments/departments.component.mjs +24 -0
  18. package/esm2020/lib/components/employees/employees.component.mjs +21 -0
  19. package/esm2020/lib/components/filter/filter.component.mjs +54 -0
  20. package/esm2020/lib/components/form/form.component.mjs +191 -0
  21. package/esm2020/lib/components/grades/grades.component.mjs +14 -0
  22. package/esm2020/lib/components/inventory/inventory.component.mjs +99 -0
  23. package/esm2020/lib/components/inventory/quantityDialog.component.mjs +53 -0
  24. package/esm2020/lib/components/invitations/invitations.component.mjs +14 -0
  25. package/esm2020/lib/components/invitations-table/invitations-table.component.mjs +70 -0
  26. package/esm2020/lib/components/label/label.component.mjs +25 -0
  27. package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +68 -0
  28. package/esm2020/lib/components/loader/loader.component.mjs +25 -0
  29. package/esm2020/lib/components/login/login.component.mjs +127 -0
  30. package/esm2020/lib/components/logs/logs.component.mjs +37 -0
  31. package/esm2020/lib/components/membership/membership.component.mjs +48 -0
  32. package/esm2020/lib/components/message/messageDialog.component.mjs +33 -0
  33. package/esm2020/lib/components/money/currency-input-mask.directive.mjs +185 -0
  34. package/esm2020/lib/components/money/currency-input-mask.module.mjs +28 -0
  35. package/esm2020/lib/components/money/money.component.mjs +120 -0
  36. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +84 -0
  37. package/esm2020/lib/components/notifications/notifications.component.mjs +14 -0
  38. package/esm2020/lib/components/number/number.component.mjs +116 -0
  39. package/esm2020/lib/components/option/option.component.mjs +67 -0
  40. package/esm2020/lib/components/plans/plans.component.mjs +47 -0
  41. package/esm2020/lib/components/positions/positions.component.mjs +21 -0
  42. package/esm2020/lib/components/profile/profile.component.mjs +92 -0
  43. package/esm2020/lib/components/recover-account/recover-account.component.mjs +46 -0
  44. package/esm2020/lib/components/roles/addRoleDialog.component.mjs +60 -0
  45. package/esm2020/lib/components/roles/roles.component.mjs +91 -0
  46. package/esm2020/lib/components/search/search.component.mjs +31 -0
  47. package/esm2020/lib/components/select/select.component.mjs +138 -0
  48. package/esm2020/lib/components/settings/settings.component.mjs +62 -0
  49. package/esm2020/lib/components/signup/signup.component.mjs +50 -0
  50. package/esm2020/lib/components/steps/steps.component.mjs +90 -0
  51. package/esm2020/lib/components/suppliers/suppliers.component.mjs +50 -0
  52. package/esm2020/lib/components/table/detailsDialog.component.mjs +232 -0
  53. package/esm2020/lib/components/table/table.component.mjs +406 -0
  54. package/esm2020/lib/components/table-action/table-action.component.mjs +46 -0
  55. package/esm2020/lib/components/table-header/table-header.component.mjs +76 -0
  56. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +226 -0
  57. package/esm2020/lib/components/table-internal/table-internal.component.mjs +406 -0
  58. package/esm2020/lib/components/table-row/table-row.component.mjs +58 -0
  59. package/esm2020/lib/components/tasks/tasks.component.mjs +86 -0
  60. package/esm2020/lib/components/tenant-settings/inviteDialog.component.mjs +60 -0
  61. package/esm2020/lib/components/tenant-settings/tenant-settings.component.mjs +155 -0
  62. package/esm2020/lib/components/tenants/tenants.component.mjs +47 -0
  63. package/esm2020/lib/components/text/text.component.mjs +181 -0
  64. package/esm2020/lib/components/tiles/tiles.component.mjs +81 -0
  65. package/esm2020/lib/components/tin-spa.component.mjs +19 -0
  66. package/esm2020/lib/components/transactions/transactDialog.component.mjs +80 -0
  67. package/esm2020/lib/components/transactions/transactions.component.mjs +101 -0
  68. package/esm2020/lib/components/users/users.component.mjs +118 -0
  69. package/esm2020/lib/components/viewer/viewer.component.mjs +79 -0
  70. package/esm2020/lib/components/viewer/viewerDialog.component.mjs +88 -0
  71. package/esm2020/lib/components/welcome/welcome.component.mjs +86 -0
  72. package/esm2020/lib/modules/admin/admin-routing.module.mjs +61 -0
  73. package/esm2020/lib/modules/admin/admin.module.mjs +26 -0
  74. package/esm2020/lib/modules/index/index-routing.module.mjs +27 -0
  75. package/esm2020/lib/modules/index/index.module.mjs +26 -0
  76. package/esm2020/lib/modules/spa-admin.module.mjs +71 -0
  77. package/esm2020/lib/modules/spa-index.module.mjs +54 -0
  78. package/esm2020/lib/modules/spa-mat.module.mjs +84 -0
  79. package/esm2020/lib/modules/spa-user.module.mjs +47 -0
  80. package/esm2020/lib/modules/user/user-routing.module.mjs +23 -0
  81. package/esm2020/lib/modules/user/user.module.mjs +26 -0
  82. package/esm2020/lib/pipes/camelToWords.pipe.mjs +17 -0
  83. package/esm2020/lib/services/auth.service.mjs +174 -0
  84. package/esm2020/lib/services/button.service.mjs +102 -0
  85. package/esm2020/lib/services/condition.service.mjs +32 -0
  86. package/esm2020/lib/services/datalib.service.mjs +387 -0
  87. package/esm2020/lib/services/dialog.service.mjs +81 -0
  88. package/esm2020/lib/services/export.service.mjs +16 -0
  89. package/esm2020/lib/services/http.service.mjs +79 -0
  90. package/esm2020/lib/services/loader-interceptor.service.mjs +86 -0
  91. package/esm2020/lib/services/loader.service.mjs +17 -0
  92. package/esm2020/lib/services/log.service.mjs +77 -0
  93. package/esm2020/lib/services/message.service.mjs +59 -0
  94. package/esm2020/lib/services/storage.service.mjs +34 -0
  95. package/esm2020/lib/services/table-config.service.mjs +30 -0
  96. package/esm2020/lib/services/tin-spa.service.mjs +14 -0
  97. package/esm2020/lib/tin-spa.module.mjs +183 -0
  98. package/esm2020/public-api.mjs +80 -0
  99. package/esm2020/tin-spa.mjs +5 -0
  100. package/fesm2015/tin-spa.mjs +7454 -0
  101. package/fesm2015/tin-spa.mjs.map +1 -0
  102. package/fesm2020/tin-spa.mjs +7410 -0
  103. package/fesm2020/tin-spa.mjs.map +1 -0
  104. package/index.d.ts +5 -3408
  105. package/lib/classes/Classes.d.ts +431 -0
  106. package/lib/classes/TinCore.d.ts +48 -0
  107. package/lib/components/accounts/accountDialog.component.d.ts +27 -0
  108. package/lib/components/accounts/accounts.component.d.ts +25 -0
  109. package/lib/components/activity/activity.component.d.ts +11 -0
  110. package/lib/components/alert/alert.component.d.ts +14 -0
  111. package/lib/components/attach/attach.component.d.ts +23 -0
  112. package/lib/components/bug/bug.component.d.ts +8 -0
  113. package/lib/components/change-password/change-password.component.d.ts +27 -0
  114. package/lib/components/check/check.component.d.ts +24 -0
  115. package/lib/components/chips/chips.component.d.ts +18 -0
  116. package/lib/components/create-account/create-account.component.d.ts +33 -0
  117. package/lib/components/customers/customers.component.d.ts +18 -0
  118. package/lib/components/date/date.component.d.ts +29 -0
  119. package/lib/components/datetime/datetime.component.d.ts +18 -0
  120. package/lib/components/departments/departments.component.d.ts +14 -0
  121. package/lib/components/employees/employees.component.d.ts +12 -0
  122. package/lib/components/filter/filter.component.d.ts +19 -0
  123. package/lib/components/form/form.component.d.ts +36 -0
  124. package/lib/components/grades/grades.component.d.ts +8 -0
  125. package/lib/components/inventory/inventory.component.d.ts +25 -0
  126. package/lib/components/inventory/quantityDialog.component.d.ts +23 -0
  127. package/lib/components/invitations/invitations.component.d.ts +8 -0
  128. package/lib/components/invitations-table/invitations-table.component.d.ts +19 -0
  129. package/lib/components/label/label.component.d.ts +11 -0
  130. package/lib/components/list-dialog/list-dialog.component.d.ts +23 -0
  131. package/lib/components/loader/loader.component.d.ts +12 -0
  132. package/lib/components/login/login.component.d.ts +39 -0
  133. package/lib/components/logs/logs.component.d.ts +18 -0
  134. package/lib/components/membership/membership.component.d.ts +17 -0
  135. package/lib/components/message/messageDialog.component.d.ts +15 -0
  136. package/lib/components/money/currency-input-mask.directive.d.ts +41 -0
  137. package/lib/components/money/currency-input-mask.module.d.ts +9 -0
  138. package/lib/components/money/money.component.d.ts +33 -0
  139. package/lib/components/nav-menu/nav-menu.component.d.ts +34 -0
  140. package/lib/components/notifications/notifications.component.d.ts +8 -0
  141. package/lib/components/number/number.component.d.ts +35 -0
  142. package/lib/components/option/option.component.d.ts +23 -0
  143. package/lib/components/plans/plans.component.d.ts +17 -0
  144. package/lib/components/positions/positions.component.d.ts +12 -0
  145. package/lib/components/profile/profile.component.d.ts +34 -0
  146. package/lib/components/recover-account/recover-account.component.d.ts +18 -0
  147. package/lib/components/roles/addRoleDialog.component.d.ts +24 -0
  148. package/lib/components/roles/roles.component.d.ts +30 -0
  149. package/lib/components/search/search.component.d.ts +13 -0
  150. package/lib/components/select/select.component.d.ts +42 -0
  151. package/lib/components/settings/settings.component.d.ts +19 -0
  152. package/lib/components/signup/signup.component.d.ts +23 -0
  153. package/lib/components/steps/steps.component.d.ts +18 -0
  154. package/lib/components/suppliers/suppliers.component.d.ts +17 -0
  155. package/lib/components/table/detailsDialog.component.d.ts +64 -0
  156. package/lib/components/table/table.component.d.ts +82 -0
  157. package/lib/components/table-action/table-action.component.d.ts +22 -0
  158. package/lib/components/table-header/table-header.component.d.ts +31 -0
  159. package/lib/components/table-internal/detailsDialog-internal.component.d.ts +64 -0
  160. package/lib/components/table-internal/table-internal.component.d.ts +82 -0
  161. package/lib/components/table-row/table-row.component.d.ts +28 -0
  162. package/lib/components/tasks/tasks.component.d.ts +27 -0
  163. package/lib/components/tenant-settings/inviteDialog.component.d.ts +28 -0
  164. package/lib/components/tenant-settings/tenant-settings.component.d.ts +42 -0
  165. package/lib/components/tenants/tenants.component.d.ts +17 -0
  166. package/lib/components/text/text.component.d.ts +46 -0
  167. package/lib/components/tiles/tiles.component.d.ts +25 -0
  168. package/lib/components/tin-spa.component.d.ts +5 -0
  169. package/lib/components/transactions/transactDialog.component.d.ts +26 -0
  170. package/lib/components/transactions/transactions.component.d.ts +31 -0
  171. package/lib/components/users/users.component.d.ts +36 -0
  172. package/lib/components/viewer/viewer.component.d.ts +25 -0
  173. package/lib/components/viewer/viewerDialog.component.d.ts +22 -0
  174. package/lib/components/welcome/welcome.component.d.ts +25 -0
  175. package/lib/modules/admin/admin-routing.module.d.ts +7 -0
  176. package/lib/modules/admin/admin.module.d.ts +9 -0
  177. package/lib/modules/index/index-routing.module.d.ts +7 -0
  178. package/lib/modules/index/index.module.d.ts +9 -0
  179. package/lib/modules/spa-admin.module.d.ts +15 -0
  180. package/lib/modules/spa-index.module.d.ts +13 -0
  181. package/lib/modules/spa-mat.module.d.ts +38 -0
  182. package/lib/modules/spa-user.module.d.ts +11 -0
  183. package/lib/modules/user/user-routing.module.d.ts +7 -0
  184. package/lib/modules/user/user.module.d.ts +9 -0
  185. package/lib/pipes/camelToWords.pipe.d.ts +7 -0
  186. package/lib/services/auth.service.d.ts +61 -0
  187. package/lib/services/button.service.d.ts +27 -0
  188. package/lib/services/condition.service.d.ts +10 -0
  189. package/lib/services/datalib.service.d.ts +77 -0
  190. package/lib/services/dialog.service.d.ts +19 -0
  191. package/lib/services/export.service.d.ts +6 -0
  192. package/lib/services/http.service.d.ts +22 -0
  193. package/lib/services/loader-interceptor.service.d.ts +22 -0
  194. package/lib/services/loader.service.d.ts +8 -0
  195. package/lib/services/log.service.d.ts +19 -0
  196. package/lib/services/message.service.d.ts +16 -0
  197. package/lib/services/storage.service.d.ts +10 -0
  198. package/lib/services/table-config.service.d.ts +9 -0
  199. package/lib/services/tin-spa.service.d.ts +6 -0
  200. package/lib/tin-spa.module.d.ts +66 -0
  201. package/package.json +13 -8
  202. package/public-api.d.ts +69 -0
  203. package/fesm2022/tin-spa.mjs +0 -12474
  204. package/fesm2022/tin-spa.mjs.map +0 -1
@@ -0,0 +1,116 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormControl, Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/material/button";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "@angular/material/form-field";
9
+ import * as i6 from "@angular/material/input";
10
+ import * as i7 from "@angular/material/tooltip";
11
+ export class NumberComponent {
12
+ constructor() {
13
+ // options: FormGroup;
14
+ this.hideRequiredControl = new FormControl(true);
15
+ this.hide = true; //for password only
16
+ this.readonly = false;
17
+ this.hint = "";
18
+ this.display = "";
19
+ this.placeholder = "";
20
+ this.value = 0;
21
+ this.width = "100%";
22
+ this.valueChange = new EventEmitter();
23
+ this.leave = new EventEmitter();
24
+ this.enterPress = new EventEmitter();
25
+ //validation input
26
+ this.required = true;
27
+ this.min = 0;
28
+ this.max = 9000000000000000; //Math.max
29
+ this.step = 1;
30
+ this.infoClick = new EventEmitter();
31
+ //validation
32
+ this.control = new FormControl(this.value, [Validators.required, Validators.min(this.min), Validators.max(this.max)]);
33
+ }
34
+ ngOnInit() {
35
+ if (this.placeholder == "") {
36
+ this.placeholder = "Enter " + this.display;
37
+ }
38
+ }
39
+ ngAfterViewInit() {
40
+ this.initControl(this.control);
41
+ }
42
+ initControl(control) {
43
+ if (this.readonly) {
44
+ control.setValidators(null);
45
+ control.updateValueAndValidity();
46
+ }
47
+ if (!this.required && !this.readonly) {
48
+ control.setValidators([Validators.minLength(this.min), Validators.maxLength(this.max)]);
49
+ this.control.updateValueAndValidity();
50
+ }
51
+ }
52
+ onInfoClick(event) {
53
+ event.stopPropagation();
54
+ this.infoClick.emit();
55
+ }
56
+ changed() {
57
+ this.valueChange.emit(this.value);
58
+ }
59
+ leaved() {
60
+ this.leave.emit();
61
+ }
62
+ enterPressed() {
63
+ this.enterPress.emit();
64
+ }
65
+ validate(control) {
66
+ if (this.required && control.hasError('required')) {
67
+ return `Required`;
68
+ }
69
+ if (control.hasError('min')) {
70
+ return `Minimun value is ${this.min}`;
71
+ }
72
+ if (control.hasError('max')) {
73
+ return `Maximum value is ${this.max}`;
74
+ }
75
+ return "";
76
+ }
77
+ }
78
+ NumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
79
+ NumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NumberComponent, selector: "spa-number", inputs: { readonly: "readonly", hint: "hint", display: "display", placeholder: "placeholder", value: "value", width: "width", required: "required", min: "min", max: "max", step: "step", suffix: "suffix", infoMessage: "infoMessage" }, outputs: { valueChange: "valueChange", leave: "leave", enterPress: "enterPress", infoClick: "infoClick" }, ngImport: i0, template: "\n<mat-form-field hideRequiredMarker=\"true\" [hintLabel]=\"hint\" [hideRequiredMarker]=\"!required\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\n <mat-label>{{display}}</mat-label>\n <input matInput autocomplete=\"off\" type=\"number\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [(ngModel)]=\"value\" (change)=\"changed()\" (blur)=\"leaved()\" (keyup.enter)=\"enterPressed()\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\" />\n <mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\n <div matSuffix class=\"suffix-icons\">\n <label *ngIf=\"suffix\">{{suffix}}</label>\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\">\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\n </button>\n </div>\n</mat-form-field>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.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: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.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: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NumberComponent, decorators: [{
81
+ type: Component,
82
+ args: [{ selector: 'spa-number', template: "\n<mat-form-field hideRequiredMarker=\"true\" [hintLabel]=\"hint\" [hideRequiredMarker]=\"!required\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\n <mat-label>{{display}}</mat-label>\n <input matInput autocomplete=\"off\" type=\"number\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [(ngModel)]=\"value\" (change)=\"changed()\" (blur)=\"leaved()\" (keyup.enter)=\"enterPressed()\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\" />\n <mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\n <div matSuffix class=\"suffix-icons\">\n <label *ngIf=\"suffix\">{{suffix}}</label>\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\">\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\n </button>\n </div>\n</mat-form-field>\n" }]
83
+ }], ctorParameters: function () { return []; }, propDecorators: { readonly: [{
84
+ type: Input
85
+ }], hint: [{
86
+ type: Input
87
+ }], display: [{
88
+ type: Input
89
+ }], placeholder: [{
90
+ type: Input
91
+ }], value: [{
92
+ type: Input
93
+ }], width: [{
94
+ type: Input
95
+ }], valueChange: [{
96
+ type: Output
97
+ }], leave: [{
98
+ type: Output
99
+ }], enterPress: [{
100
+ type: Output
101
+ }], required: [{
102
+ type: Input
103
+ }], min: [{
104
+ type: Input
105
+ }], max: [{
106
+ type: Input
107
+ }], step: [{
108
+ type: Input
109
+ }], suffix: [{
110
+ type: Input
111
+ }], infoMessage: [{
112
+ type: Input
113
+ }], infoClick: [{
114
+ type: Output
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL251bWJlci9udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbnVtYmVyL251bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQU96RCxNQUFNLE9BQU8sZUFBZTtJQUUxQjtRQXdCQSxzQkFBc0I7UUFDdEIsd0JBQW1CLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsU0FBSSxHQUFHLElBQUksQ0FBQyxDQUFDLG1CQUFtQjtRQUV2QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxNQUFNLENBQUE7UUFFYixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFPMUMsa0JBQWtCO1FBQ1QsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsUUFBRyxHQUFHLGdCQUFnQixDQUFDLENBQUMsVUFBVTtRQUNsQyxTQUFJLEdBQUcsQ0FB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QkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcGEtbnVtYmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyID09IFwiXCIpIHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBcIkVudGVyIFwiICsgdGhpcy5kaXNwbGF5O1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRDb250cm9sKHRoaXMuY29udHJvbClcbiAgfVxuXG4gIGluaXRDb250cm9sKGNvbnRyb2w6IEZvcm1Db250cm9sKSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhudWxsKTtcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucmVxdWlyZWQgJiYgIXRoaXMucmVhZG9ubHkpIHtcblxuICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbiksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4KV0pO1xuICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICAvLyBvcHRpb25zOiBGb3JtR3JvdXA7XG4gIGhpZGVSZXF1aXJlZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodHJ1ZSk7XG4gIGhpZGUgPSB0cnVlOyAvL2ZvciBwYXNzd29yZCBvbmx5XG5cbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgaGludCA9IFwiXCI7XG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBcIlwiO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiXCI7XG4gIEBJbnB1dCgpIHZhbHVlID0gMDtcbiAgQElucHV0KCkgd2lkdGggPSBcIjEwMCVcIlxuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZW50ZXJQcmVzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXG5cblxuXG5cbiAgLy92YWxpZGF0aW9uIGlucHV0XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gdHJ1ZTtcbiAgQElucHV0KCkgbWluID0gMDtcbiAgQElucHV0KCkgbWF4ID0gOTAwMDAwMDAwMDAwMDAwMDsgLy9NYXRoLm1heFxuICBASW5wdXQoKSBzdGVwID0gMTtcblxuICBASW5wdXQoKSBzdWZmaXg6IHN0cmluZztcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcbiAgQE91dHB1dCgpIGluZm9DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBvbkluZm9DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaW5mb0NsaWNrLmVtaXQoKTtcbiAgfVxuXG5cbiAgY2hhbmdlZCgpIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBsZWF2ZWQoKSB7XG4gICAgdGhpcy5sZWF2ZS5lbWl0KCk7XG4gIH1cblxuICBlbnRlclByZXNzZWQoKSB7XG4gICAgdGhpcy5lbnRlclByZXNzLmVtaXQoKTtcbiAgfVxuXG4gIC8vdmFsaWRhdGlvblxuICBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKHRoaXMudmFsdWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbih0aGlzLm1pbiksIFZhbGlkYXRvcnMubWF4KHRoaXMubWF4KV0pO1xuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEZvcm1Db250cm9sKTogc3RyaW5nIHtcblxuICAgIGlmICh0aGlzLnJlcXVpcmVkICAmJiBjb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICByZXR1cm4gYFJlcXVpcmVkYDtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbC5oYXNFcnJvcignbWluJykpIHtcbiAgICAgIHJldHVybiBgTWluaW11biB2YWx1ZSBpcyAke3RoaXMubWlufWA7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ21heCcpKSB7XG4gICAgICByZXR1cm4gYE1heGltdW0gdmFsdWUgaXMgJHt0aGlzLm1heH1gO1xuICAgIH1cblxuICAgIHJldHVybiBcIlwiO1xuICB9XG5cbn1cbiIsIlxuPG1hdC1mb3JtLWZpZWxkIGhpZGVSZXF1aXJlZE1hcmtlcj1cInRydWVcIiBbaGludExhYmVsXT1cImhpbnRcIiBbaGlkZVJlcXVpcmVkTWFya2VyXT1cIiFyZXF1aXJlZFwiIFtuZ1N0eWxlXT1cInsnd2lkdGgnOndpZHRofVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+XG4gIDxtYXQtbGFiZWw+e3tkaXNwbGF5fX08L21hdC1sYWJlbD5cbiAgPGlucHV0IG1hdElucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIHR5cGU9XCJudW1iZXJcIiBbbWluXT1cIm1pblwiIFttYXhdPVwibWF4XCIgW3N0ZXBdPVwic3RlcFwiIFsobmdNb2RlbCldPVwidmFsdWVcIiAoY2hhbmdlKT1cImNoYW5nZWQoKVwiIChibHVyKT1cImxlYXZlZCgpXCIgKGtleXVwLmVudGVyKT1cImVudGVyUHJlc3NlZCgpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiAvPlxuICA8bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbC5pbnZhbGlkXCI+e3t2YWxpZGF0ZShjb250cm9sKX19PC9tYXQtZXJyb3I+XG4gICAgPGRpdiBtYXRTdWZmaXggY2xhc3M9XCJzdWZmaXgtaWNvbnNcIj5cbiAgICAgIDxsYWJlbCAqbmdJZj1cInN1ZmZpeFwiPnt7c3VmZml4fX08L2xhYmVsPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJpbmZvTWVzc2FnZVwiIChjbGljayk9XCJvbkluZm9DbGljaygkZXZlbnQpXCIgbWF0VG9vbHRpcD1cIkluZm9cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxuICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJjb2xvcjogc3RlZWxibHVlO1wiPmluZm88L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -0,0 +1,67 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "@angular/material/checkbox";
6
+ import * as i4 from "@angular/material/form-field";
7
+ import * as i5 from "@angular/material/input";
8
+ import * as i6 from "../text/text.component";
9
+ import * as i7 from "../date/date.component";
10
+ import * as i8 from "../select/select.component";
11
+ export class OptionComponent {
12
+ constructor() {
13
+ this.optionValue = "";
14
+ this.optionDisplay = "";
15
+ this.readonly = false;
16
+ this.type = "text";
17
+ this.value = "";
18
+ this.display = "";
19
+ this.show = false;
20
+ this.valueChange = new EventEmitter();
21
+ this.enterPress = new EventEmitter();
22
+ }
23
+ ngOnInit() {
24
+ this.OGValue = this.value;
25
+ }
26
+ changed() {
27
+ this.valueChange.emit(this.value);
28
+ }
29
+ dateChanged(x) {
30
+ this.value = x;
31
+ this.changed();
32
+ }
33
+ enterPressed() {
34
+ this.enterPress.emit();
35
+ }
36
+ resetValue() {
37
+ this.value = this.OGValue;
38
+ this.changed();
39
+ }
40
+ }
41
+ OptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42
+ OptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: OptionComponent, selector: "spa-option", inputs: { options: "options", optionValue: "optionValue", optionDisplay: "optionDisplay", readonly: "readonly", type: "type", value: "value", display: "display", show: "show" }, outputs: { valueChange: "valueChange", enterPress: "enterPress" }, ngImport: i0, template: "\r\n<div class=\"tin-row gap-0\">\r\n\r\n<mat-checkbox color=\"primary\" style=\"margin-right:5px\" [(ngModel)]=\"show\" (change)=\"resetValue()\" labelPosition=\"after\">{{display}}</mat-checkbox>\r\n\r\n<mat-form-field style=\"margin-right:5px;width: 0px;\" >\r\n<input matInput />\r\n</mat-form-field>\r\n\r\n\r\n<ng-container *ngIf=\"show\" [ngSwitch]=\"type\">\r\n\r\n <spa-date *ngSwitchCase=\"'date'\" [display]=\"display\" [(value)]=\"value\" (valueChange)=\"dateChanged($event)\"></spa-date>\r\n\r\n <spa-select *ngSwitchCase=\"'select'\" [display]=\"display\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\">\r\n </spa-select>\r\n\r\n <spa-text *ngSwitchDefault [display]=\"display\" (keyup.enter)=\"enterPressed()\" [options]=\"options\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"></spa-text>\r\n\r\n</ng-container>\r\n\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.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: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i7.DateComponent, selector: "spa-date", inputs: ["required", "min", "max", "readonly", "hint", "value", "display", "placeholder", "width", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i8.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "peekConfig", "infoMessage"], outputs: ["valueChange", "infoClick"] }] });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OptionComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'spa-option', template: "\r\n<div class=\"tin-row gap-0\">\r\n\r\n<mat-checkbox color=\"primary\" style=\"margin-right:5px\" [(ngModel)]=\"show\" (change)=\"resetValue()\" labelPosition=\"after\">{{display}}</mat-checkbox>\r\n\r\n<mat-form-field style=\"margin-right:5px;width: 0px;\" >\r\n<input matInput />\r\n</mat-form-field>\r\n\r\n\r\n<ng-container *ngIf=\"show\" [ngSwitch]=\"type\">\r\n\r\n <spa-date *ngSwitchCase=\"'date'\" [display]=\"display\" [(value)]=\"value\" (valueChange)=\"dateChanged($event)\"></spa-date>\r\n\r\n <spa-select *ngSwitchCase=\"'select'\" [display]=\"display\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\">\r\n </spa-select>\r\n\r\n <spa-text *ngSwitchDefault [display]=\"display\" (keyup.enter)=\"enterPressed()\" [options]=\"options\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"></spa-text>\r\n\r\n</ng-container>\r\n\r\n</div>\r\n" }]
46
+ }], ctorParameters: function () { return []; }, propDecorators: { options: [{
47
+ type: Input
48
+ }], optionValue: [{
49
+ type: Input
50
+ }], optionDisplay: [{
51
+ type: Input
52
+ }], readonly: [{
53
+ type: Input
54
+ }], type: [{
55
+ type: Input
56
+ }], value: [{
57
+ type: Input
58
+ }], display: [{
59
+ type: Input
60
+ }], show: [{
61
+ type: Input
62
+ }], valueChange: [{
63
+ type: Output
64
+ }], enterPress: [{
65
+ type: Output
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL29wdGlvbi9vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvb3B0aW9uL29wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBTy9FLE1BQU0sT0FBTyxlQUFlO0lBRTFCO1FBV1MsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixTQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2QsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixTQUFJLEdBQVksS0FBSyxDQUFDO1FBR3JCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQXRCMUIsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFvQkQsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNoQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7OzRHQTFDVSxlQUFlO2dHQUFmLGVBQWUsdVNDUDVCLDg4QkFzQkE7MkZEZmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZOzBFQWdCYixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLW9wdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vb3B0aW9uLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLk9HVmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgT0dWYWx1ZVxyXG5cclxuXHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueTtcclxuICBASW5wdXQoKSBvcHRpb25WYWx1ZSA9IFwiXCI7XHJcbiAgQElucHV0KCkgb3B0aW9uRGlzcGxheSA9IFwiXCI7XHJcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgdHlwZSA9IFwidGV4dFwiO1xyXG4gIEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcclxuICBASW5wdXQoKSBkaXNwbGF5ID0gXCJcIjtcclxuICBASW5wdXQoKSBzaG93OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGVudGVyUHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNoYW5nZWQoKSB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlZCh4KXtcclxuICAgIHRoaXMudmFsdWUgPSB4XHJcbiAgICB0aGlzLmNoYW5nZWQoKVxyXG4gIH1cclxuXHJcbiAgZW50ZXJQcmVzc2VkKCl7XHJcbiAgICB0aGlzLmVudGVyUHJlc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRWYWx1ZSgpe1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuT0dWYWx1ZTtcclxuICAgIHRoaXMuY2hhbmdlZCgpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIlxyXG48ZGl2IGNsYXNzPVwidGluLXJvdyBnYXAtMFwiPlxyXG5cclxuPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDo1cHhcIiBbKG5nTW9kZWwpXT1cInNob3dcIiAoY2hhbmdlKT1cInJlc2V0VmFsdWUoKVwiIGxhYmVsUG9zaXRpb249XCJhZnRlclwiPnt7ZGlzcGxheX19PC9tYXQtY2hlY2tib3g+XHJcblxyXG48bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6NXB4O3dpZHRoOiAwcHg7XCIgPlxyXG48aW5wdXQgbWF0SW5wdXQgLz5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1wiIFtuZ1N3aXRjaF09XCJ0eXBlXCI+XHJcblxyXG4gIDxzcGEtZGF0ZSAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCIgW2Rpc3BsYXldPVwiZGlzcGxheVwiICBbKHZhbHVlKV09XCJ2YWx1ZVwiICAodmFsdWVDaGFuZ2UpPVwiZGF0ZUNoYW5nZWQoJGV2ZW50KVwiPjwvc3BhLWRhdGU+XHJcblxyXG4gIDxzcGEtc2VsZWN0ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiIFtkaXNwbGF5XT1cImRpc3BsYXlcIiAgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtvcHRpb25EaXNwbGF5XT1cIm9wdGlvbkRpc3BsYXlcIiBbb3B0aW9uVmFsdWVdPVwib3B0aW9uVmFsdWVcIiBbKHZhbHVlKV09XCJ2YWx1ZVwiICh2YWx1ZUNoYW5nZSk9XCJjaGFuZ2VkKClcIj5cclxuICA8L3NwYS1zZWxlY3Q+XHJcblxyXG4gIDxzcGEtdGV4dCAqbmdTd2l0Y2hEZWZhdWx0IFtkaXNwbGF5XT1cImRpc3BsYXlcIiAoa2V5dXAuZW50ZXIpPVwiZW50ZXJQcmVzc2VkKClcIiBbb3B0aW9uc109XCJvcHRpb25zXCIgW29wdGlvblZhbHVlXT1cIm9wdGlvblZhbHVlXCIgWyh2YWx1ZSldPVwidmFsdWVcIiAodmFsdWVDaGFuZ2UpPVwiY2hhbmdlZCgpXCI+PC9zcGEtdGV4dD5cclxuXHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/datalib.service";
4
+ import * as i2 from "../../services/message.service";
5
+ import * as i3 from "../../services/auth.service";
6
+ import * as i4 from "../table/table.component";
7
+ export class PlansComponent {
8
+ constructor(dataService, messageService, authService) {
9
+ this.dataService = dataService;
10
+ this.messageService = messageService;
11
+ this.authService = authService;
12
+ this.formConfig = {
13
+ fields: [
14
+ { name: 'name', type: 'text', required: true, min: 2 },
15
+ { name: 'description', type: 'text', required: true, min: 2 },
16
+ ],
17
+ reset: true,
18
+ };
19
+ this.config = {
20
+ showFilter: true,
21
+ minColumns: ['name'],
22
+ flatButtons: true,
23
+ columns: [
24
+ { name: 'planID', type: 'text' },
25
+ { name: 'name', type: 'text' },
26
+ { name: 'price', type: 'money' },
27
+ ],
28
+ buttons: [
29
+ { name: 'create', display: 'Create', dialog: true, action: { url: 'tenant/plans?action=create', method: 'post' } },
30
+ { name: 'view', dialog: true },
31
+ { name: 'edit', dialog: true, action: { url: 'tenant/plans?action=edit', method: 'post' } },
32
+ { name: 'delete', dialog: true, action: { url: 'tenant/plans?action=delete', method: 'post' } },
33
+ ],
34
+ loadAction: { url: 'tenant/all_plans/x' },
35
+ formConfig: this.formConfig
36
+ };
37
+ }
38
+ ngOnInit() {
39
+ }
40
+ }
41
+ PlansComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PlansComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component });
42
+ PlansComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PlansComponent, selector: "spa-plans", ngImport: i0, template: "<h4>Plans</h4>\n<hr>\n\n\n<div class=\"mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"config\"></spa-table>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i4.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }] });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PlansComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'spa-plans', template: "<h4>Plans</h4>\n<hr>\n\n\n<div class=\"mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"config\"></spa-table>\n</div>\n" }]
46
+ }], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.AuthService }]; } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcGxhbnMvcGxhbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcGxhbnMvcGxhbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBV2xELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLFdBQTJCLEVBQVUsY0FBOEIsRUFBUyxXQUF3QjtRQUFwRyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUt4SCxlQUFVLEdBQWU7WUFFdkIsTUFBTSxFQUFFO2dCQUNOLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQzlEO1lBRUQsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFBO1FBRUQsV0FBTSxHQUFnQjtZQUNwQixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDcEIsV0FBVyxFQUFFLElBQUk7WUFFakIsT0FBTyxFQUFFO2dCQUNQLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtnQkFDOUIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7YUFFakM7WUFFRCxPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNsSCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDOUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDM0YsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTthQUNoRztZQUVELFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRTtZQUV6QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FFNUIsQ0FBQTtJQXRDMkgsQ0FBQztJQUU3SCxRQUFRO0lBQ1IsQ0FBQzs7MkdBTFUsY0FBYzsrRkFBZCxjQUFjLGlEQ1gzQixxSUFPQTsyRkRJYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Db25maWcsIFRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1wbGFucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYW5zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wbGFucy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBsYW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG5cclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSwgbWluOiAyIH0sXHJcbiAgICAgIHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSwgbWluOiAyIH0sXHJcbiAgICBdLFxyXG5cclxuICAgIHJlc2V0OiB0cnVlLFxyXG4gIH1cclxuXHJcbiAgY29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuICAgIHNob3dGaWx0ZXI6IHRydWUsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ25hbWUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG5cclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAncGxhbklEJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncHJpY2UnLCB0eXBlOiAnbW9uZXknIH0sXHJcblxyXG4gICAgXSxcclxuXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdDcmVhdGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvcGxhbnM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAgeyBuYW1lOiAndmlldycsIGRpYWxvZzogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdlZGl0JywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAndGVuYW50L3BsYW5zP2FjdGlvbj1lZGl0JywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvcGxhbnM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcblxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvYWxsX3BsYW5zL3gnIH0sXHJcblxyXG4gICAgZm9ybUNvbmZpZzogdGhpcy5mb3JtQ29uZmlnXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGg0PlBsYW5zPC9oND5cbjxocj5cblxuXG48ZGl2IGNsYXNzPVwibXQtM1wiIHN0eWxlPVwiIGZvbnQtc2l6ZTogMTRweDtcIj5cbiAgPHNwYS10YWJsZSBbY29uZmlnXT1cImNvbmZpZ1wiPjwvc3BhLXRhYmxlPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/datalib.service";
4
+ import * as i2 from "../../services/auth.service";
5
+ import * as i3 from "../table/table.component";
6
+ export class PositionsComponent {
7
+ constructor(dataService, authService) {
8
+ this.dataService = dataService;
9
+ this.authService = authService;
10
+ }
11
+ ngOnInit() {
12
+ this.dataService.loadPositionMeta();
13
+ }
14
+ }
15
+ PositionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PositionsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
16
+ PositionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PositionsComponent, selector: "spa-positions", ngImport: i0, template: "<h4>Positions</h4>\r\n<hr>\r\n\r\n<div class=\"mt-3\" style=\" font-size: 14px;\">\r\n <spa-table [config]=\"dataService.positionTableConfig\"></spa-table>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i3.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PositionsComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'spa-positions', template: "<h4>Positions</h4>\r\n<hr>\r\n\r\n<div class=\"mt-3\" style=\" font-size: 14px;\">\r\n <spa-table [config]=\"dataService.positionTableConfig\"></spa-table>\r\n</div>\r\n" }]
20
+ }], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.AuthService }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3Bvc2l0aW9ucy9wb3NpdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcG9zaXRpb25zL3Bvc2l0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQVNsRCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQW1CLFdBQTJCLEVBQVMsV0FBd0I7UUFBNUQsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBSSxDQUFDO0lBRXBGLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDdEMsQ0FBQzs7K0dBTlUsa0JBQWtCO21HQUFsQixrQkFBa0IscURDVC9CLDRLQU1BOzJGREdhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1wb3NpdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3NpdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Bvc2l0aW9ucy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UubG9hZFBvc2l0aW9uTWV0YSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGg0PlBvc2l0aW9uczwvaDQ+XHJcbjxocj5cclxuXHJcbjxkaXYgY2xhc3M9XCJtdC0zXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxNHB4O1wiPlxyXG4gIDxzcGEtdGFibGUgW2NvbmZpZ109XCJkYXRhU2VydmljZS5wb3NpdGlvblRhYmxlQ29uZmlnXCI+PC9zcGEtdGFibGU+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,92 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { AppConfig, Profile } from '../../classes/Classes';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/datalib.service";
5
+ import * as i2 from "./../../services/message.service";
6
+ import * as i3 from "../../services/http.service";
7
+ import * as i4 from "@angular/router";
8
+ import * as i5 from "./../../services/auth.service";
9
+ import * as i6 from "@angular/common";
10
+ import * as i7 from "@angular/material/button";
11
+ import * as i8 from "@angular/material/form-field";
12
+ import * as i9 from "../text/text.component";
13
+ import * as i10 from "../select/select.component";
14
+ export class ProfileComponent {
15
+ constructor(dataService, messageService, httpService, router, authService) {
16
+ this.dataService = dataService;
17
+ this.messageService = messageService;
18
+ this.httpService = httpService;
19
+ this.router = router;
20
+ this.authService = authService;
21
+ this.initials = "";
22
+ this.appConfig = new AppConfig();
23
+ this.selfProfile = false;
24
+ this.profile = new Profile;
25
+ }
26
+ ngOnInit() {
27
+ this.myRole = this.authService.currentRoleSource.value;
28
+ if (this.dataService.tmpProfileuserName == "") {
29
+ this.loadProfile(this.authService.currentUser);
30
+ }
31
+ else {
32
+ this.loadProfile(this.dataService.tmpProfileuserName);
33
+ this.dataService.tmpProfileuserName = "";
34
+ }
35
+ }
36
+ loadProfile(userName) {
37
+ let action = "all";
38
+ this.dataService.GetUserByID(userName).subscribe((apiResponse) => {
39
+ this.profile = apiResponse.data;
40
+ if (this.profile.userName.toLocaleLowerCase() == this.authService.currentUser.toLocaleLowerCase()) {
41
+ this.selfProfile = true;
42
+ }
43
+ this.loadRoles();
44
+ this.initials = `${this.profile.firstName?.toUpperCase().charAt(0)}${this.profile.lastName?.toUpperCase().charAt(0)}`;
45
+ }, (error) => {
46
+ this.isProcessing = false;
47
+ this.messageService.toast(this.httpService.Error(error));
48
+ });
49
+ }
50
+ loadRoles() {
51
+ this.dataService.GetRole("all", "").subscribe((apiResponse) => {
52
+ this.roles = apiResponse;
53
+ }, (error) => {
54
+ this.isProcessing = false;
55
+ this.messageService.toast(this.httpService.Error(error));
56
+ });
57
+ }
58
+ changePassword() {
59
+ this.dataService.tmpProfileuserName = this.profile.userName;
60
+ this.router.navigate(["home/user/change-password"]);
61
+ }
62
+ gotoUsers() {
63
+ this.router.navigate(["home/admin/users"]);
64
+ }
65
+ update() {
66
+ }
67
+ updateProfile() {
68
+ this.isProcessing = true;
69
+ // return
70
+ this.dataService.UpdateUser(this.profile).subscribe((apiResponse) => {
71
+ this.isProcessing = false;
72
+ if (apiResponse.success) {
73
+ this.messageService.toast("Profile Updated");
74
+ }
75
+ else {
76
+ this.messageService.toast("Error: " + apiResponse.message);
77
+ }
78
+ }, (error) => {
79
+ this.messageService.toast("Connection failed ");
80
+ this.isProcessing = false;
81
+ });
82
+ }
83
+ }
84
+ ProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProfileComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.HttpService }, { token: i4.Router }, { token: i5.AuthService }], target: i0.ɵɵFactoryTarget.Component });
85
+ ProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ProfileComponent, selector: "spa-profile", inputs: { appConfig: "appConfig" }, ngImport: i0, template: "\r\n<h4>Profile</h4>\r\n<hr>\r\n\r\n<div class=\"container tin-grid-auto\" style=\"font-size:14px;\">\r\n\r\n <div class=\"tin-center centa\">\r\n <div class=\"profileImage\">{{initials}}</div>\r\n <mat-label id=\"lbluserName\" >{{profile?.userName}}</mat-label>\r\n </div>\r\n\r\n <div>\r\n\r\n <spa-text id=\"txtFirstName\" display=\"First Name\" [(value)]=\"profile.firstName\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-text id=\"txtLastName\" display=\"Last Name\" [(value)]=\"profile.lastName\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-text id=\"txtAuth\" display=\"Authentication\" [(value)]=\"profile.authType\" [readonly]=\"true\"></spa-text>\r\n <spa-text id=\"txtEmail\" display=\"Email\" [(value)]=\"profile.email\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-select id=\"cboRole\" display=\"Role\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [(value)]=\"profile.roleID\" [readonly]=\"selfProfile\"></spa-select>\r\n\r\n <button id=\"btnUpdate\" class=\"w-100\" mat-raised-button color=\"primary\" *ngIf=\"!selfProfile\" [disabled]=\"isProcessing\" (click)=\"updateProfile()\">Update Profile</button>\r\n </div>\r\n\r\n\r\n <div class=\"tin-center centa\">\r\n <a mat-button id=\"lnkUserManager\" style=\"margin-left: 1em\" *ngIf=\"!selfProfile\" (click)=\"gotoUsers()\">User Manager</a>\r\n <a mat-button id=\"lnkChangePassword\" style=\"margin-left: 1em\" *ngIf=\"(selfProfile || myRole[dataService.capUsers.name]) && profile.authType=='local'\" (click)=\"changePassword()\">Change Password</a>\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n", styles: [".centa{display:flex;flex-direction:column}.profileImage{width:150px;height:150px;border-radius:50%;background:#512DA8;font-size:50px;color:#fff;text-align:center;line-height:150px;margin:20px 0 0}#lbluserName{font-size:20px;font-style:italic}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.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: "component", type: i7.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i10.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "peekConfig", "infoMessage"], outputs: ["valueChange", "infoClick"] }] });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProfileComponent, decorators: [{
87
+ type: Component,
88
+ args: [{ selector: 'spa-profile', template: "\r\n<h4>Profile</h4>\r\n<hr>\r\n\r\n<div class=\"container tin-grid-auto\" style=\"font-size:14px;\">\r\n\r\n <div class=\"tin-center centa\">\r\n <div class=\"profileImage\">{{initials}}</div>\r\n <mat-label id=\"lbluserName\" >{{profile?.userName}}</mat-label>\r\n </div>\r\n\r\n <div>\r\n\r\n <spa-text id=\"txtFirstName\" display=\"First Name\" [(value)]=\"profile.firstName\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-text id=\"txtLastName\" display=\"Last Name\" [(value)]=\"profile.lastName\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-text id=\"txtAuth\" display=\"Authentication\" [(value)]=\"profile.authType\" [readonly]=\"true\"></spa-text>\r\n <spa-text id=\"txtEmail\" display=\"Email\" [(value)]=\"profile.email\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-select id=\"cboRole\" display=\"Role\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [(value)]=\"profile.roleID\" [readonly]=\"selfProfile\"></spa-select>\r\n\r\n <button id=\"btnUpdate\" class=\"w-100\" mat-raised-button color=\"primary\" *ngIf=\"!selfProfile\" [disabled]=\"isProcessing\" (click)=\"updateProfile()\">Update Profile</button>\r\n </div>\r\n\r\n\r\n <div class=\"tin-center centa\">\r\n <a mat-button id=\"lnkUserManager\" style=\"margin-left: 1em\" *ngIf=\"!selfProfile\" (click)=\"gotoUsers()\">User Manager</a>\r\n <a mat-button id=\"lnkChangePassword\" style=\"margin-left: 1em\" *ngIf=\"(selfProfile || myRole[dataService.capUsers.name]) && profile.authType=='local'\" (click)=\"changePassword()\">Change Password</a>\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n", styles: [".centa{display:flex;flex-direction:column}.profileImage{width:150px;height:150px;border-radius:50%;background:#512DA8;font-size:50px;color:#fff;text-align:center;line-height:150px;margin:20px 0 0}#lbluserName{font-size:20px;font-style:italic}\n"] }]
89
+ }], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.HttpService }, { type: i4.Router }, { type: i5.AuthService }]; }, propDecorators: { appConfig: [{
90
+ type: Input
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBZSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7OztBQVN4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW1CLFdBQTJCLEVBQVUsY0FBOEIsRUFBVSxXQUF3QixFQUFVLE1BQWMsRUFBVSxXQUF3QjtRQUEvSixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQW9CbEwsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNMLGNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBR3JDLGdCQUFXLEdBQWEsS0FBSyxDQUFDO1FBRTlCLFlBQU8sR0FBRyxJQUFJLE9BQU8sQ0FBRTtJQTFCK0osQ0FBQztJQUV2TCxRQUFRO1FBRU4sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQTtRQUV0RCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLElBQUUsRUFBRSxFQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcs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TyxDQUFDLENBQUM7YUFDNUQ7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDOzs2R0FyR1MsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsdUZDYjdCLDJtREFtQ0E7MkZEdEJhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOzJNQTJCZCxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlSZXNwb25zZSwgQXBwQ29uZmlnLCBQcm9maWxlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtcHJvZmlsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2ZpbGUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMubXlSb2xlID0gdGhpcy5hdXRoU2VydmljZS5jdXJyZW50Um9sZVNvdXJjZS52YWx1ZVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGFTZXJ2aWNlLnRtcFByb2ZpbGV1c2VyTmFtZT09XCJcIil7XHJcbiAgICAgIHRoaXMubG9hZFByb2ZpbGUodGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlcik7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMubG9hZFByb2ZpbGUodGhpcy5kYXRhU2VydmljZS50bXBQcm9maWxldXNlck5hbWUpO1xyXG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLnRtcFByb2ZpbGV1c2VyTmFtZSA9IFwiXCI7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpc1Byb2Nlc3Npbmc6IGJvb2xlYW47XHJcbiAgbXlSb2xlO1xyXG4gIGluaXRpYWxzID0gXCJcIjtcclxuICBASW5wdXQoKSBhcHBDb25maWcgPSBuZXcgQXBwQ29uZmlnKCk7XHJcblxyXG5cclxuICBzZWxmUHJvZmlsZSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJvZmlsZSA9IG5ldyBQcm9maWxlIDtcclxuICByb2xlcztcclxuICBhcHByb3ZhbFJvbGVzO1xyXG4gIGVtcGxveWVlcztcclxuXHJcblxyXG4gIGxvYWRQcm9maWxlKHVzZXJOYW1lOiBzdHJpbmcpe1xyXG5cclxuICAgIGxldCBhY3Rpb24gPSBcImFsbFwiO1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuR2V0VXNlckJ5SUQodXNlck5hbWUpLnN1YnNjcmliZSggKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgICB0aGlzLnByb2ZpbGUgPSBhcGlSZXNwb25zZS5kYXRhO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wcm9maWxlLnVzZXJOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlci50b0xvY2FsZUxvd2VyQ2FzZSgpKXtcclxuICAgICAgICAgIHRoaXMuc2VsZlByb2ZpbGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubG9hZFJvbGVzKClcclxuICAgICAgICB0aGlzLmluaXRpYWxzID0gYCR7dGhpcy5wcm9maWxlLmZpcnN0TmFtZT8udG9VcHBlckNhc2UoKS5jaGFyQXQoMCl9JHt0aGlzLnByb2ZpbGUubGFzdE5hbWU/LnRvVXBwZXJDYXNlKCkuY2hhckF0KDApfWBcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHRoaXMuaHR0cFNlcnZpY2UuRXJyb3IoZXJyb3IpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvYWRSb2xlcygpe1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuR2V0Um9sZShcImFsbFwiLCBcIlwiKS5zdWJzY3JpYmUoXHJcbiAgICAgIChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLnJvbGVzID0gYXBpUmVzcG9uc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdCh0aGlzLmh0dHBTZXJ2aWNlLkVycm9yKGVycm9yKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlUGFzc3dvcmQoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UudG1wUHJvZmlsZXVzZXJOYW1lID0gdGhpcy5wcm9maWxlLnVzZXJOYW1lO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiaG9tZS91c2VyL2NoYW5nZS1wYXNzd29yZFwiXSk7XHJcbiAgfVxyXG5cclxuICBnb3RvVXNlcnMoKXtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImhvbWUvYWRtaW4vdXNlcnNcIl0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCl7XHJcblxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZmlsZSgpe1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8vIHJldHVyblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5VcGRhdGVVc2VyKHRoaXMucHJvZmlsZSkuc3Vic2NyaWJlKFxyXG4gICAgICAoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQcm9maWxlIFVwZGF0ZWRcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJDb25uZWN0aW9uIGZhaWxlZCBcIik7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgfVxyXG5cclxufVxyXG4iLCJcclxuPGg0PlByb2ZpbGU8L2g0PlxyXG48aHI+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyIHRpbi1ncmlkLWF1dG9cIiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4O1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGluLWNlbnRlciBjZW50YVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2ZpbGVJbWFnZVwiPnt7aW5pdGlhbHN9fTwvZGl2PlxyXG4gICAgPG1hdC1sYWJlbCBpZD1cImxibHVzZXJOYW1lXCIgPnt7cHJvZmlsZT8udXNlck5hbWV9fTwvbWF0LWxhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2PlxyXG5cclxuICAgIDxzcGEtdGV4dCBpZD1cInR4dEZpcnN0TmFtZVwiIGRpc3BsYXk9XCJGaXJzdCBOYW1lXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5maXJzdE5hbWVcIiBbcmVhZG9ubHldPVwic2VsZlByb2ZpbGVcIj48L3NwYS10ZXh0PlxyXG4gICAgPHNwYS10ZXh0IGlkPVwidHh0TGFzdE5hbWVcIiBkaXNwbGF5PVwiTGFzdCBOYW1lXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5sYXN0TmFtZVwiIFtyZWFkb25seV09XCJzZWxmUHJvZmlsZVwiPjwvc3BhLXRleHQ+XHJcbiAgICA8c3BhLXRleHQgaWQ9XCJ0eHRBdXRoXCIgZGlzcGxheT1cIkF1dGhlbnRpY2F0aW9uXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5hdXRoVHlwZVwiIFtyZWFkb25seV09XCJ0cnVlXCI+PC9zcGEtdGV4dD5cclxuICAgIDxzcGEtdGV4dCBpZD1cInR4dEVtYWlsXCIgZGlzcGxheT1cIkVtYWlsXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5lbWFpbFwiIFtyZWFkb25seV09XCJzZWxmUHJvZmlsZVwiPjwvc3BhLXRleHQ+XHJcbiAgICA8c3BhLXNlbGVjdCBpZD1cImNib1JvbGVcIiBkaXNwbGF5PVwiUm9sZVwiIFtvcHRpb25zXT1cInJvbGVzXCIgb3B0aW9uRGlzcGxheT1cInJvbGVOYW1lXCIgb3B0aW9uVmFsdWU9XCJyb2xlSURcIiBbKHZhbHVlKV09XCJwcm9maWxlLnJvbGVJRFwiIFtyZWFkb25seV09XCJzZWxmUHJvZmlsZVwiPjwvc3BhLXNlbGVjdD5cclxuXHJcbiAgICA8YnV0dG9uIGlkPVwiYnRuVXBkYXRlXCIgY2xhc3M9XCJ3LTEwMFwiICAgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCIhc2VsZlByb2ZpbGVcIiBbZGlzYWJsZWRdPVwiaXNQcm9jZXNzaW5nXCIgKGNsaWNrKT1cInVwZGF0ZVByb2ZpbGUoKVwiPlVwZGF0ZSBQcm9maWxlPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGluLWNlbnRlciBjZW50YVwiPlxyXG4gICAgPGEgbWF0LWJ1dHRvbiBpZD1cImxua1VzZXJNYW5hZ2VyXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMWVtXCIgKm5nSWY9XCIhc2VsZlByb2ZpbGVcIiAoY2xpY2spPVwiZ290b1VzZXJzKClcIj5Vc2VyIE1hbmFnZXI8L2E+XHJcbiAgICA8YSBtYXQtYnV0dG9uIGlkPVwibG5rQ2hhbmdlUGFzc3dvcmRcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxZW1cIiAqbmdJZj1cIihzZWxmUHJvZmlsZSB8fCBteVJvbGVbZGF0YVNlcnZpY2UuY2FwVXNlcnMubmFtZV0pICYmIHByb2ZpbGUuYXV0aFR5cGU9PSdsb2NhbCdcIiAoY2xpY2spPVwiY2hhbmdlUGFzc3dvcmQoKVwiPkNoYW5nZSBQYXNzd29yZDwvYT5cclxuICA8L2Rpdj5cclxuXHJcblxyXG48L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { Component } from '@angular/core';
2
+ import { User } from '../../classes/Classes';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../../services/datalib.service";
6
+ import * as i3 from "../../services/auth.service";
7
+ import * as i4 from "../../services/message.service";
8
+ import * as i5 from "@angular/material/button";
9
+ import * as i6 from "../text/text.component";
10
+ export class RecoverAccountComponent {
11
+ constructor(location, dataService, authService, messageService) {
12
+ this.location = location;
13
+ this.dataService = dataService;
14
+ this.authService = authService;
15
+ this.messageService = messageService;
16
+ this.userName = "";
17
+ }
18
+ ngOnInit() {
19
+ }
20
+ recover() {
21
+ if (this.userName == "") {
22
+ this.messageService.toast("Please enter your userName");
23
+ return;
24
+ }
25
+ else {
26
+ let u = new User();
27
+ u.userName = this.userName;
28
+ this.dataService.SelfReset(u).subscribe((apiResponse) => {
29
+ if (apiResponse.message == "success") {
30
+ this.messageService.toast("The password has been sent to your email");
31
+ this.location.back();
32
+ }
33
+ else {
34
+ this.messageService.toast("Error: " + apiResponse.message);
35
+ }
36
+ });
37
+ }
38
+ }
39
+ }
40
+ RecoverAccountComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RecoverAccountComponent, deps: [{ token: i1.Location }, { token: i2.DataServiceLib }, { token: i3.AuthService }, { token: i4.MessageService }], target: i0.ɵɵFactoryTarget.Component });
41
+ RecoverAccountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: RecoverAccountComponent, selector: "spa-recover-account", ngImport: i0, template: "\r\n<div class=\"container\" style=\"padding-top: 30px;\">\r\n<h4>Recover Account</h4>\r\n\r\n<hr />\r\n\r\nSubmit your Username and we will send you details to your registered email address.\r\n\r\n<div style=\"font-size: 14px;\">\r\n <spa-text class=\"mt-3\" display=\"Username\" [(value)]=\"userName\"></spa-text>\r\n\r\n <div class=\"tin-center\">\r\n <button class=\"mt-3 w-50\" mat-raised-button color=\"primary\" (click)=\"recover()\" cdkFocusInitial>Submit</button>\r\n </div>\r\n\r\n</div>\r\n\r\n</div>\r\n\r\n", styles: [""], dependencies: [{ kind: "component", type: i5.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: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }] });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RecoverAccountComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'spa-recover-account', template: "\r\n<div class=\"container\" style=\"padding-top: 30px;\">\r\n<h4>Recover Account</h4>\r\n\r\n<hr />\r\n\r\nSubmit your Username and we will send you details to your registered email address.\r\n\r\n<div style=\"font-size: 14px;\">\r\n <spa-text class=\"mt-3\" display=\"Username\" [(value)]=\"userName\"></spa-text>\r\n\r\n <div class=\"tin-center\">\r\n <button class=\"mt-3 w-50\" mat-raised-button color=\"primary\" (click)=\"recover()\" cdkFocusInitial>Submit</button>\r\n </div>\r\n\r\n</div>\r\n\r\n</div>\r\n\r\n" }]
45
+ }], ctorParameters: function () { return [{ type: i1.Location }, { type: i2.DataServiceLib }, { type: i3.AuthService }, { type: i4.MessageService }]; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3Zlci1hY2NvdW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3JlY292ZXItYWNjb3VudC9yZWNvdmVyLWFjY291bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3Zlci1hY2NvdW50L3JlY292ZXItYWNjb3VudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxELE9BQU8sRUFBRSxJQUFJLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFRMUQsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFvQixRQUFrQixFQUFVLFdBQTJCLEVBQVMsV0FBd0IsRUFBVSxjQUE4QjtRQUFoSSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFLcEosYUFBUSxHQUFXLEVBQUUsQ0FBQztJQUxrSSxDQUFDO0lBRXpKLFFBQVE7SUFDUixDQUFDO0lBSUQsT0FBTztRQUdMLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7WUFFdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUN4RCxPQUFPO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBRTNCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxXQUFXLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRTtvQkFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDdEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDNUQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7b0hBN0JVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDJEQ1pwQyxnaEJBbUJBOzJGRFBhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyLCBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLXJlY292ZXItYWNjb3VudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY292ZXItYWNjb3VudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVjb3Zlci1hY2NvdW50LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3ZlckFjY291bnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbiwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICB1c2VyTmFtZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcmVjb3Zlcigpe1xyXG5cclxuXHJcbiAgICBpZiAodGhpcy51c2VyTmFtZSA9PSBcIlwiKSB7XHJcblxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIGVudGVyIHlvdXIgdXNlck5hbWVcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB1ID0gbmV3IFVzZXIoKTtcclxuICAgICAgdS51c2VyTmFtZSA9IHRoaXMudXNlck5hbWU7XHJcblxyXG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLlNlbGZSZXNldCh1KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChhcGlSZXNwb25zZS5tZXNzYWdlID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiVGhlIHBhc3N3b3JkIGhhcyBiZWVuIHNlbnQgdG8geW91ciBlbWFpbFwiKTtcclxuICAgICAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwicGFkZGluZy10b3A6IDMwcHg7XCI+XHJcbjxoND5SZWNvdmVyIEFjY291bnQ8L2g0PlxyXG5cclxuPGhyIC8+XHJcblxyXG5TdWJtaXQgeW91ciBVc2VybmFtZSBhbmQgd2Ugd2lsbCBzZW5kIHlvdSBkZXRhaWxzIHRvIHlvdXIgcmVnaXN0ZXJlZCBlbWFpbCBhZGRyZXNzLlxyXG5cclxuPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIj5cclxuICA8c3BhLXRleHQgY2xhc3M9XCJtdC0zXCIgZGlzcGxheT1cIlVzZXJuYW1lXCIgWyh2YWx1ZSldPVwidXNlck5hbWVcIj48L3NwYS10ZXh0PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGluLWNlbnRlclwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm10LTMgdy01MFwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJyZWNvdmVyKClcIiBjZGtGb2N1c0luaXRpYWw+U3VibWl0PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuIl19
@@ -0,0 +1,60 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { Role } from '../../classes/Classes';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/loader.service";
6
+ import * as i2 from "../../services/message.service";
7
+ import * as i3 from "../../services/datalib.service";
8
+ import * as i4 from "../../services/auth.service";
9
+ import * as i5 from "@angular/material/dialog";
10
+ import * as i6 from "@angular/forms";
11
+ import * as i7 from "@angular/common";
12
+ import * as i8 from "@angular/material/checkbox";
13
+ import * as i9 from "@angular/material/button";
14
+ import * as i10 from "@angular/material/form-field";
15
+ import * as i11 from "@angular/material/input";
16
+ export class addRoleDialog {
17
+ constructor(loaderService, messageService, dataService, authService, dialogRef, data) {
18
+ this.loaderService = loaderService;
19
+ this.messageService = messageService;
20
+ this.dataService = dataService;
21
+ this.authService = authService;
22
+ this.dialogRef = dialogRef;
23
+ this.data = data;
24
+ this.role = new Role();
25
+ }
26
+ ngOnInit() {
27
+ this.capItems = this.data;
28
+ this.loaderService.isLoading.subscribe(x => this.isProcessing = x);
29
+ }
30
+ submit() {
31
+ if (this.role.roleName == "New Role" || this.role.roleName == "") {
32
+ this.messageService.toast("Please enter Role Name");
33
+ return;
34
+ }
35
+ this.dataService.PostRole(this.role, "add").subscribe((apiResponse) => {
36
+ if (apiResponse.success) {
37
+ this.messageService.toast("Role Added");
38
+ this.dialogRef.close("success");
39
+ }
40
+ else {
41
+ this.messageService.toast("Error: " + apiResponse.message);
42
+ }
43
+ }, error => {
44
+ this.messageService.toast("Connection failed");
45
+ this.isProcessing = false;
46
+ });
47
+ }
48
+ ;
49
+ }
50
+ addRoleDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: addRoleDialog, deps: [{ token: i1.LoaderService }, { token: i2.MessageService }, { token: i3.DataServiceLib }, { token: i4.AuthService }, { token: i5.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
51
+ addRoleDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: addRoleDialog, selector: "app-addRole", ngImport: i0, template: "<mat-form-field>\r\n <mat-label>Role Name</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"role.roleName\" placeholder=\"Enter Role Name\" />\r\n</mat-form-field>\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"row\" >\r\n\r\n\r\n <div class=\"tin-row\" style=\" font-size:12px;\">\r\n\r\n\r\n <div class=\"tin-row\" *ngFor=\"let capItem of capItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"min-width: 100px;\" [(ngModel)]=\"role[capItem.name]\">{{capItem.display}}</mat-checkbox>\r\n\r\n <div class=\"tin-row\" *ngFor=\"let capSubItem of capItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"min-width: 100px;\" [(ngModel)]=\"role[capSubItem.name]\">{{capSubItem.display}}</mat-checkbox>\r\n\r\n <div class=\"tin-row\" *ngFor=\"let capSubSubItem of capSubItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"min-width: 100px;\" [(ngModel)]=\"role[capSubSubItem.name]\">{{capSubSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n <button mat-button mat-dialog-close=\"success\">Cancel</button>\r\n</mat-dialog-actions>\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}\n"], dependencies: [{ kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i9.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: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i11.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"] }] });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: addRoleDialog, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'app-addRole', template: "<mat-form-field>\r\n <mat-label>Role Name</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"role.roleName\" placeholder=\"Enter Role Name\" />\r\n</mat-form-field>\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"row\" >\r\n\r\n\r\n <div class=\"tin-row\" style=\" font-size:12px;\">\r\n\r\n\r\n <div class=\"tin-row\" *ngFor=\"let capItem of capItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"min-width: 100px;\" [(ngModel)]=\"role[capItem.name]\">{{capItem.display}}</mat-checkbox>\r\n\r\n <div class=\"tin-row\" *ngFor=\"let capSubItem of capItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"min-width: 100px;\" [(ngModel)]=\"role[capSubItem.name]\">{{capSubItem.display}}</mat-checkbox>\r\n\r\n <div class=\"tin-row\" *ngFor=\"let capSubSubItem of capSubItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"min-width: 100px;\" [(ngModel)]=\"role[capSubSubItem.name]\">{{capSubSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n <button mat-button mat-dialog-close=\"success\">Cancel</button>\r\n</mat-dialog-actions>\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}\n"] }]
55
+ }], ctorParameters: function () { return [{ type: i1.LoaderService }, { type: i2.MessageService }, { type: i3.DataServiceLib }, { type: i4.AuthService }, { type: i5.MatDialogRef }, { type: undefined, decorators: [{
56
+ type: Inject,
57
+ args: [MAT_DIALOG_DATA]
58
+ }] }]; } });
59
+ ;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkUm9sZURpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9yb2xlcy9hZGRSb2xlRGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3JvbGVzL2FkZFJvbGVEaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFhLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRixPQUFPLEVBQUUsSUFBSSxFQUFlLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRMUQsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFBb0IsYUFBNEIsRUFBUyxjQUE4QixFQUFVLFdBQTJCLEVBQVUsV0FBd0IsRUFBVSxTQUFzQyxFQUFrQyxJQUFJO1FBQWhPLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUE2QjtRQUFrQyxTQUFJLEdBQUosSUFBSSxDQUFBO1FBVXBQLFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBVnNPLENBQUM7SUFFelAsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFPRCxNQUFNO1FBRUosSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFDO1lBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDcEQsT0FBTztTQUNSO1FBR0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUVuRSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNqQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzVEO1FBR0gsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFBQSxDQUFDOzswR0FyQ1MsYUFBYSxrS0FFZ00sZUFBZTs4RkFGNU4sYUFBYSxtRENkMUIsczhDQXlDQTsyRkQzQmEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxhQUFhOzswQkFNMEwsTUFBTTsyQkFBQyxlQUFlOztBQW9DeE8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgIEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvbGUsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFkZFJvbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGRSb2xlRGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yb2xlcy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIGFkZFJvbGVEaWFsb2cgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvYWRlclNlcnZpY2U6IExvYWRlclNlcnZpY2UscHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhZGRSb2xlRGlhbG9nPiwgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNhcEl0ZW1zID0gdGhpcy5kYXRhO1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmlzTG9hZGluZy5zdWJzY3JpYmUoeCA9PiB0aGlzLmlzUHJvY2Vzc2luZyA9IHgpO1xyXG4gIH1cclxuXHJcbiAgY2FwSXRlbXM7XHJcblxyXG4gIGlzUHJvY2Vzc2luZzogYm9vbGVhbjtcclxuICByb2xlID0gbmV3IFJvbGUoKTtcclxuXHJcbiAgc3VibWl0KCkge1xyXG5cclxuICAgIGlmICh0aGlzLnJvbGUucm9sZU5hbWUgPT0gXCJOZXcgUm9sZVwiIHx8IHRoaXMucm9sZS5yb2xlTmFtZSA9PSBcIlwiKXtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBsZWFzZSBlbnRlciBSb2xlIE5hbWVcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5Qb3N0Um9sZSh0aGlzLnJvbGUsXCJhZGRcIikuc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUm9sZSBBZGRlZFwiKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShcInN1Y2Nlc3NcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkVycm9yOiBcIiArIGFwaVJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkNvbm5lY3Rpb24gZmFpbGVkXCIpO1xyXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcblxyXG4gIH07XHJcbn07XHJcblxyXG5cclxuXHJcbiIsIjxtYXQtZm9ybS1maWVsZD5cclxuICA8bWF0LWxhYmVsPlJvbGUgTmFtZTwvbWF0LWxhYmVsPlxyXG4gIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInJvbGUucm9sZU5hbWVcIiBwbGFjZWhvbGRlcj1cIkVudGVyIFJvbGUgTmFtZVwiIC8+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG48bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiID5cclxuXHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpbi1yb3dcIiBzdHlsZT1cIiBmb250LXNpemU6MTJweDtcIj5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGluLXJvd1wiICpuZ0Zvcj1cImxldCBjYXBJdGVtIG9mIGNhcEl0ZW1zXCI+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJtaW4td2lkdGg6IDEwMHB4O1wiIFsobmdNb2RlbCldPVwicm9sZVtjYXBJdGVtLm5hbWVdXCI+e3tjYXBJdGVtLmRpc3BsYXl9fTwvbWF0LWNoZWNrYm94PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGluLXJvd1wiICpuZ0Zvcj1cImxldCBjYXBTdWJJdGVtIG9mIGNhcEl0ZW0uY2FwU3ViSXRlbXNcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwibWluLXdpZHRoOiAxMDBweDtcIiBbKG5nTW9kZWwpXT1cInJvbGVbY2FwU3ViSXRlbS5uYW1lXVwiPnt7Y2FwU3ViSXRlbS5kaXNwbGF5fX08L21hdC1jaGVja2JveD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGluLXJvd1wiICpuZ0Zvcj1cImxldCBjYXBTdWJTdWJJdGVtIG9mIGNhcFN1Ykl0ZW0uY2FwU3ViSXRlbXNcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJtaW4td2lkdGg6IDEwMHB4O1wiIFsobmdNb2RlbCldPVwicm9sZVtjYXBTdWJTdWJJdGVtLm5hbWVdXCI+e3tjYXBTdWJTdWJJdGVtLmRpc3BsYXl9fTwvbWF0LWNoZWNrYm94PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbjwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG5cclxuPG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gW2Rpc2FibGVkXT1cImlzUHJvY2Vzc2luZ1wiIChjbGljayk9XCJzdWJtaXQoKVwiIGNka0ZvY3VzSW5pdGlhbD5TdWJtaXQ8L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT1cInN1Y2Nlc3NcIj5DYW5jZWw8L2J1dHRvbj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiJdfQ==