@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,317 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/smart-storage/xdm.service.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Injectable, Inject, isDevMode } from '@angular/core';
|
|
7
|
-
import { DOCUMENT } from '@angular/common';
|
|
8
|
-
import { Subject } from 'rxjs';
|
|
9
|
-
import { map } from 'rxjs/operators';
|
|
10
|
-
import { StorageKey, SMART_WEB_STORAGE_LISTENER_URL, SMART_DATA_SERVICE_URL, } from './smart-storage-model';
|
|
11
|
-
// import connectToChild from "penpal/lib/connectToChild";
|
|
12
|
-
import { connectToChild } from 'penpal';
|
|
13
|
-
import { HttpClient } from '@angular/common/http';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "@angular/common";
|
|
16
|
-
import * as i2 from "./smart-storage-model";
|
|
17
|
-
import * as i3 from "@angular/common/http";
|
|
18
|
-
export class XdmService {
|
|
19
|
-
/**
|
|
20
|
-
* @param {?} document
|
|
21
|
-
* @param {?} smartStorageListenerUrl
|
|
22
|
-
* @param {?} httpClient
|
|
23
|
-
* @param {?} smartDataServiceUrl
|
|
24
|
-
*/
|
|
25
|
-
constructor(document, smartStorageListenerUrl, httpClient, smartDataServiceUrl) {
|
|
26
|
-
this.document = document;
|
|
27
|
-
this.smartStorageListenerUrl = smartStorageListenerUrl;
|
|
28
|
-
this.httpClient = httpClient;
|
|
29
|
-
this.smartDataServiceUrl = smartDataServiceUrl;
|
|
30
|
-
this.offenderSubject = new Subject();
|
|
31
|
-
this.staffSubject = new Subject();
|
|
32
|
-
this.offenderQuerySubject = new Subject();
|
|
33
|
-
if (isDevMode) {
|
|
34
|
-
console.log('SmartStorage XdmService (Client) - constructor()');
|
|
35
|
-
}
|
|
36
|
-
this.init();
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* @private
|
|
40
|
-
* @return {?}
|
|
41
|
-
*/
|
|
42
|
-
init() {
|
|
43
|
-
/** @type {?} */
|
|
44
|
-
const frame = this.document.createElement('iframe');
|
|
45
|
-
frame.src = this.smartStorageListenerUrl;
|
|
46
|
-
frame.id = 'childframe';
|
|
47
|
-
frame.name = Math.random().toString();
|
|
48
|
-
frame.onload = null;
|
|
49
|
-
frame.style.visibility = 'hidden';
|
|
50
|
-
this.document.body.appendChild(frame);
|
|
51
|
-
this.connection = connectToChild({
|
|
52
|
-
iframe: frame,
|
|
53
|
-
debug: false,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* @private
|
|
58
|
-
* @param {?} staffId
|
|
59
|
-
* @return {?}
|
|
60
|
-
*/
|
|
61
|
-
getStaffOffenderListOptions(staffId) {
|
|
62
|
-
/** @type {?} */
|
|
63
|
-
const queryString = `{findvStaffOffenderListOptions(input:{
|
|
64
|
-
where:{
|
|
65
|
-
staffId: ${staffId}
|
|
66
|
-
}
|
|
67
|
-
}){
|
|
68
|
-
data{
|
|
69
|
-
offenderListOptionId
|
|
70
|
-
name
|
|
71
|
-
serviceApiFieldName
|
|
72
|
-
selectedFlag
|
|
73
|
-
}
|
|
74
|
-
} }`;
|
|
75
|
-
return this.httpClient
|
|
76
|
-
.post(this.smartDataServiceUrl, { query: queryString })
|
|
77
|
-
.pipe(map((/**
|
|
78
|
-
* @param {?} __0
|
|
79
|
-
* @return {?}
|
|
80
|
-
*/
|
|
81
|
-
({ data }) => {
|
|
82
|
-
data.findvStaffOffenderListOptions.data['offenderOptionListId'] =
|
|
83
|
-
data.findvStaffOffenderListOptions.data['offenderListOptionId'];
|
|
84
|
-
return data.findvStaffOffenderListOptions.data;
|
|
85
|
-
})));
|
|
86
|
-
/*return of([
|
|
87
|
-
{ offenderListOptionId: 'genderCode', name: '', selectedFlag: true }]);*/
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* @return {?}
|
|
91
|
-
*/
|
|
92
|
-
clearAll() {
|
|
93
|
-
this.connection.promise.then((/**
|
|
94
|
-
* @param {?} child
|
|
95
|
-
* @return {?}
|
|
96
|
-
*/
|
|
97
|
-
(child) => {
|
|
98
|
-
child.clearAll();
|
|
99
|
-
this.offenderSubject.next();
|
|
100
|
-
this.staffSubject.next();
|
|
101
|
-
}));
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* **********************************
|
|
105
|
-
* Offender
|
|
106
|
-
* ************************************
|
|
107
|
-
* @param {?} selectedOffender
|
|
108
|
-
* @return {?}
|
|
109
|
-
*/
|
|
110
|
-
setSelectedOffender(selectedOffender) {
|
|
111
|
-
this.connection.promise.then((/**
|
|
112
|
-
* @param {?} child
|
|
113
|
-
* @return {?}
|
|
114
|
-
*/
|
|
115
|
-
(child) => {
|
|
116
|
-
child.setSelectedOffender(selectedOffender);
|
|
117
|
-
this.offenderSubject.next(selectedOffender);
|
|
118
|
-
}));
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* @return {?}
|
|
122
|
-
*/
|
|
123
|
-
getSelectedOffender() {
|
|
124
|
-
return this.connection.promise.then((/**
|
|
125
|
-
* @param {?} child
|
|
126
|
-
* @return {?}
|
|
127
|
-
*/
|
|
128
|
-
(child) => child.getSelectedOffender(StorageKey.selectedOffender)));
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* @return {?}
|
|
132
|
-
*/
|
|
133
|
-
clearSelectedOffender() {
|
|
134
|
-
this.connection.promise.then((/**
|
|
135
|
-
* @param {?} child
|
|
136
|
-
* @return {?}
|
|
137
|
-
*/
|
|
138
|
-
(child) => {
|
|
139
|
-
child.clearSelectedOffender();
|
|
140
|
-
this.offenderSubject.next();
|
|
141
|
-
}));
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* @return {?}
|
|
145
|
-
*/
|
|
146
|
-
getOffenderUpdate() {
|
|
147
|
-
return this.offenderSubject.asObservable();
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* *********************************************************************
|
|
151
|
-
* Staff
|
|
152
|
-
* **********************************************************************
|
|
153
|
-
* @param {?} loginStaff
|
|
154
|
-
* @return {?}
|
|
155
|
-
*/
|
|
156
|
-
setLoginStaff(loginStaff) {
|
|
157
|
-
this.connection.promise.then((/**
|
|
158
|
-
* @param {?} child
|
|
159
|
-
* @return {?}
|
|
160
|
-
*/
|
|
161
|
-
(child) => {
|
|
162
|
-
child.setLoginStaff(loginStaff);
|
|
163
|
-
this.staffSubject.next(loginStaff);
|
|
164
|
-
}));
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* @return {?}
|
|
168
|
-
*/
|
|
169
|
-
getLoginStaff() {
|
|
170
|
-
return this.connection.promise.then((/**
|
|
171
|
-
* @param {?} child
|
|
172
|
-
* @return {?}
|
|
173
|
-
*/
|
|
174
|
-
(child) => child.getLoginStaff(StorageKey.loginStaff)));
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* @return {?}
|
|
178
|
-
*/
|
|
179
|
-
clearLoginStaff() {
|
|
180
|
-
this.connection.promise.then((/**
|
|
181
|
-
* @param {?} child
|
|
182
|
-
* @return {?}
|
|
183
|
-
*/
|
|
184
|
-
(child) => {
|
|
185
|
-
child.clearLoginStaff();
|
|
186
|
-
this.staffSubject.next();
|
|
187
|
-
}));
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* @return {?}
|
|
191
|
-
*/
|
|
192
|
-
getStaffUpdate() {
|
|
193
|
-
return this.staffSubject.asObservable();
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* @return {?}
|
|
197
|
-
*/
|
|
198
|
-
refreshLoginStaffOptions() {
|
|
199
|
-
this.getLoginStaff().then((/**
|
|
200
|
-
* @param {?} oldLoginStaff
|
|
201
|
-
* @return {?}
|
|
202
|
-
*/
|
|
203
|
-
(oldLoginStaff) => {
|
|
204
|
-
this.getStaffOffenderListOptions(oldLoginStaff.staffId).subscribe((/**
|
|
205
|
-
* @param {?} optionData
|
|
206
|
-
* @return {?}
|
|
207
|
-
*/
|
|
208
|
-
(optionData) => {
|
|
209
|
-
console.log(optionData);
|
|
210
|
-
oldLoginStaff.options = optionData;
|
|
211
|
-
this.setLoginStaff(oldLoginStaff);
|
|
212
|
-
}));
|
|
213
|
-
}));
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* *********************************************************************
|
|
217
|
-
* Offender Query
|
|
218
|
-
* **********************************************************************
|
|
219
|
-
* @param {?} offenderQuery
|
|
220
|
-
* @return {?}
|
|
221
|
-
*/
|
|
222
|
-
setOffenderQuery(offenderQuery) {
|
|
223
|
-
this.connection.promise.then((/**
|
|
224
|
-
* @param {?} child
|
|
225
|
-
* @return {?}
|
|
226
|
-
*/
|
|
227
|
-
(child) => {
|
|
228
|
-
child.setOffenderQuery(offenderQuery);
|
|
229
|
-
this.offenderQuerySubject.next(offenderQuery);
|
|
230
|
-
}));
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* @return {?}
|
|
234
|
-
*/
|
|
235
|
-
getOffenderQuery() {
|
|
236
|
-
return this.connection.promise.then((/**
|
|
237
|
-
* @param {?} child
|
|
238
|
-
* @return {?}
|
|
239
|
-
*/
|
|
240
|
-
(child) => child.getOffenderQuery(StorageKey.offenderQuery)));
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* @return {?}
|
|
244
|
-
*/
|
|
245
|
-
clearOffenderQuery() {
|
|
246
|
-
this.connection.promise.then((/**
|
|
247
|
-
* @param {?} child
|
|
248
|
-
* @return {?}
|
|
249
|
-
*/
|
|
250
|
-
(child) => {
|
|
251
|
-
child.clearOffenderQuery();
|
|
252
|
-
this.offenderQuerySubject.next();
|
|
253
|
-
}));
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* @return {?}
|
|
257
|
-
*/
|
|
258
|
-
getOffenderQueryUpdate() {
|
|
259
|
-
return this.offenderQuerySubject.asObservable();
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
XdmService.decorators = [
|
|
263
|
-
{ type: Injectable, args: [{
|
|
264
|
-
providedIn: 'root',
|
|
265
|
-
},] }
|
|
266
|
-
];
|
|
267
|
-
/** @nocollapse */
|
|
268
|
-
XdmService.ctorParameters = () => [
|
|
269
|
-
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
|
|
270
|
-
{ type: String, decorators: [{ type: Inject, args: [SMART_WEB_STORAGE_LISTENER_URL,] }] },
|
|
271
|
-
{ type: HttpClient },
|
|
272
|
-
{ type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] }
|
|
273
|
-
];
|
|
274
|
-
/** @nocollapse */ XdmService.ngInjectableDef = i0.defineInjectable({ factory: function XdmService_Factory() { return new XdmService(i0.inject(i1.DOCUMENT), i0.inject(i2.SMART_WEB_STORAGE_LISTENER_URL), i0.inject(i3.HttpClient), i0.inject(i2.SMART_DATA_SERVICE_URL)); }, token: XdmService, providedIn: "root" });
|
|
275
|
-
if (false) {
|
|
276
|
-
/**
|
|
277
|
-
* @type {?}
|
|
278
|
-
* @private
|
|
279
|
-
*/
|
|
280
|
-
XdmService.prototype.offenderSubject;
|
|
281
|
-
/**
|
|
282
|
-
* @type {?}
|
|
283
|
-
* @private
|
|
284
|
-
*/
|
|
285
|
-
XdmService.prototype.staffSubject;
|
|
286
|
-
/**
|
|
287
|
-
* @type {?}
|
|
288
|
-
* @private
|
|
289
|
-
*/
|
|
290
|
-
XdmService.prototype.offenderQuerySubject;
|
|
291
|
-
/**
|
|
292
|
-
* @type {?}
|
|
293
|
-
* @private
|
|
294
|
-
*/
|
|
295
|
-
XdmService.prototype.connection;
|
|
296
|
-
/**
|
|
297
|
-
* @type {?}
|
|
298
|
-
* @private
|
|
299
|
-
*/
|
|
300
|
-
XdmService.prototype.document;
|
|
301
|
-
/**
|
|
302
|
-
* @type {?}
|
|
303
|
-
* @private
|
|
304
|
-
*/
|
|
305
|
-
XdmService.prototype.smartStorageListenerUrl;
|
|
306
|
-
/**
|
|
307
|
-
* @type {?}
|
|
308
|
-
* @private
|
|
309
|
-
*/
|
|
310
|
-
XdmService.prototype.httpClient;
|
|
311
|
-
/**
|
|
312
|
-
* @type {?}
|
|
313
|
-
* @private
|
|
314
|
-
*/
|
|
315
|
-
XdmService.prototype.smartDataServiceUrl;
|
|
316
|
-
}
|
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGRtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY3NtYXJ0L25nYy1zbWFydC1jb3JlLyIsInNvdXJjZXMiOlsibGliL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFJTCxVQUFVLEVBQ1YsOEJBQThCLEVBQzlCLHNCQUFzQixHQUV2QixNQUFNLHVCQUF1QixDQUFDOztBQUcvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFLbEQsTUFBTSxPQUFPLFVBQVU7Ozs7Ozs7SUFNckIsWUFDNEIsUUFBYSxFQUUvQix1QkFBK0IsRUFDL0IsVUFBc0IsRUFDVSxtQkFBbUI7UUFKakMsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUUvQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQVE7UUFDL0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBQTtRQVZyRCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFvQixDQUFDO1FBQ2xELGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUN6Qyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQVUxRCxJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0RBQWtELENBQUMsQ0FBQztTQUNqRTtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7Ozs7O0lBRU8sSUFBSTs7Y0FDSixLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ25ELEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQ3pDLEtBQUssQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxjQUFjLENBQUM7WUFDL0IsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUVPLDJCQUEyQixDQUNqQyxPQUFlOztjQUVULFdBQVcsR0FBRzs7cUJBRUgsT0FBTzs7Ozs7Ozs7O1FBU3BCO1FBQ0osT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixJQUFJLENBQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzNELElBQUksQ0FDSCxHQUFHOzs7O1FBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO2dCQUM3RCxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDbEUsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDO1FBQ2pELENBQUMsRUFBQyxDQUNILENBQUM7UUFDSjttRkFDMkU7SUFDN0UsQ0FBQzs7OztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJOzs7O1FBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNyQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7Ozs7SUFLTSxtQkFBbUIsQ0FBQyxnQkFBa0M7UUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSTs7OztRQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFTSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJOzs7O1FBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM1QyxLQUFLLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQ3ZELENBQUM7SUFDSixDQUFDOzs7O0lBRU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzs7Ozs7OztJQUtNLGFBQWEsQ0FBQyxVQUFzQjtRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJOzs7O1FBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNyQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJOzs7O1FBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM1QyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFDM0MsQ0FBQztJQUNKLENBQUM7Ozs7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7Ozs7SUFFTSx3QkFBd0I7UUFDN0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUzs7OztZQUMvRCxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3hCLGFBQWEsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsRUFDRixDQUFDO1FBQ0osQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7OztJQUtNLGdCQUFnQixDQUFDLGFBQTRCO1FBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQzVDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQ2pELENBQUM7SUFDSixDQUFDOzs7O0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFTSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsQ0FBQzs7O1lBcEtGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs0Q0FRSSxNQUFNLFNBQUMsUUFBUTt5Q0FDZixNQUFNLFNBQUMsOEJBQThCO1lBYmpDLFVBQVU7NENBZ0JkLE1BQU0sU0FBQyxzQkFBc0I7Ozs7Ozs7O0lBVmhDLHFDQUEwRDs7Ozs7SUFDMUQsa0NBQWlEOzs7OztJQUNqRCwwQ0FBNEQ7Ozs7O0lBQzVELGdDQUF3Qjs7Ozs7SUFHdEIsOEJBQXVDOzs7OztJQUN2Qyw2Q0FDdUM7Ozs7O0lBQ3ZDLGdDQUE4Qjs7Ozs7SUFDOUIseUNBQTJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBTZWxlY3RlZE9mZmVuZGVyLFxyXG4gIExvZ2luU3RhZmYsXHJcbiAgT2ZmZW5kZXJRdWVyeSxcclxuICBTdG9yYWdlS2V5LFxyXG4gIFNNQVJUX1dFQl9TVE9SQUdFX0xJU1RFTkVSX1VSTCxcclxuICBTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMLFxyXG4gIE9wdGlvbixcclxufSBmcm9tICcuL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xyXG5cclxuLy8gaW1wb3J0IGNvbm5lY3RUb0NoaWxkIGZyb20gXCJwZW5wYWwvbGliL2Nvbm5lY3RUb0NoaWxkXCI7XHJcbmltcG9ydCB7IGNvbm5lY3RUb0NoaWxkIH0gZnJvbSAncGVucGFsJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYZG1TZXJ2aWNlIHtcclxuICBwcml2YXRlIG9mZmVuZGVyU3ViamVjdCA9IG5ldyBTdWJqZWN0PFNlbGVjdGVkT2ZmZW5kZXI+KCk7XHJcbiAgcHJpdmF0ZSBzdGFmZlN1YmplY3QgPSBuZXcgU3ViamVjdDxMb2dpblN0YWZmPigpO1xyXG4gIHByaXZhdGUgb2ZmZW5kZXJRdWVyeVN1YmplY3QgPSBuZXcgU3ViamVjdDxPZmZlbmRlclF1ZXJ5PigpO1xyXG4gIHByaXZhdGUgY29ubmVjdGlvbjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcclxuICAgIEBJbmplY3QoU01BUlRfV0VCX1NUT1JBR0VfTElTVEVORVJfVVJMKVxyXG4gICAgcHJpdmF0ZSBzbWFydFN0b3JhZ2VMaXN0ZW5lclVybDogc3RyaW5nLFxyXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgQEluamVjdChTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMKSBwcml2YXRlIHNtYXJ0RGF0YVNlcnZpY2VVcmwsXHJcbiAgKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTbWFydFN0b3JhZ2UgWGRtU2VydmljZSAoQ2xpZW50KSAtIGNvbnN0cnVjdG9yKCknKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgZnJhbWUgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xyXG4gICAgZnJhbWUuc3JjID0gdGhpcy5zbWFydFN0b3JhZ2VMaXN0ZW5lclVybDtcclxuICAgIGZyYW1lLmlkID0gJ2NoaWxkZnJhbWUnO1xyXG4gICAgZnJhbWUubmFtZSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKTtcclxuICAgIGZyYW1lLm9ubG9hZCA9IG51bGw7XHJcbiAgICBmcmFtZS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XHJcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpO1xyXG5cclxuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbm5lY3RUb0NoaWxkKHtcclxuICAgICAgaWZyYW1lOiBmcmFtZSxcclxuICAgICAgZGVidWc6IGZhbHNlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucyhcclxuICAgIHN0YWZmSWQ6IG51bWJlcixcclxuICApOiBPYnNlcnZhYmxlPEFycmF5PE9wdGlvbj4+IHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYHtmaW5kdlN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucyhpbnB1dDp7XHJcbiAgICAgICAgd2hlcmU6e1xyXG4gICAgICAgICAgc3RhZmZJZDogJHtzdGFmZklkfVxyXG4gICAgICAgIH1cclxuICAgICAgfSl7XHJcbiAgICAgICAgZGF0YXtcclxuICAgICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXHJcbiAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICBzZXJ2aWNlQXBpRmllbGROYW1lXHJcbiAgICAgICAgICBzZWxlY3RlZEZsYWdcclxuICAgICAgICB9XHJcbiAgICB9IH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc21hcnREYXRhU2VydmljZVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4ge1xyXG4gICAgICAgICAgZGF0YS5maW5kdlN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucy5kYXRhWydvZmZlbmRlck9wdGlvbkxpc3RJZCddID1cclxuICAgICAgICAgICAgZGF0YS5maW5kdlN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucy5kYXRhWydvZmZlbmRlckxpc3RPcHRpb25JZCddO1xyXG4gICAgICAgICAgcmV0dXJuIGRhdGEuZmluZHZTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnMuZGF0YTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICAgIC8qcmV0dXJuIG9mKFtcclxuICAgICAgeyBvZmZlbmRlckxpc3RPcHRpb25JZDogJ2dlbmRlckNvZGUnLCBuYW1lOiAnJywgc2VsZWN0ZWRGbGFnOiB0cnVlIH1dKTsqL1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyQWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uLnByb21pc2UudGhlbigoY2hpbGQpID0+IHtcclxuICAgICAgY2hpbGQuY2xlYXJBbGwoKTtcclxuICAgICAgdGhpcy5vZmZlbmRlclN1YmplY3QubmV4dCgpO1xyXG4gICAgICB0aGlzLnN0YWZmU3ViamVjdC5uZXh0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICogT2ZmZW5kZXJcclxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgcHVibGljIHNldFNlbGVjdGVkT2ZmZW5kZXIoc2VsZWN0ZWRPZmZlbmRlcjogU2VsZWN0ZWRPZmZlbmRlcik6IHZvaWQge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uLnByb21pc2UudGhlbigoY2hpbGQpID0+IHtcclxuICAgICAgY2hpbGQuc2V0U2VsZWN0ZWRPZmZlbmRlcihzZWxlY3RlZE9mZmVuZGVyKTtcclxuICAgICAgdGhpcy5vZmZlbmRlclN1YmplY3QubmV4dChzZWxlY3RlZE9mZmVuZGVyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkT2ZmZW5kZXIoKTogUHJvbWlzZTxTZWxlY3RlZE9mZmVuZGVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLnByb21pc2UudGhlbigoY2hpbGQpID0+XHJcbiAgICAgIGNoaWxkLmdldFNlbGVjdGVkT2ZmZW5kZXIoU3RvcmFnZUtleS5zZWxlY3RlZE9mZmVuZGVyKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJTZWxlY3RlZE9mZmVuZGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uLnByb21pc2UudGhlbigoY2hpbGQpID0+IHtcclxuICAgICAgY2hpbGQuY2xlYXJTZWxlY3RlZE9mZmVuZGVyKCk7XHJcbiAgICAgIHRoaXMub2ZmZW5kZXJTdWJqZWN0Lm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE9mZmVuZGVyVXBkYXRlKCk6IE9ic2VydmFibGU8U2VsZWN0ZWRPZmZlbmRlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMub2ZmZW5kZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAqIFN0YWZmXHJcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuICBwdWJsaWMgc2V0TG9naW5TdGFmZihsb2dpblN0YWZmOiBMb2dpblN0YWZmKSB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT4ge1xyXG4gICAgICBjaGlsZC5zZXRMb2dpblN0YWZmKGxvZ2luU3RhZmYpO1xyXG4gICAgICB0aGlzLnN0YWZmU3ViamVjdC5uZXh0KGxvZ2luU3RhZmYpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TG9naW5TdGFmZigpOiBQcm9taXNlPExvZ2luU3RhZmY+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT5cclxuICAgICAgY2hpbGQuZ2V0TG9naW5TdGFmZihTdG9yYWdlS2V5LmxvZ2luU3RhZmYpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckxvZ2luU3RhZmYoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT4ge1xyXG4gICAgICBjaGlsZC5jbGVhckxvZ2luU3RhZmYoKTtcclxuICAgICAgdGhpcy5zdGFmZlN1YmplY3QubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RhZmZVcGRhdGUoKTogT2JzZXJ2YWJsZTxMb2dpblN0YWZmPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGFmZlN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaExvZ2luU3RhZmZPcHRpb25zKCkge1xyXG4gICAgdGhpcy5nZXRMb2dpblN0YWZmKCkudGhlbigob2xkTG9naW5TdGFmZikgPT4ge1xyXG4gICAgICB0aGlzLmdldFN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucyhvbGRMb2dpblN0YWZmLnN0YWZmSWQpLnN1YnNjcmliZShcclxuICAgICAgICAob3B0aW9uRGF0YSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2cob3B0aW9uRGF0YSk7XHJcbiAgICAgICAgICBvbGRMb2dpblN0YWZmLm9wdGlvbnMgPSBvcHRpb25EYXRhO1xyXG4gICAgICAgICAgdGhpcy5zZXRMb2dpblN0YWZmKG9sZExvZ2luU3RhZmYpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgKiBPZmZlbmRlciBRdWVyeVxyXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgcHVibGljIHNldE9mZmVuZGVyUXVlcnkob2ZmZW5kZXJRdWVyeTogT2ZmZW5kZXJRdWVyeSkge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uLnByb21pc2UudGhlbigoY2hpbGQpID0+IHtcclxuICAgICAgY2hpbGQuc2V0T2ZmZW5kZXJRdWVyeShvZmZlbmRlclF1ZXJ5KTtcclxuICAgICAgdGhpcy5vZmZlbmRlclF1ZXJ5U3ViamVjdC5uZXh0KG9mZmVuZGVyUXVlcnkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0T2ZmZW5kZXJRdWVyeSgpOiBQcm9taXNlPE9mZmVuZGVyUXVlcnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT5cclxuICAgICAgY2hpbGQuZ2V0T2ZmZW5kZXJRdWVyeShTdG9yYWdlS2V5Lm9mZmVuZGVyUXVlcnkpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhck9mZmVuZGVyUXVlcnkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT4ge1xyXG4gICAgICBjaGlsZC5jbGVhck9mZmVuZGVyUXVlcnkoKTtcclxuICAgICAgdGhpcy5vZmZlbmRlclF1ZXJ5U3ViamVjdC5uZXh0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRPZmZlbmRlclF1ZXJ5VXBkYXRlKCk6IE9ic2VydmFibGU8T2ZmZW5kZXJRdWVyeT4ge1xyXG4gICAgcmV0dXJuIHRoaXMub2ZmZW5kZXJRdWVyeVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2015/public-api.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: public-api.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/*
|
|
7
|
-
* Public API Surface of ngc-smart-core
|
|
8
|
-
*/
|
|
9
|
-
export { NgcSmartCoreModule } from './lib/ngc-smart-core.module';
|
|
10
|
-
export { SmartAuthService } from './lib/smart-auth/smart-auth.service';
|
|
11
|
-
export { LoginStaffResolverService } from './lib/smart-auth/smart-login-staff-resolver.service';
|
|
12
|
-
export { SelectedOffenderResolverService } from './lib/smart-auth/smart-selected-offender-resolver.service';
|
|
13
|
-
export { SmartErrorComponent } from './lib/smart-auth/smart-error.component';
|
|
14
|
-
export { SmartNavbarService } from './lib/smart-navbar/smart-navbar.service';
|
|
15
|
-
export {} from './lib/smart-navbar/smart-navbar-config';
|
|
16
|
-
export { XdmService } from './lib/smart-storage/xdm.service';
|
|
17
|
-
export { Permission, Role, Option, LoginStaff, SelectedOffender, OffenderQuery, StorageKey, SMART_WEB_STORAGE_LISTENER_URL, SMART_WEB_PORTAL_URL, SMART_DATA_SERVICE_URL, SMART_DOMAIN_FORMAT } from './lib/smart-storage/smart-storage-model';
|
|
18
|
-
export { SmartStaffOffenderOptionsComponent } from './lib/smart-staff-offender-options/smart-staff-offender-options.component';
|
|
19
|
-
export { SmartStaffOffenderOptionsResolverService } from './lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service';
|
|
20
|
-
export { AccessType } from './lib/smart-auth/smart-access-control-config';
|
|
21
|
-
export { SmartAuthorizationGuard } from './lib/smart-auth/smart-authorization-guard.service';
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsbUNBQWMsNkJBQTZCLENBQUM7QUFDNUMsaUNBQWMscUNBQXFDLENBQUM7QUFDcEQsMENBQWMscURBQXFELENBQUM7QUFDcEUsZ0RBQWMsMkRBQTJELENBQUM7QUFDMUUsb0NBQWMsd0NBQXdDLENBQUM7QUFDdkQsbUNBQWMseUNBQXlDLENBQUM7QUFDeEQsZUFBYyx3Q0FBd0MsQ0FBQztBQUN2RCwyQkFBYyxpQ0FBaUMsQ0FBQztBQUNoRCxxTUFBYyx5Q0FBeUMsQ0FBQztBQUN4RCxtREFBYywyRUFBMkUsQ0FBQztBQUMxRix5REFBYyxrRkFBa0YsQ0FBQztBQUNqRywyQkFBYyw4Q0FBOEMsQ0FBQztBQUM3RCx3Q0FBYyxvREFBb0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ2Mtc21hcnQtY29yZVxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nYy1zbWFydC1jb3JlLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NtYXJ0LWF1dGgvc21hcnQtYXV0aC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtYXV0aC9zbWFydC1sb2dpbi1zdGFmZi1yZXNvbHZlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtYXV0aC9zbWFydC1zZWxlY3RlZC1vZmZlbmRlci1yZXNvbHZlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtYXV0aC9zbWFydC1lcnJvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbWFydC1uYXZiYXIvc21hcnQtbmF2YmFyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbWFydC1uYXZiYXIvc21hcnQtbmF2YmFyLWNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbWFydC1zdG9yYWdlL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zLXJlc29sdmVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbWFydC1hdXRoL3NtYXJ0LWFjY2Vzcy1jb250cm9sLWNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NtYXJ0LWF1dGgvc21hcnQtYXV0aG9yaXphdGlvbi1ndWFyZC5zZXJ2aWNlJztcclxuXHJcbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: csmart-ngc-smart-core.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Generated bundle index. Do not edit.
|
|
8
|
-
*/
|
|
9
|
-
export { NgcSmartCoreModule, SmartAuthService, LoginStaffResolverService, SelectedOffenderResolverService, SmartErrorComponent, SmartNavbarService, XdmService, Permission, Role, Option, LoginStaff, SelectedOffender, OffenderQuery, StorageKey, SMART_WEB_STORAGE_LISTENER_URL, SMART_WEB_PORTAL_URL, SMART_DATA_SERVICE_URL, SMART_DOMAIN_FORMAT, SmartStaffOffenderOptionsComponent, SmartStaffOffenderOptionsResolverService, AccessType, SmartAuthorizationGuard } from './public-api';
|
|
10
|
-
export { SmartAccessControlDirective as ɵe } from './lib/smart-auth/smart-access-control.directive';
|
|
11
|
-
export { SmartNavbarComponent as ɵc } from './lib/smart-navbar/smart-navbar.component';
|
|
12
|
-
export { SmartOffenderHeaderComponent as ɵa } from './lib/smart-offender-header/smart-offender-header.component';
|
|
13
|
-
export { SmartOffenderHeaderService as ɵb } from './lib/smart-offender-header/smart-offender-header.service';
|
|
14
|
-
export { SmartStaffOffenderOptionsService as ɵd } from './lib/smart-staff-offender-options/smart-staff-offender-options.service';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NtYXJ0LW5nYy1zbWFydC1jb3JlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImNzbWFydC1uZ2Mtc21hcnQtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLCtjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFDbEcsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyw0QkFBNEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUMvRyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDM0csT0FBTyxFQUFDLGdDQUFnQyxJQUFJLEVBQUUsRUFBQyxNQUFNLHlFQUF5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge1NtYXJ0QWNjZXNzQ29udHJvbERpcmVjdGl2ZSBhcyDJtWV9IGZyb20gJy4vbGliL3NtYXJ0LWF1dGgvc21hcnQtYWNjZXNzLWNvbnRyb2wuZGlyZWN0aXZlJztcbmV4cG9ydCB7U21hcnROYXZiYXJDb21wb25lbnQgYXMgybVjfSBmcm9tICcuL2xpYi9zbWFydC1uYXZiYXIvc21hcnQtbmF2YmFyLmNvbXBvbmVudCc7XG5leHBvcnQge1NtYXJ0T2ZmZW5kZXJIZWFkZXJDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9zbWFydC1vZmZlbmRlci1oZWFkZXIvc21hcnQtb2ZmZW5kZXItaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQge1NtYXJ0T2ZmZW5kZXJIZWFkZXJTZXJ2aWNlIGFzIMm1Yn0gZnJvbSAnLi9saWIvc21hcnQtb2ZmZW5kZXItaGVhZGVyL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci5zZXJ2aWNlJztcbmV4cG9ydCB7U21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2UgYXMgybVkfSBmcm9tICcuL2xpYi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuc2VydmljZSc7Il19
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/ngc-smart-core.module.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { NgModule } from '@angular/core';
|
|
7
|
-
import { CommonModule } from '@angular/common';
|
|
8
|
-
import { MatButtonModule, MatMenuModule, MatTabsModule, MatSelectModule, MatCheckboxModule, MatCardModule, MatSnackBar, } from '@angular/material';
|
|
9
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
10
|
-
import { SmartOffenderHeaderComponent } from './smart-offender-header/smart-offender-header.component';
|
|
11
|
-
import { SmartNavbarComponent } from './smart-navbar/smart-navbar.component';
|
|
12
|
-
import { SmartNavbarService } from './smart-navbar/smart-navbar.service';
|
|
13
|
-
import { SmartErrorComponent } from './smart-auth/smart-error.component';
|
|
14
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
15
|
-
import { SmartOffenderHeaderService } from './smart-offender-header/smart-offender-header.service';
|
|
16
|
-
import { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';
|
|
17
|
-
// import { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';
|
|
18
|
-
import { SmartStaffOffenderOptionsService } from './smart-staff-offender-options/smart-staff-offender-options.service';
|
|
19
|
-
import { SmartAccessControlDirective } from './smart-auth/smart-access-control.directive';
|
|
20
|
-
import { SmartAuthorizationGuard } from './smart-auth/smart-authorization-guard.service';
|
|
21
|
-
var NgcSmartCoreModule = /** @class */ (function () {
|
|
22
|
-
function NgcSmartCoreModule() {
|
|
23
|
-
}
|
|
24
|
-
NgcSmartCoreModule.decorators = [
|
|
25
|
-
{ type: NgModule, args: [{
|
|
26
|
-
declarations: [
|
|
27
|
-
SmartOffenderHeaderComponent,
|
|
28
|
-
SmartNavbarComponent,
|
|
29
|
-
SmartErrorComponent,
|
|
30
|
-
SmartStaffOffenderOptionsComponent,
|
|
31
|
-
SmartAccessControlDirective,
|
|
32
|
-
],
|
|
33
|
-
imports: [
|
|
34
|
-
CommonModule,
|
|
35
|
-
HttpClientModule,
|
|
36
|
-
MatButtonModule,
|
|
37
|
-
MatMenuModule,
|
|
38
|
-
MatTabsModule,
|
|
39
|
-
MatSelectModule,
|
|
40
|
-
MatCardModule,
|
|
41
|
-
MatCheckboxModule,
|
|
42
|
-
ReactiveFormsModule,
|
|
43
|
-
],
|
|
44
|
-
exports: [
|
|
45
|
-
SmartOffenderHeaderComponent,
|
|
46
|
-
SmartNavbarComponent,
|
|
47
|
-
SmartErrorComponent,
|
|
48
|
-
SmartStaffOffenderOptionsComponent,
|
|
49
|
-
SmartAccessControlDirective,
|
|
50
|
-
],
|
|
51
|
-
providers: [
|
|
52
|
-
SmartNavbarService,
|
|
53
|
-
SmartOffenderHeaderService,
|
|
54
|
-
SmartStaffOffenderOptionsService,
|
|
55
|
-
SmartAuthorizationGuard,
|
|
56
|
-
MatSnackBar,
|
|
57
|
-
],
|
|
58
|
-
},] }
|
|
59
|
-
];
|
|
60
|
-
return NgcSmartCoreModule;
|
|
61
|
-
}());
|
|
62
|
-
export { NgcSmartCoreModule };
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdjLXNtYXJ0LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9uZ2Mtc21hcnQtY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsZUFBZSxFQUdmLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDbkcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUVBQXVFLENBQUM7O0FBRTNILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXpGO0lBQUE7SUFrQ2lDLENBQUM7O2dCQWxDakMsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiw0QkFBNEI7d0JBQzVCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQ0FBa0M7d0JBQ2xDLDJCQUEyQjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCw0QkFBNEI7d0JBQzVCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQ0FBa0M7d0JBQ2xDLDJCQUEyQjtxQkFDNUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQixnQ0FBZ0M7d0JBQ2hDLHVCQUF1Qjt3QkFDdkIsV0FBVztxQkFDWjtpQkFDRjs7SUFDZ0MseUJBQUM7Q0FBQSxBQWxDbEMsSUFrQ2tDO1NBQXJCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gIE1hdE1lbnVNb2R1bGUsXHJcbiAgTWF0VGFic01vZHVsZSxcclxuICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgTWF0Q2FyZCxcclxuICBNYXRDaGVja2JveCxcclxuICBNYXRDaGVja2JveE1vZHVsZSxcclxuICBNYXRDYXJkTW9kdWxlLFxyXG4gIE1hdFNuYWNrQmFyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU21hcnRPZmZlbmRlckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtb2ZmZW5kZXItaGVhZGVyL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWFydE5hdmJhckNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtbmF2YmFyL3NtYXJ0LW5hdmJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWFydE5hdmJhclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LW5hdmJhci9zbWFydC1uYXZiYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0RXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LWF1dGgvc21hcnQtZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU21hcnRPZmZlbmRlckhlYWRlclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci9zbWFydC1vZmZlbmRlci1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQnO1xyXG4vLyBpbXBvcnQgeyBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRBY2Nlc3NDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9zbWFydC1hdXRoL3NtYXJ0LWFjY2Vzcy1jb250cm9sLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNtYXJ0QXV0aG9yaXphdGlvbkd1YXJkIH0gZnJvbSAnLi9zbWFydC1hdXRoL3NtYXJ0LWF1dGhvcml6YXRpb24tZ3VhcmQuc2VydmljZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgU21hcnRPZmZlbmRlckhlYWRlckNvbXBvbmVudCxcclxuICAgIFNtYXJ0TmF2YmFyQ29tcG9uZW50LFxyXG4gICAgU21hcnRFcnJvckNvbXBvbmVudCxcclxuICAgIFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNDb21wb25lbnQsXHJcbiAgICBTbWFydEFjY2Vzc0NvbnRyb2xEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIE1hdFRhYnNNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRDYXJkTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU21hcnRPZmZlbmRlckhlYWRlckNvbXBvbmVudCxcclxuICAgIFNtYXJ0TmF2YmFyQ29tcG9uZW50LFxyXG4gICAgU21hcnRFcnJvckNvbXBvbmVudCxcclxuICAgIFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNDb21wb25lbnQsXHJcbiAgICBTbWFydEFjY2Vzc0NvbnRyb2xEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFNtYXJ0TmF2YmFyU2VydmljZSxcclxuICAgIFNtYXJ0T2ZmZW5kZXJIZWFkZXJTZXJ2aWNlLFxyXG4gICAgU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2UsXHJcbiAgICBTbWFydEF1dGhvcml6YXRpb25HdWFyZCxcclxuICAgIE1hdFNuYWNrQmFyLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ2NTbWFydENvcmVNb2R1bGUge31cclxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/smart-auth/smart-access-control-config.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* @record
|
|
8
|
-
*/
|
|
9
|
-
export function SmartAccessControlConfig() { }
|
|
10
|
-
if (false) {
|
|
11
|
-
/** @type {?} */
|
|
12
|
-
SmartAccessControlConfig.prototype.appModuleId;
|
|
13
|
-
/** @type {?} */
|
|
14
|
-
SmartAccessControlConfig.prototype.route;
|
|
15
|
-
/** @type {?} */
|
|
16
|
-
SmartAccessControlConfig.prototype.accessType;
|
|
17
|
-
/** @type {?} */
|
|
18
|
-
SmartAccessControlConfig.prototype.roleId;
|
|
19
|
-
}
|
|
20
|
-
/** @enum {string} */
|
|
21
|
-
var AccessType = {
|
|
22
|
-
READ: "read",
|
|
23
|
-
CREATE: "create",
|
|
24
|
-
UPDATE: "update",
|
|
25
|
-
DELETE: "delete",
|
|
26
|
-
EXPUNGE: "expunge",
|
|
27
|
-
ASSIGN: "assign",
|
|
28
|
-
REOPEN: "reopen",
|
|
29
|
-
CLOSE: "close",
|
|
30
|
-
};
|
|
31
|
-
export { AccessType };
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYWNjZXNzLWNvbnRyb2wtY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1hdXRoL3NtYXJ0LWFjY2Vzcy1jb250cm9sLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBLDhDQUtDOzs7SUFKQywrQ0FBb0I7O0lBQ3BCLHlDQUE4Qjs7SUFDOUIsOENBQXVCOztJQUN2QiwwQ0FBZTs7O0FBR2pCLElBQVksVUFBVTtJQUNwQixJQUFJLFFBQVM7SUFDYixNQUFNLFVBQVc7SUFDakIsTUFBTSxVQUFXO0lBQ2pCLE1BQU0sVUFBVztJQUNqQixPQUFPLFdBQVk7SUFDbkIsTUFBTSxVQUFXO0lBQ2pCLE1BQU0sVUFBVztJQUNqQixLQUFLLFNBQVU7RUFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnIHtcclxuICBhcHBNb2R1bGVJZDogc3RyaW5nO1xyXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90O1xyXG4gIGFjY2Vzc1R5cGU6IEFjY2Vzc1R5cGU7XHJcbiAgcm9sZUlkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFjY2Vzc1R5cGUge1xyXG4gIFJFQUQgPSAncmVhZCcsXHJcbiAgQ1JFQVRFID0gJ2NyZWF0ZScsXHJcbiAgVVBEQVRFID0gJ3VwZGF0ZScsXHJcbiAgREVMRVRFID0gJ2RlbGV0ZScsXHJcbiAgRVhQVU5HRSA9ICdleHB1bmdlJyxcclxuICBBU1NJR04gPSAnYXNzaWduJyxcclxuICBSRU9QRU4gPSAncmVvcGVuJyxcclxuICBDTE9TRSA9ICdjbG9zZSdcclxufVxyXG4iXX0=
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/smart-auth/smart-access-control.directive.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Directive, Input, ElementRef } from '@angular/core';
|
|
7
|
-
import { SmartAuthService } from './smart-auth.service';
|
|
8
|
-
var SmartAccessControlDirective = /** @class */ (function () {
|
|
9
|
-
function SmartAccessControlDirective(elementRef, auth) {
|
|
10
|
-
this.elementRef = elementRef;
|
|
11
|
-
this.auth = auth;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* @return {?}
|
|
15
|
-
*/
|
|
16
|
-
SmartAccessControlDirective.prototype.ngOnInit = /**
|
|
17
|
-
* @return {?}
|
|
18
|
-
*/
|
|
19
|
-
function () {
|
|
20
|
-
this.checkAccess();
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* @return {?}
|
|
24
|
-
*/
|
|
25
|
-
SmartAccessControlDirective.prototype.checkAccess = /**
|
|
26
|
-
* @return {?}
|
|
27
|
-
*/
|
|
28
|
-
function () {
|
|
29
|
-
if (!this.accessControlConfig ||
|
|
30
|
-
!this.accessControlConfig.route ||
|
|
31
|
-
!this.accessControlConfig.route.data ||
|
|
32
|
-
!this.accessControlConfig.route.data.loginStaff ||
|
|
33
|
-
!this.accessControlConfig.route.data.selectedOffender) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
// const loginStaff = this.accessControlConfig.route.data.loginStaff;
|
|
37
|
-
// if (!this.auth.isAuthEnable(loginStaff.roles, this.accessControlConfig.appModuleId)) {
|
|
38
|
-
// return;
|
|
39
|
-
// }
|
|
40
|
-
this.elementRef.nativeElement.style.display = this.auth.checkPermission(this.accessControlConfig)
|
|
41
|
-
? 'block'
|
|
42
|
-
: 'none';
|
|
43
|
-
};
|
|
44
|
-
SmartAccessControlDirective.decorators = [
|
|
45
|
-
{ type: Directive, args: [{
|
|
46
|
-
selector: '[accessControl]',
|
|
47
|
-
},] }
|
|
48
|
-
];
|
|
49
|
-
/** @nocollapse */
|
|
50
|
-
SmartAccessControlDirective.ctorParameters = function () { return [
|
|
51
|
-
{ type: ElementRef },
|
|
52
|
-
{ type: SmartAuthService }
|
|
53
|
-
]; };
|
|
54
|
-
SmartAccessControlDirective.propDecorators = {
|
|
55
|
-
accessControlConfig: [{ type: Input }]
|
|
56
|
-
};
|
|
57
|
-
return SmartAccessControlDirective;
|
|
58
|
-
}());
|
|
59
|
-
export { SmartAccessControlDirective };
|
|
60
|
-
if (false) {
|
|
61
|
-
/** @type {?} */
|
|
62
|
-
SmartAccessControlDirective.prototype.accessControlConfig;
|
|
63
|
-
/**
|
|
64
|
-
* @type {?}
|
|
65
|
-
* @private
|
|
66
|
-
*/
|
|
67
|
-
SmartAccessControlDirective.prototype.elementRef;
|
|
68
|
-
/**
|
|
69
|
-
* @type {?}
|
|
70
|
-
* @private
|
|
71
|
-
*/
|
|
72
|
-
SmartAccessControlDirective.prototype.auth;
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYWNjZXNzLWNvbnRyb2wuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1hdXRoL3NtYXJ0LWFjY2Vzcy1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUt4RDtJQUtFLHFDQUNVLFVBQXNCLEVBQ3RCLElBQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFDN0IsQ0FBQzs7OztJQUVHLDhDQUFROzs7SUFBZjtRQUNFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7O0lBRUQsaURBQVc7OztJQUFYO1FBQ0UsSUFDRSxDQUFDLElBQUksQ0FBQyxtQkFBbUI7WUFDekIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSztZQUMvQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUNwQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDL0MsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFDckQ7WUFDQSxPQUFPO1NBQ1I7UUFFRCxxRUFBcUU7UUFDckUseUZBQXlGO1FBQ3pGLFlBQVk7UUFDWixJQUFJO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FDckUsSUFBSSxDQUFDLG1CQUFtQixDQUN6QjtZQUNDLENBQUMsQ0FBQyxPQUFPO1lBQ1QsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNiLENBQUM7O2dCQWxDRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7Ozs7Z0JBUmtDLFVBQVU7Z0JBQ3BDLGdCQUFnQjs7O3NDQVN0QixLQUFLOztJQStCUixrQ0FBQztDQUFBLEFBbkNELElBbUNDO1NBaENZLDJCQUEyQjs7O0lBQ3RDLDBEQUF1RDs7Ozs7SUFFckQsaURBQThCOzs7OztJQUM5QiwyQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJy4vc21hcnQtYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnIH0gZnJvbSAnLi9zbWFydC1hY2Nlc3MtY29udHJvbC1jb25maWcnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYWNjZXNzQ29udHJvbF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRBY2Nlc3NDb250cm9sRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBhY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGF1dGg6IFNtYXJ0QXV0aFNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNoZWNrQWNjZXNzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0FjY2VzcygpIHtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuYWNjZXNzQ29udHJvbENvbmZpZyB8fFxyXG4gICAgICAhdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnLnJvdXRlIHx8XHJcbiAgICAgICF0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUuZGF0YSB8fFxyXG4gICAgICAhdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnLnJvdXRlLmRhdGEubG9naW5TdGFmZiB8fFxyXG4gICAgICAhdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnLnJvdXRlLmRhdGEuc2VsZWN0ZWRPZmZlbmRlclxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjb25zdCBsb2dpblN0YWZmID0gdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnLnJvdXRlLmRhdGEubG9naW5TdGFmZjtcclxuICAgIC8vIGlmICghdGhpcy5hdXRoLmlzQXV0aEVuYWJsZShsb2dpblN0YWZmLnJvbGVzLCB0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcuYXBwTW9kdWxlSWQpKSB7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSB0aGlzLmF1dGguY2hlY2tQZXJtaXNzaW9uKFxyXG4gICAgICB0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWdcclxuICAgIClcclxuICAgICAgPyAnYmxvY2snXHJcbiAgICAgIDogJ25vbmUnO1xyXG4gIH1cclxufVxyXG4iXX0=
|