@csmart/ngc-smart-core 0.7.93 → 1.13.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.
Files changed (91) hide show
  1. package/csmart-ngc-smart-core.d.ts +1 -5
  2. package/esm2020/csmart-ngc-smart-core.mjs +5 -0
  3. package/esm2020/lib/ngc-smart-core.module.mjs +97 -0
  4. package/esm2020/lib/smart-auth/smart-access-control-config.mjs +12 -0
  5. package/esm2020/lib/smart-auth/smart-access-control.directive.mjs +40 -0
  6. package/esm2020/lib/smart-auth/smart-auth.service.mjs +475 -0
  7. package/esm2020/lib/smart-auth/smart-authorization-guard.service.mjs +35 -0
  8. package/esm2020/lib/smart-auth/smart-error.component.mjs +37 -0
  9. package/esm2020/lib/smart-auth/smart-login-staff-resolver.service.mjs +59 -0
  10. package/esm2020/lib/smart-auth/smart-selected-offender-resolver.service.mjs +49 -0
  11. package/esm2020/lib/smart-navbar/smart-navbar-config.mjs +2 -0
  12. package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +132 -0
  13. package/esm2020/lib/smart-navbar/smart-navbar.service.mjs +63 -0
  14. package/esm2020/lib/smart-offender-header/smart-offender-header.component.mjs +151 -0
  15. package/esm2020/lib/smart-offender-header/smart-offender-header.service.mjs +41 -0
  16. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.mjs +25 -0
  17. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +78 -0
  18. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +134 -0
  19. package/esm2020/lib/smart-storage/smart-storage-model.mjs +30 -0
  20. package/esm2020/lib/smart-storage/xdm.service.mjs +158 -0
  21. package/esm2020/public-api.mjs +20 -0
  22. package/fesm2015/csmart-ngc-smart-core.mjs +1525 -0
  23. package/fesm2015/csmart-ngc-smart-core.mjs.map +1 -0
  24. package/fesm2020/csmart-ngc-smart-core.mjs +1510 -0
  25. package/fesm2020/csmart-ngc-smart-core.mjs.map +1 -0
  26. package/lib/ngc-smart-core.module.d.ts +18 -0
  27. package/lib/smart-auth/smart-access-control.directive.d.ts +3 -0
  28. package/lib/smart-auth/smart-auth.service.d.ts +4 -0
  29. package/lib/smart-auth/smart-authorization-guard.service.d.ts +3 -0
  30. package/lib/smart-auth/smart-error.component.d.ts +3 -0
  31. package/lib/smart-auth/smart-login-staff-resolver.service.d.ts +3 -0
  32. package/lib/smart-auth/smart-selected-offender-resolver.service.d.ts +3 -0
  33. package/lib/smart-navbar/smart-navbar.component.d.ts +6 -3
  34. package/lib/smart-navbar/smart-navbar.service.d.ts +3 -0
  35. package/lib/smart-offender-header/smart-offender-header.component.d.ts +4 -1
  36. package/lib/smart-offender-header/smart-offender-header.service.d.ts +3 -0
  37. package/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.d.ts +3 -0
  38. package/lib/smart-staff-offender-options/smart-staff-offender-options.component.d.ts +3 -0
  39. package/lib/smart-staff-offender-options/smart-staff-offender-options.service.d.ts +6 -3
  40. package/lib/smart-storage/xdm.service.d.ts +4 -1
  41. package/package.json +25 -14
  42. package/public-api.d.ts +3 -0
  43. package/bundles/csmart-ngc-smart-core.umd.js +0 -2623
  44. package/bundles/csmart-ngc-smart-core.umd.js.map +0 -1
  45. package/bundles/csmart-ngc-smart-core.umd.min.js +0 -2
  46. package/bundles/csmart-ngc-smart-core.umd.min.js.map +0 -1
  47. package/csmart-ngc-smart-core.metadata.json +0 -1
  48. package/esm2015/csmart-ngc-smart-core.js +0 -15
  49. package/esm2015/lib/ngc-smart-core.module.js +0 -59
  50. package/esm2015/lib/smart-auth/smart-access-control-config.js +0 -32
  51. package/esm2015/lib/smart-auth/smart-access-control.directive.js +0 -70
  52. package/esm2015/lib/smart-auth/smart-auth.service.js +0 -692
  53. package/esm2015/lib/smart-auth/smart-authorization-guard.service.js +0 -63
  54. package/esm2015/lib/smart-auth/smart-error.component.js +0 -77
  55. package/esm2015/lib/smart-auth/smart-login-staff-resolver.service.js +0 -94
  56. package/esm2015/lib/smart-auth/smart-selected-offender-resolver.service.js +0 -101
  57. package/esm2015/lib/smart-navbar/smart-navbar-config.js +0 -22
  58. package/esm2015/lib/smart-navbar/smart-navbar.component.js +0 -224
  59. package/esm2015/lib/smart-navbar/smart-navbar.service.js +0 -89
  60. package/esm2015/lib/smart-offender-header/smart-offender-header.component.js +0 -249
  61. package/esm2015/lib/smart-offender-header/smart-offender-header.service.js +0 -85
  62. package/esm2015/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.js +0 -49
  63. package/esm2015/lib/smart-staff-offender-options/smart-staff-offender-options.component.js +0 -151
  64. package/esm2015/lib/smart-staff-offender-options/smart-staff-offender-options.service.js +0 -222
  65. package/esm2015/lib/smart-storage/smart-storage-model.js +0 -131
  66. package/esm2015/lib/smart-storage/xdm.service.js +0 -321
  67. package/esm2015/public-api.js +0 -22
  68. package/esm5/csmart-ngc-smart-core.js +0 -15
  69. package/esm5/lib/ngc-smart-core.module.js +0 -63
  70. package/esm5/lib/smart-auth/smart-access-control-config.js +0 -32
  71. package/esm5/lib/smart-auth/smart-access-control.directive.js +0 -74
  72. package/esm5/lib/smart-auth/smart-auth.service.js +0 -761
  73. package/esm5/lib/smart-auth/smart-authorization-guard.service.js +0 -67
  74. package/esm5/lib/smart-auth/smart-error.component.js +0 -83
  75. package/esm5/lib/smart-auth/smart-login-staff-resolver.service.js +0 -98
  76. package/esm5/lib/smart-auth/smart-selected-offender-resolver.service.js +0 -108
  77. package/esm5/lib/smart-navbar/smart-navbar-config.js +0 -22
  78. package/esm5/lib/smart-navbar/smart-navbar.component.js +0 -251
  79. package/esm5/lib/smart-navbar/smart-navbar.service.js +0 -114
  80. package/esm5/lib/smart-offender-header/smart-offender-header.component.js +0 -279
  81. package/esm5/lib/smart-offender-header/smart-offender-header.service.js +0 -76
  82. package/esm5/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.js +0 -52
  83. package/esm5/lib/smart-staff-offender-options/smart-staff-offender-options.component.js +0 -165
  84. package/esm5/lib/smart-staff-offender-options/smart-staff-offender-options.service.js +0 -232
  85. package/esm5/lib/smart-storage/smart-storage-model.js +0 -155
  86. package/esm5/lib/smart-storage/xdm.service.js +0 -395
  87. package/esm5/public-api.js +0 -22
  88. package/fesm2015/csmart-ngc-smart-core.js +0 -2230
  89. package/fesm2015/csmart-ngc-smart-core.js.map +0 -1
  90. package/fesm5/csmart-ngc-smart-core.js +0 -2503
  91. package/fesm5/csmart-ngc-smart-core.js.map +0 -1
