tin-spa 0.0.1

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 (167) hide show
  1. package/README.md +24 -0
  2. package/bundles/tin-spa.umd.js +3434 -0
  3. package/bundles/tin-spa.umd.js.map +1 -0
  4. package/bundles/tin-spa.umd.min.js +16 -0
  5. package/bundles/tin-spa.umd.min.js.map +1 -0
  6. package/esm2015/lib/classes/Classes.js +238 -0
  7. package/esm2015/lib/components/activity/activity.component.js +22 -0
  8. package/esm2015/lib/components/attach/attach.component.js +103 -0
  9. package/esm2015/lib/components/change-password/change-password.component.js +91 -0
  10. package/esm2015/lib/components/check/check.component.js +63 -0
  11. package/esm2015/lib/components/chips/chips.component.js +71 -0
  12. package/esm2015/lib/components/create-account/create-account.component.js +74 -0
  13. package/esm2015/lib/components/date/date.component.js +32 -0
  14. package/esm2015/lib/components/datetime/datetime.component.js +40 -0
  15. package/esm2015/lib/components/loader/loader.component.js +30 -0
  16. package/esm2015/lib/components/login/login.component.js +110 -0
  17. package/esm2015/lib/components/logs/logs.component.js +43 -0
  18. package/esm2015/lib/components/message/messageDialog.component.js +31 -0
  19. package/esm2015/lib/components/money/money.component.js +67 -0
  20. package/esm2015/lib/components/nav-menu/nav-menu.component.js +51 -0
  21. package/esm2015/lib/components/profile/profile.component.js +108 -0
  22. package/esm2015/lib/components/profiles/profiles.component.js +16 -0
  23. package/esm2015/lib/components/recover-account/recover-account.component.js +52 -0
  24. package/esm2015/lib/components/roles/addRoleDialog.component.js +59 -0
  25. package/esm2015/lib/components/roles/editRoleDialog.component.js +57 -0
  26. package/esm2015/lib/components/roles/roles.component.js +131 -0
  27. package/esm2015/lib/components/roles/viewRoleDialog.component.js +38 -0
  28. package/esm2015/lib/components/select/select.component.js +51 -0
  29. package/esm2015/lib/components/settings/settings.component.js +63 -0
  30. package/esm2015/lib/components/signup/signup.component.js +56 -0
  31. package/esm2015/lib/components/table/table.component.js +109 -0
  32. package/esm2015/lib/components/text/text.component.js +108 -0
  33. package/esm2015/lib/components/tiles/tiles.component.js +19 -0
  34. package/esm2015/lib/components/timeout/timeout.component.js +90 -0
  35. package/esm2015/lib/components/tin-spa.component.js +19 -0
  36. package/esm2015/lib/components/users/addUserDialog.component.js +53 -0
  37. package/esm2015/lib/components/users/editUserDialog.component.js +96 -0
  38. package/esm2015/lib/components/users/users.component.js +130 -0
  39. package/esm2015/lib/components/viewer/viewer.component.js +60 -0
  40. package/esm2015/lib/components/viewer/viewerDialog.component.js +77 -0
  41. package/esm2015/lib/dnd.directive.js +51 -0
  42. package/esm2015/lib/modules/spa-admin.module.js +67 -0
  43. package/esm2015/lib/modules/spa-index.module.js +33 -0
  44. package/esm2015/lib/modules/spa-mat.module.js +53 -0
  45. package/esm2015/lib/modules/spa-user.module.js +31 -0
  46. package/esm2015/lib/services/auth.service.js +150 -0
  47. package/esm2015/lib/services/data.service.js +77 -0
  48. package/esm2015/lib/services/export.service.js +29 -0
  49. package/esm2015/lib/services/loader-interceptor.service.js +77 -0
  50. package/esm2015/lib/services/loader.service.js +17 -0
  51. package/esm2015/lib/services/log.service.js +76 -0
  52. package/esm2015/lib/services/message.service.js +58 -0
  53. package/esm2015/lib/services/storage.service.js +42 -0
  54. package/esm2015/lib/services/tin-spa.service.js +14 -0
  55. package/esm2015/lib/tin-spa.module.js +86 -0
  56. package/esm2015/public-api.js +54 -0
  57. package/esm2015/tin-spa.js +9 -0
  58. package/esm5/lib/classes/Classes.js +291 -0
  59. package/esm5/lib/components/activity/activity.component.js +23 -0
  60. package/esm5/lib/components/attach/attach.component.js +115 -0
  61. package/esm5/lib/components/change-password/change-password.component.js +93 -0
  62. package/esm5/lib/components/check/check.component.js +64 -0
  63. package/esm5/lib/components/chips/chips.component.js +73 -0
  64. package/esm5/lib/components/create-account/create-account.component.js +76 -0
  65. package/esm5/lib/components/date/date.component.js +33 -0
  66. package/esm5/lib/components/datetime/datetime.component.js +41 -0
  67. package/esm5/lib/components/loader/loader.component.js +32 -0
  68. package/esm5/lib/components/login/login.component.js +113 -0
  69. package/esm5/lib/components/logs/logs.component.js +45 -0
  70. package/esm5/lib/components/message/messageDialog.component.js +32 -0
  71. package/esm5/lib/components/money/money.component.js +68 -0
  72. package/esm5/lib/components/nav-menu/nav-menu.component.js +53 -0
  73. package/esm5/lib/components/profile/profile.component.js +112 -0
  74. package/esm5/lib/components/profiles/profiles.component.js +18 -0
  75. package/esm5/lib/components/recover-account/recover-account.component.js +54 -0
  76. package/esm5/lib/components/roles/addRoleDialog.component.js +61 -0
  77. package/esm5/lib/components/roles/editRoleDialog.component.js +59 -0
  78. package/esm5/lib/components/roles/roles.component.js +138 -0
  79. package/esm5/lib/components/roles/viewRoleDialog.component.js +39 -0
  80. package/esm5/lib/components/select/select.component.js +52 -0
  81. package/esm5/lib/components/settings/settings.component.js +66 -0
  82. package/esm5/lib/components/signup/signup.component.js +58 -0
  83. package/esm5/lib/components/table/table.component.js +111 -0
  84. package/esm5/lib/components/text/text.component.js +109 -0
  85. package/esm5/lib/components/tiles/tiles.component.js +21 -0
  86. package/esm5/lib/components/timeout/timeout.component.js +92 -0
  87. package/esm5/lib/components/tin-spa.component.js +17 -0
  88. package/esm5/lib/components/users/addUserDialog.component.js +55 -0
  89. package/esm5/lib/components/users/editUserDialog.component.js +99 -0
  90. package/esm5/lib/components/users/users.component.js +135 -0
  91. package/esm5/lib/components/viewer/viewer.component.js +61 -0
  92. package/esm5/lib/components/viewer/viewerDialog.component.js +78 -0
  93. package/esm5/lib/dnd.directive.js +52 -0
  94. package/esm5/lib/modules/spa-admin.module.js +70 -0
  95. package/esm5/lib/modules/spa-index.module.js +36 -0
  96. package/esm5/lib/modules/spa-mat.module.js +56 -0
  97. package/esm5/lib/modules/spa-user.module.js +34 -0
  98. package/esm5/lib/services/auth.service.js +152 -0
  99. package/esm5/lib/services/data.service.js +78 -0
  100. package/esm5/lib/services/export.service.js +30 -0
  101. package/esm5/lib/services/loader-interceptor.service.js +79 -0
  102. package/esm5/lib/services/loader.service.js +18 -0
  103. package/esm5/lib/services/log.service.js +112 -0
  104. package/esm5/lib/services/message.service.js +59 -0
  105. package/esm5/lib/services/storage.service.js +74 -0
  106. package/esm5/lib/services/tin-spa.service.js +16 -0
  107. package/esm5/lib/tin-spa.module.js +89 -0
  108. package/esm5/public-api.js +54 -0
  109. package/esm5/tin-spa.js +9 -0
  110. package/fesm2015/tin-spa.js +2988 -0
  111. package/fesm2015/tin-spa.js.map +1 -0
  112. package/fesm5/tin-spa.js +3193 -0
  113. package/fesm5/tin-spa.js.map +1 -0
  114. package/lib/classes/Classes.d.ts +249 -0
  115. package/lib/components/activity/activity.component.d.ts +7 -0
  116. package/lib/components/attach/attach.component.d.ts +38 -0
  117. package/lib/components/change-password/change-password.component.d.ts +20 -0
  118. package/lib/components/check/check.component.d.ts +16 -0
  119. package/lib/components/chips/chips.component.d.ts +16 -0
  120. package/lib/components/create-account/create-account.component.d.ts +25 -0
  121. package/lib/components/date/date.component.d.ts +11 -0
  122. package/lib/components/datetime/datetime.component.d.ts +11 -0
  123. package/lib/components/loader/loader.component.d.ts +9 -0
  124. package/lib/components/login/login.component.d.ts +28 -0
  125. package/lib/components/logs/logs.component.d.ts +17 -0
  126. package/lib/components/message/messageDialog.component.d.ts +12 -0
  127. package/lib/components/money/money.component.d.ts +19 -0
  128. package/lib/components/nav-menu/nav-menu.component.d.ts +17 -0
  129. package/lib/components/profile/profile.component.d.ts +30 -0
  130. package/lib/components/profiles/profiles.component.d.ts +5 -0
  131. package/lib/components/recover-account/recover-account.component.d.ts +15 -0
  132. package/lib/components/roles/addRoleDialog.component.d.ts +19 -0
  133. package/lib/components/roles/editRoleDialog.component.d.ts +19 -0
  134. package/lib/components/roles/roles.component.d.ts +29 -0
  135. package/lib/components/roles/viewRoleDialog.component.d.ts +15 -0
  136. package/lib/components/select/select.component.d.ts +15 -0
  137. package/lib/components/settings/settings.component.d.ts +16 -0
  138. package/lib/components/signup/signup.component.d.ts +20 -0
  139. package/lib/components/table/table.component.d.ts +25 -0
  140. package/lib/components/text/text.component.d.ts +25 -0
  141. package/lib/components/tiles/tiles.component.d.ts +7 -0
  142. package/lib/components/timeout/timeout.component.d.ts +21 -0
  143. package/lib/components/tin-spa.component.d.ts +5 -0
  144. package/lib/components/users/addUserDialog.component.d.ts +16 -0
  145. package/lib/components/users/editUserDialog.component.d.ts +27 -0
  146. package/lib/components/users/users.component.d.ts +35 -0
  147. package/lib/components/viewer/viewer.component.d.ts +14 -0
  148. package/lib/components/viewer/viewerDialog.component.d.ts +19 -0
  149. package/lib/dnd.directive.d.ts +8 -0
  150. package/lib/modules/spa-admin.module.d.ts +2 -0
  151. package/lib/modules/spa-index.module.d.ts +2 -0
  152. package/lib/modules/spa-mat.module.d.ts +2 -0
  153. package/lib/modules/spa-user.module.d.ts +2 -0
  154. package/lib/services/auth.service.d.ts +44 -0
  155. package/lib/services/data.service.d.ts +23 -0
  156. package/lib/services/export.service.d.ts +7 -0
  157. package/lib/services/loader-interceptor.service.d.ts +18 -0
  158. package/lib/services/loader.service.d.ts +5 -0
  159. package/lib/services/log.service.d.ts +16 -0
  160. package/lib/services/message.service.d.ts +12 -0
  161. package/lib/services/storage.service.d.ts +7 -0
  162. package/lib/services/tin-spa.service.d.ts +3 -0
  163. package/lib/tin-spa.module.d.ts +2 -0
  164. package/package.json +21 -0
  165. package/public-api.d.ts +46 -0
  166. package/tin-spa.d.ts +8 -0
  167. package/tin-spa.metadata.json +1 -0
