@csmart/ngc-smart-core 0.7.95 → 1.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/csmart-ngc-smart-core.d.ts +1 -5
- package/esm2020/csmart-ngc-smart-core.mjs +5 -0
- package/esm2020/lib/ngc-smart-core.module.mjs +97 -0
- package/esm2020/lib/smart-auth/smart-access-control-config.mjs +12 -0
- package/esm2020/lib/smart-auth/smart-access-control.directive.mjs +40 -0
- package/esm2020/lib/smart-auth/smart-auth.service.mjs +479 -0
- package/esm2020/lib/smart-auth/smart-authorization-guard.service.mjs +35 -0
- package/esm2020/lib/smart-auth/smart-error.component.mjs +37 -0
- package/esm2020/lib/smart-auth/smart-login-staff-resolver.service.mjs +59 -0
- package/esm2020/lib/smart-auth/smart-selected-offender-resolver.service.mjs +49 -0
- package/esm2020/lib/smart-navbar/smart-navbar-config.mjs +2 -0
- package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +132 -0
- package/esm2020/lib/smart-navbar/smart-navbar.service.mjs +63 -0
- package/esm2020/lib/smart-offender-header/smart-offender-header.component.mjs +151 -0
- package/esm2020/lib/smart-offender-header/smart-offender-header.service.mjs +41 -0
- package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.mjs +25 -0
- package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +78 -0
- package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +134 -0
- package/esm2020/lib/smart-storage/smart-storage-model.mjs +30 -0
- package/esm2020/lib/smart-storage/xdm.service.mjs +158 -0
- package/esm2020/public-api.mjs +20 -0
- package/fesm2015/csmart-ngc-smart-core.mjs +1529 -0
- package/fesm2015/csmart-ngc-smart-core.mjs.map +1 -0
- package/fesm2020/csmart-ngc-smart-core.mjs +1514 -0
- package/fesm2020/csmart-ngc-smart-core.mjs.map +1 -0
- package/lib/ngc-smart-core.module.d.ts +18 -0
- package/lib/smart-auth/smart-access-control.directive.d.ts +3 -0
- package/lib/smart-auth/smart-auth.service.d.ts +4 -0
- package/lib/smart-auth/smart-authorization-guard.service.d.ts +3 -0
- package/lib/smart-auth/smart-error.component.d.ts +3 -0
- package/lib/smart-auth/smart-login-staff-resolver.service.d.ts +3 -0
- package/lib/smart-auth/smart-selected-offender-resolver.service.d.ts +3 -0
- package/lib/smart-navbar/smart-navbar.component.d.ts +6 -3
- package/lib/smart-navbar/smart-navbar.service.d.ts +3 -0
- package/lib/smart-offender-header/smart-offender-header.component.d.ts +4 -1
- package/lib/smart-offender-header/smart-offender-header.service.d.ts +3 -0
- package/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.d.ts +3 -0
- package/lib/smart-staff-offender-options/smart-staff-offender-options.component.d.ts +3 -0
- package/lib/smart-staff-offender-options/smart-staff-offender-options.service.d.ts +6 -3
- package/lib/smart-storage/xdm.service.d.ts +3 -0
- package/package.json +25 -14
- package/public-api.d.ts +3 -0
- package/bundles/csmart-ngc-smart-core.umd.js +0 -2620
- package/bundles/csmart-ngc-smart-core.umd.js.map +0 -1
- package/bundles/csmart-ngc-smart-core.umd.min.js +0 -2
- package/bundles/csmart-ngc-smart-core.umd.min.js.map +0 -1
- package/csmart-ngc-smart-core.metadata.json +0 -1
- package/esm2015/csmart-ngc-smart-core.js +0 -15
- package/esm2015/lib/ngc-smart-core.module.js +0 -59
- package/esm2015/lib/smart-auth/smart-access-control-config.js +0 -32
- package/esm2015/lib/smart-auth/smart-access-control.directive.js +0 -70
- package/esm2015/lib/smart-auth/smart-auth.service.js +0 -693
- package/esm2015/lib/smart-auth/smart-authorization-guard.service.js +0 -63
- package/esm2015/lib/smart-auth/smart-error.component.js +0 -77
- package/esm2015/lib/smart-auth/smart-login-staff-resolver.service.js +0 -94
- package/esm2015/lib/smart-auth/smart-selected-offender-resolver.service.js +0 -101
- package/esm2015/lib/smart-navbar/smart-navbar-config.js +0 -22
- package/esm2015/lib/smart-navbar/smart-navbar.component.js +0 -224
- package/esm2015/lib/smart-navbar/smart-navbar.service.js +0 -89
- package/esm2015/lib/smart-offender-header/smart-offender-header.component.js +0 -253
- package/esm2015/lib/smart-offender-header/smart-offender-header.service.js +0 -85
- package/esm2015/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.js +0 -49
- package/esm2015/lib/smart-staff-offender-options/smart-staff-offender-options.component.js +0 -151
- package/esm2015/lib/smart-staff-offender-options/smart-staff-offender-options.service.js +0 -222
- package/esm2015/lib/smart-storage/smart-storage-model.js +0 -131
- package/esm2015/lib/smart-storage/xdm.service.js +0 -317
- package/esm2015/public-api.js +0 -22
- package/esm5/csmart-ngc-smart-core.js +0 -15
- package/esm5/lib/ngc-smart-core.module.js +0 -63
- package/esm5/lib/smart-auth/smart-access-control-config.js +0 -32
- package/esm5/lib/smart-auth/smart-access-control.directive.js +0 -74
- package/esm5/lib/smart-auth/smart-auth.service.js +0 -762
- package/esm5/lib/smart-auth/smart-authorization-guard.service.js +0 -67
- package/esm5/lib/smart-auth/smart-error.component.js +0 -83
- package/esm5/lib/smart-auth/smart-login-staff-resolver.service.js +0 -98
- package/esm5/lib/smart-auth/smart-selected-offender-resolver.service.js +0 -108
- package/esm5/lib/smart-navbar/smart-navbar-config.js +0 -22
- package/esm5/lib/smart-navbar/smart-navbar.component.js +0 -251
- package/esm5/lib/smart-navbar/smart-navbar.service.js +0 -114
- package/esm5/lib/smart-offender-header/smart-offender-header.component.js +0 -283
- package/esm5/lib/smart-offender-header/smart-offender-header.service.js +0 -76
- package/esm5/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.js +0 -52
- package/esm5/lib/smart-staff-offender-options/smart-staff-offender-options.component.js +0 -165
- package/esm5/lib/smart-staff-offender-options/smart-staff-offender-options.service.js +0 -232
- package/esm5/lib/smart-storage/smart-storage-model.js +0 -155
- package/esm5/lib/smart-storage/xdm.service.js +0 -389
- package/esm5/public-api.js +0 -22
- package/fesm2015/csmart-ngc-smart-core.js +0 -2231
- package/fesm2015/csmart-ngc-smart-core.js.map +0 -1
- package/fesm5/csmart-ngc-smart-core.js +0 -2502
- package/fesm5/csmart-ngc-smart-core.js.map +0 -1
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/smart-navbar/smart-navbar.component.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Component, Input, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
7
|
-
import { MatTabGroup } from '@angular/material';
|
|
8
|
-
import { MsalService } from '@azure/msal-angular';
|
|
9
|
-
import { SmartNavbarService } from './smart-navbar.service';
|
|
10
|
-
import { XdmService } from '../smart-storage/xdm.service';
|
|
11
|
-
var SmartNavbarComponent = /** @class */ (function () {
|
|
12
|
-
function SmartNavbarComponent(navbarConfigService, xdmService, authnService) {
|
|
13
|
-
this.navbarConfigService = navbarConfigService;
|
|
14
|
-
this.xdmService = xdmService;
|
|
15
|
-
this.authnService = authnService;
|
|
16
|
-
this.appModuleId = 'SMART';
|
|
17
|
-
this.isAuthenticated = false;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* @return {?}
|
|
21
|
-
*/
|
|
22
|
-
SmartNavbarComponent.prototype.ngOnChanges = /**
|
|
23
|
-
* @return {?}
|
|
24
|
-
*/
|
|
25
|
-
function () {
|
|
26
|
-
/*
|
|
27
|
-
console.log(this.selectedTab);
|
|
28
|
-
setTimeout(() => {
|
|
29
|
-
this.tabGroup.selectedIndex = this.selectedTab;
|
|
30
|
-
}, 1000);
|
|
31
|
-
*/
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* @return {?}
|
|
35
|
-
*/
|
|
36
|
-
SmartNavbarComponent.prototype.ngOnInit = /**
|
|
37
|
-
* @return {?}
|
|
38
|
-
*/
|
|
39
|
-
function () {
|
|
40
|
-
var _this = this;
|
|
41
|
-
this.xdmService.getSelectedOffender().then((/**
|
|
42
|
-
* @param {?} selectedOffender
|
|
43
|
-
* @return {?}
|
|
44
|
-
*/
|
|
45
|
-
function (selectedOffender) {
|
|
46
|
-
_this.selectedOffender =
|
|
47
|
-
selectedOffender && selectedOffender.offenderId
|
|
48
|
-
? selectedOffender
|
|
49
|
-
: null;
|
|
50
|
-
}));
|
|
51
|
-
this.xdmService.getLoginStaff().then((/**
|
|
52
|
-
* @param {?} loginStaff
|
|
53
|
-
* @return {?}
|
|
54
|
-
*/
|
|
55
|
-
function (loginStaff) {
|
|
56
|
-
// this.zone.run(() => {
|
|
57
|
-
_this.loginStaff = loginStaff ? loginStaff : null;
|
|
58
|
-
// });
|
|
59
|
-
}));
|
|
60
|
-
this.offenderSubscription = this.xdmService
|
|
61
|
-
.getOffenderUpdate()
|
|
62
|
-
.subscribe((/**
|
|
63
|
-
* @param {?} selectedOffender
|
|
64
|
-
* @return {?}
|
|
65
|
-
*/
|
|
66
|
-
function (selectedOffender) {
|
|
67
|
-
// this.zone.run(() => {
|
|
68
|
-
_this.selectedOffender = selectedOffender;
|
|
69
|
-
// });
|
|
70
|
-
}));
|
|
71
|
-
this.staffSubscription = this.xdmService
|
|
72
|
-
.getStaffUpdate()
|
|
73
|
-
.subscribe((/**
|
|
74
|
-
* @param {?} loginStaff
|
|
75
|
-
* @return {?}
|
|
76
|
-
*/
|
|
77
|
-
function (loginStaff) {
|
|
78
|
-
// this.zone.run(() => {
|
|
79
|
-
_this.loginStaff = loginStaff;
|
|
80
|
-
// });
|
|
81
|
-
}));
|
|
82
|
-
this.navbarConfigService
|
|
83
|
-
.getNavbarConfigs(this.serviceApiUrl)
|
|
84
|
-
.subscribe((/**
|
|
85
|
-
* @param {?} configs
|
|
86
|
-
* @return {?}
|
|
87
|
-
*/
|
|
88
|
-
function (configs) {
|
|
89
|
-
_this.navbarConfigs = configs.sort((/**
|
|
90
|
-
* @param {?} a
|
|
91
|
-
* @param {?} b
|
|
92
|
-
* @return {?}
|
|
93
|
-
*/
|
|
94
|
-
function (a, b) {
|
|
95
|
-
if (a.displayOrder < b.displayOrder) {
|
|
96
|
-
return -1;
|
|
97
|
-
}
|
|
98
|
-
else if (a.displayOrder > b.displayOrder) {
|
|
99
|
-
return 1;
|
|
100
|
-
}
|
|
101
|
-
return 0;
|
|
102
|
-
}));
|
|
103
|
-
}));
|
|
104
|
-
this.isAuthenticated = this.authnService.getAccount() ? true : false;
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* @return {?}
|
|
108
|
-
*/
|
|
109
|
-
SmartNavbarComponent.prototype.ngOnDestroy = /**
|
|
110
|
-
* @return {?}
|
|
111
|
-
*/
|
|
112
|
-
function () {
|
|
113
|
-
this.offenderSubscription.unsubscribe();
|
|
114
|
-
this.staffSubscription.unsubscribe();
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* @return {?}
|
|
118
|
-
*/
|
|
119
|
-
SmartNavbarComponent.prototype.logout = /**
|
|
120
|
-
* @return {?}
|
|
121
|
-
*/
|
|
122
|
-
function () {
|
|
123
|
-
this.xdmService.clearAll();
|
|
124
|
-
this.authnService.logout();
|
|
125
|
-
};
|
|
126
|
-
/**
|
|
127
|
-
* @param {?} config
|
|
128
|
-
* @return {?}
|
|
129
|
-
*/
|
|
130
|
-
SmartNavbarComponent.prototype.getAppModuleUrl = /**
|
|
131
|
-
* @param {?} config
|
|
132
|
-
* @return {?}
|
|
133
|
-
*/
|
|
134
|
-
function (config) {
|
|
135
|
-
return (config && this.selectedOffender && config.appModuleId === 'PPMAS') ?
|
|
136
|
-
config.url + "?skipAppMetadata=true&OffenderId=" + this.selectedOffender.offenderId : config.url;
|
|
137
|
-
};
|
|
138
|
-
/**
|
|
139
|
-
* @param {?} appModuleId
|
|
140
|
-
* @return {?}
|
|
141
|
-
*/
|
|
142
|
-
SmartNavbarComponent.prototype.hasAppModulePermission = /**
|
|
143
|
-
* @param {?} appModuleId
|
|
144
|
-
* @return {?}
|
|
145
|
-
*/
|
|
146
|
-
function (appModuleId) {
|
|
147
|
-
if (this.loginStaff && this.loginStaff.permissions && this.loginStaff.permissions.length > 0) {
|
|
148
|
-
return this.loginStaff.permissions.findIndex((/**
|
|
149
|
-
* @param {?} p
|
|
150
|
-
* @return {?}
|
|
151
|
-
*/
|
|
152
|
-
function (p) { return p.appModuleId === appModuleId; })) > -1;
|
|
153
|
-
}
|
|
154
|
-
return false;
|
|
155
|
-
};
|
|
156
|
-
Object.defineProperty(SmartNavbarComponent.prototype, "hasExternalUserRole", {
|
|
157
|
-
get: /**
|
|
158
|
-
* @return {?}
|
|
159
|
-
*/
|
|
160
|
-
function () {
|
|
161
|
-
if (this.loginStaff && this.loginStaff.roles && this.loginStaff.roles.length > 0) {
|
|
162
|
-
return this.loginStaff.roles.findIndex(this.isExternalRole) > -1;
|
|
163
|
-
}
|
|
164
|
-
return false;
|
|
165
|
-
},
|
|
166
|
-
enumerable: true,
|
|
167
|
-
configurable: true
|
|
168
|
-
});
|
|
169
|
-
/**
|
|
170
|
-
* @private
|
|
171
|
-
* @param {?} role
|
|
172
|
-
* @return {?}
|
|
173
|
-
*/
|
|
174
|
-
SmartNavbarComponent.prototype.isExternalRole = /**
|
|
175
|
-
* @private
|
|
176
|
-
* @param {?} role
|
|
177
|
-
* @return {?}
|
|
178
|
-
*/
|
|
179
|
-
function (role) {
|
|
180
|
-
switch (role.roleId) {
|
|
181
|
-
case 'EUDTL':
|
|
182
|
-
case 'EUDUSM':
|
|
183
|
-
case 'EUJDG':
|
|
184
|
-
case 'EUMPD':
|
|
185
|
-
case 'EUSOTV':
|
|
186
|
-
case 'EUUSA2':
|
|
187
|
-
case 'EUUSAO':
|
|
188
|
-
case 'EUUSPC':
|
|
189
|
-
return true;
|
|
190
|
-
default:
|
|
191
|
-
return false;
|
|
192
|
-
}
|
|
193
|
-
};
|
|
194
|
-
SmartNavbarComponent.decorators = [
|
|
195
|
-
{ type: Component, args: [{
|
|
196
|
-
selector: 'app-smart-navbar',
|
|
197
|
-
template: "<!--\r\n<a class=\"smart-navbar-toggle open\" href=\"#nav\">\r\n <i class=\"material-icons\">menu</i>\r\n</a>\r\n\r\n<nav id=\"nav\" role=\"navigation\" class=\"smart-navbar-container\">\r\n <a class=\"smart-navbar-toggle close\" href=\"#\">\r\n <i class=\"material-icons\">close</i>\r\n </a>\r\n\r\n <span *ngFor=\"let config of navbarConfigs\">\r\n <a mat-button class=\"smart-navbar-item\" \r\n *ngIf=\"(config.offenderSpecificFlag === false || selectedOffender) && isAuthenticated && loginStaff\" href=\"{{config.url}}\">{{config.name}}</a>\r\n </span>\r\n\r\n <button mat-button class=\"smart-navbar-item\" [matMenuTriggerFor]=\"menuTheme\">Set Theme</button>\r\n <mat-menu #menuTheme=\"matMenu\">\r\n <button mat-menu-item (click)=\"onSetTheme('blue-theme')\">Blue</button>\r\n <button mat-menu-item (click)=\"onSetTheme('red-theme')\">Red</button>\r\n <button mat-menu-item (click)=\"onSetTheme('green-theme')\">Green</button>\r\n </mat-menu>\r\n <button mat-button class=\"smart-navbar-item smart-navbar-last-item\" [matMenuTriggerFor]=\"menu\"\r\n *ngIf=\"isAuthenticated && loginStaff\">{{loginStaff.firstName + ' ' + loginStaff.lastName}}</button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item>Profile</button>\r\n <button mat-menu-item (click)=\"logout()\">Sign Out</button>\r\n </mat-menu>\r\n</nav>\r\n-->\r\n\r\n<!-- <nav mat-tab-nav-bar>\r\n <a mat-tab-link mat-flat-button *ngFor=\"let config of navbarConfigs\" [active]=\"appModuleId == config.appModuleId\" href=\"{{config.url}}\">{{config.name}}</a>\r\n</nav> -->\r\n\r\n<mat-tab-group class=\"nav-tab-group\" [selectedIndex]=\"null\">\r\n <ng-container *ngFor=\"let config of navbarConfigs\">\r\n <mat-tab\r\n *ngIf=\"\r\n ((hasExternalUserRole && hasAppModulePermission(config.appModuleId)) ||\r\n (!hasExternalUserRole && (config.offenderSpecificFlag === false || selectedOffender))) &&\r\n isAuthenticated &&\r\n loginStaff \r\n \"\r\n label=\"config.name\"\r\n >\r\n <ng-template mat-tab-label>\r\n <a\r\n mat-flat-button\r\n [ngClass]=\"{ 'main-menu-active': appModuleId == config.appModuleId }\"\r\n [href]=\"getAppModuleUrl(config)\"\r\n >{{ config.name }}</a\r\n >\r\n </ng-template>\r\n </mat-tab>\r\n </ng-container>\r\n</mat-tab-group>\r\n",
|
|
198
|
-
encapsulation: ViewEncapsulation.None,
|
|
199
|
-
styles: [".smart-navbar-container{display:flex;flex-wrap:wrap;flex-direction:column}.smart-navbar-item{font-size:1.2rem;line-height:1.2rem;padding:.5rem;background-color:var(--primary-color,#9fa8da);-webkit-text-decoration-line:none;text-decoration-line:none;display:block;text-align:left;border-radius:.3rem;margin:.1rem}.smart-navbar-last-item{margin-left:auto}.main-menu-active{border-bottom:3px solid #00008b!important;border-radius:0!important}.nav-tab-group.mat-primary .mat-ink-bar{background-color:inherit!important}.mat-tab-links{flex-direction:row;margin:4px;flex-wrap:wrap;font-family:Roboto,arial,sans-serif;font-size:13px}.mat-tab-link{min-width:16px!important}@media only screen and (min-width:768px){.smart-navbar-container{flex-direction:row}.smart-navbar-item{text-align:center}.smart-navbar-toggle{display:none}}@media only screen and (max-width:767px){#nav{position:fixed;top:0;bottom:0;width:300px;left:-340px;transition:transform .3s ease-in-out}#nav:target{transform:translateX(340px)}}.mat-tab-labels{display:flex!important;justify-content:flex-start!important}.mat-tab-label,.mat-tab-label.mat-tab-label-active{min-width:25px!important;padding:0 5px!important;justify-content:flex-start!important;font-weight:700}"]
|
|
200
|
-
}] }
|
|
201
|
-
];
|
|
202
|
-
/** @nocollapse */
|
|
203
|
-
SmartNavbarComponent.ctorParameters = function () { return [
|
|
204
|
-
{ type: SmartNavbarService },
|
|
205
|
-
{ type: XdmService },
|
|
206
|
-
{ type: MsalService }
|
|
207
|
-
]; };
|
|
208
|
-
SmartNavbarComponent.propDecorators = {
|
|
209
|
-
serviceApiUrl: [{ type: Input }],
|
|
210
|
-
appModuleId: [{ type: Input }],
|
|
211
|
-
tabGroup: [{ type: ViewChild, args: ['tabs',] }]
|
|
212
|
-
};
|
|
213
|
-
return SmartNavbarComponent;
|
|
214
|
-
}());
|
|
215
|
-
export { SmartNavbarComponent };
|
|
216
|
-
if (false) {
|
|
217
|
-
/** @type {?} */
|
|
218
|
-
SmartNavbarComponent.prototype.serviceApiUrl;
|
|
219
|
-
/** @type {?} */
|
|
220
|
-
SmartNavbarComponent.prototype.appModuleId;
|
|
221
|
-
/** @type {?} */
|
|
222
|
-
SmartNavbarComponent.prototype.tabGroup;
|
|
223
|
-
/** @type {?} */
|
|
224
|
-
SmartNavbarComponent.prototype.selectedOffender;
|
|
225
|
-
/** @type {?} */
|
|
226
|
-
SmartNavbarComponent.prototype.loginStaff;
|
|
227
|
-
/** @type {?} */
|
|
228
|
-
SmartNavbarComponent.prototype.offenderSubscription;
|
|
229
|
-
/** @type {?} */
|
|
230
|
-
SmartNavbarComponent.prototype.staffSubscription;
|
|
231
|
-
/** @type {?} */
|
|
232
|
-
SmartNavbarComponent.prototype.isAuthenticated;
|
|
233
|
-
/** @type {?} */
|
|
234
|
-
SmartNavbarComponent.prototype.navbarConfigs;
|
|
235
|
-
/**
|
|
236
|
-
* @type {?}
|
|
237
|
-
* @private
|
|
238
|
-
*/
|
|
239
|
-
SmartNavbarComponent.prototype.navbarConfigService;
|
|
240
|
-
/**
|
|
241
|
-
* @type {?}
|
|
242
|
-
* @private
|
|
243
|
-
*/
|
|
244
|
-
SmartNavbarComponent.prototype.xdmService;
|
|
245
|
-
/**
|
|
246
|
-
* @type {?}
|
|
247
|
-
* @private
|
|
248
|
-
*/
|
|
249
|
-
SmartNavbarComponent.prototype.authnService;
|
|
250
|
-
}
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUvIiwic291cmNlcyI6WyJsaWIvc21hcnQtbmF2YmFyL3NtYXJ0LW5hdmJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUlULEtBQUssRUFFTCxTQUFTLEVBRVQsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUTFEO0lBa0JFLDhCQUNVLG1CQUF1QyxFQUN2QyxVQUFzQixFQUV0QixZQUF5QjtRQUh6Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFFdEIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFkMUIsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFNL0Isb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFTckIsQ0FBQzs7OztJQUVKLDBDQUFXOzs7SUFBWDtRQUNFOzs7OztVQUtFO0lBQ0osQ0FBQzs7OztJQUVELHVDQUFROzs7SUFBUjtRQUFBLGlCQTRDQztRQTNDQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSTs7OztRQUFDLFVBQUMsZ0JBQWdCO1lBQzFELEtBQUksQ0FBQyxnQkFBZ0I7Z0JBQ25CLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLFVBQVU7b0JBQzdDLENBQUMsQ0FBQyxnQkFBZ0I7b0JBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDYixDQUFDLEVBQUMsQ0FBQztR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NkNBQW1DOzs7OztJQUdqQyxtREFBK0M7Ozs7O0lBQy9DLDBDQUE4Qjs7Ozs7SUFFOUIsNENBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgSW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIFZpZXdDaGlsZCxcclxuICBpc0Rldk1vZGUsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTbWFydE5hdmJhckNvbmZpZyB9IGZyb20gJy4vc21hcnQtbmF2YmFyLWNvbmZpZyc7XHJcbmltcG9ydCB7IFNtYXJ0TmF2YmFyU2VydmljZSB9IGZyb20gJy4vc21hcnQtbmF2YmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBYZG1TZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS94ZG0uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU2VsZWN0ZWRPZmZlbmRlcixcclxuICBMb2dpblN0YWZmLFxyXG4gIFJvbGUsXHJcbn0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zbWFydC1uYXZiYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1uYXZiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LW5hdmJhci5jb21wb25lbnQuY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0TmF2YmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgc2VydmljZUFwaVVybDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcE1vZHVsZUlkID0gJ1NNQVJUJztcclxuICBAVmlld0NoaWxkKCd0YWJzJykgdGFiR3JvdXA6IE1hdFRhYkdyb3VwO1xyXG4gIHNlbGVjdGVkT2ZmZW5kZXI6IFNlbGVjdGVkT2ZmZW5kZXI7XHJcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcclxuICBvZmZlbmRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHN0YWZmU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgaXNBdXRoZW50aWNhdGVkID0gZmFsc2U7XHJcblxyXG4gIG5hdmJhckNvbmZpZ3M6IFNtYXJ0TmF2YmFyQ29uZmlnW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuYXZiYXJDb25maWdTZXJ2aWNlOiBTbWFydE5hdmJhclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHhkbVNlcnZpY2U6IFhkbVNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgLypcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRUYWIpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRUYWI7XHJcbiAgICB9LCAxMDAwKTtcclxuICAgICovXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMueGRtU2VydmljZS5nZXRTZWxlY3RlZE9mZmVuZGVyKCkudGhlbigoc2VsZWN0ZWRPZmZlbmRlcikgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPVxyXG4gICAgICAgIHNlbGVjdGVkT2ZmZW5kZXIgJiYgc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkXHJcbiAgICAgICAgICA/IHNlbGVjdGVkT2ZmZW5kZXJcclxuICAgICAgICAgIDogbnVsbDtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMueGRtU2VydmljZS5nZXRMb2dpblN0YWZmKCkudGhlbigobG9naW5TdGFmZikgPT4ge1xyXG4gICAgICAvLyB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2dpblN0YWZmID0gbG9naW5TdGFmZiA/IGxvZ2luU3RhZmYgOiBudWxsO1xyXG4gICAgICAvLyB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub2ZmZW5kZXJTdWJzY3JpcHRpb24gPSB0aGlzLnhkbVNlcnZpY2VcclxuICAgICAgLmdldE9mZmVuZGVyVXBkYXRlKClcclxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRPZmZlbmRlcikgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IHNlbGVjdGVkT2ZmZW5kZXI7XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc3RhZmZTdWJzY3JpcHRpb24gPSB0aGlzLnhkbVNlcnZpY2VcclxuICAgICAgLmdldFN0YWZmVXBkYXRlKClcclxuICAgICAgLnN1YnNjcmliZSgobG9naW5TdGFmZikgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9naW5TdGFmZiA9IGxvZ2luU3RhZmY7XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubmF2YmFyQ29uZmlnU2VydmljZVxyXG4gICAgICAuZ2V0TmF2YmFyQ29uZmlncyh0aGlzLnNlcnZpY2VBcGlVcmwpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZ3MpID0+IHtcclxuICAgICAgICB0aGlzLm5hdmJhckNvbmZpZ3MgPSBjb25maWdzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgIGlmIChhLmRpc3BsYXlPcmRlciA8IGIuZGlzcGxheU9yZGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoYS5kaXNwbGF5T3JkZXIgPiBiLmRpc3BsYXlPcmRlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZCA9IHRoaXMuYXV0aG5TZXJ2aWNlLmdldEFjY291bnQoKSA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5vZmZlbmRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zdGFmZlN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvZ291dCgpOiB2b2lkIHtcclxuICAgIHRoaXMueGRtU2VydmljZS5jbGVhckFsbCgpO1xyXG4gICAgdGhpcy5hdXRoblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QXBwTW9kdWxlVXJsKGNvbmZpZzogU21hcnROYXZiYXJDb25maWcpIHtcclxuICAgIHJldHVybiAoY29uZmlnICYmIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciAmJiBjb25maWcuYXBwTW9kdWxlSWQgPT09ICdQUE1BUycpID9cclxuICAgICAgYCR7Y29uZmlnLnVybH0/c2tpcEFwcE1ldGFkYXRhPXRydWUmT2ZmZW5kZXJJZD0ke3RoaXMuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkfWAgOiBjb25maWcudXJsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc0FwcE1vZHVsZVBlcm1pc3Npb24oYXBwTW9kdWxlSWQpIHtcclxuICAgIGlmICh0aGlzLmxvZ2luU3RhZmYgJiYgdGhpcy5sb2dpblN0YWZmLnBlcm1pc3Npb25zICYmIHRoaXMubG9naW5TdGFmZi5wZXJtaXNzaW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvZ2luU3RhZmYucGVybWlzc2lvbnMuZmluZEluZGV4KHAgPT4gcC5hcHBNb2R1bGVJZCA9PT0gYXBwTW9kdWxlSWQpID4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoYXNFeHRlcm5hbFVzZXJSb2xlKCkge1xyXG4gICAgaWYgKHRoaXMubG9naW5TdGFmZiAmJiB0aGlzLmxvZ2luU3RhZmYucm9sZXMgJiYgdGhpcy5sb2dpblN0YWZmLnJvbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9naW5TdGFmZi5yb2xlcy5maW5kSW5kZXgodGhpcy5pc0V4dGVybmFsUm9sZSkgPiAtMTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFeHRlcm5hbFJvbGUocm9sZTogUm9sZSkge1xyXG4gICAgIHN3aXRjaCAocm9sZS5yb2xlSWQpIHtcclxuICAgICAgY2FzZSAnRVVEVEwnOlxyXG4gICAgICBjYXNlICdFVURVU00nOlxyXG4gICAgICBjYXNlICdFVUpERyc6XHJcbiAgICAgIGNhc2UgJ0VVTVBEJzpcclxuICAgICAgY2FzZSAnRVVTT1RWJzpcclxuICAgICAgY2FzZSAnRVVVU0EyJzpcclxuICAgICAgY2FzZSAnRVVVU0FPJzpcclxuICAgICAgY2FzZSAnRVVVU1BDJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBFVURUTFxyXG4vLyBFVURVU01cclxuLy8gRVVKREdcclxuXHJcbi8vIEVVTVBEXHJcbi8vIEVVU09UVlxyXG4vLyBFVVVTQTJcclxuXHJcbi8vIEVVVVNBT1xyXG4vLyBFVVVTUENcclxuIl19
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/smart-navbar/smart-navbar.service.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Injectable, isDevMode } from '@angular/core';
|
|
7
|
-
import { HttpClient } from '@angular/common/http';
|
|
8
|
-
import { map } from 'rxjs/operators';
|
|
9
|
-
var SmartNavbarService = /** @class */ (function () {
|
|
10
|
-
function SmartNavbarService(http) {
|
|
11
|
-
this.http = http;
|
|
12
|
-
}
|
|
13
|
-
/*
|
|
14
|
-
public getNavbarConfigs(): SmartNavbarConfig[] {
|
|
15
|
-
this.configs = [
|
|
16
|
-
{appModuleId: 'SMART', name: 'SMART', url: 'http://localhost:4200', offenderSpecific: false, displayOrder: 1 },
|
|
17
|
-
{appModuleId: 'OFFENDER', name: 'Offender', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 2 },
|
|
18
|
-
{appModuleId: 'SPRVSN', name: 'Supervision', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 3 },
|
|
19
|
-
];
|
|
20
|
-
|
|
21
|
-
return this.configs;
|
|
22
|
-
}
|
|
23
|
-
*/
|
|
24
|
-
/*
|
|
25
|
-
public getNavbarConfigs(serviceApiUrl: string): Observable<SmartNavbarConfig[]> {
|
|
26
|
-
return this.http.get<SmartNavbarConfig[]>(serviceApiUrl + '/AppModules');
|
|
27
|
-
}
|
|
28
|
-
*/
|
|
29
|
-
/*
|
|
30
|
-
public getNavbarConfigs(): SmartNavbarConfig[] {
|
|
31
|
-
this.configs = [
|
|
32
|
-
{appModuleId: 'SMART', name: 'SMART', url: 'http://localhost:4200', offenderSpecific: false, displayOrder: 1 },
|
|
33
|
-
{appModuleId: 'OFFENDER', name: 'Offender', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 2 },
|
|
34
|
-
{appModuleId: 'SPRVSN', name: 'Supervision', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 3 },
|
|
35
|
-
];
|
|
36
|
-
|
|
37
|
-
return this.configs;
|
|
38
|
-
}
|
|
39
|
-
*/
|
|
40
|
-
/*
|
|
41
|
-
public getNavbarConfigs(serviceApiUrl: string): Observable<SmartNavbarConfig[]> {
|
|
42
|
-
return this.http.get<SmartNavbarConfig[]>(serviceApiUrl + '/AppModules');
|
|
43
|
-
}
|
|
44
|
-
*/
|
|
45
|
-
/**
|
|
46
|
-
* @param {?} serviceApiUrl
|
|
47
|
-
* @return {?}
|
|
48
|
-
*/
|
|
49
|
-
SmartNavbarService.prototype.getNavbarConfigs = /*
|
|
50
|
-
public getNavbarConfigs(): SmartNavbarConfig[] {
|
|
51
|
-
this.configs = [
|
|
52
|
-
{appModuleId: 'SMART', name: 'SMART', url: 'http://localhost:4200', offenderSpecific: false, displayOrder: 1 },
|
|
53
|
-
{appModuleId: 'OFFENDER', name: 'Offender', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 2 },
|
|
54
|
-
{appModuleId: 'SPRVSN', name: 'Supervision', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 3 },
|
|
55
|
-
];
|
|
56
|
-
|
|
57
|
-
return this.configs;
|
|
58
|
-
}
|
|
59
|
-
*/
|
|
60
|
-
/*
|
|
61
|
-
public getNavbarConfigs(serviceApiUrl: string): Observable<SmartNavbarConfig[]> {
|
|
62
|
-
return this.http.get<SmartNavbarConfig[]>(serviceApiUrl + '/AppModules');
|
|
63
|
-
}
|
|
64
|
-
*/
|
|
65
|
-
/**
|
|
66
|
-
* @param {?} serviceApiUrl
|
|
67
|
-
* @return {?}
|
|
68
|
-
*/
|
|
69
|
-
function (serviceApiUrl) {
|
|
70
|
-
/** @type {?} */
|
|
71
|
-
var queryString = "\n {\n findAppModules {\n data {\n appModuleId\n name\n url\n offenderSpecificFlag\n displayOrder\n }\n }\n }";
|
|
72
|
-
/*
|
|
73
|
-
const httpHeaders = new HttpHeaders({
|
|
74
|
-
'Content-Type': 'application/json',
|
|
75
|
-
'Cache-Control': 'no-cache'
|
|
76
|
-
});
|
|
77
|
-
const options = {
|
|
78
|
-
headers: httpHeaders
|
|
79
|
-
};
|
|
80
|
-
*/
|
|
81
|
-
return this.http
|
|
82
|
-
.post(serviceApiUrl, { query: queryString })
|
|
83
|
-
.pipe(map((/**
|
|
84
|
-
* @param {?} __0
|
|
85
|
-
* @return {?}
|
|
86
|
-
*/
|
|
87
|
-
function (_a) {
|
|
88
|
-
var data = _a.data;
|
|
89
|
-
if (isDevMode()) {
|
|
90
|
-
console.log(data);
|
|
91
|
-
}
|
|
92
|
-
return data.findAppModules.data;
|
|
93
|
-
})));
|
|
94
|
-
};
|
|
95
|
-
SmartNavbarService.decorators = [
|
|
96
|
-
{ type: Injectable }
|
|
97
|
-
];
|
|
98
|
-
/** @nocollapse */
|
|
99
|
-
SmartNavbarService.ctorParameters = function () { return [
|
|
100
|
-
{ type: HttpClient }
|
|
101
|
-
]; };
|
|
102
|
-
return SmartNavbarService;
|
|
103
|
-
}());
|
|
104
|
-
export { SmartNavbarService };
|
|
105
|
-
if (false) {
|
|
106
|
-
/** @type {?} */
|
|
107
|
-
SmartNavbarService.prototype.configs;
|
|
108
|
-
/**
|
|
109
|
-
* @type {?}
|
|
110
|
-
* @private
|
|
111
|
-
*/
|
|
112
|
-
SmartNavbarService.prototype.http;
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbmF2YmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY3NtYXJ0L25nYy1zbWFydC1jb3JlLyIsInNvdXJjZXMiOlsibGliL3NtYXJ0LW5hdmJhci9zbWFydC1uYXZiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckM7SUFHRSw0QkFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUFHLENBQUM7SUFFeEM7Ozs7Ozs7Ozs7TUFVRTtJQUNGOzs7O01BSUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUVLLDZDQUFnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBdkIsVUFDRSxhQUFxQjs7WUFFZixXQUFXLEdBQUcsc09BV2Q7UUFFTjs7Ozs7Ozs7VUFRRTtRQUVGLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sYUFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQ2hELElBQUksQ0FDSCxHQUFHOzs7O1FBQUMsVUFBQyxFQUFRO2dCQUFOLGNBQUk7WUFDVCxJQUFJLFNBQVMsRUFBRSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkI7WUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQ2xDLENBQUMsRUFBQyxDQUNILENBQUM7SUFDTixDQUFDOztnQkExREYsVUFBVTs7OztnQkFORixVQUFVOztJQWlFbkIseUJBQUM7Q0FBQSxBQTNERCxJQTJEQztTQTFEWSxrQkFBa0I7OztJQUM3QixxQ0FBNkI7Ozs7O0lBQ2pCLGtDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFNtYXJ0TmF2YmFyQ29uZmlnIH0gZnJvbSAnLi9zbWFydC1uYXZiYXItY29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNtYXJ0TmF2YmFyU2VydmljZSB7XHJcbiAgY29uZmlnczogU21hcnROYXZiYXJDb25maWdbXTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XHJcblxyXG4gIC8qXHJcbiAgcHVibGljIGdldE5hdmJhckNvbmZpZ3MoKTogU21hcnROYXZiYXJDb25maWdbXSB7XHJcbiAgICAgIHRoaXMuY29uZmlncyA9IFtcclxuICAgICAgICAgIHthcHBNb2R1bGVJZDogJ1NNQVJUJywgbmFtZTogJ1NNQVJUJywgdXJsOiAnaHR0cDovL2xvY2FsaG9zdDo0MjAwJywgb2ZmZW5kZXJTcGVjaWZpYzogZmFsc2UsIGRpc3BsYXlPcmRlcjogMSB9LFxyXG4gICAgICAgICAge2FwcE1vZHVsZUlkOiAnT0ZGRU5ERVInLCBuYW1lOiAnT2ZmZW5kZXInLCB1cmw6ICdodHRwOi8vbG9jYWxob3N0OjQyMDAnLCBvZmZlbmRlclNwZWNpZmljOiB0cnVlLCBkaXNwbGF5T3JkZXI6IDIgfSxcclxuICAgICAgICAgIHthcHBNb2R1bGVJZDogJ1NQUlZTTicsIG5hbWU6ICdTdXBlcnZpc2lvbicsIHVybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6NDIwMCcsIG9mZmVuZGVyU3BlY2lmaWM6IHRydWUsIGRpc3BsYXlPcmRlcjogMyB9LFxyXG4gICAgICBdO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuY29uZmlncztcclxuICB9XHJcbiAgKi9cclxuICAvKlxyXG4gIHB1YmxpYyBnZXROYXZiYXJDb25maWdzKHNlcnZpY2VBcGlVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8U21hcnROYXZiYXJDb25maWdbXT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTbWFydE5hdmJhckNvbmZpZ1tdPihzZXJ2aWNlQXBpVXJsICsgJy9BcHBNb2R1bGVzJyk7XHJcbiAgfVxyXG4gICovXHJcblxyXG4gIHB1YmxpYyBnZXROYXZiYXJDb25maWdzKFxyXG4gICAgc2VydmljZUFwaVVybDogc3RyaW5nLFxyXG4gICk6IE9ic2VydmFibGU8U21hcnROYXZiYXJDb25maWdbXT4ge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBgXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmluZEFwcE1vZHVsZXMge1xyXG4gICAgICAgICAgICBkYXRhIHtcclxuICAgICAgICAgICAgICBhcHBNb2R1bGVJZFxyXG4gICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICB1cmxcclxuICAgICAgICAgICAgICBvZmZlbmRlclNwZWNpZmljRmxhZ1xyXG4gICAgICAgICAgICAgIGRpc3BsYXlPcmRlclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWA7XHJcblxyXG4gICAgLypcclxuICAgIGNvbnN0IGh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ0NhY2hlLUNvbnRyb2wnOiAnbm8tY2FjaGUnXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzXHJcbiAgICB9O1xyXG4gICAgKi9cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oc2VydmljZUFwaVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGRhdGEuZmluZEFwcE1vZHVsZXMuZGF0YTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
|