tin-spa 14.3.11 → 14.4.2

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 (154) hide show
  1. package/esm2020/lib/classes/Classes.mjs +1 -179
  2. package/esm2020/lib/classes/LibClasses.mjs +179 -0
  3. package/esm2020/lib/classes/TinCore.mjs +10 -1
  4. package/esm2020/lib/components/alert/alert.component.mjs +3 -3
  5. package/esm2020/lib/components/date/date.component.mjs +3 -3
  6. package/esm2020/lib/components/datetime/datetime.component.mjs +6 -3
  7. package/esm2020/lib/components/email/email.component.mjs +131 -0
  8. package/esm2020/lib/components/filter/filter.component.mjs +7 -3
  9. package/esm2020/lib/components/form/form.component.mjs +27 -10
  10. package/esm2020/lib/components/money/money.component.mjs +3 -3
  11. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +2 -2
  12. package/esm2020/lib/components/number/number.component.mjs +3 -3
  13. package/esm2020/lib/components/option/option.component.mjs +6 -3
  14. package/esm2020/lib/components/search/search.component.mjs +3 -3
  15. package/esm2020/lib/components/select/select.component.mjs +13 -3
  16. package/esm2020/lib/components/table/detailsDialog.component.mjs +14 -4
  17. package/esm2020/lib/components/table/table.component.mjs +13 -4
  18. package/esm2020/lib/components/table-header/table-header.component.mjs +82 -14
  19. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +16 -2
  20. package/esm2020/lib/components/table-internal/table-internal.component.mjs +13 -4
  21. package/esm2020/lib/components/table-row/table-row.component.mjs +21 -5
  22. package/esm2020/lib/components/text/text.component.mjs +25 -15
  23. package/esm2020/lib/components/tiles/tiles.component.mjs +15 -9
  24. package/esm2020/lib/modules/admin/admin-routing.module.mjs +22 -22
  25. package/esm2020/lib/modules/index/index-routing.module.mjs +4 -4
  26. package/esm2020/lib/modules/spa-admin.module.mjs +7 -7
  27. package/esm2020/lib/modules/spa-index.module.mjs +4 -4
  28. package/esm2020/lib/modules/spa-user.module.mjs +3 -3
  29. package/esm2020/lib/modules/user/user-routing.module.mjs +3 -3
  30. package/esm2020/lib/pages/accounts/accountDialog.component.mjs +56 -0
  31. package/esm2020/lib/pages/accounts/accounts.component.mjs +70 -0
  32. package/esm2020/lib/{components → pages}/bug/bug.component.mjs +1 -1
  33. package/esm2020/lib/pages/change-password/change-password.component.mjs +92 -0
  34. package/esm2020/lib/pages/create-account/create-account.component.mjs +110 -0
  35. package/esm2020/lib/pages/customers/customers.component.mjs +60 -0
  36. package/esm2020/lib/{components → pages}/departments/departments.component.mjs +2 -2
  37. package/esm2020/lib/{components → pages}/employees/employees.component.mjs +2 -2
  38. package/esm2020/lib/{components → pages}/grades/grades.component.mjs +1 -1
  39. package/esm2020/lib/pages/inventory/inventory.component.mjs +99 -0
  40. package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +53 -0
  41. package/esm2020/lib/{components → pages}/invitations/invitations.component.mjs +1 -1
  42. package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +70 -0
  43. package/esm2020/lib/{components → pages}/login/login.component.mjs +6 -5
  44. package/esm2020/lib/{components → pages}/logs/logs.component.mjs +2 -2
  45. package/esm2020/lib/pages/membership/membership.component.mjs +48 -0
  46. package/esm2020/lib/{components → pages}/notifications/notifications.component.mjs +1 -1
  47. package/esm2020/lib/pages/plans/plans.component.mjs +47 -0
  48. package/esm2020/lib/{components → pages}/positions/positions.component.mjs +2 -2
  49. package/esm2020/lib/pages/profile/profile.component.mjs +93 -0
  50. package/esm2020/lib/pages/recover-account/recover-account.component.mjs +46 -0
  51. package/esm2020/lib/{components → pages}/roles/addRoleDialog.component.mjs +2 -2
  52. package/esm2020/lib/{components → pages}/roles/roles.component.mjs +1 -1
  53. package/esm2020/lib/{components → pages}/settings/settings.component.mjs +1 -1
  54. package/esm2020/lib/pages/signup/signup.component.mjs +50 -0
  55. package/esm2020/lib/pages/suppliers/suppliers.component.mjs +50 -0
  56. package/esm2020/lib/pages/tasks/tasks.component.mjs +86 -0
  57. package/esm2020/lib/pages/tenant-settings/inviteDialog.component.mjs +60 -0
  58. package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +155 -0
  59. package/esm2020/lib/pages/tenants/tenants.component.mjs +47 -0
  60. package/esm2020/lib/pages/transactions/transactDialog.component.mjs +80 -0
  61. package/esm2020/lib/pages/transactions/transactions.component.mjs +101 -0
  62. package/esm2020/lib/pages/users/users.component.mjs +118 -0
  63. package/esm2020/lib/pages/welcome/welcome.component.mjs +86 -0
  64. package/esm2020/lib/services/auth.service.mjs +3 -2
  65. package/esm2020/lib/services/csv.service.mjs +49 -0
  66. package/esm2020/lib/services/datalib.service.mjs +1 -1
  67. package/esm2020/lib/services/log.service.mjs +2 -2
  68. package/esm2020/lib/tin-spa.module.mjs +33 -28
  69. package/esm2020/public-api.mjs +26 -25
  70. package/fesm2015/tin-spa.mjs +520 -171
  71. package/fesm2015/tin-spa.mjs.map +1 -1
  72. package/fesm2020/tin-spa.mjs +518 -171
  73. package/fesm2020/tin-spa.mjs.map +1 -1
  74. package/lib/classes/Classes.d.ts +19 -173
  75. package/lib/classes/LibClasses.d.ts +172 -0
  76. package/lib/classes/TinCore.d.ts +3 -1
  77. package/lib/components/datetime/datetime.component.d.ts +2 -1
  78. package/lib/components/email/email.component.d.ts +39 -0
  79. package/lib/components/filter/filter.component.d.ts +1 -0
  80. package/lib/components/form/form.component.d.ts +2 -0
  81. package/lib/components/option/option.component.d.ts +2 -1
  82. package/lib/components/select/select.component.d.ts +3 -1
  83. package/lib/components/table/table.component.d.ts +3 -0
  84. package/lib/components/table-header/table-header.component.d.ts +17 -4
  85. package/lib/components/table-internal/table-internal.component.d.ts +3 -0
  86. package/lib/components/table-row/table-row.component.d.ts +1 -1
  87. package/lib/components/text/text.component.d.ts +6 -2
  88. package/lib/components/tiles/tiles.component.d.ts +4 -2
  89. package/lib/modules/spa-admin.module.d.ts +6 -6
  90. package/lib/modules/spa-index.module.d.ts +3 -3
  91. package/lib/modules/spa-user.module.d.ts +2 -2
  92. package/lib/{components → pages}/change-password/change-password.component.d.ts +1 -1
  93. package/lib/{components → pages}/create-account/create-account.component.d.ts +2 -1
  94. package/lib/{components → pages}/login/login.component.d.ts +3 -2
  95. package/lib/{components → pages}/profile/profile.component.d.ts +2 -1
  96. package/lib/{components → pages}/roles/addRoleDialog.component.d.ts +1 -1
  97. package/lib/{components → pages}/roles/roles.component.d.ts +1 -1
  98. package/lib/{components → pages}/signup/signup.component.d.ts +1 -1
  99. package/lib/{components → pages}/users/users.component.d.ts +1 -1
  100. package/lib/services/auth.service.d.ts +1 -1
  101. package/lib/services/csv.service.d.ts +10 -0
  102. package/lib/services/datalib.service.d.ts +2 -1
  103. package/lib/services/log.service.d.ts +1 -1
  104. package/lib/tin-spa.module.d.ts +29 -28
  105. package/package.json +1 -1
  106. package/public-api.d.ts +24 -23
  107. package/esm2020/lib/components/accounts/accountDialog.component.mjs +0 -56
  108. package/esm2020/lib/components/accounts/accounts.component.mjs +0 -70
  109. package/esm2020/lib/components/change-password/change-password.component.mjs +0 -92
  110. package/esm2020/lib/components/create-account/create-account.component.mjs +0 -109
  111. package/esm2020/lib/components/customers/customers.component.mjs +0 -60
  112. package/esm2020/lib/components/inventory/inventory.component.mjs +0 -99
  113. package/esm2020/lib/components/inventory/quantityDialog.component.mjs +0 -53
  114. package/esm2020/lib/components/invitations-table/invitations-table.component.mjs +0 -70
  115. package/esm2020/lib/components/membership/membership.component.mjs +0 -48
  116. package/esm2020/lib/components/plans/plans.component.mjs +0 -47
  117. package/esm2020/lib/components/profile/profile.component.mjs +0 -92
  118. package/esm2020/lib/components/recover-account/recover-account.component.mjs +0 -46
  119. package/esm2020/lib/components/signup/signup.component.mjs +0 -50
  120. package/esm2020/lib/components/suppliers/suppliers.component.mjs +0 -50
  121. package/esm2020/lib/components/tasks/tasks.component.mjs +0 -86
  122. package/esm2020/lib/components/tenant-settings/inviteDialog.component.mjs +0 -60
  123. package/esm2020/lib/components/tenant-settings/tenant-settings.component.mjs +0 -155
  124. package/esm2020/lib/components/tenants/tenants.component.mjs +0 -47
  125. package/esm2020/lib/components/transactions/transactDialog.component.mjs +0 -80
  126. package/esm2020/lib/components/transactions/transactions.component.mjs +0 -101
  127. package/esm2020/lib/components/users/users.component.mjs +0 -118
  128. package/esm2020/lib/components/welcome/welcome.component.mjs +0 -86
  129. /package/lib/{components → pages}/accounts/accountDialog.component.d.ts +0 -0
  130. /package/lib/{components → pages}/accounts/accounts.component.d.ts +0 -0
  131. /package/lib/{components → pages}/bug/bug.component.d.ts +0 -0
  132. /package/lib/{components → pages}/customers/customers.component.d.ts +0 -0
  133. /package/lib/{components → pages}/departments/departments.component.d.ts +0 -0
  134. /package/lib/{components → pages}/employees/employees.component.d.ts +0 -0
  135. /package/lib/{components → pages}/grades/grades.component.d.ts +0 -0
  136. /package/lib/{components → pages}/inventory/inventory.component.d.ts +0 -0
  137. /package/lib/{components → pages}/inventory/quantityDialog.component.d.ts +0 -0
  138. /package/lib/{components → pages}/invitations/invitations.component.d.ts +0 -0
  139. /package/lib/{components → pages}/invitations-table/invitations-table.component.d.ts +0 -0
  140. /package/lib/{components → pages}/logs/logs.component.d.ts +0 -0
  141. /package/lib/{components → pages}/membership/membership.component.d.ts +0 -0
  142. /package/lib/{components → pages}/notifications/notifications.component.d.ts +0 -0
  143. /package/lib/{components → pages}/plans/plans.component.d.ts +0 -0
  144. /package/lib/{components → pages}/positions/positions.component.d.ts +0 -0
  145. /package/lib/{components → pages}/recover-account/recover-account.component.d.ts +0 -0
  146. /package/lib/{components → pages}/settings/settings.component.d.ts +0 -0
  147. /package/lib/{components → pages}/suppliers/suppliers.component.d.ts +0 -0
  148. /package/lib/{components → pages}/tasks/tasks.component.d.ts +0 -0
  149. /package/lib/{components → pages}/tenant-settings/inviteDialog.component.d.ts +0 -0
  150. /package/lib/{components → pages}/tenant-settings/tenant-settings.component.d.ts +0 -0
  151. /package/lib/{components → pages}/tenants/tenants.component.d.ts +0 -0
  152. /package/lib/{components → pages}/transactions/transactDialog.component.d.ts +0 -0
  153. /package/lib/{components → pages}/transactions/transactions.component.d.ts +0 -0
  154. /package/lib/{components → pages}/welcome/welcome.component.d.ts +0 -0
