tin-spa 2.4.5 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/esm2020/lib/classes/Classes.mjs +5 -1
  2. package/esm2020/lib/classes/TinCore.mjs +28 -15
  3. package/esm2020/lib/components/alert/alert.component.mjs +11 -6
  4. package/esm2020/lib/components/email/email.component.mjs +19 -17
  5. package/esm2020/lib/components/form/form.component.mjs +17 -17
  6. package/esm2020/lib/components/label/label.component.mjs +3 -3
  7. package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +1 -1
  8. package/esm2020/lib/components/option/option.component.mjs +32 -14
  9. package/esm2020/lib/components/page/page.component.mjs +9 -36
  10. package/esm2020/lib/components/search/search.component.mjs +10 -5
  11. package/esm2020/lib/components/select/select.component.mjs +33 -134
  12. package/esm2020/lib/components/select-common/select-common.component.mjs +135 -0
  13. package/esm2020/lib/components/select-internal/select-internal.component.mjs +47 -0
  14. package/esm2020/lib/components/select-lite/select-lite.component.mjs +13 -0
  15. package/esm2020/lib/components/steps/steps.component.mjs +33 -59
  16. package/esm2020/lib/components/suffix/suffix.component.mjs +71 -0
  17. package/esm2020/lib/components/table/detailsDialog.component.mjs +15 -11
  18. package/esm2020/lib/components/table/table.component.mjs +27 -62
  19. package/esm2020/lib/components/table-header/table-header.component.mjs +8 -6
  20. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +18 -12
  21. package/esm2020/lib/components/table-internal/table-internal.component.mjs +31 -63
  22. package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +243 -0
  23. package/esm2020/lib/components/table-lite/table-lite.component.mjs +390 -0
  24. package/esm2020/lib/components/table-row/table-row.component.mjs +18 -4
  25. package/esm2020/lib/components/text/text.component.mjs +28 -36
  26. package/esm2020/lib/components/tiles/tiles.component.mjs +7 -2
  27. package/esm2020/lib/components/viewer/viewer.component.mjs +7 -3
  28. package/esm2020/lib/modules/admin/admin-routing.module.mjs +5 -1
  29. package/esm2020/lib/pages/accounts/accountDialog.component.mjs +1 -1
  30. package/esm2020/lib/pages/approvals/approvals.component.mjs +61 -0
  31. package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +89 -0
  32. package/esm2020/lib/pages/change-password/change-password.component.mjs +1 -1
  33. package/esm2020/lib/pages/create-account/create-account.component.mjs +1 -1
  34. package/esm2020/lib/pages/customers/customers.component.mjs +8 -8
  35. package/esm2020/lib/pages/departments/departments.component.mjs +1 -1
  36. package/esm2020/lib/pages/employees/employees.component.mjs +1 -1
  37. package/esm2020/lib/pages/inventory/inventory.component.mjs +1 -1
  38. package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +1 -1
  39. package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +11 -10
  40. package/esm2020/lib/pages/login/login.component.mjs +1 -1
  41. package/esm2020/lib/pages/logs/logs.component.mjs +21 -22
  42. package/esm2020/lib/pages/membership/membership.component.mjs +15 -19
  43. package/esm2020/lib/pages/plans/plans.component.mjs +16 -19
  44. package/esm2020/lib/pages/positions/positions.component.mjs +3 -3
  45. package/esm2020/lib/pages/profile/profile.component.mjs +1 -1
  46. package/esm2020/lib/pages/recover-account/recover-account.component.mjs +1 -1
  47. package/esm2020/lib/pages/roles/addRoleDialog.component.mjs +2 -2
  48. package/esm2020/lib/pages/roles/roles.component.mjs +2 -2
  49. package/esm2020/lib/pages/signup/signup.component.mjs +1 -1
  50. package/esm2020/lib/pages/suppliers/suppliers.component.mjs +9 -9
  51. package/esm2020/lib/pages/tasks/tasks.component.mjs +9 -9
  52. package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +99 -71
  53. package/esm2020/lib/pages/tenants/tenants.component.mjs +8 -8
  54. package/esm2020/lib/pages/transactions/transactDialog.component.mjs +1 -1
  55. package/esm2020/lib/pages/transactions/transactions.component.mjs +1 -1
  56. package/esm2020/lib/pages/users/users.component.mjs +114 -92
  57. package/esm2020/lib/pages/welcome/welcome.component.mjs +8 -8
  58. package/esm2020/lib/select-context.directive.mjs +23 -0
  59. package/esm2020/lib/services/button.service.mjs +5 -6
  60. package/esm2020/lib/services/datalib.service.mjs +26 -15
  61. package/esm2020/lib/services/dialog.service.mjs +12 -1
  62. package/esm2020/lib/services/table-config.service.mjs +7 -3
  63. package/esm2020/lib/tin-spa.module.mjs +16 -9
  64. package/fesm2015/tin-spa.mjs +2867 -2017
  65. package/fesm2015/tin-spa.mjs.map +1 -1
  66. package/fesm2020/tin-spa.mjs +2881 -2030
  67. package/fesm2020/tin-spa.mjs.map +1 -1
  68. package/lib/classes/Classes.d.ts +18 -6
  69. package/lib/classes/TinCore.d.ts +1 -0
  70. package/lib/components/email/email.component.d.ts +4 -3
  71. package/lib/components/form/form.component.d.ts +4 -3
  72. package/lib/components/option/option.component.d.ts +8 -2
  73. package/lib/components/page/page.component.d.ts +2 -4
  74. package/lib/components/search/search.component.d.ts +3 -1
  75. package/lib/components/select/select.component.d.ts +9 -36
  76. package/lib/components/select-common/select-common.component.d.ts +42 -0
  77. package/lib/components/select-internal/select-internal.component.d.ts +17 -0
  78. package/lib/components/select-lite/select-lite.component.d.ts +6 -0
  79. package/lib/components/steps/steps.component.d.ts +9 -9
  80. package/lib/components/suffix/suffix.component.d.ts +23 -0
  81. package/lib/components/table/detailsDialog.component.d.ts +3 -2
  82. package/lib/components/table/table.component.d.ts +3 -2
  83. package/lib/components/table-header/table-header.component.d.ts +2 -1
  84. package/lib/components/table-internal/detailsDialog-internal.component.d.ts +3 -2
  85. package/lib/components/table-internal/table-internal.component.d.ts +3 -2
  86. package/lib/components/table-lite/detailsDialog-lite.component.d.ts +65 -0
  87. package/lib/components/table-lite/table-lite.component.d.ts +87 -0
  88. package/lib/components/table-row/table-row.component.d.ts +2 -0
  89. package/lib/components/text/text.component.d.ts +7 -7
  90. package/lib/components/tiles/tiles.component.d.ts +2 -1
  91. package/lib/pages/approvals/approvals.component.d.ts +11 -0
  92. package/lib/pages/approvals-config/approvals-config.component.d.ts +14 -0
  93. package/lib/pages/invitations-table/invitations-table.component.d.ts +1 -1
  94. package/lib/pages/logs/logs.component.d.ts +2 -6
  95. package/lib/pages/membership/membership.component.d.ts +2 -6
  96. package/lib/pages/plans/plans.component.d.ts +2 -6
  97. package/lib/pages/suppliers/suppliers.component.d.ts +1 -1
  98. package/lib/pages/tasks/tasks.component.d.ts +1 -1
  99. package/lib/pages/tenant-settings/tenant-settings.component.d.ts +10 -7
  100. package/lib/pages/tenants/tenants.component.d.ts +1 -1
  101. package/lib/pages/users/users.component.d.ts +8 -16
  102. package/lib/select-context.directive.d.ts +10 -0
  103. package/lib/services/button.service.d.ts +0 -1
  104. package/lib/services/datalib.service.d.ts +3 -1
  105. package/lib/services/table-config.service.d.ts +1 -1
  106. package/lib/tin-spa.module.d.ts +41 -34
  107. package/package.json +1 -1
  108. package/esm2020/lib/pages/invitations/invitations.component.mjs +0 -14
  109. package/esm2020/lib/pages/tenant-settings/inviteDialog.component.mjs +0 -60
  110. package/lib/pages/invitations/invitations.component.d.ts +0 -8
  111. package/lib/pages/tenant-settings/inviteDialog.component.d.ts +0 -28
@@ -1,5 +1,4 @@
1
- import { Component, ViewChild } from "@angular/core";
2
- import { MatTableDataSource } from "@angular/material/table";
1
+ import { Component } from "@angular/core";
3
2
  import * as i0 from "@angular/core";
4
3
  import * as i1 from "../../services/http.service";
5
4
  import * as i2 from "@angular/router";
@@ -7,13 +6,7 @@ import * as i3 from "../../services/auth.service";
7
6
  import * as i4 from "../../services/datalib.service";
8
7
  import * as i5 from "@angular/material/dialog";
9
8
  import * as i6 from "../../services/message.service";
10
- import * as i7 from "@angular/common";
11
- import * as i8 from "@angular/material/table";
12
- import * as i9 from "@angular/material/paginator";
13
- import * as i10 from "@angular/material/button";
14
- import * as i11 from "@angular/material/icon";
15
- import * as i12 from "@angular/material/tooltip";
16
- import * as i13 from "../../components/filter/filter.component";
9
+ import * as i7 from "../../components/table/table.component";
17
10
  export class UsersComponent {
18
11
  constructor(httpService, router, authService, dataService, dialog, messageService) {
19
12
  this.httpService = httpService;
@@ -22,97 +15,126 @@ export class UsersComponent {
22
15
  this.dataService = dataService;
23
16
  this.dialog = dialog;
24
17
  this.messageService = messageService;
25
- this.isProcessing = false;
26
- this._filterText = "";
27
- this.displayedColumns = ["userName", "fullName", "roleName", "locked", "dateCreated", "Action"];
18
+ this.userBaseFormConfig = {
19
+ fields: [
20
+ { name: 'userName', type: 'text', alias: 'Username', required: true, span: true, readonly: true },
21
+ { name: 'authType', type: 'select', alias: 'Authentication Type', readonly: true, span: true, required: true, defaultFirstValue: true },
22
+ {
23
+ name: 'firstName', type: 'text', required: true,
24
+ readonlyCondition: x => x.authType !== 'local',
25
+ },
26
+ {
27
+ name: 'lastName', type: 'text', required: true,
28
+ readonlyCondition: x => x.authType !== 'local',
29
+ },
30
+ {
31
+ name: 'password', type: 'password', required: true,
32
+ hiddenCondition: x => x.authType !== 'local', span: true,
33
+ },
34
+ {
35
+ name: 'confirmPassword', type: 'password', required: true,
36
+ hiddenCondition: x => x.authType !== 'local', span: true
37
+ },
38
+ { name: 'email', type: 'text', required: false, span: true },
39
+ { name: 'roleID', type: 'select', alias: 'Role', required: true, span: true, defaultFirstValue: true },
40
+ ],
41
+ };
42
+ this.createDialog = {
43
+ formConfig: {
44
+ ...this.userBaseFormConfig,
45
+ title: 'User',
46
+ // fields: this.userBaseFormConfig.fields.filter(x => x.name !== 'userName' && x.name !== 'authType' && x.name !== 'email')
47
+ },
48
+ mode: 'create',
49
+ buttons: [
50
+ { name: 'create', action: { method: 'post', url: 'User/register', successMessage: "User Created" } }
51
+ ]
52
+ };
53
+ this.editDialog = {
54
+ formConfig: {
55
+ ...this.userBaseFormConfig,
56
+ title: 'User',
57
+ fields: this.userBaseFormConfig.fields.filter(x => x.name !== 'password' && x.name !== 'confirmPassword')
58
+ },
59
+ mode: 'view',
60
+ buttons: [
61
+ { name: 'edit', action: { method: 'post', url: 'User/edit', successMessage: "User Updated" } }
62
+ ]
63
+ };
64
+ this.passwordDialog = {
65
+ formConfig: {
66
+ ...this.userBaseFormConfig,
67
+ title: 'Change Password',
68
+ fixedTitle: true,
69
+ alertMessages: { messages: [
70
+ { type: 'info', content: '*Please consider these requirements for your new password.' },
71
+ { type: 'info', content: 'At least 8 characters.' },
72
+ { type: 'info', content: 'At least 1 uppercase letter' },
73
+ { type: 'info', content: 'At least 2 lowercase letters (a-z)' },
74
+ { type: 'info', content: 'At least 1 digit (0-9)' },
75
+ { type: 'info', content: ' At least 1 special character (~`! …)' },
76
+ ] },
77
+ fields: [
78
+ { name: 'newPassword', type: 'password', required: true },
79
+ { name: 'confirmPassword', type: 'password', required: true }
80
+ ]
81
+ },
82
+ mode: 'edit',
83
+ buttons: [
84
+ { name: 'edit', action: { method: 'post', url: 'User/changepassword-admin', successMessage: 'Password Changed' } }
85
+ ]
86
+ };
87
+ this.usersTableConfig = {
88
+ showFilter: true,
89
+ minButtons: ['fullName', 'roleName'],
90
+ greyOut: (value) => value.disabled == 1,
91
+ collapseButtons: true,
92
+ minColumns: ['userName', 'fullName', 'roleName', 'locked', 'dateCreated'],
93
+ columns: [
94
+ { name: 'userName', type: 'text' },
95
+ { name: 'fullName', type: 'text' },
96
+ { name: 'roleName', type: 'text' },
97
+ { name: 'locked', type: 'checkbox' },
98
+ { name: 'createdDate', type: 'date' },
99
+ ],
100
+ buttons: [
101
+ { name: 'create', display: 'New User', dialog: true, detailsConfig: this.createDialog },
102
+ { name: 'view', dialog: true, icon: { name: 'account_circle' }, detailsConfig: this.editDialog },
103
+ {
104
+ name: 'changePassword', display: 'Change Password', tip: 'Change Password', icon: { name: 'key' }, dialog: true, detailsConfig: this.passwordDialog,
105
+ visible: x => x.authType === 'local'
106
+ },
107
+ { name: 'lock', action: { method: 'post', url: 'User/lock', successMessage: "User locked" }, color: 'red', tip: 'lock', icon: { name: 'lock' },
108
+ visible: (value) => value.locked == 0
109
+ },
110
+ { name: 'unlock', action: { method: 'post', url: 'User/unlock', successMessage: "User Unlocked" }, color: 'green', tip: 'unlock', icon: { name: 'lock_open' },
111
+ visible: (value) => value.locked == 1
112
+ },
113
+ { name: 'delete', action: { method: 'post', url: 'User/delete', successMessage: "User Deleted" }, color: 'red' },
114
+ ],
115
+ loadAction: { url: 'User/all/x' },
116
+ };
28
117
  }
29
118
  ngOnInit() {
30
119
  this.authService.isAuthorised(this.dataService.capUsers.name);
31
- this.UpdateData();
120
+ this.loadMeta();
32
121
  }
33
- UpdateData() {
34
- this.dataService.GetUser().subscribe((apiResponse) => {
35
- this.usersRaw = apiResponse.data;
36
- this.users = new MatTableDataSource(apiResponse.data);
37
- this.users.paginator = this.usersPaginator;
38
- this.applyFilter(this._filterText);
39
- }, (error) => {
40
- this.isProcessing = false;
41
- this.messageService.toast(this.httpService.Error(error));
42
- });
43
- }
44
- applyFilter(filterValue) {
45
- this.users.filter = filterValue.trim().toLowerCase();
46
- }
47
- createAccount() {
48
- this.router.navigate(["home/admin/create-account"]);
49
- }
50
- viewProfile(user) {
51
- this.dataService.tmpProfileuserName = user.userName;
52
- this.router.navigate(["home/user/profile"]);
53
- }
54
- lock(u) {
55
- let login = { userName: u.userName, password: "Abcdef@123" };
56
- this.dataService.LockUser(login).subscribe((apiResponse) => {
57
- if (apiResponse.success) {
58
- this.messageService.toast("User Locked");
59
- this.UpdateData();
60
- }
61
- else {
62
- this.messageService.toast("Error: " + apiResponse);
63
- }
64
- });
65
- }
66
- unlock(u) {
67
- let login = { userName: u.userName, password: "Abcdef@123" };
68
- this.dataService.UnlockUser(login).subscribe((apiResponse) => {
69
- if (apiResponse.success) {
70
- this.messageService.toast("User Unlocked");
71
- this.UpdateData();
72
- }
73
- else {
74
- this.messageService.toast("Error: " + apiResponse);
75
- }
76
- });
77
- }
78
- recover(u) {
79
- this.dataService.SelfReset(u).subscribe((apiResponse) => {
80
- if (apiResponse.message == "success") {
81
- this.messageService.toast("The password has been sent on email");
82
- }
83
- else {
84
- this.messageService.toast("Error: " + apiResponse.message);
85
- }
86
- });
122
+ inputChanged(x) {
123
+ console.log(x);
87
124
  }
88
- deleteUser(user) {
89
- this.messageService.confirm(`Delete ${user.userName} ?`).subscribe((result) => {
90
- if (result == "yes") {
91
- this.isProcessing = true;
92
- this.dataService.DeleteUser(user).subscribe((apiResponse) => {
93
- this.isProcessing = false;
94
- if (apiResponse.message == "success") {
95
- this.messageService.toast("User Deleted");
96
- this.UpdateData();
97
- }
98
- else {
99
- this.messageService.toast("Error: " + apiResponse.message);
100
- }
101
- }, (error) => {
102
- this.messageService.toast("Connection failed ");
103
- this.isProcessing = false;
104
- });
105
- }
125
+ loadMeta() {
126
+ this.dataService.CallApi({ url: 'role/meta/x' }).subscribe((apiResponse) => {
127
+ console.log(apiResponse.data);
128
+ this.userBaseFormConfig.fields.find(x => x.name == 'roleID').options = apiResponse.data.roles;
129
+ this.userBaseFormConfig.fields.find(x => x.name == 'authType').options = apiResponse.data.authTypes;
130
+ this.createDialog.formConfig.fields.find(x => x.name == 'authType').options = apiResponse.data.authTypes.filter(x => x.value == 'local' || x.value == 'AD');
106
131
  });
107
132
  }
108
133
  }
109
134
  UsersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UsersComponent, deps: [{ token: i1.HttpService }, { token: i2.Router }, { token: i3.AuthService }, { token: i4.DataServiceLib }, { token: i5.MatDialog }, { token: i6.MessageService }], target: i0.ɵɵFactoryTarget.Component });
110
- UsersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: UsersComponent, selector: "spa-users", viewQueries: [{ propertyName: "usersPaginator", first: true, predicate: ["usersPaginator"], descendants: true }], ngImport: i0, template: "\r\n<h4>Users</h4>\r\n<hr />\r\n\r\n<div class=\"container-fluid\" style=\"font-size: 14px;\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px\">\r\n <div class=\"col-2\">\r\n <button id=\"btnCreateAccount\" mat-raised-button color=\"primary\" (click)=\"createAccount()\">Create User</button>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-end\">\r\n <spa-filter [data]=\"users\" (refreshClick)=\"UpdateData()\"></spa-filter>\r\n </div>\r\n </div>\r\n\r\n\r\n <p *ngIf=\"!users\"><em>Loading...</em></p>\r\n\r\n\r\n <div class=\"mat-elevation-z8\" *ngIf=\"users\">\r\n\r\n <table id=\"tblTable\" mat-table [dataSource]=\"users\">\r\n\r\n <ng-container matColumnDef=\"userName\">\r\n <th mat-header-cell *matHeaderCellDef> UserName </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.userName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"locked\">\r\n <th mat-header-cell *matHeaderCellDef> Locked </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.locked}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"fullName\">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.firstName}} {{user.lastName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"roleName\">\r\n <th mat-header-cell *matHeaderCellDef> Role </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.role.roleName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"disabled\">\r\n <th mat-header-cell *matHeaderCellDef> Disabled </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.disabled}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"dateCreated\">\r\n <th mat-header-cell *matHeaderCellDef> Created </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.createdDate | date: 'dd/MM/yyyy'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"dateUpdated\">\r\n <th mat-header-cell *matHeaderCellDef> Updated </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.updatedDate | date: 'dd/MM/yyyy'}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"Action\">\r\n <th mat-header-cell *matHeaderCellDef> Action </th>\r\n <td mat-cell *matCellDef=\"let user\" style=\"width: 250px;\">\r\n\r\n <button mat-mini-fab color=\"primary\" (click)=\"viewProfile(user)\" style=\"margin-right:30px\" matTooltip=\"View Profile\" matTooltipPosition=\"above\"> <mat-icon>account_circle</mat-icon></button>\r\n\r\n <button *ngIf=\"user.locked=='0'\" mat-mini-fab color=\"warn\" (click)=\"lock(user)\" style=\"margin-right:10px\" matTooltip=\"Lock\" matTooltipPosition=\"above\"> <mat-icon>lock</mat-icon></button>\r\n <button *ngIf=\"user.locked=='1'\" mat-mini-fab (click)=\"unlock(user)\" style=\"margin-right:10px; background-color: green;\" matTooltip=\"Unlock\" matTooltipPosition=\"above\"> <mat-icon >lock_open</mat-icon></button>\r\n\r\n <!-- <button *ngIf=\"user.disabled=='0'\" mat-mini-fab color=\"warn\" (click)=\"disable(user)\" style=\"margin-right:10px\" matTooltip=\"Disable\" matTooltipPosition=\"above\"> <mat-icon>block</mat-icon></button>\r\n <button *ngIf=\"user.disabled=='1'\" mat-mini-fab (click)=\"enable(user)\" style=\"margin-right:10px; background-color: green\" matTooltip=\"Enable\" matTooltipPosition=\"above\"> <mat-icon>done</mat-icon></button> -->\r\n\r\n <button mat-mini-fab color=\"warn\" (click)=\"deleteUser(user)\" style=\"margin-right:10px\" matTooltip=\"Delete\" matTooltipPosition=\"above\"> <mat-icon>delete</mat-icon></button>\r\n <!-- <button mat-mini-fab color=\"primary\" (click)=\"recover(user)\" style=\"margin-right:10px\" matTooltip=\"Reset Password\" matTooltipPosition=\"above\"> <mat-icon>vpn_key</mat-icon></button> -->\r\n\r\n\r\n\r\n </td>\r\n </ng-container>\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" [ngClass]=\"{'make-gray': row.disabled =='1'}\"></tr>\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #usersPaginator [pageSizeOptions]=\"[10, 20, 50]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n<!-- ------------------ -->\r\n\r\n<!-- <div class=\"container mt-5\" style=\" font-size: 14px;\">\r\n<spa-table [data]=\"usersRaw\" [config]=\"config\" (refreshClick)=\"UpdateData()\" (viewClick)=\"viewProfile($event)\" (createClick)=\"createAccount()\" (deleteClick)=\"deleteUser($event)\"></spa-table>\r\n</div> -->\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i9.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i13.FilterComponent, selector: "spa-filter", inputs: ["flatButtons", "showText", "showButton", "data"], outputs: ["refreshClick"] }, { kind: "pipe", type: i7.DatePipe, name: "date" }] });
135
+ UsersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: UsersComponent, selector: "spa-users", ngImport: i0, template: "\r\n<h4>Users</h4>\r\n<hr />\r\n\r\n<spa-table [config]=\"usersTableConfig\" (inputChange)=\"inputChanged($event)\"></spa-table>\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}\n"], dependencies: [{ kind: "component", type: i7.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "tileData", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }] });
111
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UsersComponent, decorators: [{
112
137
  type: Component,
113
- args: [{ selector: "spa-users", template: "\r\n<h4>Users</h4>\r\n<hr />\r\n\r\n<div class=\"container-fluid\" style=\"font-size: 14px;\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px\">\r\n <div class=\"col-2\">\r\n <button id=\"btnCreateAccount\" mat-raised-button color=\"primary\" (click)=\"createAccount()\">Create User</button>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-end\">\r\n <spa-filter [data]=\"users\" (refreshClick)=\"UpdateData()\"></spa-filter>\r\n </div>\r\n </div>\r\n\r\n\r\n <p *ngIf=\"!users\"><em>Loading...</em></p>\r\n\r\n\r\n <div class=\"mat-elevation-z8\" *ngIf=\"users\">\r\n\r\n <table id=\"tblTable\" mat-table [dataSource]=\"users\">\r\n\r\n <ng-container matColumnDef=\"userName\">\r\n <th mat-header-cell *matHeaderCellDef> UserName </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.userName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"locked\">\r\n <th mat-header-cell *matHeaderCellDef> Locked </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.locked}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"fullName\">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.firstName}} {{user.lastName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"roleName\">\r\n <th mat-header-cell *matHeaderCellDef> Role </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.role.roleName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"disabled\">\r\n <th mat-header-cell *matHeaderCellDef> Disabled </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.disabled}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"dateCreated\">\r\n <th mat-header-cell *matHeaderCellDef> Created </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.createdDate | date: 'dd/MM/yyyy'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"dateUpdated\">\r\n <th mat-header-cell *matHeaderCellDef> Updated </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.updatedDate | date: 'dd/MM/yyyy'}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"Action\">\r\n <th mat-header-cell *matHeaderCellDef> Action </th>\r\n <td mat-cell *matCellDef=\"let user\" style=\"width: 250px;\">\r\n\r\n <button mat-mini-fab color=\"primary\" (click)=\"viewProfile(user)\" style=\"margin-right:30px\" matTooltip=\"View Profile\" matTooltipPosition=\"above\"> <mat-icon>account_circle</mat-icon></button>\r\n\r\n <button *ngIf=\"user.locked=='0'\" mat-mini-fab color=\"warn\" (click)=\"lock(user)\" style=\"margin-right:10px\" matTooltip=\"Lock\" matTooltipPosition=\"above\"> <mat-icon>lock</mat-icon></button>\r\n <button *ngIf=\"user.locked=='1'\" mat-mini-fab (click)=\"unlock(user)\" style=\"margin-right:10px; background-color: green;\" matTooltip=\"Unlock\" matTooltipPosition=\"above\"> <mat-icon >lock_open</mat-icon></button>\r\n\r\n <!-- <button *ngIf=\"user.disabled=='0'\" mat-mini-fab color=\"warn\" (click)=\"disable(user)\" style=\"margin-right:10px\" matTooltip=\"Disable\" matTooltipPosition=\"above\"> <mat-icon>block</mat-icon></button>\r\n <button *ngIf=\"user.disabled=='1'\" mat-mini-fab (click)=\"enable(user)\" style=\"margin-right:10px; background-color: green\" matTooltip=\"Enable\" matTooltipPosition=\"above\"> <mat-icon>done</mat-icon></button> -->\r\n\r\n <button mat-mini-fab color=\"warn\" (click)=\"deleteUser(user)\" style=\"margin-right:10px\" matTooltip=\"Delete\" matTooltipPosition=\"above\"> <mat-icon>delete</mat-icon></button>\r\n <!-- <button mat-mini-fab color=\"primary\" (click)=\"recover(user)\" style=\"margin-right:10px\" matTooltip=\"Reset Password\" matTooltipPosition=\"above\"> <mat-icon>vpn_key</mat-icon></button> -->\r\n\r\n\r\n\r\n </td>\r\n </ng-container>\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" [ngClass]=\"{'make-gray': row.disabled =='1'}\"></tr>\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #usersPaginator [pageSizeOptions]=\"[10, 20, 50]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n<!-- ------------------ -->\r\n\r\n<!-- <div class=\"container mt-5\" style=\" font-size: 14px;\">\r\n<spa-table [data]=\"usersRaw\" [config]=\"config\" (refreshClick)=\"UpdateData()\" (viewClick)=\"viewProfile($event)\" (createClick)=\"createAccount()\" (deleteClick)=\"deleteUser($event)\"></spa-table>\r\n</div> -->\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}\n"] }]
114
- }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.Router }, { type: i3.AuthService }, { type: i4.DataServiceLib }, { type: i5.MatDialog }, { type: i6.MessageService }]; }, propDecorators: { usersPaginator: [{
115
- type: ViewChild,
116
- args: ["usersPaginator"]
117
- }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3BhZ2VzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy91c2Vycy91c2Vycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFrQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQWdCN0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBb0IsV0FBd0IsRUFBUyxNQUFjLEVBQVUsV0FBd0IsRUFBVSxXQUEyQixFQUFTLE1BQWlCLEVBQVUsY0FBOEI7UUFBeEwsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTzVNLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBSWpCLHFCQUFnQixHQUFhLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQWQyRyxDQUFDO0lBRWpOLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQVdNLFVB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MkZEaEZhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVzttT0FhUSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGFibGVDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tIFwiLi4vLi4vY2xhc3Nlcy9MaWJDbGFzc2VzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJzcGEtdXNlcnNcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3VzZXJzLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3VzZXJzLmNvbXBvbmVudC5jc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2Vyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmlzQXV0aG9yaXNlZCh0aGlzLmRhdGFTZXJ2aWNlLmNhcFVzZXJzLm5hbWUpO1xyXG4gICAgdGhpcy5VcGRhdGVEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBpc1Byb2Nlc3Npbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKFwidXNlcnNQYWdpbmF0b3JcIikgdXNlcnNQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuXHJcbiAgX2ZpbHRlclRleHQgPSBcIlwiO1xyXG5cclxuICB1c2VycztcclxuICB1c2Vyc1JhdztcclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcInVzZXJOYW1lXCIsIFwiZnVsbE5hbWVcIiwgXCJyb2xlTmFtZVwiLCBcImxvY2tlZFwiLCBcImRhdGVDcmVhdGVkXCIsIFwiQWN0aW9uXCJdO1xyXG5cclxuICBwdWJsaWMgVXBkYXRlRGF0YSgpIHtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuR2V0VXNlcigpLnN1YnNjcmliZShcclxuICAgICAgKGFwaVJlc3BvbnNlKSA9PiB7XHJcblxyXG4gICAgICAgIHRoaXMudXNlcnNSYXcgPSBhcGlSZXNwb25zZS5kYXRhO1xyXG4gICAgICAgIHRoaXMudXNlcnMgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKGFwaVJlc3BvbnNlLmRhdGEpO1xyXG4gICAgICAgIHRoaXMudXNlcnMucGFnaW5hdG9yID0gdGhpcy51c2Vyc1BhZ2luYXRvcjtcclxuICAgICAgICB0aGlzLmFwcGx5RmlsdGVyKHRoaXMuX2ZpbHRlclRleHQpO1xyXG5cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHRoaXMuaHR0cFNlcnZpY2UuRXJyb3IoZXJyb3IpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFwcGx5RmlsdGVyKGZpbHRlclZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudXNlcnMuZmlsdGVyID0gZmlsdGVyVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVBY2NvdW50KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiaG9tZS9hZG1pbi9jcmVhdGUtYWNjb3VudFwiXSk7XHJcbiAgfVxyXG5cclxuICB2aWV3UHJvZmlsZSh1c2VyOiBVc2VyKSB7XHJcblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS50bXBQcm9maWxldXNlck5hbWUgPSB1c2VyLnVzZXJOYW1lO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiaG9tZS91c2VyL3Byb2ZpbGVcIl0pO1xyXG5cclxuICB9XHJcblxyXG4gIGxvY2sodSkge1xyXG4gICAgbGV0IGxvZ2luID0geyB1c2VyTmFtZTogdS51c2VyTmFtZSwgcGFzc3dvcmQ6IFwiQWJjZGVmQDEyM1wiIH1cclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkxvY2tVc2VyKGxvZ2luKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XHJcblxyXG4gICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJVc2VyIExvY2tlZFwiKTtcclxuICAgICAgICB0aGlzLlVwZGF0ZURhdGEoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVubG9jayh1KSB7XHJcbiAgICBsZXQgbG9naW4gPSB7IHVzZXJOYW1lOiB1LnVzZXJOYW1lLCBwYXNzd29yZDogXCJBYmNkZWZAMTIzXCIgfVxyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuVW5sb2NrVXNlcihsb2dpbikuc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiVXNlciBVbmxvY2tlZFwiKTtcclxuICAgICAgICB0aGlzLlVwZGF0ZURhdGEoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlY292ZXIodTogVXNlcikge1xyXG4gICAgdGhpcy5kYXRhU2VydmljZS5TZWxmUmVzZXQodSkuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGFwaVJlc3BvbnNlLm1lc3NhZ2UgPT0gXCJzdWNjZXNzXCIpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiVGhlIHBhc3N3b3JkIGhhcyBiZWVuIHNlbnQgb24gZW1haWxcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkVycm9yOiBcIiArIGFwaVJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBkZWxldGVVc2VyKHVzZXI6IFVzZXIpIHtcclxuXHJcblxyXG5cclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY29uZmlybShgRGVsZXRlICR7dXNlci51c2VyTmFtZX0gP2ApLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcblxyXG4gICAgICBpZiAocmVzdWx0ID09IFwieWVzXCIpIHtcclxuXHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuRGVsZXRlVXNlcih1c2VyKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICBpZiAoYXBpUmVzcG9uc2UubWVzc2FnZSA9PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJVc2VyIERlbGV0ZWRcIik7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuVXBkYXRlRGF0YSgpO1xyXG5cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkNvbm5lY3Rpb24gZmFpbGVkIFwiKTtcclxuICAgICAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC8vIGNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcbiAgLy8gICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gIC8vICAgbmV3VGV4dDogXCJDcmVhdGUgQWNjb3VudFwiLFxyXG4gIC8vICAgbWluQ29sdW1uczogWydmaXJzdE5hbWUnLCAnbGFzdE5hbWUnLCAncm9sZUlEJ10sXHJcblxyXG4gIC8vICAgY29sdW1uczogW1xyXG4gIC8vICAgICB7IG5hbWU6ICd1c2VyTmFtZScsIHR5cGU6ICd0ZXh0JywgaWNvbjogeyBuYW1lOiAncGVyc29uJywgY29sb3I6ICdncmVlbicsIHRpcDogJ25hbWUgZGVzYycgfSB9LFxyXG4gIC8vICAgICB7IG5hbWU6ICdmaXJzdE5hbWUnLCB0eXBlOiAndGV4dCcsfSxcclxuICAvLyAgICAgeyBuYW1lOiAnbGFzdE5hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAvLyAgICAgeyBuYW1lOiAncm9sZUlEJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgLy8gICAgIHsgbmFtZTogJ2xvY2tlZCcsIHR5cGU6ICdjaGVja2JveCcgfSxcclxuICAvLyAgICAgeyBuYW1lOiAnY3JlYXRlZERhdGUnLCB0eXBlOiAnZGF0ZScgfSxcclxuICAvLyAgIF0sXHJcblxyXG4gIC8vICAgYnV0dG9uczogW1xyXG4gIC8vICAgICB7IG5hbWU6J2NyZWF0ZScsIGRpc3BsYXk6J0NyZWF0ZSBBY2NvdW50JywgZGlhbG9nOiB0cnVlIH0sXHJcbiAgLy8gICAgIHsgbmFtZTogJ3ZpZXcnLCBkaWFsb2c6IHRydWUsIGljb246IHsgbmFtZTogJ2FjY291bnRfY2lyY2xlJ30gfSxcclxuICAvLyAgICAgeyBuYW1lOiAnY3VzdG9tMScsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci9sb2NrJywgc3VjY2Vzc01lc3NhZ2U6IFwiVXNlciBsb2NrZWRcIiB9LCBjb2xvcjoncmVkJywgdGlwOidsb2NrJywgaWNvbjogeyBuYW1lOiAnbG9jayd9LCB2aXNpYmxlOiAodmFsdWUpID0+IHZhbHVlLmxvY2tlZCA9PSAwfSxcclxuICAvLyAgICAgeyBuYW1lOiAnY3VzdG9tMicsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci91bmxvY2snLCBzdWNjZXNzTWVzc2FnZTogXCJVc2VyIFVubG9ja2VkXCIgfSwgY29sb3I6ICdncmVlbicsIHRpcDogJ3VubG9jaycsIGljb246IHsgbmFtZTogJ2xvY2tfb3BlbicgfSwgdmlzaWJsZTogKHZhbHVlKSA9PiB2YWx1ZS5sb2NrZWQgPT0gMSB9LFxyXG4gIC8vICAgICB7IG5hbWU6ICdkZWxldGUnIH0sXHJcbiAgLy8gICBdLFxyXG5cclxuICAvLyAgIGxvYWRBY3Rpb246IHsgdXJsOiAnVXNlci9hbGwveCcgfVxyXG5cclxuICAvLyB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcbiIsIlxyXG48aDQ+VXNlcnM8L2g0PlxyXG48aHIgLz5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiIHN0eWxlPVwicGFkZGluZy1ib3R0b206IDEwcHhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMlwiPlxyXG4gICAgICA8YnV0dG9uIGlkPVwiYnRuQ3JlYXRlQWNjb3VudFwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjcmVhdGVBY2NvdW50KClcIj5DcmVhdGUgVXNlcjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxzcGEtZmlsdGVyIFtkYXRhXT1cInVzZXJzXCIgKHJlZnJlc2hDbGljayk9XCJVcGRhdGVEYXRhKClcIj48L3NwYS1maWx0ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDxwICpuZ0lmPVwiIXVzZXJzXCI+PGVtPkxvYWRpbmcuLi48L2VtPjwvcD5cclxuXHJcblxyXG4gIDxkaXYgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCIgKm5nSWY9XCJ1c2Vyc1wiPlxyXG5cclxuICAgIDx0YWJsZSBpZD1cInRibFRhYmxlXCIgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInVzZXJzXCI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInVzZXJOYW1lXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gVXNlck5hbWUgPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgdXNlclwiPiB7e3VzZXIudXNlck5hbWV9fSA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibG9ja2VkXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTG9ja2VkIDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHVzZXJcIj4ge3t1c2VyLmxvY2tlZH19IDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmdWxsTmFtZVwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IE5hbWUgPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgdXNlclwiPiB7e3VzZXIuZmlyc3ROYW1lfX0ge3t1c2VyLmxhc3ROYW1lfX0gPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInJvbGVOYW1lXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gUm9sZSA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCB1c2VyXCI+IHt7dXNlci5yb2xlLnJvbGVOYW1lfX0gPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRGlzYWJsZWQgPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgdXNlclwiPiB7e3VzZXIuZGlzYWJsZWR9fSA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGF0ZUNyZWF0ZWRcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBDcmVhdGVkIDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHVzZXJcIj4ge3t1c2VyLmNyZWF0ZWREYXRlIHwgZGF0ZTogJ2RkL01NL3l5eXknfX0gPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRhdGVVcGRhdGVkXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gVXBkYXRlZCA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCB1c2VyXCI+IHt7dXNlci51cGRhdGVkRGF0ZSB8IGRhdGU6ICdkZC9NTS95eXl5J319IDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiQWN0aW9uXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9uIDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHVzZXJcIiBzdHlsZT1cIndpZHRoOiAyNTBweDtcIj5cclxuXHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwidmlld1Byb2ZpbGUodXNlcilcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDozMHB4XCIgbWF0VG9vbHRpcD1cIlZpZXcgUHJvZmlsZVwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+IDxtYXQtaWNvbj5hY2NvdW50X2NpcmNsZTwvbWF0LWljb24+PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInVzZXIubG9ja2VkPT0nMCdcIiBtYXQtbWluaS1mYWIgY29sb3I9XCJ3YXJuXCIgKGNsaWNrKT1cImxvY2sodXNlcilcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDoxMHB4XCIgbWF0VG9vbHRpcD1cIkxvY2tcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPiA8bWF0LWljb24+bG9jazwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidXNlci5sb2NrZWQ9PScxJ1wiIG1hdC1taW5pLWZhYiAgKGNsaWNrKT1cInVubG9jayh1c2VyKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjEwcHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuO1wiIG1hdFRvb2x0aXA9XCJVbmxvY2tcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPiA8bWF0LWljb24gPmxvY2tfb3BlbjwvbWF0LWljb24+PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPCEtLSA8YnV0dG9uICpuZ0lmPVwidXNlci5kaXNhYmxlZD09JzAnXCIgbWF0LW1pbmktZmFiIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJkaXNhYmxlKHVzZXIpXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MTBweFwiIG1hdFRvb2x0aXA9XCJEaXNhYmxlXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIj4gPG1hdC1pY29uPmJsb2NrPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJ1c2VyLmRpc2FibGVkPT0nMSdcIiBtYXQtbWluaS1mYWIgKGNsaWNrKT1cImVuYWJsZSh1c2VyKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjEwcHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuXCIgbWF0VG9vbHRpcD1cIkVuYWJsZVwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+IDxtYXQtaWNvbj5kb25lPC9tYXQtaWNvbj48L2J1dHRvbj4gLS0+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgY29sb3I9XCJ3YXJuXCIgKGNsaWNrKT1cImRlbGV0ZVVzZXIodXNlcilcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDoxMHB4XCIgbWF0VG9vbHRpcD1cIkRlbGV0ZVwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+IDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPCEtLSA8YnV0dG9uIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwicmVjb3Zlcih1c2VyKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjEwcHhcIiBtYXRUb29sdGlwPVwiUmVzZXQgUGFzc3dvcmRcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPiA8bWF0LWljb24+dnBuX2tleTwvbWF0LWljb24+PC9idXR0b24+IC0tPlxyXG5cclxuXHJcblxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XHJcbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiIFtuZ0NsYXNzXT1cInsnbWFrZS1ncmF5Jzogcm93LmRpc2FibGVkID09JzEnfVwiPjwvdHI+XHJcblxyXG4gICAgPC90YWJsZT5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxtYXQtcGFnaW5hdG9yICN1c2Vyc1BhZ2luYXRvciBbcGFnZVNpemVPcHRpb25zXT1cIlsxMCwgMjAsIDUwXVwiIHNob3dGaXJzdExhc3RCdXR0b25zPjwvbWF0LXBhZ2luYXRvcj5cclxuPC9kaXY+XHJcblxyXG48IS0tIC0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cclxuXHJcbjwhLS0gPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtdC01XCIgc3R5bGU9XCIgZm9udC1zaXplOiAxNHB4O1wiPlxyXG48c3BhLXRhYmxlICBbZGF0YV09XCJ1c2Vyc1Jhd1wiIFtjb25maWddPVwiY29uZmlnXCIgKHJlZnJlc2hDbGljayk9XCJVcGRhdGVEYXRhKClcIiAodmlld0NsaWNrKT1cInZpZXdQcm9maWxlKCRldmVudClcIiAoY3JlYXRlQ2xpY2spPVwiY3JlYXRlQWNjb3VudCgpXCIgKGRlbGV0ZUNsaWNrKT1cImRlbGV0ZVVzZXIoJGV2ZW50KVwiPjwvc3BhLXRhYmxlPlxyXG48L2Rpdj4gLS0+XHJcblxyXG4iXX0=
138
+ args: [{ selector: "spa-users", template: "\r\n<h4>Users</h4>\r\n<hr />\r\n\r\n<spa-table [config]=\"usersTableConfig\" (inputChange)=\"inputChanged($event)\"></spa-table>\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}\n"] }]
139
+ }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.Router }, { type: i3.AuthService }, { type: i4.DataServiceLib }, { type: i5.MatDialog }, { type: i6.MessageService }]; } });
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3BhZ2VzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy91c2Vycy91c2Vycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBZ0JyRSxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFvQixXQUF3QixFQUFTLE1BQWMsRUFBVSxXQUF3QixFQUFVLFdBQTJCLEVBQVMsTUFBaUIsRUFBVSxjQUE4QjtRQUF4TCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF3QjVNLHVCQUFrQixHQUFlO1lBQy9CLE1BQU0sRUFBRTtnQkFDTixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxRQUFRLEVBQUcsSUFBSSxFQUFFO2dCQUNuRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFO2dCQUN2STtvQkFDRSxJQUFJLEVBQUUsV0FBVyxFQUFF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Q0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7UUFDOUosQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzsyR0F0QlUsY0FBYzsrRkFBZCxjQUFjLGlEQ2hCM0IsMElBTUE7MkZEVWEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJsZUNvbmZpZywgQXBpUmVzcG9uc2UsIEZvcm1Db25maWcsIEJ1dHRvbiwgRGV0YWlsc0RpYWxvZ0NvbmZpZyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2h0dHAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSBcIi4uLy4uL2NsYXNzZXMvTGliQ2xhc3Nlc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic3BhLXVzZXJzXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi91c2Vycy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi91c2Vycy5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSwgcHVibGljIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuaXNBdXRob3Jpc2VkKHRoaXMuZGF0YVNlcnZpY2UuY2FwVXNlcnMubmFtZSk7XHJcbiAgICB0aGlzLmxvYWRNZXRhKClcclxuICB9XHJcblxyXG5cclxuICBpbnB1dENoYW5nZWQoeCkge1xyXG4gICAgY29uc29sZS5sb2coeCk7XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZE1ldGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ3JvbGUvbWV0YS94JyB9KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgY29uc29sZS5sb2coYXBpUmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgIHRoaXMudXNlckJhc2VGb3JtQ29uZmlnLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09ICdyb2xlSUQnKS5vcHRpb25zID0gYXBpUmVzcG9uc2UuZGF0YS5yb2xlcztcclxuICAgICAgdGhpcy51c2VyQmFzZUZvcm1Db25maWcuZmllbGRzLmZpbmQoeCA9PiB4Lm5hbWUgPT0gJ2F1dGhUeXBlJykub3B0aW9ucyA9IGFwaVJlc3BvbnNlLmRhdGEuYXV0aFR5cGVzO1xyXG4gICAgICB0aGlzLmNyZWF0ZURpYWxvZy5mb3JtQ29uZmlnLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09ICdhdXRoVHlwZScpLm9wdGlvbnMgPSBhcGlSZXNwb25zZS5kYXRhLmF1dGhUeXBlcy5maWx0ZXIoeCA9PiB4LnZhbHVlID09ICdsb2NhbCcgfHwgeC52YWx1ZSA9PSAnQUQnKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgdXNlckJhc2VGb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ3VzZXJOYW1lJywgdHlwZTogJ3RleHQnLCBhbGlhczogJ1VzZXJuYW1lJywgcmVxdWlyZWQ6IHRydWUsIHNwYW4gOiB0cnVlLCByZWFkb25seSA6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnYXV0aFR5cGUnLCB0eXBlOiAnc2VsZWN0JywgYWxpYXM6ICdBdXRoZW50aWNhdGlvbiBUeXBlJywgcmVhZG9ubHk6IHRydWUsIHNwYW46IHRydWUsIHJlcXVpcmVkOiB0cnVlLCBkZWZhdWx0Rmlyc3RWYWx1ZTogdHJ1ZSB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2ZpcnN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgcmVhZG9ubHlDb25kaXRpb246IHggPT4geC5hdXRoVHlwZSAhPT0gJ2xvY2FsJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdsYXN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgcmVhZG9ubHlDb25kaXRpb246IHggPT4geC5hdXRoVHlwZSAhPT0gJ2xvY2FsJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdwYXNzd29yZCcsIHR5cGU6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGhpZGRlbkNvbmRpdGlvbjogeCA9PiB4LmF1dGhUeXBlICE9PSAnbG9jYWwnLCBzcGFuOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2NvbmZpcm1QYXNzd29yZCcsIHR5cGU6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGhpZGRlbkNvbmRpdGlvbjogeCA9PiB4LmF1dGhUeXBlICE9PSAnbG9jYWwnLCBzcGFuOiB0cnVlXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogZmFsc2UsIHNwYW46IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAncm9sZUlEJywgdHlwZTogJ3NlbGVjdCcsIGFsaWFzOiAnUm9sZScsIHJlcXVpcmVkOiB0cnVlLCAgc3BhbjogdHJ1ZSwgZGVmYXVsdEZpcnN0VmFsdWU6IHRydWUgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcblxyXG4gIGNyZWF0ZURpYWxvZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWc6IHtcclxuICAgICAgLi4udGhpcy51c2VyQmFzZUZvcm1Db25maWcsXHJcbiAgICAgIHRpdGxlOiAnVXNlcicsXHJcbiAgICAgIC8vIGZpZWxkczogdGhpcy51c2VyQmFzZUZvcm1Db25maWcuZmllbGRzLmZpbHRlcih4ID0+IHgubmFtZSAhPT0gJ3VzZXJOYW1lJyAmJiB4Lm5hbWUgIT09ICdhdXRoVHlwZScgJiYgeC5uYW1lICE9PSAnZW1haWwnKVxyXG4gICAgfSxcclxuICAgIG1vZGU6ICdjcmVhdGUnLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBhY3Rpb246IHsgbWV0aG9kOiAncG9zdCcsIHVybDogJ1VzZXIvcmVnaXN0ZXInLCBzdWNjZXNzTWVzc2FnZTogXCJVc2VyIENyZWF0ZWRcIiB9fVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgZWRpdERpYWxvZyA6IERldGFpbHNEaWFsb2dDb25maWcgPSB7XHJcbiAgICBmb3JtQ29uZmlnOiB7XHJcbiAgICAgIC4uLnRoaXMudXNlckJhc2VGb3JtQ29uZmlnLFxyXG4gICAgICB0aXRsZSA6ICdVc2VyJyxcclxuICAgICAgZmllbGRzIDogdGhpcy51c2VyQmFzZUZvcm1Db25maWcuZmllbGRzLmZpbHRlcih4ID0+IHgubmFtZSAhPT0gJ3Bhc3N3b3JkJyAmJiB4Lm5hbWUgIT09ICdjb25maXJtUGFzc3dvcmQnKVxyXG4gICAgfSxcclxuICAgIG1vZGU6ICd2aWV3JyxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci9lZGl0Jywgc3VjY2Vzc01lc3NhZ2U6IFwiVXNlciBVcGRhdGVkXCIgfSB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBwYXNzd29yZERpYWxvZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWc6IHtcclxuICAgICAgLi4udGhpcy51c2VyQmFzZUZvcm1Db25maWcsXHJcbiAgICAgIHRpdGxlIDogJ0NoYW5nZSBQYXNzd29yZCcsXHJcbiAgICAgIGZpeGVkVGl0bGU6IHRydWUsXHJcbiAgICAgIGFsZXJ0TWVzc2FnZXM6IHsgbWVzc2FnZXM6IFtcclxuICAgICAgICB7IHR5cGU6ICdpbmZvJywgY29udGVudDogJypQbGVhc2UgY29uc2lkZXIgdGhlc2UgcmVxdWlyZW1lbnRzIGZvciB5b3VyIG5ldyBwYXNzd29yZC4nIH0sXHJcbiAgICAgICAgeyB0eXBlOiAnaW5mbycsIGNvbnRlbnQ6ICdBdCBsZWFzdCA4IGNoYXJhY3RlcnMuJyB9LFxyXG4gICAgICAgIHsgdHlwZTogJ2luZm8nLCBjb250ZW50OiAnQXQgbGVhc3QgMSB1cHBlcmNhc2UgbGV0dGVyJyB9LFxyXG4gICAgICAgIHsgdHlwZTogJ2luZm8nLCBjb250ZW50OiAnQXQgbGVhc3QgMiBsb3dlcmNhc2UgbGV0dGVycyAoYS16KScgfSxcclxuICAgICAgICB7IHR5cGU6ICdpbmZvJywgY29udGVudDogJ0F0IGxlYXN0IDEgZGlnaXQgKDAtOSknIH0sXHJcbiAgICAgICAgeyB0eXBlOiAnaW5mbycsIGNvbnRlbnQ6ICcgQXQgbGVhc3QgMSBzcGVjaWFsIGNoYXJhY3RlciAofmAhIOKApiknIH0sXHJcbiAgICAgIF19LFxyXG4gICAgICBmaWVsZHM6IFtcclxuICAgICAgICB7IG5hbWU6ICduZXdQYXNzd29yZCcsIHR5cGU6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgICAgeyBuYW1lOiAnY29uZmlybVBhc3N3b3JkJywgdHlwZTogJ3Bhc3N3b3JkJywgIHJlcXVpcmVkOiB0cnVlIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIG1vZGU6ICdlZGl0JyxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci9jaGFuZ2VwYXNzd29yZC1hZG1pbicsIHN1Y2Nlc3NNZXNzYWdlOiAnUGFzc3dvcmQgQ2hhbmdlZCcgfSAgICB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICB1c2Vyc1RhYmxlQ29uZmlnIDogVGFibGVDb25maWcgPSB7XHJcbiAgICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gICAgbWluQnV0dG9uczogWydmdWxsTmFtZScsJ3JvbGVOYW1lJ10sXHJcbiAgICBncmV5T3V0IDogKHZhbHVlKSA9PiB2YWx1ZS5kaXNhYmxlZCA9PSAxLFxyXG4gICAgY29sbGFwc2VCdXR0b25zOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWyd1c2VyTmFtZScsICdmdWxsTmFtZScsICdyb2xlTmFtZScsICdsb2NrZWQnLCAnZGF0ZUNyZWF0ZWQnXSxcclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAndXNlck5hbWUnLCB0eXBlOiAndGV4dCd9LFxyXG4gICAgICB7IG5hbWU6ICdmdWxsTmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdyb2xlTmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdsb2NrZWQnLCB0eXBlOiAnY2hlY2tib3gnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZWREYXRlJywgdHlwZTogJ2RhdGUnIH0sXHJcbiAgICBdLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBkaXNwbGF5OiAnTmV3IFVzZXInLCBkaWFsb2c6IHRydWUsIGRldGFpbHNDb25maWcgOiB0aGlzLmNyZWF0ZURpYWxvZyAgfSxcclxuICAgICAgeyBuYW1lOiAndmlldycsIGRpYWxvZzogdHJ1ZSwgaWNvbjogeyBuYW1lOiAnYWNjb3VudF9jaXJjbGUnIH0sIGRldGFpbHNDb25maWc6IHRoaXMuZWRpdERpYWxvZyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2NoYW5nZVBhc3N3b3JkJywgZGlzcGxheTogJ0NoYW5nZSBQYXNzd29yZCcsIHRpcCA6ICdDaGFuZ2UgUGFzc3dvcmQnLCBpY29uOiB7IG5hbWU6ICdrZXknIH0sIGRpYWxvZzogdHJ1ZSwgZGV0YWlsc0NvbmZpZzogdGhpcy5wYXNzd29yZERpYWxvZyxcclxuICAgICAgICB2aXNpYmxlOiB4ID0+IHguYXV0aFR5cGUgPT09ICdsb2NhbCdcclxuICAgICAgfSxcclxuICAgICAgeyBuYW1lOiAnbG9jaycsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci9sb2NrJywgc3VjY2Vzc01lc3NhZ2U6IFwiVXNlciBsb2NrZWRcIiB9LCBjb2xvcjogJ3JlZCcsIHRpcDogJ2xvY2snLCBpY29uOiB7IG5hbWU6ICdsb2NrJyB9LFxyXG4gICAgICAgIHZpc2libGU6ICh2YWx1ZSkgPT4gdmFsdWUubG9ja2VkID09IDBcclxuICAgICAgfSxcclxuICAgICAgeyBuYW1lOiAndW5sb2NrJywgYWN0aW9uOiB7IG1ldGhvZDogJ3Bvc3QnLCB1cmw6ICdVc2VyL3VubG9jaycsIHN1Y2Nlc3NNZXNzYWdlOiBcIlVzZXIgVW5sb2NrZWRcIiB9LCBjb2xvcjogJ2dyZWVuJywgdGlwOiAndW5sb2NrJywgaWNvbjogeyBuYW1lOiAnbG9ja19vcGVuJyB9LFxyXG4gICAgICAgIHZpc2libGU6ICh2YWx1ZSkgPT4gdmFsdWUubG9ja2VkID09IDFcclxuICAgICAgfSxcclxuICAgICAgeyBuYW1lOiAnZGVsZXRlJywgYWN0aW9uOiB7IG1ldGhvZDogJ3Bvc3QnLCB1cmw6ICdVc2VyL2RlbGV0ZScsIHN1Y2Nlc3NNZXNzYWdlOiBcIlVzZXIgRGVsZXRlZFwiIH0sIGNvbG9yOiAncmVkJyB9LFxyXG4gICAgXSxcclxuICAgIGxvYWRBY3Rpb246IHsgdXJsOiAnVXNlci9hbGwveCcgfSxcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCJcclxuPGg0PlVzZXJzPC9oND5cclxuPGhyIC8+XHJcblxyXG48c3BhLXRhYmxlIFtjb25maWddPVwidXNlcnNUYWJsZUNvbmZpZ1wiIChpbnB1dENoYW5nZSk9XCJpbnB1dENoYW5nZWQoJGV2ZW50KVwiPjwvc3BhLXRhYmxlPlxyXG5cclxuIl19
@@ -26,10 +26,10 @@ export class WelcomeComponent {
26
26
  { name: 'owner', type: 'text', },
27
27
  ],
28
28
  buttons: [
29
- { name: 'accept', icon: { 'name': 'done', }, color: 'green', action: { url: 'tenant/members?action=accept', method: 'post', }, confirm: { message: 'Accept ?' }, disabled: (x) => x.accepted },
30
- { name: 'decline', icon: { 'name': 'close', }, color: 'red', action: { url: 'tenant/members?action=remove', method: 'post', }, confirm: { message: 'Decline ?' }, disabled: (x) => x.accepted },
29
+ { name: 'accept', icon: { 'name': 'done', }, color: 'green', action: { url: 'members/dto?action=accept', method: 'post', }, confirm: { message: 'Accept ?' }, disabled: (x) => x.accepted },
30
+ { name: 'decline', icon: { 'name': 'close', }, color: 'red', action: { url: 'members/dto?action=remove', method: 'post', }, confirm: { message: 'Decline ?' }, disabled: (x) => x.accepted },
31
31
  ],
32
- loadAction: { url: 'tenant/invitations/x' },
32
+ loadAction: { url: 'tenants/invitations/x' },
33
33
  };
34
34
  }
35
35
  ngOnInit() {
@@ -37,14 +37,14 @@ export class WelcomeComponent {
37
37
  this.authService.loggedUserFullName.subscribe(x => this.username = x);
38
38
  }
39
39
  loadMeta() {
40
- this.dataService.CallApi({ url: 'tenant/welcome_meta/x' }).subscribe((api) => {
40
+ this.dataService.CallApi({ url: 'tenants/welcome_meta/x' }).subscribe((api) => {
41
41
  this.invitations = api.data.invitations;
42
42
  this.own = api.data.own;
43
43
  this.myTenant = api.data.tenant;
44
44
  });
45
45
  }
46
46
  renameTenant() {
47
- this.dataService.CallApi({ url: 'tenant/tenants?action=rename', method: 'post' }, this.myTenant).subscribe((apiResponse) => {
47
+ this.dataService.CallApi({ url: 'tenants/dto?action=rename', method: 'post' }, this.myTenant).subscribe((apiResponse) => {
48
48
  if (apiResponse.success) {
49
49
  this.authService.updateTenantName(this.myTenant.name);
50
50
  }
@@ -69,7 +69,7 @@ export class WelcomeComponent {
69
69
  this.setWelcome();
70
70
  }
71
71
  setWelcome() {
72
- this.dataService.CallApi({ url: 'tenant/set_welcome/x' }).subscribe((api) => {
72
+ this.dataService.CallApi({ url: 'tenants/set_welcome/x' }).subscribe((api) => {
73
73
  this.home();
74
74
  });
75
75
  }
@@ -78,9 +78,9 @@ export class WelcomeComponent {
78
78
  }
79
79
  }
80
80
  WelcomeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WelcomeComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
81
- WelcomeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: WelcomeComponent, selector: "spa-welcome", ngImport: i0, template: "<label class=\"title\">Welcome, {{username}}</label>\n\n\n\n<!-- terms -->\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\n\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\n\n <br>\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\n</div>\n\n<!-- owner -->\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\n\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\n\n <div style=\"max-width: 400px;\">\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\n </div>\n\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\n\n</div>\n\n<!-- guest -->\n<div *ngIf=\"step=='hi' && !own\">\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\n</div>\n\n\n<!-- invitations -->\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\n\n <label class=\"subtitle text-muted\">You have been requested to join the following organisations. If you accept, you have the option to switch to that org now or stay in you org.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\n <spa-invitations-table></spa-invitations-table>\n\n</div>\n\n\n<!-- Actions -->\n<div class=\"mt-3\">\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\n</div>\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.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: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "copyContent", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i7.CheckComponent, selector: "spa-check", inputs: ["readonly", "display", "value", "infoMessage"], outputs: ["valueChange", "click", "check", "uncheck", "infoClick"] }, { kind: "component", type: i8.InvitationsTableComponent, selector: "spa-invitations-table" }] });
81
+ WelcomeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: WelcomeComponent, selector: "spa-welcome", ngImport: i0, template: "<label class=\"title\">Welcome, {{username}}</label>\n\n\n\n<!-- terms -->\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\n\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\n\n <br>\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\n</div>\n\n<!-- owner -->\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\n\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\n\n <div style=\"max-width: 400px;\">\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\n </div>\n\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\n\n</div>\n\n<!-- guest -->\n<div *ngIf=\"step=='hi' && !own\">\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\n</div>\n\n\n<!-- invitations -->\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\n\n <label class=\"subtitle text-muted\">You have been requested to join the following organisations. If you accept, you have the option to switch to that org now or stay in you org.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\n <spa-invitations-table></spa-invitations-table>\n\n</div>\n\n\n<!-- Actions -->\n<div class=\"mt-3\">\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\n</div>\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.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: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "copyContent", "clearContent", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i7.CheckComponent, selector: "spa-check", inputs: ["readonly", "display", "value", "infoMessage"], outputs: ["valueChange", "click", "check", "uncheck", "infoClick"] }, { kind: "component", type: i8.InvitationsTableComponent, selector: "spa-invitations-table" }] });
82
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WelcomeComponent, decorators: [{
83
83
  type: Component,
84
84
  args: [{ selector: 'spa-welcome', template: "<label class=\"title\">Welcome, {{username}}</label>\n\n\n\n<!-- terms -->\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\n\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\n\n <br>\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\n</div>\n\n<!-- owner -->\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\n\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\n\n <div style=\"max-width: 400px;\">\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\n </div>\n\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\n\n</div>\n\n<!-- guest -->\n<div *ngIf=\"step=='hi' && !own\">\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\n</div>\n\n\n<!-- invitations -->\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\n\n <label class=\"subtitle text-muted\">You have been requested to join the following organisations. If you accept, you have the option to switch to that org now or stay in you org.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\n <spa-invitations-table></spa-invitations-table>\n\n</div>\n\n\n<!-- Actions -->\n<div class=\"mt-3\">\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\n</div>\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}\n"] }]
85
85
  }], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.AuthService }]; } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VsY29tZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvcGFnZXMvd2VsY29tZS93ZWxjb21lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVVsRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW1CLFdBQTRCLEVBQVMsV0FBd0I7UUFBN0QsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFVaEYsU0FBSSxHQUFHLE9BQU8sQ0FBQTtRQUNkLFVBQUssR0FBRyxLQUFLLENBQUE7UUFDYixRQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUEwRHBCLG1CQUFjLEdBQWdCO1lBRTVCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLO1lBQzNDLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxDQUFDLFlBQVksQ0FBQztZQUMxQixVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1lBRWpDLE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUMzRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRzthQUNqQztZQUVELE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFB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R0FBRyxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMxRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7NkdBdEVVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG1EQ1Y3QixxM0RBZ0RBOzJGRHRDYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlQ29uZmlnLCBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtd2VsY29tZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dlbGNvbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dlbGNvbWUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWxjb21lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXJ2aWNlIDogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZE1ldGEoKTtcclxuXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZFVzZXJGdWxsTmFtZS5zdWJzY3JpYmUoeCA9PiB0aGlzLnVzZXJuYW1lID0geClcclxuICB9XHJcblxyXG4gIHVzZXJuYW1lO1xyXG5cclxuICBzdGVwID0gXCJ0ZXJtc1wiXHJcbiAgYWdyZWUgPSBmYWxzZVxyXG4gIG93biA9IHRydWU7XHJcbiAgaW52aXRhdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgbXlUZW5hbnRcclxuXHJcbiAgbG9hZE1ldGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDondGVuYW50L3dlbGNvbWVfbWV0YS94J30pLnN1YnNjcmliZSgoYXBpKSA9PiB7XHJcbiAgICAgIHRoaXMuaW52aXRhdGlvbnMgPSBhcGkuZGF0YS5pbnZpdGF0aW9ucztcclxuICAgICAgdGhpcy5vd24gPSBhcGkuZGF0YS5vd247XHJcbiAgICAgIHRoaXMubXlUZW5hbnQgPSBhcGkuZGF0YS50ZW5hbnQ7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVuYW1lVGVuYW50KCkge1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ3RlbmFudC90ZW5hbnRzP2FjdGlvbj1yZW5hbWUnLCBtZXRob2Q6ICdwb3N0JyB9LCB0aGlzLm15VGVuYW50KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZVRlbmFudE5hbWUodGhpcy5teVRlbmFudC5uYW1lKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5leHQoKXtcclxuXHJcbiAgICBpZiAodGhpcy5zdGVwID09ICd0ZXJtcycgJiYgdGhpcy5vd24pe1xyXG4gICAgICB0aGlzLnN0ZXAgPSBcIm5hbWVcIlxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnN0ZXAgPT0gXCJ0ZXJtc1wiICYmICF0aGlzLm93bikge1xyXG4gICAgICB0aGlzLnN0ZXAgPSBcImhpXCJcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5zdGVwID09IFwibmFtZVwiICYmIHRoaXMub3duKXtcclxuXHJcbiAgICAgIHRoaXMucmVuYW1lVGVuYW50KCk7XHJcbiAgICAgIGlmICh0aGlzLmludml0YXRpb25zID09IHRydWUpe1xyXG4gICAgICAgIHRoaXMuc3RlcCA9IFwiaW52aXRhdGlvbnNcIlxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuc2V0V2VsY29tZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0V2VsY29tZSgpIHtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ3RlbmFudC9zZXRfd2VsY29tZS94JyB9KS5zdWJzY3JpYmUoKGFwaSkgPT4ge1xyXG4gICAgICB0aGlzLmhvbWUoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBob21lKCl7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLk5hdmlnYXRlKCdob21lJyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgaW52VGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG5cclxuICAgIGdyZXlPdXQ6ICh2YWx1ZSkgPT4gdmFsdWUuYWNjZXB0ZWQgPT0gZmFsc2UsXHJcbiAgICBlbGV2YXRpb246ICdsb3cnLFxyXG4gICAgbWluQ29sdW1uczogWyd0ZW5hbnROYW1lJ10sXHJcbiAgICBtaW5CdXR0b25zOiBbJ2FjY2VwdCcsICdkZWNsaW5lJ10sXHJcblxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICd0ZW5hbnROYW1lJywgYWxpYXM6ICdPcmdhbmlzYXRpb24nLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnb3duZXInLCB0eXBlOiAndGV4dCcsIH0sXHJcbiAgICBdLFxyXG5cclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnYWNjZXB0JywgaWNvbjogeyAnbmFtZSc6ICdkb25lJywgfSwgY29sb3I6ICdncmVlbicsIGFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvbWVtYmVycz9hY3Rpb249YWNjZXB0JywgbWV0aG9kOiAncG9zdCcsIH0sIGNvbmZpcm06IHsgbWVzc2FnZTogJ0FjY2VwdCA/JyB9LCBkaXNhYmxlZDogKHgpID0+IHguYWNjZXB0ZWQgfSxcclxuICAgICAgeyBuYW1lOiAnZGVjbGluZScsIGljb246IHsgJ25hbWUnOiAnY2xvc2UnLCB9LCBjb2xvcjogJ3JlZCcsIGFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvbWVtYmVycz9hY3Rpb249cmVtb3ZlJywgbWV0aG9kOiAncG9zdCcsIH0sIGNvbmZpcm06IHsgbWVzc2FnZTogJ0RlY2xpbmUgPycgfSwgZGlzYWJsZWQ6ICh4KSA9PiB4LmFjY2VwdGVkIH0sXHJcbiAgICBdLFxyXG5cclxuICAgIGxvYWRBY3Rpb246IHsgdXJsOiAndGVuYW50L2ludml0YXRpb25zL3gnIH0sXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwidGl0bGVcIj5XZWxjb21lLCAge3t1c2VybmFtZX19PC9sYWJlbD5cblxuXG5cbjwhLS0gdGVybXMgLS0+XG48ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwic3RlcD09J3Rlcm1zJ1wiPlxuXG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWQgbWItMlwiID5XZSBjYXJlIGFib3V0IG91ciB1c2VycyBhbmQgYXJlIGRlZGljYXRlZCB0byBwcm90ZWN0aW5nIHlvdXIgZGF0YSBhbmQgcHJpdmFjeSAtXG4gICAgdGhhdHMgd2h5IHdlIHdhbnQgdG8gYmUgY2xlYXIgYWJvdXQgd2hhdCBkYXRhIHdlIGNvbGxlY3QgYW5kIGhvdyB3ZSB1c2UgaXQgdG8gaW1wcm92ZSB5b3VyIGV4cGVyaWVuY2UuPC9sYWJlbD5cblxuICA8YnI+XG4gIDxzcGEtY2hlY2sgZGlzcGxheT1cIkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBQcml2YWN5IFBvbGljeVwiIFsodmFsdWUpXT1cImFncmVlXCI+PC9zcGEtY2hlY2s+XG48L2Rpdj5cblxuPCEtLSBvd25lciAtLT5cbjxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJzdGVwPT0nbmFtZScgJiYgb3duXCI+XG5cbiAgPGxhYmVsIGNsYXNzPVwic3VidGl0bGUgdGV4dC1tdXRlZFwiIHN0eWxlPVwiIG1hcmdpbi1ib3R0b206IDIwcHg7XCI+VGhlIGZvbGxvdyBzdGVwcyB3aWxsIGd1aWRlIHlvdSB0byBjdXN0b21pc2UgeW91ciBhcHBsaWNhdGlvbi48L2xhYmVsPlxuXG4gIDxkaXYgc3R5bGU9XCJtYXgtd2lkdGg6IDQwMHB4O1wiPlxuICAgPHNwYS10ZXh0IGRpc3BsYXk9XCJPcmdhbmlzYXRpb24gTmFtZVwiIFsodmFsdWUpXT1cIm15VGVuYW50Lm5hbWVcIiA+PC9zcGEtdGV4dD5cbiAgPC9kaXY+XG5cbiAgPGxhYmVsIGNsYXNzPVwidGV4dC1tdXRlZFwiIHN0eWxlPVwiIGZvbnQtc2l6ZTogMTJweDtcIj5Zb3UgY2FuIGNoYW5nZSB0aGUgT3JnYW5pc2F0aW9uJ3MgbmFtZSB0byB5b3VyIHRlYW0gb3IgY29tcGFueSBuYW1lLjwvbGFiZWw+PGJyPlxuICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxMnB4O21hcmdpbi10b3A6IDEwcHg7XCI+VGhlIG5hbWUgY2FuIGJlIGNoYW5nZWQgbGF0ZXIuPC9sYWJlbD5cblxuPC9kaXY+XG5cbjwhLS0gZ3Vlc3QgLS0+XG48ZGl2ICpuZ0lmPVwic3RlcD09J2hpJyAmJiAhb3duXCI+XG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWRcIj5Zb3UgYXJlIG5vdyBzaWduZWQgaW4gdG8ge3tteVRlbmFudC5uYW1lfX0uPC9sYWJlbD5cbjwvZGl2PlxuXG5cbjwhLS0gaW52aXRhdGlvbnMgLS0+XG48ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwic3RlcD09J2ludml0YXRpb25zJyAmJiBvd25cIj5cblxuICA8bGFiZWwgY2xhc3M9XCJzdWJ0aXRsZSB0ZXh0LW11dGVkXCI+WW91IGhhdmUgYmVlbiByZXF1ZXN0ZWQgdG8gam9pbiB0aGUgZm9sbG93aW5nIG9yZ2FuaXNhdGlvbnMuIElmIHlvdSBhY2NlcHQsIHlvdSBoYXZlIHRoZSBvcHRpb24gdG8gc3dpdGNoIHRvIHRoYXQgb3JnIG5vdyBvciBzdGF5IGluIHlvdSBvcmcuPC9sYWJlbD48YnI+XG4gIDxsYWJlbCBjbGFzcz1cInRleHQtbXV0ZWRcIiBzdHlsZT1cIiBmb250LXNpemU6IDEycHg7bWFyZ2luLXRvcDogMTBweDtcIj5Zb3Ugd2lsbCBiZSBhYmxlIHRvIHN3aXRjaCBsYXRlci48L2xhYmVsPlxuICA8c3BhLWludml0YXRpb25zLXRhYmxlPjwvc3BhLWludml0YXRpb25zLXRhYmxlPlxuXG48L2Rpdj5cblxuXG48IS0tIEFjdGlvbnMgLS0+XG48ZGl2IGNsYXNzPVwibXQtM1wiPlxuICA8YnV0dG9uICBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFhZ3JlZVwiIChjbGljayk9XCJuZXh0KClcIj5OZXh0IDxtYXQtaWNvbj5hcnJvd19yaWdodF9hbHQ8L21hdC1pY29uPjwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VsY29tZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvcGFnZXMvd2VsY29tZS93ZWxjb21lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVVsRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW1CLFdBQTRCLEVBQVMsV0FBd0I7UUFBN0QsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFVaEYsU0FBSSxHQUFHLE9BQU8sQ0FBQTtRQUNkLFVBQUssR0FBRyxLQUFLLENBQUE7UUFDYixRQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUEwRHBCLG1CQUFjLEdBQWdCO1lBRTVCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLO1lBQzNDLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxDQUFDLFlBQVksQ0FBQztZQUMxQixVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1lBRWpDLE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUMzRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRzthQUNqQztZQUVELE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFB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R0FBRyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMzRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7NkdBdEVVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG1EQ1Y3QixxM0RBZ0RBOzJGRHRDYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlQ29uZmlnLCBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtd2VsY29tZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dlbGNvbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dlbGNvbWUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWxjb21lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXJ2aWNlIDogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZE1ldGEoKTtcclxuXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZFVzZXJGdWxsTmFtZS5zdWJzY3JpYmUoeCA9PiB0aGlzLnVzZXJuYW1lID0geClcclxuICB9XHJcblxyXG4gIHVzZXJuYW1lO1xyXG5cclxuICBzdGVwID0gXCJ0ZXJtc1wiXHJcbiAgYWdyZWUgPSBmYWxzZVxyXG4gIG93biA9IHRydWU7XHJcbiAgaW52aXRhdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgbXlUZW5hbnRcclxuXHJcbiAgbG9hZE1ldGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDondGVuYW50cy93ZWxjb21lX21ldGEveCd9KS5zdWJzY3JpYmUoKGFwaSkgPT4ge1xyXG4gICAgICB0aGlzLmludml0YXRpb25zID0gYXBpLmRhdGEuaW52aXRhdGlvbnM7XHJcbiAgICAgIHRoaXMub3duID0gYXBpLmRhdGEub3duO1xyXG4gICAgICB0aGlzLm15VGVuYW50ID0gYXBpLmRhdGEudGVuYW50O1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlbmFtZVRlbmFudCgpIHtcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoeyB1cmw6ICd0ZW5hbnRzL2R0bz9hY3Rpb249cmVuYW1lJywgbWV0aG9kOiAncG9zdCcgfSwgdGhpcy5teVRlbmFudCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS51cGRhdGVUZW5hbnROYW1lKHRoaXMubXlUZW5hbnQubmFtZSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZXh0KCl7XHJcblxyXG4gICAgaWYgKHRoaXMuc3RlcCA9PSAndGVybXMnICYmIHRoaXMub3duKXtcclxuICAgICAgdGhpcy5zdGVwID0gXCJuYW1lXCJcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5zdGVwID09IFwidGVybXNcIiAmJiAhdGhpcy5vd24pIHtcclxuICAgICAgdGhpcy5zdGVwID0gXCJoaVwiXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc3RlcCA9PSBcIm5hbWVcIiAmJiB0aGlzLm93bil7XHJcblxyXG4gICAgICB0aGlzLnJlbmFtZVRlbmFudCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnZpdGF0aW9ucyA9PSB0cnVlKXtcclxuICAgICAgICB0aGlzLnN0ZXAgPSBcImludml0YXRpb25zXCJcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLnNldFdlbGNvbWUoKTtcclxuICB9XHJcblxyXG4gIHNldFdlbGNvbWUoKSB7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoeyB1cmw6ICd0ZW5hbnRzL3NldF93ZWxjb21lL3gnIH0pLnN1YnNjcmliZSgoYXBpKSA9PiB7XHJcbiAgICAgIHRoaXMuaG9tZSgpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGhvbWUoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuTmF2aWdhdGUoJ2hvbWUnKTtcclxuICB9XHJcblxyXG5cclxuICBpbnZUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcblxyXG4gICAgZ3JleU91dDogKHZhbHVlKSA9PiB2YWx1ZS5hY2NlcHRlZCA9PSBmYWxzZSxcclxuICAgIGVsZXZhdGlvbjogJ2xvdycsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ3RlbmFudE5hbWUnXSxcclxuICAgIG1pbkJ1dHRvbnM6IFsnYWNjZXB0JywgJ2RlY2xpbmUnXSxcclxuXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ3RlbmFudE5hbWUnLCBhbGlhczogJ09yZ2FuaXNhdGlvbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdvd25lcicsIHR5cGU6ICd0ZXh0JywgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdhY2NlcHQnLCBpY29uOiB7ICduYW1lJzogJ2RvbmUnLCB9LCBjb2xvcjogJ2dyZWVuJywgYWN0aW9uOiB7IHVybDogJ21lbWJlcnMvZHRvP2FjdGlvbj1hY2NlcHQnLCBtZXRob2Q6ICdwb3N0JywgfSwgY29uZmlybTogeyBtZXNzYWdlOiAnQWNjZXB0ID8nIH0sIGRpc2FibGVkOiAoeCkgPT4geC5hY2NlcHRlZCB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWNsaW5lJywgaWNvbjogeyAnbmFtZSc6ICdjbG9zZScsIH0sIGNvbG9yOiAncmVkJywgYWN0aW9uOiB7IHVybDogJ21lbWJlcnMvZHRvP2FjdGlvbj1yZW1vdmUnLCBtZXRob2Q6ICdwb3N0JywgfSwgY29uZmlybTogeyBtZXNzYWdlOiAnRGVjbGluZSA/JyB9LCBkaXNhYmxlZDogKHgpID0+IHguYWNjZXB0ZWQgfSxcclxuICAgIF0sXHJcblxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICd0ZW5hbnRzL2ludml0YXRpb25zL3gnIH0sXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwidGl0bGVcIj5XZWxjb21lLCAge3t1c2VybmFtZX19PC9sYWJlbD5cblxuXG5cbjwhLS0gdGVybXMgLS0+XG48ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwic3RlcD09J3Rlcm1zJ1wiPlxuXG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWQgbWItMlwiID5XZSBjYXJlIGFib3V0IG91ciB1c2VycyBhbmQgYXJlIGRlZGljYXRlZCB0byBwcm90ZWN0aW5nIHlvdXIgZGF0YSBhbmQgcHJpdmFjeSAtXG4gICAgdGhhdHMgd2h5IHdlIHdhbnQgdG8gYmUgY2xlYXIgYWJvdXQgd2hhdCBkYXRhIHdlIGNvbGxlY3QgYW5kIGhvdyB3ZSB1c2UgaXQgdG8gaW1wcm92ZSB5b3VyIGV4cGVyaWVuY2UuPC9sYWJlbD5cblxuICA8YnI+XG4gIDxzcGEtY2hlY2sgZGlzcGxheT1cIkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBQcml2YWN5IFBvbGljeVwiIFsodmFsdWUpXT1cImFncmVlXCI+PC9zcGEtY2hlY2s+XG48L2Rpdj5cblxuPCEtLSBvd25lciAtLT5cbjxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJzdGVwPT0nbmFtZScgJiYgb3duXCI+XG5cbiAgPGxhYmVsIGNsYXNzPVwic3VidGl0bGUgdGV4dC1tdXRlZFwiIHN0eWxlPVwiIG1hcmdpbi1ib3R0b206IDIwcHg7XCI+VGhlIGZvbGxvdyBzdGVwcyB3aWxsIGd1aWRlIHlvdSB0byBjdXN0b21pc2UgeW91ciBhcHBsaWNhdGlvbi48L2xhYmVsPlxuXG4gIDxkaXYgc3R5bGU9XCJtYXgtd2lkdGg6IDQwMHB4O1wiPlxuICAgPHNwYS10ZXh0IGRpc3BsYXk9XCJPcmdhbmlzYXRpb24gTmFtZVwiIFsodmFsdWUpXT1cIm15VGVuYW50Lm5hbWVcIiA+PC9zcGEtdGV4dD5cbiAgPC9kaXY+XG5cbiAgPGxhYmVsIGNsYXNzPVwidGV4dC1tdXRlZFwiIHN0eWxlPVwiIGZvbnQtc2l6ZTogMTJweDtcIj5Zb3UgY2FuIGNoYW5nZSB0aGUgT3JnYW5pc2F0aW9uJ3MgbmFtZSB0byB5b3VyIHRlYW0gb3IgY29tcGFueSBuYW1lLjwvbGFiZWw+PGJyPlxuICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxMnB4O21hcmdpbi10b3A6IDEwcHg7XCI+VGhlIG5hbWUgY2FuIGJlIGNoYW5nZWQgbGF0ZXIuPC9sYWJlbD5cblxuPC9kaXY+XG5cbjwhLS0gZ3Vlc3QgLS0+XG48ZGl2ICpuZ0lmPVwic3RlcD09J2hpJyAmJiAhb3duXCI+XG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWRcIj5Zb3UgYXJlIG5vdyBzaWduZWQgaW4gdG8ge3tteVRlbmFudC5uYW1lfX0uPC9sYWJlbD5cbjwvZGl2PlxuXG5cbjwhLS0gaW52aXRhdGlvbnMgLS0+XG48ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwic3RlcD09J2ludml0YXRpb25zJyAmJiBvd25cIj5cblxuICA8bGFiZWwgY2xhc3M9XCJzdWJ0aXRsZSB0ZXh0LW11dGVkXCI+WW91IGhhdmUgYmVlbiByZXF1ZXN0ZWQgdG8gam9pbiB0aGUgZm9sbG93aW5nIG9yZ2FuaXNhdGlvbnMuIElmIHlvdSBhY2NlcHQsIHlvdSBoYXZlIHRoZSBvcHRpb24gdG8gc3dpdGNoIHRvIHRoYXQgb3JnIG5vdyBvciBzdGF5IGluIHlvdSBvcmcuPC9sYWJlbD48YnI+XG4gIDxsYWJlbCBjbGFzcz1cInRleHQtbXV0ZWRcIiBzdHlsZT1cIiBmb250LXNpemU6IDEycHg7bWFyZ2luLXRvcDogMTBweDtcIj5Zb3Ugd2lsbCBiZSBhYmxlIHRvIHN3aXRjaCBsYXRlci48L2xhYmVsPlxuICA8c3BhLWludml0YXRpb25zLXRhYmxlPjwvc3BhLWludml0YXRpb25zLXRhYmxlPlxuXG48L2Rpdj5cblxuXG48IS0tIEFjdGlvbnMgLS0+XG48ZGl2IGNsYXNzPVwibXQtM1wiPlxuICA8YnV0dG9uICBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFhZ3JlZVwiIChjbGljayk9XCJuZXh0KClcIj5OZXh0IDxtYXQtaWNvbj5hcnJvd19yaWdodF9hbHQ8L21hdC1pY29uPjwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SelectContextDirective {
4
+ constructor(templateRef, viewContainer) {
5
+ this.templateRef = templateRef;
6
+ this.viewContainer = viewContainer;
7
+ }
8
+ set selectContext(context) {
9
+ this.viewContainer.clear();
10
+ this.viewContainer.createEmbeddedView(this.templateRef, context);
11
+ }
12
+ }
13
+ SelectContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SelectContextDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
14
+ SelectContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: SelectContextDirective, selector: "[selectContext]", inputs: { selectContext: "selectContext" }, ngImport: i0 });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SelectContextDirective, decorators: [{
16
+ type: Directive,
17
+ args: [{
18
+ selector: '[selectContext]'
19
+ }]
20
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { selectContext: [{
21
+ type: Input
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3NlbGVjdC1jb250ZXh0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUMsTUFBTSxlQUFlLENBQUM7O0FBS2hGLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDVSxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQ3JDLENBQUM7SUFFTCxJQUFhLGFBQWEsQ0FBQyxPQUFZO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLENBQUM7O21IQVRVLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7aUlBT2MsYUFBYTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzZWxlY3RDb250ZXh0XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbnRleHREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxyXG4gICkgeyB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RDb250ZXh0KGNvbnRleHQ6IGFueSkge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYsIGNvbnRleHQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -14,7 +14,7 @@ export class ButtonService {
14
14
  };
15
15
  }
16
16
  getButtonColor(button, row) {
17
- if (this.isButtonDisabled(button, row))
17
+ if (this.testDisabled(button, row))
18
18
  return 'lightgray';
19
19
  if (button?.color)
20
20
  return button.color;
@@ -26,13 +26,10 @@ export class ButtonService {
26
26
  };
27
27
  return colorMap[button.name] || '#4050B5';
28
28
  }
29
- isButtonDisabled(button, row) {
30
- return button?.disabled ? button.disabled(row) : false;
31
- }
32
29
  isButtonVisible(button, row, isLoadComplete) {
33
30
  if (!isLoadComplete)
34
31
  return false;
35
- return button?.visible ? button.visible(row) : true;
32
+ return this.testVisible(button, row);
36
33
  }
37
34
  getTitleAction(mode, buttons) {
38
35
  const modeMap = {
@@ -52,6 +49,8 @@ export class ButtonService {
52
49
  return this.getDefaultIcon(button.name, config.flatButtons);
53
50
  }
54
51
  testDisabled(button, row) {
52
+ if ((button.name == 'edit' || button.name == "delete") && row.pendingApproval)
53
+ return true;
55
54
  return button.disabled ? button.disabled(row) : false;
56
55
  }
57
56
  testVisible(button, row) {
@@ -99,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
99
98
  providedIn: 'root'
100
99
  }]
101
100
  }] });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvc2VydmljZXMvYnV0dG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGFBQWE7SUFDeEIsU0FBUyxDQUFDLE9BQWlCLEVBQUUsSUFBWTtRQUN2QyxPQUFPLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBYyxFQUFFLEdBQVEsRUFBRSxNQUFtQjtRQU8vRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUN2QyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQ2xDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7WUFDeEMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUN0QyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSTtTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjLEVBQUUsR0FBUTtRQUNyQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1lBQUUsT0FBTyxXQUFXLENBQUM7UUFFM0QsSUFBSSxNQUFNLEVBQUUsS0FBSztZQUFFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUs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dCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnV0dG9uLCBUYWJsZUNvbmZpZyB9IGZyb20gJy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdXR0b25TZXJ2aWNlIHtcclxuICBnZXRCdXR0b24oYnV0dG9uczogQnV0dG9uW10sIG5hbWU6IHN0cmluZyk6IEJ1dHRvbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIGJ1dHRvbnM/LmZpbmQoeCA9PiB4Lm5hbWUgPT09IG5hbWUpIHx8IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRCdXR0b25Qcm9wZXJ0aWVzKGJ1dHRvbjogQnV0dG9uLCByb3c6IGFueSwgY29uZmlnOiBUYWJsZUNvbmZpZyk6IHtcclxuICAgIGNvbG9yOiBzdHJpbmcsXHJcbiAgICBpY29uOiBzdHJpbmcsXHJcbiAgICBkaXNhYmxlZDogYm9vbGVhbixcclxuICAgIHZpc2libGU6IGJvb2xlYW4sXHJcbiAgICB0aXA6IHN0cmluZ1xyXG4gIH0ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY29sb3I6IHRoaXMuZ2V0QnV0dG9uQ29sb3IoYnV0dG9uLCByb3cpLFxyXG4gICAgICBpY29uOiB0aGlzLmdldEljb24oYnV0dG9uLCBjb25maWcpLFxyXG4gICAgICBkaXNhYmxlZDogdGhpcy50ZXN0RGlzYWJsZWQoYnV0dG9uLCByb3cpLFxyXG4gICAgICB2aXNpYmxlOiB0aGlzLnRlc3RWaXNpYmxlKGJ1dHRvbiwgcm93KSxcclxuICAgICAgdGlwOiBidXR0b24udGlwIHx8IGJ1dHRvbi5uYW1lXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0QnV0dG9uQ29sb3IoYnV0dG9uOiBCdXR0b24sIHJvdzogYW55KTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmlzQnV0dG9uRGlzYWJsZWQoYnV0dG9uLCByb3cpKSByZXR1cm4gJ2xpZ2h0Z3JheSc7XHJcblxyXG4gICAgaWYgKGJ1dHRvbj8uY29sb3IpIHJldHVybiBidXR0b24uY29sb3I7XHJcbiAgICBpZiAoYnV0dG9uLmljb24/LmNvbG9yKSByZXR1cm4gYnV0dG9uLmljb24uY29sb3I7XHJcblxyXG4gICAgY29uc3QgY29sb3JNYXAgPSB7XHJcbiAgICAgICdkZWxldGUnOiAnI0Y0NDMzNicsXHJcbiAgICAgICdjcmVhdGUnOiAnZ3JlZW4nXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBjb2xvck1hcFtidXR0b24ubmFtZV0gfHwgJyM0MDUwQjUnO1xyXG4gIH1cclxuXHJcbiAgaXNCdXR0b25EaXNhYmxlZChidXR0b246IEJ1dHRvbiwgcm93OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBidXR0b24/LmRpc2FibGVkID8gYnV0dG9uLmRpc2FibGVkKHJvdykgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlzQnV0dG9uVmlzaWJsZShidXR0b246IEJ1dHRvbiwgcm93OiBhbnksIGlzTG9hZENvbXBsZXRlOiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWlzTG9hZENvbXBsZXRlKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gYnV0dG9uPy52aXNpYmxlID8gYnV0dG9uLnZpc2libGUocm93KSA6IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZUFjdGlvbihtb2RlOiBzdHJpbmcsIGJ1dHRvbnM6IEJ1dHRvbltdKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1vZGVNYXAgPSB7XHJcbiAgICAgICd2aWV3JzogJ1ZpZXcnLFxyXG4gICAgICAnZWRpdCc6IGJ1dHRvbnMuZmluZChiID0+IGIubmFtZSA9PT0gJ2VkaXQnKT8uZGlzcGxheSB8fCAnRWRpdCcsXHJcbiAgICAgICdjcmVhdGUnOiBidXR0b25zLmZpbmQoYiA9PiBiLm5hbWUgPT09ICdjcmVhdGUnKT8uZGlzcGxheSB8fCAnQ3JlYXRlJ1xyXG4gICAgfTtcclxuICAgIHJldHVybiBtb2RlTWFwW21vZGVdIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgaXNUYWJWaXNpYmxlKHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRhYmxlQ29uZmlnLmhpZGVUYWJDb25kaXRpb24gPyAhdGFibGVDb25maWcuaGlkZVRhYkNvbmRpdGlvbih0YWJsZUNvbmZpZy5wYXJlbnREYXRhKSA6IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRJY29uKGJ1dHRvbjogQnV0dG9uLCBjb25maWc6IFRhYmxlQ29uZmlnKTogc3RyaW5nIHtcclxuICAgIGlmIChidXR0b24uaWNvbikge1xyXG4gICAgICByZXR1cm4gYnV0dG9uLmljb24ubmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRJY29uKGJ1dHRvbi5uYW1lLCBjb25maWcuZmxhdEJ1dHRvbnMpO1xyXG4gIH1cclxuXHJcbiAgdGVzdERpc2FibGVkKGJ1dHRvbjogQnV0dG9uLCByb3c6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGJ1dHRvbi5kaXNhYmxlZCA/IGJ1dHRvbi5kaXNhYmxlZChyb3cpIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICB0ZXN0VmlzaWJsZShidXR0b246IEJ1dHRvbiwgcm93OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBidXR0b24udmlzaWJsZSA/IGJ1dHRvbi52aXNpYmxlKHJvdykgOiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREZWZhdWx0Q29sb3IoYnV0dG9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoYnV0dG9uTmFtZSkge1xyXG4gICAgICBjYXNlICdkZWxldGUnOiByZXR1cm4gJyNGNDQzMzYnO1xyXG4gICAgICBjYXNlICdjcmVhdGUnOiByZXR1cm4gJ2dyZWVuJztcclxuICAgICAgZGVmYXVsdDogcmV0dXJuICcjNDA1MEI1JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEljb24oYnV0dG9uTmFtZTogc3RyaW5nLCBmbGF0QnV0dG9uczogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKGJ1dHRvbk5hbWUpIHtcclxuICAgICAgY2FzZSAndmlldyc6XHJcbiAgICAgICAgcmV0dXJuIGZsYXRCdXR0b25zID8gJ29wZW5faW5fbmV3JyA6ICdwYWdldmlldyc7XHJcbiAgICAgIGNhc2UgJ2VkaXQnOiByZXR1cm4gJ2VkaXQnO1xyXG4gICAgICBjYXNlICdkZWxldGUnOiByZXR1cm4gJ2RlbGV0ZSc7XHJcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6IHJldHVybiAnYWRkJztcclxuICAgICAgZGVmYXVsdDogcmV0dXJuICdtb3JlX2hvcml6JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENyZWF0ZUJ1dHRvbihidXR0b25zOiBCdXR0b25bXSk6IEJ1dHRvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gYnV0dG9ucz8uZmluZChidXR0b24gPT4gYnV0dG9uPy5uYW1lID09PSAnY3JlYXRlJyk7XHJcbiAgfVxyXG5cclxuICBnZXREaXNwbGF5ZWRCdXR0b25zKGJ1dHRvbnM6IEJ1dHRvbltdLCBpc1NtYWxsU2NyZWVuOiBib29sZWFuLCBtaW5CdXR0b25zPzogc3RyaW5nW10pOiBCdXR0b25bXSB7XHJcbiAgICBjb25zdCBub25DcmVhdGVCdXR0b25zID0gYnV0dG9ucz8uZmlsdGVyKHggPT4geC5uYW1lICE9PSAnY3JlYXRlJyAmJiAheC5pbkhlYWRlcik7XHJcblxyXG4gICAgaWYgKGlzU21hbGxTY3JlZW4pIHtcclxuICAgICAgaWYgKG1pbkJ1dHRvbnMpIHtcclxuICAgICAgICByZXR1cm4gbm9uQ3JlYXRlQnV0dG9ucy5maWx0ZXIoeCA9PiBtaW5CdXR0b25zLmluY2x1ZGVzKHgubmFtZSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBub25DcmVhdGVCdXR0b25zLnNsaWNlKDAsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBub25DcmVhdGVCdXR0b25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aW9uc1dpZHRoKGJ1dHRvbnM6IEJ1dHRvbltdKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtidXR0b25zLmxlbmd0aCAqIDQwICsgMjB9cHhgO1xyXG4gIH1cclxufVxyXG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvc2VydmljZXMvYnV0dG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGFBQWE7SUFDeEIsU0FBUyxDQUFDLE9BQWlCLEVBQUUsSUFBWTtRQUN2QyxPQUFPLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBYyxFQUFFLEdBQVEsRUFBRSxNQUFtQjtRQU8vRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUN2QyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQ2xDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7WUFDeEMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUN0QyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSTtTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjLEVBQUUsR0FBUTtRQUNyQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUFFLE9BQU8sV0FBVyxDQUFDO1FBRXZELElBQUksTUFBTSxFQUFFLEtBQUs7WUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEtB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WUFDL0IsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztZQUM1QixPQUFPLENBQUMsQ0FBQyxPQUFPLFlBQVksQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsT0FBaUI7UUFDL0IsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBaUIsRUFBRSxhQUFzQixFQUFFLFVBQXFCO1FBQ2xGLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxGLElBQUksYUFBYSxFQUFFO1lBQ2pCLElBQUksVUFBVSxFQUFFO2dCQUNkLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNsRTtZQUNELE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFpQjtRQUMvQixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7SUFDekMsQ0FBQzs7MEdBN0dVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvbiwgVGFibGVDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQnV0dG9uU2VydmljZSB7XHJcbiAgZ2V0QnV0dG9uKGJ1dHRvbnM6IEJ1dHRvbltdLCBuYW1lOiBzdHJpbmcpOiBCdXR0b24gfCBudWxsIHtcclxuICAgIHJldHVybiBidXR0b25zPy5maW5kKHggPT4geC5uYW1lID09PSBuYW1lKSB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnV0dG9uUHJvcGVydGllcyhidXR0b246IEJ1dHRvbiwgcm93OiBhbnksIGNvbmZpZzogVGFibGVDb25maWcpOiB7XHJcbiAgICBjb2xvcjogc3RyaW5nLFxyXG4gICAgaWNvbjogc3RyaW5nLFxyXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW4sXHJcbiAgICB2aXNpYmxlOiBib29sZWFuLFxyXG4gICAgdGlwOiBzdHJpbmdcclxuICB9IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNvbG9yOiB0aGlzLmdldEJ1dHRvbkNvbG9yKGJ1dHRvbiwgcm93KSxcclxuICAgICAgaWNvbjogdGhpcy5nZXRJY29uKGJ1dHRvbiwgY29uZmlnKSxcclxuICAgICAgZGlzYWJsZWQ6IHRoaXMudGVzdERpc2FibGVkKGJ1dHRvbiwgcm93KSxcclxuICAgICAgdmlzaWJsZTogdGhpcy50ZXN0VmlzaWJsZShidXR0b24sIHJvdyksXHJcbiAgICAgIHRpcDogYnV0dG9uLnRpcCB8fCBidXR0b24ubmFtZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldEJ1dHRvbkNvbG9yKGJ1dHRvbjogQnV0dG9uLCByb3c6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy50ZXN0RGlzYWJsZWQoYnV0dG9uLCByb3cpKSByZXR1cm4gJ2xpZ2h0Z3JheSc7XHJcblxyXG4gICAgaWYgKGJ1dHRvbj8uY29sb3IpIHJldHVybiBidXR0b24uY29sb3I7XHJcbiAgICBpZiAoYnV0dG9uLmljb24/LmNvbG9yKSByZXR1cm4gYnV0dG9uLmljb24uY29sb3I7XHJcblxyXG4gICAgY29uc3QgY29sb3JNYXAgPSB7XHJcbiAgICAgICdkZWxldGUnOiAnI0Y0NDMzNicsXHJcbiAgICAgICdjcmVhdGUnOiAnZ3JlZW4nXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBjb2xvck1hcFtidXR0b24ubmFtZV0gfHwgJyM0MDUwQjUnO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBpc0J1dHRvblZpc2libGUoYnV0dG9uOiBCdXR0b24sIHJvdzogYW55LCBpc0xvYWRDb21wbGV0ZTogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFpc0xvYWRDb21wbGV0ZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIHRoaXMudGVzdFZpc2libGUoYnV0dG9uLHJvdyk7XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZUFjdGlvbihtb2RlOiBzdHJpbmcsIGJ1dHRvbnM6IEJ1dHRvbltdKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1vZGVNYXAgPSB7XHJcbiAgICAgICd2aWV3JzogJ1ZpZXcnLFxyXG4gICAgICAnZWRpdCc6IGJ1dHRvbnMuZmluZChiID0+IGIubmFtZSA9PT0gJ2VkaXQnKT8uZGlzcGxheSB8fCAnRWRpdCcsXHJcbiAgICAgICdjcmVhdGUnOiBidXR0b25zLmZpbmQoYiA9PiBiLm5hbWUgPT09ICdjcmVhdGUnKT8uZGlzcGxheSB8fCAnQ3JlYXRlJ1xyXG4gICAgfTtcclxuICAgIHJldHVybiBtb2RlTWFwW21vZGVdIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgaXNUYWJWaXNpYmxlKHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRhYmxlQ29uZmlnLmhpZGVUYWJDb25kaXRpb24gPyAhdGFibGVDb25maWcuaGlkZVRhYkNvbmRpdGlvbih0YWJsZUNvbmZpZy5wYXJlbnREYXRhKSA6IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRJY29uKGJ1dHRvbjogQnV0dG9uLCBjb25maWc6IFRhYmxlQ29uZmlnKTogc3RyaW5nIHtcclxuICAgIGlmIChidXR0b24uaWNvbikge1xyXG4gICAgICByZXR1cm4gYnV0dG9uLmljb24ubmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRJY29uKGJ1dHRvbi5uYW1lLCBjb25maWcuZmxhdEJ1dHRvbnMpO1xyXG4gIH1cclxuXHJcbiAgdGVzdERpc2FibGVkKGJ1dHRvbjogQnV0dG9uLCByb3c6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKChidXR0b24ubmFtZSA9PSAnZWRpdCcgfHwgYnV0dG9uLm5hbWUgPT0gXCJkZWxldGVcIikgJiYgcm93LnBlbmRpbmdBcHByb3ZhbCkgcmV0dXJuIHRydWU7XHJcbiAgICByZXR1cm4gYnV0dG9uLmRpc2FibGVkID8gYnV0dG9uLmRpc2FibGVkKHJvdykgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHRlc3RWaXNpYmxlKGJ1dHRvbjogQnV0dG9uLCByb3c6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGJ1dHRvbi52aXNpYmxlID8gYnV0dG9uLnZpc2libGUocm93KSA6IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERlZmF1bHRDb2xvcihidXR0b25OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChidXR0b25OYW1lKSB7XHJcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6IHJldHVybiAnI0Y0NDMzNic7XHJcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6IHJldHVybiAnZ3JlZW4nO1xyXG4gICAgICBkZWZhdWx0OiByZXR1cm4gJyM0MDUwQjUnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREZWZhdWx0SWNvbihidXR0b25OYW1lOiBzdHJpbmcsIGZsYXRCdXR0b25zOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoYnV0dG9uTmFtZSkge1xyXG4gICAgICBjYXNlICd2aWV3JzpcclxuICAgICAgICByZXR1cm4gZmxhdEJ1dHRvbnMgPyAnb3Blbl9pbl9uZXcnIDogJ3BhZ2V2aWV3JztcclxuICAgICAgY2FzZSAnZWRpdCc6IHJldHVybiAnZWRpdCc7XHJcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6IHJldHVybiAnZGVsZXRlJztcclxuICAgICAgY2FzZSAnY3JlYXRlJzogcmV0dXJuICdhZGQnO1xyXG4gICAgICBkZWZhdWx0OiByZXR1cm4gJ21vcmVfaG9yaXonO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q3JlYXRlQnV0dG9uKGJ1dHRvbnM6IEJ1dHRvbltdKTogQnV0dG9uIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBidXR0b25zPy5maW5kKGJ1dHRvbiA9PiBidXR0b24/Lm5hbWUgPT09ICdjcmVhdGUnKTtcclxuICB9XHJcblxyXG4gIGdldERpc3BsYXllZEJ1dHRvbnMoYnV0dG9uczogQnV0dG9uW10sIGlzU21hbGxTY3JlZW46IGJvb2xlYW4sIG1pbkJ1dHRvbnM/OiBzdHJpbmdbXSk6IEJ1dHRvbltdIHtcclxuICAgIGNvbnN0IG5vbkNyZWF0ZUJ1dHRvbnMgPSBidXR0b25zPy5maWx0ZXIoeCA9PiB4Lm5hbWUgIT09ICdjcmVhdGUnICYmICF4LmluSGVhZGVyKTtcclxuXHJcbiAgICBpZiAoaXNTbWFsbFNjcmVlbikge1xyXG4gICAgICBpZiAobWluQnV0dG9ucykge1xyXG4gICAgICAgIHJldHVybiBub25DcmVhdGVCdXR0b25zLmZpbHRlcih4ID0+IG1pbkJ1dHRvbnMuaW5jbHVkZXMoeC5uYW1lKSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5vbkNyZWF0ZUJ1dHRvbnMuc2xpY2UoMCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5vbkNyZWF0ZUJ1dHRvbnM7XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpb25zV2lkdGgoYnV0dG9uczogQnV0dG9uW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2J1dHRvbnMubGVuZ3RoICogNDAgKyAyMH1weGA7XHJcbiAgfVxyXG59XHJcbiJdfQ==