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.
- package/esm2020/lib/classes/Classes.mjs +5 -1
- package/esm2020/lib/classes/TinCore.mjs +28 -15
- package/esm2020/lib/components/alert/alert.component.mjs +11 -6
- package/esm2020/lib/components/email/email.component.mjs +19 -17
- package/esm2020/lib/components/form/form.component.mjs +17 -17
- package/esm2020/lib/components/label/label.component.mjs +3 -3
- package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +1 -1
- package/esm2020/lib/components/option/option.component.mjs +32 -14
- package/esm2020/lib/components/page/page.component.mjs +9 -36
- package/esm2020/lib/components/search/search.component.mjs +10 -5
- package/esm2020/lib/components/select/select.component.mjs +33 -134
- package/esm2020/lib/components/select-common/select-common.component.mjs +135 -0
- package/esm2020/lib/components/select-internal/select-internal.component.mjs +47 -0
- package/esm2020/lib/components/select-lite/select-lite.component.mjs +13 -0
- package/esm2020/lib/components/steps/steps.component.mjs +33 -59
- package/esm2020/lib/components/suffix/suffix.component.mjs +71 -0
- package/esm2020/lib/components/table/detailsDialog.component.mjs +15 -11
- package/esm2020/lib/components/table/table.component.mjs +27 -62
- package/esm2020/lib/components/table-header/table-header.component.mjs +8 -6
- package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +18 -12
- package/esm2020/lib/components/table-internal/table-internal.component.mjs +31 -63
- package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +243 -0
- package/esm2020/lib/components/table-lite/table-lite.component.mjs +390 -0
- package/esm2020/lib/components/table-row/table-row.component.mjs +18 -4
- package/esm2020/lib/components/text/text.component.mjs +28 -36
- package/esm2020/lib/components/tiles/tiles.component.mjs +7 -2
- package/esm2020/lib/components/viewer/viewer.component.mjs +7 -3
- package/esm2020/lib/modules/admin/admin-routing.module.mjs +5 -1
- package/esm2020/lib/pages/accounts/accountDialog.component.mjs +1 -1
- package/esm2020/lib/pages/approvals/approvals.component.mjs +61 -0
- package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +89 -0
- package/esm2020/lib/pages/change-password/change-password.component.mjs +1 -1
- package/esm2020/lib/pages/create-account/create-account.component.mjs +1 -1
- package/esm2020/lib/pages/customers/customers.component.mjs +8 -8
- package/esm2020/lib/pages/departments/departments.component.mjs +1 -1
- package/esm2020/lib/pages/employees/employees.component.mjs +1 -1
- package/esm2020/lib/pages/inventory/inventory.component.mjs +1 -1
- package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +1 -1
- package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +11 -10
- package/esm2020/lib/pages/login/login.component.mjs +1 -1
- package/esm2020/lib/pages/logs/logs.component.mjs +21 -22
- package/esm2020/lib/pages/membership/membership.component.mjs +15 -19
- package/esm2020/lib/pages/plans/plans.component.mjs +16 -19
- package/esm2020/lib/pages/positions/positions.component.mjs +3 -3
- package/esm2020/lib/pages/profile/profile.component.mjs +1 -1
- package/esm2020/lib/pages/recover-account/recover-account.component.mjs +1 -1
- package/esm2020/lib/pages/roles/addRoleDialog.component.mjs +2 -2
- package/esm2020/lib/pages/roles/roles.component.mjs +2 -2
- package/esm2020/lib/pages/signup/signup.component.mjs +1 -1
- package/esm2020/lib/pages/suppliers/suppliers.component.mjs +9 -9
- package/esm2020/lib/pages/tasks/tasks.component.mjs +9 -9
- package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +99 -71
- package/esm2020/lib/pages/tenants/tenants.component.mjs +8 -8
- package/esm2020/lib/pages/transactions/transactDialog.component.mjs +1 -1
- package/esm2020/lib/pages/transactions/transactions.component.mjs +1 -1
- package/esm2020/lib/pages/users/users.component.mjs +114 -92
- package/esm2020/lib/pages/welcome/welcome.component.mjs +8 -8
- package/esm2020/lib/select-context.directive.mjs +23 -0
- package/esm2020/lib/services/button.service.mjs +5 -6
- package/esm2020/lib/services/datalib.service.mjs +26 -15
- package/esm2020/lib/services/dialog.service.mjs +12 -1
- package/esm2020/lib/services/table-config.service.mjs +7 -3
- package/esm2020/lib/tin-spa.module.mjs +16 -9
- package/fesm2015/tin-spa.mjs +2867 -2017
- package/fesm2015/tin-spa.mjs.map +1 -1
- package/fesm2020/tin-spa.mjs +2881 -2030
- package/fesm2020/tin-spa.mjs.map +1 -1
- package/lib/classes/Classes.d.ts +18 -6
- package/lib/classes/TinCore.d.ts +1 -0
- package/lib/components/email/email.component.d.ts +4 -3
- package/lib/components/form/form.component.d.ts +4 -3
- package/lib/components/option/option.component.d.ts +8 -2
- package/lib/components/page/page.component.d.ts +2 -4
- package/lib/components/search/search.component.d.ts +3 -1
- package/lib/components/select/select.component.d.ts +9 -36
- package/lib/components/select-common/select-common.component.d.ts +42 -0
- package/lib/components/select-internal/select-internal.component.d.ts +17 -0
- package/lib/components/select-lite/select-lite.component.d.ts +6 -0
- package/lib/components/steps/steps.component.d.ts +9 -9
- package/lib/components/suffix/suffix.component.d.ts +23 -0
- package/lib/components/table/detailsDialog.component.d.ts +3 -2
- package/lib/components/table/table.component.d.ts +3 -2
- package/lib/components/table-header/table-header.component.d.ts +2 -1
- package/lib/components/table-internal/detailsDialog-internal.component.d.ts +3 -2
- package/lib/components/table-internal/table-internal.component.d.ts +3 -2
- package/lib/components/table-lite/detailsDialog-lite.component.d.ts +65 -0
- package/lib/components/table-lite/table-lite.component.d.ts +87 -0
- package/lib/components/table-row/table-row.component.d.ts +2 -0
- package/lib/components/text/text.component.d.ts +7 -7
- package/lib/components/tiles/tiles.component.d.ts +2 -1
- package/lib/pages/approvals/approvals.component.d.ts +11 -0
- package/lib/pages/approvals-config/approvals-config.component.d.ts +14 -0
- package/lib/pages/invitations-table/invitations-table.component.d.ts +1 -1
- package/lib/pages/logs/logs.component.d.ts +2 -6
- package/lib/pages/membership/membership.component.d.ts +2 -6
- package/lib/pages/plans/plans.component.d.ts +2 -6
- package/lib/pages/suppliers/suppliers.component.d.ts +1 -1
- package/lib/pages/tasks/tasks.component.d.ts +1 -1
- package/lib/pages/tenant-settings/tenant-settings.component.d.ts +10 -7
- package/lib/pages/tenants/tenants.component.d.ts +1 -1
- package/lib/pages/users/users.component.d.ts +8 -16
- package/lib/select-context.directive.d.ts +10 -0
- package/lib/services/button.service.d.ts +0 -1
- package/lib/services/datalib.service.d.ts +3 -1
- package/lib/services/table-config.service.d.ts +1 -1
- package/lib/tin-spa.module.d.ts +41 -34
- package/package.json +1 -1
- package/esm2020/lib/pages/invitations/invitations.component.mjs +0 -14
- package/esm2020/lib/pages/tenant-settings/inviteDialog.component.mjs +0 -60
- package/lib/pages/invitations/invitations.component.d.ts +0 -8
- package/lib/pages/tenant-settings/inviteDialog.component.d.ts +0 -28
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import { inviteDialog } from './inviteDialog.component';
|
|
3
2
|
import { Subject } from 'rxjs';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "../../services/datalib.service";
|
|
@@ -8,11 +7,10 @@ import * as i3 from "../../services/auth.service";
|
|
|
8
7
|
import * as i4 from "@angular/material/dialog";
|
|
9
8
|
import * as i5 from "@angular/common";
|
|
10
9
|
import * as i6 from "@angular/material/button";
|
|
11
|
-
import * as i7 from "../../components/
|
|
12
|
-
import * as i8 from "../../components/
|
|
13
|
-
import * as i9 from "../../components/
|
|
14
|
-
import * as i10 from "
|
|
15
|
-
import * as i11 from "../invitations-table/invitations-table.component";
|
|
10
|
+
import * as i7 from "../../components/label/label.component";
|
|
11
|
+
import * as i8 from "../../components/select/select.component";
|
|
12
|
+
import * as i9 from "../../components/table/table.component";
|
|
13
|
+
import * as i10 from "../invitations-table/invitations-table.component";
|
|
16
14
|
export class TenantSettingsComponent {
|
|
17
15
|
constructor(dataService, messageService, authService, dialog) {
|
|
18
16
|
this.dataService = dataService;
|
|
@@ -20,14 +18,34 @@ export class TenantSettingsComponent {
|
|
|
20
18
|
this.authService = authService;
|
|
21
19
|
this.dialog = dialog;
|
|
22
20
|
this.roles = [
|
|
23
|
-
{
|
|
24
|
-
// { name: 'Admin', value: 2 },
|
|
25
|
-
// { name: 'Owner', value: 3 },
|
|
21
|
+
{ roleName: 'Default', roleID: 1 },
|
|
26
22
|
];
|
|
23
|
+
//Members
|
|
24
|
+
this.roleField = { name: 'roleID', type: 'select', required: true, span: true, options: this.roles, optionDisplay: 'roleName', optionValue: 'roleID', defaultFirstValue: true };
|
|
25
|
+
this.inviteDialogConfig = {
|
|
26
|
+
formConfig: {
|
|
27
|
+
title: 'Add Member',
|
|
28
|
+
fixedTitle: true,
|
|
29
|
+
fields: [
|
|
30
|
+
{ name: 'email', type: 'text', required: true, span: true },
|
|
31
|
+
{ name: 'firstName', type: 'text', required: true, min: 2, },
|
|
32
|
+
{ name: 'lastName', type: 'text', required: true, min: 2, },
|
|
33
|
+
this.roleField,
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
mode: 'create',
|
|
37
|
+
buttons: [
|
|
38
|
+
{ name: 'create', action: { url: 'members/dto?action=invite', method: 'post', successMessage: 'Updated successfully' } }
|
|
39
|
+
]
|
|
40
|
+
};
|
|
27
41
|
this.membersFormConfig = {
|
|
42
|
+
title: 'Member Access',
|
|
43
|
+
alertMessages: { messages: [{ type: 'warn', content: 'You can amend the member\'s role here' }] },
|
|
28
44
|
fields: [
|
|
29
|
-
{ name: 'email', type: 'text',
|
|
30
|
-
{ name: '
|
|
45
|
+
{ name: 'email', type: 'text', readonly: true, span: true },
|
|
46
|
+
{ name: 'firstName', type: 'text', readonly: true },
|
|
47
|
+
{ name: 'lastName', type: 'text', readonly: true },
|
|
48
|
+
this.roleField,
|
|
31
49
|
],
|
|
32
50
|
};
|
|
33
51
|
this.tableReload = new Subject();
|
|
@@ -35,36 +53,72 @@ export class TenantSettingsComponent {
|
|
|
35
53
|
greyOut: (value) => value.accepted == false,
|
|
36
54
|
elevation: 'low',
|
|
37
55
|
logResponse: true,
|
|
38
|
-
minColumns: ['
|
|
56
|
+
minColumns: ['memberName'],
|
|
39
57
|
minButtons: ['delete'],
|
|
40
58
|
flatButtons: true,
|
|
41
59
|
columns: [
|
|
42
|
-
{ name: '
|
|
60
|
+
{ name: 'memberName', type: 'text', icons: [
|
|
61
|
+
{ name: 'schedule', tip: 'Waiting for user to accept invitation', condition: x => !x.accepted }
|
|
62
|
+
] },
|
|
43
63
|
{ name: 'email', type: 'text' },
|
|
44
64
|
{ name: 'roleName', alias: 'Role', type: 'text' },
|
|
45
65
|
],
|
|
46
66
|
buttons: [
|
|
47
|
-
{ name: 'create', display: '
|
|
48
|
-
{ name: 'edit', dialog: true, action: { url: '
|
|
49
|
-
{ name: '
|
|
67
|
+
{ name: 'create', display: 'Add Member', dialog: true, detailsConfig: this.inviteDialogConfig },
|
|
68
|
+
{ name: 'edit', icon: { name: 'security' }, tip: 'Edit Access', dialog: true, action: { url: 'members/dto?action=role', method: 'post' }, disabled: x => x.own },
|
|
69
|
+
{ name: 'remove', icon: { name: 'close', color: 'red' }, tip: 'Remove Member', confirm: { message: 'Remove Member from this Organisation ?' }, action: { url: 'members/dto?action=remove', method: 'post' }, disabled: x => x.own },
|
|
50
70
|
],
|
|
51
|
-
loadAction: { url: '
|
|
71
|
+
loadAction: { url: 'members/all/x' },
|
|
52
72
|
formConfig: this.membersFormConfig,
|
|
53
73
|
};
|
|
74
|
+
//Organsations
|
|
75
|
+
this.orgFormConfig = {
|
|
76
|
+
fixedTitle: true,
|
|
77
|
+
fields: [
|
|
78
|
+
{ name: 'name', type: 'text', required: true, min: 2 },
|
|
79
|
+
]
|
|
80
|
+
};
|
|
81
|
+
this.createOrgDialogConfig = {
|
|
82
|
+
formConfig: { ...this.orgFormConfig, title: 'New Organisation' },
|
|
83
|
+
mode: 'create',
|
|
84
|
+
buttons: [
|
|
85
|
+
{ name: 'create', action: { url: 'tenants/dto?action=create', method: 'post', successMessage: 'Created successfully' } }
|
|
86
|
+
]
|
|
87
|
+
};
|
|
88
|
+
this.renameOrgDialogConfig = {
|
|
89
|
+
formConfig: { ...this.orgFormConfig, title: 'Rename Organisation' },
|
|
90
|
+
mode: 'edit',
|
|
91
|
+
buttons: [
|
|
92
|
+
{ name: 'edit', action: { url: 'tenants/dto?action=rename', method: 'post', successMessage: 'Renamed successfully' } }
|
|
93
|
+
]
|
|
94
|
+
};
|
|
54
95
|
this.orgsReload = new Subject();
|
|
55
96
|
this.orgsTableConfig = {
|
|
56
97
|
greyOut: (value) => value.accepted == false,
|
|
57
98
|
elevation: 'low',
|
|
58
99
|
minColumns: ['name'],
|
|
59
100
|
flatButtons: true,
|
|
101
|
+
collapseButtons: true,
|
|
60
102
|
columns: [
|
|
61
|
-
{ name: 'name', type: 'text' },
|
|
62
|
-
{ name: '
|
|
103
|
+
{ name: 'name', alias: 'Organisation', type: 'text', icons: [{ name: 'radio_button_checked', tip: 'Current Organisation', color: 'green', condition: x => x.tenantID == this.currentTenantID }] },
|
|
104
|
+
{ name: 'ownerName', type: 'text', alias: 'Owner' },
|
|
63
105
|
],
|
|
64
106
|
buttons: [
|
|
65
|
-
{ name: '
|
|
107
|
+
{ name: 'create', display: 'New Organisation', dialog: true, detailsConfig: this.createOrgDialogConfig },
|
|
108
|
+
{
|
|
109
|
+
name: 'login', display: 'Switch to this Organisation', confirm: { message: 'Switch to this Organisation ?' }, action: { url: 'tenants/dto?action=switch', method: 'post' }, icon: { name: 'login', },
|
|
110
|
+
visible: x => x.tenantID != this.currentTenantID
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: 'edit', display: 'Rename Organisation', dialog: true, detailsConfig: this.renameOrgDialogConfig,
|
|
114
|
+
visible: x => x.own
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: 'leave', tip: 'Leave', icon: { name: 'directions_run', color: 'red' }, confirm: { message: 'Leave this Organisation ?' }, action: { url: 'members/dto?action=remove', method: 'post' },
|
|
118
|
+
disabled: x => x.own
|
|
119
|
+
},
|
|
66
120
|
],
|
|
67
|
-
loadAction: { url: '
|
|
121
|
+
loadAction: { url: 'tenants/my_tenants/x' },
|
|
68
122
|
};
|
|
69
123
|
}
|
|
70
124
|
ngOnInit() {
|
|
@@ -73,83 +127,57 @@ export class TenantSettingsComponent {
|
|
|
73
127
|
this.loadTenants();
|
|
74
128
|
}
|
|
75
129
|
loadData() {
|
|
76
|
-
this.dataService.CallApi({ url: '
|
|
130
|
+
this.dataService.CallApi({ url: 'tenants/meta/x' }, "").subscribe((apiResponse) => {
|
|
77
131
|
this.currTenant = apiResponse.data.tenant;
|
|
78
132
|
this.currentTenantID = apiResponse.data.currentTenantID;
|
|
79
133
|
this.plan = apiResponse.data.plan;
|
|
80
134
|
this.ownTenant = apiResponse.data.ownTenant;
|
|
135
|
+
this.membersFormConfig.fields.find(x => x.name == 'roleID').options = apiResponse.data.roles;
|
|
81
136
|
});
|
|
82
137
|
}
|
|
83
138
|
loadTenants() {
|
|
84
|
-
this.dataService.CallApi({ url: '
|
|
85
|
-
// this.tenant = apiResponse.data.tenant;
|
|
139
|
+
this.dataService.CallApi({ url: 'tenants/meta_tenants/x' }, "").subscribe((apiResponse) => {
|
|
86
140
|
this.tenants = apiResponse.data.tenants;
|
|
87
141
|
});
|
|
88
142
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (
|
|
92
|
-
this.
|
|
93
|
-
if (apiResponse.success) {
|
|
94
|
-
this.authService.updateTenantName(this.currTenant.name);
|
|
95
|
-
this.messageService.toast("Renamed Successfully");
|
|
96
|
-
this.refreshOrgsLists();
|
|
97
|
-
}
|
|
98
|
-
});
|
|
143
|
+
updateTenant(x) {
|
|
144
|
+
if (x.name == "edit" && x.data.success) {
|
|
145
|
+
if (x.data.data.tenantID == this.currentTenantID) {
|
|
146
|
+
this.authService.updateTenantName(x.data.data.name);
|
|
99
147
|
}
|
|
100
|
-
|
|
148
|
+
this.refreshOrgsLists();
|
|
149
|
+
}
|
|
150
|
+
if (x.name == "login" && x.data.success) {
|
|
151
|
+
this.forceLogin();
|
|
152
|
+
}
|
|
153
|
+
if (x.name == "leave" && x.data.success) {
|
|
154
|
+
this.refreshOrgsLists();
|
|
155
|
+
}
|
|
101
156
|
}
|
|
102
157
|
refreshOrgsLists() {
|
|
103
158
|
this.loadTenants();
|
|
104
|
-
this.orgsReload.next(true);
|
|
105
159
|
}
|
|
106
160
|
switchTenant() {
|
|
107
|
-
this.messageService.confirm(`Switch ?`).subscribe((result) => {
|
|
161
|
+
this.messageService.confirm(`Switch Organisation ?`).subscribe((result) => {
|
|
108
162
|
if (result == "yes") {
|
|
109
163
|
this.currTenant.tenantID = this.currentTenantID;
|
|
110
|
-
this.dataService.CallApi({ url: '
|
|
111
|
-
if (apiResponse.success) {
|
|
112
|
-
this.messageService.toast("Switched Successfully, please login again");
|
|
113
|
-
this.authService.logoff();
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
newTenant() {
|
|
120
|
-
this.messageService.confirm(`Create ${this.newName} ?`).subscribe((result) => {
|
|
121
|
-
if (result == "yes") {
|
|
122
|
-
let tenant = { tenantID: 0, name: this.newName };
|
|
123
|
-
this.dataService.CallApi({ url: 'tenant/tenants?action=create', method: 'post' }, tenant).subscribe((apiResponse) => {
|
|
164
|
+
this.dataService.CallApi({ url: 'tenants/dto?action=switch', method: 'post' }, this.currTenant).subscribe((apiResponse) => {
|
|
124
165
|
if (apiResponse.success) {
|
|
125
|
-
this.
|
|
126
|
-
this.refreshOrgsLists();
|
|
166
|
+
this.forceLogin();
|
|
127
167
|
}
|
|
128
168
|
});
|
|
129
169
|
}
|
|
130
170
|
});
|
|
131
171
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
inviteDiag() {
|
|
138
|
-
const dialogRef = this.dialog.open(inviteDialog, {
|
|
139
|
-
width: "900px",
|
|
140
|
-
data: '',
|
|
141
|
-
});
|
|
142
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
143
|
-
if (result == "success") {
|
|
144
|
-
this.tableReload.next(true);
|
|
145
|
-
}
|
|
146
|
-
});
|
|
172
|
+
forceLogin() {
|
|
173
|
+
this.messageService.toast("Switched Successfully, please login again");
|
|
174
|
+
this.authService.logoff();
|
|
147
175
|
}
|
|
148
176
|
}
|
|
149
177
|
TenantSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TenantSettingsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.AuthService }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
150
|
-
TenantSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TenantSettingsComponent, selector: "spa-tenant-settings", ngImport: i0, template: "<div class=\"container\">\r\n\r\n <div>\r\n\r\n <label class=\"title\" >Organisation Details</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-2 mt-3 tin-grid\" style=\" font-size: 14px;\">\r\n\r\n <div class=\"tin-col mb-3\"
|
|
178
|
+
TenantSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TenantSettingsComponent, selector: "spa-tenant-settings", ngImport: i0, template: "<div class=\"container\">\r\n\r\n <div>\r\n\r\n <label class=\"title\" >Organisation Details</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-2 mt-3 tin-grid\" style=\" font-size: 14px;\">\r\n\r\n <div class=\"tin-col mb-3\" style=\"max-width: 500px;\">\r\n <spa-select display=\"Current Organisation\" [options]=\"tenants\" optionDisplay=\"name\" optionValue=\"tenantID\" [(value)]=\"currentTenantID\"\r\n hint=\"You are required to login again after switching organisations.\" style=\"min-width: 300px;margin-bottom: 10px;\"></spa-select>\r\n <button mat-stroked-button color=\"primary\" [disabled]=\"currentTenantID == currTenant.tenantID\" (click)=\"switchTenant()\">Switch</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <ng-container *ngIf=\"ownTenant\" >\r\n <!-- Members -->\r\n <div class=\"mt-3\" >\r\n\r\n <label class=\"title\" >Members</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Invite other users to join your organisation as partners or employees to form a partnership or company.</label>\r\n\r\n <spa-table [config]=\"membersTableConfig\" [reload]=\"tableReload\" ></spa-table>\r\n\r\n </div>\r\n\r\n\r\n<!-- My Organisations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >My Organisations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Organisations that you are a member of.</label>\r\n\r\n <spa-table [config]=\"orgsTableConfig\" [reload]=\"orgsReload\" (actionResponse)=\"updateTenant($event)\"></spa-table>\r\n\r\n </div>\r\n\r\n\r\n <!-- My Invitations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\">My Invitations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Requests for you to join other organisations.</label>\r\n\r\n\r\n <spa-invitations-table></spa-invitations-table>\r\n\r\n </div>\r\n\r\n <!-- Billing -->\r\n <div class=\"mt-3 mb-5\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Billing and Subscription</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-1 mt-3\" style=\"max-width: 300px; font-size: 14px;\">\r\n <spa-label display=\"Plan\" [value]=\"plan.name\"></spa-label>\r\n <spa-label display=\"Next Payment\" format=\"money\" [value]=\"plan.price\"></spa-label>\r\n <spa-label display=\"Due Date\" format=\"date\" value=\"2024-01-01\"></spa-label>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n\r\n</div>\r\n\r\n\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}.subtitle{font-size:smaller}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.LabelComponent, selector: "spa-label", inputs: ["display", "value", "format"] }, { kind: "component", type: i8.SelectComponent, selector: "spa-select", inputs: ["peekConfig"] }, { kind: "component", type: i9.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "tileData", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }, { kind: "component", type: i10.InvitationsTableComponent, selector: "spa-invitations-table" }] });
|
|
151
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TenantSettingsComponent, decorators: [{
|
|
152
180
|
type: Component,
|
|
153
|
-
args: [{ selector: 'spa-tenant-settings', template: "<div class=\"container\">\r\n\r\n <div>\r\n\r\n <label class=\"title\" >Organisation Details</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-2 mt-3 tin-grid\" style=\" font-size: 14px;\">\r\n\r\n <div class=\"tin-col mb-3\"
|
|
181
|
+
args: [{ selector: 'spa-tenant-settings', template: "<div class=\"container\">\r\n\r\n <div>\r\n\r\n <label class=\"title\" >Organisation Details</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-2 mt-3 tin-grid\" style=\" font-size: 14px;\">\r\n\r\n <div class=\"tin-col mb-3\" style=\"max-width: 500px;\">\r\n <spa-select display=\"Current Organisation\" [options]=\"tenants\" optionDisplay=\"name\" optionValue=\"tenantID\" [(value)]=\"currentTenantID\"\r\n hint=\"You are required to login again after switching organisations.\" style=\"min-width: 300px;margin-bottom: 10px;\"></spa-select>\r\n <button mat-stroked-button color=\"primary\" [disabled]=\"currentTenantID == currTenant.tenantID\" (click)=\"switchTenant()\">Switch</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <ng-container *ngIf=\"ownTenant\" >\r\n <!-- Members -->\r\n <div class=\"mt-3\" >\r\n\r\n <label class=\"title\" >Members</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Invite other users to join your organisation as partners or employees to form a partnership or company.</label>\r\n\r\n <spa-table [config]=\"membersTableConfig\" [reload]=\"tableReload\" ></spa-table>\r\n\r\n </div>\r\n\r\n\r\n<!-- My Organisations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >My Organisations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Organisations that you are a member of.</label>\r\n\r\n <spa-table [config]=\"orgsTableConfig\" [reload]=\"orgsReload\" (actionResponse)=\"updateTenant($event)\"></spa-table>\r\n\r\n </div>\r\n\r\n\r\n <!-- My Invitations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\">My Invitations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Requests for you to join other organisations.</label>\r\n\r\n\r\n <spa-invitations-table></spa-invitations-table>\r\n\r\n </div>\r\n\r\n <!-- Billing -->\r\n <div class=\"mt-3 mb-5\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Billing and Subscription</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-1 mt-3\" style=\"max-width: 300px; font-size: 14px;\">\r\n <spa-label display=\"Plan\" [value]=\"plan.name\"></spa-label>\r\n <spa-label display=\"Next Payment\" format=\"money\" [value]=\"plan.price\"></spa-label>\r\n <spa-label display=\"Due Date\" format=\"date\" value=\"2024-01-01\"></spa-label>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n\r\n</div>\r\n\r\n\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}.subtitle{font-size:smaller}\n"] }]
|
|
154
182
|
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.AuthService }, { type: i4.MatDialog }]; } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90ZW5hbnQtc2V0dGluZ3MvdGVuYW50LXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90ZW5hbnQtc2V0dGluZ3MvdGVuYW50LXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPL0IsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFtQixXQUEyQixFQUFVLGNBQThCLEVBQVMsV0FBd0IsRUFBUyxNQUFpQjtRQUE5SCxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFnQmpKLFVBQUssR0FBRztZQUNOLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQzdCLCtCQUErQjtZQUMvQiwrQkFBK0I7U0FDaEMsQ0FBQTtRQThFRCxzQkFBaUIsR0FBZTtZQUU5QixNQUFNLEVBQUU7Z0JBQ04sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUcsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN4RCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVB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LEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztvSEFsSVUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRDZHBDLGt1SEFxR0E7MkZEdkZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29uZmlnLCBUYWJsZUNvbmZpZywgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpbnZpdGVEaWFsb2cgfSBmcm9tICcuL2ludml0ZURpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS10ZW5hbnQtc2V0dGluZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW5hbnQtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RlbmFudC1zZXR0aW5ncy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbmFudFNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubXlSb2xlT2JzZXJ2LnN1YnNjcmliZShyb2wgPT4gdGhpcy5teVJvbGUgPSByb2wpO1xyXG4gICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gICAgdGhpcy5sb2FkVGVuYW50cygpXHJcbiAgfVxyXG5cclxuICBuZXdOYW1lO1xyXG5cclxuICBteVJvbGVcclxuICB0ZW5hbnRzO1xyXG4gIGN1cnJUZW5hbnQ7XHJcbiAgY3VycmVudFRlbmFudElEO1xyXG4gIHBsYW47XHJcbiAgb3duVGVuYW50O1xyXG4gIHJvbGVzID0gW1xyXG4gICAgeyBuYW1lOiAnRGVmYXVsdCcsIHZhbHVlOiAxIH0sXHJcbiAgICAvLyB7IG5hbWU6ICdBZG1pbicsIHZhbHVlOiAyIH0sXHJcbiAgICAvLyB7IG5hbWU6ICdPd25lcicsIHZhbHVlOiAzIH0sXHJcbiAgXVxyXG5cclxuICBsb2FkRGF0YSgpe1xyXG4gICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKHsgdXJsOiAndGVuYW50L21ldGEveCcgfSwgXCJcIikuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5jdXJyVGVuYW50ID0gYXBpUmVzcG9uc2UuZGF0YS50ZW5hbnQ7XHJcbiAgICAgIHRoaXMuY3VycmVudFRlbmFudElEID0gYXBpUmVzcG9uc2UuZGF0YS5jdXJyZW50VGVuYW50SUQ7XHJcbiAgICAgIHRoaXMucGxhbiA9IGFwaVJlc3BvbnNlLmRhdGEucGxhbjtcclxuICAgICAgdGhpcy5vd25UZW5hbnQgPSBhcGlSZXNwb25zZS5kYXRhLm93blRlbmFudFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGVuYW50cygpIHtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ3RlbmFudC9tZXRhX3RlbmFudHMveCcgfSwgXCJcIikuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgLy8gdGhpcy50ZW5hbnQgPSBhcGlSZXNwb25zZS5kYXRhLnRlbmFudDtcclxuICAgICAgdGhpcy50ZW5hbnRzID0gYXBpUmVzcG9uc2UuZGF0YS50ZW5hbnRzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW5hbWVUZW5hbnQoKSB7XHJcblxyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5jb25maXJtKGBSZW5hbWUgP2ApLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQgPT0gXCJ5ZXNcIikge1xyXG5cclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoeyB1cmw6ICd0ZW5hbnQvdGVuYW50cz9hY3Rpb249cmVuYW1lJywgbWV0aG9kOiAncG9zdCcgfSwgdGhpcy5jdXJyVGVuYW50KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudXBkYXRlVGVuYW50TmFtZSh0aGlzLmN1cnJUZW5hbnQubmFtZSlcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlJlbmFtZWQgU3VjY2Vzc2Z1bGx5XCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hPcmdzTGlzdHMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoT3Jnc0xpc3RzKCl7XHJcbiAgICB0aGlzLmxvYWRUZW5hbnRzKCk7XHJcbiAgICB0aGlzLm9yZ3NSZWxvYWQubmV4dCh0cnVlKVxyXG4gIH1cclxuXHJcbiAgc3dpdGNoVGVuYW50KCkge1xyXG5cclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY29uZmlybShgU3dpdGNoID9gKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0ID09IFwieWVzXCIpIHtcclxuXHJcbiAgICAgICAgdGhpcy5jdXJyVGVuYW50LnRlbmFudElEID0gdGhpcy5jdXJyZW50VGVuYW50SUQ7XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ3RlbmFudC90ZW5hbnRzP2FjdGlvbj1zd2l0Y2gnLCBtZXRob2Q6ICdwb3N0JyB9LCB0aGlzLmN1cnJUZW5hbnQpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcblxyXG4gICAgICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlN3aXRjaGVkIFN1Y2Nlc3NmdWxseSwgcGxlYXNlIGxvZ2luIGFnYWluXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ29mZigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5ld1RlbmFudCgpIHtcclxuXHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNvbmZpcm0oYENyZWF0ZSAke3RoaXMubmV3TmFtZX0gP2ApLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQgPT0gXCJ5ZXNcIikge1xyXG5cclxuICAgICAgICBsZXQgdGVuYW50ID0ge3RlbmFudElEIDogMCwgbmFtZSA6IHRoaXMubmV3TmFtZX1cclxuXHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKHsgdXJsOiAndGVuYW50L3RlbmFudHM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH0sIHRlbmFudCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiQ3JlYXRlZCBTdWNjZXNzZnVsbHlcIik7XHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaE9yZ3NMaXN0cygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgbWVtYmVyc0Zvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcblxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnLCAgcmVxdWlyZWQ6IHRydWUsIG1pbjogMiB9LFxyXG4gICAgICB7IG5hbWU6ICdyb2xlSUQnLCB0eXBlOiAnc2VsZWN0JywgcmVxdWlyZWQ6IHRydWUsIG9wdGlvbnM6IHRoaXMucm9sZXMsIG9wdGlvbkRpc3BsYXkgOiAnbmFtZScsIG9wdGlvblZhbHVlIDogJ3ZhbHVlJywgZGVmYXVsdFZhbHVlOiAxIH0sXHJcbiAgICBdLFxyXG5cclxuICB9XHJcblxyXG4gIGludml0ZUFjdGlvbkNsaWNrZWQoeCl7XHJcblxyXG5cclxuICAgIGlmICh4Lm5hbWUgPT1cImNyZWF0ZVwiKXtcclxuICAgICAgdGhpcy5pbnZpdGVEaWFnKCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGludml0ZURpYWcoKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKGludml0ZURpYWxvZywge1xyXG4gICAgICB3aWR0aDogXCI5MDBweFwiLFxyXG4gICAgICBkYXRhOiAnJyxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQgPT0gXCJzdWNjZXNzXCIpIHtcclxuICAgICAgICB0aGlzLnRhYmxlUmVsb2FkLm5leHQodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdGFibGVSZWxvYWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIG1lbWJlcnNUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcblxyXG4gICAgZ3JleU91dCA6ICh2YWx1ZSkgPT4gdmFsdWUuYWNjZXB0ZWQgPT0gZmFsc2UsXHJcbiAgICBlbGV2YXRpb246ICdsb3cnLFxyXG4gICAgbG9nUmVzcG9uc2UgOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWyduYW1lJ10sXHJcbiAgICBtaW5CdXR0b25zOiBbJ2RlbGV0ZSddLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcblxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ3JvbGVOYW1lJywgYWxpYXMgOiAnUm9sZScsIHR5cGU6ICd0ZXh0J30sXHJcbiAgICBdLFxyXG5cclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlJywgZGlzcGxheTogJ0ludml0ZScsIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VkaXQnLCBkaWFsb2cgOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAndGVuYW50L21lbWJlcnM/YWN0aW9uPXJvbGUnLCBtZXRob2Q6ICdwb3N0JyB9LCBkaXNhYmxlZDogeCA9PiB4LnJvbGVJRCAhPSAxIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGNvbmZpcm06IHsgbWVzc2FnZTogJ1JlbW92ZSBNZW1iZXIgZnJvbSB0aGlzIE9yZ2FuaXNhdGlvbiA/JyB9LCBhY3Rpb246IHsgdXJsOiAndGVuYW50L21lbWJlcnM/YWN0aW9uPXJlbW92ZScsIG1ldGhvZDogJ3Bvc3QnIH0sIGRpc2FibGVkIDogeCA9PiB4LnJvbGVJRCAhPSAxIH0sXHJcbiAgICBdLFxyXG5cclxuICAgIGxvYWRBY3Rpb246IHsgdXJsOiAndGVuYW50L21lbWJlcnMveCcgfSxcclxuXHJcbiAgICBmb3JtQ29uZmlnOiB0aGlzLm1lbWJlcnNGb3JtQ29uZmlnLFxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgb3Jnc1JlbG9hZDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgb3Jnc1RhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuICAgIGdyZXlPdXQ6ICh2YWx1ZSkgPT4gdmFsdWUuYWNjZXB0ZWQgPT0gZmFsc2UsXHJcbiAgICBlbGV2YXRpb246ICdsb3cnLFxyXG4gICAgbWluQ29sdW1uczogWyduYW1lJ10sXHJcbiAgICBmbGF0QnV0dG9uczogdHJ1ZSxcclxuXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlZEJ5TmFtZScsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdPd25lcicgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBjb25maXJtOiB7IG1lc3NhZ2U6ICdSZW1vdmUgTWVtYmVyIGZyb20gdGhpcyBPcmdhbmlzYXRpb24gPycgfSwgYWN0aW9uOiB7IHVybDogJ3RlbmFudC9tZW1iZXJzP2FjdGlvbj1yZW1vdmUnLCBtZXRob2Q6ICdwb3N0JyB9ICwgZGlzYWJsZWQgOiB4ID0+IHgub3dufSwgLy9hY3Rpb246IHsgdXJsOiAndGVuYW50L21lbWJlcnM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH1cclxuICAgIF0sXHJcblxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvbXlfdGVuYW50cy94JyB9LFxyXG5cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cclxuICA8ZGl2PlxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cInRpdGxlXCIgPk9yZ2FuaXNhdGlvbiBEZXRhaWxzPC9sYWJlbD5cclxuICAgIDxociBzdHlsZT1cIm1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4O1wiPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJjdXJyVGVuYW50ICYmIHBsYW5cIiBjbGFzcz1cIm1iLTIgbXQtMyB0aW4tZ3JpZFwiIHN0eWxlPVwiIGZvbnQtc2l6ZTogMTRweDtcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aW4tY29sIG1iLTNcIiAqbmdJZj1cIm93blRlbmFudFwiIHN0eWxlPVwibWF4LXdpZHRoOiA1MDBweDtcIj5cclxuICAgICAgICA8c3BhLXRleHQgZGlzcGxheT1cIk5hbWVcIiBbKHZhbHVlKV09XCJjdXJyVGVuYW50Lm5hbWVcIiBoaW50PVwiVGhpcyBuYW1lIHdpbGwgYmUgZGlzcGxheWVkIHRvIGFsbCBtZW1iZXJzIG9mIHlvdXIgb3JnYW5pc2F0aW9uLlwiIHN0eWxlPVwibWluLXdpZHRoOiAzMDBweDtcIj4gPC9zcGEtdGV4dD5cclxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwicmVuYW1lVGVuYW50KClcIj5TYXZlPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpbi1jb2wgbWItM1wiIHN0eWxlPVwibWF4LXdpZHRoOiA1MDBweDtcIj5cclxuICAgICAgICA8c3BhLXNlbGVjdCBkaXNwbGF5PVwiQ3VycmVudCBPcmdhbmlzYXRpb25cIiBbb3B0aW9uc109XCJ0ZW5hbnRzXCIgb3B0aW9uRGlzcGxheT1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInRlbmFudElEXCIgWyh2YWx1ZSldPVwiY3VycmVudFRlbmFudElEXCJcclxuICAgICAgICAgIGhpbnQ9XCJZb3UgYXJlIHJlcXVpcmVkIHRvIGxvZ2luIGFnYWluIGFmdGVyIHN3aXRjaGluZyBvcmdhbmlzYXRpb25zLlwiIHN0eWxlPVwibWluLXdpZHRoOiAzMDBweDtcIj48L3NwYS1zZWxlY3Q+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInN3aXRjaFRlbmFudCgpXCI+U3dpdGNoPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cIm93blRlbmFudFwiPlxyXG4gICAgICAgIDxzcGEtbGFiZWwgZGlzcGxheT1cIlBsYW5cIiBbdmFsdWVdPVwicGxhbi5uYW1lXCI+PC9zcGEtbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICA8IS0tIE1lbWJlcnMgLS0+XHJcbiAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cIm93blRlbmFudFwiPlxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cInRpdGxlXCIgPk1lbWJlcnM8L2xhYmVsPlxyXG4gICAgPGhyIHN0eWxlPVwibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJzdWJ0aXRsZSB0ZXh0LW11dGVkXCI+SW52aXRlIG90aGVyIHVzZXJzIHRvIGpvaW4geW91ciBvcmdhbmlzYXRpb24gYXMgcGFydG5lcnMgb3IgZW1wbG95ZWVzIHRvIGZvcm0gYSBwYXJ0bmVyc2hpcCBvciBjb21wYW55LjwvbGFiZWw+XHJcblxyXG4gICAgPHNwYS10YWJsZSBbY29uZmlnXT1cIm1lbWJlcnNUYWJsZUNvbmZpZ1wiIFtyZWxvYWRdPVwidGFibGVSZWxvYWRcIiAoYWN0aW9uQ2xpY2spPVwiaW52aXRlQWN0aW9uQ2xpY2tlZCgkZXZlbnQpXCI+PC9zcGEtdGFibGU+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPCEtLSBJbnZpdGF0aW9ucyAtLT5cclxuICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwib3duVGVuYW50XCI+XHJcblxyXG4gICAgPGxhYmVsIGNsYXNzPVwidGl0bGVcIiA+SW52aXRhdGlvbnM8L2xhYmVsPlxyXG4gICAgPGhyIHN0eWxlPVwibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJzdWJ0aXRsZSB0ZXh0LW11dGVkXCI+UmVxdWVzdHMgZm9yIHlvdSB0byBqb2luIG90aGVyIG9yZ2FuaXNhdGlvbnMuPC9sYWJlbD5cclxuXHJcblxyXG4gICAgPHNwYS1pbnZpdGF0aW9ucy10YWJsZT48L3NwYS1pbnZpdGF0aW9ucy10YWJsZT5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuPCEtLSBNZW1iZXIgT3JnYW5pc2F0aW9ucyAtLT5cclxuICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwib3duVGVuYW50XCI+XHJcblxyXG4gICAgPGxhYmVsIGNsYXNzPVwidGl0bGVcIiA+TWVtYmVyIE9yZ2FuaXNhdGlvbnM8L2xhYmVsPlxyXG4gICAgPGhyIHN0eWxlPVwibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJzdWJ0aXRsZSB0ZXh0LW11dGVkXCI+T3JnYW5pc2F0aW9ucyB0aGF0IHlvdSBhcmUgYSBtZW1iZXIgb2YuPC9sYWJlbD5cclxuXHJcbiAgICA8c3BhLXRhYmxlIFtjb25maWddPVwib3Jnc1RhYmxlQ29uZmlnXCIgW3JlbG9hZF09XCJvcmdzUmVsb2FkXCI+PC9zcGEtdGFibGU+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPCEtLSBOZXcgT3JnYW5pc2F0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJvd25UZW5hbnRcIj5cclxuXHJcbiAgICA8bGFiZWwgY2xhc3M9XCJ0aXRsZVwiPk5ldyBPcmdhbmlzYXRpb248L2xhYmVsPlxyXG4gICAgPGhyIHN0eWxlPVwibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJzdWJ0aXRsZSB0ZXh0LW11dGVkXCI+Q3JlYXRlIGFub3RoZXIgb3JnYW5pc2F0aW9uPC9sYWJlbD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGluLWNvbCBtYi0zXCIgKm5nSWY9XCJvd25UZW5hbnRcIiBzdHlsZT1cIm1heC13aWR0aDogNTAwcHg7XCI+XHJcbiAgICAgIDxzcGEtdGV4dCBkaXNwbGF5PVwiTmFtZVwiIFsodmFsdWUpXT1cIm5ld05hbWVcIiBzdHlsZT1cIm1pbi13aWR0aDogMzAwcHg7XCI+IDwvc3BhLXRleHQ+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJuZXdUZW5hbnQoKVwiPkNyZWF0ZTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDwhLS0gQmlsbGluZyAtLT5cclxuICA8ZGl2IGNsYXNzPVwibXQtMyBtYi01XCIgKm5nSWY9XCJvd25UZW5hbnRcIj5cclxuXHJcbiAgICA8bGFiZWwgY2xhc3M9XCJ0aXRsZVwiID5CaWxsaW5nIGFuZCBTdWJzY3JpcHRpb248L2xhYmVsPlxyXG4gICAgPGhyIHN0eWxlPVwibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7XCI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY3VyclRlbmFudCAmJiBwbGFuXCIgY2xhc3M9XCJtYi0xIG10LTNcIiBzdHlsZT1cIm1heC13aWR0aDogMzAwcHg7IGZvbnQtc2l6ZTogMTRweDtcIj5cclxuICAgICAgICA8c3BhLWxhYmVsIGRpc3BsYXk9XCJQbGFuXCIgW3ZhbHVlXT1cInBsYW4ubmFtZVwiPjwvc3BhLWxhYmVsPlxyXG4gICAgICAgIDxzcGEtbGFiZWwgZGlzcGxheT1cIk5leHQgUGF5bWVudFwiIGZvcm1hdD1cIm1vbmV5XCIgW3ZhbHVlXT1cInBsYW4ucHJpY2VcIj48L3NwYS1sYWJlbD5cclxuICAgICAgICA8c3BhLWxhYmVsIGRpc3BsYXk9XCJEdWUgRGF0ZVwiIGZvcm1hdD1cImRhdGVcIiB2YWx1ZT1cIjIwMjQtMDEtMDFcIj48L3NwYS1sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbiJdfQ==
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90ZW5hbnQtc2V0dGluZ3MvdGVuYW50LXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90ZW5hbnQtc2V0dGluZ3MvdGVuYW50LXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFNbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7O0FBTy9CLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsWUFBbUIsV0FBMkIsRUFBVSxjQUE4QixFQUFTLFdBQXdCLEVBQVMsTUFBaUI7UUFBOUgsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBZ0JqSixVQUFLLEdBQUc7WUFDTixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtTQUNuQyxDQUFBO1FBa0VELFNBQVM7UUFFVCxjQUFTLEdBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQTtRQUVsTCx1QkFBa0IsR0FBd0I7WUFDeEMsVUFBVSxFQUFFO2dCQUNWLEtBQUss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QUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7b0hBakZVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDJEQ2JwQyxtdkZBNkVBOzJGRGhFYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbmZpZywgVGFibGVDb25maWcsIEFwaVJlc3BvbnNlLCBEZXRhaWxzRGlhbG9nQ29uZmlnLCBGaWVsZCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLXRlbmFudC1zZXR0aW5ncycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVuYW50LXNldHRpbmdzLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVuYW50U2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5teVJvbGVPYnNlcnYuc3Vic2NyaWJlKHJvbCA9PiB0aGlzLm15Um9sZSA9IHJvbCk7XHJcbiAgICB0aGlzLmxvYWREYXRhKCk7XHJcbiAgICB0aGlzLmxvYWRUZW5hbnRzKClcclxuICB9XHJcblxyXG4gIG5ld05hbWU7XHJcblxyXG4gIG15Um9sZVxyXG4gIHRlbmFudHM7XHJcbiAgY3VyclRlbmFudDtcclxuICBjdXJyZW50VGVuYW50SUQ7XHJcbiAgcGxhbjtcclxuICBvd25UZW5hbnQ7XHJcbiAgcm9sZXMgPSBbXHJcbiAgICB7IHJvbGVOYW1lOiAnRGVmYXVsdCcsIHJvbGVJRDogMSB9LFxyXG4gIF1cclxuXHJcbiAgbG9hZERhdGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ3RlbmFudHMvbWV0YS94JyB9LCBcIlwiKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmN1cnJUZW5hbnQgPSBhcGlSZXNwb25zZS5kYXRhLnRlbmFudDtcclxuICAgICAgdGhpcy5jdXJyZW50VGVuYW50SUQgPSBhcGlSZXNwb25zZS5kYXRhLmN1cnJlbnRUZW5hbnRJRDtcclxuICAgICAgdGhpcy5wbGFuID0gYXBpUmVzcG9uc2UuZGF0YS5wbGFuO1xyXG4gICAgICB0aGlzLm93blRlbmFudCA9IGFwaVJlc3BvbnNlLmRhdGEub3duVGVuYW50XHJcbiAgICAgIHRoaXMubWVtYmVyc0Zvcm1Db25maWcuZmllbGRzLmZpbmQoeCA9PiB4Lm5hbWUgPT0gJ3JvbGVJRCcpLm9wdGlvbnMgPSBhcGlSZXNwb25zZS5kYXRhLnJvbGVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGVuYW50cygpIHtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ3RlbmFudHMvbWV0YV90ZW5hbnRzL3gnIH0sIFwiXCIpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMudGVuYW50cyA9IGFwaVJlc3BvbnNlLmRhdGEudGVuYW50cztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHVwZGF0ZVRlbmFudCh4KXtcclxuXHJcbiAgICBpZiAoeC5uYW1lID09IFwiZWRpdFwiICYmIHguZGF0YS5zdWNjZXNzICkge1xyXG4gICAgICBpZiAoeC5kYXRhLmRhdGEudGVuYW50SUQgPT0gdGhpcy5jdXJyZW50VGVuYW50SUQpe1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudXBkYXRlVGVuYW50TmFtZSh4LmRhdGEuZGF0YS5uYW1lKVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVmcmVzaE9yZ3NMaXN0cygpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh4Lm5hbWUgPT0gXCJsb2dpblwiICYmIHguZGF0YS5zdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMuZm9yY2VMb2dpbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh4Lm5hbWUgPT0gXCJsZWF2ZVwiICYmIHguZGF0YS5zdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMucmVmcmVzaE9yZ3NMaXN0cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaE9yZ3NMaXN0cygpe1xyXG4gICAgdGhpcy5sb2FkVGVuYW50cygpO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoVGVuYW50KCkge1xyXG5cclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY29uZmlybShgU3dpdGNoIE9yZ2FuaXNhdGlvbiA/YCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCA9PSBcInllc1wiKSB7XHJcblxyXG4gICAgICAgIHRoaXMuY3VyclRlbmFudC50ZW5hbnRJRCA9IHRoaXMuY3VycmVudFRlbmFudElEO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoeyB1cmw6ICd0ZW5hbnRzL2R0bz9hY3Rpb249c3dpdGNoJywgbWV0aG9kOiAncG9zdCcgfSwgdGhpcy5jdXJyVGVuYW50KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9yY2VMb2dpbigpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9yY2VMb2dpbigpe1xyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlN3aXRjaGVkIFN1Y2Nlc3NmdWxseSwgcGxlYXNlIGxvZ2luIGFnYWluXCIpO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2dvZmYoKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8vTWVtYmVyc1xyXG5cclxuICByb2xlRmllbGQ6IEZpZWxkID0geyBuYW1lOiAncm9sZUlEJywgdHlwZTogJ3NlbGVjdCcsIHJlcXVpcmVkOiB0cnVlLCBzcGFuIDogdHJ1ZSwgb3B0aW9uczogdGhpcy5yb2xlcywgb3B0aW9uRGlzcGxheTogJ3JvbGVOYW1lJywgb3B0aW9uVmFsdWU6ICdyb2xlSUQnLCBkZWZhdWx0Rmlyc3RWYWx1ZTogdHJ1ZSB9XHJcblxyXG4gIGludml0ZURpYWxvZ0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWc6IHtcclxuICAgICAgdGl0bGU6ICdBZGQgTWVtYmVyJyxcclxuICAgICAgZml4ZWRUaXRsZTogdHJ1ZSxcclxuICAgICAgZmllbGRzOiBbXHJcbiAgICAgICAgeyBuYW1lOiAnZW1haWwnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlLCBzcGFuOiB0cnVlIH0sXHJcbiAgICAgICAgeyBuYW1lOiAnZmlyc3ROYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSwgbWluOiAyLCB9LFxyXG4gICAgICAgIHsgbmFtZTogJ2xhc3ROYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSwgbWluOiAyLCB9LFxyXG4gICAgICAgIHRoaXMucm9sZUZpZWxkLFxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAgbW9kZTogJ2NyZWF0ZScsXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGFjdGlvbjogeyB1cmw6ICdtZW1iZXJzL2R0bz9hY3Rpb249aW52aXRlJywgbWV0aG9kOiAncG9zdCcsIHN1Y2Nlc3NNZXNzYWdlOiAnVXBkYXRlZCBzdWNjZXNzZnVsbHknIH0gfVxyXG4gICAgXVxyXG4gIH07XHJcblxyXG4gIG1lbWJlcnNGb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG5cclxuICAgIHRpdGxlIDogJ01lbWJlciBBY2Nlc3MnLFxyXG4gICAgYWxlcnRNZXNzYWdlcyA6IHttZXNzYWdlcyA6WyB7dHlwZSA6ICd3YXJuJywgY29udGVudCA6ICdZb3UgY2FuIGFtZW5kIHRoZSBtZW1iZXJcXCdzIHJvbGUgaGVyZSd9XSB9LFxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnLHJlYWRvbmx5OiB0cnVlLCBzcGFuOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2ZpcnN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVhZG9ubHk6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnbGFzdE5hbWUnLCB0eXBlOiAndGV4dCcsICByZWFkb25seTogdHJ1ZSB9LFxyXG4gICAgICB0aGlzLnJvbGVGaWVsZCxcclxuICAgIF0sXHJcblxyXG4gIH1cclxuXHJcbiAgdGFibGVSZWxvYWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIG1lbWJlcnNUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcblxyXG4gICAgZ3JleU91dCA6ICh2YWx1ZSkgPT4gdmFsdWUuYWNjZXB0ZWQgPT0gZmFsc2UsXHJcbiAgICBlbGV2YXRpb246ICdsb3cnLFxyXG4gICAgbG9nUmVzcG9uc2UgOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWydtZW1iZXJOYW1lJ10sXHJcbiAgICBtaW5CdXR0b25zOiBbJ2RlbGV0ZSddLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcblxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICdtZW1iZXJOYW1lJywgdHlwZTogJ3RleHQnLCBpY29ucyA6IFtcclxuICAgICAgICB7IG5hbWU6ICdzY2hlZHVsZScsIHRpcCA6ICdXYWl0aW5nIGZvciB1c2VyIHRvIGFjY2VwdCBpbnZpdGF0aW9uJywgIGNvbmRpdGlvbjogeCA9PiAheC5hY2NlcHRlZCB9XHJcbiAgICAgIF0gfSxcclxuICAgICAgeyBuYW1lOiAnZW1haWwnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncm9sZU5hbWUnLCBhbGlhcyA6ICdSb2xlJywgdHlwZTogJ3RleHQnfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBkaXNwbGF5OiAnQWRkIE1lbWJlcicsIGRpYWxvZyA6IHRydWUsIGRldGFpbHNDb25maWc6IHRoaXMuaW52aXRlRGlhbG9nQ29uZmlnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VkaXQnLCBpY29uOiB7IG5hbWU6ICdzZWN1cml0eScgfSwgdGlwIDogJ0VkaXQgQWNjZXNzJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnbWVtYmVycy9kdG8/YWN0aW9uPXJvbGUnLCBtZXRob2Q6ICdwb3N0JyB9LCAgZGlzYWJsZWQgOiB4ID0+IHgub3duIH0sXHJcbiAgICAgIHsgbmFtZTogJ3JlbW92ZScsIGljb246IHsgbmFtZTogJ2Nsb3NlJywgY29sb3IgOiAncmVkJyB9LCB0aXAgOiAnUmVtb3ZlIE1lbWJlcicsIGNvbmZpcm06IHsgbWVzc2FnZTogJ1JlbW92ZSBNZW1iZXIgZnJvbSB0aGlzIE9yZ2FuaXNhdGlvbiA/JyB9LCBhY3Rpb246IHsgdXJsOiAnbWVtYmVycy9kdG8/YWN0aW9uPXJlbW92ZScsIG1ldGhvZDogJ3Bvc3QnIH0sIGRpc2FibGVkIDogeCA9PiB4Lm93biB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ21lbWJlcnMvYWxsL3gnIH0sXHJcblxyXG4gICAgZm9ybUNvbmZpZzogdGhpcy5tZW1iZXJzRm9ybUNvbmZpZyxcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy9PcmdhbnNhdGlvbnNcclxuXHJcbiAgb3JnRm9ybUNvbmZpZzogRm9ybUNvbmZpZyA9IHtcclxuICAgIGZpeGVkVGl0bGU6IHRydWUsXHJcbiAgICBmaWVsZHM6IFtcclxuICAgICAgeyBuYW1lOiAnbmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUsIG1pbjogMiB9LFxyXG4gICAgXVxyXG4gIH1cclxuICBjcmVhdGVPcmdEaWFsb2dDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcgPSB7XHJcbiAgICBmb3JtQ29uZmlnOiB7Li4udGhpcy5vcmdGb3JtQ29uZmlnLCB0aXRsZTogJ05ldyBPcmdhbmlzYXRpb24nfSxcclxuICAgIG1vZGU6ICdjcmVhdGUnLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBhY3Rpb246IHsgdXJsOiAndGVuYW50cy9kdG8/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnLCBzdWNjZXNzTWVzc2FnZTogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5JyB9IH1cclxuICAgIF1cclxuICB9O1xyXG5cclxuICByZW5hbWVPcmdEaWFsb2dDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcgPSB7XHJcbiAgICBmb3JtQ29uZmlnOiB7IC4uLnRoaXMub3JnRm9ybUNvbmZpZywgdGl0bGU6ICdSZW5hbWUgT3JnYW5pc2F0aW9uJyB9LFxyXG4gICAgbW9kZTogJ2VkaXQnLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdlZGl0JywgYWN0aW9uOiB7IHVybDogJ3RlbmFudHMvZHRvP2FjdGlvbj1yZW5hbWUnLCBtZXRob2Q6ICdwb3N0Jywgc3VjY2Vzc01lc3NhZ2U6ICdSZW5hbWVkIHN1Y2Nlc3NmdWxseScgfSB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBvcmdzUmVsb2FkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcclxuICBvcmdzVGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG5cclxuICAgIGdyZXlPdXQ6ICh2YWx1ZSkgPT4gdmFsdWUuYWNjZXB0ZWQgPT0gZmFsc2UsXHJcbiAgICBlbGV2YXRpb246ICdsb3cnLFxyXG4gICAgbWluQ29sdW1uczogWyduYW1lJ10sXHJcbiAgICBmbGF0QnV0dG9uczogdHJ1ZSxcclxuICAgIGNvbGxhcHNlQnV0dG9ucyA6IHRydWUsXHJcblxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgYWxpYXMgOiAnT3JnYW5pc2F0aW9uJywgdHlwZTogJ3RleHQnLCBpY29uczogW3sgbmFtZTogJ3JhZGlvX2J1dHRvbl9jaGVja2VkJywgdGlwIDogJ0N1cnJlbnQgT3JnYW5pc2F0aW9uJywgY29sb3I6ICdncmVlbicsIGNvbmRpdGlvbjogeCA9PiB4LnRlbmFudElEID09IHRoaXMuY3VycmVudFRlbmFudElEIH1dIH0sXHJcbiAgICAgIHsgbmFtZTogJ293bmVyTmFtZScsIHR5cGU6ICd0ZXh0JywgYWxpYXM6ICdPd25lcicgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBkaXNwbGF5OiAnTmV3IE9yZ2FuaXNhdGlvbicsIGRpYWxvZzogdHJ1ZSwgZGV0YWlsc0NvbmZpZzogdGhpcy5jcmVhdGVPcmdEaWFsb2dDb25maWcgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdsb2dpbicsIGRpc3BsYXk6ICdTd2l0Y2ggdG8gdGhpcyBPcmdhbmlzYXRpb24nLCBjb25maXJtOiB7IG1lc3NhZ2U6ICdTd2l0Y2ggdG8gdGhpcyBPcmdhbmlzYXRpb24gPycgfSwgYWN0aW9uOiB7IHVybDogJ3RlbmFudHMvZHRvP2FjdGlvbj1zd2l0Y2gnLCBtZXRob2Q6ICdwb3N0JyB9LCBpY29uOiB7IG5hbWU6ICdsb2dpbicsIH0sXHJcbiAgICAgICAgdmlzaWJsZTogeCA9PiB4LnRlbmFudElEICE9IHRoaXMuY3VycmVudFRlbmFudElEXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnZWRpdCcsIGRpc3BsYXk6ICdSZW5hbWUgT3JnYW5pc2F0aW9uJywgZGlhbG9nOiB0cnVlLCBkZXRhaWxzQ29uZmlnOiB0aGlzLnJlbmFtZU9yZ0RpYWxvZ0NvbmZpZyAsXHJcbiAgICAgICAgdmlzaWJsZTogeCA9PiB4Lm93blxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2xlYXZlJywgdGlwOiAnTGVhdmUnLCBpY29uOiB7IG5hbWU6ICdkaXJlY3Rpb25zX3J1bicsIGNvbG9yIDogJ3JlZCd9LCBjb25maXJtOiB7IG1lc3NhZ2U6ICdMZWF2ZSB0aGlzIE9yZ2FuaXNhdGlvbiA/JyB9LCBhY3Rpb246IHsgdXJsOiAnbWVtYmVycy9kdG8/YWN0aW9uPXJlbW92ZScsIG1ldGhvZDogJ3Bvc3QnIH0gLFxyXG4gICAgICAgIGRpc2FibGVkIDogeCA9PiB4Lm93blxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ3RlbmFudHMvbXlfdGVuYW50cy94JyB9LFxyXG5cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cclxuICA8ZGl2PlxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cInRpdGxlXCIgPk9yZ2FuaXNhdGlvbiBEZXRhaWxzPC9sYWJlbD5cclxuICAgIDxociBzdHlsZT1cIm1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4O1wiPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJjdXJyVGVuYW50ICYmIHBsYW5cIiBjbGFzcz1cIm1iLTIgbXQtMyB0aW4tZ3JpZFwiIHN0eWxlPVwiIGZvbnQtc2l6ZTogMTRweDtcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aW4tY29sIG1iLTNcIiBzdHlsZT1cIm1heC13aWR0aDogNTAwcHg7XCI+XHJcbiAgICAgICAgPHNwYS1zZWxlY3QgZGlzcGxheT1cIkN1cnJlbnQgT3JnYW5pc2F0aW9uXCIgW29wdGlvbnNdPVwidGVuYW50c1wiIG9wdGlvbkRpc3BsYXk9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ0ZW5hbnRJRFwiIFsodmFsdWUpXT1cImN1cnJlbnRUZW5hbnRJRFwiXHJcbiAgICAgICAgICBoaW50PVwiWW91IGFyZSByZXF1aXJlZCB0byBsb2dpbiBhZ2FpbiBhZnRlciBzd2l0Y2hpbmcgb3JnYW5pc2F0aW9ucy5cIiBzdHlsZT1cIm1pbi13aWR0aDogMzAwcHg7bWFyZ2luLWJvdHRvbTogMTBweDtcIj48L3NwYS1zZWxlY3Q+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImN1cnJlbnRUZW5hbnRJRCA9PSBjdXJyVGVuYW50LnRlbmFudElEXCIgKGNsaWNrKT1cInN3aXRjaFRlbmFudCgpXCI+U3dpdGNoPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJvd25UZW5hbnRcIiA+XHJcbiA8IS0tIE1lbWJlcnMgLS0+XHJcbiAgPGRpdiBjbGFzcz1cIm10LTNcIiA+XHJcblxyXG4gICAgPGxhYmVsIGNsYXNzPVwidGl0bGVcIiA+TWVtYmVyczwvbGFiZWw+XHJcbiAgICA8aHIgc3R5bGU9XCJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDtcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWRcIj5JbnZpdGUgb3RoZXIgdXNlcnMgdG8gam9pbiB5b3VyIG9yZ2FuaXNhdGlvbiBhcyBwYXJ0bmVycyBvciBlbXBsb3llZXMgdG8gZm9ybSBhIHBhcnRuZXJzaGlwIG9yIGNvbXBhbnkuPC9sYWJlbD5cclxuXHJcbiAgICA8c3BhLXRhYmxlIFtjb25maWddPVwibWVtYmVyc1RhYmxlQ29uZmlnXCIgW3JlbG9hZF09XCJ0YWJsZVJlbG9hZFwiID48L3NwYS10YWJsZT5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuPCEtLSBNeSBPcmdhbmlzYXRpb25zIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJvd25UZW5hbnRcIj5cclxuXHJcbiAgICA8bGFiZWwgY2xhc3M9XCJ0aXRsZVwiID5NeSBPcmdhbmlzYXRpb25zPC9sYWJlbD5cclxuICAgIDxociBzdHlsZT1cIm1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4O1wiPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwic3VidGl0bGUgdGV4dC1tdXRlZFwiPk9yZ2FuaXNhdGlvbnMgdGhhdCB5b3UgYXJlIGEgbWVtYmVyIG9mLjwvbGFiZWw+XHJcblxyXG4gICAgPHNwYS10YWJsZSBbY29uZmlnXT1cIm9yZ3NUYWJsZUNvbmZpZ1wiIFtyZWxvYWRdPVwib3Jnc1JlbG9hZFwiIChhY3Rpb25SZXNwb25zZSk9XCJ1cGRhdGVUZW5hbnQoJGV2ZW50KVwiPjwvc3BhLXRhYmxlPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDwhLS0gTXkgSW52aXRhdGlvbnMgLS0+XHJcbiAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cIm93blRlbmFudFwiPlxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cInRpdGxlXCI+TXkgSW52aXRhdGlvbnM8L2xhYmVsPlxyXG4gICAgPGhyIHN0eWxlPVwibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJzdWJ0aXRsZSB0ZXh0LW11dGVkXCI+UmVxdWVzdHMgZm9yIHlvdSB0byBqb2luIG90aGVyIG9yZ2FuaXNhdGlvbnMuPC9sYWJlbD5cclxuXHJcblxyXG4gICAgPHNwYS1pbnZpdGF0aW9ucy10YWJsZT48L3NwYS1pbnZpdGF0aW9ucy10YWJsZT5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gQmlsbGluZyAtLT5cclxuICA8ZGl2IGNsYXNzPVwibXQtMyBtYi01XCIgKm5nSWY9XCJvd25UZW5hbnRcIj5cclxuXHJcbiAgICA8bGFiZWwgY2xhc3M9XCJ0aXRsZVwiID5CaWxsaW5nIGFuZCBTdWJzY3JpcHRpb248L2xhYmVsPlxyXG4gICAgPGhyIHN0eWxlPVwibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7XCI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY3VyclRlbmFudCAmJiBwbGFuXCIgY2xhc3M9XCJtYi0xIG10LTNcIiBzdHlsZT1cIm1heC13aWR0aDogMzAwcHg7IGZvbnQtc2l6ZTogMTRweDtcIj5cclxuICAgICAgICA8c3BhLWxhYmVsIGRpc3BsYXk9XCJQbGFuXCIgW3ZhbHVlXT1cInBsYW4ubmFtZVwiPjwvc3BhLWxhYmVsPlxyXG4gICAgICAgIDxzcGEtbGFiZWwgZGlzcGxheT1cIk5leHQgUGF5bWVudFwiIGZvcm1hdD1cIm1vbmV5XCIgW3ZhbHVlXT1cInBsYW4ucHJpY2VcIj48L3NwYS1sYWJlbD5cclxuICAgICAgICA8c3BhLWxhYmVsIGRpc3BsYXk9XCJEdWUgRGF0ZVwiIGZvcm1hdD1cImRhdGVcIiB2YWx1ZT1cIjIwMjQtMDEtMDFcIj48L3NwYS1sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcblxyXG48L2Rpdj5cclxuXHJcblxyXG4iXX0=
|
|
@@ -16,7 +16,7 @@ export class TenantsComponent {
|
|
|
16
16
|
],
|
|
17
17
|
reset: true,
|
|
18
18
|
};
|
|
19
|
-
this.
|
|
19
|
+
this.tenantsTableConfig = {
|
|
20
20
|
showFilter: true,
|
|
21
21
|
minColumns: ['name'],
|
|
22
22
|
flatButtons: true,
|
|
@@ -26,12 +26,12 @@ export class TenantsComponent {
|
|
|
26
26
|
{ name: 'planName', alias: 'Plan', type: 'text' },
|
|
27
27
|
],
|
|
28
28
|
buttons: [
|
|
29
|
-
{ name: 'create', display: 'Create', dialog: true, action: { url: '
|
|
29
|
+
{ name: 'create', display: 'Create', dialog: true, action: { url: 'tenants?action=create', method: 'post' } },
|
|
30
30
|
{ name: 'view', dialog: true },
|
|
31
|
-
{ name: 'edit', dialog: true, action: { url: '
|
|
32
|
-
{ name: 'delete', dialog: true, action: { url: '
|
|
31
|
+
{ name: 'edit', dialog: true, action: { url: 'tenants?action=edit', method: 'post' } },
|
|
32
|
+
{ name: 'delete', dialog: true, action: { url: 'tenants?action=delete', method: 'post' } },
|
|
33
33
|
],
|
|
34
|
-
loadAction: { url: '
|
|
34
|
+
loadAction: { url: 'tenants/all_tenants/x' },
|
|
35
35
|
formConfig: this.formConfig
|
|
36
36
|
};
|
|
37
37
|
}
|
|
@@ -39,9 +39,9 @@ export class TenantsComponent {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
TenantsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TenantsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
-
TenantsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TenantsComponent, selector: "spa-tenants", ngImport: i0, template: "<h4>Tenants</h4>\n<hr>\n\n\n<div class=\" mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"
|
|
42
|
+
TenantsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TenantsComponent, selector: "spa-tenants", ngImport: i0, template: "<h4>Tenants</h4>\n<hr>\n\n\n<div class=\" mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"tenantsTableConfig\" ></spa-table>\n</div>\n", styles: [".title{margin-top:1em;font-size:larger;font-weight:300}\n"], dependencies: [{ kind: "component", type: i4.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "tileData", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }] });
|
|
43
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TenantsComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
|
-
args: [{ selector: 'spa-tenants', template: "<h4>Tenants</h4>\n<hr>\n\n\n<div class=\" mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"
|
|
45
|
+
args: [{ selector: 'spa-tenants', template: "<h4>Tenants</h4>\n<hr>\n\n\n<div class=\" mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"tenantsTableConfig\" ></spa-table>\n</div>\n", styles: [".title{margin-top:1em;font-size:larger;font-weight:300}\n"] }]
|
|
46
46
|
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.AuthService }]; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvcGFnZXMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBV2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBb0IsV0FBMkIsRUFBVSxjQUE4QixFQUFTLFdBQXdCO1FBQXBHLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBT3hILGVBQVUsR0FBZTtZQUV2QixNQUFNLEVBQUU7Z0JBQ04sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0RCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7YUFDbEU7WUFFRCxLQUFLLEVBQUUsSUFBSTtTQUVaLENBQUE7UUFFRCx1QkFBa0IsR0FBZ0I7WUFDaEMsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ3BCLFdBQVcsRUFBRSxJQUFJO1lBRWpCLE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO2dCQUNqRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtnQkFDOUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTthQUVuRDtZQUVELE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUM7Z0JBQzVHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUM5QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0RixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2FBQzNGO1lBRUQsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFO1lBRTVDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUU1QixDQUFBO0lBekMySCxDQUFDO0lBRTdILFFBQVE7SUFDUixDQUFDOzs2R0FMVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixtRENYN0IscUpBT0E7MkZESWEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Db25maWcsIFRhYmxlQ29uZmlnLCBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtdGVuYW50cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RlbmFudHMuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGZvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcblxyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlLCBtaW46IDIgfSxcclxuICAgICAgeyBuYW1lOiAncGxhbklEJywgYWxpYXMgOidQbGFuJywgdHlwZTogJ251bWJlcicsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICBdLFxyXG5cclxuICAgIHJlc2V0OiB0cnVlLFxyXG5cclxuICB9XHJcblxyXG4gIHRlbmFudHNUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcbiAgICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWyduYW1lJ10sXHJcbiAgICBmbGF0QnV0dG9uczogdHJ1ZSxcclxuXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ3RlbmFudElEJywgdHlwZTogJ251bWJlcicsIGFsaWFzOiAnSUQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncGxhbk5hbWUnLCBhbGlhcyA6ICdQbGFuJywgdHlwZTogJ3RleHQnIH0sXHJcblxyXG4gICAgXSxcclxuXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdDcmVhdGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICd0ZW5hbnRzP2FjdGlvbj1jcmVhdGUnLCBtZXRob2Q6ICdwb3N0JyB9fSxcclxuICAgICAgeyBuYW1lOiAndmlldycsIGRpYWxvZzogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdlZGl0JywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAndGVuYW50cz9hY3Rpb249ZWRpdCcsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAgeyBuYW1lOiAnZGVsZXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAndGVuYW50cz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ3RlbmFudHMvYWxsX3RlbmFudHMveCcgfSxcclxuXHJcbiAgICBmb3JtQ29uZmlnOiB0aGlzLmZvcm1Db25maWdcclxuXHJcbiAgfVxyXG59XHJcbiIsIjxoND5UZW5hbnRzPC9oND5cbjxocj5cblxuXG48ZGl2IGNsYXNzPVwiIG10LTNcIiBzdHlsZT1cIiBmb250LXNpemU6IDE0cHg7XCI+XG4gIDxzcGEtdGFibGUgW2NvbmZpZ109XCJ0ZW5hbnRzVGFibGVDb25maWdcIiA+PC9zcGEtdGFibGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -68,7 +68,7 @@ export class transactDialog {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
transactDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: transactDialog, deps: [{ token: i1.LoaderService }, { token: i2.MessageService }, { token: i3.DataServiceLib }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
-
transactDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: transactDialog, selector: "app-quanityDiag", ngImport: i0, template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px\">\r\n\r\n <spa-select *ngIf=\"action == 'transfer'\" [(value)]=\"txn.destinationID\" display=\"Transfer to\" [options]=\"accounts\" optionDisplay=\"name\" optionValue=\"accountID\"></spa-select>\r\n\r\n <spa-date display=\"Date\" [(value)]=\"txn.date\"></spa-date>\r\n <spa-money display=\"Amount\" [(value)]=\"txn.amount\"></spa-money>\r\n <spa-text display=\"Narration\" [(value)]=\"txn.narration\"></spa-text>\r\n <spa-select display=\"Category\" [(value)]=\"txn.categoryID\" [options]=\"categories\" optionDisplay=\"name\" optionValue=\"listItemID\" [defaultFirstValue]=\"true\"></spa-select>\r\n\r\n\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button [disabled]=\"isProcessing\" cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.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"
|
|
71
|
+
transactDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: transactDialog, selector: "app-quanityDiag", ngImport: i0, template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px\">\r\n\r\n <spa-select *ngIf=\"action == 'transfer'\" [(value)]=\"txn.destinationID\" display=\"Transfer to\" [options]=\"accounts\" optionDisplay=\"name\" optionValue=\"accountID\"></spa-select>\r\n\r\n <spa-date display=\"Date\" [(value)]=\"txn.date\"></spa-date>\r\n <spa-money display=\"Amount\" [(value)]=\"txn.amount\"></spa-money>\r\n <spa-text display=\"Narration\" [(value)]=\"txn.narration\"></spa-text>\r\n <spa-select display=\"Category\" [(value)]=\"txn.categoryID\" [options]=\"categories\" optionDisplay=\"name\" optionValue=\"listItemID\" [defaultFirstValue]=\"true\"></spa-select>\r\n\r\n\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button [disabled]=\"isProcessing\" cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.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: i8.DateComponent, selector: "spa-date", inputs: ["required", "min", "max", "readonly", "hint", "value", "display", "placeholder", "width", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i9.SelectComponent, selector: "spa-select", inputs: ["peekConfig"] }, { kind: "component", type: i10.MoneyComponent, selector: "spa-money", inputs: ["readonly", "hint", "display", "placeholder", "value", "width", "currency", "required", "min", "max", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] });
|
|
72
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: transactDialog, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{ selector: 'app-quanityDiag', template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px\">\r\n\r\n <spa-select *ngIf=\"action == 'transfer'\" [(value)]=\"txn.destinationID\" display=\"Transfer to\" [options]=\"accounts\" optionDisplay=\"name\" optionValue=\"accountID\"></spa-select>\r\n\r\n <spa-date display=\"Date\" [(value)]=\"txn.date\"></spa-date>\r\n <spa-money display=\"Amount\" [(value)]=\"txn.amount\"></spa-money>\r\n <spa-text display=\"Narration\" [(value)]=\"txn.narration\"></spa-text>\r\n <spa-select display=\"Category\" [(value)]=\"txn.categoryID\" [options]=\"categories\" optionDisplay=\"name\" optionValue=\"listItemID\" [defaultFirstValue]=\"true\"></spa-select>\r\n\r\n\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button [disabled]=\"isProcessing\" cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
|
|
@@ -93,7 +93,7 @@ export class TransactionsComponent {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
TransactionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.BreakpointObserver }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
96
|
-
TransactionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TransactionsComponent, selector: "spa-transactions", ngImport: i0, template: "<!-- <h4>Transactions ({{account?.name}})</h4>\n<hr> -->\n\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\n\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\n\n <div>\n <button mat-mini-fab color=\"primary\" style=\"margin-right:1em;padding-left: 0;\" (click)=\"cats()\" matTooltip=\"Categories\" matTooltipPosition=\"above\"><mat-icon>category</mat-icon></button>\n </div>\n\n</div>\n<hr>\n\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\n\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\n </div>\n\n <div *ngIf=\"!smallScreen\">\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\n </div>\n\n</div>\n\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\n\n<div *ngIf=\"smallScreen; then buttons\" ></div>\n\n<ng-template #buttons >\n <div class=\"tin-row actionbuttons\">\n <button mat-stroked-button style=\"color: green;\" (click)=\"transact('income','')\"><mat-icon class=\"sign\">add</mat-icon>Income</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: red;\" (click)=\"transact('expense','')\"><mat-icon class=\"sign\">remove</mat-icon>Expense</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: orange;\" (click)=\"transact('transfer','')\" ><mat-icon class=\"sign\">sync_alt</mat-icon>Transfer</button> <mat-icon class=\"info\">info</mat-icon>\n </div>\n</ng-template>\n\n\n\n<div style=\" font-size: 14px;\">\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\n</div>\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.FilterComponent, selector: "spa-filter", inputs: ["flatButtons", "showText", "showButton", "data"], outputs: ["refreshClick"] }, { kind: "component", type: i10.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "tileData", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }] });
|
|
96
|
+
TransactionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TransactionsComponent, selector: "spa-transactions", ngImport: i0, template: "<!-- <h4>Transactions ({{account?.name}})</h4>\n<hr> -->\n\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\n\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\n\n <div>\n <button mat-mini-fab color=\"primary\" style=\"margin-right:1em;padding-left: 0;\" (click)=\"cats()\" matTooltip=\"Categories\" matTooltipPosition=\"above\"><mat-icon>category</mat-icon></button>\n </div>\n\n</div>\n<hr>\n\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\n\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\n </div>\n\n <div *ngIf=\"!smallScreen\">\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\n </div>\n\n</div>\n\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\n\n<div *ngIf=\"smallScreen; then buttons\" ></div>\n\n<ng-template #buttons >\n <div class=\"tin-row actionbuttons\">\n <button mat-stroked-button style=\"color: green;\" (click)=\"transact('income','')\"><mat-icon class=\"sign\">add</mat-icon>Income</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: red;\" (click)=\"transact('expense','')\"><mat-icon class=\"sign\">remove</mat-icon>Expense</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: orange;\" (click)=\"transact('transfer','')\" ><mat-icon class=\"sign\">sync_alt</mat-icon>Transfer</button> <mat-icon class=\"info\">info</mat-icon>\n </div>\n</ng-template>\n\n\n\n<div style=\" font-size: 14px;\">\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\n</div>\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.FilterComponent, selector: "spa-filter", inputs: ["flatButtons", "showText", "showButton", "data"], outputs: ["refreshClick"] }, { kind: "component", type: i10.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "tileData", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }] });
|
|
97
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionsComponent, decorators: [{
|
|
98
98
|
type: Component,
|
|
99
99
|
args: [{ selector: 'spa-transactions', template: "<!-- <h4>Transactions ({{account?.name}})</h4>\n<hr> -->\n\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\n\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\n\n <div>\n <button mat-mini-fab color=\"primary\" style=\"margin-right:1em;padding-left: 0;\" (click)=\"cats()\" matTooltip=\"Categories\" matTooltipPosition=\"above\"><mat-icon>category</mat-icon></button>\n </div>\n\n</div>\n<hr>\n\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\n\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\n </div>\n\n <div *ngIf=\"!smallScreen\">\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\n </div>\n\n</div>\n\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\n\n<div *ngIf=\"smallScreen; then buttons\" ></div>\n\n<ng-template #buttons >\n <div class=\"tin-row actionbuttons\">\n <button mat-stroked-button style=\"color: green;\" (click)=\"transact('income','')\"><mat-icon class=\"sign\">add</mat-icon>Income</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: red;\" (click)=\"transact('expense','')\"><mat-icon class=\"sign\">remove</mat-icon>Expense</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: orange;\" (click)=\"transact('transfer','')\" ><mat-icon class=\"sign\">sync_alt</mat-icon>Transfer</button> <mat-icon class=\"info\">info</mat-icon>\n </div>\n</ng-template>\n\n\n\n<div style=\" font-size: 14px;\">\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\n</div>\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
|