@@ -1,9 +1,11 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
3
  import { Observable } from 'rxjs';
4
+ import { MessageService } from '../../services/message.service';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class TextComponent implements OnInit {
6
- constructor();
7
+ private messageService;
8
+ constructor(messageService: MessageService);
7
9
  ngOnInit(): void;
8
10
  ngAfterViewInit(): void;
9
11
  filteredOptions: Observable<string[]>;
@@ -22,6 +24,7 @@ export declare class TextComponent implements OnInit {
22
24
  enterPress: EventEmitter<any>;
23
25
  rows: number;
24
26
  width: string;
27
+ copyContent: boolean;
25
28
  options: any;
26
29
  optionValue: string;
27
30
  required: boolean;
@@ -34,6 +37,7 @@ export declare class TextComponent implements OnInit {
34
37
  onInfoClick(event: MouseEvent): void;
35
38
  private initFilter;
36
39
  private _filter;
40
+ copyText(): void;
37
41
  initControl(control: FormControl): void;
38
42
  changed(): void;
39
43
  leaved(): void;
@@ -42,5 +46,5 @@ export declare class TextComponent implements OnInit {
42
46
  control: FormControl<string>;
43
47
  validate(control: FormControl): string;
44
48
  static ɵfac: i0.ɵɵFactoryDeclaration<TextComponent, never>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<TextComponent, "spa-text", never, { "readonly": "readonly"; "hint": "hint"; "display": "display"; "placeholder": "placeholder"; "value": "value"; "format": "format"; "type": "type"; "rows": "rows"; "width": "width"; "options": "options"; "optionValue": "optionValue"; "required": "required"; "min": "min"; "max": "max"; "regex": "regex"; "suffix": "suffix"; "infoMessage": "infoMessage"; }, { "valueChange": "valueChange"; "leave": "leave"; "enterPress": "enterPress"; "infoClick": "infoClick"; }, never, never, false>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextComponent, "spa-text", never, { "readonly": "readonly"; "hint": "hint"; "display": "display"; "placeholder": "placeholder"; "value": "value"; "format": "format"; "type": "type"; "rows": "rows"; "width": "width"; "copyContent": "copyContent"; "options": "options"; "optionValue": "optionValue"; "required": "required"; "min": "min"; "max": "max"; "regex": "regex"; "suffix": "suffix"; "infoMessage": "infoMessage"; }, { "valueChange": "valueChange"; "leave": "leave"; "enterPress": "enterPress"; "infoClick": "infoClick"; }, never, never, false>;
46
50
  }
@@ -12,14 +12,16 @@ export declare class TilesComponent implements OnInit {
12
12
  ngOnChanges(): void;
13
13
  tiles: Tile[];
14
14
  config: TileConfig;
15
+ tileActionSelected: EventEmitter<Action>;
15
16
  data: any;
16
17
  reload: Subject<boolean>;
17
18
  tileClick: EventEmitter<any>;
19
+ tileUnClick: EventEmitter<any>;
18
20
  selectedTile: string;
19
21
  new: boolean;
20
- clicked(v: Tile): void;
22
+ clicked(clickedTile: Tile): void;
21
23
  pop(x: any): void;
22
24
  loadData(action: Action, data: any): void;
23
25
  static ɵfac: i0.ɵɵFactoryDeclaration<TilesComponent, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<TilesComponent, "spa-tiles", never, { "config": "config"; "data": "data"; "reload": "reload"; }, { "tileClick": "tileClick"; }, never, never, false>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<TilesComponent, "spa-tiles", never, { "config": "config"; "data": "data"; "reload": "reload"; }, { "tileActionSelected": "tileActionSelected"; "tileClick": "tileClick"; "tileUnClick": "tileUnClick"; }, never, never, false>;
25
27
  }
@@ -1,10 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "../components/users/users.component";
3
- import * as i2 from "../components/roles/roles.component";
4
- import * as i3 from "../components/roles/addRoleDialog.component";
5
- import * as i4 from "../components/create-account/create-account.component";
6
- import * as i5 from "../components/logs/logs.component";
7
- import * as i6 from "../components/settings/settings.component";
2
+ import * as i1 from "../pages/users/users.component";
3
+ import * as i2 from "../pages/roles/roles.component";
4
+ import * as i3 from "../pages/roles/addRoleDialog.component";
5
+ import * as i4 from "../pages/create-account/create-account.component";
6
+ import * as i5 from "../pages/logs/logs.component";
7
+ import * as i6 from "../pages/settings/settings.component";
8
8
  import * as i7 from "@angular/forms";
9
9
  import * as i8 from "@angular/common";
10
10
  import * as i9 from "../tin-spa.module";
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "../components/login/login.component";
3
- import * as i2 from "../components/signup/signup.component";
4
- import * as i3 from "../components/recover-account/recover-account.component";
2
+ import * as i1 from "../pages/login/login.component";
3
+ import * as i2 from "../pages/signup/signup.component";
4
+ import * as i3 from "../pages/recover-account/recover-account.component";
5
5
  import * as i4 from "@angular/forms";
6
6
  import * as i5 from "@angular/common";
7
7
  import * as i6 from "../tin-spa.module";
@@ -1,6 +1,6 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "../components/change-password/change-password.component";
3
- import * as i2 from "../components/profile/profile.component";
2
+ import * as i1 from "../pages/change-password/change-password.component";
3
+ import * as i2 from "../pages/profile/profile.component";
4
4
  import * as i3 from "@angular/forms";
5
5
  import * as i4 from "@angular/common";
6
6
  import * as i5 from "../tin-spa.module";
@@ -1,4 +1,3 @@
1
- import { ChangeUserPassword } from './../../classes/Classes';
2
1
  import { OnInit } from '@angular/core';
3
2
  import { MessageService } from '../../services/message.service';
4
3
  import { DataServiceLib } from '../../services/datalib.service';
@@ -6,6 +5,7 @@ import { AuthService } from '../../services/auth.service';
6
5
  import { Location } from '@angular/common';
7
6
  import { HttpService } from '../../services/http.service';
8
7
  import { ActivatedRoute, Router } from '@angular/router';
8
+ import { ChangeUserPassword } from '../../classes/LibClasses';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class ChangePasswordComponent implements OnInit {
11
11
  router: Router;
@@ -2,9 +2,10 @@ import { DataServiceLib } from '../../services/datalib.service';
2
2
  import { OnInit } from '@angular/core';
3
3
  import { MessageService } from '../../services/message.service';
4
4
  import { AuthService } from '../../services/auth.service';
5
- import { AppConfig, Register } from '../../classes/Classes';
5
+ import { AppConfig } from '../../classes/Classes';
6
6
  import { Router } from '@angular/router';
7
7
  import { HttpService } from '../../services/http.service';
8
+ import { Register } from '../../classes/LibClasses';
8
9
  import * as i0 from "@angular/core";
9
10
  export declare class CreateAccountComponent implements OnInit {
10
11
  private httpService;
@@ -4,10 +4,11 @@ import { AuthService } from "../../services/auth.service";
4
4
  import { OnInit } from "@angular/core";
5
5
  import { ActivatedRoute, Router } from "@angular/router";
6
6
  import { DataServiceLib } from "../../services/datalib.service";
7
- import { LogService } from "./../../services/log.service";
8
- import { User, AppConfig } from "../../classes/Classes";
7
+ import { LogService } from "../../services/log.service";
8
+ import { AppConfig } from "../../classes/Classes";
9
9
  import { HttpService } from "../../services/http.service";
10
10
  import { SocialAuthService, SocialUser } from '@abacritt/angularx-social-login';
11
+ import { User } from "../../classes/LibClasses";
11
12
  import * as i0 from "@angular/core";
12
13
  export declare class LoginComponent implements OnInit {
13
14
  private httpService;
@@ -2,9 +2,10 @@ import { AuthService } from './../../services/auth.service';
2
2
  import { MessageService } from './../../services/message.service';
3
3
  import { DataServiceLib } from '../../services/datalib.service';
4
4
  import { OnInit } from '@angular/core';
5
- import { AppConfig, Profile } from '../../classes/Classes';
5
+ import { AppConfig } from '../../classes/Classes';
6
6
  import { Router } from '@angular/router';
7
7
  import { HttpService } from '../../services/http.service';
8
+ import { Profile } from '../../classes/LibClasses';
8
9
  import * as i0 from "@angular/core";
9
10
  export declare class ProfileComponent implements OnInit {
10
11
  dataService: DataServiceLib;
@@ -3,8 +3,8 @@ import { AuthService } from '../../services/auth.service';
3
3
  import { OnInit } from '@angular/core';
4
4
  import { MatDialogRef } from '@angular/material/dialog';
5
5
  import { DataServiceLib } from '../../services/datalib.service';
6
- import { Role } from '../../classes/Classes';
7
6
  import { LoaderService } from '../../services/loader.service';
7
+ import { Role } from '../../classes/LibClasses';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class addRoleDialog implements OnInit {
10
10
  private loaderService;
@@ -2,11 +2,11 @@ import { AppConfig } from './../../classes/Classes';
2
2
  import { OnInit } from "@angular/core";
3
3
  import { MatDialog } from "@angular/material/dialog";
4
4
  import { DataServiceLib } from "../../services/datalib.service";
5
- import { Role } from "../../classes/Classes";
6
5
  import { Router } from "@angular/router";
7
6
  import { MessageService } from '../../services/message.service';
8
7
  import { AuthService } from '../../services/auth.service';
9
8
  import { HttpService } from '../../services/http.service';
9
+ import { Role } from '../../classes/LibClasses';
10
10
  import * as i0 from "@angular/core";
11
11
  export declare class RolesComponent implements OnInit {
12
12
  private httpService;
@@ -2,8 +2,8 @@ import { OnInit } from '@angular/core';
2
2
  import { MessageService } from '../../services/message.service';
3
3
  import { DataServiceLib } from '../../services/datalib.service';
4
4
  import { AuthService } from '../../services/auth.service';
5
- import { User, Profile, Account } from '../../classes/Classes';
6
5
  import { HttpService } from '../../services/http.service';
6
+ import { Account, Profile, User } from '../../classes/LibClasses';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class SignupComponent implements OnInit {
9
9
  private httpService;
@@ -5,8 +5,8 @@ import { DataServiceLib } from "../../services/datalib.service";
5
5
  import { Router } from "@angular/router";
6
6
  import { MessageService } from "../../services/message.service";
7
7
  import { AuthService } from "../../services/auth.service";
8
- import { User } from '../../classes/Classes';
9
8
  import { HttpService } from "../../services/http.service";
9
+ import { User } from "../../classes/LibClasses";
10
10
  import * as i0 from "@angular/core";
11
11
  export declare class UsersComponent implements OnInit {
12
12
  private httpService;
@@ -3,9 +3,9 @@ import { Router, CanActivate, ActivatedRoute } from '@angular/router';
3
3
  import { BehaviorSubject } from 'rxjs';
4
4
  import { StorageService } from './storage.service';
5
5
  import { LogService } from './log.service';
6
- import { Role } from '../classes/Classes';
7
6
  import { HttpService } from './http.service';
8
7
  import { SocialAuthService } from '@abacritt/angularx-social-login';
8
+ import { Role } from '../classes/LibClasses';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class AuthService implements CanActivate {
11
11
  private _route;
@@ -0,0 +1,10 @@
1
+ import { TableConfig } from '../classes/Classes';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CsvService {
4
+ generateCsv(data: any[], columns: string[], filename: string, config: TableConfig): void;
5
+ private convertToCsv;
6
+ private createColumnMap;
7
+ private escapeCommas;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<CsvService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<CsvService>;
10
+ }
@@ -1,7 +1,8 @@
1
- import { Action, AppConfig, Button, CapItem, FormConfig, TableConfig, User } from '../classes/Classes';
1
+ import { Action, AppConfig, Button, CapItem, FormConfig, TableConfig } from '../classes/Classes';
2
2
  import { Observable } from 'rxjs';
3
3
  import { HttpService } from './http.service';
4
4
  import { ActivatedRoute, Router } from '@angular/router';
5
+ import { User } from '../classes/LibClasses';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class DataServiceLib {
7
8
  private httpService;
@@ -1,4 +1,4 @@
1
- import { LogLevel } from '../classes/Classes';
1
+ import { LogLevel } from "../classes/LibClasses";
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class LogService {
4
4
  constructor();
@@ -27,40 +27,41 @@ import * as i25 from "./components/number/number.component";
27
27
  import * as i26 from "./components/search/search.component";
28
28
  import * as i27 from "./components/viewer/viewer.component";
29
29
  import * as i28 from "./components/viewer/viewerDialog.component";
30
- import * as i29 from "./components/tenant-settings/tenant-settings.component";
31
- import * as i30 from "./components/tenant-settings/inviteDialog.component";
32
- import * as i31 from "./components/tenants/tenants.component";
33
- import * as i32 from "./components/bug/bug.component";
34
- import * as i33 from "./components/membership/membership.component";
35
- import * as i34 from "./components/plans/plans.component";
36
- import * as i35 from "./components/customers/customers.component";
37
- import * as i36 from "./components/inventory/inventory.component";
38
- import * as i37 from "./components/inventory/quantityDialog.component";
39
- import * as i38 from "./components/accounts/accounts.component";
40
- import * as i39 from "./components/accounts/accountDialog.component";
41
- import * as i40 from "./components/suppliers/suppliers.component";
42
- import * as i41 from "./components/transactions/transactions.component";
43
- import * as i42 from "./components/transactions/transactDialog.component";
30
+ import * as i29 from "./pages/tenant-settings/tenant-settings.component";
31
+ import * as i30 from "./pages/tenant-settings/inviteDialog.component";
32
+ import * as i31 from "./pages/tenants/tenants.component";
33
+ import * as i32 from "./pages/bug/bug.component";
34
+ import * as i33 from "./pages/membership/membership.component";
35
+ import * as i34 from "./pages/plans/plans.component";
36
+ import * as i35 from "./pages/customers/customers.component";
37
+ import * as i36 from "./pages/inventory/inventory.component";
38
+ import * as i37 from "./pages/inventory/quantityDialog.component";
39
+ import * as i38 from "./pages/accounts/accounts.component";
40
+ import * as i39 from "./pages/accounts/accountDialog.component";
41
+ import * as i40 from "./pages/suppliers/suppliers.component";
42
+ import * as i41 from "./pages/transactions/transactions.component";
43
+ import * as i42 from "./pages/transactions/transactDialog.component";
44
44
  import * as i43 from "./components/list-dialog/list-dialog.component";
45
- import * as i44 from "./components/tasks/tasks.component";
46
- import * as i45 from "./components/departments/departments.component";
47
- import * as i46 from "./components/employees/employees.component";
48
- import * as i47 from "./components/positions/positions.component";
49
- import * as i48 from "./components/grades/grades.component";
50
- import * as i49 from "./components/welcome/welcome.component";
51
- import * as i50 from "./components/invitations/invitations.component";
52
- import * as i51 from "./components/notifications/notifications.component";
53
- import * as i52 from "./components/invitations-table/invitations-table.component";
45
+ import * as i44 from "./pages/tasks/tasks.component";
46
+ import * as i45 from "./pages/departments/departments.component";
47
+ import * as i46 from "./pages/employees/employees.component";
48
+ import * as i47 from "./pages/positions/positions.component";
49
+ import * as i48 from "./pages/grades/grades.component";
50
+ import * as i49 from "./pages/welcome/welcome.component";
51
+ import * as i50 from "./pages/invitations/invitations.component";
52
+ import * as i51 from "./pages/notifications/notifications.component";
53
+ import * as i52 from "./pages/invitations-table/invitations-table.component";
54
54
  import * as i53 from "./components/table-header/table-header.component";
55
55
  import * as i54 from "./components/table-row/table-row.component";
56
56
  import * as i55 from "./components/table-action/table-action.component";
57
57
  import * as i56 from "./components/alert/alert.component";
58
- import * as i57 from "./modules/spa-mat.module";
59
- import * as i58 from "@angular/common/http";
60
- import * as i59 from "./components/money/currency-input-mask.module";
61
- import * as i60 from "ngx-doc-viewer";
58
+ import * as i57 from "./components/email/email.component";
59
+ import * as i58 from "./modules/spa-mat.module";
60
+ import * as i59 from "@angular/common/http";
61
+ import * as i60 from "./components/money/currency-input-mask.module";
62
+ import * as i61 from "ngx-doc-viewer";
62
63
  export declare class TinSpaModule {
63
64
  static ɵfac: i0.ɵɵFactoryDeclaration<TinSpaModule, never>;
64
- static ɵmod: i0.ɵɵNgModuleDeclaration<TinSpaModule, [typeof i1.TinSpaComponent, typeof i2.TextComponent, typeof i3.CheckComponent, typeof i4.DateComponent, typeof i5.DatetimeComponent, typeof i6.LabelComponent, typeof i7.SelectComponent, typeof i8.ActivityComponent, typeof i9.FilterComponent, typeof i10.messageDialog, typeof i11.MoneyComponent, typeof i12.OptionComponent, typeof i13.TilesComponent, typeof i14.StepsComponent, typeof i15.AttachComponent, typeof i16.ChipsComponent, typeof i17.LoaderComponent, typeof i18.NavMenuComponent, typeof i19.TableComponent, typeof i20.TableInternalComponent, typeof i21.DetailsDialog, typeof i22.DetailsDialogInternal, typeof i23.FormComponent, typeof i24.CamelToWordsPipe, typeof i25.NumberComponent, typeof i26.SearchComponent, typeof i27.ViewerComponent, typeof i28.viewerDialog, typeof i29.TenantSettingsComponent, typeof i30.inviteDialog, typeof i31.TenantsComponent, typeof i32.BugComponent, typeof i33.MembershipComponent, typeof i34.PlansComponent, typeof i35.CustomersComponent, typeof i36.InventoryComponent, typeof i37.quantityDialog, typeof i38.AccountsComponent, typeof i39.accountDialog, typeof i40.SuppliersComponent, typeof i41.TransactionsComponent, typeof i42.transactDialog, typeof i43.ListDialogComponent, typeof i44.TasksComponent, typeof i45.DepartmentsComponent, typeof i46.EmployeesComponent, typeof i47.PositionsComponent, typeof i48.GradesComponent, typeof i49.WelcomeComponent, typeof i50.InvitationsComponent, typeof i51.NotificationsComponent, typeof i52.InvitationsTableComponent, typeof i53.TableHeaderComponent, typeof i54.TableRowComponent, typeof i55.TableActionComponent, typeof i56.AlertComponent], [typeof i57.SpaMatModule, typeof i58.HttpClientModule, typeof i59.CurrencyInputModule, typeof i60.NgxDocViewerModule], [typeof i1.TinSpaComponent, typeof i57.SpaMatModule, typeof i56.AlertComponent, typeof i2.TextComponent, typeof i10.messageDialog, typeof i18.NavMenuComponent, typeof i17.LoaderComponent, typeof i13.TilesComponent, typeof i4.DateComponent, typeof i7.SelectComponent, typeof i5.DatetimeComponent, typeof i3.CheckComponent, typeof i15.AttachComponent, typeof i11.MoneyComponent, typeof i16.ChipsComponent, typeof i8.ActivityComponent, typeof i12.OptionComponent, typeof i6.LabelComponent, typeof i14.StepsComponent, typeof i9.FilterComponent, typeof i19.TableComponent, typeof i21.DetailsDialog, typeof i23.FormComponent, typeof i25.NumberComponent, typeof i26.SearchComponent, typeof i27.ViewerComponent, typeof i28.viewerDialog, typeof i43.ListDialogComponent, typeof i35.CustomersComponent, typeof i38.AccountsComponent, typeof i36.InventoryComponent, typeof i40.SuppliersComponent, typeof i41.TransactionsComponent, typeof i43.ListDialogComponent, typeof i44.TasksComponent, typeof i45.DepartmentsComponent, typeof i46.EmployeesComponent, typeof i47.PositionsComponent, typeof i48.GradesComponent, typeof i49.WelcomeComponent]>;
65
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TinSpaModule, [typeof i1.TinSpaComponent, typeof i2.TextComponent, typeof i3.CheckComponent, typeof i4.DateComponent, typeof i5.DatetimeComponent, typeof i6.LabelComponent, typeof i7.SelectComponent, typeof i8.ActivityComponent, typeof i9.FilterComponent, typeof i10.messageDialog, typeof i11.MoneyComponent, typeof i12.OptionComponent, typeof i13.TilesComponent, typeof i14.StepsComponent, typeof i15.AttachComponent, typeof i16.ChipsComponent, typeof i17.LoaderComponent, typeof i18.NavMenuComponent, typeof i19.TableComponent, typeof i20.TableInternalComponent, typeof i21.DetailsDialog, typeof i22.DetailsDialogInternal, typeof i23.FormComponent, typeof i24.CamelToWordsPipe, typeof i25.NumberComponent, typeof i26.SearchComponent, typeof i27.ViewerComponent, typeof i28.viewerDialog, typeof i29.TenantSettingsComponent, typeof i30.inviteDialog, typeof i31.TenantsComponent, typeof i32.BugComponent, typeof i33.MembershipComponent, typeof i34.PlansComponent, typeof i35.CustomersComponent, typeof i36.InventoryComponent, typeof i37.quantityDialog, typeof i38.AccountsComponent, typeof i39.accountDialog, typeof i40.SuppliersComponent, typeof i41.TransactionsComponent, typeof i42.transactDialog, typeof i43.ListDialogComponent, typeof i44.TasksComponent, typeof i45.DepartmentsComponent, typeof i46.EmployeesComponent, typeof i47.PositionsComponent, typeof i48.GradesComponent, typeof i49.WelcomeComponent, typeof i50.InvitationsComponent, typeof i51.NotificationsComponent, typeof i52.InvitationsTableComponent, typeof i53.TableHeaderComponent, typeof i54.TableRowComponent, typeof i55.TableActionComponent, typeof i56.AlertComponent, typeof i57.EmailComponent], [typeof i58.SpaMatModule, typeof i59.HttpClientModule, typeof i60.CurrencyInputModule, typeof i61.NgxDocViewerModule], [typeof i1.TinSpaComponent, typeof i58.SpaMatModule, typeof i56.AlertComponent, typeof i2.TextComponent, typeof i10.messageDialog, typeof i18.NavMenuComponent, typeof i17.LoaderComponent, typeof i13.TilesComponent, typeof i4.DateComponent, typeof i7.SelectComponent, typeof i5.DatetimeComponent, typeof i3.CheckComponent, typeof i15.AttachComponent, typeof i11.MoneyComponent, typeof i16.ChipsComponent, typeof i8.ActivityComponent, typeof i12.OptionComponent, typeof i6.LabelComponent, typeof i14.StepsComponent, typeof i9.FilterComponent, typeof i19.TableComponent, typeof i21.DetailsDialog, typeof i23.FormComponent, typeof i25.NumberComponent, typeof i26.SearchComponent, typeof i27.ViewerComponent, typeof i28.viewerDialog, typeof i43.ListDialogComponent, typeof i35.CustomersComponent, typeof i38.AccountsComponent, typeof i36.InventoryComponent, typeof i40.SuppliersComponent, typeof i41.TransactionsComponent, typeof i43.ListDialogComponent, typeof i44.TasksComponent, typeof i45.DepartmentsComponent, typeof i46.EmployeesComponent, typeof i47.PositionsComponent, typeof i48.GradesComponent, typeof i49.WelcomeComponent, typeof i57.EmailComponent]>;
65
66
  static ɵinj: i0.ɵɵInjectorDeclaration<TinSpaModule>;
66
67
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tin-spa",
3
- "version": "14.3.11",
3
+ "version": "14.4.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.2.0",
6
6
  "@angular/core": "^14.2.0"
package/public-api.d.ts CHANGED
@@ -36,18 +36,6 @@ export * from './lib/components/steps/steps.component';
36
36
  export * from './lib/components/filter/filter.component';
37
37
  export * from './lib/components/message/messageDialog.component';
38
38
  export * from './lib/components/loader/loader.component';
39
- export * from './lib/components/users/users.component';
40
- export * from './lib/components/login/login.component';
41
- export * from './lib/components/nav-menu/nav-menu.component';
42
- export * from './lib/components/roles/roles.component';
43
- export * from './lib/components/roles/addRoleDialog.component';
44
- export * from './lib/components/signup/signup.component';
45
- export * from './lib/components/change-password/change-password.component';
46
- export * from './lib/components/profile/profile.component';
47
- export * from './lib/components/recover-account/recover-account.component';
48
- export * from './lib/components/create-account/create-account.component';
49
- export * from './lib/components/logs/logs.component';
50
- export * from './lib/components/settings/settings.component';
51
39
  export * from './lib/components/table/table.component';
52
40
  export * from './lib/components/table/detailsDialog.component';
53
41
  export * from './lib/components/form/form.component';
@@ -55,15 +43,28 @@ export * from './lib/components/number/number.component';
55
43
  export * from './lib/components/search/search.component';
56
44
  export * from './lib/components/viewer/viewer.component';
57
45
  export * from './lib/components/viewer/viewerDialog.component';
58
- export * from './lib/components/customers/customers.component';
59
- export * from './lib/components/inventory/inventory.component';
60
- export * from './lib/components/accounts/accounts.component';
61
- export * from './lib/components/suppliers/suppliers.component';
46
+ export * from './lib/components/nav-menu/nav-menu.component';
62
47
  export * from './lib/components/list-dialog/list-dialog.component';
63
- export * from './lib/components/transactions/transactions.component';
64
- export * from './lib/components/tasks/tasks.component';
65
- export * from './lib/components/departments/departments.component';
66
- export * from './lib/components/employees/employees.component';
67
- export * from './lib/components/positions/positions.component';
68
- export * from './lib/components/grades/grades.component';
69
- export * from './lib/components/welcome/welcome.component';
48
+ export * from './lib/components/email/email.component';
49
+ export * from './lib/pages/transactions/transactions.component';
50
+ export * from './lib/pages/tasks/tasks.component';
51
+ export * from './lib/pages/departments/departments.component';
52
+ export * from './lib/pages/employees/employees.component';
53
+ export * from './lib/pages/positions/positions.component';
54
+ export * from './lib/pages/grades/grades.component';
55
+ export * from './lib/pages/welcome/welcome.component';
56
+ export * from './lib/pages/customers/customers.component';
57
+ export * from './lib/pages/inventory/inventory.component';
58
+ export * from './lib/pages/accounts/accounts.component';
59
+ export * from './lib/pages/suppliers/suppliers.component';
60
+ export * from './lib/pages/users/users.component';
61
+ export * from './lib/pages/login/login.component';
62
+ export * from './lib/pages/roles/roles.component';
63
+ export * from './lib/pages/roles/addRoleDialog.component';
64
+ export * from './lib/pages/signup/signup.component';
65
+ export * from './lib/pages/change-password/change-password.component';
66
+ export * from './lib/pages/profile/profile.component';
67
+ export * from './lib/pages/recover-account/recover-account.component';
68
+ export * from './lib/pages/create-account/create-account.component';
69
+ export * from './lib/pages/logs/logs.component';
70
+ export * from './lib/pages/settings/settings.component';
@@ -1,56 +0,0 @@
1
- //-------------------------------------------VIEW
2
- import { Component, Inject } from '@angular/core';
3
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
- import { FinAccount } from '../../classes/Classes';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../services/loader.service";
7
- import * as i2 from "../../services/message.service";
8
- import * as i3 from "../../services/datalib.service";
9
- import * as i4 from "@angular/material/dialog";
10
- import * as i5 from "@angular/material/button";
11
- import * as i6 from "../text/text.component";
12
- import * as i7 from "../select/select.component";
13
- import * as i8 from "@angular/common";
14
- export class accountDialog {
15
- constructor(loaderService, messageService, dataService, dialogRef, data) {
16
- this.loaderService = loaderService;
17
- this.messageService = messageService;
18
- this.dataService = dataService;
19
- this.dialogRef = dialogRef;
20
- this.data = data;
21
- this.isLoadComplete = false;
22
- this.isProcessing = false;
23
- this.currencies = [
24
- { name: 'USD', value: 'USD' },
25
- { name: 'ZAR', value: 'ZAR' },
26
- { name: 'ZWL', value: 'ZWL' },
27
- ];
28
- }
29
- ngOnInit() {
30
- this.action = this.data == null ? 'create' : 'edit';
31
- this.account = this.data ?? new FinAccount();
32
- this.isLoadComplete = true;
33
- this.loaderService.isLoading.subscribe(x => this.isProcessing = x);
34
- }
35
- submit() {
36
- this.dataService.CallApi({ url: `general/accounts?action=${this.action}`, method: 'post' }, this.account).subscribe((x) => {
37
- if (x.success) {
38
- this.dialogRef.close('success');
39
- }
40
- else {
41
- this.messageService.toast(x.message);
42
- }
43
- });
44
- }
45
- }
46
- accountDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: accountDialog, deps: [{ token: i1.LoaderService }, { token: i2.MessageService }, { token: i3.DataServiceLib }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
47
- accountDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: accountDialog, selector: "app-quanityDiag", ngImport: i0, template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n<div class=\"tin-col\" style=\"font-size:14px\">\r\n\r\n <spa-text display=\"Name\" [(value)]=\"account.name\" ></spa-text>\r\n <spa-text display=\"Description\" [(value)]=\"account.description\" ></spa-text>\r\n <spa-select display=\"Currency\" [(value)]=\"account.currency\" [options]=\"currencies\" optionDisplay=\"name\" optionValue=\"value\"></spa-select>\r\n\r\n</div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n<button mat-stroked-button color=\"primary\" [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], 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: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { 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.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"] }, { kind: "pipe", type: i8.TitleCasePipe, name: "titlecase" }] });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: accountDialog, decorators: [{
49
- type: Component,
50
- args: [{ selector: 'app-quanityDiag', template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n<div class=\"tin-col\" style=\"font-size:14px\">\r\n\r\n <spa-text display=\"Name\" [(value)]=\"account.name\" ></spa-text>\r\n <spa-text display=\"Description\" [(value)]=\"account.description\" ></spa-text>\r\n <spa-select display=\"Currency\" [(value)]=\"account.currency\" [options]=\"currencies\" optionDisplay=\"name\" optionValue=\"value\"></spa-select>\r\n\r\n</div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n<button mat-stroked-button color=\"primary\" [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
51
- }], ctorParameters: function () { return [{ type: i1.LoaderService }, { type: i2.MessageService }, { type: i3.DataServiceLib }, { type: i4.MatDialogRef }, { type: undefined, decorators: [{
52
- type: Inject,
53
- args: [MAT_DIALOG_DATA]
54
- }] }]; } });
55
- ;
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudERpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9hY2NvdW50cy9hY2NvdW50RGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL2FjY291bnRzL2FjY291bnREaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaURBQWlEO0FBRWpELE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFHekUsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7O0FBU2hFLE1BQU0sT0FBTyxhQUFhO0lBRXhCLFlBQW9CLGFBQTRCLEVBQVUsY0FBOEIsRUFBVSxXQUEyQixFQUFVLFNBQXNDLEVBQWtDLElBQUk7UUFBL0wsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUE2QjtRQUFrQyxTQUFJLEdBQUosSUFBSSxDQUFBO1FBY25OLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGVBQVUsR0FBRztZQUNYLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzdCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzdCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1NBQzlCLENBQUE7SUFwQnNOLENBQUM7SUFFeE4sUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO1FBRW5ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRTNCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFFLENBQUM7SUFFdEUsQ0FBQztJQVlELE1BQU07UUFFSixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSwyQkFBMkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZSxFQUFFLEVBQUU7WUFFdEksSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFDO2dCQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2pDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTthQUNyQztRQUVILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7MEdBbkNVLGFBQWEsdUlBRStKLGVBQWU7OEZBRjNMLGFBQWEsdURDZjFCLGt4QkFxQkE7MkZETmEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxpQkFBaUI7OzBCQU1xSixNQUFNOzJCQUFDLGVBQWU7O0FBa0N2TSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVklFV1xyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaW5BY2NvdW50LCBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcXVhbml0eURpYWcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvdW50RGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hY2NvdW50cy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIGFjY291bnREaWFsb2cgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvYWRlclNlcnZpY2U6IExvYWRlclNlcnZpY2UsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhY2NvdW50RGlhbG9nPiwgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFjdGlvbiA9IHRoaXMuZGF0YSA9PSBudWxsID8gJ2NyZWF0ZScgOiAnZWRpdCdcclxuXHJcbiAgICB0aGlzLmFjY291bnQgPSB0aGlzLmRhdGEgPz8gbmV3IEZpbkFjY291bnQoKTtcclxuICAgIHRoaXMuaXNMb2FkQ29tcGxldGUgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubG9hZGVyU2VydmljZS5pc0xvYWRpbmcuc3Vic2NyaWJlKHggPT4gdGhpcy5pc1Byb2Nlc3NpbmcgPSB4ICk7XHJcblxyXG4gIH1cclxuXHJcbiAgYWN0aW9uO1xyXG4gIGFjY291bnQgOiBGaW5BY2NvdW50XHJcbiAgaXNMb2FkQ29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1Byb2Nlc3Npbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjdXJyZW5jaWVzID0gW1xyXG4gICAgeyBuYW1lOiAnVVNEJywgdmFsdWU6ICdVU0QnIH0sXHJcbiAgICB7IG5hbWU6ICdaQVInLCB2YWx1ZTogJ1pBUicgfSxcclxuICAgIHsgbmFtZTogJ1pXTCcsIHZhbHVlOiAnWldMJyB9LFxyXG4gIF1cclxuXHJcbiAgc3VibWl0KCkge1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogYGdlbmVyYWwvYWNjb3VudHM/YWN0aW9uPSR7dGhpcy5hY3Rpb259YCwgbWV0aG9kOiAncG9zdCcgfSwgdGhpcy5hY2NvdW50KS5zdWJzY3JpYmUoKHggOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgaWYgKHguc3VjY2Vzcyl7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoJ3N1Y2Nlc3MnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHgubWVzc2FnZSlcclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG59O1xyXG5cclxuXHJcblxyXG4iLCJcclxuPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3thY3Rpb24gfCB0aXRsZWNhc2V9fTwvaDI+XHJcbjxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxyXG5cclxuPGRpdiBjbGFzcz1cInRpbi1jb2xcIiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4XCI+XHJcblxyXG4gIDxzcGEtdGV4dCBkaXNwbGF5PVwiTmFtZVwiIFsodmFsdWUpXT1cImFjY291bnQubmFtZVwiID48L3NwYS10ZXh0PlxyXG4gIDxzcGEtdGV4dCBkaXNwbGF5PVwiRGVzY3JpcHRpb25cIiBbKHZhbHVlKV09XCJhY2NvdW50LmRlc2NyaXB0aW9uXCIgPjwvc3BhLXRleHQ+XHJcbiAgPHNwYS1zZWxlY3QgZGlzcGxheT1cIkN1cnJlbmN5XCIgWyh2YWx1ZSldPVwiYWNjb3VudC5jdXJyZW5jeVwiIFtvcHRpb25zXT1cImN1cnJlbmNpZXNcIiBvcHRpb25EaXNwbGF5PVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3NwYS1zZWxlY3Q+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG5cclxuPG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImlzUHJvY2Vzc2luZ1wiIChjbGljayk9XCJzdWJtaXQoKVwiIGNka0ZvY3VzSW5pdGlhbD5TdWJtaXQ8L2J1dHRvbj5cclxuPGJ1dHRvbiBtYXQtYnV0dG9uIGNka0ZvY3VzSW5pdGlhbCBtYXQtZGlhbG9nLWNsb3NlPkNhbmNlbDwvYnV0dG9uPlxyXG48L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuXHJcblxyXG5cclxuIl19
@@ -1,70 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { accountDialog } from './accountDialog.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/router";
6
- import * as i2 from "../../services/datalib.service";
7
- import * as i3 from "../../services/message.service";
8
- import * as i4 from "../../services/auth.service";
9
- import * as i5 from "@angular/material/dialog";
10
- import * as i6 from "@angular/common";
11
- import * as i7 from "@angular/material/button";
12
- import * as i8 from "@angular/material/icon";
13
- import * as i9 from "@angular/material/card";
14
- import * as i10 from "../filter/filter.component";
15
- export class AccountsComponent {
16
- constructor(router, dataService, messageService, authService, dialog) {
17
- this.router = router;
18
- this.dataService = dataService;
19
- this.messageService = messageService;
20
- this.authService = authService;
21
- this.dialog = dialog;
22
- this.reload = new Subject();
23
- }
24
- ngOnInit() {
25
- this.loadData();
26
- }
27
- loadData() {
28
- this.dataService.CallApi({ url: 'general/accounts/x' }, '').subscribe((apiResponse) => {
29
- this.accounts = apiResponse.data;
30
- });
31
- }
32
- view(x) {
33
- this.dataService.NavigateWithValue("home/admin/transactions", x.accountID);
34
- }
35
- open(x) {
36
- const dialogRef = this.dialog.open(accountDialog, {
37
- width: "900px",
38
- data: x,
39
- });
40
- dialogRef.afterClosed().subscribe((result) => {
41
- if (result == 'success') {
42
- this.loadData();
43
- this.messageService.toast("Updated");
44
- }
45
- });
46
- }
47
- delete(row) {
48
- this.messageService.confirm(`DELETE ${row.name} ?`).subscribe((result) => {
49
- if (result == "yes") {
50
- this.dataService.CallApi({ url: `general/accounts?action=delete`, method: 'post' }, row).subscribe((apiResponse) => {
51
- if (apiResponse.message == "success") {
52
- this.messageService.toast("Account Deleted");
53
- this.loadData();
54
- }
55
- else {
56
- this.messageService.toast(apiResponse.message);
57
- }
58
- });
59
- }
60
- ;
61
- });
62
- }
63
- }
64
- AccountsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AccountsComponent, deps: [{ token: i1.Router }, { token: i2.DataServiceLib }, { token: i3.MessageService }, { token: i4.AuthService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
65
- AccountsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AccountsComponent, selector: "spa-accounts", ngImport: i0, template: "<h4>Accounts</h4>\r\n<hr>\r\n\r\n<div class=\"tin-row d-flex justify-content-between\" style=\"font-size: 14px;margin-left: 5px;\">\r\n <button mat-raised-button color=\"primary\" (click)=\"open(null)\">Create</button>\r\n <spa-filter [showText]=\"false\" (refreshClick)=\"loadData()\"></spa-filter>\r\n</div>\r\n\r\n<div class=\"row \" style=\"margin-left: 0px;\">\r\n\r\n <mat-card class=\"mat-elevation-z8\" *ngFor=\"let account of accounts\" style=\"max-width: 350px;margin: 5px;\">\r\n\r\n <div class=\"tin-row d-flex justify-content-between\">\r\n <label style=\"font-size: 24px; font-weight: 300;\">{{account.name}}</label>\r\n <button mat-mini-fab color=\"primary\" (click)=\"open(account)\"><mat-icon>edit</mat-icon></button>\r\n </div>\r\n\r\n <hr style=\"margin-top: 5px;margin-bottom: 10px;\"/>\r\n\r\n <label *ngIf=\"account.description != ''\" style=\"font-size: small;margin-bottom: 5px;\">{{account.description}}</label>\r\n\r\n <div *ngIf=\"account\" class=\"tin-row\">\r\n <label style=\"margin-right: 5px;font-size: 14px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n </div>\r\n\r\n <mat-card-actions class=\"d-flex justify-content-between\" >\r\n <button mat-stroked-button color=\"primary\" style=\"margin-right:10px;\" (click)=\"view(account)\">View</button>\r\n <button mat-mini-fab *ngIf=\"account.count == 0\" color=\"warn\" style=\"margin-right:10px\" (click)=\"delete(account)\"><mat-icon>delete</mat-icon></button>\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n</div>\r\n\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "component", type: i10.FilterComponent, selector: "spa-filter", inputs: ["flatButtons", "showText", "showButton", "data"], outputs: ["refreshClick"] }, { kind: "pipe", type: i6.CurrencyPipe, name: "currency" }] });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AccountsComponent, decorators: [{
67
- type: Component,
68
- args: [{ selector: 'spa-accounts', template: "<h4>Accounts</h4>\r\n<hr>\r\n\r\n<div class=\"tin-row d-flex justify-content-between\" style=\"font-size: 14px;margin-left: 5px;\">\r\n <button mat-raised-button color=\"primary\" (click)=\"open(null)\">Create</button>\r\n <spa-filter [showText]=\"false\" (refreshClick)=\"loadData()\"></spa-filter>\r\n</div>\r\n\r\n<div class=\"row \" style=\"margin-left: 0px;\">\r\n\r\n <mat-card class=\"mat-elevation-z8\" *ngFor=\"let account of accounts\" style=\"max-width: 350px;margin: 5px;\">\r\n\r\n <div class=\"tin-row d-flex justify-content-between\">\r\n <label style=\"font-size: 24px; font-weight: 300;\">{{account.name}}</label>\r\n <button mat-mini-fab color=\"primary\" (click)=\"open(account)\"><mat-icon>edit</mat-icon></button>\r\n </div>\r\n\r\n <hr style=\"margin-top: 5px;margin-bottom: 10px;\"/>\r\n\r\n <label *ngIf=\"account.description != ''\" style=\"font-size: small;margin-bottom: 5px;\">{{account.description}}</label>\r\n\r\n <div *ngIf=\"account\" class=\"tin-row\">\r\n <label style=\"margin-right: 5px;font-size: 14px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n </div>\r\n\r\n <mat-card-actions class=\"d-flex justify-content-between\" >\r\n <button mat-stroked-button color=\"primary\" style=\"margin-right:10px;\" (click)=\"view(account)\">View</button>\r\n <button mat-mini-fab *ngIf=\"account.count == 0\" color=\"warn\" style=\"margin-right:10px\" (click)=\"delete(account)\"><mat-icon>delete</mat-icon></button>\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n</div>\r\n\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
69
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.DataServiceLib }, { type: i3.MessageService }, { type: i4.AuthService }, { type: i5.MatDialog }]; } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3VudHMvYWNjb3VudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3VudHMvYWNjb3VudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU9sRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTzFELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFBbUIsTUFBYyxFQUFTLFdBQTJCLEVBQVUsY0FBOEIsRUFBUyxXQUF3QixFQUFTLE1BQWlCO1FBQXJKLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFNeEssV0FBTSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBTm1JLENBQUM7SUFFN0ssUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBS0QsUUFBUTtRQUVOLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBeUIsRUFBRSxFQUFFO1lBQ2pHLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFJRCxJQUFJLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFFRCxJQUFJLENBQUMsQ0FBQztRQUVKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoRCxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxDQUFDO1NBQ1IsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBRTNDLElBQUksTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsTUFBTSxDQUFDLEdBQUc7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBRXZFLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRTtnQkFHbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtvQkFFOUgsSUFBSSxXQUFXLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRTt3QkFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO3FCQUNqQjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ2hEO2dCQUVILENBQUMsQ0FBQyxDQUFBO2FBR0g7WUFBQSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs4R0E5RFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsb0RDaEI5Qixxb0RBb0NBOzJGRHBCYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbmZpZywgVGFibGVDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbi8vIGltcG9ydCB7IHF1YW50aXR5RGlhbG9nIH0gZnJvbSAnLi9xdWFudGl0eURpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGFjY291bnREaWFsb2cgfSBmcm9tICcuL2FjY291bnREaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWFjY291bnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3VudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjY291bnRzLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjb3VudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIscHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2cpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZERhdGEoKTtcclxuICB9XHJcblxyXG4gIHJlbG9hZDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgYWNjb3VudHM7XHJcblxyXG4gIGxvYWREYXRhKCl7XHJcblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKHsgdXJsOiAnZ2VuZXJhbC9hY2NvdW50cy94JyB9LCcnKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlIDogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5hY2NvdW50cyA9IGFwaVJlc3BvbnNlLmRhdGE7XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgdmlldyh4KXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuTmF2aWdhdGVXaXRoVmFsdWUoXCJob21lL2FkbWluL3RyYW5zYWN0aW9uc1wiLCB4LmFjY291bnRJRClcclxuICB9XHJcblxyXG4gIG9wZW4oeCkge1xyXG5cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oYWNjb3VudERpYWxvZywge1xyXG4gICAgICB3aWR0aDogXCI5MDBweFwiLFxyXG4gICAgICBkYXRhOiB4LFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlVwZGF0ZWRcIilcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZGVsZXRlKHJvdyl7XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNvbmZpcm0oYERFTEVURSAke3Jvdy5uYW1lfSA/YCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT0gXCJ5ZXNcIikge1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKHsgdXJsOiBgZ2VuZXJhbC9hY2NvdW50cz9hY3Rpb249ZGVsZXRlYCwgbWV0aG9kOiAncG9zdCcgfSwgcm93KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgICAgIGlmIChhcGlSZXNwb25zZS5tZXNzYWdlID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJBY2NvdW50IERlbGV0ZWRcIik7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZERhdGEoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pXHJcblxyXG5cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8aDQ+QWNjb3VudHM8L2g0PlxyXG48aHI+XHJcblxyXG48ZGl2IGNsYXNzPVwidGluLXJvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDttYXJnaW4tbGVmdDogNXB4O1wiPlxyXG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9wZW4obnVsbClcIj5DcmVhdGU8L2J1dHRvbj5cclxuICA8c3BhLWZpbHRlciBbc2hvd1RleHRdPVwiZmFsc2VcIiAocmVmcmVzaENsaWNrKT1cImxvYWREYXRhKClcIj48L3NwYS1maWx0ZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInJvdyBcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAwcHg7XCI+XHJcblxyXG4gIDxtYXQtY2FyZCBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejhcIiAqbmdGb3I9XCJsZXQgYWNjb3VudCBvZiBhY2NvdW50c1wiIHN0eWxlPVwibWF4LXdpZHRoOiAzNTBweDttYXJnaW46IDVweDtcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGluLXJvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgPGxhYmVsIHN0eWxlPVwiZm9udC1zaXplOiAyNHB4OyBmb250LXdlaWdodDogMzAwO1wiPnt7YWNjb3VudC5uYW1lfX08L2xhYmVsPlxyXG4gICAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib3BlbihhY2NvdW50KVwiPjxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxociBzdHlsZT1cIm1hcmdpbi10b3A6IDVweDttYXJnaW4tYm90dG9tOiAxMHB4O1wiLz5cclxuXHJcbiAgICA8bGFiZWwgKm5nSWY9XCJhY2NvdW50LmRlc2NyaXB0aW9uICE9ICcnXCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO21hcmdpbi1ib3R0b206IDVweDtcIj57e2FjY291bnQuZGVzY3JpcHRpb259fTwvbGFiZWw+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImFjY291bnRcIiBjbGFzcz1cInRpbi1yb3dcIj5cclxuICAgICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7Zm9udC1zaXplOiAxNHB4O1wiPnt7YWNjb3VudD8uY3VycmVuY3l9fTwvbGFiZWw+XHJcbiAgICAgIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMzRweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+e3thY2NvdW50Py5iYWxhbmNlIHwgY3VycmVuY3kgOiAnJyA6ICcnfX08L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG1hdC1jYXJkLWFjdGlvbnMgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiA+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjEwcHg7XCIgKGNsaWNrKT1cInZpZXcoYWNjb3VudClcIj5WaWV3PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiICpuZ0lmPVwiYWNjb3VudC5jb3VudCA9PSAwXCIgY29sb3I9XCJ3YXJuXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MTBweFwiIChjbGljayk9XCJkZWxldGUoYWNjb3VudClcIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuXHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbiJdfQ==