tin-spa 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/{esm2015/lib/classes/Classes.js → esm2020/lib/classes/Classes.mjs} +15 -55
- package/esm2020/lib/classes/TinCore.mjs +148 -0
- package/esm2020/lib/components/activity/activity.component.mjs +24 -0
- package/esm2020/lib/components/attach/attach.component.mjs +105 -0
- package/esm2020/lib/components/change-password/change-password.component.mjs +92 -0
- package/esm2020/lib/components/check/check.component.mjs +56 -0
- package/esm2020/lib/components/chips/chips.component.mjs +58 -0
- package/esm2020/lib/components/create-account/create-account.component.mjs +72 -0
- package/esm2020/lib/components/date/date.component.mjs +64 -0
- package/esm2020/lib/components/datetime/datetime.component.mjs +39 -0
- package/esm2020/lib/components/filter/filter.component.mjs +46 -0
- package/esm2020/lib/components/form/form.component.mjs +63 -0
- package/esm2020/lib/components/label/label.component.mjs +25 -0
- package/esm2020/lib/components/loader/loader.component.mjs +24 -0
- package/esm2020/lib/components/login/login.component.mjs +113 -0
- package/esm2020/lib/components/logs/logs.component.mjs +37 -0
- package/esm2020/lib/components/message/messageDialog.component.mjs +32 -0
- package/esm2020/lib/components/money/currency-input-mask.directive.mjs +185 -0
- package/esm2020/lib/components/money/currency-input-mask.module.mjs +28 -0
- package/esm2020/lib/components/money/money.component.mjs +64 -0
- package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +49 -0
- package/esm2020/lib/components/number/number.component.mjs +86 -0
- package/esm2020/lib/components/option/option.component.mjs +59 -0
- package/esm2020/lib/components/profile/profile.component.mjs +93 -0
- package/esm2020/lib/components/recover-account/recover-account.component.mjs +46 -0
- package/esm2020/lib/components/roles/addRoleDialog.component.mjs +61 -0
- package/esm2020/lib/components/roles/roles.component.mjs +91 -0
- package/esm2020/lib/components/select/select.component.mjs +71 -0
- package/esm2020/lib/components/settings/settings.component.mjs +63 -0
- package/esm2020/lib/components/signup/signup.component.mjs +50 -0
- package/esm2020/lib/components/steps/steps.component.mjs +90 -0
- package/esm2020/lib/components/table/detailsDialog.component.mjs +149 -0
- package/esm2020/lib/components/table/table.component.mjs +341 -0
- package/esm2020/lib/components/text/text.component.mjs +166 -0
- package/esm2020/lib/components/tiles/tiles.component.mjs +41 -0
- package/esm2020/lib/components/tin-spa.component.mjs +19 -0
- package/esm2020/lib/components/users/users.component.mjs +119 -0
- package/esm2020/lib/modules/admin/admin-routing.module.mjs +29 -0
- package/esm2020/lib/modules/admin/admin.module.mjs +26 -0
- package/esm2020/lib/modules/index/index-routing.module.mjs +27 -0
- package/esm2020/lib/modules/index/index.module.mjs +26 -0
- package/esm2020/lib/modules/spa-admin.module.mjs +73 -0
- package/esm2020/lib/modules/spa-index.module.mjs +52 -0
- package/esm2020/lib/modules/spa-mat.module.mjs +67 -0
- package/esm2020/lib/modules/spa-user.module.mjs +49 -0
- package/esm2020/lib/modules/user/user-routing.module.mjs +23 -0
- package/esm2020/lib/modules/user/user.module.mjs +26 -0
- package/esm2020/lib/pipes/camelToWords.pipe.mjs +23 -0
- package/esm2020/lib/services/auth.service.mjs +142 -0
- package/esm2020/lib/services/data.service.mjs +125 -0
- package/esm2020/lib/services/export.service.mjs +16 -0
- package/esm2020/lib/services/http.service.mjs +79 -0
- package/esm2020/lib/services/loader-interceptor.service.mjs +77 -0
- package/esm2020/lib/services/loader.service.mjs +17 -0
- package/esm2020/lib/services/log.service.mjs +77 -0
- package/esm2020/lib/services/message.service.mjs +52 -0
- package/esm2020/lib/services/storage.service.mjs +34 -0
- package/esm2020/lib/services/tin-spa.service.mjs +14 -0
- package/esm2020/lib/tin-spa.module.mjs +114 -0
- package/esm2020/public-api.mjs +62 -0
- package/esm2020/tin-spa.mjs +5 -0
- package/fesm2015/tin-spa.mjs +3846 -0
- package/fesm2015/tin-spa.mjs.map +1 -0
- package/fesm2020/tin-spa.mjs +3829 -0
- package/fesm2020/tin-spa.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/classes/Classes.d.ts +58 -63
- package/lib/classes/TinCore.d.ts +1 -0
- package/lib/components/activity/activity.component.d.ts +3 -0
- package/lib/components/attach/attach.component.d.ts +4 -1
- package/lib/components/change-password/change-password.component.d.ts +3 -0
- package/lib/components/check/check.component.d.ts +3 -0
- package/lib/components/chips/chips.component.d.ts +3 -0
- package/lib/components/create-account/create-account.component.d.ts +3 -0
- package/lib/components/date/date.component.d.ts +14 -6
- package/lib/components/datetime/datetime.component.d.ts +3 -0
- package/lib/components/filter/filter.component.d.ts +4 -0
- package/lib/components/form/form.component.d.ts +16 -0
- package/lib/components/label/label.component.d.ts +3 -0
- package/lib/components/loader/loader.component.d.ts +3 -0
- package/lib/components/login/login.component.d.ts +6 -0
- package/lib/components/logs/logs.component.d.ts +3 -0
- package/lib/components/message/messageDialog.component.d.ts +3 -0
- package/lib/components/money/currency-input-mask.directive.d.ts +41 -0
- package/lib/components/money/currency-input-mask.module.d.ts +9 -0
- package/lib/components/money/money.component.d.ts +9 -1
- package/lib/components/nav-menu/nav-menu.component.d.ts +3 -0
- package/lib/components/number/number.component.d.ts +29 -0
- package/lib/components/option/option.component.d.ts +3 -0
- package/lib/components/profile/profile.component.d.ts +6 -2
- package/lib/components/recover-account/recover-account.component.d.ts +3 -0
- package/lib/components/roles/addRoleDialog.component.d.ts +3 -0
- package/lib/components/roles/roles.component.d.ts +3 -0
- package/lib/components/select/select.component.d.ts +5 -1
- package/lib/components/settings/settings.component.d.ts +3 -0
- package/lib/components/signup/signup.component.d.ts +3 -0
- package/lib/components/steps/steps.component.d.ts +3 -0
- package/lib/components/table/detailsDialog.component.d.ts +28 -0
- package/lib/components/table/table.component.d.ts +57 -17
- package/lib/components/text/text.component.d.ts +13 -9
- package/lib/components/tiles/tiles.component.d.ts +3 -0
- package/lib/components/tin-spa.component.d.ts +4 -4
- package/lib/components/users/users.component.d.ts +4 -0
- package/lib/modules/admin/admin-routing.module.d.ts +7 -0
- package/lib/modules/admin/admin.module.d.ts +9 -0
- package/lib/modules/index/index-routing.module.d.ts +7 -0
- package/lib/modules/index/index.module.d.ts +9 -0
- package/lib/modules/spa-admin.module.d.ts +13 -0
- package/lib/modules/spa-index.module.d.ts +10 -0
- package/lib/modules/spa-mat.module.d.ts +31 -0
- package/lib/modules/spa-user.module.d.ts +9 -0
- package/lib/modules/user/user-routing.module.d.ts +7 -0
- package/lib/modules/user/user.module.d.ts +9 -0
- package/lib/pipes/camelToWords.pipe.d.ts +7 -0
- package/lib/services/auth.service.d.ts +3 -0
- package/lib/services/data.service.d.ts +5 -1
- package/lib/services/export.service.d.ts +3 -4
- package/lib/services/http.service.d.ts +3 -0
- package/lib/services/loader-interceptor.service.d.ts +3 -0
- package/lib/services/loader.service.d.ts +3 -0
- package/lib/services/log.service.d.ts +3 -0
- package/lib/services/message.service.d.ts +3 -0
- package/lib/services/storage.service.d.ts +3 -0
- package/lib/services/tin-spa.service.d.ts +3 -0
- package/lib/tin-spa.module.d.ts +30 -0
- package/package.json +24 -23
- package/public-api.d.ts +7 -2
- package/bundles/tin-spa.umd.js +0 -3672
- package/bundles/tin-spa.umd.js.map +0 -1
- package/bundles/tin-spa.umd.min.js +0 -16
- package/bundles/tin-spa.umd.min.js.map +0 -1
- package/esm2015/lib/classes/TinCore.js +0 -139
- package/esm2015/lib/components/activity/activity.component.js +0 -26
- package/esm2015/lib/components/attach/attach.component.js +0 -107
- package/esm2015/lib/components/change-password/change-password.component.js +0 -102
- package/esm2015/lib/components/check/check.component.js +0 -63
- package/esm2015/lib/components/chips/chips.component.js +0 -66
- package/esm2015/lib/components/create-account/create-account.component.js +0 -78
- package/esm2015/lib/components/date/date.component.js +0 -45
- package/esm2015/lib/components/datetime/datetime.component.js +0 -44
- package/esm2015/lib/components/filter/filter.component.js +0 -40
- package/esm2015/lib/components/label/label.component.js +0 -29
- package/esm2015/lib/components/loader/loader.component.js +0 -29
- package/esm2015/lib/components/login/login.component.js +0 -114
- package/esm2015/lib/components/logs/logs.component.js +0 -39
- package/esm2015/lib/components/message/messageDialog.component.js +0 -31
- package/esm2015/lib/components/money/money.component.js +0 -52
- package/esm2015/lib/components/nav-menu/nav-menu.component.js +0 -51
- package/esm2015/lib/components/option/option.component.js +0 -63
- package/esm2015/lib/components/profile/profile.component.js +0 -98
- package/esm2015/lib/components/recover-account/recover-account.component.js +0 -53
- package/esm2015/lib/components/roles/addRoleDialog.component.js +0 -61
- package/esm2015/lib/components/roles/roles.component.js +0 -94
- package/esm2015/lib/components/select/select.component.js +0 -77
- package/esm2015/lib/components/settings/settings.component.js +0 -63
- package/esm2015/lib/components/signup/signup.component.js +0 -57
- package/esm2015/lib/components/steps/steps.component.js +0 -93
- package/esm2015/lib/components/table/table.component.js +0 -107
- package/esm2015/lib/components/text/text.component.js +0 -165
- package/esm2015/lib/components/tiles/tiles.component.js +0 -41
- package/esm2015/lib/components/timeout/timeout.component.js +0 -90
- package/esm2015/lib/components/tin-spa.component.js +0 -19
- package/esm2015/lib/components/users/users.component.js +0 -120
- package/esm2015/lib/dnd.directive.js +0 -51
- package/esm2015/lib/modules/spa-admin.module.js +0 -50
- package/esm2015/lib/modules/spa-index.module.js +0 -35
- package/esm2015/lib/modules/spa-mat.module.js +0 -53
- package/esm2015/lib/modules/spa-user.module.js +0 -33
- package/esm2015/lib/services/auth.service.js +0 -155
- package/esm2015/lib/services/data.service.js +0 -115
- package/esm2015/lib/services/export.service.js +0 -29
- package/esm2015/lib/services/http.service.js +0 -84
- package/esm2015/lib/services/loader-interceptor.service.js +0 -83
- package/esm2015/lib/services/loader.service.js +0 -17
- package/esm2015/lib/services/log.service.js +0 -76
- package/esm2015/lib/services/message.service.js +0 -58
- package/esm2015/lib/services/storage.service.js +0 -42
- package/esm2015/lib/services/tin-spa.service.js +0 -14
- package/esm2015/lib/tin-spa.module.js +0 -91
- package/esm2015/public-api.js +0 -56
- package/esm2015/tin-spa.js +0 -8
- package/esm5/lib/classes/Classes.js +0 -313
- package/esm5/lib/classes/TinCore.js +0 -166
- package/esm5/lib/components/activity/activity.component.js +0 -27
- package/esm5/lib/components/attach/attach.component.js +0 -119
- package/esm5/lib/components/change-password/change-password.component.js +0 -104
- package/esm5/lib/components/check/check.component.js +0 -64
- package/esm5/lib/components/chips/chips.component.js +0 -68
- package/esm5/lib/components/create-account/create-account.component.js +0 -80
- package/esm5/lib/components/date/date.component.js +0 -46
- package/esm5/lib/components/datetime/datetime.component.js +0 -45
- package/esm5/lib/components/filter/filter.component.js +0 -41
- package/esm5/lib/components/label/label.component.js +0 -30
- package/esm5/lib/components/loader/loader.component.js +0 -31
- package/esm5/lib/components/login/login.component.js +0 -117
- package/esm5/lib/components/logs/logs.component.js +0 -41
- package/esm5/lib/components/message/messageDialog.component.js +0 -32
- package/esm5/lib/components/money/money.component.js +0 -53
- package/esm5/lib/components/nav-menu/nav-menu.component.js +0 -53
- package/esm5/lib/components/option/option.component.js +0 -64
- package/esm5/lib/components/profile/profile.component.js +0 -102
- package/esm5/lib/components/recover-account/recover-account.component.js +0 -55
- package/esm5/lib/components/roles/addRoleDialog.component.js +0 -63
- package/esm5/lib/components/roles/roles.component.js +0 -100
- package/esm5/lib/components/select/select.component.js +0 -79
- package/esm5/lib/components/settings/settings.component.js +0 -66
- package/esm5/lib/components/signup/signup.component.js +0 -59
- package/esm5/lib/components/steps/steps.component.js +0 -105
- package/esm5/lib/components/table/table.component.js +0 -109
- package/esm5/lib/components/text/text.component.js +0 -168
- package/esm5/lib/components/tiles/tiles.component.js +0 -42
- package/esm5/lib/components/timeout/timeout.component.js +0 -92
- package/esm5/lib/components/tin-spa.component.js +0 -17
- package/esm5/lib/components/users/users.component.js +0 -126
- package/esm5/lib/dnd.directive.js +0 -52
- package/esm5/lib/modules/spa-admin.module.js +0 -53
- package/esm5/lib/modules/spa-index.module.js +0 -38
- package/esm5/lib/modules/spa-mat.module.js +0 -56
- package/esm5/lib/modules/spa-user.module.js +0 -36
- package/esm5/lib/services/auth.service.js +0 -157
- package/esm5/lib/services/data.service.js +0 -116
- package/esm5/lib/services/export.service.js +0 -30
- package/esm5/lib/services/http.service.js +0 -85
- package/esm5/lib/services/loader-interceptor.service.js +0 -85
- package/esm5/lib/services/loader.service.js +0 -18
- package/esm5/lib/services/log.service.js +0 -112
- package/esm5/lib/services/message.service.js +0 -59
- package/esm5/lib/services/storage.service.js +0 -74
- package/esm5/lib/services/tin-spa.service.js +0 -16
- package/esm5/lib/tin-spa.module.js +0 -94
- package/esm5/public-api.js +0 -56
- package/esm5/tin-spa.js +0 -8
- package/fesm2015/tin-spa.js +0 -3184
- package/fesm2015/tin-spa.js.map +0 -1
- package/fesm5/tin-spa.js +0 -3422
- package/fesm5/tin-spa.js.map +0 -1
- package/lib/components/timeout/timeout.component.d.ts +0 -21
- package/lib/dnd.directive.d.ts +0 -8
- package/tin-spa.d.ts +0 -7
- package/tin-spa.metadata.json +0 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { AppConfig } from '../../classes/Classes';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./../../services/data.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
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
this.myRole = this.authService.currentRoleSource.value;
|
|
27
|
+
if (this.dataService.tmpProfileuserName == "") {
|
|
28
|
+
this.loadProfile(this.authService.currentUser);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.loadProfile(this.dataService.tmpProfileuserName);
|
|
32
|
+
this.dataService.tmpProfileuserName = "";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
loadProfile(userName) {
|
|
36
|
+
let action = "all";
|
|
37
|
+
this.dataService.GetUserByID(userName).subscribe((apiResponse) => {
|
|
38
|
+
this.profile = apiResponse[0];
|
|
39
|
+
if (this.profile.userName.toLocaleLowerCase() == this.authService.currentUser.toLocaleLowerCase()) {
|
|
40
|
+
this.selfProfile = true;
|
|
41
|
+
}
|
|
42
|
+
this.loadRoles();
|
|
43
|
+
this.initials = `${this.profile.firstName?.toUpperCase().charAt(0)}${this.profile.lastName?.toUpperCase().charAt(0)}`;
|
|
44
|
+
}, (error) => {
|
|
45
|
+
this.isProcessing = false;
|
|
46
|
+
this.messageService.toast(this.httpService.Error(error));
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
loadRoles() {
|
|
50
|
+
this.dataService.GetRole("all", "").subscribe((apiResponse) => {
|
|
51
|
+
this.roles = apiResponse;
|
|
52
|
+
console.log(this.roles);
|
|
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
|
+
// console.log(this.profile)
|
|
70
|
+
// return
|
|
71
|
+
this.dataService.UpdateUser(this.profile).subscribe((apiResponse) => {
|
|
72
|
+
this.isProcessing = false;
|
|
73
|
+
if (apiResponse.success) {
|
|
74
|
+
this.messageService.toast("Profile Updated");
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.messageService.toast("Error: " + apiResponse.message);
|
|
78
|
+
}
|
|
79
|
+
}, (error) => {
|
|
80
|
+
this.messageService.toast("Connection failed ");
|
|
81
|
+
this.isProcessing = false;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
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 });
|
|
86
|
+
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"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i10.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "optionValue", "optionDisplay", "optionDisplayExtra"], outputs: ["valueChange"] }] });
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProfileComponent, decorators: [{
|
|
88
|
+
type: Component,
|
|
89
|
+
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"] }]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.HttpService }, { type: i4.Router }, { type: i5.AuthService }]; }, propDecorators: { appConfig: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQVcsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBVTNELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBbUIsV0FBMkIsRUFBVSxjQUE4QixFQUFVLFdBQXdCLEVBQVUsTUFBYyxFQUFVLFdBQXdCO1FBQS9KLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBb0JsTCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ0wsY0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFHckMsZ0JBQVcsR0FBYSxLQUFLLENBQUM7SUF4QndKLENBQUM7SUFFdkwsUUFBUTtRQUVOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUE7UUFFdEQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFFLEVBQUUsRUFBQztZQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7U0FFaEQ7YUFBSTtZQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1NBQzFDO0lBSUgsQ0FBQztJQWdCRCxXQUFXLENBQUMsUUFBZ0I7UUFFMUIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FDOUMsQ0FBQyxXQUF3QixFQUFFLEVBQUU7WUFFM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFOUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLEVBQUM7Z0JBQ2hHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO2FBQ3hCO1lBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO1lBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDdkgsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVM7UUFFUCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUMzQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztZQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUNGLENBQUM7SUFFSixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTTtJQUVOLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsNEJBQTRCO1FBQzVCLFNBQVM7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUNqRCxDQUFDLFdBQXdCLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUUxQixJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDOUM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1RDtRQUNILENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7OzZHQXhHUyxnQkFBZ0I7aUdBQWhCLGdCQUFnQix1RkNkN0IsMm1EQW1DQTsyRkRyQmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7Mk1BMkJkLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnLCBQcm9maWxlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvVGluQ29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1wcm9maWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZmlsZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgdGhpcy5teVJvbGUgPSB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlXHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVNlcnZpY2UudG1wUHJvZmlsZXVzZXJOYW1lPT1cIlwiKXtcclxuICAgICAgdGhpcy5sb2FkUHJvZmlsZSh0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyKTtcclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5sb2FkUHJvZmlsZSh0aGlzLmRhdGFTZXJ2aWNlLnRtcFByb2ZpbGV1c2VyTmFtZSk7XHJcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UudG1wUHJvZmlsZXVzZXJOYW1lID0gXCJcIjtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGlzUHJvY2Vzc2luZzogYm9vbGVhbjtcclxuICBteVJvbGU7XHJcbiAgaW5pdGlhbHMgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGFwcENvbmZpZyA9IG5ldyBBcHBDb25maWcoKTtcclxuXHJcblxyXG4gIHNlbGZQcm9maWxlIDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcm9maWxlIDtcclxuICByb2xlcztcclxuICBhcHByb3ZhbFJvbGVzO1xyXG4gIGVtcGxveWVlcztcclxuXHJcblxyXG4gIGxvYWRQcm9maWxlKHVzZXJOYW1lOiBzdHJpbmcpe1xyXG5cclxuICAgIGxldCBhY3Rpb24gPSBcImFsbFwiO1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuR2V0VXNlckJ5SUQodXNlck5hbWUpLnN1YnNjcmliZShcclxuICAgICAgKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgICB0aGlzLnByb2ZpbGUgPSBhcGlSZXNwb25zZVswXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucHJvZmlsZS51c2VyTmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09IHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIudG9Mb2NhbGVMb3dlckNhc2UoKSl7XHJcbiAgICAgICAgICB0aGlzLnNlbGZQcm9maWxlID0gdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvYWRSb2xlcygpXHJcbiAgICAgICAgdGhpcy5pbml0aWFscyA9IGAke3RoaXMucHJvZmlsZS5maXJzdE5hbWU/LnRvVXBwZXJDYXNlKCkuY2hhckF0KDApfSR7dGhpcy5wcm9maWxlLmxhc3ROYW1lPy50b1VwcGVyQ2FzZSgpLmNoYXJBdCgwKX1gXHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdCh0aGlzLmh0dHBTZXJ2aWNlLkVycm9yKGVycm9yKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2FkUm9sZXMoKXtcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkdldFJvbGUoXCJhbGxcIiwgXCJcIikuc3Vic2NyaWJlKFxyXG4gICAgICAoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb2xlcyA9IGFwaVJlc3BvbnNlO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMucm9sZXMpXHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdCh0aGlzLmh0dHBTZXJ2aWNlLkVycm9yKGVycm9yKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlUGFzc3dvcmQoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UudG1wUHJvZmlsZXVzZXJOYW1lID0gdGhpcy5wcm9maWxlLnVzZXJOYW1lO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiaG9tZS91c2VyL2NoYW5nZS1wYXNzd29yZFwiXSk7XHJcbiAgfVxyXG5cclxuICBnb3RvVXNlcnMoKXtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImhvbWUvYWRtaW4vdXNlcnNcIl0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCl7XHJcblxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZmlsZSgpe1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucHJvZmlsZSlcclxuICAgIC8vIHJldHVyblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5VcGRhdGVVc2VyKHRoaXMucHJvZmlsZSkuc3Vic2NyaWJlKFxyXG4gICAgICAoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQcm9maWxlIFVwZGF0ZWRcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJDb25uZWN0aW9uIGZhaWxlZCBcIik7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgfVxyXG5cclxufVxyXG4iLCJcclxuPGg0PlByb2ZpbGU8L2g0PlxyXG48aHI+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyIHRpbi1ncmlkLWF1dG9cIiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4O1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGluLWNlbnRlciBjZW50YVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2ZpbGVJbWFnZVwiPnt7aW5pdGlhbHN9fTwvZGl2PlxyXG4gICAgPG1hdC1sYWJlbCBpZD1cImxibHVzZXJOYW1lXCIgPnt7cHJvZmlsZT8udXNlck5hbWV9fTwvbWF0LWxhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2PlxyXG5cclxuICAgIDxzcGEtdGV4dCBpZD1cInR4dEZpcnN0TmFtZVwiIGRpc3BsYXk9XCJGaXJzdCBOYW1lXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5maXJzdE5hbWVcIiBbcmVhZG9ubHldPVwic2VsZlByb2ZpbGVcIj48L3NwYS10ZXh0PlxyXG4gICAgPHNwYS10ZXh0IGlkPVwidHh0TGFzdE5hbWVcIiBkaXNwbGF5PVwiTGFzdCBOYW1lXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5sYXN0TmFtZVwiIFtyZWFkb25seV09XCJzZWxmUHJvZmlsZVwiPjwvc3BhLXRleHQ+XHJcbiAgICA8c3BhLXRleHQgaWQ9XCJ0eHRBdXRoXCIgZGlzcGxheT1cIkF1dGhlbnRpY2F0aW9uXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5hdXRoVHlwZVwiIFtyZWFkb25seV09XCJ0cnVlXCI+PC9zcGEtdGV4dD5cclxuICAgIDxzcGEtdGV4dCBpZD1cInR4dEVtYWlsXCIgZGlzcGxheT1cIkVtYWlsXCIgWyh2YWx1ZSldPVwicHJvZmlsZS5lbWFpbFwiIFtyZWFkb25seV09XCJzZWxmUHJvZmlsZVwiPjwvc3BhLXRleHQ+XHJcbiAgICA8c3BhLXNlbGVjdCBpZD1cImNib1JvbGVcIiBkaXNwbGF5PVwiUm9sZVwiIFtvcHRpb25zXT1cInJvbGVzXCIgb3B0aW9uRGlzcGxheT1cInJvbGVOYW1lXCIgb3B0aW9uVmFsdWU9XCJyb2xlSURcIiBbKHZhbHVlKV09XCJwcm9maWxlLnJvbGVJRFwiIFtyZWFkb25seV09XCJzZWxmUHJvZmlsZVwiPjwvc3BhLXNlbGVjdD5cclxuXHJcbiAgICA8YnV0dG9uIGlkPVwiYnRuVXBkYXRlXCIgY2xhc3M9XCJ3LTEwMFwiICAgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCIhc2VsZlByb2ZpbGVcIiBbZGlzYWJsZWRdPVwiaXNQcm9jZXNzaW5nXCIgKGNsaWNrKT1cInVwZGF0ZVByb2ZpbGUoKVwiPlVwZGF0ZSBQcm9maWxlPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGluLWNlbnRlciBjZW50YVwiPlxyXG4gICAgPGEgbWF0LWJ1dHRvbiBpZD1cImxua1VzZXJNYW5hZ2VyXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMWVtXCIgKm5nSWY9XCIhc2VsZlByb2ZpbGVcIiAoY2xpY2spPVwiZ290b1VzZXJzKClcIj5Vc2VyIE1hbmFnZXI8L2E+XHJcbiAgICA8YSBtYXQtYnV0dG9uIGlkPVwibG5rQ2hhbmdlUGFzc3dvcmRcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxZW1cIiAqbmdJZj1cIihzZWxmUHJvZmlsZSB8fCBteVJvbGVbZGF0YVNlcnZpY2UuY2FwVXNlcnMubmFtZV0pICYmIHByb2ZpbGUuYXV0aFR5cGU9PSdsb2NhbCdcIiAoY2xpY2spPVwiY2hhbmdlUGFzc3dvcmQoKVwiPkNoYW5nZSBQYXNzd29yZDwvYT5cclxuICA8L2Rpdj5cclxuXHJcblxyXG48L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { User } from '../../classes/Classes';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../../services/data.service";
|
|
6
|
+
import * as i3 from "../../services/auth.service";
|
|
7
|
+
import * as i4 from "../../services/message.service";
|
|
8
|
+
import * as i5 from "@angular/material/button";
|
|
9
|
+
import * as i6 from "../text/text.component";
|
|
10
|
+
export class RecoverAccountComponent {
|
|
11
|
+
constructor(location, dataService, authService, messageService) {
|
|
12
|
+
this.location = location;
|
|
13
|
+
this.dataService = dataService;
|
|
14
|
+
this.authService = authService;
|
|
15
|
+
this.messageService = messageService;
|
|
16
|
+
this.userName = "";
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
}
|
|
20
|
+
recover() {
|
|
21
|
+
if (this.userName == "") {
|
|
22
|
+
this.messageService.toast("Please enter your userName");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
let u = new User();
|
|
27
|
+
u.userName = this.userName;
|
|
28
|
+
this.dataService.SelfReset(u).subscribe((apiResponse) => {
|
|
29
|
+
if (apiResponse.message == "success") {
|
|
30
|
+
this.messageService.toast("The password has been sent to your email");
|
|
31
|
+
this.location.back();
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.messageService.toast("Error: " + apiResponse.message);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
RecoverAccountComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RecoverAccountComponent, deps: [{ token: i1.Location }, { token: i2.DataServiceLib }, { token: i3.AuthService }, { token: i4.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
+
RecoverAccountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: RecoverAccountComponent, selector: "spa-recover-account", ngImport: i0, template: "\r\n<div class=\"container\" style=\"padding-top: 30px;\">\r\n<h4>Recover Account</h4>\r\n\r\n<hr />\r\n\r\nSubmit your Username and we will send you details to your registered email address.\r\n\r\n<div style=\"font-size: 14px;\">\r\n <spa-text class=\"mt-3\" display=\"Username\" [(value)]=\"userName\"></spa-text>\r\n\r\n <div class=\"tin-center\">\r\n <button class=\"mt-3 w-50\" mat-raised-button color=\"primary\" (click)=\"recover()\" cdkFocusInitial>Submit</button>\r\n </div>\r\n\r\n</div>\r\n\r\n</div>\r\n\r\n", styles: [""], dependencies: [{ kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex"], outputs: ["valueChange", "leave", "enterPress"] }] });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RecoverAccountComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'spa-recover-account', template: "\r\n<div class=\"container\" style=\"padding-top: 30px;\">\r\n<h4>Recover Account</h4>\r\n\r\n<hr />\r\n\r\nSubmit your Username and we will send you details to your registered email address.\r\n\r\n<div style=\"font-size: 14px;\">\r\n <spa-text class=\"mt-3\" display=\"Username\" [(value)]=\"userName\"></spa-text>\r\n\r\n <div class=\"tin-center\">\r\n <button class=\"mt-3 w-50\" mat-raised-button color=\"primary\" (click)=\"recover()\" cdkFocusInitial>Submit</button>\r\n </div>\r\n\r\n</div>\r\n\r\n</div>\r\n\r\n" }]
|
|
45
|
+
}], ctorParameters: function () { return [{ type: i1.Location }, { type: i2.DataServiceLib }, { type: i3.AuthService }, { type: i4.MessageService }]; } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3Zlci1hY2NvdW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3JlY292ZXItYWNjb3VudC9yZWNvdmVyLWFjY291bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3Zlci1hY2NvdW50L3JlY292ZXItYWNjb3VudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFVN0MsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFvQixRQUFrQixFQUFVLFdBQTJCLEVBQVMsV0FBd0IsRUFBVSxjQUE4QjtRQUFoSSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFLcEosYUFBUSxHQUFXLEVBQUUsQ0FBQztJQUxrSSxDQUFDO0lBRXpKLFFBQVE7SUFDUixDQUFDO0lBSUQsT0FBTztRQUdMLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7WUFFdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUN4RCxPQUFPO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBRTNCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxXQUFXLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRTtvQkFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDdEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDNUQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7b0hBN0JVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDJEQ2RwQyxnaEJBbUJBOzJGRExhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuLy8gaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICd0aW4tY29yZSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RpbkNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtcmVjb3Zlci1hY2NvdW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVjb3Zlci1hY2NvdW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZWNvdmVyLWFjY291bnQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvdmVyQWNjb3VudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIHVzZXJOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICByZWNvdmVyKCl7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLnVzZXJOYW1lID09IFwiXCIpIHtcclxuXHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQbGVhc2UgZW50ZXIgeW91ciB1c2VyTmFtZVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHUgPSBuZXcgVXNlcigpO1xyXG4gICAgICB1LnVzZXJOYW1lID0gdGhpcy51c2VyTmFtZTtcclxuXHJcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuU2VsZlJlc2V0KHUpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGFwaVJlc3BvbnNlLm1lc3NhZ2UgPT0gXCJzdWNjZXNzXCIpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJUaGUgcGFzc3dvcmQgaGFzIGJlZW4gc2VudCB0byB5b3VyIGVtYWlsXCIpO1xyXG4gICAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIlxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogMzBweDtcIj5cclxuPGg0PlJlY292ZXIgQWNjb3VudDwvaDQ+XHJcblxyXG48aHIgLz5cclxuXHJcblN1Ym1pdCB5b3VyIFVzZXJuYW1lIGFuZCB3ZSB3aWxsIHNlbmQgeW91IGRldGFpbHMgdG8geW91ciByZWdpc3RlcmVkIGVtYWlsIGFkZHJlc3MuXHJcblxyXG48ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiPlxyXG4gIDxzcGEtdGV4dCBjbGFzcz1cIm10LTNcIiBkaXNwbGF5PVwiVXNlcm5hbWVcIiBbKHZhbHVlKV09XCJ1c2VyTmFtZVwiPjwvc3BhLXRleHQ+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ0aW4tY2VudGVyXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwibXQtMyB3LTUwXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInJlY292ZXIoKVwiIGNka0ZvY3VzSW5pdGlhbD5TdWJtaXQ8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPC9kaXY+XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
// import { AuthService } from '../../services/auth.service';
|
|
4
|
+
// import { ApiResponse, Core } from 'tin-core';
|
|
5
|
+
import { Role } from '../../classes/Classes';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../services/message.service";
|
|
8
|
+
import * as i2 from "../../services/data.service";
|
|
9
|
+
import * as i3 from "../../services/auth.service";
|
|
10
|
+
import * as i4 from "@angular/material/dialog";
|
|
11
|
+
import * as i5 from "@angular/forms";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
|
+
import * as i7 from "@angular/material/checkbox";
|
|
14
|
+
import * as i8 from "@angular/material/button";
|
|
15
|
+
import * as i9 from "@angular/material/form-field";
|
|
16
|
+
import * as i10 from "@angular/material/input";
|
|
17
|
+
export class addRoleDialog {
|
|
18
|
+
constructor(messageService, dataService, authService, dialogRef, data) {
|
|
19
|
+
this.messageService = messageService;
|
|
20
|
+
this.dataService = dataService;
|
|
21
|
+
this.authService = authService;
|
|
22
|
+
this.dialogRef = dialogRef;
|
|
23
|
+
this.data = data;
|
|
24
|
+
this.role = new Role();
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this.capItems = this.data;
|
|
28
|
+
}
|
|
29
|
+
submit() {
|
|
30
|
+
if (this.role.roleName == "New Role" || this.role.roleName == "") {
|
|
31
|
+
this.messageService.toast("Please enter Role Name");
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.isProcessing = true;
|
|
35
|
+
this.dataService.PostRole(this.role, "add").subscribe((apiResponse) => {
|
|
36
|
+
this.isProcessing = false;
|
|
37
|
+
if (apiResponse.success) {
|
|
38
|
+
this.messageService.toast("Role Added");
|
|
39
|
+
this.dialogRef.close("success");
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.messageService.toast("Error: " + apiResponse.message);
|
|
43
|
+
}
|
|
44
|
+
}, error => {
|
|
45
|
+
this.messageService.toast("Connection failed");
|
|
46
|
+
this.isProcessing = false;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
;
|
|
50
|
+
}
|
|
51
|
+
addRoleDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: addRoleDialog, deps: [{ token: i1.MessageService }, { token: i2.DataServiceLib }, { token: i3.AuthService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
addRoleDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: addRoleDialog, selector: "app-addRole", ngImport: i0, template: "<mat-form-field>\r\n <mat-label>Role Name</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"role.roleName\" placeholder=\"Enter Role Name\" />\r\n</mat-form-field>\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"row\" >\r\n\r\n <!-- <div class=\" col-4\">\r\n\r\n <div class=\"row\">\r\n <mat-checkbox color=\"primary\" style=\"margin-right:20px; font-size:14px\" [(ngModel)]=\"role.cap1\">Admin</mat-checkbox>\r\n </div>\r\n\r\n </div> -->\r\n\r\n <div class=\"row\" style=\"margin-left: 2em;margin-right: 2em;\">\r\n\r\n <div class=\"row\" style=\"margin-left: 2em;\" *ngFor=\"let capItem of capItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"margin-right:20px; font-size:12px; width: 200px;\" [(ngModel)]=\"role[capItem.name]\">{{capItem.display}}</mat-checkbox>\r\n\r\n <div *ngFor=\"let capSubItem of capItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"margin-right:20px; font-size:12px; width: 200px;\" [(ngModel)]=\"role[capSubItem.name]\">{{capSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n <button mat-button mat-dialog-close=\"success\">Cancel</button>\r\n</mat-dialog-actions>\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: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.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"] }] });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: addRoleDialog, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'app-addRole', template: "<mat-form-field>\r\n <mat-label>Role Name</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"role.roleName\" placeholder=\"Enter Role Name\" />\r\n</mat-form-field>\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"row\" >\r\n\r\n <!-- <div class=\" col-4\">\r\n\r\n <div class=\"row\">\r\n <mat-checkbox color=\"primary\" style=\"margin-right:20px; font-size:14px\" [(ngModel)]=\"role.cap1\">Admin</mat-checkbox>\r\n </div>\r\n\r\n </div> -->\r\n\r\n <div class=\"row\" style=\"margin-left: 2em;margin-right: 2em;\">\r\n\r\n <div class=\"row\" style=\"margin-left: 2em;\" *ngFor=\"let capItem of capItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"margin-right:20px; font-size:12px; width: 200px;\" [(ngModel)]=\"role[capItem.name]\">{{capItem.display}}</mat-checkbox>\r\n\r\n <div *ngFor=\"let capSubItem of capItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"margin-right:20px; font-size:12px; width: 200px;\" [(ngModel)]=\"role[capSubItem.name]\">{{capSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n <button mat-button mat-dialog-close=\"success\">Cancel</button>\r\n</mat-dialog-actions>\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"] }]
|
|
56
|
+
}], ctorParameters: function () { return [{ type: i1.MessageService }, { type: i2.DataServiceLib }, { type: i3.AuthService }, { type: i4.MatDialogRef }, { type: undefined, decorators: [{
|
|
57
|
+
type: Inject,
|
|
58
|
+
args: [MAT_DIALOG_DATA]
|
|
59
|
+
}] }]; } });
|
|
60
|
+
;
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkUm9sZURpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9yb2xlcy9hZGRSb2xlRGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3JvbGVzL2FkZFJvbGVEaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFhLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRiw2REFBNkQ7QUFDN0QsZ0RBQWdEO0FBQ2hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUTdDLE1BQU0sT0FBTyxhQUFhO0lBRXhCLFlBQW9CLGNBQThCLEVBQVUsV0FBMkIsRUFBVSxXQUF3QixFQUFVLFNBQXNDLEVBQWtDLElBQUk7UUFBM0wsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUE2QjtRQUFrQyxTQUFJLEdBQUosSUFBSSxDQUFBO1FBUS9NLFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBUmlNLENBQUM7SUFDcE4sUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBT0QsTUFBTTtRQUVKLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBQztZQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3BELE9BQU87U0FDUjtRQUdELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFFMUIsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDakM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1RDtRQUdILENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBQUEsQ0FBQzs7MEdBckNTLGFBQWEscUlBRTJKLGVBQWU7OEZBRnZMLGFBQWEsbURDaEIxQixtN0NBMkNBOzJGRDNCYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLGFBQWE7OzBCQU1xSixNQUFNOzJCQUFDLGVBQWU7O0FBb0NuTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyAgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBBcGlSZXNwb25zZSwgQ29yZSB9IGZyb20gJ3Rpbi1jb3JlJztcclxuaW1wb3J0IHsgUm9sZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UaW5Db3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFkZFJvbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGRSb2xlRGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yb2xlcy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIGFkZFJvbGVEaWFsb2cgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFkZFJvbGVEaWFsb2c+LCBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGEpIHsgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jYXBJdGVtcyA9IHRoaXMuZGF0YTtcclxuICB9XHJcblxyXG4gIGNhcEl0ZW1zO1xyXG5cclxuICBpc1Byb2Nlc3Npbmc6IGJvb2xlYW47XHJcbiAgcm9sZSA9IG5ldyBSb2xlKCk7XHJcblxyXG4gIHN1Ym1pdCgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5yb2xlLnJvbGVOYW1lID09IFwiTmV3IFJvbGVcIiB8fCB0aGlzLnJvbGUucm9sZU5hbWUgPT0gXCJcIil7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQbGVhc2UgZW50ZXIgUm9sZSBOYW1lXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuUG9zdFJvbGUodGhpcy5yb2xlLFwiYWRkXCIpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlJvbGUgQWRkZWRcIik7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoXCJzdWNjZXNzXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJDb25uZWN0aW9uIGZhaWxlZFwiKTtcclxuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG5cclxuICB9O1xyXG59O1xyXG5cclxuXHJcblxyXG4iLCI8bWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1sYWJlbD5Sb2xlIE5hbWU8L21hdC1sYWJlbD5cclxuICA8aW5wdXQgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJyb2xlLnJvbGVOYW1lXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBSb2xlIE5hbWVcIiAvPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIiA+XHJcblxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiICBjb2wtNFwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MjBweDsgZm9udC1zaXplOjE0cHhcIiBbKG5nTW9kZWwpXT1cInJvbGUuY2FwMVwiPkFkbWluPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMmVtO21hcmdpbi1yaWdodDogMmVtO1wiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDJlbTtcIiAqbmdGb3I9XCJsZXQgY2FwSXRlbSBvZiBjYXBJdGVtc1wiPlxyXG5cclxuICAgICAgICA8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxMnB4OyB3aWR0aDogMjAwcHg7XCIgWyhuZ01vZGVsKV09XCJyb2xlW2NhcEl0ZW0ubmFtZV1cIj57e2NhcEl0ZW0uZGlzcGxheX19PC9tYXQtY2hlY2tib3g+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNhcFN1Ykl0ZW0gb2YgY2FwSXRlbS5jYXBTdWJJdGVtc1wiPlxyXG5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MjBweDsgZm9udC1zaXplOjEycHg7IHdpZHRoOiAyMDBweDtcIiBbKG5nTW9kZWwpXT1cInJvbGVbY2FwU3ViSXRlbS5uYW1lXVwiPnt7Y2FwU3ViSXRlbS5kaXNwbGF5fX08L21hdC1jaGVja2JveD5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbjwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG5cclxuPG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gW2Rpc2FibGVkXT1cImlzUHJvY2Vzc2luZ1wiIChjbGljayk9XCJzdWJtaXQoKVwiIGNka0ZvY3VzSW5pdGlhbD5TdWJtaXQ8L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT1cInN1Y2Nlc3NcIj5DYW5jZWw8L2J1dHRvbj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiJdfQ==
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { AppConfig } from './../../classes/Classes';
|
|
2
|
+
import { Component } from "@angular/core";
|
|
3
|
+
import { addRoleDialog } from "./addRoleDialog.component";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../services/http.service";
|
|
6
|
+
import * as i2 from "@angular/router";
|
|
7
|
+
import * as i3 from "../../services/auth.service";
|
|
8
|
+
import * as i4 from "../../services/data.service";
|
|
9
|
+
import * as i5 from "@angular/material/dialog";
|
|
10
|
+
import * as i6 from "../../services/message.service";
|
|
11
|
+
import * as i7 from "@angular/forms";
|
|
12
|
+
import * as i8 from "@angular/common";
|
|
13
|
+
import * as i9 from "@angular/material/checkbox";
|
|
14
|
+
import * as i10 from "@angular/material/button";
|
|
15
|
+
import * as i11 from "@angular/material/icon";
|
|
16
|
+
import * as i12 from "@angular/material/card";
|
|
17
|
+
import * as i13 from "@angular/material/tooltip";
|
|
18
|
+
export class RolesComponent {
|
|
19
|
+
constructor(httpService, router, authService, dataService, dialog, messageService) {
|
|
20
|
+
this.httpService = httpService;
|
|
21
|
+
this.router = router;
|
|
22
|
+
this.authService = authService;
|
|
23
|
+
this.dataService = dataService;
|
|
24
|
+
this.dialog = dialog;
|
|
25
|
+
this.messageService = messageService;
|
|
26
|
+
this.isProcessing = false;
|
|
27
|
+
this.appConfig = new AppConfig();
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.authService.isAuthorised(this.dataService.capRoles.name);
|
|
31
|
+
this.loadRoles();
|
|
32
|
+
this.dataService.appConfigObserv.subscribe(x => this.appConfig = x);
|
|
33
|
+
}
|
|
34
|
+
loadRoles() {
|
|
35
|
+
this.dataService.GetRole("all", "").subscribe((apiResponse) => {
|
|
36
|
+
this.roles = apiResponse;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
refresh() {
|
|
40
|
+
this.loadRoles();
|
|
41
|
+
}
|
|
42
|
+
addRole() {
|
|
43
|
+
const dialogRef = this.dialog.open(addRoleDialog, {
|
|
44
|
+
width: "1100px",
|
|
45
|
+
data: this.appConfig.capItems,
|
|
46
|
+
});
|
|
47
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
48
|
+
if (result == "success") {
|
|
49
|
+
this.loadRoles();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
updateRole(role) {
|
|
54
|
+
this.messageService.confirm(`UPDATE ${role.roleName} ?`).subscribe((result) => {
|
|
55
|
+
if (result == "yes") {
|
|
56
|
+
this.dataService.PostRole(role, "edit").subscribe((apiResponse) => {
|
|
57
|
+
if (apiResponse.success) {
|
|
58
|
+
this.messageService.toast("Role Updated");
|
|
59
|
+
this.loadRoles();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.messageService.toast("Error: " + apiResponse);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
;
|
|
69
|
+
deleteRole(role) {
|
|
70
|
+
this.messageService.confirm(`DELETE ${role.roleName} ?`).subscribe((result) => {
|
|
71
|
+
if (result == "yes") {
|
|
72
|
+
this.dataService.PostRole(role, "delete").subscribe((apiResponse) => {
|
|
73
|
+
if (apiResponse.success) {
|
|
74
|
+
this.messageService.toast("Role Deleted");
|
|
75
|
+
this.loadRoles();
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.messageService.toast("Error: " + apiResponse);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
RolesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RolesComponent, deps: [{ token: i1.HttpService }, { token: i2.Router }, { token: i3.AuthService }, { token: i4.DataServiceLib }, { token: i5.MatDialog }, { token: i6.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
+
RolesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: RolesComponent, selector: "spa-roles", ngImport: i0, template: "<h4> Roles </h4>\r\n<hr />\r\n\r\n<div class=\"container mb-5\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px;padding-left:10px\">\r\n <div class=\"col-2\">\r\n\r\n <button id=\"btnNewRole\" mat-raised-button color=\"primary\" (click)=\"addRole()\">New Role</button>\r\n </div>\r\n <div class=\"col-1\">\r\n\r\n <button id=\"btnRefresh\" mat-mini-fab color=\"primary\" (click)=\"refresh()\" style=\"margin-right:1em;margin-top:5px\" matTooltip=\"refresh data\" matTooltipPosition=\"right\"><mat-icon class=\"refreshIcon\">refresh</mat-icon></button>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row mt-2 mb-1\" style=\"margin-left:10px\" *ngFor=\"let role of roles\">\r\n\r\n <mat-card class=\"mat-elevation-z8\" style=\"width:100%;padding-left:2em\">\r\n\r\n <h4>{{role.roleName}}</h4>\r\n <hr />\r\n\r\n <div class=\"row\" style=\"margin-left: 2em;\">\r\n\r\n\r\n <div class=\"row\" style=\"margin-right:20px;\" *ngFor=\"let capItem of appConfig.capItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\" font-size:12px; width: 200px;\" [(ngModel)]=\"role[capItem.name]\">{{capItem.display}}</mat-checkbox>\r\n\r\n <div class=\"row\" style=\"margin-right:20px;margin-left: 0px; \" *ngFor=\"let capSubItem of capItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\" font-size:12px; width: 200px;\" [(ngModel)]=\"role[capSubItem.name]\">{{capSubItem.display}}</mat-checkbox>\r\n\r\n <div class=\"row\" style=\"margin-right:20px;margin-left: 0px;\" *ngFor=\"let capSubSubItem of capSubItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"font-size:12px; width: 200px;\" [(ngModel)]=\"role[capSubSubItem.name]\">{{capSubSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <button mat-mini-fab color=\"primary\" (click)=\"updateRole(role)\" style=\"margin-right:10px;\">\r\n <mat-icon>done_all</mat-icon>\r\n </button>\r\n\r\n <!-- <button mat-mini-fab color=\"warn\" (click)=\"editRole(role)\" style=\"margin-right:10px\">\r\n <mat-icon>edit</mat-icon>\r\n </button> -->\r\n\r\n <button mat-mini-fab color=\"warn\" (click)=\"deleteRole(role)\" style=\"margin-right:10px\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n </div>\r\n\r\n\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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i12.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i13.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RolesComponent, decorators: [{
|
|
88
|
+
type: Component,
|
|
89
|
+
args: [{ selector: "spa-roles", template: "<h4> Roles </h4>\r\n<hr />\r\n\r\n<div class=\"container mb-5\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px;padding-left:10px\">\r\n <div class=\"col-2\">\r\n\r\n <button id=\"btnNewRole\" mat-raised-button color=\"primary\" (click)=\"addRole()\">New Role</button>\r\n </div>\r\n <div class=\"col-1\">\r\n\r\n <button id=\"btnRefresh\" mat-mini-fab color=\"primary\" (click)=\"refresh()\" style=\"margin-right:1em;margin-top:5px\" matTooltip=\"refresh data\" matTooltipPosition=\"right\"><mat-icon class=\"refreshIcon\">refresh</mat-icon></button>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row mt-2 mb-1\" style=\"margin-left:10px\" *ngFor=\"let role of roles\">\r\n\r\n <mat-card class=\"mat-elevation-z8\" style=\"width:100%;padding-left:2em\">\r\n\r\n <h4>{{role.roleName}}</h4>\r\n <hr />\r\n\r\n <div class=\"row\" style=\"margin-left: 2em;\">\r\n\r\n\r\n <div class=\"row\" style=\"margin-right:20px;\" *ngFor=\"let capItem of appConfig.capItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\" font-size:12px; width: 200px;\" [(ngModel)]=\"role[capItem.name]\">{{capItem.display}}</mat-checkbox>\r\n\r\n <div class=\"row\" style=\"margin-right:20px;margin-left: 0px; \" *ngFor=\"let capSubItem of capItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\" font-size:12px; width: 200px;\" [(ngModel)]=\"role[capSubItem.name]\">{{capSubItem.display}}</mat-checkbox>\r\n\r\n <div class=\"row\" style=\"margin-right:20px;margin-left: 0px;\" *ngFor=\"let capSubSubItem of capSubItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"font-size:12px; width: 200px;\" [(ngModel)]=\"role[capSubSubItem.name]\">{{capSubSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <button mat-mini-fab color=\"primary\" (click)=\"updateRole(role)\" style=\"margin-right:10px;\">\r\n <mat-icon>done_all</mat-icon>\r\n </button>\r\n\r\n <!-- <button mat-mini-fab color=\"warn\" (click)=\"editRole(role)\" style=\"margin-right:10px\">\r\n <mat-icon>edit</mat-icon>\r\n </button> -->\r\n\r\n <button mat-mini-fab color=\"warn\" (click)=\"deleteRole(role)\" style=\"margin-right:10px\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n </div>\r\n\r\n\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"] }]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.Router }, { type: i3.AuthService }, { type: i4.DataServiceLib }, { type: i5.MatDialog }, { type: i6.MessageService }]; } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcm9sZXMvcm9sZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvcm9sZXMvcm9sZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBSXpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBWTFELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLFdBQXdCLEVBQVUsTUFBYyxFQUFVLFdBQXdCLEVBQVUsV0FBMkIsRUFBUyxNQUFpQixFQUFVLGNBQThCO1FBQXpMLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVE3TSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixjQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQVhxTCxDQUFDO0lBRWxOLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBT0QsU0FBUztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUM1RCxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hELEtBQUssRUFBRSxRQUFRO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtTQUM5QixDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxNQUFNLElBQUksU0FBUyxFQUFFO2dCQUN2QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDbEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUVuQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBRTVFLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRTtnQkFFbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO29CQUVoRSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUMxQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7cUJBQ2xCO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQztxQkFDcEQ7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFFSjtRQUVILENBQUMsQ0FBQyxDQUFBO0lBR0osQ0FBQztJQUFBLENBQUM7SUFFRixVQUFVLENBQUMsSUFBVTtRQUVuQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBRTVFLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRTtnQkFFbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO29CQUNsRSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUMxQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7cUJBQ2xCO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQztxQkFDcEQ7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFFSjtRQUVILENBQUMsQ0FBQyxDQUFBO0lBRUosQ0FBQzs7MkdBL0VVLGNBQWM7K0ZBQWQsY0FBYyxpRENqQjNCLHloRkF3RUE7MkZEdkRhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4vLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUm9sZSwgQ2FwSXRlbSB9IGZyb20gXCIuLi8uLi9jbGFzc2VzL0NsYXNzZXNcIjtcclxuaW1wb3J0IHsgYWRkUm9sZURpYWxvZyB9IGZyb20gXCIuL2FkZFJvbGVEaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJzcGEtcm9sZXNcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3JvbGVzLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3JvbGVzLmNvbXBvbmVudC5jc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb2xlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5pc0F1dGhvcmlzZWQodGhpcy5kYXRhU2VydmljZS5jYXBSb2xlcy5uYW1lKTtcclxuICAgIHRoaXMubG9hZFJvbGVzKCk7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwcENvbmZpZ09ic2Vydi5zdWJzY3JpYmUoeCA9PiB0aGlzLmFwcENvbmZpZyA9IHgpO1xyXG4gIH1cclxuXHJcbiAgaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgcm9sZXM6IFJvbGVbXTtcclxuXHJcbiAgYXBwQ29uZmlnID0gbmV3IEFwcENvbmZpZygpO1xyXG5cclxuICBsb2FkUm9sZXMoKSB7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkdldFJvbGUoXCJhbGxcIiwgXCJcIikuc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLnJvbGVzID0gYXBpUmVzcG9uc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLmxvYWRSb2xlcygpO1xyXG4gIH1cclxuXHJcbiAgYWRkUm9sZSgpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oYWRkUm9sZURpYWxvZywge1xyXG4gICAgICB3aWR0aDogXCIxMTAwcHhcIixcclxuICAgICAgZGF0YTogdGhpcy5hcHBDb25maWcuY2FwSXRlbXMsXHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0ID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkUm9sZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSb2xlKHJvbGU6IFJvbGUpIHtcclxuXHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNvbmZpcm0oYFVQREFURSAke3JvbGUucm9sZU5hbWV9ID9gKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG5cclxuICAgICAgaWYgKHJlc3VsdCA9PSBcInllc1wiKSB7XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuUG9zdFJvbGUocm9sZSwgXCJlZGl0XCIpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUm9sZSBVcGRhdGVkXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRSb2xlcygpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkVycm9yOiBcIiArIGFwaVJlc3BvbnNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9KVxyXG5cclxuXHJcbiAgfTtcclxuXHJcbiAgZGVsZXRlUm9sZShyb2xlOiBSb2xlKSB7XHJcblxyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5jb25maXJtKGBERUxFVEUgJHtyb2xlLnJvbGVOYW1lfSA/YCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT0gXCJ5ZXNcIikge1xyXG5cclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLlBvc3RSb2xlKHJvbGUsIFwiZGVsZXRlXCIpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJSb2xlIERlbGV0ZWRcIik7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZFJvbGVzKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcblxyXG4gIH1cclxufVxyXG4iLCI8aDQ+IFJvbGVzIDwvaDQ+XHJcbjxociAvPlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtYi01XCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cInBhZGRpbmctYm90dG9tOiAxMHB4O3BhZGRpbmctbGVmdDoxMHB4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTJcIj5cclxuXHJcbiAgICAgIDxidXR0b24gaWQ9XCJidG5OZXdSb2xlXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZFJvbGUoKVwiPk5ldyBSb2xlPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMVwiPlxyXG5cclxuICAgICAgPGJ1dHRvbiBpZD1cImJ0blJlZnJlc2hcIiBtYXQtbWluaS1mYWIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInJlZnJlc2goKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjFlbTttYXJnaW4tdG9wOjVweFwiIG1hdFRvb2x0aXA9XCJyZWZyZXNoIGRhdGFcIiBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiPjxtYXQtaWNvbiBjbGFzcz1cInJlZnJlc2hJY29uXCI+cmVmcmVzaDwvbWF0LWljb24+PC9idXR0b24+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwicm93IG10LTIgbWItMVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6MTBweFwiICpuZ0Zvcj1cImxldCByb2xlIG9mIHJvbGVzXCI+XHJcblxyXG4gICAgPG1hdC1jYXJkIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiIHN0eWxlPVwid2lkdGg6MTAwJTtwYWRkaW5nLWxlZnQ6MmVtXCI+XHJcblxyXG4gICAgICA8aDQ+e3tyb2xlLnJvbGVOYW1lfX08L2g0PlxyXG4gICAgICA8aHIgLz5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAyZW07XCI+XHJcblxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MjBweDtcIiAgKm5nRm9yPVwibGV0IGNhcEl0ZW0gb2YgYXBwQ29uZmlnLmNhcEl0ZW1zXCI+XHJcblxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cIiBmb250LXNpemU6MTJweDsgd2lkdGg6IDIwMHB4O1wiIFsobmdNb2RlbCldPVwicm9sZVtjYXBJdGVtLm5hbWVdXCI+e3tjYXBJdGVtLmRpc3BsYXl9fTwvbWF0LWNoZWNrYm94PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDoyMHB4O21hcmdpbi1sZWZ0OiAwcHg7IFwiICpuZ0Zvcj1cImxldCBjYXBTdWJJdGVtIG9mIGNhcEl0ZW0uY2FwU3ViSXRlbXNcIj5cclxuXHJcbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggICBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cIiBmb250LXNpemU6MTJweDsgd2lkdGg6IDIwMHB4O1wiIFsobmdNb2RlbCldPVwicm9sZVtjYXBTdWJJdGVtLm5hbWVdXCI+e3tjYXBTdWJJdGVtLmRpc3BsYXl9fTwvbWF0LWNoZWNrYm94PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjIwcHg7bWFyZ2luLWxlZnQ6IDBweDtcIiAqbmdGb3I9XCJsZXQgY2FwU3ViU3ViSXRlbSBvZiBjYXBTdWJJdGVtLmNhcFN1Ykl0ZW1zXCI+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggICBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZToxMnB4OyB3aWR0aDogMjAwcHg7XCIgWyhuZ01vZGVsKV09XCJyb2xlW2NhcFN1YlN1Ykl0ZW0ubmFtZV1cIj57e2NhcFN1YlN1Ykl0ZW0uZGlzcGxheX19PC9tYXQtY2hlY2tib3g+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8bWF0LWNhcmQtYWN0aW9ucz5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiAgbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ1cGRhdGVSb2xlKHJvbGUpXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MTBweDtcIj5cclxuICAgICAgICAgICA8bWF0LWljb24+ZG9uZV9hbGw8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8IS0tIDxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJlZGl0Um9sZShyb2xlKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjEwcHhcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj4gLS0+XHJcblxyXG4gICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJkZWxldGVSb2xlKHJvbGUpXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MTBweFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcblxyXG4gICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuPC9kaXY+XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/form-field";
|
|
5
|
+
import * as i3 from "@angular/material/select";
|
|
6
|
+
import * as i4 from "@angular/material/core";
|
|
7
|
+
export class SelectComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.width = "100%";
|
|
10
|
+
this.readonly = false;
|
|
11
|
+
this.readonlyMode = "";
|
|
12
|
+
this.hint = "";
|
|
13
|
+
this.placeholder = "";
|
|
14
|
+
this.multiple = false;
|
|
15
|
+
this.display = "";
|
|
16
|
+
this.optionValue = "";
|
|
17
|
+
this.optionDisplay = "";
|
|
18
|
+
this.optionDisplayExtra = "";
|
|
19
|
+
this.valueChange = new EventEmitter();
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
// this.displayValue = this.options.filter((m) => m.optionValue == this.value)
|
|
23
|
+
// this.displayValue = this.value
|
|
24
|
+
if (this.placeholder == "") {
|
|
25
|
+
this.placeholder = "Select " + this.display;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
ngOnChanges() {
|
|
29
|
+
if (this.readonlyMode != "" && this.options.length > 0) {
|
|
30
|
+
this.displayValue = this.options.filter((m) => m[`${this.optionValue}`] == this.value)[0][`${this.optionDisplay}`];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
changed() {
|
|
34
|
+
// let v;
|
|
35
|
+
// v = Core.isNumber(this.value) ? Number(this.value) : this.value;
|
|
36
|
+
this.valueChange.emit(this.value);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SelectComponent, selector: "spa-select", inputs: { width: "width", readonly: "readonly", readonlyMode: "readonlyMode", hint: "hint", placeholder: "placeholder", multiple: "multiple", display: "display", value: "value", options: "options", optionValue: "optionValue", optionDisplay: "optionDisplay", optionDisplayExtra: "optionDisplayExtra" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "\r\n<mat-form-field *ngIf=\"readonlyMode==''\" floatLabel=\"always\" [ngStyle]=\"{'width':width}\">\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]=\"value\" (selectionChange)=\"changed()\" [multiple]=\"multiple\" [disabled]=\"readonly\" [placeholder]=\"placeholder\" >\r\n <mat-option *ngFor=\"let row of options\" [value]=\"row[optionValue]\">\r\n {{row[optionDisplay]}} <label *ngIf=\"optionDisplayExtra!='' && row[optionDisplayExtra] && row[optionDisplayExtra] != ''\">({{row[optionDisplayExtra]}})</label>\r\n </mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"hint!=''\">{{hint}}</mat-hint>\r\n</mat-form-field>\r\n\r\n<!-- ReadOnlyModes original, text, label -->\r\n<!-- <spa-text *ngIf=\"readonlyMode=='text' && readonly\" [display]=\"display\" [(value)]=\"displayValue\" [readonly]=\"true\" ></spa-text> -->\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }] });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SelectComponent, decorators: [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{ selector: 'spa-select', template: "\r\n<mat-form-field *ngIf=\"readonlyMode==''\" floatLabel=\"always\" [ngStyle]=\"{'width':width}\">\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]=\"value\" (selectionChange)=\"changed()\" [multiple]=\"multiple\" [disabled]=\"readonly\" [placeholder]=\"placeholder\" >\r\n <mat-option *ngFor=\"let row of options\" [value]=\"row[optionValue]\">\r\n {{row[optionDisplay]}} <label *ngIf=\"optionDisplayExtra!='' && row[optionDisplayExtra] && row[optionDisplayExtra] != ''\">({{row[optionDisplayExtra]}})</label>\r\n </mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"hint!=''\">{{hint}}</mat-hint>\r\n</mat-form-field>\r\n\r\n<!-- ReadOnlyModes original, text, label -->\r\n<!-- <spa-text *ngIf=\"readonlyMode=='text' && readonly\" [display]=\"display\" [(value)]=\"displayValue\" [readonly]=\"true\" ></spa-text> -->\r\n" }]
|
|
44
|
+
}], ctorParameters: function () { return []; }, propDecorators: { width: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], readonly: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], readonlyMode: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], hint: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], placeholder: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], multiple: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], display: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], value: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], options: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], optionValue: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], optionDisplay: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], optionDisplayExtra: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], valueChange: [{
|
|
69
|
+
type: Output
|
|
70
|
+
}] } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRL0UsTUFBTSxPQUFPLGVBQWU7SUFFMUI7UUFvQlMsVUFBSyxHQUFHLE1BQU0sQ0FBQTtRQUNkLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUdiLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV2QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFsQzNCLENBQUM7SUFFakIsUUFBUTtRQUNOLDhFQUE4RTtRQUM5RSxpQ0FBaUM7UUFDakMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFFVCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtTQUNuSDtJQUVILENBQUM7SUFzQkQsT0FBTztRQUNMLFNBQVM7UUFDVCxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OzRHQTVDVSxlQUFlO2dHQUFmLGVBQWUsOFpDUjVCLDIxQkFhQTsyRkRMYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7MEVBMEJiLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RpbkNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5vcHRpb25zLmZpbHRlcigobSkgPT4gbS5vcHRpb25WYWx1ZSA9PSB0aGlzLnZhbHVlKVxyXG4gICAgLy8gdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnZhbHVlXHJcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlciA9PSBcIlwiKSB7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBcIlNlbGVjdCBcIiArIHRoaXMuZGlzcGxheTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG5cclxuICAgIGlmICh0aGlzLnJlYWRvbmx5TW9kZSAhPSBcIlwiICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwKXtcclxuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChtKSA9PiBtW2Ake3RoaXMub3B0aW9uVmFsdWV9YF0gPT0gdGhpcy52YWx1ZSlbMF1bYCR7dGhpcy5vcHRpb25EaXNwbGF5fWBdXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZGlzcGxheVZhbHVlO1xyXG5cclxuICBASW5wdXQoKSB3aWR0aCA9IFwiMTAwJVwiXHJcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSByZWFkb25seU1vZGUgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGhpbnQgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJcIjtcclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBkaXNwbGF5ID0gXCJcIjtcclxuICBASW5wdXQoKSB2YWx1ZSA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogYW55O1xyXG4gIEBJbnB1dCgpIG9wdGlvblZhbHVlID0gXCJcIjtcclxuICBASW5wdXQoKSBvcHRpb25EaXNwbGF5ID0gXCJcIjtcclxuICBASW5wdXQoKSBvcHRpb25EaXNwbGF5RXh0cmEgPSBcIlwiO1xyXG5cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuXHJcbiAgY2hhbmdlZCgpe1xyXG4gICAgLy8gbGV0IHY7XHJcbiAgICAvLyB2ID0gQ29yZS5pc051bWJlcih0aGlzLnZhbHVlKSA/IE51bWJlcih0aGlzLnZhbHVlKSA6IHRoaXMudmFsdWU7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIiwiXHJcbjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cInJlYWRvbmx5TW9kZT09JydcIiAgZmxvYXRMYWJlbD1cImFsd2F5c1wiICBbbmdTdHlsZV09XCJ7J3dpZHRoJzp3aWR0aH1cIj5cclxuICA8bWF0LWxhYmVsPnt7ZGlzcGxheX19PC9tYXQtbGFiZWw+XHJcbiAgPG1hdC1zZWxlY3QgWyh2YWx1ZSldPVwidmFsdWVcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZWQoKVwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiID5cclxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByb3cgb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJyb3dbb3B0aW9uVmFsdWVdXCI+XHJcbiAgICAgIHt7cm93W29wdGlvbkRpc3BsYXldfX0gPGxhYmVsICpuZ0lmPVwib3B0aW9uRGlzcGxheUV4dHJhIT0nJyAmJiByb3dbb3B0aW9uRGlzcGxheUV4dHJhXSAmJiByb3dbb3B0aW9uRGlzcGxheUV4dHJhXSAhPSAnJ1wiPih7e3Jvd1tvcHRpb25EaXNwbGF5RXh0cmFdfX0pPC9sYWJlbD5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1zZWxlY3Q+XHJcbiAgPG1hdC1oaW50ICpuZ0lmPVwiaGludCE9JydcIj57e2hpbnR9fTwvbWF0LWhpbnQ+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG48IS0tIFJlYWRPbmx5TW9kZXMgb3JpZ2luYWwsIHRleHQsIGxhYmVsIC0tPlxyXG48IS0tIDxzcGEtdGV4dCAqbmdJZj1cInJlYWRvbmx5TW9kZT09J3RleHQnICYmIHJlYWRvbmx5XCIgW2Rpc3BsYXldPVwiZGlzcGxheVwiIFsodmFsdWUpXT1cImRpc3BsYXlWYWx1ZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgPjwvc3BhLXRleHQ+IC0tPlxyXG4iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/data.service";
|
|
4
|
+
import * as i2 from "../../services/message.service";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
6
|
+
import * as i4 from "@angular/common";
|
|
7
|
+
import * as i5 from "@angular/material/button";
|
|
8
|
+
import * as i6 from "@angular/material/icon";
|
|
9
|
+
import * as i7 from "@angular/material/form-field";
|
|
10
|
+
import * as i8 from "@angular/material/input";
|
|
11
|
+
// import { ApiResponse } from 'tin-core';
|
|
12
|
+
export class SettingsComponent {
|
|
13
|
+
constructor(dataService, messageService) {
|
|
14
|
+
this.dataService = dataService;
|
|
15
|
+
this.messageService = messageService;
|
|
16
|
+
this._filterText = "";
|
|
17
|
+
this.isProcessing = false;
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
this.loadSettings();
|
|
21
|
+
}
|
|
22
|
+
applyFilter(filterValue) {
|
|
23
|
+
this.settings.filter = filterValue.trim().toLowerCase();
|
|
24
|
+
}
|
|
25
|
+
loadSettings() {
|
|
26
|
+
this.dataService.GetSetting("all", "").subscribe((apiResponse) => {
|
|
27
|
+
this.settings = apiResponse;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
updateSetting(setting) {
|
|
31
|
+
this.isProcessing = true;
|
|
32
|
+
this.dataService.UpdateSetting(setting, "edit").subscribe((apiResponse) => {
|
|
33
|
+
this.isProcessing = false;
|
|
34
|
+
if (apiResponse.success) {
|
|
35
|
+
this.messageService.toast(`Setting ${setting.sName} Updated`);
|
|
36
|
+
this.loadSettings();
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.messageService.toast("Error: " + apiResponse.message);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
;
|
|
44
|
+
addSetting() {
|
|
45
|
+
// const dialogRef = this.dialog.open(addRoleDialog, {
|
|
46
|
+
// width: "1100px",
|
|
47
|
+
// data: "",
|
|
48
|
+
// });
|
|
49
|
+
// dialogRef.afterClosed().subscribe((result) => {
|
|
50
|
+
// if (result == "success") {
|
|
51
|
+
// this.loadRoles();
|
|
52
|
+
// }
|
|
53
|
+
// });
|
|
54
|
+
this.messageService.toast("Feature not Available");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
SettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
SettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SettingsComponent, selector: "spa-settings", ngImport: i0, template: "<h4>Settings</h4>\r\n<hr>\r\n\r\n<div class=\"container\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px;padding-left:10px\">\r\n\r\n <div class=\"col-2\">\r\n <!-- <button mat-raised-button (click)=\"addSetting()\">New Setting</button> -->\r\n </div>\r\n <div class=\"col-2\">\r\n <button mat-raised-button (click)=\"loadSettings()\">Refresh</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row mt-1 mb-1\" style=\"margin-left:10px\" *ngFor=\"let setting of settings\">\r\n\r\n <mat-form-field style=\"width: 500px; font-size: 14px;\">\r\n <mat-label>{{setting.sName}}</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"setting.sValue\" >\r\n </mat-form-field>\r\n\r\n <button mat-mini-fab color=\"primary\" (click)=\"updateSetting(setting)\" style=\"margin-right:150px;\"><mat-icon>done_all</mat-icon></button>\r\n\r\n <mat-label style=\"font-size: small;\">Last Updated by {{setting.updatedBy}} on {{setting.updatedDate | date: 'dd MMM yy HH:mm'}}</mat-label>\r\n\r\n </div>\r\n\r\n\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}\n"], dependencies: [{ kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.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: "pipe", type: i4.DatePipe, name: "date" }] });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
60
|
+
type: Component,
|
|
61
|
+
args: [{ selector: 'spa-settings', template: "<h4>Settings</h4>\r\n<hr>\r\n\r\n<div class=\"container\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px;padding-left:10px\">\r\n\r\n <div class=\"col-2\">\r\n <!-- <button mat-raised-button (click)=\"addSetting()\">New Setting</button> -->\r\n </div>\r\n <div class=\"col-2\">\r\n <button mat-raised-button (click)=\"loadSettings()\">Refresh</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row mt-1 mb-1\" style=\"margin-left:10px\" *ngFor=\"let setting of settings\">\r\n\r\n <mat-form-field style=\"width: 500px; font-size: 14px;\">\r\n <mat-label>{{setting.sName}}</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"setting.sValue\" >\r\n </mat-form-field>\r\n\r\n <button mat-mini-fab color=\"primary\" (click)=\"updateSetting(setting)\" style=\"margin-right:150px;\"><mat-icon>done_all</mat-icon></button>\r\n\r\n <mat-label style=\"font-size: small;\">Last Updated by {{setting.updatedBy}} on {{setting.updatedDate | date: 'dd MMM yy HH:mm'}}</mat-label>\r\n\r\n </div>\r\n\r\n\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}\n"] }]
|
|
62
|
+
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }]; } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQUlsRCwwQ0FBMEM7QUFPMUMsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUFvQixXQUEyQixFQUFVLGNBQThCO1FBQW5FLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQU12RixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixpQkFBWSxHQUFHLEtBQUssQ0FBQztJQVJzRSxDQUFDO0lBRTVGLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQU1ELFdBQVcsQ0FBQyxXQUFtQjtRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDOUIsQ0FBQyxDQUNGLENBQUM7SUFFSixDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQU87UUFFbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtZQUNyRixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUUxQixJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFdBQVcsT0FBTyxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUVyQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzVEO1FBRUgsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBQUEsQ0FBQztJQUVGLFVBQVU7UUFFUixzREFBc0Q7UUFDdEQscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCxNQUFNO1FBRU4sa0RBQWtEO1FBQ2xELCtCQUErQjtRQUMvQix3QkFBd0I7UUFDeEIsTUFBTTtRQUNOLE1BQU07UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXJELENBQUM7OzhHQXhEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixvRENYOUIseWxDQWdDQTsyRkRyQmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RpbkNvcmUnO1xyXG4vLyBpbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gJ3Rpbi1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLXNldHRpbmdzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NldHRpbmdzLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZFNldHRpbmdzKCk7XHJcbiAgfVxyXG5cclxuICBfZmlsdGVyVGV4dCA9IFwiXCI7XHJcbiAgc2V0dGluZ3M7XHJcbiAgaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcblxyXG4gIGFwcGx5RmlsdGVyKGZpbHRlclZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuZmlsdGVyID0gZmlsdGVyVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBsb2FkU2V0dGluZ3MoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuR2V0U2V0dGluZyhcImFsbFwiLCBcIlwiKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IGFwaVJlc3BvbnNlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICB9XHJcblxyXG4gIHVwZGF0ZVNldHRpbmcoc2V0dGluZykge1xyXG5cclxuICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuVXBkYXRlU2V0dGluZyhzZXR0aW5nLCBcImVkaXRcIikuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChgU2V0dGluZyAke3NldHRpbmcuc05hbWV9IFVwZGF0ZWRgKTtcclxuICAgICAgICB0aGlzLmxvYWRTZXR0aW5ncygpO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfTtcclxuXHJcbiAgYWRkU2V0dGluZygpIHtcclxuXHJcbiAgICAvLyBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKGFkZFJvbGVEaWFsb2csIHtcclxuICAgIC8vICAgd2lkdGg6IFwiMTEwMHB4XCIsXHJcbiAgICAvLyAgIGRhdGE6IFwiXCIsXHJcbiAgICAvLyB9KTtcclxuXHJcbiAgICAvLyBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgLy8gICBpZiAocmVzdWx0ID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAvLyAgICAgdGhpcy5sb2FkUm9sZXMoKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRmVhdHVyZSBub3QgQXZhaWxhYmxlXCIpO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjxoND5TZXR0aW5nczwvaDQ+XHJcbjxocj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiIHN0eWxlPVwicGFkZGluZy1ib3R0b206IDEwcHg7cGFkZGluZy1sZWZ0OjEwcHhcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTJcIj5cclxuICAgICAgPCEtLSA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJhZGRTZXR0aW5nKClcIj5OZXcgU2V0dGluZzwvYnV0dG9uPiAtLT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0yXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImxvYWRTZXR0aW5ncygpXCI+UmVmcmVzaDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwicm93IG10LTEgbWItMVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6MTBweFwiICpuZ0Zvcj1cImxldCBzZXR0aW5nIG9mIHNldHRpbmdzXCI+XHJcblxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6IDUwMHB4OyBmb250LXNpemU6IDE0cHg7XCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3tzZXR0aW5nLnNOYW1lfX08L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2V0dGluZy5zVmFsdWVcIiA+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgIDxidXR0b24gIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwidXBkYXRlU2V0dGluZyhzZXR0aW5nKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjE1MHB4O1wiPjxtYXQtaWNvbj5kb25lX2FsbDwvbWF0LWljb24+PC9idXR0b24+XHJcblxyXG4gICAgPG1hdC1sYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogc21hbGw7XCI+TGFzdCBVcGRhdGVkIGJ5IHt7c2V0dGluZy51cGRhdGVkQnl9fSBvbiB7e3NldHRpbmcudXBkYXRlZERhdGUgfCBkYXRlOiAnZGQgTU1NIHl5IEhIOm1tJ319PC9tYXQtbGFiZWw+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuPC9kaXY+XHJcblxyXG4iXX0=
|