tin-spa 14.3.11 → 14.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2020/lib/classes/Classes.mjs +53 -206
- package/esm2020/lib/classes/LibClasses.mjs +180 -0
- package/esm2020/lib/classes/TinCore.mjs +201 -42
- package/esm2020/lib/components/alert/alert.component.mjs +12 -6
- package/esm2020/lib/components/attach/attach.component.mjs +49 -33
- package/esm2020/lib/components/capsules/capsules.component.mjs +63 -0
- package/esm2020/lib/components/cards/cards.component.mjs +103 -0
- package/esm2020/lib/components/date/date.component.mjs +6 -6
- package/esm2020/lib/components/datetime/datetime.component.mjs +6 -3
- package/esm2020/lib/components/email/email.component.mjs +133 -0
- package/esm2020/lib/components/filter/filter.component.mjs +7 -3
- package/esm2020/lib/components/form/form.component.mjs +155 -53
- package/esm2020/lib/components/html/html.component.mjs +34 -0
- package/esm2020/lib/components/label/label.component.mjs +6 -3
- package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +3 -3
- package/esm2020/lib/components/money/money.component.mjs +26 -9
- package/esm2020/lib/components/multi-select/multi-select.component.mjs +165 -0
- package/esm2020/lib/components/multi-text/multi-text.component.mjs +208 -0
- package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +32 -28
- package/esm2020/lib/components/notes/notes.component.mjs +62 -0
- package/esm2020/lib/components/number/number.component.mjs +23 -8
- package/esm2020/lib/components/option/option.component.mjs +39 -14
- package/esm2020/lib/components/page/page.component.mjs +101 -0
- package/esm2020/lib/components/search/search.component.mjs +10 -5
- package/esm2020/lib/components/select/select.component.mjs +56 -119
- package/esm2020/lib/components/select-bitwise/select-bitwise.component.mjs +87 -0
- package/esm2020/lib/components/select-common/select-common.component.mjs +189 -0
- package/esm2020/lib/components/select-internal/select-internal.component.mjs +75 -0
- package/esm2020/lib/components/select-lite/select-lite.component.mjs +18 -0
- package/esm2020/lib/components/steps/steps.component.mjs +83 -61
- package/esm2020/lib/components/suffix/suffix.component.mjs +70 -0
- package/esm2020/lib/components/table/detailsDialog.component.mjs +179 -37
- package/esm2020/lib/components/table/table.component.mjs +142 -108
- package/esm2020/lib/components/table-action/table-action.component.mjs +42 -8
- package/esm2020/lib/components/table-header/table-header.component.mjs +87 -15
- package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +183 -35
- package/esm2020/lib/components/table-internal/table-internal.component.mjs +144 -109
- package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +371 -0
- package/esm2020/lib/components/table-lite/table-lite.component.mjs +441 -0
- package/esm2020/lib/components/table-row/table-row.component.mjs +41 -6
- package/esm2020/lib/components/text/text.component.mjs +97 -42
- package/esm2020/lib/components/tiles/tiles.component.mjs +44 -26
- package/esm2020/lib/components/viewer/viewer.component.mjs +7 -3
- package/esm2020/lib/components/viewer/viewerDialog.component.mjs +20 -13
- package/esm2020/lib/modules/admin/admin-routing.module.mjs +32 -22
- package/esm2020/lib/modules/index/index-routing.module.mjs +4 -4
- package/esm2020/lib/modules/spa-admin.module.mjs +7 -7
- package/esm2020/lib/modules/spa-index.module.mjs +4 -4
- package/esm2020/lib/modules/spa-user.module.mjs +3 -3
- package/esm2020/lib/modules/user/user-routing.module.mjs +3 -3
- package/esm2020/lib/pages/accounts/accountDialog.component.mjs +56 -0
- package/esm2020/lib/pages/accounts/accounts.component.mjs +70 -0
- package/esm2020/lib/pages/app-models/app-models.component.mjs +56 -0
- package/esm2020/lib/pages/approvals/approvals.component.mjs +19 -0
- package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +165 -0
- package/esm2020/lib/pages/bug/bug.component.mjs +14 -0
- package/esm2020/lib/pages/change-password/change-password.component.mjs +92 -0
- package/esm2020/lib/pages/create-account/create-account.component.mjs +110 -0
- package/esm2020/lib/pages/customers/customers.component.mjs +21 -0
- package/esm2020/lib/{components → pages}/departments/departments.component.mjs +3 -5
- package/esm2020/lib/pages/employees/employees.component.mjs +20 -0
- package/esm2020/lib/pages/grades/grades.component.mjs +14 -0
- package/esm2020/lib/pages/inventory/inventory.component.mjs +99 -0
- package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +53 -0
- package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +71 -0
- package/esm2020/lib/pages/login/login.component.mjs +166 -0
- package/esm2020/lib/pages/logs/logs.component.mjs +42 -0
- package/esm2020/lib/pages/membership/membership.component.mjs +44 -0
- package/esm2020/lib/pages/notifications/notifications.component.mjs +90 -0
- package/esm2020/lib/pages/notifications-config/notifications-config.component.mjs +113 -0
- package/esm2020/lib/pages/plans/plans.component.mjs +44 -0
- package/esm2020/lib/pages/positions/positions.component.mjs +21 -0
- package/esm2020/lib/pages/profile/profile.component.mjs +94 -0
- package/esm2020/lib/pages/recover-account/recover-account.component.mjs +46 -0
- package/esm2020/lib/{components → pages}/roles/addRoleDialog.component.mjs +3 -3
- package/esm2020/lib/pages/roles/roles.component.mjs +151 -0
- package/esm2020/lib/{components → pages}/settings/settings.component.mjs +2 -11
- package/esm2020/lib/pages/signup/signup.component.mjs +50 -0
- package/esm2020/lib/pages/suppliers/suppliers.component.mjs +22 -0
- package/esm2020/lib/pages/tasks/tasks.component.mjs +86 -0
- package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +228 -0
- package/esm2020/lib/pages/tenants/tenants.component.mjs +47 -0
- package/esm2020/lib/pages/transactions/transactDialog.component.mjs +80 -0
- package/esm2020/lib/pages/transactions/transactions.component.mjs +101 -0
- package/esm2020/lib/pages/users/users.component.mjs +141 -0
- package/esm2020/lib/pages/welcome/welcome.component.mjs +86 -0
- package/esm2020/lib/select-context.directive.mjs +23 -0
- package/esm2020/lib/services/auth.service.mjs +3 -2
- package/esm2020/lib/services/button.service.mjs +90 -30
- package/esm2020/lib/services/csv.service.mjs +49 -0
- package/esm2020/lib/services/datalib.service.mjs +504 -76
- package/esm2020/lib/services/dialog.service.mjs +24 -7
- package/esm2020/lib/services/log.service.mjs +2 -2
- package/esm2020/lib/services/notifications.service.mjs +33 -0
- package/esm2020/lib/services/table-config.service.mjs +55 -7
- package/esm2020/lib/tin-spa.module.mjs +70 -30
- package/esm2020/public-api.mjs +33 -25
- package/fesm2015/tin-spa.mjs +6258 -2345
- package/fesm2015/tin-spa.mjs.map +1 -1
- package/fesm2020/tin-spa.mjs +6308 -2336
- package/fesm2020/tin-spa.mjs.map +1 -1
- package/lib/classes/Classes.d.ts +244 -294
- package/lib/classes/LibClasses.d.ts +173 -0
- package/lib/classes/TinCore.d.ts +13 -3
- package/lib/components/attach/attach.component.d.ts +13 -6
- package/lib/components/capsules/capsules.component.d.ts +26 -0
- package/lib/components/cards/cards.component.d.ts +39 -0
- package/lib/components/datetime/datetime.component.d.ts +2 -1
- package/lib/components/email/email.component.d.ts +40 -0
- package/lib/components/filter/filter.component.d.ts +1 -0
- package/lib/components/form/form.component.d.ts +20 -9
- package/lib/components/html/html.component.d.ts +16 -0
- package/lib/components/label/label.component.d.ts +2 -1
- package/lib/components/money/money.component.d.ts +8 -1
- package/lib/components/multi-select/multi-select.component.d.ts +47 -0
- package/lib/components/multi-text/multi-text.component.d.ts +56 -0
- package/lib/components/nav-menu/nav-menu.component.d.ts +6 -2
- package/lib/components/notes/notes.component.d.ts +19 -0
- package/lib/components/number/number.component.d.ts +7 -1
- package/lib/components/option/option.component.d.ts +11 -2
- package/lib/components/page/page.component.d.ts +38 -0
- package/lib/components/search/search.component.d.ts +3 -1
- package/lib/components/select/select.component.d.ts +16 -35
- package/lib/components/select-bitwise/select-bitwise.component.d.ts +31 -0
- package/lib/components/select-common/select-common.component.d.ts +50 -0
- package/lib/components/select-internal/select-internal.component.d.ts +23 -0
- package/lib/components/select-lite/select-lite.component.d.ts +8 -0
- package/lib/components/steps/steps.component.d.ts +18 -9
- package/lib/components/suffix/suffix.component.d.ts +23 -0
- package/lib/components/table/detailsDialog.component.d.ts +24 -7
- package/lib/components/table/table.component.d.ts +18 -9
- package/lib/components/table-action/table-action.component.d.ts +4 -1
- package/lib/components/table-header/table-header.component.d.ts +19 -4
- package/lib/components/table-internal/detailsDialog-internal.component.d.ts +24 -7
- package/lib/components/table-internal/table-internal.component.d.ts +18 -9
- package/lib/components/table-lite/detailsDialog-lite.component.d.ts +81 -0
- package/lib/components/table-lite/table-lite.component.d.ts +91 -0
- package/lib/components/table-row/table-row.component.d.ts +5 -2
- package/lib/components/text/text.component.d.ts +17 -4
- package/lib/components/tiles/tiles.component.d.ts +7 -4
- package/lib/components/viewer/viewerDialog.component.d.ts +3 -1
- package/lib/modules/spa-admin.module.d.ts +6 -6
- package/lib/modules/spa-index.module.d.ts +3 -3
- package/lib/modules/spa-user.module.d.ts +2 -2
- package/lib/pages/app-models/app-models.component.d.ts +15 -0
- package/lib/pages/approvals/approvals.component.d.ts +10 -0
- package/lib/pages/approvals-config/approvals-config.component.d.ts +24 -0
- package/lib/{components → pages}/change-password/change-password.component.d.ts +1 -1
- package/lib/{components → pages}/create-account/create-account.component.d.ts +2 -1
- package/lib/{components → pages}/customers/customers.component.d.ts +2 -8
- package/lib/{components → pages}/invitations-table/invitations-table.component.d.ts +1 -1
- package/lib/{components → pages}/login/login.component.d.ts +10 -3
- package/lib/{components → pages}/logs/logs.component.d.ts +2 -6
- package/lib/{components → pages}/membership/membership.component.d.ts +2 -6
- package/lib/pages/notifications/notifications.component.d.ts +16 -0
- package/lib/pages/notifications-config/notifications-config.component.d.ts +17 -0
- package/lib/{components → pages}/plans/plans.component.d.ts +2 -6
- package/lib/{components → pages}/profile/profile.component.d.ts +2 -1
- package/lib/{components → pages}/roles/addRoleDialog.component.d.ts +1 -1
- package/lib/{components → pages}/roles/roles.component.d.ts +15 -3
- package/lib/{components → pages}/signup/signup.component.d.ts +1 -1
- package/lib/{components → pages}/suppliers/suppliers.component.d.ts +1 -4
- package/lib/{components → pages}/tasks/tasks.component.d.ts +1 -1
- package/lib/{components → pages}/tenant-settings/tenant-settings.component.d.ts +12 -7
- package/lib/{components → pages}/tenants/tenants.component.d.ts +2 -2
- package/lib/{components → pages}/users/users.component.d.ts +8 -16
- package/lib/select-context.directive.d.ts +10 -0
- package/lib/services/auth.service.d.ts +1 -1
- package/lib/services/button.service.d.ts +10 -7
- package/lib/services/csv.service.d.ts +10 -0
- package/lib/services/datalib.service.d.ts +55 -10
- package/lib/services/dialog.service.d.ts +2 -2
- package/lib/services/log.service.d.ts +1 -1
- package/lib/services/notifications.service.d.ts +12 -0
- package/lib/services/table-config.service.d.ts +9 -1
- package/lib/tin-spa.module.d.ts +51 -33
- package/package.json +1 -1
- package/public-api.d.ts +31 -23
- package/esm2020/lib/components/accounts/accountDialog.component.mjs +0 -56
- package/esm2020/lib/components/accounts/accounts.component.mjs +0 -70
- package/esm2020/lib/components/bug/bug.component.mjs +0 -14
- package/esm2020/lib/components/change-password/change-password.component.mjs +0 -92
- package/esm2020/lib/components/create-account/create-account.component.mjs +0 -109
- package/esm2020/lib/components/customers/customers.component.mjs +0 -60
- package/esm2020/lib/components/employees/employees.component.mjs +0 -21
- package/esm2020/lib/components/grades/grades.component.mjs +0 -14
- package/esm2020/lib/components/inventory/inventory.component.mjs +0 -99
- package/esm2020/lib/components/inventory/quantityDialog.component.mjs +0 -53
- package/esm2020/lib/components/invitations/invitations.component.mjs +0 -14
- package/esm2020/lib/components/invitations-table/invitations-table.component.mjs +0 -70
- package/esm2020/lib/components/login/login.component.mjs +0 -127
- package/esm2020/lib/components/logs/logs.component.mjs +0 -37
- package/esm2020/lib/components/membership/membership.component.mjs +0 -48
- package/esm2020/lib/components/notifications/notifications.component.mjs +0 -14
- package/esm2020/lib/components/plans/plans.component.mjs +0 -47
- package/esm2020/lib/components/positions/positions.component.mjs +0 -21
- package/esm2020/lib/components/profile/profile.component.mjs +0 -92
- package/esm2020/lib/components/recover-account/recover-account.component.mjs +0 -46
- package/esm2020/lib/components/roles/roles.component.mjs +0 -91
- package/esm2020/lib/components/signup/signup.component.mjs +0 -50
- package/esm2020/lib/components/suppliers/suppliers.component.mjs +0 -50
- package/esm2020/lib/components/tasks/tasks.component.mjs +0 -86
- package/esm2020/lib/components/tenant-settings/inviteDialog.component.mjs +0 -60
- package/esm2020/lib/components/tenant-settings/tenant-settings.component.mjs +0 -155
- package/esm2020/lib/components/tenants/tenants.component.mjs +0 -47
- package/esm2020/lib/components/transactions/transactDialog.component.mjs +0 -80
- package/esm2020/lib/components/transactions/transactions.component.mjs +0 -101
- package/esm2020/lib/components/users/users.component.mjs +0 -118
- package/esm2020/lib/components/welcome/welcome.component.mjs +0 -86
- package/lib/components/invitations/invitations.component.d.ts +0 -8
- package/lib/components/notifications/notifications.component.d.ts +0 -8
- package/lib/components/tenant-settings/inviteDialog.component.d.ts +0 -28
- /package/lib/{components → pages}/accounts/accountDialog.component.d.ts +0 -0
- /package/lib/{components → pages}/accounts/accounts.component.d.ts +0 -0
- /package/lib/{components → pages}/bug/bug.component.d.ts +0 -0
- /package/lib/{components → pages}/departments/departments.component.d.ts +0 -0
- /package/lib/{components → pages}/employees/employees.component.d.ts +0 -0
- /package/lib/{components → pages}/grades/grades.component.d.ts +0 -0
- /package/lib/{components → pages}/inventory/inventory.component.d.ts +0 -0
- /package/lib/{components → pages}/inventory/quantityDialog.component.d.ts +0 -0
- /package/lib/{components → pages}/positions/positions.component.d.ts +0 -0
- /package/lib/{components → pages}/recover-account/recover-account.component.d.ts +0 -0
- /package/lib/{components → pages}/settings/settings.component.d.ts +0 -0
- /package/lib/{components → pages}/transactions/transactDialog.component.d.ts +0 -0
- /package/lib/{components → pages}/transactions/transactions.component.d.ts +0 -0
- /package/lib/{components → pages}/welcome/welcome.component.d.ts +0 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { transactDialog } from './transactDialog.component';
|
|
4
|
+
import { ListDialogComponent } from '../../components/list-dialog/list-dialog.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services/datalib.service";
|
|
7
|
+
import * as i2 from "../../services/message.service";
|
|
8
|
+
import * as i3 from "@angular/cdk/layout";
|
|
9
|
+
import * as i4 from "@angular/material/dialog";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
import * as i6 from "@angular/material/button";
|
|
12
|
+
import * as i7 from "@angular/material/icon";
|
|
13
|
+
import * as i8 from "@angular/material/tooltip";
|
|
14
|
+
import * as i9 from "../../components/filter/filter.component";
|
|
15
|
+
import * as i10 from "../../components/table/table.component";
|
|
16
|
+
export class TransactionsComponent {
|
|
17
|
+
constructor(dataService, messageService, breakpointObserver, dialog) {
|
|
18
|
+
this.dataService = dataService;
|
|
19
|
+
this.messageService = messageService;
|
|
20
|
+
this.breakpointObserver = breakpointObserver;
|
|
21
|
+
this.dialog = dialog;
|
|
22
|
+
this.accounts = [];
|
|
23
|
+
this.transactions = [];
|
|
24
|
+
this.categories = [];
|
|
25
|
+
this.reload = new Subject();
|
|
26
|
+
this.config = {
|
|
27
|
+
minColumns: ['date', 'narration', 'amount'],
|
|
28
|
+
minButtons: ['edit', 'delete'],
|
|
29
|
+
flatButtons: true,
|
|
30
|
+
columns: [
|
|
31
|
+
{ name: 'date', type: 'date' },
|
|
32
|
+
{ name: 'narration', type: 'text' },
|
|
33
|
+
{ name: 'amount', type: 'money', color: { name: 'red', condition: x => x.type == 0 }, icons: [{ name: 'arrow_right_alt', condition: x => x.link != '' && x.type == 0 }, { name: 'keyboard_backspace', condition: x => x.link != '' && x.type == 1 }] },
|
|
34
|
+
{ name: 'categoryName', alias: 'Category', type: 'text' },
|
|
35
|
+
],
|
|
36
|
+
buttons: [
|
|
37
|
+
{ name: 'edit', disabled: x => x.link != '' && x.type == 1 },
|
|
38
|
+
{ name: 'delete', dialog: true, action: { url: 'general/transactions?action=delete', method: 'post' }, disabled: x => x.link != '' && x.type == 1 },
|
|
39
|
+
],
|
|
40
|
+
};
|
|
41
|
+
// detect screen size changes
|
|
42
|
+
this.breakpointObserver.observe(["(max-width: 600px)"]).subscribe((result) => {
|
|
43
|
+
if (result.matches) {
|
|
44
|
+
this.smallScreen = true;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.smallScreen = false;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
ngOnInit() {
|
|
52
|
+
this.accountID = this.dataService.GetNavigationValue();
|
|
53
|
+
this.loadData();
|
|
54
|
+
}
|
|
55
|
+
cats() {
|
|
56
|
+
let conf = { title: "Transaction Categories", name: 'Category', listName: 'TransactionCategories' };
|
|
57
|
+
const dialogRef = this.dialog.open(ListDialogComponent, {
|
|
58
|
+
width: "900px",
|
|
59
|
+
data: conf,
|
|
60
|
+
});
|
|
61
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
62
|
+
if (result == 'success') {
|
|
63
|
+
this.loadData();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
actionClicked(x) {
|
|
68
|
+
if (x.name == "edit") {
|
|
69
|
+
this.transact('edit', x.data);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
loadData() {
|
|
73
|
+
this.dataService.CallApi({ url: 'general/transactions/' + this.accountID }, '').subscribe((apiResponse) => {
|
|
74
|
+
this.account = apiResponse.data.account;
|
|
75
|
+
this.accounts = apiResponse.data.accounts;
|
|
76
|
+
this.transactions = apiResponse.data.transactions;
|
|
77
|
+
this.categories = apiResponse.data.categories;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
transact(x, data) {
|
|
81
|
+
const dialogRef = this.dialog.open(transactDialog, {
|
|
82
|
+
width: "500px",
|
|
83
|
+
data: { action: x, account: this.account, data: data, accounts: this.accounts, categories: this.categories },
|
|
84
|
+
});
|
|
85
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
86
|
+
if (result == 'success') {
|
|
87
|
+
this.loadData();
|
|
88
|
+
this.messageService.toast("Updated");
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
transfer() {
|
|
93
|
+
}
|
|
94
|
+
}
|
|
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>\r\n<hr> -->\r\n\r\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\r\n\r\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\r\n\r\n <div>\r\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>\r\n </div>\r\n\r\n</div>\r\n<hr>\r\n\r\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\r\n\r\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\r\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\r\n </div>\r\n\r\n <div *ngIf=\"!smallScreen\">\r\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\r\n\r\n<div *ngIf=\"smallScreen; then buttons\" ></div>\r\n\r\n<ng-template #buttons >\r\n <div class=\"tin-row actionbuttons\">\r\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>\r\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>\r\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>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<div style=\" font-size: 14px;\">\r\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\r\n</div>\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: "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: ["data", "tileData", "config", "reload", "activeTab", "inTab"], outputs: ["dataLoad", "actionSuccess", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }] });
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionsComponent, decorators: [{
|
|
98
|
+
type: Component,
|
|
99
|
+
args: [{ selector: 'spa-transactions', template: "<!-- <h4>Transactions ({{account?.name}})</h4>\r\n<hr> -->\r\n\r\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\r\n\r\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\r\n\r\n <div>\r\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>\r\n </div>\r\n\r\n</div>\r\n<hr>\r\n\r\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\r\n\r\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\r\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\r\n </div>\r\n\r\n <div *ngIf=\"!smallScreen\">\r\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\r\n\r\n<div *ngIf=\"smallScreen; then buttons\" ></div>\r\n\r\n<ng-template #buttons >\r\n <div class=\"tin-row actionbuttons\">\r\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>\r\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>\r\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>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<div style=\" font-size: 14px;\">\r\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\r\n</div>\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"] }]
|
|
100
|
+
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.BreakpointObserver }, { type: i4.MatDialog }]; } });
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7OztBQU96RixNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW9CLFdBQTJCLEVBQVUsY0FBOEIsRUFBVSxrQkFBc0MsRUFBUyxNQUFpQjtRQUE3SSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQStFakssYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsV0FBTSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBR3pDLFdBQU0sR0FBZ0I7WUFFcEIsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxRQUFRLENBQUM7WUFDekMsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUM5QixXQUFXLEVBQUUsSUFBSTtZQUVqQixP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LENBQUE7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBRVIsQ0FBQzs7a0hBN0VVLHFCQUFxQjtzR0FBckIscUJBQXFCLHdEQ2hCbEMsNmdFQTZDQTsyRkQ3QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbmZpZywgTGlzdERpYWxvZ0NvbmZpZywgVGFibGVDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgdHJhbnNhY3REaWFsb2cgfSBmcm9tICcuL3RyYW5zYWN0RGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IExpc3REaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2xpc3QtZGlhbG9nL2xpc3QtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS10cmFuc2FjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFuc2FjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYW5zYWN0aW9ucy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlciwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcblxyXG4gICAgLy8gZGV0ZWN0IHNjcmVlbiBzaXplIGNoYW5nZXNcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW1wiKG1heC13aWR0aDogNjAwcHgpXCJdKS5zdWJzY3JpYmUoKHJlc3VsdDogQnJlYWtwb2ludFN0YXRlKSA9PiB7XHJcblxyXG4gICAgICBpZiAocmVzdWx0Lm1hdGNoZXMpIHtcclxuICAgICAgICB0aGlzLnNtYWxsU2NyZWVuID0gdHJ1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc21hbGxTY3JlZW4gPSBmYWxzZVxyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWNjb3VudElEID0gdGhpcy5kYXRhU2VydmljZS5HZXROYXZpZ2F0aW9uVmFsdWUoKVxyXG4gICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgY2F0cygpIHtcclxuXHJcbiAgICBsZXQgY29uZjogTGlzdERpYWxvZ0NvbmZpZyA9IHsgdGl0bGU6IFwiVHJhbnNhY3Rpb24gQ2F0ZWdvcmllc1wiLCBuYW1lOiAnQ2F0ZWdvcnknLCBsaXN0TmFtZTogJ1RyYW5zYWN0aW9uQ2F0ZWdvcmllcycgfVxyXG5cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTGlzdERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogXCI5MDBweFwiLFxyXG4gICAgICBkYXRhOiBjb25mLFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGFjdGlvbkNsaWNrZWQoeCl7XHJcblxyXG4gICAgaWYgKHgubmFtZSA9PSBcImVkaXRcIil7XHJcbiAgICAgIHRoaXMudHJhbnNhY3QoJ2VkaXQnLCB4LmRhdGEpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZERhdGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ2dlbmVyYWwvdHJhbnNhY3Rpb25zLycgKyB0aGlzLmFjY291bnRJRCB9LCcnKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlIDogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuYWNjb3VudCA9IGFwaVJlc3BvbnNlLmRhdGEuYWNjb3VudDtcclxuICAgICAgdGhpcy5hY2NvdW50cyA9IGFwaVJlc3BvbnNlLmRhdGEuYWNjb3VudHM7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25zID0gYXBpUmVzcG9uc2UuZGF0YS50cmFuc2FjdGlvbnM7XHJcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IGFwaVJlc3BvbnNlLmRhdGEuY2F0ZWdvcmllcztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHRyYW5zYWN0KHgsIGRhdGEpIHtcclxuXHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKHRyYW5zYWN0RGlhbG9nLCB7XHJcbiAgICAgIHdpZHRoOiBcIjUwMHB4XCIsXHJcbiAgICAgIGRhdGE6IHsgYWN0aW9uOiB4LCBhY2NvdW50OiB0aGlzLmFjY291bnQsIGRhdGE6IGRhdGEsIGFjY291bnRzOiB0aGlzLmFjY291bnRzLCBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcblxyXG4gICAgICBpZiAocmVzdWx0ID09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIHRoaXMubG9hZERhdGEoKVxyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJVcGRhdGVkXCIpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmZXIoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgc21hbGxTY3JlZW5cclxuICBhY2NvdW50O1xyXG4gIGFjY291bnRzID0gW107XHJcbiAgdHJhbnNhY3Rpb25zID0gW107XHJcbiAgYWNjb3VudElEO1xyXG4gIGNhdGVnb3JpZXMgPSBbXTtcclxuICByZWxvYWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuXHJcbiAgY29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuXHJcbiAgICBtaW5Db2x1bW5zOiBbJ2RhdGUnLCduYXJyYXRpb24nLCdhbW91bnQnXSxcclxuICAgIG1pbkJ1dHRvbnM6IFsnZWRpdCcsICdkZWxldGUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG5cclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZGF0ZScsIHR5cGU6ICdkYXRlJyB9LFxyXG4gICAgICB7IG5hbWU6ICduYXJyYXRpb24nLCB0eXBlOiAndGV4dCd9LFxyXG4gICAgICB7IG5hbWU6ICdhbW91bnQnLCB0eXBlOiAnbW9uZXknLCBjb2xvcjogeyBuYW1lOiAncmVkJywgY29uZGl0aW9uOiB4ID0+IHgudHlwZSA9PSAwIH0sIGljb25zOiBbeyBuYW1lOiAnYXJyb3dfcmlnaHRfYWx0JywgY29uZGl0aW9uOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMCB9LCB7IG5hbWU6ICdrZXlib2FyZF9iYWNrc3BhY2UnLCBjb25kaXRpb246IHggPT4geC5saW5rICE9ICcnICYmIHgudHlwZSA9PSAxIH1dIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NhdGVnb3J5TmFtZScsYWxpYXMgOiAnQ2F0ZWdvcnknLCB0eXBlOiAndGV4dCcgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG5cclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGRpc2FibGVkOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMSB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdnZW5lcmFsL3RyYW5zYWN0aW9ucz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSwgZGlzYWJsZWQgOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMX0sXHJcbiAgICBdLFxyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gPGg0PlRyYW5zYWN0aW9ucyAoe3thY2NvdW50Py5uYW1lfX0pPC9oND5cclxuPGhyPiAtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTBcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxMHB4XCI+XHJcblxyXG4gIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMTZweDtcIj5UcmFuc2FjdGlvbnMgKHt7YWNjb3VudD8ubmFtZX19KTwvbGFiZWw+XHJcblxyXG4gIDxkaXY+XHJcbiAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDoxZW07cGFkZGluZy1sZWZ0OiAwO1wiIChjbGljayk9XCJjYXRzKClcIiBtYXRUb29sdGlwPVwiQ2F0ZWdvcmllc1wiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+PG1hdC1pY29uPmNhdGVnb3J5PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG48aHI+XHJcblxyXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxNHB4O1wiID5cclxuXHJcbiAgPGRpdiAqbmdJZj1cImFjY291bnRcIiBjbGFzcz1cInRpbi1yb3cgYWN0aW9uYnV0dG9uc1wiPlxyXG4gICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+e3thY2NvdW50Py5jdXJyZW5jeX19PC9sYWJlbD5cclxuICAgIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMzRweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+e3thY2NvdW50Py5iYWxhbmNlIHwgY3VycmVuY3kgOiAnJyA6ICcnfX08L2xhYmVsPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFzbWFsbFNjcmVlbjsgdGhlbiBidXR0b25zXCIgPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiIXNtYWxsU2NyZWVuXCI+XHJcbiAgICA8c3BhLWZpbHRlciAocmVmcmVzaENsaWNrKT1cImxvYWREYXRhKClcIj48L3NwYS1maWx0ZXI+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzbWFsbFNjcmVlblwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDtcIj48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzbWFsbFNjcmVlbjsgdGhlbiBidXR0b25zXCIgPjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25zID5cclxuICA8ZGl2IGNsYXNzPVwidGluLXJvdyBhY3Rpb25idXR0b25zXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBzdHlsZT1cImNvbG9yOiBncmVlbjtcIiAoY2xpY2spPVwidHJhbnNhY3QoJ2luY29tZScsJycpXCI+PG1hdC1pY29uIGNsYXNzPVwic2lnblwiPmFkZDwvbWF0LWljb24+SW5jb21lPC9idXR0b24+IDxtYXQtaWNvbiBjbGFzcz1cImluZm9cIj5pbmZvPC9tYXQtaWNvbj5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAoY2xpY2spPVwidHJhbnNhY3QoJ2V4cGVuc2UnLCcnKVwiPjxtYXQtaWNvbiBjbGFzcz1cInNpZ25cIj5yZW1vdmU8L21hdC1pY29uPkV4cGVuc2U8L2J1dHRvbj4gPG1hdC1pY29uIGNsYXNzPVwiaW5mb1wiPmluZm88L21hdC1pY29uPlxyXG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gc3R5bGU9XCJjb2xvcjogb3JhbmdlO1wiIChjbGljayk9XCJ0cmFuc2FjdCgndHJhbnNmZXInLCcnKVwiID48bWF0LWljb24gY2xhc3M9XCJzaWduXCI+c3luY19hbHQ8L21hdC1pY29uPlRyYW5zZmVyPC9idXR0b24+IDxtYXQtaWNvbiBjbGFzcz1cImluZm9cIj5pbmZvPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuPGRpdiBzdHlsZT1cIiBmb250LXNpemU6IDE0cHg7XCI+XHJcbiAgPHNwYS10YWJsZSBbY29uZmlnXT1cImNvbmZpZ1wiIFtkYXRhXT1cInRyYW5zYWN0aW9uc1wiIFtyZWxvYWRdPVwicmVsb2FkXCIgKGRhdGFMb2FkKT1cImxvYWREYXRhKClcIiAoYWN0aW9uQ2xpY2spPVwiYWN0aW9uQ2xpY2tlZCgkZXZlbnQpXCI+PC9zcGEtdGFibGU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/http.service";
|
|
4
|
+
import * as i2 from "@angular/router";
|
|
5
|
+
import * as i3 from "../../services/auth.service";
|
|
6
|
+
import * as i4 from "../../services/datalib.service";
|
|
7
|
+
import * as i5 from "@angular/material/dialog";
|
|
8
|
+
import * as i6 from "../../services/message.service";
|
|
9
|
+
import * as i7 from "../../components/table/table.component";
|
|
10
|
+
export class UsersComponent {
|
|
11
|
+
constructor(httpService, router, authService, dataService, dialog, messageService) {
|
|
12
|
+
this.httpService = httpService;
|
|
13
|
+
this.router = router;
|
|
14
|
+
this.authService = authService;
|
|
15
|
+
this.dataService = dataService;
|
|
16
|
+
this.dialog = dialog;
|
|
17
|
+
this.messageService = messageService;
|
|
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
|
+
flatButtons: this.dataService.appConfig.multitenant,
|
|
94
|
+
columns: [
|
|
95
|
+
{ name: 'userName', type: 'text' },
|
|
96
|
+
{ name: 'fullName', type: 'text' },
|
|
97
|
+
{ name: 'roleName', type: 'text' },
|
|
98
|
+
{ name: 'locked', type: 'checkbox' },
|
|
99
|
+
{ name: 'createdDate', type: 'date' },
|
|
100
|
+
],
|
|
101
|
+
buttons: [
|
|
102
|
+
{ name: 'create', display: 'New User', dialog: true, detailsConfig: this.createDialog },
|
|
103
|
+
{ name: 'view', dialog: true, icon: { name: 'account_circle' }, detailsConfig: this.editDialog },
|
|
104
|
+
{
|
|
105
|
+
name: 'changePassword', display: 'Change Password', tip: 'Change Password', icon: { name: 'key' }, dialog: true, detailsConfig: this.passwordDialog,
|
|
106
|
+
visible: x => x.authType === 'local'
|
|
107
|
+
},
|
|
108
|
+
{ name: 'lock', action: { method: 'post', url: 'User/lock', successMessage: "User locked" }, color: 'red', tip: 'lock', icon: { name: 'lock' },
|
|
109
|
+
visible: (value) => value.locked == 0
|
|
110
|
+
},
|
|
111
|
+
{ name: 'unlock', action: { method: 'post', url: 'User/unlock', successMessage: "User Unlocked" }, color: 'green', tip: 'unlock', icon: { name: 'lock_open' },
|
|
112
|
+
visible: (value) => value.locked == 1
|
|
113
|
+
},
|
|
114
|
+
{ name: 'delete', action: { method: 'post', url: 'User/delete', successMessage: "User Deleted" }, color: 'red' },
|
|
115
|
+
],
|
|
116
|
+
loadAction: { url: 'User/all/x' },
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
ngOnInit() {
|
|
120
|
+
this.authService.isAuthorised(this.dataService.capUsers.name);
|
|
121
|
+
this.loadMeta();
|
|
122
|
+
}
|
|
123
|
+
inputChanged(x) {
|
|
124
|
+
console.log(x);
|
|
125
|
+
}
|
|
126
|
+
loadMeta() {
|
|
127
|
+
this.dataService.CallApi({ url: 'role/meta/x' }).subscribe((apiResponse) => {
|
|
128
|
+
console.log(apiResponse.data);
|
|
129
|
+
this.userBaseFormConfig.fields.find(x => x.name == 'roleID').options = apiResponse.data.roles;
|
|
130
|
+
this.userBaseFormConfig.fields.find(x => x.name == 'authType').options = apiResponse.data.authTypes;
|
|
131
|
+
this.createDialog.formConfig.fields.find(x => x.name == 'authType').options = apiResponse.data.authTypes.filter(x => x.value == 'local' || x.value == 'AD');
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
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 });
|
|
136
|
+
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: ["data", "tileData", "config", "reload", "activeTab", "inTab"], outputs: ["dataLoad", "actionSuccess", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }] });
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UsersComponent, decorators: [{
|
|
138
|
+
type: Component,
|
|
139
|
+
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"] }]
|
|
140
|
+
}], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.Router }, { type: i3.AuthService }, { type: i4.DataServiceLib }, { type: i5.MatDialog }, { type: i6.MessageService }]; } });
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3BhZ2VzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy91c2Vycy91c2Vycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBZ0JyRSxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFvQixXQUF3QixFQUFTLE1BQWMsRUFBVSxXQUF3QixFQUFVLFdBQTJCLEVBQVMsTUFBaUIsRUFBVSxjQUE4QjtRQUF4TCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF3QjVNLHVCQUFrQixHQUFlO1lBQy9CLE1BQU0sRUFBRTtnQkFDTixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxRQUFRLEVBQUcsSUFBSSxFQUFFO2dCQUNuRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFO2dCQUN2STtvQkFDRSxJQUFJLEVBQUUsV0FBVyxFQUFF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T0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzlGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7UUFDOUosQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzsyR0F0QlUsY0FBYzsrRkFBZCxjQUFjLGlEQ2hCM0IsMElBTUE7MkZEVWEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJsZUNvbmZpZywgQXBpUmVzcG9uc2UsIEZvcm1Db25maWcsIEJ1dHRvbiwgRGV0YWlsc0RpYWxvZ0NvbmZpZyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2h0dHAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSBcIi4uLy4uL2NsYXNzZXMvTGliQ2xhc3Nlc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic3BhLXVzZXJzXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi91c2Vycy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi91c2Vycy5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSwgcHVibGljIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuaXNBdXRob3Jpc2VkKHRoaXMuZGF0YVNlcnZpY2UuY2FwVXNlcnMubmFtZSk7XHJcbiAgICB0aGlzLmxvYWRNZXRhKClcclxuICB9XHJcblxyXG5cclxuICBpbnB1dENoYW5nZWQoeCkge1xyXG4gICAgY29uc29sZS5sb2coeCk7XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZE1ldGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ3JvbGUvbWV0YS94JyB9KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgY29uc29sZS5sb2coYXBpUmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgIHRoaXMudXNlckJhc2VGb3JtQ29uZmlnLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09ICdyb2xlSUQnKS5vcHRpb25zID0gYXBpUmVzcG9uc2UuZGF0YS5yb2xlcztcclxuICAgICAgdGhpcy51c2VyQmFzZUZvcm1Db25maWcuZmllbGRzLmZpbmQoeCA9PiB4Lm5hbWUgPT0gJ2F1dGhUeXBlJykub3B0aW9ucyA9IGFwaVJlc3BvbnNlLmRhdGEuYXV0aFR5cGVzO1xyXG4gICAgICB0aGlzLmNyZWF0ZURpYWxvZy5mb3JtQ29uZmlnLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09ICdhdXRoVHlwZScpLm9wdGlvbnMgPSBhcGlSZXNwb25zZS5kYXRhLmF1dGhUeXBlcy5maWx0ZXIoeCA9PiB4LnZhbHVlID09ICdsb2NhbCcgfHwgeC52YWx1ZSA9PSAnQUQnKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgdXNlckJhc2VGb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ3VzZXJOYW1lJywgdHlwZTogJ3RleHQnLCBhbGlhczogJ1VzZXJuYW1lJywgcmVxdWlyZWQ6IHRydWUsIHNwYW4gOiB0cnVlLCByZWFkb25seSA6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnYXV0aFR5cGUnLCB0eXBlOiAnc2VsZWN0JywgYWxpYXM6ICdBdXRoZW50aWNhdGlvbiBUeXBlJywgcmVhZG9ubHk6IHRydWUsIHNwYW46IHRydWUsIHJlcXVpcmVkOiB0cnVlLCBkZWZhdWx0Rmlyc3RWYWx1ZTogdHJ1ZSB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2ZpcnN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgcmVhZG9ubHlDb25kaXRpb246IHggPT4geC5hdXRoVHlwZSAhPT0gJ2xvY2FsJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdsYXN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgcmVhZG9ubHlDb25kaXRpb246IHggPT4geC5hdXRoVHlwZSAhPT0gJ2xvY2FsJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdwYXNzd29yZCcsIHR5cGU6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGhpZGRlbkNvbmRpdGlvbjogeCA9PiB4LmF1dGhUeXBlICE9PSAnbG9jYWwnLCBzcGFuOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2NvbmZpcm1QYXNzd29yZCcsIHR5cGU6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGhpZGRlbkNvbmRpdGlvbjogeCA9PiB4LmF1dGhUeXBlICE9PSAnbG9jYWwnLCBzcGFuOiB0cnVlXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogZmFsc2UsIHNwYW46IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAncm9sZUlEJywgdHlwZTogJ3NlbGVjdCcsIGFsaWFzOiAnUm9sZScsIHJlcXVpcmVkOiB0cnVlLCAgc3BhbjogdHJ1ZSwgZGVmYXVsdEZpcnN0VmFsdWU6IHRydWUgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcblxyXG4gIGNyZWF0ZURpYWxvZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWc6IHtcclxuICAgICAgLi4udGhpcy51c2VyQmFzZUZvcm1Db25maWcsXHJcbiAgICAgIHRpdGxlOiAnVXNlcicsXHJcbiAgICAgIC8vIGZpZWxkczogdGhpcy51c2VyQmFzZUZvcm1Db25maWcuZmllbGRzLmZpbHRlcih4ID0+IHgubmFtZSAhPT0gJ3VzZXJOYW1lJyAmJiB4Lm5hbWUgIT09ICdhdXRoVHlwZScgJiYgeC5uYW1lICE9PSAnZW1haWwnKVxyXG4gICAgfSxcclxuICAgIG1vZGU6ICdjcmVhdGUnLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBhY3Rpb246IHsgbWV0aG9kOiAncG9zdCcsIHVybDogJ1VzZXIvcmVnaXN0ZXInLCBzdWNjZXNzTWVzc2FnZTogXCJVc2VyIENyZWF0ZWRcIiB9fVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgZWRpdERpYWxvZyA6IERldGFpbHNEaWFsb2dDb25maWcgPSB7XHJcbiAgICBmb3JtQ29uZmlnOiB7XHJcbiAgICAgIC4uLnRoaXMudXNlckJhc2VGb3JtQ29uZmlnLFxyXG4gICAgICB0aXRsZSA6ICdVc2VyJyxcclxuICAgICAgZmllbGRzIDogdGhpcy51c2VyQmFzZUZvcm1Db25maWcuZmllbGRzLmZpbHRlcih4ID0+IHgubmFtZSAhPT0gJ3Bhc3N3b3JkJyAmJiB4Lm5hbWUgIT09ICdjb25maXJtUGFzc3dvcmQnKVxyXG4gICAgfSxcclxuICAgIG1vZGU6ICd2aWV3JyxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci9lZGl0Jywgc3VjY2Vzc01lc3NhZ2U6IFwiVXNlciBVcGRhdGVkXCIgfSB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBwYXNzd29yZERpYWxvZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWc6IHtcclxuICAgICAgLi4udGhpcy51c2VyQmFzZUZvcm1Db25maWcsXHJcbiAgICAgIHRpdGxlIDogJ0NoYW5nZSBQYXNzd29yZCcsXHJcbiAgICAgIGZpeGVkVGl0bGU6IHRydWUsXHJcbiAgICAgIGFsZXJ0TWVzc2FnZXM6IHsgbWVzc2FnZXM6IFtcclxuICAgICAgICB7IHR5cGU6ICdpbmZvJywgY29udGVudDogJypQbGVhc2UgY29uc2lkZXIgdGhlc2UgcmVxdWlyZW1lbnRzIGZvciB5b3VyIG5ldyBwYXNzd29yZC4nIH0sXHJcbiAgICAgICAgeyB0eXBlOiAnaW5mbycsIGNvbnRlbnQ6ICdBdCBsZWFzdCA4IGNoYXJhY3RlcnMuJyB9LFxyXG4gICAgICAgIHsgdHlwZTogJ2luZm8nLCBjb250ZW50OiAnQXQgbGVhc3QgMSB1cHBlcmNhc2UgbGV0dGVyJyB9LFxyXG4gICAgICAgIHsgdHlwZTogJ2luZm8nLCBjb250ZW50OiAnQXQgbGVhc3QgMiBsb3dlcmNhc2UgbGV0dGVycyAoYS16KScgfSxcclxuICAgICAgICB7IHR5cGU6ICdpbmZvJywgY29udGVudDogJ0F0IGxlYXN0IDEgZGlnaXQgKDAtOSknIH0sXHJcbiAgICAgICAgeyB0eXBlOiAnaW5mbycsIGNvbnRlbnQ6ICcgQXQgbGVhc3QgMSBzcGVjaWFsIGNoYXJhY3RlciAofmAhIOKApiknIH0sXHJcbiAgICAgIF19LFxyXG4gICAgICBmaWVsZHM6IFtcclxuICAgICAgICB7IG5hbWU6ICduZXdQYXNzd29yZCcsIHR5cGU6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgICAgeyBuYW1lOiAnY29uZmlybVBhc3N3b3JkJywgdHlwZTogJ3Bhc3N3b3JkJywgIHJlcXVpcmVkOiB0cnVlIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIG1vZGU6ICdlZGl0JyxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci9jaGFuZ2VwYXNzd29yZC1hZG1pbicsIHN1Y2Nlc3NNZXNzYWdlOiAnUGFzc3dvcmQgQ2hhbmdlZCcgfSAgICB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICB1c2Vyc1RhYmxlQ29uZmlnIDogVGFibGVDb25maWcgPSB7XHJcbiAgICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gICAgbWluQnV0dG9uczogWydmdWxsTmFtZScsJ3JvbGVOYW1lJ10sXHJcbiAgICBncmV5T3V0IDogKHZhbHVlKSA9PiB2YWx1ZS5kaXNhYmxlZCA9PSAxLFxyXG4gICAgY29sbGFwc2VCdXR0b25zOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWyd1c2VyTmFtZScsICdmdWxsTmFtZScsICdyb2xlTmFtZScsICdsb2NrZWQnLCAnZGF0ZUNyZWF0ZWQnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0aGlzLmRhdGFTZXJ2aWNlLmFwcENvbmZpZy5tdWx0aXRlbmFudCxcclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAndXNlck5hbWUnLCB0eXBlOiAndGV4dCd9LFxyXG4gICAgICB7IG5hbWU6ICdmdWxsTmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdyb2xlTmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdsb2NrZWQnLCB0eXBlOiAnY2hlY2tib3gnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZWREYXRlJywgdHlwZTogJ2RhdGUnIH0sXHJcbiAgICBdLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBkaXNwbGF5OiAnTmV3IFVzZXInLCBkaWFsb2c6IHRydWUsIGRldGFpbHNDb25maWcgOiB0aGlzLmNyZWF0ZURpYWxvZyAgfSxcclxuICAgICAgeyBuYW1lOiAndmlldycsIGRpYWxvZzogdHJ1ZSwgaWNvbjogeyBuYW1lOiAnYWNjb3VudF9jaXJjbGUnIH0sIGRldGFpbHNDb25maWc6IHRoaXMuZWRpdERpYWxvZyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2NoYW5nZVBhc3N3b3JkJywgZGlzcGxheTogJ0NoYW5nZSBQYXNzd29yZCcsIHRpcCA6ICdDaGFuZ2UgUGFzc3dvcmQnLCBpY29uOiB7IG5hbWU6ICdrZXknIH0sIGRpYWxvZzogdHJ1ZSwgZGV0YWlsc0NvbmZpZzogdGhpcy5wYXNzd29yZERpYWxvZyxcclxuICAgICAgICB2aXNpYmxlOiB4ID0+IHguYXV0aFR5cGUgPT09ICdsb2NhbCdcclxuICAgICAgfSxcclxuICAgICAgeyBuYW1lOiAnbG9jaycsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci9sb2NrJywgc3VjY2Vzc01lc3NhZ2U6IFwiVXNlciBsb2NrZWRcIiB9LCBjb2xvcjogJ3JlZCcsIHRpcDogJ2xvY2snLCBpY29uOiB7IG5hbWU6ICdsb2NrJyB9LFxyXG4gICAgICAgIHZpc2libGU6ICh2YWx1ZSkgPT4gdmFsdWUubG9ja2VkID09IDBcclxuICAgICAgfSxcclxuICAgICAgeyBuYW1lOiAndW5sb2NrJywgYWN0aW9uOiB7IG1ldGhvZDogJ3Bvc3QnLCB1cmw6ICdVc2VyL3VubG9jaycsIHN1Y2Nlc3NNZXNzYWdlOiBcIlVzZXIgVW5sb2NrZWRcIiB9LCBjb2xvcjogJ2dyZWVuJywgdGlwOiAndW5sb2NrJywgaWNvbjogeyBuYW1lOiAnbG9ja19vcGVuJyB9LFxyXG4gICAgICAgIHZpc2libGU6ICh2YWx1ZSkgPT4gdmFsdWUubG9ja2VkID09IDFcclxuICAgICAgfSxcclxuICAgICAgeyBuYW1lOiAnZGVsZXRlJywgYWN0aW9uOiB7IG1ldGhvZDogJ3Bvc3QnLCB1cmw6ICdVc2VyL2RlbGV0ZScsIHN1Y2Nlc3NNZXNzYWdlOiBcIlVzZXIgRGVsZXRlZFwiIH0sIGNvbG9yOiAncmVkJyB9LFxyXG4gICAgXSxcclxuICAgIGxvYWRBY3Rpb246IHsgdXJsOiAnVXNlci9hbGwveCcgfSxcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCJcclxuPGg0PlVzZXJzPC9oND5cclxuPGhyIC8+XHJcblxyXG48c3BhLXRhYmxlIFtjb25maWddPVwidXNlcnNUYWJsZUNvbmZpZ1wiIChpbnB1dENoYW5nZSk9XCJpbnB1dENoYW5nZWQoJGV2ZW50KVwiPjwvc3BhLXRhYmxlPlxyXG5cclxuIl19
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/datalib.service";
|
|
4
|
+
import * as i2 from "../../services/auth.service";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
import * as i4 from "@angular/material/button";
|
|
7
|
+
import * as i5 from "@angular/material/icon";
|
|
8
|
+
import * as i6 from "../../components/text/text.component";
|
|
9
|
+
import * as i7 from "../../components/check/check.component";
|
|
10
|
+
import * as i8 from "../invitations-table/invitations-table.component";
|
|
11
|
+
export class WelcomeComponent {
|
|
12
|
+
constructor(dataService, authService) {
|
|
13
|
+
this.dataService = dataService;
|
|
14
|
+
this.authService = authService;
|
|
15
|
+
this.step = "terms";
|
|
16
|
+
this.agree = false;
|
|
17
|
+
this.own = true;
|
|
18
|
+
this.invitations = false;
|
|
19
|
+
this.invTableConfig = {
|
|
20
|
+
greyOut: (value) => value.accepted == false,
|
|
21
|
+
elevation: 'low',
|
|
22
|
+
minColumns: ['tenantName'],
|
|
23
|
+
minButtons: ['accept', 'decline'],
|
|
24
|
+
columns: [
|
|
25
|
+
{ name: 'tenantName', alias: 'Organisation', type: 'text' },
|
|
26
|
+
{ name: 'owner', type: 'text', },
|
|
27
|
+
],
|
|
28
|
+
buttons: [
|
|
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
|
+
],
|
|
32
|
+
loadAction: { url: 'tenants/invitations/x' },
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
this.loadMeta();
|
|
37
|
+
this.authService.loggedUserFullName.subscribe(x => this.username = x);
|
|
38
|
+
}
|
|
39
|
+
loadMeta() {
|
|
40
|
+
this.dataService.CallApi({ url: 'tenants/welcome_meta/x' }).subscribe((api) => {
|
|
41
|
+
this.invitations = api.data.invitations;
|
|
42
|
+
this.own = api.data.own;
|
|
43
|
+
this.myTenant = api.data.tenant;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
renameTenant() {
|
|
47
|
+
this.dataService.CallApi({ url: 'tenants/dto?action=rename', method: 'post' }, this.myTenant).subscribe((apiResponse) => {
|
|
48
|
+
if (apiResponse.success) {
|
|
49
|
+
this.authService.updateTenantName(this.myTenant.name);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
next() {
|
|
54
|
+
if (this.step == 'terms' && this.own) {
|
|
55
|
+
this.step = "name";
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
else if (this.step == "terms" && !this.own) {
|
|
59
|
+
this.step = "hi";
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
else if (this.step == "name" && this.own) {
|
|
63
|
+
this.renameTenant();
|
|
64
|
+
if (this.invitations == true) {
|
|
65
|
+
this.step = "invitations";
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
this.setWelcome();
|
|
70
|
+
}
|
|
71
|
+
setWelcome() {
|
|
72
|
+
this.dataService.CallApi({ url: 'tenants/set_welcome/x' }).subscribe((api) => {
|
|
73
|
+
this.home();
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
home() {
|
|
77
|
+
this.dataService.Navigate('home');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
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>\r\n\r\n\r\n\r\n<!-- terms -->\r\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\r\n\r\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\r\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\r\n\r\n <br>\r\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\r\n</div>\r\n\r\n<!-- owner -->\r\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\r\n\r\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\r\n\r\n <div style=\"max-width: 400px;\">\r\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\r\n </div>\r\n\r\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\r\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\r\n\r\n</div>\r\n\r\n<!-- guest -->\r\n<div *ngIf=\"step=='hi' && !own\">\r\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\r\n</div>\r\n\r\n\r\n<!-- invitations -->\r\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\r\n\r\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>\r\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\r\n <spa-invitations-table></spa-invitations-table>\r\n\r\n</div>\r\n\r\n\r\n<!-- Actions -->\r\n<div class=\"mt-3\">\r\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\r\n</div>\r\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: ["appearance", "readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "copyContent", "clearContent", "options", "optionDisplay", "optionValue", "loadAction", "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
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WelcomeComponent, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{ selector: 'spa-welcome', template: "<label class=\"title\">Welcome, {{username}}</label>\r\n\r\n\r\n\r\n<!-- terms -->\r\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\r\n\r\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\r\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\r\n\r\n <br>\r\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\r\n</div>\r\n\r\n<!-- owner -->\r\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\r\n\r\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\r\n\r\n <div style=\"max-width: 400px;\">\r\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\r\n </div>\r\n\r\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\r\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\r\n\r\n</div>\r\n\r\n<!-- guest -->\r\n<div *ngIf=\"step=='hi' && !own\">\r\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\r\n</div>\r\n\r\n\r\n<!-- invitations -->\r\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\r\n\r\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>\r\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\r\n <spa-invitations-table></spa-invitations-table>\r\n\r\n</div>\r\n\r\n\r\n<!-- Actions -->\r\n<div class=\"mt-3\">\r\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\r\n</div>\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}\n"] }]
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.AuthService }]; } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VsY29tZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvcGFnZXMvd2VsY29tZS93ZWxjb21lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVVsRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW1CLFdBQTRCLEVBQVMsV0FBd0I7UUFBN0QsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFVaEYsU0FBSSxHQUFHLE9BQU8sQ0FBQTtRQUNkLFVBQUssR0FBRyxLQUFLLENBQUE7UUFDYixRQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUEwRHBCLG1CQUFjLEdBQWdCO1lBRTVCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLO1lBQzNDLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxDQUFDLFlBQVksQ0FBQztZQUMxQixVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1lBRWpDLE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUMzRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRzthQUNqQztZQUVELE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFB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R0FBRyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMzRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7NkdBdEVVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG1EQ1Y3QixxOURBZ0RBOzJGRHRDYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlQ29uZmlnLCBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtd2VsY29tZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dlbGNvbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dlbGNvbWUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWxjb21lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXJ2aWNlIDogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZE1ldGEoKTtcclxuXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZFVzZXJGdWxsTmFtZS5zdWJzY3JpYmUoeCA9PiB0aGlzLnVzZXJuYW1lID0geClcclxuICB9XHJcblxyXG4gIHVzZXJuYW1lO1xyXG5cclxuICBzdGVwID0gXCJ0ZXJtc1wiXHJcbiAgYWdyZWUgPSBmYWxzZVxyXG4gIG93biA9IHRydWU7XHJcbiAgaW52aXRhdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgbXlUZW5hbnRcclxuXHJcbiAgbG9hZE1ldGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDondGVuYW50cy93ZWxjb21lX21ldGEveCd9KS5zdWJzY3JpYmUoKGFwaSkgPT4ge1xyXG4gICAgICB0aGlzLmludml0YXRpb25zID0gYXBpLmRhdGEuaW52aXRhdGlvbnM7XHJcbiAgICAgIHRoaXMub3duID0gYXBpLmRhdGEub3duO1xyXG4gICAgICB0aGlzLm15VGVuYW50ID0gYXBpLmRhdGEudGVuYW50O1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlbmFtZVRlbmFudCgpIHtcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoeyB1cmw6ICd0ZW5hbnRzL2R0bz9hY3Rpb249cmVuYW1lJywgbWV0aG9kOiAncG9zdCcgfSwgdGhpcy5teVRlbmFudCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS51cGRhdGVUZW5hbnROYW1lKHRoaXMubXlUZW5hbnQubmFtZSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZXh0KCl7XHJcblxyXG4gICAgaWYgKHRoaXMuc3RlcCA9PSAndGVybXMnICYmIHRoaXMub3duKXtcclxuICAgICAgdGhpcy5zdGVwID0gXCJuYW1lXCJcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5zdGVwID09IFwidGVybXNcIiAmJiAhdGhpcy5vd24pIHtcclxuICAgICAgdGhpcy5zdGVwID0gXCJoaVwiXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc3RlcCA9PSBcIm5hbWVcIiAmJiB0aGlzLm93bil7XHJcblxyXG4gICAgICB0aGlzLnJlbmFtZVRlbmFudCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnZpdGF0aW9ucyA9PSB0cnVlKXtcclxuICAgICAgICB0aGlzLnN0ZXAgPSBcImludml0YXRpb25zXCJcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLnNldFdlbGNvbWUoKTtcclxuICB9XHJcblxyXG4gIHNldFdlbGNvbWUoKSB7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoeyB1cmw6ICd0ZW5hbnRzL3NldF93ZWxjb21lL3gnIH0pLnN1YnNjcmliZSgoYXBpKSA9PiB7XHJcbiAgICAgIHRoaXMuaG9tZSgpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGhvbWUoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuTmF2aWdhdGUoJ2hvbWUnKTtcclxuICB9XHJcblxyXG5cclxuICBpbnZUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcblxyXG4gICAgZ3JleU91dDogKHZhbHVlKSA9PiB2YWx1ZS5hY2NlcHRlZCA9PSBmYWxzZSxcclxuICAgIGVsZXZhdGlvbjogJ2xvdycsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ3RlbmFudE5hbWUnXSxcclxuICAgIG1pbkJ1dHRvbnM6IFsnYWNjZXB0JywgJ2RlY2xpbmUnXSxcclxuXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ3RlbmFudE5hbWUnLCBhbGlhczogJ09yZ2FuaXNhdGlvbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdvd25lcicsIHR5cGU6ICd0ZXh0JywgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdhY2NlcHQnLCBpY29uOiB7ICduYW1lJzogJ2RvbmUnLCB9LCBjb2xvcjogJ2dyZWVuJywgYWN0aW9uOiB7IHVybDogJ21lbWJlcnMvZHRvP2FjdGlvbj1hY2NlcHQnLCBtZXRob2Q6ICdwb3N0JywgfSwgY29uZmlybTogeyBtZXNzYWdlOiAnQWNjZXB0ID8nIH0sIGRpc2FibGVkOiAoeCkgPT4geC5hY2NlcHRlZCB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWNsaW5lJywgaWNvbjogeyAnbmFtZSc6ICdjbG9zZScsIH0sIGNvbG9yOiAncmVkJywgYWN0aW9uOiB7IHVybDogJ21lbWJlcnMvZHRvP2FjdGlvbj1yZW1vdmUnLCBtZXRob2Q6ICdwb3N0JywgfSwgY29uZmlybTogeyBtZXNzYWdlOiAnRGVjbGluZSA/JyB9LCBkaXNhYmxlZDogKHgpID0+IHguYWNjZXB0ZWQgfSxcclxuICAgIF0sXHJcblxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICd0ZW5hbnRzL2ludml0YXRpb25zL3gnIH0sXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwidGl0bGVcIj5XZWxjb21lLCAge3t1c2VybmFtZX19PC9sYWJlbD5cclxuXHJcblxyXG5cclxuPCEtLSB0ZXJtcyAtLT5cclxuPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cInN0ZXA9PSd0ZXJtcydcIj5cclxuXHJcbiAgPGxhYmVsIGNsYXNzPVwic3VidGl0bGUgdGV4dC1tdXRlZCBtYi0yXCIgPldlIGNhcmUgYWJvdXQgb3VyIHVzZXJzIGFuZCBhcmUgZGVkaWNhdGVkIHRvIHByb3RlY3RpbmcgeW91ciBkYXRhIGFuZCBwcml2YWN5IC1cclxuICAgIHRoYXRzIHdoeSB3ZSB3YW50IHRvIGJlIGNsZWFyIGFib3V0IHdoYXQgZGF0YSB3ZSBjb2xsZWN0IGFuZCBob3cgd2UgdXNlIGl0IHRvIGltcHJvdmUgeW91ciBleHBlcmllbmNlLjwvbGFiZWw+XHJcblxyXG4gIDxicj5cclxuICA8c3BhLWNoZWNrIGRpc3BsYXk9XCJJIGFncmVlIHRvIHRoZSBUZXJtcyBhbmQgUHJpdmFjeSBQb2xpY3lcIiBbKHZhbHVlKV09XCJhZ3JlZVwiPjwvc3BhLWNoZWNrPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gb3duZXIgLS0+XHJcbjxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJzdGVwPT0nbmFtZScgJiYgb3duXCI+XHJcblxyXG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWRcIiBzdHlsZT1cIiBtYXJnaW4tYm90dG9tOiAyMHB4O1wiPlRoZSBmb2xsb3cgc3RlcHMgd2lsbCBndWlkZSB5b3UgdG8gY3VzdG9taXNlIHlvdXIgYXBwbGljYXRpb24uPC9sYWJlbD5cclxuXHJcbiAgPGRpdiBzdHlsZT1cIm1heC13aWR0aDogNDAwcHg7XCI+XHJcbiAgIDxzcGEtdGV4dCBkaXNwbGF5PVwiT3JnYW5pc2F0aW9uIE5hbWVcIiBbKHZhbHVlKV09XCJteVRlbmFudC5uYW1lXCIgPjwvc3BhLXRleHQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxsYWJlbCBjbGFzcz1cInRleHQtbXV0ZWRcIiBzdHlsZT1cIiBmb250LXNpemU6IDEycHg7XCI+WW91IGNhbiBjaGFuZ2UgdGhlIE9yZ2FuaXNhdGlvbidzIG5hbWUgdG8geW91ciB0ZWFtIG9yIGNvbXBhbnkgbmFtZS48L2xhYmVsPjxicj5cclxuICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxMnB4O21hcmdpbi10b3A6IDEwcHg7XCI+VGhlIG5hbWUgY2FuIGJlIGNoYW5nZWQgbGF0ZXIuPC9sYWJlbD5cclxuXHJcbjwvZGl2PlxyXG5cclxuPCEtLSBndWVzdCAtLT5cclxuPGRpdiAqbmdJZj1cInN0ZXA9PSdoaScgJiYgIW93blwiPlxyXG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWRcIj5Zb3UgYXJlIG5vdyBzaWduZWQgaW4gdG8ge3tteVRlbmFudC5uYW1lfX0uPC9sYWJlbD5cclxuPC9kaXY+XHJcblxyXG5cclxuPCEtLSBpbnZpdGF0aW9ucyAtLT5cclxuPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cInN0ZXA9PSdpbnZpdGF0aW9ucycgJiYgb3duXCI+XHJcblxyXG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWRcIj5Zb3UgaGF2ZSBiZWVuIHJlcXVlc3RlZCB0byBqb2luIHRoZSBmb2xsb3dpbmcgb3JnYW5pc2F0aW9ucy4gSWYgeW91IGFjY2VwdCwgeW91IGhhdmUgdGhlIG9wdGlvbiB0byBzd2l0Y2ggdG8gdGhhdCBvcmcgbm93IG9yIHN0YXkgaW4geW91IG9yZy48L2xhYmVsPjxicj5cclxuICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxMnB4O21hcmdpbi10b3A6IDEwcHg7XCI+WW91IHdpbGwgYmUgYWJsZSB0byBzd2l0Y2ggbGF0ZXIuPC9sYWJlbD5cclxuICA8c3BhLWludml0YXRpb25zLXRhYmxlPjwvc3BhLWludml0YXRpb25zLXRhYmxlPlxyXG5cclxuPC9kaXY+XHJcblxyXG5cclxuPCEtLSBBY3Rpb25zIC0tPlxyXG48ZGl2IGNsYXNzPVwibXQtM1wiPlxyXG4gIDxidXR0b24gIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIWFncmVlXCIgKGNsaWNrKT1cIm5leHQoKVwiPk5leHQgPG1hdC1pY29uPmFycm93X3JpZ2h0X2FsdDwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -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=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import {
|
|
3
|
+
import { Constants } from '../classes/Classes';
|
|
4
|
+
import { Role } from '../classes/LibClasses';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/router";
|
|
6
7
|
import * as i2 from "@abacritt/angularx-social-login";
|
|
@@ -171,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
171
172
|
providedIn: 'root'
|
|
172
173
|
}]
|
|
173
174
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SocialAuthService }, { type: i3.StorageService }, { type: i1.Router }, { type: i4.HttpService }, { type: i5.MessageService }, { type: i6.LogService }]; } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7QUFRckQsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFBb0IsTUFBc0IsRUFBVSxhQUFnQyxFQUFVLE9BQXVCLEVBQVMsTUFBYyxFQUFVLFdBQXdCLEVBQVUsY0FBOEIsRUFBVSxVQUFzQjtRQUFsTyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWtDdFAsV0FBVztRQUNILGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsbUJBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBTTNELFdBQVc7UUFDSCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQU83RCxPQUFPO1FBQ0MsVUFBSyxHQUFX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QUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzt3R0FqTVUsV0FBVzs0R0FBWCxXQUFXLGNBSFYsTUFBTTsyRkFHUCxXQUFXO2tCQUp2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQ2FuQWN0aXZhdGUsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi9sb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvbGUsIENvbnN0YW50cyB9IGZyb20gJy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi9odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTb2NpYWxBdXRoU2VydmljZSB9IGZyb20gJ0BhYmFjcml0dC9hbmd1bGFyeC1zb2NpYWwtbG9naW4nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgc29jaWFsU2VydmljZTogU29jaWFsQXV0aFNlcnZpY2UsIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2UsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGxvZ1NlcnZpY2U6IExvZ1NlcnZpY2UpIHsgfVxyXG5cclxuICBjbGVhclNlc3Npb24oKXtcclxuXHJcbiAgICB0aGlzLlVwZGF0ZWxvZ2dlZGluKGZhbHNlKTtcclxuICAgIHRoaXMuVXBkYXRlQXV0b0xvZ2luKGZhbHNlKTtcclxuICAgIHRoaXMuVXBkYXRlUm9sZShuZXcgUm9sZSgpKTtcclxuICAgIHRoaXMuc3RvcmFnZS5jbGVhcigpO1xyXG4gICAgdGhpcy5zb2NpYWxTZXJ2aWNlLnNpZ25PdXQoKTtcclxuXHJcbiAgfVxyXG5cclxuICBzZXNzaW9uRXhwaXJlZCgpe1xyXG5cclxuICAgIHRoaXMuY2xlYXJTZXNzaW9uKClcclxuXHJcbiAgICBsZXQgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XHJcbiAgICBsZXQgcGF0aCA9IHVybC5oYXNoLnJlcGxhY2UoXCIjL1wiLCBcIlwiKTtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJsb2dpblwiXSwge1xyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLl9yb3V0ZSxcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgcmVkaXJlY3RUbzogcGF0aCB9LFxyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxyXG4gICAgICBza2lwTG9jYXRpb25DaGFuZ2U6IGZhbHNlXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBsb2dvZmYoKSB7XHJcbiAgICB0aGlzLmNsZWFyU2Vzc2lvbigpXHJcblxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wibG9naW5cIl0pO1xyXG4gIH1cclxuXHJcbiAgLy9Mb2dnZWQgaW5cclxuICBwcml2YXRlIGxvZ2dlZGluOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBsb2dnZWRpblNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5sb2dnZWRpbik7XHJcbiAgcHVibGljIGxvZ2dlZGluT2JzZXJ2ID0gdGhpcy5sb2dnZWRpblNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBVcGRhdGVsb2dnZWRpbihsb2dnZWRpbjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sb2dnZWRpblNvdXJjZS5uZXh0KGxvZ2dlZGluKTtcclxuICAgIHRoaXMubG9nZ2VkaW4gPSBsb2dnZWRpbjtcclxuICB9XHJcblxyXG4gIC8vYXV0b0xvZ2luXHJcbiAgcHJpdmF0ZSBhdXRvTG9naW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGF1dG9Mb2dpblNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hdXRvTG9naW4pO1xyXG4gIHB1YmxpYyBhdXRvTG9naW5PYnNlcnYgPSB0aGlzLmF1dG9Mb2dpblNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBVcGRhdGVBdXRvTG9naW4oYXV0b0xvZ2luOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmF1dG9Mb2dpblNvdXJjZS5uZXh0KGF1dG9Mb2dpbik7XHJcbiAgICB0aGlzLmF1dG9Mb2dpbiA9IGF1dG9Mb2dpbjtcclxuICB9XHJcblxyXG5cclxuICAvL1Rva2VuXHJcbiAgcHJpdmF0ZSB0b2tlbjogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgdG9rZW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMudG9rZW4pO1xyXG4gIHB1YmxpYyB0b2tlbk9ic2VydiA9IHRoaXMudG9rZW5Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlVG9rZW4obmV3VG9rZW46IHN0cmluZykge1xyXG4gICAgdGhpcy50b2tlblNvdXJjZS5uZXh0KG5ld1Rva2VuKTtcclxuXHJcbiAgfVxyXG5cclxuICAvL1Rva2VuRXhwaXJlXHJcbiAgcHJpdmF0ZSB0b2tlbkV4cGlyZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgdG9rZW5FeHBpcmVTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMudG9rZW5FeHBpcmUpO1xyXG4gIHB1YmxpYyB0b2tlbkV4cGlyZU9ic2VydiA9IHRoaXMudG9rZW5FeHBpcmVTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlVG9rZW5FeHBpcmUobmV3VG9rZW5FeHBpcmU6IHN0cmluZykge1xyXG4gICAgdGhpcy50b2tlbkV4cGlyZVNvdXJjZS5uZXh0KG5ld1Rva2VuRXhwaXJlKTtcclxuXHJcbiAgfVxyXG5cclxuICAvL0N1cnJlbnQgVXNlclxyXG4gIHB1YmxpYyBjdXJyZW50VXNlcjogc3RyaW5nID0gXCJ0bnlhZ2F0b1wiO1xyXG4gIHByaXZhdGUgY3VycmVudFVzZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuY3VycmVudFVzZXIpO1xyXG4gIHB1YmxpYyBjdXJyZW50VXNlck9ic2VydiA9IHRoaXMuY3VycmVudFVzZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlQ3VycmVudFVzZXIobmV3VXNlcjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyU291cmNlLm5leHQobmV3VXNlci50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcclxuICAgIHRoaXMuY3VycmVudFVzZXIgPSBuZXdVc2VyLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICAvL0xpbmUgTWFuYWdlclxyXG4gIHByaXZhdGUgaXNsaW5lTWFuYWdlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaXNMaW5lTWFuYWdlclNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5pc2xpbmVNYW5hZ2VyKTtcclxuICBwdWJsaWMgaXNMaW5lTWFuYWdlck9ic2VydiA9IHRoaXMuaXNMaW5lTWFuYWdlclNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBVcGRhdGVJc0xpbmVNYW5hZ2VyKG1hbmFnZXI6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNMaW5lTWFuYWdlclNvdXJjZS5uZXh0KG1hbmFnZXIpO1xyXG4gIH1cclxuXHJcbiAgLy9Sb2xlc1xyXG4gIHByaXZhdGUgY3VycmVudFJvbGUgPSBuZXcgUm9sZTtcclxuICBwdWJsaWMgY3VycmVudFJvbGVTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuY3VycmVudFJvbGUpO1xyXG4gIHB1YmxpYyBteVJvbGVPYnNlcnYgPSB0aGlzLmN1cnJlbnRSb2xlU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIFVwZGF0ZVJvbGUocm9sZSkge1xyXG4gICAgdGhpcy5jdXJyZW50Um9sZVNvdXJjZS5uZXh0KHJvbGUpO1xyXG4gIH1cclxuXHJcbiAgLy9Mb2dnZWQgaW4gRmlyc3ROYW1lXHJcbiAgcHJpdmF0ZSBsb2dnZWRVc2VyU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdChcInRueWFnYXRvXCIpO1xyXG4gIHB1YmxpYyBsb2dnZWRVc2VyRnVsbE5hbWUgPSB0aGlzLmxvZ2dlZFVzZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgdXBkYXRlTG9nZ2VkVXNlckZ1bGxOYW1lKHVzZXJOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMubG9nZ2VkVXNlclNvdXJjZS5uZXh0KHVzZXJOYW1lKTtcclxuICB9XHJcblxyXG4gIC8vVGVuYW50TmFtZVxyXG4gIHByaXZhdGUgdGVuYW50TmFtZVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoXCJUZW5hbnQgTmFtZVwiKTtcclxuICBwdWJsaWMgdGVuYW50TmFtZU9ic2VydiA9IHRoaXMudGVuYW50TmFtZVNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICB1cGRhdGVUZW5hbnROYW1lKHRlbmFudE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy50ZW5hbnROYW1lU291cmNlLm5leHQodGVuYW50TmFtZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9BdXRob3Jpc2F0aW9uXHJcbiAgaXNBdXRob3Jpc2VkKGNhcE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmICghdGhpcy5jdXJyZW50Um9sZVNvdXJjZS52YWx1ZVtjYXBOYW1lXSkge1xyXG4gICAgICAvLyB0aGlzLmxvZ1NlcnZpY2UuaW5mbyhgYXV0aG9yaXNlOiAke3RoaXMuY3VycmVudFJvbGVTb3VyY2UudmFsdWUucm9sZU5hbWV9IG5vdCBhdXRob3Jpc2VkIGZvciAke2NhcE5hbWV9YCk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImhvbWVcIl0pO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KGBVbmF1dGhvcmlzZWQ6ICR7Y2FwTmFtZX1gKTtcclxuXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGlzVmFsaWRUb2tlbigpIHtcclxuXHJcbiAgICBsZXQgdG9rZW5FeHBpcmU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLnRva2VuRXhwaXJlU291cmNlLnZhbHVlKTtcclxuICAgIGxldCBub3dEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSB0b2tlbkV4cGlyZSA+IG5vd0RhdGU7XHJcblxyXG4gICAgaWYgKCF2YWxpZCkge1xyXG5cclxuICAgICAgdGhpcy5zZXNzaW9uRXhwaXJlZCgpXHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoYEV4cGlyZWQgU2Vzc2lvbmApO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsaWRcclxuICB9XHJcblxyXG4gIGNhbkFjdGl2YXRlKCkge1xyXG5cclxuICAgIGlmICh0aGlzLmxvZ2dlZGluICYmIHRoaXMuaXNWYWxpZFRva2VuKCkpIHtcclxuICAgICAgLy8gdGhpcy5sb2dTZXJ2aWNlLmluZm8oXCJhdXRoZW50aWNhdGlvbjogbG9nZ2VkIGluXCIpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oQ29uc3RhbnRzLkFVVEhfVVNFUikgPT09IG51bGwpIHtcclxuICAgICAgLy8gdGhpcy5sb2dTZXJ2aWNlLmluZm8oXCJhdXRoZW50aWNhdGlvbjogbm90IGxvZ2dlZCBhbmQgbm8gY2FjaGVcIik7XHJcblxyXG4gICAgICB0aGlzLnNlc3Npb25FeHBpcmVkKCk7XHJcblxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gdGhpcy5sb2dTZXJ2aWNlLmluZm8oXCJhdXRoZW50aWNhdGlvbjogbm90IGxvZ2dlZCBidXQgYWxsb3dlZCBsb2dpblwiKTtcclxuXHJcbiAgICAgIHRoaXMuVXBkYXRlbG9nZ2VkaW4odHJ1ZSk7XHJcblxyXG4gICAgICB0aGlzLnN0b3JhZ2UuZ2V0KENvbnN0YW50cy5BVVRIX1VTRVIpLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuVXBkYXRlQ3VycmVudFVzZXIocmVzcCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zdG9yYWdlLmdldChDb25zdGFudHMuQVVUSF9OQU1FKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxvZ2dlZFVzZXJGdWxsTmFtZShyZXNwKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnN0b3JhZ2UuZ2V0KENvbnN0YW50cy5BVVRIX1JPTEVTKS50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgbGV0IHJldCA9IEpTT04ucGFyc2UocmVzcCk7XHJcblxyXG4gICAgICAgIHRoaXMuVXBkYXRlUm9sZShyZXQpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuc3RvcmFnZS5nZXQoQ29uc3RhbnRzLkFVVEhfVE9LRU4pLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuVXBkYXRlVG9rZW4ocmVzcCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zdG9yYWdlLmdldChDb25zdGFudHMuQVVUSF9UT0tFTl9FWFBJUkUpLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuVXBkYXRlVG9rZW5FeHBpcmUocmVzcCk7XHJcbiAgICAgICAgdGhpcy5pc1ZhbGlkVG9rZW4oKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnN0b3JhZ2UuZ2V0KENvbnN0YW50cy5BVVRIX1RFTkFOVF9OQU1FKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVRlbmFudE5hbWUocmVzcCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFNN0MsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFBb0IsTUFBc0IsRUFBVSxhQUFnQyxFQUFVLE9BQXVCLEVBQVMsTUFBYyxFQUFVLFdBQXdCLEVBQVUsY0FBOEIsRUFBVSxVQUFzQjtRQUFsTyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWtDdFAsV0FBVztRQUNILGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsbUJBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBTTNELFdBQVc7UUFDSCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVB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QzlELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzt3R0FqTVUsV0FBVzs0R0FBWCxXQUFXLGNBSFYsTUFBTTsyRkFHUCxXQUFXO2tCQUp2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQ2FuQWN0aXZhdGUsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi9sb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi9odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTb2NpYWxBdXRoU2VydmljZSB9IGZyb20gJ0BhYmFjcml0dC9hbmd1bGFyeC1zb2NpYWwtbG9naW4nO1xyXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnLi4vY2xhc3Nlcy9MaWJDbGFzc2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHNvY2lhbFNlcnZpY2U6IFNvY2lhbEF1dGhTZXJ2aWNlLCBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLCBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBsb2dTZXJ2aWNlOiBMb2dTZXJ2aWNlKSB7IH1cclxuXHJcbiAgY2xlYXJTZXNzaW9uKCl7XHJcblxyXG4gICAgdGhpcy5VcGRhdGVsb2dnZWRpbihmYWxzZSk7XHJcbiAgICB0aGlzLlVwZGF0ZUF1dG9Mb2dpbihmYWxzZSk7XHJcbiAgICB0aGlzLlVwZGF0ZVJvbGUobmV3IFJvbGUoKSk7XHJcbiAgICB0aGlzLnN0b3JhZ2UuY2xlYXIoKTtcclxuICAgIHRoaXMuc29jaWFsU2VydmljZS5zaWduT3V0KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgc2Vzc2lvbkV4cGlyZWQoKXtcclxuXHJcbiAgICB0aGlzLmNsZWFyU2Vzc2lvbigpXHJcblxyXG4gICAgbGV0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xyXG4gICAgbGV0IHBhdGggPSB1cmwuaGFzaC5yZXBsYWNlKFwiIy9cIiwgXCJcIik7XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wibG9naW5cIl0sIHtcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5fcm91dGUsXHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHJlZGlyZWN0VG86IHBhdGggfSxcclxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlOiBmYWxzZVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbG9nb2ZmKCkge1xyXG4gICAgdGhpcy5jbGVhclNlc3Npb24oKVxyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImxvZ2luXCJdKTtcclxuICB9XHJcblxyXG4gIC8vTG9nZ2VkIGluXHJcbiAgcHJpdmF0ZSBsb2dnZWRpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgbG9nZ2VkaW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubG9nZ2VkaW4pO1xyXG4gIHB1YmxpYyBsb2dnZWRpbk9ic2VydiA9IHRoaXMubG9nZ2VkaW5Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlbG9nZ2VkaW4obG9nZ2VkaW46IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubG9nZ2VkaW5Tb3VyY2UubmV4dChsb2dnZWRpbik7XHJcbiAgICB0aGlzLmxvZ2dlZGluID0gbG9nZ2VkaW47XHJcbiAgfVxyXG5cclxuICAvL2F1dG9Mb2dpblxyXG4gIHByaXZhdGUgYXV0b0xvZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBhdXRvTG9naW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYXV0b0xvZ2luKTtcclxuICBwdWJsaWMgYXV0b0xvZ2luT2JzZXJ2ID0gdGhpcy5hdXRvTG9naW5Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlQXV0b0xvZ2luKGF1dG9Mb2dpbjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5hdXRvTG9naW5Tb3VyY2UubmV4dChhdXRvTG9naW4pO1xyXG4gICAgdGhpcy5hdXRvTG9naW4gPSBhdXRvTG9naW47XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9Ub2tlblxyXG4gIHByaXZhdGUgdG9rZW46IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHRva2VuU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLnRva2VuKTtcclxuICBwdWJsaWMgdG9rZW5PYnNlcnYgPSB0aGlzLnRva2VuU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIFVwZGF0ZVRva2VuKG5ld1Rva2VuOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudG9rZW5Tb3VyY2UubmV4dChuZXdUb2tlbik7XHJcblxyXG4gIH1cclxuXHJcbiAgLy9Ub2tlbkV4cGlyZVxyXG4gIHByaXZhdGUgdG9rZW5FeHBpcmU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHRva2VuRXhwaXJlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLnRva2VuRXhwaXJlKTtcclxuICBwdWJsaWMgdG9rZW5FeHBpcmVPYnNlcnYgPSB0aGlzLnRva2VuRXhwaXJlU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIFVwZGF0ZVRva2VuRXhwaXJlKG5ld1Rva2VuRXhwaXJlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudG9rZW5FeHBpcmVTb3VyY2UubmV4dChuZXdUb2tlbkV4cGlyZSk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy9DdXJyZW50IFVzZXJcclxuICBwdWJsaWMgY3VycmVudFVzZXI6IHN0cmluZyA9IFwidG55YWdhdG9cIjtcclxuICBwcml2YXRlIGN1cnJlbnRVc2VyU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmN1cnJlbnRVc2VyKTtcclxuICBwdWJsaWMgY3VycmVudFVzZXJPYnNlcnYgPSB0aGlzLmN1cnJlbnRVc2VyU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIFVwZGF0ZUN1cnJlbnRVc2VyKG5ld1VzZXI6IHN0cmluZykge1xyXG4gICAgdGhpcy5jdXJyZW50VXNlclNvdXJjZS5uZXh0KG5ld1VzZXIudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gbmV3VXNlci50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgLy9MaW5lIE1hbmFnZXJcclxuICBwcml2YXRlIGlzbGluZU1hbmFnZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGlzTGluZU1hbmFnZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuaXNsaW5lTWFuYWdlcik7XHJcbiAgcHVibGljIGlzTGluZU1hbmFnZXJPYnNlcnYgPSB0aGlzLmlzTGluZU1hbmFnZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlSXNMaW5lTWFuYWdlcihtYW5hZ2VyOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzTGluZU1hbmFnZXJTb3VyY2UubmV4dChtYW5hZ2VyKTtcclxuICB9XHJcblxyXG4gIC8vUm9sZXNcclxuICBwcml2YXRlIGN1cnJlbnRSb2xlID0gbmV3IFJvbGU7XHJcbiAgcHVibGljIGN1cnJlbnRSb2xlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmN1cnJlbnRSb2xlKTtcclxuICBwdWJsaWMgbXlSb2xlT2JzZXJ2ID0gdGhpcy5jdXJyZW50Um9sZVNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBVcGRhdGVSb2xlKHJvbGUpIHtcclxuICAgIHRoaXMuY3VycmVudFJvbGVTb3VyY2UubmV4dChyb2xlKTtcclxuICB9XHJcblxyXG4gIC8vTG9nZ2VkIGluIEZpcnN0TmFtZVxyXG4gIHByaXZhdGUgbG9nZ2VkVXNlclNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoXCJ0bnlhZ2F0b1wiKTtcclxuICBwdWJsaWMgbG9nZ2VkVXNlckZ1bGxOYW1lID0gdGhpcy5sb2dnZWRVc2VyU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHVwZGF0ZUxvZ2dlZFVzZXJGdWxsTmFtZSh1c2VyTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmxvZ2dlZFVzZXJTb3VyY2UubmV4dCh1c2VyTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL1RlbmFudE5hbWVcclxuICBwcml2YXRlIHRlbmFudE5hbWVTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFwiVGVuYW50IE5hbWVcIik7XHJcbiAgcHVibGljIHRlbmFudE5hbWVPYnNlcnYgPSB0aGlzLnRlbmFudE5hbWVTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgdXBkYXRlVGVuYW50TmFtZSh0ZW5hbnROYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGVuYW50TmFtZVNvdXJjZS5uZXh0KHRlbmFudE5hbWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vQXV0aG9yaXNhdGlvblxyXG4gIGlzQXV0aG9yaXNlZChjYXBOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuY3VycmVudFJvbGVTb3VyY2UudmFsdWVbY2FwTmFtZV0pIHtcclxuICAgICAgLy8gdGhpcy5sb2dTZXJ2aWNlLmluZm8oYGF1dGhvcmlzZTogJHt0aGlzLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlLnJvbGVOYW1lfSBub3QgYXV0aG9yaXNlZCBmb3IgJHtjYXBOYW1lfWApO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJob21lXCJdKTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChgVW5hdXRob3Jpc2VkOiAke2NhcE5hbWV9YCk7XHJcblxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkVG9rZW4oKSB7XHJcblxyXG4gICAgbGV0IHRva2VuRXhwaXJlOiBEYXRlID0gbmV3IERhdGUodGhpcy50b2tlbkV4cGlyZVNvdXJjZS52YWx1ZSk7XHJcbiAgICBsZXQgbm93RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgbGV0IHZhbGlkOiBib29sZWFuID0gdG9rZW5FeHBpcmUgPiBub3dEYXRlO1xyXG5cclxuICAgIGlmICghdmFsaWQpIHtcclxuXHJcbiAgICAgIHRoaXMuc2Vzc2lvbkV4cGlyZWQoKVxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KGBFeHBpcmVkIFNlc3Npb25gKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZhbGlkXHJcbiAgfVxyXG5cclxuICBjYW5BY3RpdmF0ZSgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5sb2dnZWRpbiAmJiB0aGlzLmlzVmFsaWRUb2tlbigpKSB7XHJcbiAgICAgIC8vIHRoaXMubG9nU2VydmljZS5pbmZvKFwiYXV0aGVudGljYXRpb246IGxvZ2dlZCBpblwiKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKENvbnN0YW50cy5BVVRIX1VTRVIpID09PSBudWxsKSB7XHJcbiAgICAgIC8vIHRoaXMubG9nU2VydmljZS5pbmZvKFwiYXV0aGVudGljYXRpb246IG5vdCBsb2dnZWQgYW5kIG5vIGNhY2hlXCIpO1xyXG5cclxuICAgICAgdGhpcy5zZXNzaW9uRXhwaXJlZCgpO1xyXG5cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIHRoaXMubG9nU2VydmljZS5pbmZvKFwiYXV0aGVudGljYXRpb246IG5vdCBsb2dnZWQgYnV0IGFsbG93ZWQgbG9naW5cIik7XHJcblxyXG4gICAgICB0aGlzLlVwZGF0ZWxvZ2dlZGluKHRydWUpO1xyXG5cclxuICAgICAgdGhpcy5zdG9yYWdlLmdldChDb25zdGFudHMuQVVUSF9VU0VSKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLlVwZGF0ZUN1cnJlbnRVc2VyKHJlc3ApO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuc3RvcmFnZS5nZXQoQ29uc3RhbnRzLkFVVEhfTkFNRSkudGhlbigocmVzcDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMb2dnZWRVc2VyRnVsbE5hbWUocmVzcCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zdG9yYWdlLmdldChDb25zdGFudHMuQVVUSF9ST0xFUykudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgIGxldCByZXQgPSBKU09OLnBhcnNlKHJlc3ApO1xyXG5cclxuICAgICAgICB0aGlzLlVwZGF0ZVJvbGUocmV0KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnN0b3JhZ2UuZ2V0KENvbnN0YW50cy5BVVRIX1RPS0VOKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLlVwZGF0ZVRva2VuKHJlc3ApO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuc3RvcmFnZS5nZXQoQ29uc3RhbnRzLkFVVEhfVE9LRU5fRVhQSVJFKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLlVwZGF0ZVRva2VuRXhwaXJlKHJlc3ApO1xyXG4gICAgICAgIHRoaXMuaXNWYWxpZFRva2VuKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zdG9yYWdlLmdldChDb25zdGFudHMuQVVUSF9URU5BTlRfTkFNRSkudGhlbigocmVzcDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVUZW5hbnROYW1lKHJlc3ApO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|