@@ -1,2230 +0,0 @@
1
- import { DOCUMENT, CommonModule } from '@angular/common';
2
- import { connectToChild } from 'penpal';
3
- import { MatSnackBar, MatButtonModule, MatMenuModule, MatTabsModule, MatSelectModule, MatCheckboxModule, MatCardModule } from '@angular/material';
4
- import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
5
- import { __awaiter } from 'tslib';
6
- import { HttpClient, HttpClientModule } from '@angular/common/http';
7
- import { MsalService } from '@azure/msal-angular';
8
- import { Router, ActivatedRoute } from '@angular/router';
9
- import { Subject, of, from, throwError, EMPTY, concat } from 'rxjs';
10
- import { InjectionToken, Injectable, Inject, isDevMode, Directive, Input, ElementRef, Component, ViewChild, ViewEncapsulation, NgModule, NgZone, defineInjectable, inject } from '@angular/core';
11
- import { map, switchMap, take, catchError, mergeMap, retryWhen, delay } from 'rxjs/operators';
12
-
13
- /**
14
- * @fileoverview added by tsickle
15
- * Generated from: lib/smart-storage/smart-storage-model.ts
16
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
17
- */
18
- class Permission {
19
- }
20
- class Role {
21
- }
22
- class Option {
23
- }
24
- class LoginStaff {
25
- constructor() {
26
- this.selectedRole = '*';
27
- }
28
- }
29
- class SelectedOffender {
30
- constructor() {
31
- this.intakeFlag = false;
32
- }
33
- }
34
- class OffenderQuery {
35
- }
36
- class StorageKey {
37
- }
38
- StorageKey.selectedOffender = 'smart-selected-offender';
39
- StorageKey.loginStaff = 'smart-login-staff';
40
- StorageKey.offenderQuery = 'smart-offender-query';
41
- /** @type {?} */
42
- const SMART_WEB_STORAGE_LISTENER_URL = new InjectionToken('SMART Web Storage Listener URL');
43
- /** @type {?} */
44
- const SMART_WEB_PORTAL_URL = new InjectionToken('SMART Web Portal URL');
45
- /** @type {?} */
46
- const SMART_DATA_SERVICE_URL = new InjectionToken('SMART Data Service URL');
47
- //exception for redirection
48
- /** @type {?} */
49
- const SMART_DOMAIN_FORMAT = new InjectionToken('SMART Domain Format URL');
50
-
51
- /**
52
- * @fileoverview added by tsickle
53
- * Generated from: lib/smart-storage/xdm.service.ts
54
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
55
- */
56
- class XdmService {
57
- /**
58
- * @param {?} document
59
- * @param {?} smartStorageListenerUrl
60
- * @param {?} httpClient
61
- * @param {?} smartDataServiceUrl
62
- */
63
- constructor(document, smartStorageListenerUrl, httpClient, smartDataServiceUrl) {
64
- this.document = document;
65
- this.smartStorageListenerUrl = smartStorageListenerUrl;
66
- this.httpClient = httpClient;
67
- this.smartDataServiceUrl = smartDataServiceUrl;
68
- this.offenderSubject = new Subject();
69
- this.staffSubject = new Subject();
70
- this.offenderQuerySubject = new Subject();
71
- if (isDevMode) {
72
- console.log('SmartStorage XdmService (Client) - constructor()');
73
- }
74
- this.init();
75
- }
76
- /**
77
- * @private
78
- * @return {?}
79
- */
80
- init() {
81
- /** @type {?} */
82
- const frame = this.document.createElement('iframe');
83
- frame.src = this.smartStorageListenerUrl;
84
- frame.id = 'childframe';
85
- frame.name = Math.random().toString();
86
- frame.onload = null;
87
- frame.style.visibility = 'hidden';
88
- this.document.body.appendChild(frame);
89
- this.connection = connectToChild({
90
- iframe: frame,
91
- debug: false,
92
- });
93
- }
94
- /**
95
- * @private
96
- * @param {?} staffId
97
- * @return {?}
98
- */
99
- getStaffOffenderListOptions(staffId) {
100
- /** @type {?} */
101
- const queryString = `{findvStaffOffenderListOptions(input:{
102
- where:{
103
- staffId: ${staffId}
104
- }
105
- }){
106
- data{
107
- offenderListOptionId
108
- name
109
- serviceApiFieldName
110
- selectedFlag
111
- }
112
- } }`;
113
- return this.httpClient
114
- .post(this.smartDataServiceUrl, { query: queryString })
115
- .pipe(map((/**
116
- * @param {?} __0
117
- * @return {?}
118
- */
119
- ({ data }) => {
120
- data.findvStaffOffenderListOptions.data['offenderOptionListId'] =
121
- data.findvStaffOffenderListOptions.data['offenderListOptionId'];
122
- return data.findvStaffOffenderListOptions.data;
123
- })));
124
- /*return of([
125
- { offenderListOptionId: 'genderCode', name: '', selectedFlag: true }]);*/
126
- }
127
- /**
128
- * @return {?}
129
- */
130
- clearAll() {
131
- this.connection.promise.then((/**
132
- * @param {?} child
133
- * @return {?}
134
- */
135
- (child) => {
136
- child.clearAll();
137
- this.offenderSubject.next();
138
- this.staffSubject.next();
139
- }));
140
- }
141
- /**
142
- * **********************************
143
- * Offender
144
- * ************************************
145
- * @param {?} selectedOffender
146
- * @param {?=} redirectFunction
147
- * @return {?}
148
- */
149
- setSelectedOffender(selectedOffender, redirectFunction = null) {
150
- this.connection.promise.then((/**
151
- * @param {?} child
152
- * @return {?}
153
- */
154
- (child) => {
155
- child.setSelectedOffender(selectedOffender);
156
- this.offenderSubject.next(selectedOffender);
157
- if (redirectFunction) {
158
- redirectFunction();
159
- }
160
- }));
161
- }
162
- /**
163
- * @return {?}
164
- */
165
- getSelectedOffender() {
166
- return this.connection.promise.then((/**
167
- * @param {?} child
168
- * @return {?}
169
- */
170
- (child) => child.getSelectedOffender(StorageKey.selectedOffender)));
171
- }
172
- /**
173
- * @return {?}
174
- */
175
- clearSelectedOffender() {
176
- this.connection.promise.then((/**
177
- * @param {?} child
178
- * @return {?}
179
- */
180
- (child) => {
181
- child.clearSelectedOffender();
182
- this.offenderSubject.next();
183
- }));
184
- }
185
- /**
186
- * @return {?}
187
- */
188
- getOffenderUpdate() {
189
- return this.offenderSubject.asObservable();
190
- }
191
- /**
192
- * *********************************************************************
193
- * Staff
194
- * **********************************************************************
195
- * @param {?} loginStaff
196
- * @return {?}
197
- */
198
- setLoginStaff(loginStaff) {
199
- this.connection.promise.then((/**
200
- * @param {?} child
201
- * @return {?}
202
- */
203
- (child) => {
204
- child.setLoginStaff(loginStaff);
205
- this.staffSubject.next(loginStaff);
206
- }));
207
- }
208
- /**
209
- * @return {?}
210
- */
211
- getLoginStaff() {
212
- return this.connection.promise.then((/**
213
- * @param {?} child
214
- * @return {?}
215
- */
216
- (child) => child.getLoginStaff(StorageKey.loginStaff)));
217
- }
218
- /**
219
- * @return {?}
220
- */
221
- clearLoginStaff() {
222
- this.connection.promise.then((/**
223
- * @param {?} child
224
- * @return {?}
225
- */
226
- (child) => {
227
- child.clearLoginStaff();
228
- this.staffSubject.next();
229
- }));
230
- }
231
- /**
232
- * @return {?}
233
- */
234
- getStaffUpdate() {
235
- return this.staffSubject.asObservable();
236
- }
237
- /**
238
- * @return {?}
239
- */
240
- refreshLoginStaffOptions() {
241
- this.getLoginStaff().then((/**
242
- * @param {?} oldLoginStaff
243
- * @return {?}
244
- */
245
- (oldLoginStaff) => {
246
- this.getStaffOffenderListOptions(oldLoginStaff.staffId).subscribe((/**
247
- * @param {?} optionData
248
- * @return {?}
249
- */
250
- (optionData) => {
251
- console.log(optionData);
252
- oldLoginStaff.options = optionData;
253
- this.setLoginStaff(oldLoginStaff);
254
- }));
255
- }));
256
- }
257
- /**
258
- * *********************************************************************
259
- * Offender Query
260
- * **********************************************************************
261
- * @param {?} offenderQuery
262
- * @return {?}
263
- */
264
- setOffenderQuery(offenderQuery) {
265
- this.connection.promise.then((/**
266
- * @param {?} child
267
- * @return {?}
268
- */
269
- (child) => {
270
- child.setOffenderQuery(offenderQuery);
271
- this.offenderQuerySubject.next(offenderQuery);
272
- }));
273
- }
274
- /**
275
- * @return {?}
276
- */
277
- getOffenderQuery() {
278
- return this.connection.promise.then((/**
279
- * @param {?} child
280
- * @return {?}
281
- */
282
- (child) => child.getOffenderQuery(StorageKey.offenderQuery)));
283
- }
284
- /**
285
- * @return {?}
286
- */
287
- clearOffenderQuery() {
288
- this.connection.promise.then((/**
289
- * @param {?} child
290
- * @return {?}
291
- */
292
- (child) => {
293
- child.clearOffenderQuery();
294
- this.offenderQuerySubject.next();
295
- }));
296
- }
297
- /**
298
- * @return {?}
299
- */
300
- getOffenderQueryUpdate() {
301
- return this.offenderQuerySubject.asObservable();
302
- }
303
- }
304
- XdmService.decorators = [
305
- { type: Injectable, args: [{
306
- providedIn: 'root',
307
- },] }
308
- ];
309
- /** @nocollapse */
310
- XdmService.ctorParameters = () => [
311
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
312
- { type: String, decorators: [{ type: Inject, args: [SMART_WEB_STORAGE_LISTENER_URL,] }] },
313
- { type: HttpClient },
314
- { type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] }
315
- ];
316
- /** @nocollapse */ XdmService.ngInjectableDef = defineInjectable({ factory: function XdmService_Factory() { return new XdmService(inject(DOCUMENT), inject(SMART_WEB_STORAGE_LISTENER_URL), inject(HttpClient), inject(SMART_DATA_SERVICE_URL)); }, token: XdmService, providedIn: "root" });
317
-
318
- /**
319
- * @fileoverview added by tsickle
320
- * Generated from: lib/smart-offender-header/smart-offender-header.service.ts
321
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
322
- */
323
- class SmartOffenderHeaderService {
324
- /**
325
- * @param {?} smartDataServiceUrl
326
- * @param {?} http
327
- */
328
- constructor(smartDataServiceUrl, http) {
329
- this.smartDataServiceUrl = smartDataServiceUrl;
330
- this.http = http;
331
- }
332
- /**
333
- * @param {?} staffId
334
- * @return {?}
335
- */
336
- getStaffOffenders(staffId) {
337
- /** @type {?} */
338
- const queryString = `
339
- query getStaffOffenderList{
340
- filterOffenderList(input: {staffId: ${staffId}}) {
341
- data {
342
- offenderId
343
- offenderName
344
- pdId
345
- birthDate
346
- gender
347
- }
348
- }
349
- }
350
- `;
351
- return this.http
352
- .post(this.smartDataServiceUrl, { query: queryString })
353
- .pipe(map((/**
354
- * @param {?} __0
355
- * @return {?}
356
- */
357
- ({ data }) => {
358
- return data.filterOffenderList.data;
359
- })));
360
- }
361
- }
362
- SmartOffenderHeaderService.decorators = [
363
- { type: Injectable }
364
- ];
365
- /** @nocollapse */
366
- SmartOffenderHeaderService.ctorParameters = () => [
367
- { type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] },
368
- { type: HttpClient }
369
- ];
370
-
371
- /**
372
- * @fileoverview added by tsickle
373
- * Generated from: lib/smart-offender-header/smart-offender-header.component.ts
374
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
375
- */
376
- class SmartOffenderHeaderComponent {
377
- /**
378
- * @param {?} xdmService
379
- * @param {?} authnService
380
- * @param {?} smartOffenderHeaderService
381
- * @param {?} router
382
- */
383
- constructor(xdmService, authnService, smartOffenderHeaderService, router) {
384
- this.xdmService = xdmService;
385
- this.authnService = authnService;
386
- this.smartOffenderHeaderService = smartOffenderHeaderService;
387
- this.router = router;
388
- this.selectedOffenderControl$ = new FormControl();
389
- }
390
- /**
391
- * @return {?}
392
- */
393
- ngOnInit() {
394
- this.isAuthenticated = this.authnService.getAccount() ? true : false;
395
- this.xdmService.getLoginStaff().then((/**
396
- * @param {?} loginStaff
397
- * @return {?}
398
- */
399
- (loginStaff) => {
400
- this.loginStaff = loginStaff ? loginStaff : null;
401
- }));
402
- this.xdmService.getSelectedOffender().then((/**
403
- * @param {?} selectedOffender
404
- * @return {?}
405
- */
406
- (selectedOffender) => {
407
- this.selectedOffender =
408
- selectedOffender && selectedOffender.offenderId
409
- ? selectedOffender
410
- : null;
411
- }));
412
- this.subscription = this.xdmService
413
- .getOffenderUpdate()
414
- .subscribe((/**
415
- * @param {?} selectedOffender
416
- * @return {?}
417
- */
418
- (selectedOffender) => {
419
- this.selectedOffender = selectedOffender;
420
- this.setSelectedOffenderControl();
421
- }));
422
- this.xdmService.getOffenderQuery().then((/**
423
- * @param {?} offenderQuery
424
- * @return {?}
425
- */
426
- (offenderQuery) => {
427
- if (offenderQuery) {
428
- this.offenderQueryList = offenderQuery.offenders;
429
- this.setSelectedOffenderControl();
430
- }
431
- }));
432
- this.offenderQuerySubscription = this.xdmService.getOffenderQueryUpdate()
433
- .subscribe((/**
434
- * @param {?} offenderList
435
- * @return {?}
436
- */
437
- (offenderList) => {
438
- if (offenderList && offenderList.offenders) {
439
- this.offenderQueryList = [...offenderList.offenders];
440
- }
441
- }));
442
- this.selectedOffenderControl$.valueChanges.subscribe((/**
443
- * @param {?} o
444
- * @return {?}
445
- */
446
- (o) => this.onOffenderSelected(o)));
447
- this.router.routeReuseStrategy.shouldReuseRoute = (/**
448
- * @return {?}
449
- */
450
- () => {
451
- return false;
452
- });
453
- }
454
- /**
455
- * @return {?}
456
- */
457
- ngOnDestroy() {
458
- this.subscription.unsubscribe();
459
- }
460
- /**
461
- * @private
462
- * @param {?} offender
463
- * @return {?}
464
- */
465
- onOffenderSelected(offender) {
466
- if (offender) {
467
- // const o = offender.offenderName.split(',');
468
- // if (o.length === 2) {
469
- // const offenderName = `${o[1]} ${o[0]}`;
470
- // this.selectedOffender = {
471
- // offenderId: offender.offenderId,
472
- // name: offenderName,
473
- // pdId: offender.pdId,
474
- // birthDate: offender.birthDate,
475
- // gender: offender.genderCode,
476
- // assignmentStaffRelationId: '',
477
- // intakeFlag: this.loginStaff
478
- // ? this.hasIntakeRole(this.loginStaff.roles)
479
- // : false,
480
- // } as SelectedOffender;
481
- this.selectedOffender = offender;
482
- this.xdmService.setSelectedOffender(this.selectedOffender, this.reloadCurrentRoute);
483
- }
484
- }
485
- /**
486
- * @private
487
- * @return {?}
488
- */
489
- setSelectedOffenderControl() {
490
- if (this.selectedOffender &&
491
- this.offenderQueryList &&
492
- this.offenderQueryList.length > 0) {
493
- /** @type {?} */
494
- const o = this.offenderQueryList.find((/**
495
- * @param {?} x
496
- * @return {?}
497
- */
498
- (x) => x.offenderId === this.selectedOffender.offenderId));
499
- if (o) {
500
- this.selectedOffenderControl$.setValue(o, { emitEvent: false });
501
- }
502
- if (!o && this.offenderQueryList.length > 0) {
503
- this.selectedOffenderControl$.setValue(this.offenderQueryList[0], {
504
- emitEvent: false,
505
- });
506
- }
507
- }
508
- }
509
- /**
510
- * @private
511
- * @return {?}
512
- */
513
- reloadCurrentRoute() {
514
- /*try {
515
- const urlTree = this.router.parseUrl(this.router.url);
516
- if (urlTree
517
- && urlTree.root
518
- && urlTree.root.segments
519
- && urlTree.root.segments.length > 1) {
520
- this.router.navigate([urlTree.root.segments[0].path]);
521
- } else if (urlTree
522
- && urlTree.root
523
- && urlTree.root.children
524
- && urlTree.root.children.primary
525
- && urlTree.root.children.primary.segments
526
- && urlTree.root.children.primary.segments.length > 1) {
527
- this.router.navigate([urlTree.root.children.primary.segments[0].path]);
528
- } else {
529
- this.router.navigate([this.router.url]);
530
- }
531
- } catch {
532
- this.router.navigateByUrl('/');
533
- }*/
534
- window.location.reload(false);
535
- }
536
- /**
537
- * @private
538
- * @param {?} roles
539
- * @return {?}
540
- */
541
- hasIntakeRole(roles) {
542
- if (roles && roles.length > 0) {
543
- return roles.findIndex(this.isIntakeRole) > -1;
544
- }
545
- return false;
546
- }
547
- /**
548
- * @private
549
- * @param {?} role
550
- * @return {?}
551
- */
552
- isIntakeRole(role) {
553
- switch (role.roleId) {
554
- case 'OPA':
555
- case 'OPS':
556
- case 'SOPS':
557
- return true;
558
- default:
559
- return false;
560
- }
561
- }
562
- }
563
- SmartOffenderHeaderComponent.decorators = [
564
- { type: Component, args: [{
565
- selector: 'app-smart-offender-header',
566
- template: "<div\r\n class=\"offender-header-container\"\r\n *ngIf=\"selectedOffender && isAuthenticated\">\r\n <div class=\"offender-header-name-item\">\r\n <mat-form-field appearance=\"standard\" class=\"switch-offender\">\r\n <mat-label>Switch Offender</mat-label>\r\n <mat-select [formControl]=\"selectedOffenderControl$\">\r\n <mat-option\r\n *ngFor=\"let offender of offenderQueryList\"\r\n [value]=\"offender\">\r\n {{ offender?.name}} ({{offender?.offenderId}})\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <div class=\"offender-header-id-item\">\r\n <span class=\"item-label\">PDID:</span> {{ selectedOffender.pdId }}\r\n </div>\r\n <div class=\"offender-header-id-item\">\r\n <span class=\"item-label\">CSOSA ID:</span>\r\n {{ selectedOffender.offenderId }}\r\n </div>\r\n </div>\r\n</div>\r\n",
567
- styles: [".offender-header-container{display:-ms-grid;display:grid;-ms-grid-columns:2fr 1fr;grid-template-columns:2fr 1fr;grid-column-gap:20px;width:100%;margin:4px;background-color:#eae9e9;font-family:Roboto,'Helvetica Neue',sans-serif;font-size:14px;font-weight:500;padding-top:8px;justify-items:end}.offender-header-name-item{width:50%}.offender-header-id-item{text-align:left;display:-ms-grid;display:grid;-ms-grid-columns:80px 80px;grid-template-columns:80px 80px;margin-top:8px}.switch-offender{width:100%!important}@media only screen and (max-width:740px){.offender-header-container{display:-ms-grid;display:grid;-ms-grid-rows:1fr 1fr;grid-template-rows:1fr 1fr;-ms-grid-columns:1fr;grid-template-columns:1fr;align-items:center;background-color:#eae9e9;font-family:Roboto,'Helvetica Neue',sans-serif;font-size:14px;font-weight:500;height:100%;margin:4px;padding-left:16px;justify-items:start}.offender-header-name-item{text-align:left}}"]
568
- }] }
569
- ];
570
- /** @nocollapse */
571
- SmartOffenderHeaderComponent.ctorParameters = () => [
572
- { type: XdmService },
573
- { type: MsalService },
574
- { type: SmartOffenderHeaderService },
575
- { type: Router }
576
- ];
577
-
578
- /**
579
- * @fileoverview added by tsickle
580
- * Generated from: lib/smart-navbar/smart-navbar.service.ts
581
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
582
- */
583
- class SmartNavbarService {
584
- /**
585
- * @param {?} http
586
- */
587
- constructor(http) {
588
- this.http = http;
589
- }
590
- /*
591
- public getNavbarConfigs(): SmartNavbarConfig[] {
592
- this.configs = [
593
- {appModuleId: 'SMART', name: 'SMART', url: 'http://localhost:4200', offenderSpecific: false, displayOrder: 1 },
594
- {appModuleId: 'OFFENDER', name: 'Offender', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 2 },
595
- {appModuleId: 'SPRVSN', name: 'Supervision', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 3 },
596
- ];
597
-
598
- return this.configs;
599
- }
600
- */
601
- /*
602
- public getNavbarConfigs(serviceApiUrl: string): Observable<SmartNavbarConfig[]> {
603
- return this.http.get<SmartNavbarConfig[]>(serviceApiUrl + '/AppModules');
604
- }
605
- */
606
- /**
607
- * @param {?} serviceApiUrl
608
- * @return {?}
609
- */
610
- getNavbarConfigs(serviceApiUrl) {
611
- /** @type {?} */
612
- const queryString = `
613
- {
614
- findAppModules {
615
- data {
616
- appModuleId
617
- name
618
- url
619
- offenderSpecificFlag
620
- displayOrder
621
- }
622
- }
623
- }`;
624
- /*
625
- const httpHeaders = new HttpHeaders({
626
- 'Content-Type': 'application/json',
627
- 'Cache-Control': 'no-cache'
628
- });
629
- const options = {
630
- headers: httpHeaders
631
- };
632
- */
633
- return this.http
634
- .post(serviceApiUrl, { query: queryString })
635
- .pipe(map((/**
636
- * @param {?} __0
637
- * @return {?}
638
- */
639
- ({ data }) => {
640
- if (isDevMode()) {
641
- console.log(data);
642
- }
643
- return data.findAppModules.data;
644
- })));
645
- }
646
- }
647
- SmartNavbarService.decorators = [
648
- { type: Injectable }
649
- ];
650
- /** @nocollapse */
651
- SmartNavbarService.ctorParameters = () => [
652
- { type: HttpClient }
653
- ];
654
-
655
- /**
656
- * @fileoverview added by tsickle
657
- * Generated from: lib/smart-navbar/smart-navbar.component.ts
658
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
659
- */
660
- class SmartNavbarComponent {
661
- /**
662
- * @param {?} navbarConfigService
663
- * @param {?} xdmService
664
- * @param {?} authnService
665
- */
666
- constructor(navbarConfigService, xdmService, authnService) {
667
- this.navbarConfigService = navbarConfigService;
668
- this.xdmService = xdmService;
669
- this.authnService = authnService;
670
- this.appModuleId = 'SMART';
671
- this.isAuthenticated = false;
672
- }
673
- /**
674
- * @return {?}
675
- */
676
- ngOnChanges() {
677
- /*
678
- console.log(this.selectedTab);
679
- setTimeout(() => {
680
- this.tabGroup.selectedIndex = this.selectedTab;
681
- }, 1000);
682
- */
683
- }
684
- /**
685
- * @return {?}
686
- */
687
- ngOnInit() {
688
- this.xdmService.getSelectedOffender().then((/**
689
- * @param {?} selectedOffender
690
- * @return {?}
691
- */
692
- (selectedOffender) => {
693
- this.selectedOffender =
694
- selectedOffender && selectedOffender.offenderId
695
- ? selectedOffender
696
- : null;
697
- }));
698
- this.xdmService.getLoginStaff().then((/**
699
- * @param {?} loginStaff
700
- * @return {?}
701
- */
702
- (loginStaff) => {
703
- // this.zone.run(() => {
704
- this.loginStaff = loginStaff ? loginStaff : null;
705
- // });
706
- }));
707
- this.offenderSubscription = this.xdmService
708
- .getOffenderUpdate()
709
- .subscribe((/**
710
- * @param {?} selectedOffender
711
- * @return {?}
712
- */
713
- (selectedOffender) => {
714
- // this.zone.run(() => {
715
- this.selectedOffender = selectedOffender;
716
- // });
717
- }));
718
- this.staffSubscription = this.xdmService
719
- .getStaffUpdate()
720
- .subscribe((/**
721
- * @param {?} loginStaff
722
- * @return {?}
723
- */
724
- (loginStaff) => {
725
- // this.zone.run(() => {
726
- this.loginStaff = loginStaff;
727
- // });
728
- }));
729
- this.navbarConfigService
730
- .getNavbarConfigs(this.serviceApiUrl)
731
- .subscribe((/**
732
- * @param {?} configs
733
- * @return {?}
734
- */
735
- (configs) => {
736
- this.navbarConfigs = configs.sort((/**
737
- * @param {?} a
738
- * @param {?} b
739
- * @return {?}
740
- */
741
- (a, b) => {
742
- if (a.displayOrder < b.displayOrder) {
743
- return -1;
744
- }
745
- else if (a.displayOrder > b.displayOrder) {
746
- return 1;
747
- }
748
- return 0;
749
- }));
750
- }));
751
- this.isAuthenticated = this.authnService.getAccount() ? true : false;
752
- }
753
- /**
754
- * @return {?}
755
- */
756
- ngOnDestroy() {
757
- this.offenderSubscription.unsubscribe();
758
- this.staffSubscription.unsubscribe();
759
- }
760
- /**
761
- * @return {?}
762
- */
763
- logout() {
764
- this.xdmService.clearAll();
765
- this.authnService.logout();
766
- }
767
- /**
768
- * @param {?} config
769
- * @return {?}
770
- */
771
- getAppModuleUrl(config) {
772
- return (config && this.selectedOffender && config.appModuleId === 'PPMAS') ?
773
- `${config.url}?skipAppMetadata=true&OffenderId=${this.selectedOffender.offenderId}` : config.url;
774
- }
775
- /**
776
- * @param {?} appModuleId
777
- * @return {?}
778
- */
779
- hasAppModulePermission(appModuleId) {
780
- if (this.loginStaff && this.loginStaff.permissions && this.loginStaff.permissions.length > 0) {
781
- return this.loginStaff.permissions.findIndex((/**
782
- * @param {?} p
783
- * @return {?}
784
- */
785
- p => p.appModuleId === appModuleId)) > -1;
786
- }
787
- return false;
788
- }
789
- /**
790
- * @return {?}
791
- */
792
- get hasExternalUserRole() {
793
- if (this.loginStaff && this.loginStaff.roles && this.loginStaff.roles.length > 0) {
794
- return this.loginStaff.roles.findIndex(this.isExternalRole) > -1;
795
- }
796
- return false;
797
- }
798
- /**
799
- * @private
800
- * @param {?} role
801
- * @return {?}
802
- */
803
- isExternalRole(role) {
804
- switch (role.roleId) {
805
- case 'EUDTL':
806
- case 'EUDUSM':
807
- case 'EUJDG':
808
- case 'EUMPD':
809
- case 'EUSOTV':
810
- case 'EUUSA2':
811
- case 'EUUSAO':
812
- case 'EUUSPC':
813
- return true;
814
- default:
815
- return false;
816
- }
817
- }
818
- }
819
- SmartNavbarComponent.decorators = [
820
- { type: Component, args: [{
821
- selector: 'app-smart-navbar',
822
- 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",
823
- encapsulation: ViewEncapsulation.None,
824
- 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}"]
825
- }] }
826
- ];
827
- /** @nocollapse */
828
- SmartNavbarComponent.ctorParameters = () => [
829
- { type: SmartNavbarService },
830
- { type: XdmService },
831
- { type: MsalService }
832
- ];
833
- SmartNavbarComponent.propDecorators = {
834
- serviceApiUrl: [{ type: Input }],
835
- appModuleId: [{ type: Input }],
836
- tabGroup: [{ type: ViewChild, args: ['tabs',] }]
837
- };
838
-
839
- /**
840
- * @fileoverview added by tsickle
841
- * Generated from: lib/smart-auth/smart-error.component.ts
842
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
843
- */
844
- class SmartErrorComponent {
845
- /**
846
- * @param {?} authnService
847
- * @param {?} route
848
- * @param {?} smartWebPortalUrl
849
- */
850
- constructor(authnService, route, smartWebPortalUrl) {
851
- this.authnService = authnService;
852
- this.route = route;
853
- this.smartWebPortalUrl = smartWebPortalUrl;
854
- }
855
- /**
856
- * @return {?}
857
- */
858
- ngOnInit() {
859
- this.type = this.route.snapshot.queryParamMap.get('type') || 'staff';
860
- this.message =
861
- this.route.snapshot.queryParamMap.get('message') || 'Error occured.';
862
- }
863
- /**
864
- * @return {?}
865
- */
866
- logout() {
867
- this.authnService.logout();
868
- }
869
- /**
870
- * @return {?}
871
- */
872
- portal() {
873
- window.location.href = this.smartWebPortalUrl;
874
- }
875
- }
876
- SmartErrorComponent.decorators = [
877
- { type: Component, args: [{
878
- selector: 'app-smart-error',
879
- template: "<div>\r\n <h2>\r\n {{ message }}\r\n </h2>\r\n <p>\r\n Please contact help desk if needed.\r\n </p>\r\n <div>\r\n <button (click)=\"logout()\" *ngIf=\"type === 'staff'\">OK</button>\r\n <button (click)=\"portal()\" *ngIf=\"type === 'offender'\">OK</button>\r\n </div>\r\n</div>\r\n",
880
- styles: ["div{text-align:center}"]
881
- }] }
882
- ];
883
- /** @nocollapse */
884
- SmartErrorComponent.ctorParameters = () => [
885
- { type: MsalService },
886
- { type: ActivatedRoute },
887
- { type: String, decorators: [{ type: Inject, args: [SMART_WEB_PORTAL_URL,] }] }
888
- ];
889
-
890
- /**
891
- * @fileoverview added by tsickle
892
- * Generated from: lib/smart-staff-offender-options/smart-staff-offender-options.service.ts
893
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
894
- */
895
- class SmartStaffOffenderOptionsService {
896
- /**
897
- * @param {?} serviceApiUrl
898
- * @param {?} http
899
- * @param {?} matSnackBar
900
- */
901
- constructor(serviceApiUrl, http, matSnackBar) {
902
- this.serviceApiUrl = serviceApiUrl;
903
- this.http = http;
904
- this.matSnackBar = matSnackBar;
905
- }
906
- /**
907
- * @param {?} message
908
- * @return {?}
909
- */
910
- showMessage(message) {
911
- this.matSnackBar.open(message, null, {
912
- duration: 2000,
913
- });
914
- }
915
- /**
916
- * @private
917
- * @param {?} jsonObject
918
- * @return {?}
919
- */
920
- convertEmptyToNull(jsonObject) {
921
- if (!jsonObject) {
922
- return;
923
- }
924
- if (jsonObject instanceof Array) {
925
- jsonObject.forEach((/**
926
- * @param {?} obj
927
- * @return {?}
928
- */
929
- obj => {
930
- this.convertEmptyToNull(obj);
931
- }));
932
- }
933
- /** @type {?} */
934
- const keys = Object.keys(jsonObject);
935
- keys.forEach((/**
936
- * @param {?} key
937
- * @return {?}
938
- */
939
- key => {
940
- if (typeof jsonObject[key] === 'object') {
941
- this.convertEmptyToNull(jsonObject[key]);
942
- }
943
- else if (typeof jsonObject[key] === 'string' && jsonObject[key].trim() === '') {
944
- jsonObject[key] = null;
945
- }
946
- }));
947
- }
948
- /**
949
- * @private
950
- * @param {?} queryName
951
- * @param {?} queryString
952
- * @return {?}
953
- */
954
- getGraphQueryData(queryName, queryString) {
955
- return this.http
956
- .post(this.serviceApiUrl, { query: queryString })
957
- .pipe(map((/**
958
- * @param {?} __0
959
- * @return {?}
960
- */
961
- ({ data }) => {
962
- return data[queryName];
963
- })));
964
- }
965
- /**
966
- * @return {?}
967
- */
968
- getOffenderListOptions() {
969
- /** @type {?} */
970
- const queryName = 'findOffenderListOptions';
971
- /** @type {?} */
972
- const queryString = `{
973
- ${queryName} {
974
- data {
975
- offenderListOptionId
976
- name
977
- serviceApiFieldName
978
- }
979
- message
980
- }
981
- }`;
982
- return this.getGraphQueryData(queryName, queryString);
983
- }
984
- /**
985
- * @param {?} staffId
986
- * @return {?}
987
- */
988
- getStaffOffenderListOptions(staffId) {
989
- /** @type {?} */
990
- const queryString = `{findStaffOffenderListOptions(input:{
991
- where:{
992
- staffId: ${staffId}
993
- }
994
- }){
995
- data{
996
- offenderListOptionId
997
- }
998
- } }`;
999
- return this.http
1000
- .post(this.serviceApiUrl, { query: queryString })
1001
- .pipe(map((/**
1002
- * @param {?} __0
1003
- * @return {?}
1004
- */
1005
- ({ data }) => {
1006
- return data.findStaffOffenderListOptions.data;
1007
- })));
1008
- }
1009
- /**
1010
- * @param {?} dataToSave
1011
- * @return {?}
1012
- */
1013
- saveStaffOffenderListOptionsData(dataToSave) {
1014
- /** @type {?} */
1015
- const query = `mutation {
1016
- upsertStaffOffenderListOption(input: ${this.convertToString(dataToSave)}) {
1017
- message
1018
- }
1019
- }`;
1020
- return this.http
1021
- .post(this.serviceApiUrl, { query });
1022
- /*.pipe(
1023
- map(({ data }) => {
1024
- return data[queryName];
1025
- }));*/
1026
- }
1027
- /**
1028
- * @param {?} obj
1029
- * @return {?}
1030
- */
1031
- convertToString(obj) {
1032
- /** @type {?} */
1033
- let result = '';
1034
- if (!obj) {
1035
- return result;
1036
- }
1037
- if (obj instanceof Array) {
1038
- result += ' [';
1039
- obj.forEach((/**
1040
- * @param {?} eObj
1041
- * @return {?}
1042
- */
1043
- eObj => {
1044
- result += this.convertToString(eObj);
1045
- }));
1046
- result += '],';
1047
- }
1048
- else {
1049
- result += '{';
1050
- /** @type {?} */
1051
- const keys = Object.keys(obj);
1052
- keys.forEach((/**
1053
- * @param {?} key
1054
- * @return {?}
1055
- */
1056
- (key) => {
1057
- if (typeof obj[key] === 'object') {
1058
- result += key + ':' + this.convertToString(obj[key]);
1059
- }
1060
- else {
1061
- if (isNaN(obj[key])) {
1062
- result += key + ':"' + obj[key] + '",';
1063
- }
1064
- else {
1065
- result += key + ':' + obj[key] + ',';
1066
- }
1067
- }
1068
- }));
1069
- result = result.substring(0, result.length - 1);
1070
- result += '},';
1071
- }
1072
- return result;
1073
- }
1074
- }
1075
- SmartStaffOffenderOptionsService.decorators = [
1076
- { type: Injectable }
1077
- ];
1078
- /** @nocollapse */
1079
- SmartStaffOffenderOptionsService.ctorParameters = () => [
1080
- { type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] },
1081
- { type: HttpClient },
1082
- { type: MatSnackBar }
1083
- ];
1084
-
1085
- /**
1086
- * @fileoverview added by tsickle
1087
- * Generated from: lib/smart-staff-offender-options/smart-staff-offender-options.component.ts
1088
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1089
- */
1090
- class SmartStaffOffenderOptionsComponent {
1091
- /**
1092
- * @param {?} route
1093
- * @param {?} offenderService
1094
- * @param {?} xdmService
1095
- */
1096
- constructor(route, offenderService, xdmService) {
1097
- this.route = route;
1098
- this.offenderService = offenderService;
1099
- this.xdmService = xdmService;
1100
- this.offenderListOptions = [];
1101
- }
1102
- /**
1103
- * @return {?}
1104
- */
1105
- ngOnInit() {
1106
- /** @type {?} */
1107
- const routData = this.route.snapshot.data;
1108
- this.loginStaff = routData.loginStaff;
1109
- this.offenderListOptions = routData.selectedOffenderResolverService;
1110
- this.frmGroup = this.createForm();
1111
- this.offenderService.getStaffOffenderListOptions(this.loginStaff.staffId).subscribe((/**
1112
- * @param {?} data
1113
- * @return {?}
1114
- */
1115
- data => {
1116
- this.fillForm(data);
1117
- }));
1118
- }
1119
- /**
1120
- * @private
1121
- * @param {?} data
1122
- * @return {?}
1123
- */
1124
- fillForm(data) {
1125
- if (data) {
1126
- /** @type {?} */
1127
- const offenderListOptionsFg = this.frmGroup.get('offenderListOptions');
1128
- data.forEach((/**
1129
- * @param {?} element
1130
- * @return {?}
1131
- */
1132
- element => {
1133
- offenderListOptionsFg.get(element.offenderListOptionId).setValue(true);
1134
- }));
1135
- }
1136
- }
1137
- /**
1138
- * @private
1139
- * @return {?}
1140
- */
1141
- createForm() {
1142
- /** @type {?} */
1143
- const offenderListOptionsFg = new FormGroup({});
1144
- this.offenderListOptions.forEach((/**
1145
- * @param {?} dt
1146
- * @param {?} i
1147
- * @return {?}
1148
- */
1149
- (dt, i) => {
1150
- offenderListOptionsFg.addControl(dt.offenderListOptionId, new FormControl(false));
1151
- }));
1152
- return new FormGroup({
1153
- offenderListOptions: offenderListOptionsFg,
1154
- });
1155
- }
1156
- /**
1157
- * @return {?}
1158
- */
1159
- onSave() {
1160
- /** @type {?} */
1161
- const data = {
1162
- options: [],
1163
- staffId: this.loginStaff.staffId,
1164
- modifiedBy: this.loginStaff.staffId
1165
- };
1166
- /** @type {?} */
1167
- const offenderListOptionsVal = this.frmGroup.get('offenderListOptions').value;
1168
- /** @type {?} */
1169
- const keys = Object.keys(offenderListOptionsVal);
1170
- keys.forEach((/**
1171
- * @param {?} key
1172
- * @return {?}
1173
- */
1174
- key => {
1175
- if (offenderListOptionsVal[key]) {
1176
- data.options.push({ 'offenderListOptionId': key });
1177
- }
1178
- }));
1179
- this.offenderService.saveStaffOffenderListOptionsData(data).subscribe((/**
1180
- * @param {?} rtrDatea
1181
- * @return {?}
1182
- */
1183
- rtrDatea => {
1184
- if (rtrDatea.message) {
1185
- this.offenderService.showMessage(rtrDatea.message);
1186
- }
1187
- else {
1188
- this.offenderService.showMessage('Saved successfully');
1189
- this.xdmService.refreshLoginStaffOptions();
1190
- }
1191
- }));
1192
- }
1193
- }
1194
- SmartStaffOffenderOptionsComponent.decorators = [
1195
- { type: Component, args: [{
1196
- selector: 'lib-smart-staff-offender-options',
1197
- template: "<form class=\"main-form\" [formGroup]=\"frmGroup\">\r\n <mat-card role=\"group\">\r\n <mat-card-content>\r\n <div formGroupName=\"offenderListOptions\">\r\n <div style=\"float:left;\">\r\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\">\r\n <mat-checkbox *ngIf=\"i%2!=0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\r\n {{offenderListOption.name}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n <div>\r\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\" >\r\n <mat-checkbox *ngIf=\"i%2==0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\r\n {{offenderListOption.name}}\r\n </mat-checkbox> \r\n </div>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n <div align=\"center\">\r\n <button mat-raised-button color=\"accent\" (click)=\"onSave()\">Save</button>\r\n </div>\r\n </mat-card>\r\n </form>\r\n ",
1198
- styles: [""]
1199
- }] }
1200
- ];
1201
- /** @nocollapse */
1202
- SmartStaffOffenderOptionsComponent.ctorParameters = () => [
1203
- { type: ActivatedRoute },
1204
- { type: SmartStaffOffenderOptionsService },
1205
- { type: XdmService }
1206
- ];
1207
-
1208
- /**
1209
- * @fileoverview added by tsickle
1210
- * Generated from: lib/smart-auth/smart-auth.service.ts
1211
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1212
- */
1213
- // import { stringify } from 'querystring';
1214
- class SmartAuthService {
1215
- /**
1216
- * @param {?} http
1217
- * @param {?} authnService
1218
- * @param {?} xdmService
1219
- * @param {?} smartDataServiceUrl
1220
- * @param {?} smartDomainFormatUrl
1221
- */
1222
- constructor(http, authnService, xdmService, smartDataServiceUrl, smartDomainFormatUrl) {
1223
- this.http = http;
1224
- this.authnService = authnService;
1225
- this.xdmService = xdmService;
1226
- this.smartDataServiceUrl = smartDataServiceUrl;
1227
- this.smartDomainFormatUrl = smartDomainFormatUrl;
1228
- }
1229
- /**
1230
- * @return {?}
1231
- */
1232
- getLoginStaff() {
1233
- if (isDevMode) {
1234
- console.log('SmartAuthService - getLoginStaff()');
1235
- }
1236
- if (!isDevMode && this.loginStaff) {
1237
- if (this.loginStaff.staffId) {
1238
- if (isDevMode) {
1239
- console.log('##### getLoginStaff(): get internal instance in service', this.loginStaff);
1240
- }
1241
- return of(this.loginStaff);
1242
- }
1243
- else if (this.loginStaff.userName) {
1244
- if (isDevMode) {
1245
- console.log('##### getLoginStaff(): get using preset user name', this.loginStaff);
1246
- }
1247
- return this.getStaff(this.loginStaff.userName);
1248
- }
1249
- }
1250
- return from(this.xdmService.getLoginStaff()).pipe(switchMap((/**
1251
- * @param {?} storedResult
1252
- * @return {?}
1253
- */
1254
- (storedResult) => {
1255
- if (storedResult && storedResult.staffId) {
1256
- if (isDevMode) {
1257
- console.log('##### getLoginStaff(): get from session.', storedResult);
1258
- }
1259
- this.loginStaff = storedResult;
1260
- return of(storedResult);
1261
- }
1262
- else if (storedResult && storedResult.userName) {
1263
- if (isDevMode) {
1264
- console.log('##### getLoginStaff(): get using preset user name', this.loginStaff);
1265
- }
1266
- return this.getStaff(storedResult.userName);
1267
- }
1268
- else {
1269
- /** @type {?} */
1270
- const userName = this.authnService.getAccount().userName;
1271
- /** @type {?} */
1272
- const staffName = userName.substring(0, userName.indexOf('@'));
1273
- if (isDevMode) {
1274
- console.log('##### loginLoginStaff(): get using login staff name ', staffName);
1275
- }
1276
- return this.getStaff(staffName);
1277
- }
1278
- })));
1279
- }
1280
- /**
1281
- * @private
1282
- * @param {?} app
1283
- * @param {?} afterHash
1284
- * @return {?}
1285
- */
1286
- getTeamUrl(app, afterHash) {
1287
- return this.smartDomainFormatUrl.replace('${APP}', app) + afterHash;
1288
- }
1289
- /**
1290
- * @private
1291
- * @param {?} url
1292
- * @param {?} app
1293
- * @return {?}
1294
- */
1295
- isSameHost(url, app) {
1296
- return this.smartDomainFormatUrl.replace('${APP}', app) === url;
1297
- }
1298
- /**
1299
- * @param {?} loginStaff
1300
- * @return {?}
1301
- */
1302
- redirectToTeam(loginStaff) {
1303
- if (loginStaff.roles.findIndex((/**
1304
- * @param {?} role
1305
- * @return {?}
1306
- */
1307
- (role) => role.roleId === 'EUUSPC')) > -1) {
1308
- if (!this.isSameHost(window.location.origin, 'investigation')) {
1309
- window.location.href = this.getTeamUrl('investigation', '/assignment');
1310
- }
1311
- }
1312
- else if (loginStaff.roles.findIndex((/**
1313
- * @param {?} role
1314
- * @return {?}
1315
- */
1316
- (role) => role.roleId.substring(0, 3) === 'RSC')) > -1) {
1317
- if (!this.isSameHost(window.location.origin, 'rsc')) {
1318
- window.location.href = this.getTeamUrl('rsc', '/offender-list');
1319
- }
1320
- }
1321
- }
1322
- /**
1323
- * @param {?} selectedOffender
1324
- * @return {?}
1325
- */
1326
- setSelectedOffender(selectedOffender) {
1327
- return __awaiter(this, void 0, void 0, function* () {
1328
- if (selectedOffender) {
1329
- // if (!selectedOffender.assignmentStaffRelationId) {
1330
- /** @type {?} */
1331
- const relation = yield this.getStaffOffenderRelation(this.loginStaff.staffId, selectedOffender.offenderId).toPromise();
1332
- if (relation) {
1333
- selectedOffender.assignmentStaffRelationId = relation;
1334
- }
1335
- else {
1336
- selectedOffender.assignmentStaffRelationId = 'NOASSIGN';
1337
- }
1338
- // }
1339
- }
1340
- this.xdmService.setSelectedOffender(selectedOffender);
1341
- this.selectedOffender = selectedOffender;
1342
- });
1343
- }
1344
- /**
1345
- * @return {?}
1346
- */
1347
- logout() {
1348
- this.xdmService.clearAll();
1349
- this.authnService.logout();
1350
- }
1351
- /**
1352
- * @param {?} appModuleId
1353
- * @param {?} route
1354
- * @return {?}
1355
- */
1356
- setPermission(appModuleId, route) {
1357
- return __awaiter(this, void 0, void 0, function* () {
1358
- if (!this.loginStaff) {
1359
- this.loginStaff = yield this.xdmService.getLoginStaff();
1360
- }
1361
- /** @type {?} */
1362
- const permissions = this.loginStaff.permissions;
1363
- /** @type {?} */
1364
- const resource = route.url[0].path;
1365
- if (!this.selectedOffender) {
1366
- this.selectedOffender = yield this.xdmService.getSelectedOffender();
1367
- }
1368
- if (this.selectedOffender) {
1369
- // if (!this.selectedOffender.assignmentStaffRelationId) {
1370
- /** @type {?} */
1371
- const relation = yield this.getStaffOffenderRelation(this.loginStaff.staffId, this.selectedOffender.offenderId).toPromise();
1372
- if (relation) {
1373
- this.selectedOffender.assignmentStaffRelationId = relation;
1374
- }
1375
- else {
1376
- this.selectedOffender.assignmentStaffRelationId = 'NOASSIGN';
1377
- }
1378
- this.xdmService.setSelectedOffender(this.selectedOffender);
1379
- // }
1380
- }
1381
- /** @type {?} */
1382
- const assignmentStaffRelationId = this.selectedOffender
1383
- .assignmentStaffRelationId;
1384
- /** @type {?} */
1385
- const elements = document.querySelectorAll('[class^="sac-"]');
1386
- /** @type {?} */
1387
- const pattern = /^sac-(\S+)-(\S+)$/i;
1388
- Array.from(elements).forEach((/**
1389
- * @param {?} element
1390
- * @return {?}
1391
- */
1392
- (element) => {
1393
- /** @type {?} */
1394
- let hide;
1395
- /** @type {?} */
1396
- let disable;
1397
- element.classList.forEach((/**
1398
- * @param {?} c
1399
- * @return {?}
1400
- */
1401
- (c) => {
1402
- /** @type {?} */
1403
- const results = c.match(pattern);
1404
- // console.log(results);
1405
- if (results && results.length > 2) {
1406
- /** @type {?} */
1407
- const roleId = results[1] ? results[1].toUpperCase() : null;
1408
- /** @type {?} */
1409
- const right = results[2];
1410
- // console.log(results[0]);
1411
- // console.log(results[1]);
1412
- // console.log(results[2]);
1413
- /** @type {?} */
1414
- const permission = permissions.find((/**
1415
- * @param {?} p
1416
- * @return {?}
1417
- */
1418
- function (p) {
1419
- return (p.appModuleId === appModuleId &&
1420
- p.resource === resource &&
1421
- p.roleId === roleId &&
1422
- p.assignmentStaffRelationId === assignmentStaffRelationId);
1423
- }));
1424
- /*
1425
- console.log('##### setPermission() resource: ', resource);
1426
- console.log('##### setPermission() appModuleId: ', appModuleId);
1427
- console.log('##### setPermission() roleId: ', roleId);
1428
- console.log(
1429
- '##### setPermission() assignment relation: ',
1430
- assignmentStaffRelationId,
1431
- );
1432
- */
1433
- console.log('##### Matched permission: ', permission);
1434
- if (permission) {
1435
- if (right === 'read') {
1436
- if (!permission.readFlag) {
1437
- if (hide !== false) {
1438
- hide = true;
1439
- }
1440
- }
1441
- else {
1442
- hide = false;
1443
- }
1444
- }
1445
- else if ((right === 'create' && !permission.createFlag) ||
1446
- (right === 'update' && !permission.updateFlag) ||
1447
- (right === 'delete' && !permission.deleteFlag) ||
1448
- (right === 'assign' && !permission.assignFlag) ||
1449
- (right === 'close' && !permission.closeFlag) ||
1450
- (right === 'expunge' && !permission.expungeFlag) ||
1451
- (right === 'reopen' && !permission.reopenFlag)) {
1452
- if (element.nodeName === 'BUTTON') {
1453
- if (hide !== false) {
1454
- hide = true;
1455
- }
1456
- }
1457
- else {
1458
- if (disable !== false) {
1459
- disable = true;
1460
- }
1461
- }
1462
- }
1463
- else {
1464
- if (element.nodeName === 'BUTTON') {
1465
- hide = false;
1466
- }
1467
- else {
1468
- disable = false;
1469
- }
1470
- }
1471
- }
1472
- else {
1473
- if (right === 'read') {
1474
- if (hide !== false) {
1475
- hide = true;
1476
- }
1477
- }
1478
- else if (element.nodeName === 'BUTTON') {
1479
- if (hide !== false) {
1480
- hide = true;
1481
- }
1482
- }
1483
- else if (disable !== false) {
1484
- disable = true;
1485
- }
1486
- }
1487
- }
1488
- }));
1489
- console.log('hide: ', hide);
1490
- console.log('disable: ', disable);
1491
- if (hide === true) {
1492
- this.hideHtmlElement(element);
1493
- }
1494
- else if (disable === true) {
1495
- this.disableHtmlElement(element);
1496
- }
1497
- }));
1498
- });
1499
- }
1500
- /**
1501
- * @param {?} accessControlConfig
1502
- * @return {?}
1503
- */
1504
- checkPermission(accessControlConfig) {
1505
- /** @type {?} */
1506
- const selData = accessControlConfig.route.data;
1507
- this.loginStaff = selData.loginStaff;
1508
- this.selectedOffender = selData.selectedOffender;
1509
- /** @type {?} */
1510
- const permissions = this.loginStaff.permissions;
1511
- /** @type {?} */
1512
- const resource = accessControlConfig.route.url[0].path;
1513
- /** @type {?} */
1514
- const roleId = accessControlConfig.roleId
1515
- ? accessControlConfig.roleId.toUpperCase()
1516
- : null;
1517
- /** @type {?} */
1518
- const accessType = accessControlConfig.accessType;
1519
- /** @type {?} */
1520
- const assignmentStaffRelationId = !this.selectedOffender
1521
- .assignmentStaffRelationId
1522
- ? 'N/A'
1523
- : this.selectedOffender.assignmentStaffRelationId;
1524
- /** @type {?} */
1525
- const permission = permissions.find((/**
1526
- * @param {?} p
1527
- * @return {?}
1528
- */
1529
- (p) => {
1530
- return (p.appModuleId === accessControlConfig.appModuleId &&
1531
- p.resource === resource &&
1532
- (!roleId || p.roleId === roleId) &&
1533
- p.assignmentStaffRelationId === assignmentStaffRelationId);
1534
- }));
1535
- if (permission) {
1536
- if (accessType === 'read') {
1537
- if (!permission.readFlag) {
1538
- return false;
1539
- }
1540
- else {
1541
- return true;
1542
- }
1543
- }
1544
- else if ((accessType === 'create' && !permission.createFlag) ||
1545
- (accessType === 'update' && !permission.updateFlag) ||
1546
- (accessType === 'delete' && !permission.deleteFlag) ||
1547
- (accessType === 'assign' && !permission.assignFlag) ||
1548
- (accessType === 'close' && !permission.closeFlag) ||
1549
- (accessType === 'expunge' && !permission.expungeFlag) ||
1550
- (accessType === 'reopen' && !permission.reopenFlag)) {
1551
- return false;
1552
- }
1553
- else {
1554
- return true;
1555
- }
1556
- }
1557
- else {
1558
- if (accessType === 'read') {
1559
- return false;
1560
- }
1561
- }
1562
- return false;
1563
- }
1564
- /**
1565
- * @param {?} loginStaff
1566
- * @param {?} feature
1567
- * @param {?=} appModuleId
1568
- * @return {?}
1569
- */
1570
- canAppFeatureActivate(loginStaff, feature, appModuleId = null) {
1571
- // if (!this.isAuthEnable(loginStaff.roles, appModuleId)) {
1572
- // return true;
1573
- // }
1574
- return this.hasAppFeaturePermission(loginStaff.permissions, feature, appModuleId);
1575
- }
1576
- // public isAuthEnable(roles: Role[], appModuleId: string) {
1577
- // if (roles && roles.length > 0) {
1578
- // return roles.map(r => r.roleId).findIndex(this.isExternalRole) > -1 || appModuleId === 'RR';
1579
- // }
1580
- // return false;
1581
- // }
1582
- /**
1583
- * @param {?} roles
1584
- * @return {?}
1585
- */
1586
- hasIntakeRole(roles) {
1587
- if (roles && roles.length > 0) {
1588
- return roles.findIndex(this.isIntakeRole) > -1;
1589
- }
1590
- return false;
1591
- }
1592
- /**
1593
- * @private
1594
- * @param {?} permissions
1595
- * @param {?} feature
1596
- * @param {?} appModuleId
1597
- * @return {?}
1598
- */
1599
- hasAppFeaturePermission(permissions, feature, appModuleId) {
1600
- if (permissions && permissions.length > 0) {
1601
- if (appModuleId) {
1602
- return (permissions.findIndex((/**
1603
- * @param {?} p
1604
- * @return {?}
1605
- */
1606
- (p) => p.resource === feature && p.appModuleId === appModuleId)) > -1);
1607
- }
1608
- else {
1609
- return permissions.findIndex((/**
1610
- * @param {?} p
1611
- * @return {?}
1612
- */
1613
- (p) => p.resource === feature)) > -1;
1614
- }
1615
- }
1616
- return false;
1617
- }
1618
- /**
1619
- * @private
1620
- * @param {?} roleId
1621
- * @return {?}
1622
- */
1623
- isExternalRole(roleId) {
1624
- switch (roleId) {
1625
- case 'EUDTL':
1626
- case 'EUDUSM':
1627
- case 'EUJDG':
1628
- case 'EUMPD':
1629
- case 'EUSOTV':
1630
- case 'EUUSA2':
1631
- case 'EUUSAO':
1632
- case 'EUUSPC':
1633
- return true;
1634
- default:
1635
- return false;
1636
- }
1637
- }
1638
- /**
1639
- * @private
1640
- * @param {?} role
1641
- * @return {?}
1642
- */
1643
- isIntakeRole(role) {
1644
- switch (role.roleId) {
1645
- case 'OPA':
1646
- case 'OPS':
1647
- case 'SOPS':
1648
- return true;
1649
- default:
1650
- return false;
1651
- }
1652
- }
1653
- /**
1654
- * @private
1655
- * @param {?} element
1656
- * @return {?}
1657
- */
1658
- disableHtmlElement(element) {
1659
- // console.log(element);
1660
- switch (element.nodeName) {
1661
- case 'A':
1662
- element.setAttribute('style', 'pointer-events: none;cursor: not-allowed;');
1663
- element.setAttribute('tabIndex', '-1');
1664
- break;
1665
- default:
1666
- element.setAttribute('disabled', 'disabled');
1667
- break;
1668
- }
1669
- }
1670
- /**
1671
- * @private
1672
- * @param {?} element
1673
- * @return {?}
1674
- */
1675
- hideHtmlElement(element) {
1676
- // element.setAttribute('hidden', 'hidden');
1677
- element.setAttribute('style', 'display: none;');
1678
- }
1679
- /**
1680
- * @private
1681
- * @param {?} userName
1682
- * @return {?}
1683
- */
1684
- getStaff(userName) {
1685
- /** @type {?} */
1686
- const queryString = `
1687
- {
1688
- findvStaffs(input: {where: {userName: "${userName}", activeFlag: true}}) {
1689
- totalCount
1690
- message
1691
- data {
1692
- staffId
1693
- userName
1694
- lastName
1695
- firstName
1696
- phone
1697
- email
1698
- roles {
1699
- roleId
1700
- role
1701
- }
1702
- permissions {
1703
- roleId
1704
- appModuleId
1705
- resource
1706
- assignmentStaffRelationId
1707
- readFlag
1708
- createFlag
1709
- updateFlag
1710
- deleteFlag
1711
- assignFlag
1712
- reopenFlag
1713
- closeFlag
1714
- expungeFlag
1715
- }
1716
- options {
1717
- offenderListOptionId
1718
- name
1719
- serviceApiFieldName
1720
- selectedFlag
1721
- }
1722
- }
1723
- }
1724
- }`;
1725
- return this.http
1726
- .post(this.smartDataServiceUrl, { query: queryString })
1727
- .pipe(take(1), map((/**
1728
- * @param {?} result
1729
- * @return {?}
1730
- */
1731
- (result) => {
1732
- if (isDevMode) {
1733
- console.log('##### getStaff() from service ', result);
1734
- }
1735
- if (result.data.findvStaffs.data.length > 0) {
1736
- /** @type {?} */
1737
- const data = result.data.findvStaffs.data[0];
1738
- this.xdmService.setLoginStaff(data);
1739
- this.loginStaff = data;
1740
- return data;
1741
- }
1742
- else {
1743
- return null;
1744
- // return throwError('No access right.');
1745
- }
1746
- })), catchError((/**
1747
- * @param {?} error
1748
- * @return {?}
1749
- */
1750
- (error) => {
1751
- console.log('error ' + error);
1752
- return null;
1753
- })));
1754
- }
1755
- /**
1756
- * @private
1757
- * @param {?} staffId
1758
- * @param {?} offenderId
1759
- * @return {?}
1760
- */
1761
- getStaffOffenderRelation(staffId, offenderId) {
1762
- /** @type {?} */
1763
- const queryString = `
1764
- {
1765
- findvStaffOffenderRelations(input: {where: {staffId: ${staffId}, offenderId: ${offenderId}}}) {
1766
- data {
1767
- assignmentStaffRelationId
1768
- }
1769
- }
1770
- }`;
1771
- return this.http
1772
- .post(this.smartDataServiceUrl, { query: queryString })
1773
- .pipe(take(1), map((/**
1774
- * @param {?} result
1775
- * @return {?}
1776
- */
1777
- (result) => {
1778
- if (isDevMode) {
1779
- console.log('##### getStaffOffenderRelation() from service ', result);
1780
- }
1781
- if (result.data.findvStaffOffenderRelations.data.length > 0) {
1782
- /** @type {?} */
1783
- const data = result.data.findvStaffOffenderRelations.data[0];
1784
- return data.assignmentStaffRelationId;
1785
- }
1786
- else {
1787
- return null;
1788
- // return throwError('No access right.');
1789
- }
1790
- })), catchError((/**
1791
- * @param {?} error
1792
- * @return {?}
1793
- */
1794
- (error) => {
1795
- console.log('error ' + error);
1796
- return null;
1797
- })));
1798
- }
1799
- /**
1800
- * @private
1801
- * @param {?} appModuleId
1802
- * @param {?} resource
1803
- * @return {?}
1804
- */
1805
- getRolePermissions(appModuleId, resource) {
1806
- /** @type {?} */
1807
- const queryString = `
1808
- query findvRolePermissionPivots{
1809
- findvRolePermissionPivots(input: {where: {appModuleId: ${appModuleId}, resource: ${resource}}}){
1810
- totalCount
1811
- message
1812
- }
1813
- }`;
1814
- return this.http
1815
- .post(this.smartDataServiceUrl, { query: queryString })
1816
- .pipe(take(1), map((/**
1817
- * @param {?} result
1818
- * @return {?}
1819
- */
1820
- (result) => {
1821
- if (isDevMode) {
1822
- console.log('##### findvRolePermissionPivots() from service ', result);
1823
- }
1824
- if (result.data.findvRolePermissionPivots.totalCount > 0) {
1825
- return true;
1826
- }
1827
- else {
1828
- return false;
1829
- // return throwError('No access right.');
1830
- }
1831
- })), catchError((/**
1832
- * @param {?} error
1833
- * @return {?}
1834
- */
1835
- (error) => {
1836
- console.log('error ' + error);
1837
- return throwError(error);
1838
- })));
1839
- }
1840
- }
1841
- SmartAuthService.decorators = [
1842
- { type: Injectable, args: [{
1843
- providedIn: 'root',
1844
- },] }
1845
- ];
1846
- /** @nocollapse */
1847
- SmartAuthService.ctorParameters = () => [
1848
- { type: HttpClient },
1849
- { type: MsalService },
1850
- { type: XdmService },
1851
- { type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] },
1852
- { type: String, decorators: [{ type: Inject, args: [SMART_DOMAIN_FORMAT,] }] }
1853
- ];
1854
- /** @nocollapse */ SmartAuthService.ngInjectableDef = defineInjectable({ factory: function SmartAuthService_Factory() { return new SmartAuthService(inject(HttpClient), inject(MsalService), inject(XdmService), inject(SMART_DATA_SERVICE_URL), inject(SMART_DOMAIN_FORMAT)); }, token: SmartAuthService, providedIn: "root" });
1855
-
1856
- /**
1857
- * @fileoverview added by tsickle
1858
- * Generated from: lib/smart-auth/smart-access-control.directive.ts
1859
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1860
- */
1861
- class SmartAccessControlDirective {
1862
- /**
1863
- * @param {?} elementRef
1864
- * @param {?} auth
1865
- */
1866
- constructor(elementRef, auth) {
1867
- this.elementRef = elementRef;
1868
- this.auth = auth;
1869
- }
1870
- /**
1871
- * @return {?}
1872
- */
1873
- ngOnInit() {
1874
- this.checkAccess();
1875
- }
1876
- /**
1877
- * @return {?}
1878
- */
1879
- checkAccess() {
1880
- if (!this.accessControlConfig ||
1881
- !this.accessControlConfig.route ||
1882
- !this.accessControlConfig.route.data ||
1883
- !this.accessControlConfig.route.data.loginStaff ||
1884
- !this.accessControlConfig.route.data.selectedOffender) {
1885
- return;
1886
- }
1887
- // const loginStaff = this.accessControlConfig.route.data.loginStaff;
1888
- // if (!this.auth.isAuthEnable(loginStaff.roles, this.accessControlConfig.appModuleId)) {
1889
- // return;
1890
- // }
1891
- this.elementRef.nativeElement.style.display = this.auth.checkPermission(this.accessControlConfig)
1892
- ? 'block'
1893
- : 'none';
1894
- }
1895
- }
1896
- SmartAccessControlDirective.decorators = [
1897
- { type: Directive, args: [{
1898
- selector: '[accessControl]',
1899
- },] }
1900
- ];
1901
- /** @nocollapse */
1902
- SmartAccessControlDirective.ctorParameters = () => [
1903
- { type: ElementRef },
1904
- { type: SmartAuthService }
1905
- ];
1906
- SmartAccessControlDirective.propDecorators = {
1907
- accessControlConfig: [{ type: Input }]
1908
- };
1909
-
1910
- /**
1911
- * @fileoverview added by tsickle
1912
- * Generated from: lib/smart-auth/smart-authorization-guard.service.ts
1913
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1914
- */
1915
- class SmartAuthorizationGuard {
1916
- /**
1917
- * @param {?} authnService
1918
- */
1919
- constructor(authnService) {
1920
- this.authnService = authnService;
1921
- }
1922
- /**
1923
- * @param {?} route
1924
- * @return {?}
1925
- */
1926
- canActivate(route) {
1927
- return this.authnService.getLoginStaff().pipe(take(1), mergeMap((/**
1928
- * @param {?} loginStaff
1929
- * @return {?}
1930
- */
1931
- (loginStaff) => {
1932
- if (!loginStaff || !route || !route.routeConfig) {
1933
- return of(false);
1934
- }
1935
- // if (!this.authnService.isAuthEnable(loginStaff.roles, null)) {
1936
- // return of(true);
1937
- // }
1938
- /** @type {?} */
1939
- const resource = route.routeConfig.path
1940
- ? route.routeConfig.path.split('/')[0]
1941
- : '';
1942
- /** @type {?} */
1943
- const isFeatureValid = this.authnService.canAppFeatureActivate(loginStaff, resource);
1944
- return of(isFeatureValid);
1945
- })), catchError((/**
1946
- * @param {?} error
1947
- * @return {?}
1948
- */
1949
- (error) => {
1950
- return of(false);
1951
- })));
1952
- }
1953
- }
1954
- SmartAuthorizationGuard.decorators = [
1955
- { type: Injectable }
1956
- ];
1957
- /** @nocollapse */
1958
- SmartAuthorizationGuard.ctorParameters = () => [
1959
- { type: SmartAuthService }
1960
- ];
1961
-
1962
- /**
1963
- * @fileoverview added by tsickle
1964
- * Generated from: lib/ngc-smart-core.module.ts
1965
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1966
- */
1967
- class NgcSmartCoreModule {
1968
- }
1969
- NgcSmartCoreModule.decorators = [
1970
- { type: NgModule, args: [{
1971
- declarations: [
1972
- SmartOffenderHeaderComponent,
1973
- SmartNavbarComponent,
1974
- SmartErrorComponent,
1975
- SmartStaffOffenderOptionsComponent,
1976
- SmartAccessControlDirective,
1977
- ],
1978
- imports: [
1979
- CommonModule,
1980
- HttpClientModule,
1981
- MatButtonModule,
1982
- MatMenuModule,
1983
- MatTabsModule,
1984
- MatSelectModule,
1985
- MatCardModule,
1986
- MatCheckboxModule,
1987
- ReactiveFormsModule,
1988
- ],
1989
- exports: [
1990
- SmartOffenderHeaderComponent,
1991
- SmartNavbarComponent,
1992
- SmartErrorComponent,
1993
- SmartStaffOffenderOptionsComponent,
1994
- SmartAccessControlDirective,
1995
- ],
1996
- providers: [
1997
- SmartNavbarService,
1998
- SmartOffenderHeaderService,
1999
- SmartStaffOffenderOptionsService,
2000
- SmartAuthorizationGuard,
2001
- MatSnackBar,
2002
- ],
2003
- },] }
2004
- ];
2005
-
2006
- /**
2007
- * @fileoverview added by tsickle
2008
- * Generated from: lib/smart-auth/smart-login-staff-resolver.service.ts
2009
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2010
- */
2011
- class LoginStaffResolverService {
2012
- /**
2013
- * @param {?} authnService
2014
- * @param {?} router
2015
- */
2016
- constructor(authnService, router) {
2017
- this.authnService = authnService;
2018
- this.router = router;
2019
- }
2020
- /**
2021
- * @param {?} route
2022
- * @param {?} state
2023
- * @return {?}
2024
- */
2025
- resolve(route, state) {
2026
- return this.authnService.getLoginStaff().pipe(take(1), mergeMap((/**
2027
- * @param {?} loginStaff
2028
- * @return {?}
2029
- */
2030
- (loginStaff) => {
2031
- if (isDevMode) {
2032
- console.log('LoginStaffResolverService: ', loginStaff);
2033
- }
2034
- if (loginStaff) {
2035
- return of(loginStaff);
2036
- }
2037
- else {
2038
- return throwError('Not authorized to access SMART.');
2039
- // return EMPTY;
2040
- /*
2041
- this.zone.run(() => {
2042
- this.router.navigate(['/smart-error'], {
2043
- queryParams: {
2044
- type: 'staff',
2045
- message: 'Not authorized to access SMART.'
2046
- }
2047
- });
2048
- });
2049
- return EMPTY;
2050
- */
2051
- }
2052
- })), catchError((/**
2053
- * @param {?} error
2054
- * @return {?}
2055
- */
2056
- (error) => {
2057
- console.log('LoginStaffResolverService: ' + error);
2058
- this.router.navigate(['/smart-error'], {
2059
- queryParams: {
2060
- type: 'staff',
2061
- message: 'SMART Authentication: ' + error,
2062
- },
2063
- });
2064
- return EMPTY;
2065
- })));
2066
- }
2067
- }
2068
- LoginStaffResolverService.decorators = [
2069
- { type: Injectable, args: [{
2070
- providedIn: 'root',
2071
- },] }
2072
- ];
2073
- /** @nocollapse */
2074
- LoginStaffResolverService.ctorParameters = () => [
2075
- { type: SmartAuthService },
2076
- { type: Router }
2077
- ];
2078
- /** @nocollapse */ LoginStaffResolverService.ngInjectableDef = defineInjectable({ factory: function LoginStaffResolverService_Factory() { return new LoginStaffResolverService(inject(SmartAuthService), inject(Router)); }, token: LoginStaffResolverService, providedIn: "root" });
2079
-
2080
- /**
2081
- * @fileoverview added by tsickle
2082
- * Generated from: lib/smart-auth/smart-selected-offender-resolver.service.ts
2083
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2084
- */
2085
- class SelectedOffenderResolverService {
2086
- /**
2087
- * @param {?} service
2088
- * @param {?} zone
2089
- * @param {?} router
2090
- */
2091
- constructor(service, zone, router) {
2092
- this.service = service;
2093
- this.zone = zone;
2094
- this.router = router;
2095
- }
2096
- /**
2097
- * @param {?} route
2098
- * @param {?} state
2099
- * @return {?}
2100
- */
2101
- resolve(route, state) {
2102
- return from(this.service.getSelectedOffender()).pipe(mergeMap((/**
2103
- * @param {?} selectedOffender
2104
- * @return {?}
2105
- */
2106
- (selectedOffender) => {
2107
- if (isDevMode) {
2108
- console.log(selectedOffender);
2109
- }
2110
- if (!selectedOffender) {
2111
- return throwError('No offender selected.');
2112
- }
2113
- return of(selectedOffender);
2114
- })), retryWhen((/**
2115
- * @param {?} errors
2116
- * @return {?}
2117
- */
2118
- (errors) => errors.pipe(
2119
- // tap(() => console.log('Retry getting selected offender.')),
2120
- delay(1000), take(5), (/**
2121
- * @param {?} o
2122
- * @return {?}
2123
- */
2124
- (o) => concat(o, throwError('No offender selected (failed after retries).')))))), catchError((/**
2125
- * @param {?} error
2126
- * @return {?}
2127
- */
2128
- (error) => {
2129
- /*
2130
- this.zone.run(() => {
2131
- this.router.navigate(['/smart-error'], {
2132
- queryParams: { type: 'offender', message: error }
2133
- });
2134
- });
2135
- */
2136
- this.router.navigate(['/smart-error'], {
2137
- queryParams: { type: 'offender', message: error },
2138
- });
2139
- return EMPTY;
2140
- })));
2141
- }
2142
- }
2143
- SelectedOffenderResolverService.decorators = [
2144
- { type: Injectable, args: [{
2145
- providedIn: 'root',
2146
- },] }
2147
- ];
2148
- /** @nocollapse */
2149
- SelectedOffenderResolverService.ctorParameters = () => [
2150
- { type: XdmService },
2151
- { type: NgZone },
2152
- { type: Router }
2153
- ];
2154
- /** @nocollapse */ SelectedOffenderResolverService.ngInjectableDef = defineInjectable({ factory: function SelectedOffenderResolverService_Factory() { return new SelectedOffenderResolverService(inject(XdmService), inject(NgZone), inject(Router)); }, token: SelectedOffenderResolverService, providedIn: "root" });
2155
-
2156
- /**
2157
- * @fileoverview added by tsickle
2158
- * Generated from: lib/smart-navbar/smart-navbar-config.ts
2159
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2160
- */
2161
-
2162
- /**
2163
- * @fileoverview added by tsickle
2164
- * Generated from: lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.ts
2165
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2166
- */
2167
- class SmartStaffOffenderOptionsResolverService {
2168
- /**
2169
- * @param {?} offenderService
2170
- */
2171
- constructor(offenderService) {
2172
- this.offenderService = offenderService;
2173
- }
2174
- /**
2175
- * @return {?}
2176
- */
2177
- resolve() {
2178
- return this.offenderService.getOffenderListOptions()
2179
- .pipe(map((/**
2180
- * @param {?} __0
2181
- * @return {?}
2182
- */
2183
- ({ data }) => {
2184
- return data;
2185
- })));
2186
- }
2187
- }
2188
- SmartStaffOffenderOptionsResolverService.decorators = [
2189
- { type: Injectable, args: [{
2190
- providedIn: 'root',
2191
- },] }
2192
- ];
2193
- /** @nocollapse */
2194
- SmartStaffOffenderOptionsResolverService.ctorParameters = () => [
2195
- { type: SmartStaffOffenderOptionsService }
2196
- ];
2197
- /** @nocollapse */ SmartStaffOffenderOptionsResolverService.ngInjectableDef = defineInjectable({ factory: function SmartStaffOffenderOptionsResolverService_Factory() { return new SmartStaffOffenderOptionsResolverService(inject(SmartStaffOffenderOptionsService)); }, token: SmartStaffOffenderOptionsResolverService, providedIn: "root" });
2198
-
2199
- /**
2200
- * @fileoverview added by tsickle
2201
- * Generated from: lib/smart-auth/smart-access-control-config.ts
2202
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2203
- */
2204
- /** @enum {string} */
2205
- const AccessType = {
2206
- READ: "read",
2207
- CREATE: "create",
2208
- UPDATE: "update",
2209
- DELETE: "delete",
2210
- EXPUNGE: "expunge",
2211
- ASSIGN: "assign",
2212
- REOPEN: "reopen",
2213
- CLOSE: "close",
2214
- };
2215
-
2216
- /**
2217
- * @fileoverview added by tsickle
2218
- * Generated from: public-api.ts
2219
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2220
- */
2221
-
2222
- /**
2223
- * @fileoverview added by tsickle
2224
- * Generated from: csmart-ngc-smart-core.ts
2225
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2226
- */
2227
-
2228
- 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, SmartAccessControlDirective as ɵe, SmartNavbarComponent as ɵc, SmartOffenderHeaderComponent as ɵa, SmartOffenderHeaderService as ɵb, SmartStaffOffenderOptionsService as ɵd };
2229
-
2230
- //# sourceMappingURL=csmart-ngc-smart-core.js.map