@@ -0,0 +1,71 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { MessageService } from '../../services/message.service';
4
+ let ChipsComponent = class ChipsComponent {
5
+ constructor(messageService) {
6
+ this.messageService = messageService;
7
+ this.display = "";
8
+ this.icon = "";
9
+ this.removable = false;
10
+ this.addable = false;
11
+ // @Output() chipClick = new EventEmitter();
12
+ this.click = new EventEmitter();
13
+ this.remove = new EventEmitter();
14
+ }
15
+ ngOnInit() {
16
+ }
17
+ clicked(chip) {
18
+ console.log("Clicked chip: " + chip);
19
+ if (typeof chip != 'string') {
20
+ return;
21
+ }
22
+ if (chip) {
23
+ this.click.emit(chip);
24
+ }
25
+ }
26
+ removed(chip) {
27
+ // const index = this.chips.indexOf(chip);
28
+ // if (index >= 0) {
29
+ // this.chips.splice(index, 1);
30
+ // }
31
+ this.messageService.confirm(`Remove ${chip} ?`).subscribe((result) => {
32
+ if (result == "yes") {
33
+ this.remove.emit(chip);
34
+ }
35
+ ;
36
+ });
37
+ }
38
+ };
39
+ ChipsComponent.ctorParameters = () => [
40
+ { type: MessageService }
41
+ ];
42
+ __decorate([
43
+ Input()
44
+ ], ChipsComponent.prototype, "display", void 0);
45
+ __decorate([
46
+ Input()
47
+ ], ChipsComponent.prototype, "icon", void 0);
48
+ __decorate([
49
+ Input()
50
+ ], ChipsComponent.prototype, "removable", void 0);
51
+ __decorate([
52
+ Input()
53
+ ], ChipsComponent.prototype, "addable", void 0);
54
+ __decorate([
55
+ Input()
56
+ ], ChipsComponent.prototype, "chips", void 0);
57
+ __decorate([
58
+ Output()
59
+ ], ChipsComponent.prototype, "click", void 0);
60
+ __decorate([
61
+ Output()
62
+ ], ChipsComponent.prototype, "remove", void 0);
63
+ ChipsComponent = __decorate([
64
+ Component({
65
+ selector: 'spa-chips',
66
+ template: "\n<div class=\"tin-input-row mt-3\" *ngIf=\"display != ''\">\n <div class=\"col\">\n {{display}}\n </div>\n</div>\n\n<div class=\"row mt-1\" style=\"margin-left: 1em;\">\n <mat-chip-list #chipList >\n <mat-chip *ngFor=\"let chip of chips let i = index\" selectable [removable]=\"removable\" style=\"font-size: 12px;\" [ngStyle]=\"{'padding-right': removable ? '5px':'12px'}\" (click)=\"clicked(chip)\" >\n <mat-icon *ngIf=\"icon != ''\" color=\"primary\" style=\"font-size: 22px;\">{{icon}}</mat-icon>\n\n {{chip}}\n\n <mat-icon *ngIf=\"removable\" style=\"font-size: 20px; margin-left: 5px;margin-top: 3px;margin-right: 0px; color: grey;\" (click)=\"removed(chip)\">cancel</mat-icon>\n </mat-chip>\n </mat-chip-list>\n</div>\n\n\n",
67
+ styles: [""]
68
+ })
69
+ ], ChipsComponent);
70
+ export { ChipsComponent };
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NoaXBzL2NoaXBzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFNaEUsSUFBYSxjQUFjLEdBQTNCLE1BQWEsY0FBYztJQUV6QixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFNekMsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFJekIsNENBQTRDO1FBRWxDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBakJnQixDQUFDO0lBR3ZELFFBQVE7SUFDUixDQUFDO0lBZUQsT0FBTyxDQUFDLElBQVk7UUFFbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUVwQyxJQUFJLE9BQU8sSUFBSSxJQUFJLFFBQVEsRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUdELE9BQU8sQ0FBQyxJQUFJO1FBRVYsMENBQTBDO1FBRTFDLG9CQUFvQjtRQUNwQixpQ0FBaUM7UUFDakMsSUFBSTtRQUVKLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNuRSxJQUFJLE1BQU0sSUFBSSxLQUFLLEVBQUU7Z0JBRW5CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBRXhCO1lBQUEsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztDQUVGLENBQUE7O1lBbkRxQyxjQUFjOztBQU16QztJQUFSLEtBQUssRUFBRTsrQ0FBYztBQUNiO0lBQVIsS0FBSyxFQUFFOzRDQUFXO0FBQ1Y7SUFBUixLQUFLLEVBQUU7aURBQW1CO0FBQ2xCO0lBQVIsS0FBSyxFQUFFOytDQUFpQjtBQUdoQjtJQUFSLEtBQUssRUFBRTs2Q0FBaUI7QUFHZjtJQUFULE1BQU0sRUFBRTs2Q0FBNEI7QUFFM0I7SUFBVCxNQUFNLEVBQUU7OENBQTZCO0FBbkIzQixjQUFjO0lBTDFCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxXQUFXO1FBQ3JCLDB3QkFBcUM7O0tBRXRDLENBQUM7R0FDVyxjQUFjLENBcUQxQjtTQXJEWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3BhLWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hpcHMuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoaXBzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkgeyB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBcIlwiO1xuICBASW5wdXQoKSBpY29uID0gXCJcIjtcbiAgQElucHV0KCkgcmVtb3ZhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFkZGFibGUgPSBmYWxzZTtcblxuXG4gIEBJbnB1dCgpIGNoaXBzOiBzdHJpbmdbXTtcbiAgLy8gQE91dHB1dCgpIGNoaXBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgY2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjbGlja2VkKGNoaXA6IHN0cmluZykge1xuXG4gICAgY29uc29sZS5sb2coXCJDbGlja2VkIGNoaXA6IFwiICsgY2hpcClcblxuICAgIGlmICh0eXBlb2YgY2hpcCAhPSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGlwKSB7XG4gICAgICB0aGlzLmNsaWNrLmVtaXQoY2hpcCk7XG4gICAgfVxuICB9XG5cblxuICByZW1vdmVkKGNoaXApIHtcblxuICAgIC8vIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlwcy5pbmRleE9mKGNoaXApO1xuXG4gICAgLy8gaWYgKGluZGV4ID49IDApIHtcbiAgICAvLyAgIHRoaXMuY2hpcHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAvLyB9XG5cbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNvbmZpcm0oYFJlbW92ZSAke2NoaXB9ID9gKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PSBcInllc1wiKSB7XG5cbiAgICAgICAgdGhpcy5yZW1vdmUuZW1pdChjaGlwKTtcblxuICAgICAgfTtcbiAgICB9KTtcblxuICB9XG5cbn1cblxuIl19
@@ -0,0 +1,74 @@
1
+ import { __decorate } from "tslib";
2
+ import { DataService } from './../../services/data.service';
3
+ import { Component, Input } from '@angular/core';
4
+ import { ApiResponse, HttpService } from 'tin-core';
5
+ import { MessageService } from '../../services/message.service';
6
+ import { AuthService } from '../../services/auth.service';
7
+ import { User, Profile, Account, AppConfig } from '../../classes/Classes';
8
+ import { Router } from '@angular/router';
9
+ let CreateAccountComponent = class CreateAccountComponent {
10
+ constructor(httpService, messageService, dataService, authService, router) {
11
+ this.httpService = httpService;
12
+ this.messageService = messageService;
13
+ this.dataService = dataService;
14
+ this.authService = authService;
15
+ this.router = router;
16
+ this.appConfig = new AppConfig();
17
+ this.isProcessing = false;
18
+ this.user = new User();
19
+ this.profile = new Profile();
20
+ this.account = new Account();
21
+ this.openProfile = true;
22
+ }
23
+ ngOnInit() {
24
+ }
25
+ create() {
26
+ this.account.user = this.user;
27
+ this.account.profile = this.profile;
28
+ this.profile.userID = this.user.userID;
29
+ this.isProcessing = true;
30
+ this.dataService.UpdateAccount(this.account, "add").subscribe((apiResponse) => {
31
+ this.isProcessing = false;
32
+ if (apiResponse.message == "success") {
33
+ this.messageService.toast("Account Created");
34
+ if (this.openProfile) {
35
+ this.viewProfile(this.user);
36
+ }
37
+ else {
38
+ this.user = new User();
39
+ this.profile = new Profile();
40
+ this.confirmPassword = "";
41
+ }
42
+ }
43
+ else {
44
+ this.messageService.toast("Error: " + apiResponse.message);
45
+ }
46
+ }, (error) => {
47
+ this.isProcessing = false;
48
+ this.messageService.toast(this.httpService.Error(error));
49
+ });
50
+ }
51
+ viewProfile(user) {
52
+ this.dataService.tmpProfileUserID = user.userID;
53
+ this.router.navigate(["home/user/profile"]);
54
+ }
55
+ };
56
+ CreateAccountComponent.ctorParameters = () => [
57
+ { type: HttpService },
58
+ { type: MessageService },
59
+ { type: DataService },
60
+ { type: AuthService },
61
+ { type: Router }
62
+ ];
63
+ __decorate([
64
+ Input()
65
+ ], CreateAccountComponent.prototype, "appConfig", void 0);
66
+ CreateAccountComponent = __decorate([
67
+ Component({
68
+ selector: 'spa-create-account',
69
+ template: "<h4>Create Account</h4>\r\n\r\n<hr/>\r\n\r\n<div class=\"container\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px; width: 50%;\">\r\n\r\n\r\n <div class=\"tin-input-row\">\r\n\r\n <div class=\"col\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>FirstName</mat-label>\r\n <input id=\"txtFirstName\" matInput autocomplete=\"off\" [(ngModel)]=\"profile.firstName\" placeholder=\"Enter FirstName\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>LastName</mat-label>\r\n <input id=\"txtLastName\" matInput autocomplete=\"off\" [(ngModel)]=\"profile.lastName\" placeholder=\"Enter LastName\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"tin-input-row mt-3\">\r\n\r\n <div class=\"col-6\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>UserID</mat-label>\r\n <input id=\"txtUserID\" matInput autocomplete=\"off\" [(ngModel)]=\"user.userID\" placeholder=\"Enter UserID\" />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n\r\n <mat-form-field style=\"width:300px\">\r\n <mat-select id=\"cboAuth\" [(value)]=\"user.authType\">\r\n <mat-option value=\"local\">Local Authentication</mat-option>\r\n <mat-option *ngIf=\"appConfig.ADAuth\" value=\"AD\">AD Authentication</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n <div class=\"tin-input-row\" *ngIf=\"user.authType=='local'\">\r\n\r\n <div class=\"col\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>Password</mat-label>\r\n <input id=\"txtPassword\" matInput autocomplete=\"off\" type=\"password\" [(ngModel)]=\"user.password\" placeholder=\"Enter Password\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>Confirm Password</mat-label>\r\n <input id=\"txtConfirmPassword\" matInput autocomplete=\"off\" type=\"password\" [(ngModel)]=\"confirmPassword\" placeholder=\"Enter Confirm Password\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <div class=\"tin-input-row mt-3\" style=\"margin-left: 1em;\">\r\n\r\n <mat-checkbox id=\"cbkOpenAfter\" color=\"primary\" style=\"margin-right:100px; font-size:12px\" [(ngModel)]=\"openProfile\">Open profile after creation</mat-checkbox>\r\n\r\n </div>\r\n\r\n <div class=\"tin-input-row mt-3\">\r\n <button id=\"btnCreate\" mat-raised-button color=\"primary\" (click)=\"create()\" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n</div>\r\n\r\n",
70
+ styles: [""]
71
+ })
72
+ ], CreateAccountComponent);
73
+ export { CreateAccountComponent };
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFjY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NyZWF0ZS1hY2NvdW50L2NyZWF0ZS1hY2NvdW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU96QyxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQUVqQyxZQUFvQixXQUF3QixFQUFVLGNBQThCLEVBQVUsV0FBd0IsRUFBVSxXQUF3QixFQUFRLE1BQWM7UUFBMUosZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVEsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU9ySyxjQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUVyQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixTQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV4QixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUl4QixnQkFBVyxHQUFZLElBQUksQ0FBQztJQWpCc0osQ0FBQztJQUVuTCxRQUFRO0lBR1IsQ0FBQztJQWVILE1BQU07UUFFSixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQzFELENBQUMsV0FBd0IsRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBRTFCLElBQUksV0FBVyxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBRTdDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBQztvQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzdCO3FCQUFJO29CQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztpQkFDM0I7YUFHRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzVEO1FBQ0gsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFVO1FBRXBCLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUU5QyxDQUFDO0NBSUEsQ0FBQTs7WUFoRWtDLFdBQVc7WUFBMEIsY0FBYztZQUF1QixXQUFXO1lBQXVCLFdBQVc7WUFBZ0IsTUFBTTs7QUFPcks7SUFBUixLQUFLLEVBQUU7eURBQTZCO0FBVDFCLHNCQUFzQjtJQUxsQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsb0JBQW9CO1FBQzlCLGszRkFBOEM7O0tBRS9DLENBQUM7R0FDVyxzQkFBc0IsQ0FrRWxDO1NBbEVZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBpUmVzcG9uc2UsIEh0dHBTZXJ2aWNlIH0gZnJvbSAndGluLWNvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlciwgUHJvZmlsZSwgQWNjb3VudCwgQXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWNyZWF0ZS1hY2NvdW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWFjY291bnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1hY2NvdW50LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlQWNjb3VudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLHB1YmxpYyByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBhcHBDb25maWcgPSBuZXcgQXBwQ29uZmlnKCk7XHJcblxyXG4gIGlzUHJvY2Vzc2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHVzZXIgPSBuZXcgVXNlcigpO1xyXG4gIHByb2ZpbGUgPSBuZXcgUHJvZmlsZSgpO1xyXG5cclxuICBhY2NvdW50ID0gbmV3IEFjY291bnQoKTtcclxuXHJcbiAgY29uZmlybVBhc3N3b3JkOiBzdHJpbmc7XHJcblxyXG4gIG9wZW5Qcm9maWxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblxyXG5jcmVhdGUoKXtcclxuXHJcbiAgdGhpcy5hY2NvdW50LnVzZXIgPSB0aGlzLnVzZXI7XHJcbiAgdGhpcy5hY2NvdW50LnByb2ZpbGUgPSB0aGlzLnByb2ZpbGU7XHJcblxyXG4gIHRoaXMucHJvZmlsZS51c2VySUQgPSB0aGlzLnVzZXIudXNlcklEO1xyXG5cclxuICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWU7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLlVwZGF0ZUFjY291bnQodGhpcy5hY2NvdW50LFwiYWRkXCIpLnN1YnNjcmliZShcclxuICAgICAgKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmIChhcGlSZXNwb25zZS5tZXNzYWdlID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiQWNjb3VudCBDcmVhdGVkXCIpO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLm9wZW5Qcm9maWxlKXtcclxuICAgICAgICAgICAgdGhpcy52aWV3UHJvZmlsZSh0aGlzLnVzZXIpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudXNlciA9IG5ldyBVc2VyKCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZmlsZSA9IG5ldyBQcm9maWxlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybVBhc3N3b3JkID0gXCJcIjtcclxuICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QodGhpcy5odHRwU2VydmljZS5FcnJvcihlcnJvcikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG59XHJcblxyXG52aWV3UHJvZmlsZSh1c2VyOiBVc2VyKSB7XHJcblxyXG4gIHRoaXMuZGF0YVNlcnZpY2UudG1wUHJvZmlsZVVzZXJJRCA9IHVzZXIudXNlcklEO1xyXG4gIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImhvbWUvdXNlci9wcm9maWxlXCJdKTtcclxuXHJcbn1cclxuXHJcblxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Input } from '@angular/core';
3
+ import { FormControl } from '@angular/forms';
4
+ let DateComponent = class DateComponent {
5
+ constructor() {
6
+ this.date = new FormControl(new Date());
7
+ this.display = "";
8
+ // @Output() dateChange = new EventEmitter();
9
+ this._minDate = new Date(new Date("01 jan 1000"));
10
+ this._maxDate = new Date(new Date("31 dec 9999"));
11
+ }
12
+ ngOnInit() {
13
+ }
14
+ onChangeEvent(d) {
15
+ // this.dateChange.emit(d);
16
+ }
17
+ };
18
+ __decorate([
19
+ Input()
20
+ ], DateComponent.prototype, "date", void 0);
21
+ __decorate([
22
+ Input()
23
+ ], DateComponent.prototype, "display", void 0);
24
+ DateComponent = __decorate([
25
+ Component({
26
+ selector: 'spa-date',
27
+ template: "\n<mat-form-field style=\"width:150px;margin-right:20px\">\n<input [formControl]=\"date\" [max]=\"_maxDate\" matInput [matDatepicker]=\"picker_date\" [placeholder]=\"display\" (dateChange)=\"onChangeEvent($event)\" readonly>\n<mat-datepicker-toggle matSuffix [for]=\"picker_date\"></mat-datepicker-toggle>\n<mat-datepicker #picker_date></mat-datepicker>\n</mat-form-field>\n",
28
+ styles: [""]
29
+ })
30
+ ], DateComponent);
31
+ export { DateComponent };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aW4tc3BhLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZGF0ZS9kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVM3QyxJQUFhLGFBQWEsR0FBMUIsTUFBYSxhQUFhO0lBRXhCO1FBS1MsU0FBSSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuQyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLDZDQUE2QztRQUM3QyxhQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUM3QyxhQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQVQ3QixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBU0QsYUFBYSxDQUFDLENBQUM7UUFDYiwyQkFBMkI7SUFDN0IsQ0FBQztDQUVGLENBQUE7QUFYVTtJQUFSLEtBQUssRUFBRTsyQ0FBb0M7QUFDbkM7SUFBUixLQUFLLEVBQUU7OENBQWM7QUFSWCxhQUFhO0lBTHpCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxVQUFVO1FBQ3BCLGtZQUFvQzs7S0FFckMsQ0FBQztHQUNXLGFBQWEsQ0FrQnpCO1NBbEJZLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdwcm90cmFjdG9yJztcbmltcG9ydCB7IENvcmUgfSBmcm9tIFwidGluLWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3BhLWRhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBASW5wdXQoKSBkYXRlID0gbmV3IEZvcm1Db250cm9sKG5ldyBEYXRlKCkpO1xuICBASW5wdXQoKSBkaXNwbGF5ID0gXCJcIjtcbiAgLy8gQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIF9taW5EYXRlID0gbmV3IERhdGUobmV3IERhdGUoXCIwMSBqYW4gMTAwMFwiKSk7XG4gIF9tYXhEYXRlID0gbmV3IERhdGUobmV3IERhdGUoXCIzMSBkZWMgOTk5OVwiKSk7XG5cblxuICBvbkNoYW5nZUV2ZW50KGQpe1xuICAgIC8vIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGQpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ let DatetimeComponent = class DatetimeComponent {
4
+ constructor() {
5
+ this.display = "";
6
+ this.value = "";
7
+ this.valueChange = new EventEmitter();
8
+ this.min = "01 jan 1000";
9
+ this.max = "31 dec 9999";
10
+ }
11
+ ngOnInit() {
12
+ }
13
+ changed() {
14
+ this.valueChange.emit(this.value);
15
+ }
16
+ };
17
+ __decorate([
18
+ Input()
19
+ ], DatetimeComponent.prototype, "display", void 0);
20
+ __decorate([
21
+ Input()
22
+ ], DatetimeComponent.prototype, "value", void 0);
23
+ __decorate([
24
+ Output()
25
+ ], DatetimeComponent.prototype, "valueChange", void 0);
26
+ __decorate([
27
+ Input()
28
+ ], DatetimeComponent.prototype, "min", void 0);
29
+ __decorate([
30
+ Input()
31
+ ], DatetimeComponent.prototype, "max", void 0);
32
+ DatetimeComponent = __decorate([
33
+ Component({
34
+ selector: 'spa-datetime',
35
+ template: "<mat-form-field >\n<mat-label>{{display}}</mat-label>\n<input matInput autocomplete=\"off\" type=\"datetime-local\" [(ngModel)]=\"value\" [min]=\"min\" [max]=\"max\" (change)=\"changed()\" [placeholder]=\"display\" />\n</mat-form-field>\n",
36
+ styles: [""]
37
+ })
38
+ ], DatetimeComponent);
39
+ export { DatetimeComponent };
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2RhdGV0aW1lL2RhdGV0aW1lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vRSxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQUU1QjtRQUtTLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1YsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxDLFFBQUcsR0FBRyxhQUFhLENBQUM7UUFFcEIsUUFBRyxHQUFHLGFBQWEsQ0FBQztJQVhiLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFVRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FFRixDQUFBO0FBWlU7SUFBUixLQUFLLEVBQUU7a0RBQWM7QUFDYjtJQUFSLEtBQUssRUFBRTtnREFBWTtBQUNWO0lBQVQsTUFBTSxFQUFFO3NEQUFrQztBQUVsQztJQUFSLEtBQUssRUFBRTs4Q0FBcUI7QUFFcEI7SUFBUixLQUFLLEVBQUU7OENBQXFCO0FBYmxCLGlCQUFpQjtJQUw3QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsY0FBYztRQUN4QiwyUEFBd0M7O0tBRXpDLENBQUM7R0FDVyxpQkFBaUIsQ0FtQjdCO1NBbkJZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3BhLWRhdGV0aW1lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXRpbWUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgQElucHV0KCkgZGlzcGxheSA9IFwiXCI7XG4gIEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpIG1pbiA9IFwiMDEgamFuIDEwMDBcIjtcblxuICBASW5wdXQoKSBtYXggPSBcIjMxIGRlYyA5OTk5XCI7XG5cbiAgY2hhbmdlZCgpIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,30 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Input } from '@angular/core';
3
+ import { LoaderService } from '../../services/loader.service';
4
+ let LoaderComponent = class LoaderComponent {
5
+ constructor(loaderService) {
6
+ this.loaderService = loaderService;
7
+ this.logo = "";
8
+ this.loaderService.isLoading.subscribe((v) => {
9
+ // console.log(v);
10
+ this.loading = v;
11
+ });
12
+ }
13
+ ngOnInit() {
14
+ }
15
+ };
16
+ LoaderComponent.ctorParameters = () => [
17
+ { type: LoaderService }
18
+ ];
19
+ __decorate([
20
+ Input()
21
+ ], LoaderComponent.prototype, "logo", void 0);
22
+ LoaderComponent = __decorate([
23
+ Component({
24
+ selector: 'spa-loader',
25
+ template: "<div class=\"progress-loader\" style=\"z-index: 9999;\" [hidden]=\"!loading\">\n <div class=\"loading-spinner\">\n\n <img *ngIf=\"logo==''\" style=\"width: 100px;\"\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\n\n >\n\n <img *ngIf=\"logo!=''\" [src]=\"logo\" style=\"width: 100px;\" />\n\n\n <span id=\"loadingMessage\" class=\"loading-message\">Please wait...</span>\n </div>\n</div>\n",
26
+ styles: [".loading-spinner{background-color:#0000001f;position:absolute;width:100%;top:0;left:0;height:100vh;align-items:center;justify-content:center;display:-ms-grid;display:grid}.loading-spinner img{-ms-grid-row-align:end;align-self:end}.loading-message{text-align:center;-ms-grid-row-align:start;align-self:start}"]
27
+ })
28
+ ], LoaderComponent);
29
+ export { LoaderComponent };
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3Rpbi1zcGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTzlELElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFFMUIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFXdkMsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQVRqQixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMzQyxrQkFBa0I7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBQ0QsUUFBUTtJQUNSLENBQUM7Q0FLRixDQUFBOztZQWRvQyxhQUFhOztBQVd2QztJQUFSLEtBQUssRUFBRTs2Q0FBVztBQWJSLGVBQWU7SUFMM0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLFlBQVk7UUFDdEIsaTVCQUFzQzs7S0FFdkMsQ0FBQztHQUNXLGVBQWUsQ0FnQjNCO1NBaEJZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwYS1sb2FkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGVyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9hZGVyU2VydmljZTogTG9hZGVyU2VydmljZSkge1xuXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmlzTG9hZGluZy5zdWJzY3JpYmUoKHYpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKHYpO1xuICAgICAgdGhpcy5sb2FkaW5nID0gdjtcbiAgICB9KTtcblxuICB9XG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgQElucHV0KCkgbG9nbyA9IFwiXCI7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG5cbn1cbiJdfQ==
@@ -0,0 +1,110 @@
1
+ import { __decorate } from "tslib";
2
+ //-----------------Change for Build and Reference purposes for SERVICES ONLY---------//
3
+ import { HttpService, ApiResponse, Core, Constants } from "tin-core";
4
+ // import { HttpService,ApiResponse, Core, Constants } from 'tin-core';
5
+ //----------------------------------------------------------------------------------//
6
+ import { MessageService } from "../../services/message.service";
7
+ import { StorageService } from "../../services/storage.service";
8
+ import { AuthService } from "../../services/auth.service";
9
+ import { Component, Input } from "@angular/core";
10
+ import { Router, ActivatedRoute } from "@angular/router";
11
+ import { DataService } from "../../services/data.service";
12
+ import { LogService } from "./../../services/log.service";
13
+ // import { AuthService } from "../services/auth.service";
14
+ // import { ApiResponse, Core } from "../classes/TinCore";
15
+ import { User } from "../../classes/Classes";
16
+ let LoginComponent = class LoginComponent {
17
+ constructor(httpService, storageService, router, messageService, dataService, authService, logService) {
18
+ this.httpService = httpService;
19
+ this.storageService = storageService;
20
+ this.router = router;
21
+ this.messageService = messageService;
22
+ this.dataService = dataService;
23
+ this.authService = authService;
24
+ this.logService = logService;
25
+ this.user = new User();
26
+ this.hide = true;
27
+ this.isProcessing = false;
28
+ }
29
+ ngOnInit() {
30
+ this.authService.updateloggedin(false);
31
+ this.authService.updateRole(null);
32
+ this.storageService.clear();
33
+ }
34
+ signup() {
35
+ this.router.navigate(["signup"]);
36
+ }
37
+ recoverAccount() {
38
+ this.router.navigate(["recover-account"]);
39
+ }
40
+ login() {
41
+ if (this.user.userID == "" || this.user.password == "") {
42
+ this.messageService.toast("Please enter your credentials");
43
+ return;
44
+ }
45
+ this.logService.info("logging in");
46
+ this.isProcessing = true;
47
+ this.dataService.login(this.user).subscribe((apiResponse) => {
48
+ this.isProcessing = false;
49
+ if (apiResponse.message == "success") {
50
+ this.authService.updateloggedin(true);
51
+ this.authService.updateToken(apiResponse.ds.dtUser[0]["token"]);
52
+ this.storageService.store(Constants.AUTH_TOKEN, apiResponse.ds.dtUser[0]["token"]);
53
+ this.authService.updateTokenExpire(apiResponse.ds.dtUser[0]["tokenExpire"]);
54
+ this.storageService.store(Constants.AUTH_TOKEN_EXPIRE, apiResponse.ds.dtUser[0]["tokenExpire"]);
55
+ this.authService.updateCurrentUser(this.user.userID);
56
+ this.storageService.store(Constants.AUTH_USER, this.user.userID);
57
+ this.authService.updateLoggedUserFullName(apiResponse.ds.dtProfile[0]["firstName"]);
58
+ this.storageService.store(Constants.AUTH_NAME, apiResponse.ds.dtProfile[0]["firstName"]);
59
+ this.authService.updateRole(apiResponse.ds.dtRole[0]);
60
+ this.storageService.store(Constants.AUTH_ROLES, JSON.stringify(apiResponse.ds.dtRole[0]));
61
+ // this.setRole(apiResponse.dt[0]["accessLevel"]);
62
+ // this.setRole("1");
63
+ if (apiResponse.ds.dtUser[0]["changePassword"] == "0") {
64
+ this.router.navigate(["home"]);
65
+ // this.messageService.toast("Welcome");
66
+ this.logService.info("logged in");
67
+ }
68
+ else {
69
+ this.router.navigate(["home/user/change-password"]);
70
+ }
71
+ }
72
+ else {
73
+ this.messageService.toast("Error: " + apiResponse.message);
74
+ this.user.password = "";
75
+ }
76
+ }, (error) => {
77
+ this.isProcessing = false;
78
+ this.messageService.toast(this.httpService.Error(error));
79
+ });
80
+ }
81
+ setRole(roleID) {
82
+ this.dataService
83
+ .GetRole("id", roleID)
84
+ .subscribe((apiResponse) => {
85
+ this.authService.updateRole(apiResponse.dt[0]);
86
+ this.storageService.store(Constants.AUTH_ROLES, JSON.stringify(apiResponse.dt[0]));
87
+ });
88
+ }
89
+ };
90
+ LoginComponent.ctorParameters = () => [
91
+ { type: HttpService },
92
+ { type: StorageService },
93
+ { type: Router },
94
+ { type: MessageService },
95
+ { type: DataService },
96
+ { type: AuthService },
97
+ { type: LogService }
98
+ ];
99
+ __decorate([
100
+ Input()
101
+ ], LoginComponent.prototype, "config", void 0);
102
+ LoginComponent = __decorate([
103
+ Component({
104
+ selector: "spa-login",
105
+ template: "\r\n <div class=\"tin-bg-login login-page\">\r\n\r\n\r\n <div *ngIf=\"config.logo!=''\" class=\"d-flex justify-content-center row align-items-center\" style=\"margin-top:3em;margin-bottom:1em\">\r\n\r\n <img *ngIf=\"config.logoSize=='normal'\" [src]=\"config.logo\" style=\"height:100px;margin-right:3em;margin-left:3em\" />\r\n <img *ngIf=\"config.logoSize=='medium'\" [src]=\"config.logo\" style=\"height:150px;margin-right:3em;margin-left:3em\" />\r\n <img *ngIf=\"config.logoSize=='large'\" [src]=\"config.logo\" style=\"height:250px;margin-right:3em;margin-left:3em\" />\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf=\"config.logo ==''\" style=\"margin-top:2em\">\r\n <!-- Add margin top when there is no logo -->\r\n </div>\r\n\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" style=\"margin-top:3em\">\r\n\r\n\r\n <div class=\"d-none d-sm-block\">\r\n\r\n </div>\r\n\r\n <div style=\"margin-left:1em\">\r\n\r\n\r\n\r\n <mat-card class=\"mat-elevation-z3\" style=\"width:400px; \">\r\n\r\n <mat-card-header>\r\n <mat-card-title>{{config.appName}}</mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n\r\n <div class=\"tin-input mt-2\">\r\n\r\n <mat-form-field style=\"width: 100%;\">\r\n <mat-label>Username</mat-label>\r\n <input id=\"txtUserID\" matInput #parentInput placeholder=\"Enter Username\" [(ngModel)]=\"user.userID\" autocomplete=\"off\" autofocus>\r\n </mat-form-field>\r\n\r\n <mat-form-field >\r\n <mat-label>Password</mat-label>\r\n <input id=\"txtPassword\" matInput [type]=\"hide ? 'password' : 'text'\" (keyup.enter)=\"login()\" [(ngModel)]=\"user.password\" autocomplete=\"off\" >\r\n <button mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">\r\n <mat-icon style=\"font-size: 18px;\">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <div class=\"row \">\r\n\r\n <div class=\"col d-flex justify-content-center\">\r\n\r\n <button id=\"btnLogin\" mat-raised-button [disabled]=\"isProcessing\" style=\"width: 100px;\" (click)=\"login()\" color=\"primary\">Login</button>\r\n </div>\r\n\r\n <div class=\"col d-flex justify-content-center\" *ngIf=\"config.selfService\">\r\n <button id=\"btnSignup\" mat-stroked-button color=\"primary\" style=\"width: 100px;\" (click)=\"signup()\">Signup</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n <div *ngIf=\"config.selfService\">\r\n <br />\r\n <a mat-button id=\"lnkRecover\" style=\"margin-left: 1em\" (click)=\"recoverAccount()\">Forgot your password ?</a>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n",
106
+ styles: [".login-page{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto}.tin-bg-login{background-image:url(~/assets/login-bg.jpg);background-size:100%}"]
107
+ })
108
+ ], LoginComponent);
109
+ export { LoginComponent };
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdUZBQXVGO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckUsdUVBQXVFO0FBQ3ZFLHNGQUFzRjtBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsMERBQTBEO0FBQzFELDBEQUEwRDtBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFXMUQsSUFBYSxjQUFjLEdBQTNCLE1BQWEsY0FBYztJQUN6QixZQUNVLFdBQXdCLEVBQ3hCLGNBQThCLEVBQy9CLE1BQWMsRUFDYixjQUE4QixFQUM5QixXQUF3QixFQUN6QixXQUF3QixFQUN2QixVQUFzQjtRQU50QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNiLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtR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V0FBVzthQUNiLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3JCLFNBQVMsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQ3ZCLFNBQVMsQ0FBQyxVQUFVLEVBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNsQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0YsQ0FBQTs7WUFuR3dCLFdBQVc7WUFDUixjQUFjO1lBQ3ZCLE1BQU07WUFDRyxjQUFjO1lBQ2pCLFdBQVc7WUFDWixXQUFXO1lBQ1gsVUFBVTs7QUFNdkI7SUFBUixLQUFLLEVBQUU7OENBQXFCO0FBZGxCLGNBQWM7SUFMMUIsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLFdBQVc7UUFDckIsaXNHQUFxQzs7S0FFdEMsQ0FBQztHQUNXLGNBQWMsQ0FxRzFCO1NBckdZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy0tLS0tLS0tLS0tLS0tLS0tQ2hhbmdlIGZvciBCdWlsZCBhbmQgUmVmZXJlbmNlIHB1cnBvc2VzIGZvciBTRVJWSUNFUyBPTkxZLS0tLS0tLS0tLy9cclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UsIEFwaVJlc3BvbnNlLCBDb3JlLCBDb25zdGFudHMgfSBmcm9tIFwidGluLWNvcmVcIjtcclxuLy8gaW1wb3J0IHsgSHR0cFNlcnZpY2UsQXBpUmVzcG9uc2UsIENvcmUsIENvbnN0YW50cyB9IGZyb20gJ3Rpbi1jb3JlJztcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyXCI7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSBcIi4vLi4vLi4vc2VydmljZXMvbG9nLnNlcnZpY2VcIjtcclxuLy8gaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XHJcbi8vIGltcG9ydCB7IEFwaVJlc3BvbnNlLCBDb3JlIH0gZnJvbSBcIi4uL2NsYXNzZXMvVGluQ29yZVwiO1xyXG5pbXBvcnQgeyBVc2VyLCBsb2dpbkNvbmZpZyB9IGZyb20gXCIuLi8uLi9jbGFzc2VzL0NsYXNzZXNcIjtcclxuaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG4vLyBpbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2VcIjtcclxuLy8gaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSBcIi4uLy4uL2NsYXNzZXMvVGluU3BhXCI7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJzcGEtbG9naW5cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2xvZ2luLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2xvZ2luLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2dTZXJ2aWNlOiBMb2dTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgdXNlciA9IG5ldyBVc2VyKCk7XHJcbiAgaGlkZSA9IHRydWU7XHJcbiAgaXNQcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY29uZmlnOiBsb2dpbkNvbmZpZztcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZWxvZ2dlZGluKGZhbHNlKTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UudXBkYXRlUm9sZShudWxsKTtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaWdudXAoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJzaWdudXBcIl0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlY292ZXJBY2NvdW50KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wicmVjb3Zlci1hY2NvdW50XCJdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dpbigpIHtcclxuXHJcbiAgICBpZiAodGhpcy51c2VyLnVzZXJJRCA9PSBcIlwiIHx8IHRoaXMudXNlci5wYXNzd29yZCA9PSBcIlwiKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQbGVhc2UgZW50ZXIgeW91ciBjcmVkZW50aWFsc1wiKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuaW5mbyhcImxvZ2dpbmcgaW5cIik7XHJcblxyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UubG9naW4odGhpcy51c2VyKS5zdWJzY3JpYmUoXHJcbiAgICAgIChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAoYXBpUmVzcG9uc2UubWVzc2FnZSA9PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgICAgdGhpcy5hdXRoU2VydmljZS51cGRhdGVsb2dnZWRpbih0cnVlKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZVRva2VuKGFwaVJlc3BvbnNlLmRzLmR0VXNlclswXVtcInRva2VuXCJdKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc3RvcmUoQ29uc3RhbnRzLkFVVEhfVE9LRU4sIGFwaVJlc3BvbnNlLmRzLmR0VXNlclswXVtcInRva2VuXCJdKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZVRva2VuRXhwaXJlKGFwaVJlc3BvbnNlLmRzLmR0VXNlclswXVtcInRva2VuRXhwaXJlXCJdKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc3RvcmUoQ29uc3RhbnRzLkFVVEhfVE9LRU5fRVhQSVJFLCBhcGlSZXNwb25zZS5kcy5kdFVzZXJbMF1bXCJ0b2tlbkV4cGlyZVwiXSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5hdXRoU2VydmljZS51cGRhdGVDdXJyZW50VXNlcih0aGlzLnVzZXIudXNlcklEKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc3RvcmUoQ29uc3RhbnRzLkFVVEhfVVNFUiwgdGhpcy51c2VyLnVzZXJJRCk7XHJcblxyXG4gICAgICAgICAgdGhpcy5hdXRoU2VydmljZS51cGRhdGVMb2dnZWRVc2VyRnVsbE5hbWUoIGFwaVJlc3BvbnNlLmRzLmR0UHJvZmlsZVswXVtcImZpcnN0TmFtZVwiXSApO1xyXG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zdG9yZShDb25zdGFudHMuQVVUSF9OQU1FLCBhcGlSZXNwb25zZS5kcy5kdFByb2ZpbGVbMF1bXCJmaXJzdE5hbWVcIl1cclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgdGhpcy5hdXRoU2VydmljZS51cGRhdGVSb2xlKGFwaVJlc3BvbnNlLmRzLmR0Um9sZVswXSk7XHJcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JlKENvbnN0YW50cy5BVVRIX1JPTEVTLCBKU09OLnN0cmluZ2lmeShhcGlSZXNwb25zZS5kcy5kdFJvbGVbMF0pKTtcclxuICAgICAgICAgIC8vIHRoaXMuc2V0Um9sZShhcGlSZXNwb25zZS5kdFswXVtcImFjY2Vzc0xldmVsXCJdKTtcclxuXHJcbiAgICAgICAgICAvLyB0aGlzLnNldFJvbGUoXCIxXCIpO1xyXG5cclxuICAgICAgICAgIGlmIChhcGlSZXNwb25zZS5kcy5kdFVzZXJbMF1bXCJjaGFuZ2VQYXNzd29yZFwiXSA9PSBcIjBcIikge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJob21lXCJdKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIldlbGNvbWVcIik7XHJcbiAgICAgICAgICAgIHRoaXMubG9nU2VydmljZS5pbmZvKFwibG9nZ2VkIGluXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiaG9tZS91c2VyL2NoYW5nZS1wYXNzd29yZFwiXSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgICB0aGlzLnVzZXIucGFzc3dvcmQgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdCh0aGlzLmh0dHBTZXJ2aWNlLkVycm9yKGVycm9yKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRSb2xlKHJvbGVJRDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlXHJcbiAgICAgIC5HZXRSb2xlKFwiaWRcIiwgcm9sZUlEKVxyXG4gICAgICAuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZVJvbGUoYXBpUmVzcG9uc2UuZHRbMF0pO1xyXG5cclxuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JlKFxyXG4gICAgICAgICAgQ29uc3RhbnRzLkFVVEhfUk9MRVMsXHJcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShhcGlSZXNwb25zZS5kdFswXSlcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,43 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, ViewChild } from '@angular/core';
3
+ import { DataService } from "../../services/data.service";
4
+ import { MatTableDataSource } from '@angular/material/table';
5
+ import { AuthService } from '../../services/auth.service';
6
+ let LogsComponent = class LogsComponent {
7
+ constructor(authService, dataService) {
8
+ this.authService = authService;
9
+ this.dataService = dataService;
10
+ this.isProcessing = false;
11
+ this._filterText = "";
12
+ this.displayedColumns = ["dateLogged", "userID", "fullName", "source", "details"];
13
+ }
14
+ ngOnInit() {
15
+ this.loadLogs();
16
+ }
17
+ loadLogs() {
18
+ this.dataService.GetLog("all", "").subscribe((apiResponse) => {
19
+ this.logs = new MatTableDataSource(apiResponse.dt);
20
+ this.logs.paginator = this.logsPaginator;
21
+ this.applyFilter(this._filterText);
22
+ });
23
+ }
24
+ applyFilter(filterValue) {
25
+ this.logs.filter = filterValue.trim().toLowerCase();
26
+ }
27
+ };
28
+ LogsComponent.ctorParameters = () => [
29
+ { type: AuthService },
30
+ { type: DataService }
31
+ ];
32
+ __decorate([
33
+ ViewChild("logsPaginator")
34
+ ], LogsComponent.prototype, "logsPaginator", void 0);
35
+ LogsComponent = __decorate([
36
+ Component({
37
+ selector: 'spa-logs',
38
+ template: "<h4>Logs</h4>\n<hr />\n\n<div class=\"container-fluid\">\n\n\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px\">\n <div class=\"col-2\">\n\n <!-- <mat-form-field>\n <input matInput [(ngModel)]=\"_filterText\" (keyup)=\"applyFilter($event.target.value) \" placeholder=\"Filter\" autocomplete=\"off\">\n </mat-form-field> -->\n\n </div>\n <div class=\"col-3\">\n <mat-form-field style=\"font-size:12px\">\n <mat-label>Filter</mat-label>\n <input id=\"txtFilter\" matInput [(ngModel)]=\"_filterText\" (keyup)=\"applyFilter($event.target.value)\" placeholder=\"Enter Filter text\" autocomplete=\"off\">\n </mat-form-field>\n <button id=\"btnFilter\" mat-mini-fab color=\"primary\" (click)=\"loadLogs()\" style=\"margin-right:3em;margin-top:5px\"><mat-icon class=\"refreshIcon\">refresh</mat-icon></button>\n\n </div>\n </div>\n\n\n\n <p *ngIf=\"!logs\"><em>Loading...</em></p>\n\n\n <div class=\"mat-elevation-z8\" *ngIf=\"logs\">\n\n <table id=\"tblTable\" mat-table [dataSource]=\"logs\">\n\n\n <ng-container matColumnDef=\"userID\">\n <th mat-header-cell *matHeaderCellDef> User ID </th>\n <td mat-cell *matCellDef=\"let log\"> {{log.userID}} </td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"dateLogged\">\n <th mat-header-cell *matHeaderCellDef class=\"datetime\"> Date Logged </th>\n <td mat-cell *matCellDef=\"let log\"> {{log.dateLogged | date: 'dd MMM yy HH:mm'}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"source\">\n <th mat-header-cell *matHeaderCellDef> Source </th>\n <td mat-cell *matCellDef=\"let log\"> {{log.source}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let log\"> {{log.details}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fullName\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let user\"> {{user.firstName}} {{user.lastName}} </td>\n </ng-container>\n\n\n\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n\n\n </table>\n\n </div>\n\n <mat-paginator #logsPaginator [pageSizeOptions]=\"[50, 100, 200]\" showFirstLastButtons></mat-paginator>\n</div>\n\n",
39
+ 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}"]
40
+ })
41
+ ], LogsComponent);
42
+ export { LogsComponent };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aW4tc3BhLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbG9ncy9sb2dzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU8xRCxJQUFhLGFBQWEsR0FBMUIsTUFBYSxhQUFhO0lBQ3hCLFlBQXNCLFdBQXdCLEVBQVUsV0FBd0I7UUFBMUQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQU1oRixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUc5QixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUlqQixxQkFBZ0IsR0FBYSxDQUFFLFlBQVksRUFBRSxRQUFRLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQWJGLENBQUM7SUFFckYsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBV00sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQ3pDLENBQUMsV0FBd0IsRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBbUI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RELENBQUM7Q0FHRixDQUFBOztZQTlCb0MsV0FBVztZQUF1QixXQUFXOztBQU9wRDtJQUEzQixTQUFTLENBQUMsZUFBZSxDQUFDO29EQUE2QjtBQVI3QyxhQUFhO0lBTHpCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxVQUFVO1FBQ3BCLCs2RUFBb0M7O0tBRXJDLENBQUM7R0FDVyxhQUFhLENBK0J6QjtTQS9CWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICd0aW4tY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2VcIjtcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwYS1sb2dzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2dzLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy5sb2FkTG9ncygpO1xuICB9XG5cbiAgaXNQcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBWaWV3Q2hpbGQoXCJsb2dzUGFnaW5hdG9yXCIpIGxvZ3NQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBfZmlsdGVyVGV4dCA9IFwiXCI7XG5cbiAgbG9ncztcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsgXCJkYXRlTG9nZ2VkXCIsIFwidXNlcklEXCIsXCJmdWxsTmFtZVwiLFwic291cmNlXCIsIFwiZGV0YWlsc1wiXTtcblxuICBwdWJsaWMgbG9hZExvZ3MoKSB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5HZXRMb2coXCJhbGxcIixcIlwiKS5zdWJzY3JpYmUoXG4gICAgICAoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMubG9ncyA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoYXBpUmVzcG9uc2UuZHQpO1xuICAgICAgICB0aGlzLmxvZ3MucGFnaW5hdG9yID0gdGhpcy5sb2dzUGFnaW5hdG9yO1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVyKHRoaXMuX2ZpbHRlclRleHQpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBhcHBseUZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2dzLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cblxufVxuIl19
@@ -0,0 +1,31 @@
1
+ import { __decorate, __param } from "tslib";
2
+ import { Component, Inject } from '@angular/core';
3
+ import { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
4
+ let messageDialog = class messageDialog {
5
+ constructor(dialogRef, data) {
6
+ this.dialogRef = dialogRef;
7
+ this.data = data;
8
+ }
9
+ ngOnInit() {
10
+ this.messageType = this.data.type;
11
+ this._messageSubject = this.data.subject;
12
+ this._messageDetails = this.data.details;
13
+ }
14
+ response(resp) {
15
+ this.dialogRef.close(resp);
16
+ }
17
+ };
18
+ messageDialog.ctorParameters = () => [
19
+ { type: MatDialogRef },
20
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
21
+ ];
22
+ messageDialog = __decorate([
23
+ Component({
24
+ selector: 'lib-app-message',
25
+ template: "\r\n <h2 mat-dialog-title>\r\n\r\n <mat-label *ngIf=\"messageType=='confirm'\">Confirm</mat-label>\r\n <mat-label *ngIf=\"messageType=='info'\">Information</mat-label>\r\n <mat-label *ngIf=\"messageType=='error'\">Error</mat-label>\r\n\r\n </h2>\r\n\r\n <mat-dialog-content class=\"mat-typography\">\r\n\r\n\r\n <!-- Confirm -->\r\n <p *ngIf=\"messageType=='confirm'\">{{_messageDetails}}</p>\r\n\r\n\r\n <!-- Information -->\r\n <div *ngIf=\"messageType=='info'\">\r\n\r\n <h3>{{_messageSubject}}</h3>\r\n <mat-label>{{_messageDetails}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n <!-- Error -->\r\n <div *ngIf=\"messageType=='error'\">\r\n\r\n <mat-label>{{_messageDetails}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n </mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n\r\n <button id=\"btnYes\" mat-stroked-button *ngIf=\"messageType=='confirm'\" (click)=\"response('yes')\" cdkFocusInitial>Yes</button>\r\n\r\n <button id=\"btnNo\" mat-stroked-button *ngIf=\"messageType=='confirm'\" (click)=\"response('no')\" >No</button>\r\n\r\n <button id=\"btnOK\" mat-stroked-button *ngIf=\"messageType=='info' || messageType=='error'\" (click)=\"response('ok')\" cdkFocusInitial>OK</button>\r\n\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n"
26
+ }),
27
+ __param(1, Inject(MAT_DIALOG_DATA))
28
+ ], messageDialog);
29
+ export { messageDialog };
30
+ ;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZURpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aW4tc3BhLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbWVzc2FnZS9tZXNzYWdlRGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFTcEYsSUFBYSxhQUFhLEdBQTFCLE1BQWEsYUFBYTtJQUV4QixZQUFvQixTQUFzQyxFQUFrQyxJQUFJO1FBQTVFLGNBQVMsR0FBVCxTQUFTLENBQTZCO1FBQWtDLFNBQUksR0FBSixJQUFJLENBQUE7SUFBSSxDQUFDO0lBR3JHLFFBQVE7UUFFTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUUzQyxDQUFDO0lBTUQsUUFBUSxDQUFDLElBQVk7UUFFbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0IsQ0FBQztDQUVGLENBQUE7O1lBckJnQyxZQUFZOzRDQUFrQixNQUFNLFNBQUMsZUFBZTs7QUFGeEUsYUFBYTtJQUx6QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLDB3Q0FBNkM7S0FDOUMsQ0FBQztJQUk2RCxXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtHQUZ6RSxhQUFhLENBdUJ6QjtTQXZCWSxhQUFhO0FBdUJ6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hcHAtbWVzc2FnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2VEaWFsb2cuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgbWVzc2FnZURpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8bWVzc2FnZURpYWxvZz4sIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YSkgeyB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLm1lc3NhZ2VUeXBlID0gdGhpcy5kYXRhLnR5cGVcclxuICAgIHRoaXMuX21lc3NhZ2VTdWJqZWN0ID0gdGhpcy5kYXRhLnN1YmplY3Q7XHJcbiAgICB0aGlzLl9tZXNzYWdlRGV0YWlscyA9IHRoaXMuZGF0YS5kZXRhaWxzO1xyXG5cclxuICB9XHJcblxyXG4gIG1lc3NhZ2VUeXBlO1xyXG4gIF9tZXNzYWdlU3ViamVjdDtcclxuICBfbWVzc2FnZURldGFpbHM7XHJcblxyXG4gIHJlc3BvbnNlKHJlc3A6IHN0cmluZykge1xyXG5cclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlc3ApO1xyXG5cclxuICB9XHJcblxyXG59O1xyXG5cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,67 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { CurrencyPipe } from '@angular/common';
4
+ import { Core } from 'tin-core';
5
+ let MoneyComponent = class MoneyComponent {
6
+ constructor(currencyPipe) {
7
+ this.currencyPipe = currencyPipe;
8
+ this.readonly = false;
9
+ this.display = "";
10
+ this.value = "";
11
+ this.valueChange = new EventEmitter();
12
+ this.width = "100%";
13
+ }
14
+ ngOnInit() {
15
+ this.pureAmount = this.value;
16
+ this.formattedAmount = this.toMoney(this.value);
17
+ }
18
+ ngOnChanges() {
19
+ // this.changed();
20
+ }
21
+ ngAfterViewInit() {
22
+ this.changed();
23
+ // this.transformAmount(this.ele);
24
+ }
25
+ changed() {
26
+ this.valueChange.emit(parseFloat(this.pureAmount));
27
+ }
28
+ toMoney(amt) {
29
+ return this.currencyPipe.transform(amt, 'USD', '');
30
+ }
31
+ transformAmount(element) {
32
+ this.pureAmount = Core.getNumber(this.value.toString());
33
+ if (!Core.isNumber(this.pureAmount)) {
34
+ this.pureAmount = 0;
35
+ }
36
+ this.formattedAmount = this.toMoney(this.pureAmount);
37
+ element.target.value = this.formattedAmount;
38
+ this.changed();
39
+ }
40
+ };
41
+ MoneyComponent.ctorParameters = () => [
42
+ { type: CurrencyPipe }
43
+ ];
44
+ __decorate([
45
+ Input()
46
+ ], MoneyComponent.prototype, "readonly", void 0);
47
+ __decorate([
48
+ Input()
49
+ ], MoneyComponent.prototype, "display", void 0);
50
+ __decorate([
51
+ Input()
52
+ ], MoneyComponent.prototype, "value", void 0);
53
+ __decorate([
54
+ Output()
55
+ ], MoneyComponent.prototype, "valueChange", void 0);
56
+ __decorate([
57
+ Input()
58
+ ], MoneyComponent.prototype, "width", void 0);
59
+ MoneyComponent = __decorate([
60
+ Component({
61
+ selector: 'spa-money',
62
+ template: " <mat-form-field style=\"margin-right: 50px;\" [ngStyle]=\"{'width':width}\">\n <mat-label>{{display}}</mat-label>\n <!-- <input matInput autocomplete=\"off\" type=\"number\" min=\"0.00\" step=\"0.01\" (keyup)=\"calculate()\" (change)=\"calculate()\" [(ngModel)]=\"bid.amountUSD\" placeholder=\"Bid Amount in USD\" /> -->\n <!-- <input matInput autocomplete=\"off\" type=\"text\" [(ngModel)]=\"bid.amountUSD\" (blur)=\"transformAmountYTD($event)\" [(value)]=\"formattedAmount\" placeholder=\"Enter Amount in USD\" /> -->\n <!-- <input matInput autocomplete=\"off\" value=\"{{bid.amountUSD | number :'1.2-2' | currency }}\" type=\"number\" min=\"0.00\" step=\"0.01\" [(ngModel)]=\"bid.amountUSD\" placeholder=\"Bid Amount in USD\" /> -->\n <!-- <input currencyMask formControlName=\"value\" /> -->\n\n <!-- <input matInput type=\"text\"(blur)=\"transformAmount($event)\" [value]=\"formattedAmount\" [(ngModel)]=\"amount\" /> -->\n <input matInput type=\"text\" autocomplete=\"false\" [(ngModel)]=\"value\" (keydown.Enter)=\"transformAmount($event)\" (keydown.Tab)=\"transformAmount($event)\" (blur)=\"transformAmount($event)\" (change)=\"changed()\" [placeholder]=\"display\" [readonly]=\"readonly\" />\n </mat-form-field>\n",
63
+ styles: [""]
64
+ })
65
+ ], MoneyComponent);
66
+ export { MoneyComponent };
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL21vbmV5L21vbmV5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU9oQyxJQUFhLGNBQWMsR0FBM0IsTUFBYSxjQUFjO0lBRXpCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBV3JDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDVixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEMsVUFBSyxHQUFHLE1BQU0sQ0FBQTtJQWhCMkIsQ0FBQztJQUVuRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbEQsQ0FBQztJQVlELFdBQVc7UUFDVCxrQkFBa0I7SUFDcEIsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixrQ0FBa0M7SUFFcEMsQ0FBQztJQUVELE9BQU87UUFFTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFFRCxlQUFlLENBQUMsT0FBTztRQUdyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBRXZELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBQztZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUNyQjtRQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFakIsQ0FBQztDQUNGLENBQUE7O1lBbkRtQyxZQUFZOztBQVdyQztJQUFSLEtBQUssRUFBRTtnREFBa0I7QUFDakI7SUFBUixLQUFLLEVBQUU7K0NBQWM7QUFDYjtJQUFSLEtBQUssRUFBRTs2Q0FBWTtBQUNWO0lBQVQsTUFBTSxFQUFFO21EQUFrQztBQUVsQztJQUFSLEtBQUssRUFBRTs2Q0FBZTtBQWxCWixjQUFjO0lBTDFCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxXQUFXO1FBQ3JCLCt4Q0FBcUM7O0tBRXRDLENBQUM7R0FDVyxjQUFjLENBcUQxQjtTQXJEWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvcmUgfSBmcm9tICd0aW4tY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwYS1tb25leScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb25leS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vbmV5LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNb25leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wdXJlQW1vdW50ID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLmZvcm1hdHRlZEFtb3VudCA9IHRoaXMudG9Nb25leSh0aGlzLnZhbHVlKTtcblxuICB9XG5cblxuICBwdXJlQW1vdW50O1xuICBmb3JtYXR0ZWRBbW91bnQ7XG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBcIlwiO1xuICBASW5wdXQoKSB2YWx1ZSA9IFwiXCI7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSB3aWR0aCA9IFwiMTAwJVwiXG5cbiAgbmdPbkNoYW5nZXMoKXtcbiAgICAvLyB0aGlzLmNoYW5nZWQoKTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICB0aGlzLmNoYW5nZWQoKTtcbiAgICAvLyB0aGlzLnRyYW5zZm9ybUFtb3VudCh0aGlzLmVsZSk7XG5cbiAgfVxuXG4gIGNoYW5nZWQoKXtcblxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChwYXJzZUZsb2F0KHRoaXMucHVyZUFtb3VudCkpO1xuICB9XG5cbiAgdG9Nb25leShhbXQpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVBpcGUudHJhbnNmb3JtKGFtdCwgJ1VTRCcsICcnKVxuICB9XG5cbiAgdHJhbnNmb3JtQW1vdW50KGVsZW1lbnQpIHtcblxuXG4gICAgdGhpcy5wdXJlQW1vdW50ID0gQ29yZS5nZXROdW1iZXIodGhpcy52YWx1ZS50b1N0cmluZygpKVxuXG4gICAgaWYgKCFDb3JlLmlzTnVtYmVyKHRoaXMucHVyZUFtb3VudCkpe1xuICAgICAgdGhpcy5wdXJlQW1vdW50ID0gMDtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1hdHRlZEFtb3VudCA9IHRoaXMudG9Nb25leSh0aGlzLnB1cmVBbW91bnQpO1xuICAgIGVsZW1lbnQudGFyZ2V0LnZhbHVlID0gdGhpcy5mb3JtYXR0ZWRBbW91bnQ7XG5cbiAgICB0aGlzLmNoYW5nZWQoKTtcblxuICB9XG59XG4iXX0=