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
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { Component } from "@angular/core";
|
|
2
|
-
import { User, AppConfig, Constants } from "../../classes/Classes";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../services/http.service";
|
|
5
|
-
import * as i2 from "../../services/storage.service";
|
|
6
|
-
import * as i3 from "@angular/router";
|
|
7
|
-
import * as i4 from "../../services/message.service";
|
|
8
|
-
import * as i5 from "../../services/datalib.service";
|
|
9
|
-
import * as i6 from "../../services/auth.service";
|
|
10
|
-
import * as i7 from "./../../services/log.service";
|
|
11
|
-
import * as i8 from "@abacritt/angularx-social-login";
|
|
12
|
-
import * as i9 from "@angular/forms";
|
|
13
|
-
import * as i10 from "@angular/common";
|
|
14
|
-
import * as i11 from "@angular/material/button";
|
|
15
|
-
import * as i12 from "@angular/material/icon";
|
|
16
|
-
import * as i13 from "@angular/material/form-field";
|
|
17
|
-
import * as i14 from "@angular/material/input";
|
|
18
|
-
import * as i15 from "@angular/material/card";
|
|
19
|
-
import * as i16 from "../text/text.component";
|
|
20
|
-
export class LoginComponent {
|
|
21
|
-
constructor(httpService, storageService, router, messageService, dataService, authService, logService, route, socialService) {
|
|
22
|
-
this.httpService = httpService;
|
|
23
|
-
this.storageService = storageService;
|
|
24
|
-
this.router = router;
|
|
25
|
-
this.messageService = messageService;
|
|
26
|
-
this.dataService = dataService;
|
|
27
|
-
this.authService = authService;
|
|
28
|
-
this.logService = logService;
|
|
29
|
-
this.route = route;
|
|
30
|
-
this.socialService = socialService;
|
|
31
|
-
this.style = "default";
|
|
32
|
-
this.email = "";
|
|
33
|
-
this.password = "";
|
|
34
|
-
this.user = new User();
|
|
35
|
-
this.hide = true;
|
|
36
|
-
this.isProcessing = false;
|
|
37
|
-
this.appConfig = new AppConfig();
|
|
38
|
-
}
|
|
39
|
-
ngOnInit() {
|
|
40
|
-
this.dataService.appConfigObserv.subscribe(x => this.appConfig = x);
|
|
41
|
-
if (this.route.snapshot.queryParams["redirectTo"] != undefined) {
|
|
42
|
-
this.redirectPath = this.route.snapshot.queryParams["redirectTo"];
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.redirectPath = "home";
|
|
46
|
-
}
|
|
47
|
-
this.authService.autoLoginObserv.subscribe(x => {
|
|
48
|
-
this.autoLogin = x;
|
|
49
|
-
console.log("AUTO LOGIN :" + this.autoLogin);
|
|
50
|
-
});
|
|
51
|
-
this.socialUser = null;
|
|
52
|
-
this.socialService.authState.subscribe((socialUser) => {
|
|
53
|
-
this.socialUser = socialUser;
|
|
54
|
-
this.user.userName = socialUser.id;
|
|
55
|
-
this.user.password = socialUser.id; //dummy data
|
|
56
|
-
this.user.token = socialUser.idToken;
|
|
57
|
-
this.user.authType = socialUser.provider;
|
|
58
|
-
this.login();
|
|
59
|
-
});
|
|
60
|
-
// this.authService.logoff();
|
|
61
|
-
}
|
|
62
|
-
signup() {
|
|
63
|
-
this.router.navigate(["signup"]);
|
|
64
|
-
}
|
|
65
|
-
recoverAccount() {
|
|
66
|
-
this.router.navigate(["recover-account"]);
|
|
67
|
-
}
|
|
68
|
-
login() {
|
|
69
|
-
if (this.user.userName == "" || this.user.password == "") {
|
|
70
|
-
this.messageService.toast("Please enter your credentials");
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
this.logService.info("logging in");
|
|
74
|
-
this.isProcessing = true;
|
|
75
|
-
this.user.userName = this.user.userName;
|
|
76
|
-
this.dataService.Login(this.user).subscribe((apiResponse) => {
|
|
77
|
-
this.isProcessing = false;
|
|
78
|
-
if (apiResponse.success) {
|
|
79
|
-
// if (apiResponse.data.authType == 'local' && !this.appConfig.localAuth) {
|
|
80
|
-
// this.messageService.toast("Contact Admin: Authentication Type error");
|
|
81
|
-
// return;
|
|
82
|
-
// }
|
|
83
|
-
// if (apiResponse.data.authType == 'AD' && !this.appConfig.ADAuth) {
|
|
84
|
-
// this.messageService.toast("Contact Admin: Authentication Type error");
|
|
85
|
-
// return;
|
|
86
|
-
// }
|
|
87
|
-
this.authService.Updateloggedin(true);
|
|
88
|
-
this.authService.UpdateToken(apiResponse.data.token);
|
|
89
|
-
this.storageService.store(Constants.AUTH_TOKEN, apiResponse.data.token);
|
|
90
|
-
this.authService.UpdateTokenExpire(apiResponse.data.expiration);
|
|
91
|
-
this.storageService.store(Constants.AUTH_TOKEN_EXPIRE, apiResponse.data.expiration);
|
|
92
|
-
this.authService.UpdateCurrentUser(this.user.userName);
|
|
93
|
-
this.storageService.store(Constants.AUTH_USER, this.user.userName);
|
|
94
|
-
this.authService.updateLoggedUserFullName(apiResponse.data.firstName);
|
|
95
|
-
this.storageService.store(Constants.AUTH_NAME, apiResponse.data.firstName);
|
|
96
|
-
this.authService.UpdateRole(apiResponse.data.role);
|
|
97
|
-
this.storageService.store(Constants.AUTH_ROLES, JSON.stringify(apiResponse.data.role));
|
|
98
|
-
this.authService.updateTenantName(apiResponse.data.tenantName);
|
|
99
|
-
this.storageService.store(Constants.AUTH_TENANT_NAME, apiResponse.data.tenantName);
|
|
100
|
-
this.logService.info("logged in");
|
|
101
|
-
if (apiResponse.data.changePassword == true && apiResponse.data.authType == 'local') {
|
|
102
|
-
this.router.navigate(["home/user/change-password"], {
|
|
103
|
-
queryParams: { redirectTo: this.redirectPath },
|
|
104
|
-
queryParamsHandling: 'merge',
|
|
105
|
-
skipLocationChange: false
|
|
106
|
-
});
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
this.router.navigate([this.redirectPath]);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
this.messageService.toast("Error: " + apiResponse.message);
|
|
113
|
-
this.user.password = "";
|
|
114
|
-
}
|
|
115
|
-
}, (error) => {
|
|
116
|
-
this.isProcessing = false;
|
|
117
|
-
this.messageService.toast(this.httpService.Error(error));
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
LoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LoginComponent, deps: [{ token: i1.HttpService }, { token: i2.StorageService }, { token: i3.Router }, { token: i4.MessageService }, { token: i5.DataServiceLib }, { token: i6.AuthService }, { token: i7.LogService }, { token: i3.ActivatedRoute }, { token: i8.SocialAuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
-
LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LoginComponent, selector: "spa-login", ngImport: i0, template: "\r\n <div *ngIf=\"style=='old'\" class=\"tin-bg-login login-page\">\r\n\r\n <div *ngIf=\"appConfig.logo!=''\" class=\"d-flex justify-content-center row align-items-center\" style=\"margin-top:3em;margin-bottom:1em\">\r\n\r\n <img *ngIf=\"appConfig.logoSize=='normal'\" [src]=\"appConfig.logo\" style=\"width: 100px;margin-right:3em;margin-left:3em\" />\r\n <img *ngIf=\"appConfig.logoSize=='medium'\" [src]=\"appConfig.logo\" style=\"width: 150px;margin-right:3em;margin-left:3em\" />\r\n <img *ngIf=\"appConfig.logoSize=='large'\" [src]=\"appConfig.logo\" style=\"width: 250px; margin-right:3em;margin-left:3em\" />\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf=\"appConfig.logo ==''\" style=\"margin-top:2em\">\r\n <!-- Add margin top when there is no logo -->\r\n </div>\r\n\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" style=\"margin-top:3em;\">\r\n\r\n <div class=\"d-none d-sm-block\">\r\n </div>\r\n\r\n <div style=\"margin-left:1em\">\r\n\r\n <mat-card class=\"mat-elevation-z3 login-card\" style=\"width:400px; \">\r\n\r\n <mat-card-header>\r\n <mat-card-title>{{appConfig.appName}}</mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"tin-input mt-2\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"user.userName\" ></spa-text>\r\n\r\n <mat-form-field >\r\n <mat-label>Password</mat-label>\r\n <input id=\"txtPassword\" matInput [type]=\"hide ? 'password' : 'text'\" (keyup.enter)=\"login()\" [(ngModel)]=\"user.password\" autocomplete=\"off\" >\r\n <button mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">\r\n <mat-icon style=\"font-size: 18px;\">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <div class=\"row \">\r\n\r\n <div class=\"col d-flex justify-content-center\">\r\n <button id=\"btnLogin\" mat-raised-button [disabled]=\"isProcessing\" style=\"width: 100px;\" (click)=\"login()\" color=\"primary\">Login</button>\r\n </div>\r\n\r\n <div class=\"col d-flex justify-content-center\" *ngIf=\"appConfig.selfService\">\r\n <button id=\"btnSignup\" mat-stroked-button color=\"primary\" style=\"width: 100px;\" (click)=\"signup()\">Signup</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n <div *ngIf=\"appConfig.selfService\">\r\n <br />\r\n <a mat-button id=\"lnkRecover\" style=\"margin-left: 1em\" (click)=\"recoverAccount()\">Forgot your password ?</a>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf=\"style=='default'\" class=\"login-page background tin-bg-login\">\r\n\r\n <div class=\"container\" >\r\n\r\n <div class=\"logo\">\r\n <img *ngIf=\"appConfig.logoSize=='normal'\" [src]=\"appConfig.logo\" style=\"width: 100px\" />\r\n <img *ngIf=\"appConfig.logoSize=='medium'\" [src]=\"appConfig.logo\" style=\"width: 150px\" />\r\n <img *ngIf=\"appConfig.logoSize=='large'\" [src]=\"appConfig.logo\" style=\"width: 250px\" />\r\n </div>\r\n\r\n <mat-card class=\"mat-elevation-z3 \" style=\"width:400px; \">\r\n\r\n <mat-card-header>\r\n <mat-card-title style=\"font-size: 40px;margin-bottom: 10px; margin-top: 20px; font-weight: 300\">{{appConfig.appName}}</mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content *ngIf=\"appConfig.localAuth || appConfig.ADAuth\">\r\n\r\n <div class=\"tin-input mt-2\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"user.userName\"></spa-text>\r\n\r\n <spa-text id=\"txtPassword\" display=\"Password\" format=\"password\" [(value)]=\"user.password\" (enterPress)=\"login()\"></spa-text>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n\r\n\r\n <mat-card-actions style=\"margin-bottom: 10px;\">\r\n\r\n <div class=\"button mt-0\" *ngIf=\"appConfig.localAuth || appConfig.ADAuth\">\r\n <button id=\"btnLogin\" mat-flat-button [disabled]=\"isProcessing\" style=\"width: 350px;\" (click)=\"login()\" color=\"primary\">Login</button>\r\n </div>\r\n\r\n <div class=\"button\" *ngIf=\"(appConfig.localAuth || appConfig.ADAuth) && appConfig.selfService\" >\r\n <button id=\"btnSignup\" mat-stroked-button color=\"primary\" style=\"width: 350px;\" (click)=\"signup()\">Sign up with Email</button>\r\n </div>\r\n\r\n <div class=\"button\" *ngIf=\"appConfig.googleAuth\">\r\n <asl-google-signin-button type='standard' width=\"350px\" size='medium' logo_alignment=\"center\" style=\"text-align: center;\"></asl-google-signin-button>\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n <a *ngIf=\"appConfig.selfService\" mat-button id=\"lnkRecover\" style=\"margin-top: 1em\" (click)=\"recoverAccount()\">Forgot your password ?</a>\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"style=='bs'\">\r\n\r\n <div class=\"container\">\r\n\r\n <div class=\"image\">\r\n <img class=\"mb-4\" src=\"c:\\Tinashe\\Code\\Angular\\Junk\\bs-examples\\assets\\brand\\bootstrap-logo.svg\" alt=\"\" width=\"72\" height=\"57\">\r\n </div>\r\n\r\n <div class=\"details\">\r\n <h1 class=\"h3 mb-3 fw-normal\" >Please sign in</h1>\r\n\r\n <div class=\"form-floating\">\r\n <input class=\"form-control\" id=\"floatingInput\" placeholder=\"name@example.com\" [(ngModel)]=\"user.userName\">\r\n <label for=\"floatingInput\">Username</label>\r\n </div>\r\n\r\n <div class=\"form-floating\">\r\n <input type=\"password\" class=\"form-control\" id=\"floatingPassword\" placeholder=\"Password\" [(ngModel)]=\"user.password\">\r\n <label for=\"floatingPassword\">Password</label>\r\n </div>\r\n\r\n <div class=\"form-check text-start my-3\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"remember-me\" id=\"flexCheckDefault\" >\r\n <label class=\"form-check-label\" for=\"flexCheckDefault\">\r\n Remember me\r\n </label>\r\n </div>\r\n\r\n <button class=\"btn btn-primary w-100 py-2\" (click)=\"login()\">Sign in</button>\r\n\r\n </div>\r\n\r\n <p class=\"mt-5 mb-3 text-body-secondary\">© 2017\u20132023</p>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n", styles: [".login-page{position:absolute;inset:0;overflow:auto}.background{min-height:100%}.container{display:flex;flex-direction:column;align-items:center;height:100vh}.logo{margin-top:3em;margin-bottom:1em}.buttons{display:flex;flex-direction:row;justify-content:space-evenly}.button{display:flex;flex-direction:row;justify-content:center;margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i11.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i13.MatLabel, selector: "mat-label" }, { kind: "directive", type: i13.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i14.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i15.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i15.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i15.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i15.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i15.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "component", type: i16.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "directive", type: i8.GoogleSigninButtonDirective, selector: "asl-google-signin-button", inputs: ["type", "size", "text", "shape", "theme", "logo_alignment", "width", "locale"] }] });
|
|
123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LoginComponent, decorators: [{
|
|
124
|
-
type: Component,
|
|
125
|
-
args: [{ selector: "spa-login", template: "\r\n <div *ngIf=\"style=='old'\" class=\"tin-bg-login login-page\">\r\n\r\n <div *ngIf=\"appConfig.logo!=''\" class=\"d-flex justify-content-center row align-items-center\" style=\"margin-top:3em;margin-bottom:1em\">\r\n\r\n <img *ngIf=\"appConfig.logoSize=='normal'\" [src]=\"appConfig.logo\" style=\"width: 100px;margin-right:3em;margin-left:3em\" />\r\n <img *ngIf=\"appConfig.logoSize=='medium'\" [src]=\"appConfig.logo\" style=\"width: 150px;margin-right:3em;margin-left:3em\" />\r\n <img *ngIf=\"appConfig.logoSize=='large'\" [src]=\"appConfig.logo\" style=\"width: 250px; margin-right:3em;margin-left:3em\" />\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf=\"appConfig.logo ==''\" style=\"margin-top:2em\">\r\n <!-- Add margin top when there is no logo -->\r\n </div>\r\n\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" style=\"margin-top:3em;\">\r\n\r\n <div class=\"d-none d-sm-block\">\r\n </div>\r\n\r\n <div style=\"margin-left:1em\">\r\n\r\n <mat-card class=\"mat-elevation-z3 login-card\" style=\"width:400px; \">\r\n\r\n <mat-card-header>\r\n <mat-card-title>{{appConfig.appName}}</mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"tin-input mt-2\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"user.userName\" ></spa-text>\r\n\r\n <mat-form-field >\r\n <mat-label>Password</mat-label>\r\n <input id=\"txtPassword\" matInput [type]=\"hide ? 'password' : 'text'\" (keyup.enter)=\"login()\" [(ngModel)]=\"user.password\" autocomplete=\"off\" >\r\n <button mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">\r\n <mat-icon style=\"font-size: 18px;\">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <div class=\"row \">\r\n\r\n <div class=\"col d-flex justify-content-center\">\r\n <button id=\"btnLogin\" mat-raised-button [disabled]=\"isProcessing\" style=\"width: 100px;\" (click)=\"login()\" color=\"primary\">Login</button>\r\n </div>\r\n\r\n <div class=\"col d-flex justify-content-center\" *ngIf=\"appConfig.selfService\">\r\n <button id=\"btnSignup\" mat-stroked-button color=\"primary\" style=\"width: 100px;\" (click)=\"signup()\">Signup</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n <div *ngIf=\"appConfig.selfService\">\r\n <br />\r\n <a mat-button id=\"lnkRecover\" style=\"margin-left: 1em\" (click)=\"recoverAccount()\">Forgot your password ?</a>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf=\"style=='default'\" class=\"login-page background tin-bg-login\">\r\n\r\n <div class=\"container\" >\r\n\r\n <div class=\"logo\">\r\n <img *ngIf=\"appConfig.logoSize=='normal'\" [src]=\"appConfig.logo\" style=\"width: 100px\" />\r\n <img *ngIf=\"appConfig.logoSize=='medium'\" [src]=\"appConfig.logo\" style=\"width: 150px\" />\r\n <img *ngIf=\"appConfig.logoSize=='large'\" [src]=\"appConfig.logo\" style=\"width: 250px\" />\r\n </div>\r\n\r\n <mat-card class=\"mat-elevation-z3 \" style=\"width:400px; \">\r\n\r\n <mat-card-header>\r\n <mat-card-title style=\"font-size: 40px;margin-bottom: 10px; margin-top: 20px; font-weight: 300\">{{appConfig.appName}}</mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content *ngIf=\"appConfig.localAuth || appConfig.ADAuth\">\r\n\r\n <div class=\"tin-input mt-2\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"user.userName\"></spa-text>\r\n\r\n <spa-text id=\"txtPassword\" display=\"Password\" format=\"password\" [(value)]=\"user.password\" (enterPress)=\"login()\"></spa-text>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n\r\n\r\n <mat-card-actions style=\"margin-bottom: 10px;\">\r\n\r\n <div class=\"button mt-0\" *ngIf=\"appConfig.localAuth || appConfig.ADAuth\">\r\n <button id=\"btnLogin\" mat-flat-button [disabled]=\"isProcessing\" style=\"width: 350px;\" (click)=\"login()\" color=\"primary\">Login</button>\r\n </div>\r\n\r\n <div class=\"button\" *ngIf=\"(appConfig.localAuth || appConfig.ADAuth) && appConfig.selfService\" >\r\n <button id=\"btnSignup\" mat-stroked-button color=\"primary\" style=\"width: 350px;\" (click)=\"signup()\">Sign up with Email</button>\r\n </div>\r\n\r\n <div class=\"button\" *ngIf=\"appConfig.googleAuth\">\r\n <asl-google-signin-button type='standard' width=\"350px\" size='medium' logo_alignment=\"center\" style=\"text-align: center;\"></asl-google-signin-button>\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n <a *ngIf=\"appConfig.selfService\" mat-button id=\"lnkRecover\" style=\"margin-top: 1em\" (click)=\"recoverAccount()\">Forgot your password ?</a>\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"style=='bs'\">\r\n\r\n <div class=\"container\">\r\n\r\n <div class=\"image\">\r\n <img class=\"mb-4\" src=\"c:\\Tinashe\\Code\\Angular\\Junk\\bs-examples\\assets\\brand\\bootstrap-logo.svg\" alt=\"\" width=\"72\" height=\"57\">\r\n </div>\r\n\r\n <div class=\"details\">\r\n <h1 class=\"h3 mb-3 fw-normal\" >Please sign in</h1>\r\n\r\n <div class=\"form-floating\">\r\n <input class=\"form-control\" id=\"floatingInput\" placeholder=\"name@example.com\" [(ngModel)]=\"user.userName\">\r\n <label for=\"floatingInput\">Username</label>\r\n </div>\r\n\r\n <div class=\"form-floating\">\r\n <input type=\"password\" class=\"form-control\" id=\"floatingPassword\" placeholder=\"Password\" [(ngModel)]=\"user.password\">\r\n <label for=\"floatingPassword\">Password</label>\r\n </div>\r\n\r\n <div class=\"form-check text-start my-3\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"remember-me\" id=\"flexCheckDefault\" >\r\n <label class=\"form-check-label\" for=\"flexCheckDefault\">\r\n Remember me\r\n </label>\r\n </div>\r\n\r\n <button class=\"btn btn-primary w-100 py-2\" (click)=\"login()\">Sign in</button>\r\n\r\n </div>\r\n\r\n <p class=\"mt-5 mb-3 text-body-secondary\">© 2017\u20132023</p>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n", styles: [".login-page{position:absolute;inset:0;overflow:auto}.background{min-height:100%}.container{display:flex;flex-direction:column;align-items:center;height:100vh}.logo{margin-top:3em;margin-bottom:1em}.buttons{display:flex;flex-direction:row;justify-content:space-evenly}.button{display:flex;flex-direction:row;justify-content:center;margin-top:10px}\n"] }]
|
|
126
|
-
}], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.StorageService }, { type: i3.Router }, { type: i4.MessageService }, { type: i5.DataServiceLib }, { type: i6.AuthService }, { type: i7.LogService }, { type: i3.ActivatedRoute }, { type: i8.SocialAuthService }]; } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFJekQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQWUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNoRixNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixXQUF3QixFQUFVLGNBQThCLEVBQVMsTUFBYyxFQUFVLGNBQThCLEVBQVMsV0FBMkIsRUFDOUssV0FBd0IsRUFBVSxVQUFzQixFQUFVLEtBQXFCLEVBQVUsYUFBZ0M7UUFEdEgsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzlLLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBMEMxSSxVQUFLLEdBQVcsU0FBUyxDQUFDO1FBRTFCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUlmLFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3pCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixpQkFBWSxHQUFZLEtB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YztrQkFMMUIsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tIFwiLi8uLi8uLi9zZXJ2aWNlcy9sb2cuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBVc2VyLCBBcHBDb25maWcsIEFwaVJlc3BvbnNlLCBDb25zdGFudHMgfSBmcm9tIFwiLi4vLi4vY2xhc3Nlcy9DbGFzc2VzXCI7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2h0dHAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTb2NpYWxBdXRoU2VydmljZSwgU29jaWFsVXNlciB9IGZyb20gJ0BhYmFjcml0dC9hbmd1bGFyeC1zb2NpYWwtbG9naW4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic3BhLWxvZ2luXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9sb2dpbi5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9sb2dpbi5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSwgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHB1YmxpYyBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsXHJcbiAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIGxvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHNvY2lhbFNlcnZpY2U6IFNvY2lhbEF1dGhTZXJ2aWNlICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5hcHBDb25maWdPYnNlcnYuc3Vic2NyaWJlKHggPT4gdGhpcy5hcHBDb25maWcgPSB4KTtcclxuXHJcbiAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcInJlZGlyZWN0VG9cIl0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMucmVkaXJlY3RQYXRoID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcInJlZGlyZWN0VG9cIl1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnJlZGlyZWN0UGF0aCA9IFwiaG9tZVwiXHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmF1dG9Mb2dpbk9ic2Vydi5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgIHRoaXMuYXV0b0xvZ2luID0geFxyXG4gICAgICBjb25zb2xlLmxvZyhcIkFVVE8gTE9HSU4gOlwiICsgdGhpcy5hdXRvTG9naW4pXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc29jaWFsVXNlciA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zb2NpYWxTZXJ2aWNlLmF1dGhTdGF0ZS5zdWJzY3JpYmUoKHNvY2lhbFVzZXI6IFNvY2lhbFVzZXIpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuc29jaWFsVXNlciA9IHNvY2lhbFVzZXI7XHJcblxyXG4gICAgICB0aGlzLnVzZXIudXNlck5hbWUgPSBzb2NpYWxVc2VyLmlkO1xyXG4gICAgICB0aGlzLnVzZXIucGFzc3dvcmQgPSBzb2NpYWxVc2VyLmlkOyAvL2R1bW15IGRhdGFcclxuICAgICAgdGhpcy51c2VyLnRva2VuID0gc29jaWFsVXNlci5pZFRva2VuO1xyXG4gICAgICB0aGlzLnVzZXIuYXV0aFR5cGUgPSBzb2NpYWxVc2VyLnByb3ZpZGVyO1xyXG5cclxuICAgICAgdGhpcy5sb2dpbigpO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHRoaXMuYXV0aFNlcnZpY2UubG9nb2ZmKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgYXV0b0xvZ2luOiBib29sZWFuO1xyXG4gIHNvY2lhbFVzZXI6IFNvY2lhbFVzZXIgfCBudWxsO1xyXG5cclxuICBzdHlsZTogc3RyaW5nID0gXCJkZWZhdWx0XCI7XHJcblxyXG4gIGVtYWlsOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICByZWRpcmVjdFBhdGhcclxuXHJcbiAgcHVibGljIHVzZXIgPSBuZXcgVXNlcigpO1xyXG4gIGhpZGUgPSB0cnVlO1xyXG4gIGlzUHJvY2Vzc2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBhcHBDb25maWcgPSBuZXcgQXBwQ29uZmlnKCk7XHJcblxyXG4gIHB1YmxpYyBzaWdudXAoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJzaWdudXBcIl0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlY292ZXJBY2NvdW50KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wicmVjb3Zlci1hY2NvdW50XCJdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dpbigpIHtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMudXNlci51c2VyTmFtZSA9PSBcIlwiIHx8IHRoaXMudXNlci5wYXNzd29yZCA9PSBcIlwiKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQbGVhc2UgZW50ZXIgeW91ciBjcmVkZW50aWFsc1wiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuaW5mbyhcImxvZ2dpbmcgaW5cIik7XHJcblxyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG5cclxuXHJcbiAgICB0aGlzLnVzZXIudXNlck5hbWUgPSB0aGlzLnVzZXIudXNlck5hbWVcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkxvZ2luKHRoaXMudXNlcikuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcblxyXG5cclxuICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuXHJcbiAgICAgICAgLy8gaWYgKGFwaVJlc3BvbnNlLmRhdGEuYXV0aFR5cGUgPT0gJ2xvY2FsJyAmJiAhdGhpcy5hcHBDb25maWcubG9jYWxBdXRoKSB7XHJcbiAgICAgICAgLy8gICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiQ29udGFjdCBBZG1pbjogQXV0aGVudGljYXRpb24gVHlwZSBlcnJvclwiKTtcclxuICAgICAgICAvLyAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIGlmIChhcGlSZXNwb25zZS5kYXRhLmF1dGhUeXBlID09ICdBRCcgJiYgIXRoaXMuYXBwQ29uZmlnLkFEQXV0aCkge1xyXG4gICAgICAgIC8vICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkNvbnRhY3QgQWRtaW46IEF1dGhlbnRpY2F0aW9uIFR5cGUgZXJyb3JcIik7XHJcbiAgICAgICAgLy8gICByZXR1cm47XHJcbiAgICAgICAgLy8gfVxyXG5cclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5VcGRhdGVsb2dnZWRpbih0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5VcGRhdGVUb2tlbihhcGlSZXNwb25zZS5kYXRhLnRva2VuKTtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JlKENvbnN0YW50cy5BVVRIX1RPS0VOLCBhcGlSZXNwb25zZS5kYXRhLnRva2VuKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5VcGRhdGVUb2tlbkV4cGlyZShhcGlSZXNwb25zZS5kYXRhLmV4cGlyYXRpb24pO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc3RvcmUoQ29uc3RhbnRzLkFVVEhfVE9LRU5fRVhQSVJFLCBhcGlSZXNwb25zZS5kYXRhLmV4cGlyYXRpb24pO1xyXG5cclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLlVwZGF0ZUN1cnJlbnRVc2VyKHRoaXMudXNlci51c2VyTmFtZSk7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zdG9yZShDb25zdGFudHMuQVVUSF9VU0VSLCB0aGlzLnVzZXIudXNlck5hbWUpO1xyXG5cclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZUxvZ2dlZFVzZXJGdWxsTmFtZShhcGlSZXNwb25zZS5kYXRhLmZpcnN0TmFtZSk7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zdG9yZShDb25zdGFudHMuQVVUSF9OQU1FLCBhcGlSZXNwb25zZS5kYXRhLmZpcnN0TmFtZSk7XHJcblxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuVXBkYXRlUm9sZShhcGlSZXNwb25zZS5kYXRhLnJvbGUpO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc3RvcmUoQ29uc3RhbnRzLkFVVEhfUk9MRVMsIEpTT04uc3RyaW5naWZ5KGFwaVJlc3BvbnNlLmRhdGEucm9sZSkpO1xyXG5cclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZVRlbmFudE5hbWUoYXBpUmVzcG9uc2UuZGF0YS50ZW5hbnROYW1lKTtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JlKENvbnN0YW50cy5BVVRIX1RFTkFOVF9OQU1FLCBhcGlSZXNwb25zZS5kYXRhLnRlbmFudE5hbWUpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5sb2dTZXJ2aWNlLmluZm8oXCJsb2dnZWQgaW5cIik7XHJcblxyXG5cclxuICAgICAgICBpZiAoYXBpUmVzcG9uc2UuZGF0YS5jaGFuZ2VQYXNzd29yZCA9PSB0cnVlICYmIGFwaVJlc3BvbnNlLmRhdGEuYXV0aFR5cGUgPT0gJ2xvY2FsJykge1xyXG5cclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImhvbWUvdXNlci9jaGFuZ2UtcGFzc3dvcmRcIl0sIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgcmVkaXJlY3RUbzogdGhpcy5yZWRpcmVjdFBhdGggfSxcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlOiBmYWxzZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJlZGlyZWN0UGF0aF0pO1xyXG5cclxuXHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB0aGlzLnVzZXIucGFzc3dvcmQgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHRoaXMuaHR0cFNlcnZpY2UuRXJyb3IoZXJyb3IpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCJcclxuICA8ZGl2ICpuZ0lmPVwic3R5bGU9PSdvbGQnXCIgY2xhc3M9XCJ0aW4tYmctbG9naW4gbG9naW4tcGFnZVwiPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJhcHBDb25maWcubG9nbyE9JydcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cIm1hcmdpbi10b3A6M2VtO21hcmdpbi1ib3R0b206MWVtXCI+XHJcblxyXG4gICAgICA8aW1nICpuZ0lmPVwiYXBwQ29uZmlnLmxvZ29TaXplPT0nbm9ybWFsJ1wiICBbc3JjXT1cImFwcENvbmZpZy5sb2dvXCIgc3R5bGU9XCJ3aWR0aDogMTAwcHg7bWFyZ2luLXJpZ2h0OjNlbTttYXJnaW4tbGVmdDozZW1cIiAvPlxyXG4gICAgICA8aW1nICpuZ0lmPVwiYXBwQ29uZmlnLmxvZ29TaXplPT0nbWVkaXVtJ1wiICBbc3JjXT1cImFwcENvbmZpZy5sb2dvXCIgc3R5bGU9XCJ3aWR0aDogMTUwcHg7bWFyZ2luLXJpZ2h0OjNlbTttYXJnaW4tbGVmdDozZW1cIiAvPlxyXG4gICAgICA8aW1nICpuZ0lmPVwiYXBwQ29uZmlnLmxvZ29TaXplPT0nbGFyZ2UnXCIgIFtzcmNdPVwiYXBwQ29uZmlnLmxvZ29cIiBzdHlsZT1cIndpZHRoOiAyNTBweDsgbWFyZ2luLXJpZ2h0OjNlbTttYXJnaW4tbGVmdDozZW1cIiAvPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiYXBwQ29uZmlnLmxvZ28gPT0nJ1wiIHN0eWxlPVwibWFyZ2luLXRvcDoyZW1cIj5cclxuICAgICAgICA8IS0tIEFkZCBtYXJnaW4gdG9wIHdoZW4gdGhlcmUgaXMgbm8gbG9nbyAtLT5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwibWFyZ2luLXRvcDozZW07XCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1ub25lIGQtc20tYmxvY2tcIj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWxlZnQ6MWVtXCI+XHJcblxyXG4gICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejMgbG9naW4tY2FyZFwiIHN0eWxlPVwid2lkdGg6NDAwcHg7IFwiPlxyXG5cclxuICAgICAgICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT57e2FwcENvbmZpZy5hcHBOYW1lfX08L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcblxyXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGluLWlucHV0IG10LTJcIj5cclxuXHJcbiAgICAgICAgICAgICAgPHNwYS10ZXh0IGlkPVwidHh0dXNlck5hbWVcIiBkaXNwbGF5PVwiVXNlcm5hbWVcIiBbKHZhbHVlKV09XCJ1c2VyLnVzZXJOYW1lXCIgPjwvc3BhLXRleHQ+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlBhc3N3b3JkPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ0eHRQYXNzd29yZFwiIG1hdElucHV0IFt0eXBlXT1cImhpZGUgPyAncGFzc3dvcmQnIDogJ3RleHQnXCIgIChrZXl1cC5lbnRlcik9XCJsb2dpbigpXCIgWyhuZ01vZGVsKV09XCJ1c2VyLnBhc3N3b3JkXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJoaWRlID0gIWhpZGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidIaWRlIHBhc3N3b3JkJ1wiIFthdHRyLmFyaWEtcHJlc3NlZF09XCJoaWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDtcIj57e2hpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuXHJcblxyXG4gICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnM+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IFwiPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYnRuTG9naW5cIiAgbWF0LXJhaXNlZC1idXR0b24gW2Rpc2FibGVkXT1cImlzUHJvY2Vzc2luZ1wiIHN0eWxlPVwid2lkdGg6IDEwMHB4O1wiIChjbGljayk9XCJsb2dpbigpXCIgY29sb3I9XCJwcmltYXJ5XCI+TG9naW48L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiYXBwQ29uZmlnLnNlbGZTZXJ2aWNlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYnRuU2lnbnVwXCIgbWF0LXN0cm9rZWQtYnV0dG9uICBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cIndpZHRoOiAxMDBweDtcIiAoY2xpY2spPVwic2lnbnVwKClcIj5TaWdudXA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuXHJcbiAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFwcENvbmZpZy5zZWxmU2VydmljZVwiPlxyXG4gICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICA8YSBtYXQtYnV0dG9uIGlkPVwibG5rUmVjb3ZlclwiICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxZW1cIiAoY2xpY2spPVwicmVjb3ZlckFjY291bnQoKVwiPkZvcmdvdCB5b3VyIHBhc3N3b3JkID88L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2ICpuZ0lmPVwic3R5bGU9PSdkZWZhdWx0J1wiIGNsYXNzPVwibG9naW4tcGFnZSBiYWNrZ3JvdW5kIHRpbi1iZy1sb2dpblwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiA+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibG9nb1wiPlxyXG4gICAgICAgIDxpbWcgKm5nSWY9XCJhcHBDb25maWcubG9nb1NpemU9PSdub3JtYWwnXCIgIFtzcmNdPVwiYXBwQ29uZmlnLmxvZ29cIiBzdHlsZT1cIndpZHRoOiAxMDBweFwiIC8+XHJcbiAgICAgICAgPGltZyAqbmdJZj1cImFwcENvbmZpZy5sb2dvU2l6ZT09J21lZGl1bSdcIiAgW3NyY109XCJhcHBDb25maWcubG9nb1wiIHN0eWxlPVwid2lkdGg6IDE1MHB4XCIgLz5cclxuICAgICAgICA8aW1nICpuZ0lmPVwiYXBwQ29uZmlnLmxvZ29TaXplPT0nbGFyZ2UnXCIgIFtzcmNdPVwiYXBwQ29uZmlnLmxvZ29cIiBzdHlsZT1cIndpZHRoOiAyNTBweFwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG1hdC1jYXJkIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MyBcIiBzdHlsZT1cIndpZHRoOjQwMHB4OyBcIj5cclxuXHJcbiAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBzdHlsZT1cImZvbnQtc2l6ZTogNDBweDttYXJnaW4tYm90dG9tOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4OyBmb250LXdlaWdodDogMzAwXCI+e3thcHBDb25maWcuYXBwTmFtZX19PC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuXHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgKm5nSWY9XCJhcHBDb25maWcubG9jYWxBdXRoIHx8IGFwcENvbmZpZy5BREF1dGhcIj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGluLWlucHV0IG10LTJcIj5cclxuXHJcbiAgICAgICAgICAgIDxzcGEtdGV4dCBpZD1cInR4dHVzZXJOYW1lXCIgZGlzcGxheT1cIlVzZXJuYW1lXCIgWyh2YWx1ZSldPVwidXNlci51c2VyTmFtZVwiPjwvc3BhLXRleHQ+XHJcblxyXG4gICAgICAgICAgICA8c3BhLXRleHQgaWQ9XCJ0eHRQYXNzd29yZFwiIGRpc3BsYXk9XCJQYXNzd29yZFwiIGZvcm1hdD1cInBhc3N3b3JkXCIgWyh2YWx1ZSldPVwidXNlci5wYXNzd29yZFwiIChlbnRlclByZXNzKT1cImxvZ2luKClcIj48L3NwYS10ZXh0PlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcblxyXG5cclxuICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDEwcHg7XCI+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbiBtdC0wXCIgKm5nSWY9XCJhcHBDb25maWcubG9jYWxBdXRoIHx8IGFwcENvbmZpZy5BREF1dGhcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bkxvZ2luXCIgbWF0LWZsYXQtYnV0dG9uIFtkaXNhYmxlZF09XCJpc1Byb2Nlc3NpbmdcIiBzdHlsZT1cIndpZHRoOiAzNTBweDtcIiAoY2xpY2spPVwibG9naW4oKVwiIGNvbG9yPVwicHJpbWFyeVwiPkxvZ2luPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uXCIgKm5nSWY9XCIoYXBwQ29uZmlnLmxvY2FsQXV0aCB8fCBhcHBDb25maWcuQURBdXRoKSAmJiBhcHBDb25maWcuc2VsZlNlcnZpY2VcIiA+XHJcbiAgICAgICAgICAgIDxidXR0b24gIGlkPVwiYnRuU2lnbnVwXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwid2lkdGg6IDM1MHB4O1wiIChjbGljayk9XCJzaWdudXAoKVwiPlNpZ24gdXAgd2l0aCBFbWFpbDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiICpuZ0lmPVwiYXBwQ29uZmlnLmdvb2dsZUF1dGhcIj5cclxuICAgICAgICAgICAgPGFzbC1nb29nbGUtc2lnbmluLWJ1dHRvbiB0eXBlPSdzdGFuZGFyZCcgd2lkdGg9XCIzNTBweFwiIHNpemU9J21lZGl1bScgbG9nb19hbGlnbm1lbnQ9XCJjZW50ZXJcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48L2FzbC1nb29nbGUtc2lnbmluLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcblxyXG4gICAgICA8L21hdC1jYXJkPlxyXG5cclxuICAgICAgPGEgKm5nSWY9XCJhcHBDb25maWcuc2VsZlNlcnZpY2VcIiBtYXQtYnV0dG9uIGlkPVwibG5rUmVjb3ZlclwiIHN0eWxlPVwibWFyZ2luLXRvcDogMWVtXCIgKGNsaWNrKT1cInJlY292ZXJBY2NvdW50KClcIj5Gb3Jnb3QgeW91ciBwYXNzd29yZCA/PC9hPlxyXG5cclxuXHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPGRpdiAqbmdJZj1cInN0eWxlPT0nYnMnXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgPGltZyBjbGFzcz1cIm1iLTRcIiBzcmM9XCJjOlxcVGluYXNoZVxcQ29kZVxcQW5ndWxhclxcSnVua1xcYnMtZXhhbXBsZXNcXGFzc2V0c1xcYnJhbmRcXGJvb3RzdHJhcC1sb2dvLnN2Z1wiIGFsdD1cIlwiIHdpZHRoPVwiNzJcIiBoZWlnaHQ9XCI1N1wiPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwiaDMgbWItMyBmdy1ub3JtYWxcIiA+UGxlYXNlIHNpZ24gaW48L2gxPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1mbG9hdGluZ1wiPlxyXG4gICAgICAgICAgPGlucHV0ICBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZmxvYXRpbmdJbnB1dFwiIHBsYWNlaG9sZGVyPVwibmFtZUBleGFtcGxlLmNvbVwiIFsobmdNb2RlbCldPVwidXNlci51c2VyTmFtZVwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cImZsb2F0aW5nSW5wdXRcIj5Vc2VybmFtZTwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImZsb2F0aW5nUGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIlBhc3N3b3JkXCIgWyhuZ01vZGVsKV09XCJ1c2VyLnBhc3N3b3JkXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZmxvYXRpbmdQYXNzd29yZFwiPlBhc3N3b3JkPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgdGV4dC1zdGFydCBteS0zXCI+XHJcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJyZW1lbWJlci1tZVwiIGlkPVwiZmxleENoZWNrRGVmYXVsdFwiID5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJmbGV4Q2hlY2tEZWZhdWx0XCI+XHJcbiAgICAgICAgICAgIFJlbWVtYmVyIG1lXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIHB5LTJcIiAgKGNsaWNrKT1cImxvZ2luKClcIj5TaWduIGluPC9idXR0b24+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxwIGNsYXNzPVwibXQtNSBtYi0zIHRleHQtYm9keS1zZWNvbmRhcnlcIj4mY29weTsgMjAxN+KAkzIwMjM8L3A+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuIl19
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { MatTableDataSource } from '@angular/material/table';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../services/auth.service";
|
|
5
|
-
import * as i2 from "../../services/datalib.service";
|
|
6
|
-
import * as i3 from "@angular/common";
|
|
7
|
-
import * as i4 from "@angular/material/table";
|
|
8
|
-
import * as i5 from "@angular/material/paginator";
|
|
9
|
-
import * as i6 from "../filter/filter.component";
|
|
10
|
-
export class LogsComponent {
|
|
11
|
-
constructor(authService, dataService) {
|
|
12
|
-
this.authService = authService;
|
|
13
|
-
this.dataService = dataService;
|
|
14
|
-
this.isProcessing = false;
|
|
15
|
-
this.displayedColumns = ["dateLogged", "userName", "fullName", "source", "details"];
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.authService.isAuthorised(this.dataService.capLogs.name);
|
|
19
|
-
this.loadLogs();
|
|
20
|
-
}
|
|
21
|
-
loadLogs() {
|
|
22
|
-
this.dataService.GetLog("all", "").subscribe((apiResponse) => {
|
|
23
|
-
this.logs = new MatTableDataSource(apiResponse);
|
|
24
|
-
this.logs.paginator = this.logsPaginator;
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
LogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LogsComponent, deps: [{ token: i1.AuthService }, { token: i2.DataServiceLib }], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
-
LogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LogsComponent, selector: "spa-logs", viewQueries: [{ propertyName: "logsPaginator", first: true, predicate: ["logsPaginator"], descendants: true }], ngImport: i0, template: "<h4>Logs</h4>\r\n<hr />\r\n\r\n<div class=\"container-fluid\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px\">\r\n\r\n <div class=\"col-2\">\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-end\">\r\n <spa-filter [data]=\"logs\" (refreshClick)=\"loadLogs()\"></spa-filter>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <p *ngIf=\"!logs\"><em>Loading...</em></p>\r\n\r\n\r\n <div class=\"mat-elevation-z8\" *ngIf=\"logs\">\r\n\r\n <table id=\"tblTable\" mat-table [dataSource]=\"logs\">\r\n\r\n\r\n <ng-container matColumnDef=\"userName\">\r\n <th mat-header-cell *matHeaderCellDef> User </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.userName}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"dateLogged\">\r\n <th mat-header-cell *matHeaderCellDef class=\"datetime\"> Date Logged </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.dateLogged | date: 'dd MMM yy HH:mm:ss'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"source\">\r\n <th mat-header-cell *matHeaderCellDef> Source </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.source}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"details\">\r\n <th mat-header-cell *matHeaderCellDef> Details </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.details}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"fullName\">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef=\"let log\">{{log.user?.firstName}} {{log.user?.lastName}}</td>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #logsPaginator [pageSizeOptions]=\"[50, 100, 200]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i6.FilterComponent, selector: "spa-filter", inputs: ["flatButtons", "showText", "showButton", "data"], outputs: ["refreshClick"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LogsComponent, decorators: [{
|
|
31
|
-
type: Component,
|
|
32
|
-
args: [{ selector: 'spa-logs', template: "<h4>Logs</h4>\r\n<hr />\r\n\r\n<div class=\"container-fluid\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px\">\r\n\r\n <div class=\"col-2\">\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-end\">\r\n <spa-filter [data]=\"logs\" (refreshClick)=\"loadLogs()\"></spa-filter>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <p *ngIf=\"!logs\"><em>Loading...</em></p>\r\n\r\n\r\n <div class=\"mat-elevation-z8\" *ngIf=\"logs\">\r\n\r\n <table id=\"tblTable\" mat-table [dataSource]=\"logs\">\r\n\r\n\r\n <ng-container matColumnDef=\"userName\">\r\n <th mat-header-cell *matHeaderCellDef> User </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.userName}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"dateLogged\">\r\n <th mat-header-cell *matHeaderCellDef class=\"datetime\"> Date Logged </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.dateLogged | date: 'dd MMM yy HH:mm:ss'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"source\">\r\n <th mat-header-cell *matHeaderCellDef> Source </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.source}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"details\">\r\n <th mat-header-cell *matHeaderCellDef> Details </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.details}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"fullName\">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef=\"let log\">{{log.user?.firstName}} {{log.user?.lastName}}</td>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #logsPaginator [pageSizeOptions]=\"[50, 100, 200]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}\n"] }]
|
|
33
|
-
}], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.DataServiceLib }]; }, propDecorators: { logsPaginator: [{
|
|
34
|
-
type: ViewChild,
|
|
35
|
-
args: ["logsPaginator"]
|
|
36
|
-
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9sb2dzL2xvZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbG9ncy9sb2dzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQVE3RCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQixXQUF3QixFQUFVLFdBQTJCO1FBQTdELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBT2pGLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBTTlCLHFCQUFnQixHQUFhLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBYkgsQ0FBQztJQUV2RixRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFVTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBRTNELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRTNDLENBQUMsQ0FDQSxDQUFDO0lBQ0osQ0FBQzs7MEdBeEJVLGFBQWE7OEZBQWIsYUFBYSxnS0NYMUIsbS9EQWlFQTsyRkR0RGEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxVQUFVOytIQWFRLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtbG9ncycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvZ3MuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmlzQXV0aG9yaXNlZCh0aGlzLmRhdGFTZXJ2aWNlLmNhcExvZ3MubmFtZSk7XHJcbiAgICB0aGlzLmxvYWRMb2dzKCk7XHJcbiAgfVxyXG5cclxuICBpc1Byb2Nlc3Npbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKFwibG9nc1BhZ2luYXRvclwiKSBsb2dzUGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcblxyXG5cclxuICBsb2dzO1xyXG5cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcImRhdGVMb2dnZWRcIiwgXCJ1c2VyTmFtZVwiLCBcImZ1bGxOYW1lXCIsIFwic291cmNlXCIsIFwiZGV0YWlsc1wiXTtcclxuXHJcbiAgcHVibGljIGxvYWRMb2dzKCkge1xyXG4gICAgdGhpcy5kYXRhU2VydmljZS5HZXRMb2coXCJhbGxcIiwgXCJcIikuc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5sb2dzID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShhcGlSZXNwb25zZSk7XHJcbiAgICAgIHRoaXMubG9ncy5wYWdpbmF0b3IgPSB0aGlzLmxvZ3NQYWdpbmF0b3I7XHJcblxyXG4gICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxoND5Mb2dzPC9oND5cclxuPGhyIC8+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cInBhZGRpbmctYm90dG9tOiAxMHB4XCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0yXCI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPHNwYS1maWx0ZXIgW2RhdGFdPVwibG9nc1wiIChyZWZyZXNoQ2xpY2spPVwibG9hZExvZ3MoKVwiPjwvc3BhLWZpbHRlcj5cclxuICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgPHAgKm5nSWY9XCIhbG9nc1wiPjxlbT5Mb2FkaW5nLi4uPC9lbT48L3A+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiICpuZ0lmPVwibG9nc1wiPlxyXG5cclxuICAgIDx0YWJsZSBpZD1cInRibFRhYmxlXCIgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImxvZ3NcIj5cclxuXHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInVzZXJOYW1lXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gVXNlciA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBsb2dcIj4ge3tsb2cudXNlck5hbWV9fSA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRhdGVMb2dnZWRcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZGF0ZXRpbWVcIj4gRGF0ZSBMb2dnZWQgPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbG9nXCI+IHt7bG9nLmRhdGVMb2dnZWQgfCBkYXRlOiAnZGQgTU1NIHl5IEhIOm1tOnNzJ319IDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzb3VyY2VcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBTb3VyY2UgPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbG9nXCI+IHt7bG9nLnNvdXJjZX19IDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXRhaWxzXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRGV0YWlscyA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBsb2dcIj4ge3tsb2cuZGV0YWlsc319IDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmdWxsTmFtZVwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IE5hbWUgPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbG9nXCI+e3tsb2cudXNlcj8uZmlyc3ROYW1lfX0ge3tsb2cudXNlcj8ubGFzdE5hbWV9fTwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcblxyXG5cclxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cclxuXHJcblxyXG4gICAgPC90YWJsZT5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxtYXQtcGFnaW5hdG9yICNsb2dzUGFnaW5hdG9yIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUwLCAxMDAsIDIwMF1cIiBzaG93Rmlyc3RMYXN0QnV0dG9ucz48L21hdC1wYWdpbmF0b3I+XHJcbjwvZGl2PlxyXG5cclxuIl19
|
|
@@ -1,48 +0,0 @@
|
|
|
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/message.service";
|
|
5
|
-
import * as i3 from "../../services/auth.service";
|
|
6
|
-
import * as i4 from "../table/table.component";
|
|
7
|
-
export class MembershipComponent {
|
|
8
|
-
constructor(dataService, messageService, authService) {
|
|
9
|
-
this.dataService = dataService;
|
|
10
|
-
this.messageService = messageService;
|
|
11
|
-
this.authService = authService;
|
|
12
|
-
this.formConfig = {
|
|
13
|
-
fields: [
|
|
14
|
-
{ name: 'memberName', type: 'text', required: true, min: 2 },
|
|
15
|
-
{ name: 'tenantName', type: 'text', required: true },
|
|
16
|
-
],
|
|
17
|
-
reset: true,
|
|
18
|
-
};
|
|
19
|
-
this.config = {
|
|
20
|
-
showFilter: true,
|
|
21
|
-
minColumns: ['memberName', 'tenantName', 'roleName'],
|
|
22
|
-
flatButtons: true,
|
|
23
|
-
columns: [
|
|
24
|
-
{ name: 'tenantName', type: 'text' },
|
|
25
|
-
{ name: 'memberName', type: 'text' },
|
|
26
|
-
{ name: 'roleName', type: 'text' },
|
|
27
|
-
{ name: 'status', type: 'text' },
|
|
28
|
-
],
|
|
29
|
-
buttons: [
|
|
30
|
-
{ name: 'create', display: 'Create', dialog: true, action: { url: 'tenant/members?action=create', method: 'post' } },
|
|
31
|
-
{ name: 'view', dialog: true },
|
|
32
|
-
{ name: 'edit', dialog: true, action: { url: 'tenant/members?action=edit', method: 'post' } },
|
|
33
|
-
{ name: 'delete', dialog: true, action: { url: 'tenant/members?action=delete', method: 'post' } },
|
|
34
|
-
],
|
|
35
|
-
loadAction: { url: 'tenant/all_members/x' },
|
|
36
|
-
formConfig: this.formConfig
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
ngOnInit() {
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
MembershipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MembershipComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
MembershipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MembershipComponent, selector: "spa-membership", ngImport: i0, template: "<h4>Membership</h4>\n<hr>\n\n\n<div class=\"mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"config\"></spa-table>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i4.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }] });
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MembershipComponent, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{ selector: 'spa-membership', template: "<h4>Membership</h4>\n<hr>\n\n\n<div class=\"mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"config\"></spa-table>\n</div>\n" }]
|
|
47
|
-
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.AuthService }]; } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyc2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9tZW1iZXJzaGlwL21lbWJlcnNoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbWVtYmVyc2hpcC9tZW1iZXJzaGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVdsRCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQW9CLFdBQTJCLEVBQVUsY0FBOEIsRUFBUyxXQUF3QjtRQUFwRyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUt4SCxlQUFVLEdBQWU7WUFFdkIsTUFBTSxFQUFFO2dCQUNOLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDNUQsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTthQUN0RDtZQUVELEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQTtRQUVELFdBQU0sR0FBZ0I7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLENBQUMsWUFBWSxFQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7WUFDbkQsV0FBVyxFQUFFLElBQUk7WUFFakIsT0FBTyxFQUFFO2dCQUNQLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNwQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtnQkFDcEMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Z0JBQ2xDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2FBQ2pDO1lBRUQsT0FBTyxFQUFFO2dCQUNQLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDcEgsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzlCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQzdGLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7YUFDbEc7WUFFRCxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsc0JBQXNCLEVBQUU7WUFFM0MsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUE7SUFyQzJILENBQUM7SUFFN0gsUUFBUTtJQUNSLENBQUM7O2dIQUxVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHNEQ1hoQywwSUFPQTsyRkRJYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQ29uZmlnLCBUYWJsZUNvbmZpZyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtbWVtYmVyc2hpcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbWJlcnNoaXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbWJlcnNoaXAuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW1iZXJzaGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG5cclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7IG5hbWU6ICdtZW1iZXJOYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSwgbWluOiAyIH0sXHJcbiAgICAgIHsgbmFtZTogJ3RlbmFudE5hbWUnLCAgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICByZXNldDogdHJ1ZSxcclxuICB9XHJcblxyXG4gIGNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcbiAgICBzaG93RmlsdGVyOiB0cnVlLFxyXG4gICAgbWluQ29sdW1uczogWydtZW1iZXJOYW1lJywndGVuYW50TmFtZScsICdyb2xlTmFtZSddLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcblxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICd0ZW5hbnROYW1lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ21lbWJlck5hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncm9sZU5hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnc3RhdHVzJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICBdLFxyXG5cclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlJywgZGlzcGxheTogJ0NyZWF0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ3RlbmFudC9tZW1iZXJzP2FjdGlvbj1jcmVhdGUnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICAgIHsgbmFtZTogJ3ZpZXcnLCBkaWFsb2c6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ3RlbmFudC9tZW1iZXJzP2FjdGlvbj1lZGl0JywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvbWVtYmVycz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ3RlbmFudC9hbGxfbWVtYmVycy94JyB9LFxyXG5cclxuICAgIGZvcm1Db25maWc6IHRoaXMuZm9ybUNvbmZpZ1xyXG4gIH1cclxufVxyXG4iLCI8aDQ+TWVtYmVyc2hpcDwvaDQ+XG48aHI+XG5cblxuPGRpdiBjbGFzcz1cIm10LTNcIiBzdHlsZT1cIiBmb250LXNpemU6IDE0cHg7XCI+XG4gIDxzcGEtdGFibGUgW2NvbmZpZ109XCJjb25maWdcIj48L3NwYS10YWJsZT5cbjwvZGl2PlxuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class NotificationsComponent {
|
|
4
|
-
constructor() { }
|
|
5
|
-
ngOnInit() {
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
NotificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NotificationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
-
NotificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NotificationsComponent, selector: "spa-notifications", ngImport: i0, template: "<p>notifications works!</p>\n", styles: [""] });
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NotificationsComponent, decorators: [{
|
|
11
|
-
type: Component,
|
|
12
|
-
args: [{ selector: 'spa-notifications', template: "<p>notifications works!</p>\n" }]
|
|
13
|
-
}], ctorParameters: function () { return []; } });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7O21IQUxVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlEQ1BuQywrQkFDQTsyRkRNYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3BhLW5vdGlmaWNhdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbnMuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxufVxuIiwiPHA+bm90aWZpY2F0aW9ucyB3b3JrcyE8L3A+XG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
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/message.service";
|
|
5
|
-
import * as i3 from "../../services/auth.service";
|
|
6
|
-
import * as i4 from "../table/table.component";
|
|
7
|
-
export class PlansComponent {
|
|
8
|
-
constructor(dataService, messageService, authService) {
|
|
9
|
-
this.dataService = dataService;
|
|
10
|
-
this.messageService = messageService;
|
|
11
|
-
this.authService = authService;
|
|
12
|
-
this.formConfig = {
|
|
13
|
-
fields: [
|
|
14
|
-
{ name: 'name', type: 'text', required: true, min: 2 },
|
|
15
|
-
{ name: 'description', type: 'text', required: true, min: 2 },
|
|
16
|
-
],
|
|
17
|
-
reset: true,
|
|
18
|
-
};
|
|
19
|
-
this.config = {
|
|
20
|
-
showFilter: true,
|
|
21
|
-
minColumns: ['name'],
|
|
22
|
-
flatButtons: true,
|
|
23
|
-
columns: [
|
|
24
|
-
{ name: 'planID', type: 'text' },
|
|
25
|
-
{ name: 'name', type: 'text' },
|
|
26
|
-
{ name: 'price', type: 'money' },
|
|
27
|
-
],
|
|
28
|
-
buttons: [
|
|
29
|
-
{ name: 'create', display: 'Create', dialog: true, action: { url: 'tenant/plans?action=create', method: 'post' } },
|
|
30
|
-
{ name: 'view', dialog: true },
|
|
31
|
-
{ name: 'edit', dialog: true, action: { url: 'tenant/plans?action=edit', method: 'post' } },
|
|
32
|
-
{ name: 'delete', dialog: true, action: { url: 'tenant/plans?action=delete', method: 'post' } },
|
|
33
|
-
],
|
|
34
|
-
loadAction: { url: 'tenant/all_plans/x' },
|
|
35
|
-
formConfig: this.formConfig
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
ngOnInit() {
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
PlansComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PlansComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
-
PlansComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PlansComponent, selector: "spa-plans", ngImport: i0, template: "<h4>Plans</h4>\n<hr>\n\n\n<div class=\"mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"config\"></spa-table>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i4.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }] });
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PlansComponent, decorators: [{
|
|
44
|
-
type: Component,
|
|
45
|
-
args: [{ selector: 'spa-plans', template: "<h4>Plans</h4>\n<hr>\n\n\n<div class=\"mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"config\"></spa-table>\n</div>\n" }]
|
|
46
|
-
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.AuthService }]; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcGxhbnMvcGxhbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcGxhbnMvcGxhbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBV2xELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLFdBQTJCLEVBQVUsY0FBOEIsRUFBUyxXQUF3QjtRQUFwRyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUt4SCxlQUFVLEdBQWU7WUFFdkIsTUFBTSxFQUFFO2dCQUNOLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDdEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2FBQzlEO1lBRUQsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFBO1FBRUQsV0FBTSxHQUFnQjtZQUNwQixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDcEIsV0FBVyxFQUFFLElBQUk7WUFFakIsT0FBTyxFQUFFO2dCQUNQLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtnQkFDOUIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7YUFFakM7WUFFRCxPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNsSCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDOUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDM0YsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTthQUNoRztZQUVELFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRTtZQUV6QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FFNUIsQ0FBQTtJQXRDMkgsQ0FBQztJQUU3SCxRQUFRO0lBQ1IsQ0FBQzs7MkdBTFUsY0FBYzsrRkFBZCxjQUFjLGlEQ1gzQixxSUFPQTsyRkRJYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Db25maWcsIFRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1wbGFucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYW5zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wbGFucy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBsYW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG5cclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSwgbWluOiAyIH0sXHJcbiAgICAgIHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSwgbWluOiAyIH0sXHJcbiAgICBdLFxyXG5cclxuICAgIHJlc2V0OiB0cnVlLFxyXG4gIH1cclxuXHJcbiAgY29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuICAgIHNob3dGaWx0ZXI6IHRydWUsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ25hbWUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG5cclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAncGxhbklEJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncHJpY2UnLCB0eXBlOiAnbW9uZXknIH0sXHJcblxyXG4gICAgXSxcclxuXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdDcmVhdGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvcGxhbnM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAgeyBuYW1lOiAndmlldycsIGRpYWxvZzogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdlZGl0JywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAndGVuYW50L3BsYW5zP2FjdGlvbj1lZGl0JywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvcGxhbnM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcblxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvYWxsX3BsYW5zL3gnIH0sXHJcblxyXG4gICAgZm9ybUNvbmZpZzogdGhpcy5mb3JtQ29uZmlnXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGg0PlBsYW5zPC9oND5cbjxocj5cblxuXG48ZGl2IGNsYXNzPVwibXQtM1wiIHN0eWxlPVwiIGZvbnQtc2l6ZTogMTRweDtcIj5cbiAgPHNwYS10YWJsZSBbY29uZmlnXT1cImNvbmZpZ1wiPjwvc3BhLXRhYmxlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
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 "../table/table.component";
|
|
6
|
-
export class PositionsComponent {
|
|
7
|
-
constructor(dataService, authService) {
|
|
8
|
-
this.dataService = dataService;
|
|
9
|
-
this.authService = authService;
|
|
10
|
-
}
|
|
11
|
-
ngOnInit() {
|
|
12
|
-
this.dataService.loadPositionMeta();
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
PositionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PositionsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
-
PositionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PositionsComponent, selector: "spa-positions", ngImport: i0, template: "<h4>Positions</h4>\r\n<hr>\r\n\r\n<div class=\"mt-3\" style=\" font-size: 14px;\">\r\n <spa-table [config]=\"dataService.positionTableConfig\"></spa-table>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i3.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }] });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PositionsComponent, decorators: [{
|
|
18
|
-
type: Component,
|
|
19
|
-
args: [{ selector: 'spa-positions', template: "<h4>Positions</h4>\r\n<hr>\r\n\r\n<div class=\"mt-3\" style=\" font-size: 14px;\">\r\n <spa-table [config]=\"dataService.positionTableConfig\"></spa-table>\r\n</div>\r\n" }]
|
|
20
|
-
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.AuthService }]; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3Bvc2l0aW9ucy9wb3NpdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcG9zaXRpb25zL3Bvc2l0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQVNsRCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQW1CLFdBQTJCLEVBQVMsV0FBd0I7UUFBNUQsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBSSxDQUFDO0lBRXBGLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDdEMsQ0FBQzs7K0dBTlUsa0JBQWtCO21HQUFsQixrQkFBa0IscURDVC9CLDRLQU1BOzJGREdhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1wb3NpdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3NpdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Bvc2l0aW9ucy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UubG9hZFBvc2l0aW9uTWV0YSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGg0PlBvc2l0aW9uczwvaDQ+XHJcbjxocj5cclxuXHJcbjxkaXYgY2xhc3M9XCJtdC0zXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxNHB4O1wiPlxyXG4gIDxzcGEtdGFibGUgW2NvbmZpZ109XCJkYXRhU2VydmljZS5wb3NpdGlvblRhYmxlQ29uZmlnXCI+PC9zcGEtdGFibGU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { AppConfig, Profile } from '../../classes/Classes';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../services/datalib.service";
|
|
5
|
-
import * as i2 from "./../../services/message.service";
|
|
6
|
-
import * as i3 from "../../services/http.service";
|
|
7
|
-
import * as i4 from "@angular/router";
|
|
8
|
-
import * as i5 from "./../../services/auth.service";
|
|
9
|
-
import * as i6 from "@angular/common";
|
|
10
|
-
import * as i7 from "@angular/material/button";
|
|
11
|
-
import * as i8 from "@angular/material/form-field";
|
|
12
|
-
import * as i9 from "../text/text.component";
|
|
13
|
-
import * as i10 from "../select/select.component";
|
|
14
|
-
export class ProfileComponent {
|
|
15
|
-
constructor(dataService, messageService, httpService, router, authService) {
|
|
16
|
-
this.dataService = dataService;
|
|
17
|
-
this.messageService = messageService;
|
|
18
|
-
this.httpService = httpService;
|
|
19
|
-
this.router = router;
|
|
20
|
-
this.authService = authService;
|
|
21
|
-
this.initials = "";
|
|
22
|
-
this.appConfig = new AppConfig();
|
|
23
|
-
this.selfProfile = false;
|
|
24
|
-
this.profile = new Profile;
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
this.myRole = this.authService.currentRoleSource.value;
|
|
28
|
-
if (this.dataService.tmpProfileuserName == "") {
|
|
29
|
-
this.loadProfile(this.authService.currentUser);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
this.loadProfile(this.dataService.tmpProfileuserName);
|
|
33
|
-
this.dataService.tmpProfileuserName = "";
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
loadProfile(userName) {
|
|
37
|
-
let action = "all";
|
|
38
|
-
this.dataService.GetUserByID(userName).subscribe((apiResponse) => {
|
|
39
|
-
this.profile = apiResponse.data;
|
|
40
|
-
if (this.profile.userName.toLocaleLowerCase() == this.authService.currentUser.toLocaleLowerCase()) {
|
|
41
|
-
this.selfProfile = true;
|
|
42
|
-
}
|
|
43
|
-
this.loadRoles();
|
|
44
|
-
this.initials = `${this.profile.firstName?.toUpperCase().charAt(0)}${this.profile.lastName?.toUpperCase().charAt(0)}`;
|
|
45
|
-
}, (error) => {
|
|
46
|
-
this.isProcessing = false;
|
|
47
|
-
this.messageService.toast(this.httpService.Error(error));
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
loadRoles() {
|
|
51
|
-
this.dataService.GetRole("all", "").subscribe((apiResponse) => {
|
|
52
|
-
this.roles = apiResponse;
|
|
53
|
-
}, (error) => {
|
|
54
|
-
this.isProcessing = false;
|
|
55
|
-
this.messageService.toast(this.httpService.Error(error));
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
changePassword() {
|
|
59
|
-
this.dataService.tmpProfileuserName = this.profile.userName;
|
|
60
|
-
this.router.navigate(["home/user/change-password"]);
|
|
61
|
-
}
|
|
62
|
-
gotoUsers() {
|
|
63
|
-
this.router.navigate(["home/admin/users"]);
|
|
64
|
-
}
|
|
65
|
-
update() {
|
|
66
|
-
}
|
|
67
|
-
updateProfile() {
|
|
68
|
-
this.isProcessing = true;
|
|
69
|
-
// return
|
|
70
|
-
this.dataService.UpdateUser(this.profile).subscribe((apiResponse) => {
|
|
71
|
-
this.isProcessing = false;
|
|
72
|
-
if (apiResponse.success) {
|
|
73
|
-
this.messageService.toast("Profile Updated");
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
this.messageService.toast("Error: " + apiResponse.message);
|
|
77
|
-
}
|
|
78
|
-
}, (error) => {
|
|
79
|
-
this.messageService.toast("Connection failed ");
|
|
80
|
-
this.isProcessing = false;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
ProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProfileComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.HttpService }, { token: i4.Router }, { token: i5.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
-
ProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ProfileComponent, selector: "spa-profile", inputs: { appConfig: "appConfig" }, ngImport: i0, template: "\r\n<h4>Profile</h4>\r\n<hr>\r\n\r\n<div class=\"container tin-grid-auto\" style=\"font-size:14px;\">\r\n\r\n <div class=\"tin-center centa\">\r\n <div class=\"profileImage\">{{initials}}</div>\r\n <mat-label id=\"lbluserName\" >{{profile?.userName}}</mat-label>\r\n </div>\r\n\r\n <div>\r\n\r\n <spa-text id=\"txtFirstName\" display=\"First Name\" [(value)]=\"profile.firstName\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-text id=\"txtLastName\" display=\"Last Name\" [(value)]=\"profile.lastName\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-text id=\"txtAuth\" display=\"Authentication\" [(value)]=\"profile.authType\" [readonly]=\"true\"></spa-text>\r\n <spa-text id=\"txtEmail\" display=\"Email\" [(value)]=\"profile.email\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-select id=\"cboRole\" display=\"Role\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [(value)]=\"profile.roleID\" [readonly]=\"selfProfile\"></spa-select>\r\n\r\n <button id=\"btnUpdate\" class=\"w-100\" mat-raised-button color=\"primary\" *ngIf=\"!selfProfile\" [disabled]=\"isProcessing\" (click)=\"updateProfile()\">Update Profile</button>\r\n </div>\r\n\r\n\r\n <div class=\"tin-center centa\">\r\n <a mat-button id=\"lnkUserManager\" style=\"margin-left: 1em\" *ngIf=\"!selfProfile\" (click)=\"gotoUsers()\">User Manager</a>\r\n <a mat-button id=\"lnkChangePassword\" style=\"margin-left: 1em\" *ngIf=\"(selfProfile || myRole[dataService.capUsers.name]) && profile.authType=='local'\" (click)=\"changePassword()\">Change Password</a>\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n", styles: [".centa{display:flex;flex-direction:column}.profileImage{width:150px;height:150px;border-radius:50%;background:#512DA8;font-size:50px;color:#fff;text-align:center;line-height:150px;margin:20px 0 0}#lbluserName{font-size:20px;font-style:italic}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i10.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "peekConfig", "infoMessage"], outputs: ["valueChange", "infoClick"] }] });
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProfileComponent, decorators: [{
|
|
87
|
-
type: Component,
|
|
88
|
-
args: [{ selector: 'spa-profile', template: "\r\n<h4>Profile</h4>\r\n<hr>\r\n\r\n<div class=\"container tin-grid-auto\" style=\"font-size:14px;\">\r\n\r\n <div class=\"tin-center centa\">\r\n <div class=\"profileImage\">{{initials}}</div>\r\n <mat-label id=\"lbluserName\" >{{profile?.userName}}</mat-label>\r\n </div>\r\n\r\n <div>\r\n\r\n <spa-text id=\"txtFirstName\" display=\"First Name\" [(value)]=\"profile.firstName\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-text id=\"txtLastName\" display=\"Last Name\" [(value)]=\"profile.lastName\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-text id=\"txtAuth\" display=\"Authentication\" [(value)]=\"profile.authType\" [readonly]=\"true\"></spa-text>\r\n <spa-text id=\"txtEmail\" display=\"Email\" [(value)]=\"profile.email\" [readonly]=\"selfProfile\"></spa-text>\r\n <spa-select id=\"cboRole\" display=\"Role\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [(value)]=\"profile.roleID\" [readonly]=\"selfProfile\"></spa-select>\r\n\r\n <button id=\"btnUpdate\" class=\"w-100\" mat-raised-button color=\"primary\" *ngIf=\"!selfProfile\" [disabled]=\"isProcessing\" (click)=\"updateProfile()\">Update Profile</button>\r\n </div>\r\n\r\n\r\n <div class=\"tin-center centa\">\r\n <a mat-button id=\"lnkUserManager\" style=\"margin-left: 1em\" *ngIf=\"!selfProfile\" (click)=\"gotoUsers()\">User Manager</a>\r\n <a mat-button id=\"lnkChangePassword\" style=\"margin-left: 1em\" *ngIf=\"(selfProfile || myRole[dataService.capUsers.name]) && profile.authType=='local'\" (click)=\"changePassword()\">Change Password</a>\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n", styles: [".centa{display:flex;flex-direction:column}.profileImage{width:150px;height:150px;border-radius:50%;background:#512DA8;font-size:50px;color:#fff;text-align:center;line-height:150px;margin:20px 0 0}#lbluserName{font-size:20px;font-style:italic}\n"] }]
|
|
89
|
-
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.HttpService }, { type: i4.Router }, { type: i5.AuthService }]; }, propDecorators: { appConfig: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBZSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7OztBQVN4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW1CLFdBQTJCLEVBQVUsY0FBOEIsRUFBVSxXQUF3QixFQUFVLE1BQWMsRUFBVSxXQUF3QjtRQUEvSixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQW9CbEwsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNMLGNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBR3JDLGdCQUFXLEdBQWEsS0FBSyxDQUFDO1FBRTlCLFlBQU8sR0FBRyxJQUFJLE9BQU8sQ0FBRTtJQTFCK0osQ0FBQztJQUV2TCxRQUFRO1FBRU4sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQTtRQUV0RCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLElBQUUsRUFBRSxFQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcs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TyxDQUFDLENBQUM7YUFDNUQ7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDOzs2R0FyR1MsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsdUZDYjdCLDJtREFtQ0E7MkZEdEJhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOzJNQTJCZCxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlSZXNwb25zZSwgQXBwQ29uZmlnLCBQcm9maWxlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtcHJvZmlsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2ZpbGUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMubXlSb2xlID0gdGhpcy5hdXRoU2VydmljZS5jdXJyZW50Um9sZVNvdXJjZS52YWx1ZVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGFTZXJ2aWNlLnRtcFByb2ZpbGV1c2VyTmFtZT09XCJcIil7XHJcbiAgICAgIHRoaXMubG9hZFByb2ZpbGUodGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlcik7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMubG9hZFByb2ZpbGUodGhpcy5kYXRhU2VydmljZS50bXBQcm9maWxldXNlck5hbWUpO1xyXG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLnRtcFByb2ZpbGV1c2VyTmFtZSA9IFwiXCI7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpc1Byb2Nlc3Npbmc6IGJvb2xlYW47XHJcbiAgbXlSb2xlO1xyXG4gIGluaXRpYWxzID0gXCJcIjtcclxuICBASW5wdXQoKSBhcHBDb25maWcgPSBuZXcgQXBwQ29uZmlnKCk7XHJcblxyXG5cclxuICBzZWxmUHJvZmlsZSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJvZmlsZSA9IG5ldyBQcm9maWxlIDtcclxuICByb2xlcztcclxuICBhcHByb3ZhbFJvbGVzO1xyXG4gIGVtcGxveWVlcztcclxuXHJcblxyXG4gIGxvYWRQcm9maWxlKHVzZXJOYW1lOiBzdHJpbmcpe1xyXG5cclxuICAgIGxldCBhY3Rpb24gPSBcImFsbFwiO1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuR2V0VXNlckJ5SUQodXNlck5hbWUpLnN1YnNjcmliZSggKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgICB0aGlzLnByb2ZpbGUgPSBhcGlSZXNwb25zZS5kYXRhO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wcm9maWxlLnVzZXJOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlci50b0xvY2FsZUxvd2VyQ2FzZSgpKXtcclxuICAgICAgICAgIHRoaXMuc2VsZlByb2ZpbGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubG9hZFJvbGVzKClcclxuICAgICAgICB0aGlzLmluaXRpYWxzID0gYCR7dGhpcy5wcm9maWxlLmZpcnN0TmFtZT8udG9VcHBlckNhc2UoKS5jaGFyQXQoMCl9JHt0aGlzLnByb2ZpbGUubGFzdE5hbWU/LnRvVXBwZXJDYXNlKCkuY2hhckF0KDApfWBcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHRoaXMuaHR0cFNlcnZpY2UuRXJyb3IoZXJyb3IpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvYWRSb2xlcygpe1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuR2V0Um9sZShcImFsbFwiLCBcIlwiKS5zdWJzY3JpYmUoXHJcbiAgICAgIChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLnJvbGVzID0gYXBpUmVzcG9uc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdCh0aGlzLmh0dHBTZXJ2aWNlLkVycm9yKGVycm9yKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlUGFzc3dvcmQoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UudG1wUHJvZmlsZXVzZXJOYW1lID0gdGhpcy5wcm9maWxlLnVzZXJOYW1lO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiaG9tZS91c2VyL2NoYW5nZS1wYXNzd29yZFwiXSk7XHJcbiAgfVxyXG5cclxuICBnb3RvVXNlcnMoKXtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImhvbWUvYWRtaW4vdXNlcnNcIl0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCl7XHJcblxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZmlsZSgpe1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8vIHJldHVyblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5VcGRhdGVVc2VyKHRoaXMucHJvZmlsZSkuc3Vic2NyaWJlKFxyXG4gICAgICAoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQcm9maWxlIFVwZGF0ZWRcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJDb25uZWN0aW9uIGZhaWxlZCBcIik7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgfVxyXG5cclxufVxyXG4iLCJcclxuPGg0PlByb2ZpbGU8L2g0PlxyXG48aHI+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyIHRpbi1ncmlkLWF1dG9cIiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4O1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGluLWNlbnRlciBjZW50YVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2ZpbGVJbWFnZVwiPnt7aW5pdGlhbHN9fTwvZGl2PlxyXG4gICAgPG1hdC1sYWJlbCBpZD1cImxibHVzZXJOYW1lXCIgPnt7cHJvZmlsZT8udXNlck5hbWV9fTwvbWF0LWxhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2PlxyXG5cclxuICAgIDxzcGEtdGV4dCBpZD1cInR4dEZpcnN0TmFtZVwiIGRpc3BsYXk9XCJGaXJzdCBOYW1lXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5maXJzdE5hbWVcIiBbcmVhZG9ubHldPVwic2VsZlByb2ZpbGVcIj48L3NwYS10ZXh0PlxyXG4gICAgPHNwYS10ZXh0IGlkPVwidHh0TGFzdE5hbWVcIiBkaXNwbGF5PVwiTGFzdCBOYW1lXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5sYXN0TmFtZVwiIFtyZWFkb25seV09XCJzZWxmUHJvZmlsZVwiPjwvc3BhLXRleHQ+XHJcbiAgICA8c3BhLXRleHQgaWQ9XCJ0eHRBdXRoXCIgZGlzcGxheT1cIkF1dGhlbnRpY2F0aW9uXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5hdXRoVHlwZVwiIFtyZWFkb25seV09XCJ0cnVlXCI+PC9zcGEtdGV4dD5cclxuICAgIDxzcGEtdGV4dCBpZD1cInR4dEVtYWlsXCIgZGlzcGxheT1cIkVtYWlsXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5lbWFpbFwiIFtyZWFkb25seV09XCJzZWxmUHJvZmlsZVwiPjwvc3BhLXRleHQ+XHJcbiAgICA8c3BhLXNlbGVjdCBpZD1cImNib1JvbGVcIiBkaXNwbGF5PVwiUm9sZVwiIFtvcHRpb25zXT1cInJvbGVzXCIgb3B0aW9uRGlzcGxheT1cInJvbGVOYW1lXCIgb3B0aW9uVmFsdWU9XCJyb2xlSURcIiBbKHZhbHVlKV09XCJwcm9maWxlLnJvbGVJRFwiIFtyZWFkb25seV09XCJzZWxmUHJvZmlsZVwiPjwvc3BhLXNlbGVjdD5cclxuXHJcbiAgICA8YnV0dG9uIGlkPVwiYnRuVXBkYXRlXCIgY2xhc3M9XCJ3LTEwMFwiICAgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCIhc2VsZlByb2ZpbGVcIiBbZGlzYWJsZWRdPVwiaXNQcm9jZXNzaW5nXCIgKGNsaWNrKT1cInVwZGF0ZVByb2ZpbGUoKVwiPlVwZGF0ZSBQcm9maWxlPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGluLWNlbnRlciBjZW50YVwiPlxyXG4gICAgPGEgbWF0LWJ1dHRvbiBpZD1cImxua1VzZXJNYW5hZ2VyXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMWVtXCIgKm5nSWY9XCIhc2VsZlByb2ZpbGVcIiAoY2xpY2spPVwiZ290b1VzZXJzKClcIj5Vc2VyIE1hbmFnZXI8L2E+XHJcbiAgICA8YSBtYXQtYnV0dG9uIGlkPVwibG5rQ2hhbmdlUGFzc3dvcmRcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxZW1cIiAqbmdJZj1cIihzZWxmUHJvZmlsZSB8fCBteVJvbGVbZGF0YVNlcnZpY2UuY2FwVXNlcnMubmFtZV0pICYmIHByb2ZpbGUuYXV0aFR5cGU9PSdsb2NhbCdcIiAoY2xpY2spPVwiY2hhbmdlUGFzc3dvcmQoKVwiPkNoYW5nZSBQYXNzd29yZDwvYT5cclxuICA8L2Rpdj5cclxuXHJcblxyXG48L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=
|