@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.
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 +479 -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 +1529 -0
  23. package/fesm2015/csmart-ngc-smart-core.mjs.map +1 -0
  24. package/fesm2020/csmart-ngc-smart-core.mjs +1514 -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 +3 -0
  41. package/package.json +25 -14
  42. package/public-api.d.ts +3 -0
  43. package/bundles/csmart-ngc-smart-core.umd.js +0 -2620
  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 -693
  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 -253
  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 -317
  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 -762
  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 -283
  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 -389
  87. package/esm5/public-api.js +0 -22
  88. package/fesm2015/csmart-ngc-smart-core.js +0 -2231
  89. package/fesm2015/csmart-ngc-smart-core.js.map +0 -1
  90. package/fesm5/csmart-ngc-smart-core.js +0 -2502
  91. package/fesm5/csmart-ngc-smart-core.js.map +0 -1
@@ -1,2231 +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
- * @return {?}
147
- */
148
- setSelectedOffender(selectedOffender) {
149
- this.connection.promise.then((/**
150
- * @param {?} child
151
- * @return {?}
152
- */
153
- (child) => {
154
- child.setSelectedOffender(selectedOffender);
155
- this.offenderSubject.next(selectedOffender);
156
- }));
157
- }
158
- /**
159
- * @return {?}
160
- */
161
- getSelectedOffender() {
162
- return this.connection.promise.then((/**
163
- * @param {?} child
164
- * @return {?}
165
- */
166
- (child) => child.getSelectedOffender(StorageKey.selectedOffender)));
167
- }
168
- /**
169
- * @return {?}
170
- */
171
- clearSelectedOffender() {
172
- this.connection.promise.then((/**
173
- * @param {?} child
174
- * @return {?}
175
- */
176
- (child) => {
177
- child.clearSelectedOffender();
178
- this.offenderSubject.next();
179
- }));
180
- }
181
- /**
182
- * @return {?}
183
- */
184
- getOffenderUpdate() {
185
- return this.offenderSubject.asObservable();
186
- }
187
- /**
188
- * *********************************************************************
189
- * Staff
190
- * **********************************************************************
191
- * @param {?} loginStaff
192
- * @return {?}
193
- */
194
- setLoginStaff(loginStaff) {
195
- this.connection.promise.then((/**
196
- * @param {?} child
197
- * @return {?}
198
- */
199
- (child) => {
200
- child.setLoginStaff(loginStaff);
201
- this.staffSubject.next(loginStaff);
202
- }));
203
- }
204
- /**
205
- * @return {?}
206
- */
207
- getLoginStaff() {
208
- return this.connection.promise.then((/**
209
- * @param {?} child
210
- * @return {?}
211
- */
212
- (child) => child.getLoginStaff(StorageKey.loginStaff)));
213
- }
214
- /**
215
- * @return {?}
216
- */
217
- clearLoginStaff() {
218
- this.connection.promise.then((/**
219
- * @param {?} child
220
- * @return {?}
221
- */
222
- (child) => {
223
- child.clearLoginStaff();
224
- this.staffSubject.next();
225
- }));
226
- }
227
- /**
228
- * @return {?}
229
- */
230
- getStaffUpdate() {
231
- return this.staffSubject.asObservable();
232
- }
233
- /**
234
- * @return {?}
235
- */
236
- refreshLoginStaffOptions() {
237
- this.getLoginStaff().then((/**
238
- * @param {?} oldLoginStaff
239
- * @return {?}
240
- */
241
- (oldLoginStaff) => {
242
- this.getStaffOffenderListOptions(oldLoginStaff.staffId).subscribe((/**
243
- * @param {?} optionData
244
- * @return {?}
245
- */
246
- (optionData) => {
247
- console.log(optionData);
248
- oldLoginStaff.options = optionData;
249
- this.setLoginStaff(oldLoginStaff);
250
- }));
251
- }));
252
- }
253
- /**
254
- * *********************************************************************
255
- * Offender Query
256
- * **********************************************************************
257
- * @param {?} offenderQuery
258
- * @return {?}
259
- */
260
- setOffenderQuery(offenderQuery) {
261
- this.connection.promise.then((/**
262
- * @param {?} child
263
- * @return {?}
264
- */
265
- (child) => {
266
- child.setOffenderQuery(offenderQuery);
267
- this.offenderQuerySubject.next(offenderQuery);
268
- }));
269
- }
270
- /**
271
- * @return {?}
272
- */
273
- getOffenderQuery() {
274
- return this.connection.promise.then((/**
275
- * @param {?} child
276
- * @return {?}
277
- */
278
- (child) => child.getOffenderQuery(StorageKey.offenderQuery)));
279
- }
280
- /**
281
- * @return {?}
282
- */
283
- clearOffenderQuery() {
284
- this.connection.promise.then((/**
285
- * @param {?} child
286
- * @return {?}
287
- */
288
- (child) => {
289
- child.clearOffenderQuery();
290
- this.offenderQuerySubject.next();
291
- }));
292
- }
293
- /**
294
- * @return {?}
295
- */
296
- getOffenderQueryUpdate() {
297
- return this.offenderQuerySubject.asObservable();
298
- }
299
- }
300
- XdmService.decorators = [
301
- { type: Injectable, args: [{
302
- providedIn: 'root',
303
- },] }
304
- ];
305
- /** @nocollapse */
306
- XdmService.ctorParameters = () => [
307
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
308
- { type: String, decorators: [{ type: Inject, args: [SMART_WEB_STORAGE_LISTENER_URL,] }] },
309
- { type: HttpClient },
310
- { type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] }
311
- ];
312
- /** @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" });
313
-
314
- /**
315
- * @fileoverview added by tsickle
316
- * Generated from: lib/smart-offender-header/smart-offender-header.service.ts
317
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
318
- */
319
- class SmartOffenderHeaderService {
320
- /**
321
- * @param {?} smartDataServiceUrl
322
- * @param {?} http
323
- */
324
- constructor(smartDataServiceUrl, http) {
325
- this.smartDataServiceUrl = smartDataServiceUrl;
326
- this.http = http;
327
- }
328
- /**
329
- * @param {?} staffId
330
- * @return {?}
331
- */
332
- getStaffOffenders(staffId) {
333
- /** @type {?} */
334
- const queryString = `
335
- query getStaffOffenderList{
336
- filterOffenderList(input: {staffId: ${staffId}}) {
337
- data {
338
- offenderId
339
- offenderName
340
- pdId
341
- birthDate
342
- gender
343
- }
344
- }
345
- }
346
- `;
347
- return this.http
348
- .post(this.smartDataServiceUrl, { query: queryString })
349
- .pipe(map((/**
350
- * @param {?} __0
351
- * @return {?}
352
- */
353
- ({ data }) => {
354
- return data.filterOffenderList.data;
355
- })));
356
- }
357
- }
358
- SmartOffenderHeaderService.decorators = [
359
- { type: Injectable }
360
- ];
361
- /** @nocollapse */
362
- SmartOffenderHeaderService.ctorParameters = () => [
363
- { type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] },
364
- { type: HttpClient }
365
- ];
366
-
367
- /**
368
- * @fileoverview added by tsickle
369
- * Generated from: lib/smart-offender-header/smart-offender-header.component.ts
370
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
371
- */
372
- class SmartOffenderHeaderComponent {
373
- /**
374
- * @param {?} xdmService
375
- * @param {?} authnService
376
- * @param {?} smartOffenderHeaderService
377
- * @param {?} router
378
- */
379
- constructor(xdmService, authnService, smartOffenderHeaderService, router) {
380
- this.xdmService = xdmService;
381
- this.authnService = authnService;
382
- this.smartOffenderHeaderService = smartOffenderHeaderService;
383
- this.router = router;
384
- this.selectedOffenderControl$ = new FormControl();
385
- }
386
- /**
387
- * @return {?}
388
- */
389
- ngOnInit() {
390
- this.isAuthenticated = this.authnService.getAccount() ? true : false;
391
- this.xdmService.getLoginStaff().then((/**
392
- * @param {?} loginStaff
393
- * @return {?}
394
- */
395
- (loginStaff) => {
396
- this.loginStaff = loginStaff ? loginStaff : null;
397
- }));
398
- this.xdmService.getSelectedOffender().then((/**
399
- * @param {?} selectedOffender
400
- * @return {?}
401
- */
402
- (selectedOffender) => {
403
- this.selectedOffender =
404
- selectedOffender && selectedOffender.offenderId
405
- ? selectedOffender
406
- : null;
407
- }));
408
- this.subscription = this.xdmService
409
- .getOffenderUpdate()
410
- .subscribe((/**
411
- * @param {?} selectedOffender
412
- * @return {?}
413
- */
414
- (selectedOffender) => {
415
- this.selectedOffender = selectedOffender;
416
- this.setSelectedOffenderControl();
417
- }));
418
- this.xdmService.getOffenderQuery().then((/**
419
- * @param {?} offenderQuery
420
- * @return {?}
421
- */
422
- (offenderQuery) => {
423
- if (offenderQuery) {
424
- this.offenderQueryList = offenderQuery.offenders;
425
- this.setSelectedOffenderControl();
426
- }
427
- }));
428
- this.offenderQuerySubscription = this.xdmService.getOffenderQueryUpdate()
429
- .subscribe((/**
430
- * @param {?} offenderList
431
- * @return {?}
432
- */
433
- (offenderList) => {
434
- if (offenderList && offenderList.offenders) {
435
- this.offenderQueryList = [...offenderList.offenders];
436
- }
437
- }));
438
- this.selectedOffenderControl$.valueChanges.subscribe((/**
439
- * @param {?} o
440
- * @return {?}
441
- */
442
- (o) => this.onOffenderSelected(o)));
443
- this.router.routeReuseStrategy.shouldReuseRoute = (/**
444
- * @return {?}
445
- */
446
- () => {
447
- return false;
448
- });
449
- }
450
- /**
451
- * @return {?}
452
- */
453
- ngOnDestroy() {
454
- this.subscription.unsubscribe();
455
- }
456
- /**
457
- * @private
458
- * @param {?} offender
459
- * @return {?}
460
- */
461
- onOffenderSelected(offender) {
462
- if (offender) {
463
- // const o = offender.offenderName.split(',');
464
- // if (o.length === 2) {
465
- // const offenderName = `${o[1]} ${o[0]}`;
466
- // this.selectedOffender = {
467
- // offenderId: offender.offenderId,
468
- // name: offenderName,
469
- // pdId: offender.pdId,
470
- // birthDate: offender.birthDate,
471
- // gender: offender.genderCode,
472
- // assignmentStaffRelationId: '',
473
- // intakeFlag: this.loginStaff
474
- // ? this.hasIntakeRole(this.loginStaff.roles)
475
- // : false,
476
- // } as SelectedOffender;
477
- this.selectedOffender = offender;
478
- this.xdmService.setSelectedOffender(this.selectedOffender);
479
- this.reloadCurrentRoute();
480
- }
481
- }
482
- /**
483
- * @private
484
- * @return {?}
485
- */
486
- setSelectedOffenderControl() {
487
- if (this.selectedOffender &&
488
- this.offenderQueryList &&
489
- this.offenderQueryList.length > 0) {
490
- /** @type {?} */
491
- const o = this.offenderQueryList.find((/**
492
- * @param {?} x
493
- * @return {?}
494
- */
495
- (x) => x.offenderId === this.selectedOffender.offenderId));
496
- if (o) {
497
- this.selectedOffenderControl$.setValue(o, { emitEvent: false });
498
- }
499
- if (!o && this.offenderQueryList.length > 0) {
500
- this.selectedOffenderControl$.setValue(this.offenderQueryList[0], {
501
- emitEvent: false,
502
- });
503
- }
504
- }
505
- }
506
- /**
507
- * @private
508
- * @return {?}
509
- */
510
- reloadCurrentRoute() {
511
- try {
512
- /** @type {?} */
513
- const urlTree = this.router.parseUrl(this.router.url);
514
- if (urlTree
515
- && urlTree.root
516
- && urlTree.root.segments
517
- && urlTree.root.segments.length > 1) {
518
- this.router.navigate([urlTree.root.segments[0].path]);
519
- }
520
- else if (urlTree
521
- && urlTree.root
522
- && urlTree.root.children
523
- && urlTree.root.children.primary
524
- && urlTree.root.children.primary.segments
525
- && urlTree.root.children.primary.segments.length > 1) {
526
- this.router.navigate([urlTree.root.children.primary.segments[0].path]);
527
- }
528
- else {
529
- this.router.navigate([this.router.url]);
530
- }
531
- }
532
- catch (_a) {
533
- this.router.navigateByUrl('/');
534
- }
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 === 'N/A' ||
1534
- p.assignmentStaffRelationId === assignmentStaffRelationId));
1535
- }));
1536
- if (permission) {
1537
- if (accessType === 'read') {
1538
- if (!permission.readFlag) {
1539
- return false;
1540
- }
1541
- else {
1542
- return true;
1543
- }
1544
- }
1545
- else if ((accessType === 'create' && !permission.createFlag) ||
1546
- (accessType === 'update' && !permission.updateFlag) ||
1547
- (accessType === 'delete' && !permission.deleteFlag) ||
1548
- (accessType === 'assign' && !permission.assignFlag) ||
1549
- (accessType === 'close' && !permission.closeFlag) ||
1550
- (accessType === 'expunge' && !permission.expungeFlag) ||
1551
- (accessType === 'reopen' && !permission.reopenFlag)) {
1552
- return false;
1553
- }
1554
- else {
1555
- return true;
1556
- }
1557
- }
1558
- else {
1559
- if (accessType === 'read') {
1560
- return false;
1561
- }
1562
- }
1563
- return false;
1564
- }
1565
- /**
1566
- * @param {?} loginStaff
1567
- * @param {?} feature
1568
- * @param {?=} appModuleId
1569
- * @return {?}
1570
- */
1571
- canAppFeatureActivate(loginStaff, feature, appModuleId = null) {
1572
- // if (!this.isAuthEnable(loginStaff.roles, appModuleId)) {
1573
- // return true;
1574
- // }
1575
- return this.hasAppFeaturePermission(loginStaff.permissions, feature, appModuleId);
1576
- }
1577
- // public isAuthEnable(roles: Role[], appModuleId: string) {
1578
- // if (roles && roles.length > 0) {
1579
- // return roles.map(r => r.roleId).findIndex(this.isExternalRole) > -1 || appModuleId === 'RR';
1580
- // }
1581
- // return false;
1582
- // }
1583
- /**
1584
- * @param {?} roles
1585
- * @return {?}
1586
- */
1587
- hasIntakeRole(roles) {
1588
- if (roles && roles.length > 0) {
1589
- return roles.findIndex(this.isIntakeRole) > -1;
1590
- }
1591
- return false;
1592
- }
1593
- /**
1594
- * @private
1595
- * @param {?} permissions
1596
- * @param {?} feature
1597
- * @param {?} appModuleId
1598
- * @return {?}
1599
- */
1600
- hasAppFeaturePermission(permissions, feature, appModuleId) {
1601
- if (permissions && permissions.length > 0) {
1602
- if (appModuleId) {
1603
- return (permissions.findIndex((/**
1604
- * @param {?} p
1605
- * @return {?}
1606
- */
1607
- (p) => p.resource === feature && p.appModuleId === appModuleId)) > -1);
1608
- }
1609
- else {
1610
- return permissions.findIndex((/**
1611
- * @param {?} p
1612
- * @return {?}
1613
- */
1614
- (p) => p.resource === feature)) > -1;
1615
- }
1616
- }
1617
- return false;
1618
- }
1619
- /**
1620
- * @private
1621
- * @param {?} roleId
1622
- * @return {?}
1623
- */
1624
- isExternalRole(roleId) {
1625
- switch (roleId) {
1626
- case 'EUDTL':
1627
- case 'EUDUSM':
1628
- case 'EUJDG':
1629
- case 'EUMPD':
1630
- case 'EUSOTV':
1631
- case 'EUUSA2':
1632
- case 'EUUSAO':
1633
- case 'EUUSPC':
1634
- return true;
1635
- default:
1636
- return false;
1637
- }
1638
- }
1639
- /**
1640
- * @private
1641
- * @param {?} role
1642
- * @return {?}
1643
- */
1644
- isIntakeRole(role) {
1645
- switch (role.roleId) {
1646
- case 'OPA':
1647
- case 'OPS':
1648
- case 'SOPS':
1649
- return true;
1650
- default:
1651
- return false;
1652
- }
1653
- }
1654
- /**
1655
- * @private
1656
- * @param {?} element
1657
- * @return {?}
1658
- */
1659
- disableHtmlElement(element) {
1660
- // console.log(element);
1661
- switch (element.nodeName) {
1662
- case 'A':
1663
- element.setAttribute('style', 'pointer-events: none;cursor: not-allowed;');
1664
- element.setAttribute('tabIndex', '-1');
1665
- break;
1666
- default:
1667
- element.setAttribute('disabled', 'disabled');
1668
- break;
1669
- }
1670
- }
1671
- /**
1672
- * @private
1673
- * @param {?} element
1674
- * @return {?}
1675
- */
1676
- hideHtmlElement(element) {
1677
- // element.setAttribute('hidden', 'hidden');
1678
- element.setAttribute('style', 'display: none;');
1679
- }
1680
- /**
1681
- * @private
1682
- * @param {?} userName
1683
- * @return {?}
1684
- */
1685
- getStaff(userName) {
1686
- /** @type {?} */
1687
- const queryString = `
1688
- {
1689
- findvStaffs(input: {where: {userName: "${userName}", activeFlag: true}}) {
1690
- totalCount
1691
- message
1692
- data {
1693
- staffId
1694
- userName
1695
- lastName
1696
- firstName
1697
- phone
1698
- email
1699
- roles {
1700
- roleId
1701
- role
1702
- }
1703
- permissions {
1704
- roleId
1705
- appModuleId
1706
- resource
1707
- assignmentStaffRelationId
1708
- readFlag
1709
- createFlag
1710
- updateFlag
1711
- deleteFlag
1712
- assignFlag
1713
- reopenFlag
1714
- closeFlag
1715
- expungeFlag
1716
- }
1717
- options {
1718
- offenderListOptionId
1719
- name
1720
- serviceApiFieldName
1721
- selectedFlag
1722
- }
1723
- }
1724
- }
1725
- }`;
1726
- return this.http
1727
- .post(this.smartDataServiceUrl, { query: queryString })
1728
- .pipe(take(1), map((/**
1729
- * @param {?} result
1730
- * @return {?}
1731
- */
1732
- (result) => {
1733
- if (isDevMode) {
1734
- console.log('##### getStaff() from service ', result);
1735
- }
1736
- if (result.data.findvStaffs.data.length > 0) {
1737
- /** @type {?} */
1738
- const data = result.data.findvStaffs.data[0];
1739
- this.xdmService.setLoginStaff(data);
1740
- this.loginStaff = data;
1741
- return data;
1742
- }
1743
- else {
1744
- return null;
1745
- // return throwError('No access right.');
1746
- }
1747
- })), catchError((/**
1748
- * @param {?} error
1749
- * @return {?}
1750
- */
1751
- (error) => {
1752
- console.log('error ' + error);
1753
- return null;
1754
- })));
1755
- }
1756
- /**
1757
- * @private
1758
- * @param {?} staffId
1759
- * @param {?} offenderId
1760
- * @return {?}
1761
- */
1762
- getStaffOffenderRelation(staffId, offenderId) {
1763
- /** @type {?} */
1764
- const queryString = `
1765
- {
1766
- findvStaffOffenderRelations(input: {where: {staffId: ${staffId}, offenderId: ${offenderId}}}) {
1767
- data {
1768
- assignmentStaffRelationId
1769
- }
1770
- }
1771
- }`;
1772
- return this.http
1773
- .post(this.smartDataServiceUrl, { query: queryString })
1774
- .pipe(take(1), map((/**
1775
- * @param {?} result
1776
- * @return {?}
1777
- */
1778
- (result) => {
1779
- if (isDevMode) {
1780
- console.log('##### getStaffOffenderRelation() from service ', result);
1781
- }
1782
- if (result.data.findvStaffOffenderRelations.data.length > 0) {
1783
- /** @type {?} */
1784
- const data = result.data.findvStaffOffenderRelations.data[0];
1785
- return data.assignmentStaffRelationId;
1786
- }
1787
- else {
1788
- return null;
1789
- // return throwError('No access right.');
1790
- }
1791
- })), catchError((/**
1792
- * @param {?} error
1793
- * @return {?}
1794
- */
1795
- (error) => {
1796
- console.log('error ' + error);
1797
- return null;
1798
- })));
1799
- }
1800
- /**
1801
- * @private
1802
- * @param {?} appModuleId
1803
- * @param {?} resource
1804
- * @return {?}
1805
- */
1806
- getRolePermissions(appModuleId, resource) {
1807
- /** @type {?} */
1808
- const queryString = `
1809
- query findvRolePermissionPivots{
1810
- findvRolePermissionPivots(input: {where: {appModuleId: ${appModuleId}, resource: ${resource}}}){
1811
- totalCount
1812
- message
1813
- }
1814
- }`;
1815
- return this.http
1816
- .post(this.smartDataServiceUrl, { query: queryString })
1817
- .pipe(take(1), map((/**
1818
- * @param {?} result
1819
- * @return {?}
1820
- */
1821
- (result) => {
1822
- if (isDevMode) {
1823
- console.log('##### findvRolePermissionPivots() from service ', result);
1824
- }
1825
- if (result.data.findvRolePermissionPivots.totalCount > 0) {
1826
- return true;
1827
- }
1828
- else {
1829
- return false;
1830
- // return throwError('No access right.');
1831
- }
1832
- })), catchError((/**
1833
- * @param {?} error
1834
- * @return {?}
1835
- */
1836
- (error) => {
1837
- console.log('error ' + error);
1838
- return throwError(error);
1839
- })));
1840
- }
1841
- }
1842
- SmartAuthService.decorators = [
1843
- { type: Injectable, args: [{
1844
- providedIn: 'root',
1845
- },] }
1846
- ];
1847
- /** @nocollapse */
1848
- SmartAuthService.ctorParameters = () => [
1849
- { type: HttpClient },
1850
- { type: MsalService },
1851
- { type: XdmService },
1852
- { type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] },
1853
- { type: String, decorators: [{ type: Inject, args: [SMART_DOMAIN_FORMAT,] }] }
1854
- ];
1855
- /** @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" });
1856
-
1857
- /**
1858
- * @fileoverview added by tsickle
1859
- * Generated from: lib/smart-auth/smart-access-control.directive.ts
1860
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1861
- */
1862
- class SmartAccessControlDirective {
1863
- /**
1864
- * @param {?} elementRef
1865
- * @param {?} auth
1866
- */
1867
- constructor(elementRef, auth) {
1868
- this.elementRef = elementRef;
1869
- this.auth = auth;
1870
- }
1871
- /**
1872
- * @return {?}
1873
- */
1874
- ngOnInit() {
1875
- this.checkAccess();
1876
- }
1877
- /**
1878
- * @return {?}
1879
- */
1880
- checkAccess() {
1881
- if (!this.accessControlConfig ||
1882
- !this.accessControlConfig.route ||
1883
- !this.accessControlConfig.route.data ||
1884
- !this.accessControlConfig.route.data.loginStaff ||
1885
- !this.accessControlConfig.route.data.selectedOffender) {
1886
- return;
1887
- }
1888
- // const loginStaff = this.accessControlConfig.route.data.loginStaff;
1889
- // if (!this.auth.isAuthEnable(loginStaff.roles, this.accessControlConfig.appModuleId)) {
1890
- // return;
1891
- // }
1892
- this.elementRef.nativeElement.style.display = this.auth.checkPermission(this.accessControlConfig)
1893
- ? 'block'
1894
- : 'none';
1895
- }
1896
- }
1897
- SmartAccessControlDirective.decorators = [
1898
- { type: Directive, args: [{
1899
- selector: '[accessControl]',
1900
- },] }
1901
- ];
1902
- /** @nocollapse */
1903
- SmartAccessControlDirective.ctorParameters = () => [
1904
- { type: ElementRef },
1905
- { type: SmartAuthService }
1906
- ];
1907
- SmartAccessControlDirective.propDecorators = {
1908
- accessControlConfig: [{ type: Input }]
1909
- };
1910
-
1911
- /**
1912
- * @fileoverview added by tsickle
1913
- * Generated from: lib/smart-auth/smart-authorization-guard.service.ts
1914
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1915
- */
1916
- class SmartAuthorizationGuard {
1917
- /**
1918
- * @param {?} authnService
1919
- */
1920
- constructor(authnService) {
1921
- this.authnService = authnService;
1922
- }
1923
- /**
1924
- * @param {?} route
1925
- * @return {?}
1926
- */
1927
- canActivate(route) {
1928
- return this.authnService.getLoginStaff().pipe(take(1), mergeMap((/**
1929
- * @param {?} loginStaff
1930
- * @return {?}
1931
- */
1932
- (loginStaff) => {
1933
- if (!loginStaff || !route || !route.routeConfig) {
1934
- return of(false);
1935
- }
1936
- // if (!this.authnService.isAuthEnable(loginStaff.roles, null)) {
1937
- // return of(true);
1938
- // }
1939
- /** @type {?} */
1940
- const resource = route.routeConfig.path
1941
- ? route.routeConfig.path.split('/')[0]
1942
- : '';
1943
- /** @type {?} */
1944
- const isFeatureValid = this.authnService.canAppFeatureActivate(loginStaff, resource);
1945
- return of(isFeatureValid);
1946
- })), catchError((/**
1947
- * @param {?} error
1948
- * @return {?}
1949
- */
1950
- (error) => {
1951
- return of(false);
1952
- })));
1953
- }
1954
- }
1955
- SmartAuthorizationGuard.decorators = [
1956
- { type: Injectable }
1957
- ];
1958
- /** @nocollapse */
1959
- SmartAuthorizationGuard.ctorParameters = () => [
1960
- { type: SmartAuthService }
1961
- ];
1962
-
1963
- /**
1964
- * @fileoverview added by tsickle
1965
- * Generated from: lib/ngc-smart-core.module.ts
1966
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1967
- */
1968
- class NgcSmartCoreModule {
1969
- }
1970
- NgcSmartCoreModule.decorators = [
1971
- { type: NgModule, args: [{
1972
- declarations: [
1973
- SmartOffenderHeaderComponent,
1974
- SmartNavbarComponent,
1975
- SmartErrorComponent,
1976
- SmartStaffOffenderOptionsComponent,
1977
- SmartAccessControlDirective,
1978
- ],
1979
- imports: [
1980
- CommonModule,
1981
- HttpClientModule,
1982
- MatButtonModule,
1983
- MatMenuModule,
1984
- MatTabsModule,
1985
- MatSelectModule,
1986
- MatCardModule,
1987
- MatCheckboxModule,
1988
- ReactiveFormsModule,
1989
- ],
1990
- exports: [
1991
- SmartOffenderHeaderComponent,
1992
- SmartNavbarComponent,
1993
- SmartErrorComponent,
1994
- SmartStaffOffenderOptionsComponent,
1995
- SmartAccessControlDirective,
1996
- ],
1997
- providers: [
1998
- SmartNavbarService,
1999
- SmartOffenderHeaderService,
2000
- SmartStaffOffenderOptionsService,
2001
- SmartAuthorizationGuard,
2002
- MatSnackBar,
2003
- ],
2004
- },] }
2005
- ];
2006
-
2007
- /**
2008
- * @fileoverview added by tsickle
2009
- * Generated from: lib/smart-auth/smart-login-staff-resolver.service.ts
2010
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2011
- */
2012
- class LoginStaffResolverService {
2013
- /**
2014
- * @param {?} authnService
2015
- * @param {?} router
2016
- */
2017
- constructor(authnService, router) {
2018
- this.authnService = authnService;
2019
- this.router = router;
2020
- }
2021
- /**
2022
- * @param {?} route
2023
- * @param {?} state
2024
- * @return {?}
2025
- */
2026
- resolve(route, state) {
2027
- return this.authnService.getLoginStaff().pipe(take(1), mergeMap((/**
2028
- * @param {?} loginStaff
2029
- * @return {?}
2030
- */
2031
- (loginStaff) => {
2032
- if (isDevMode) {
2033
- console.log('LoginStaffResolverService: ', loginStaff);
2034
- }
2035
- if (loginStaff) {
2036
- return of(loginStaff);
2037
- }
2038
- else {
2039
- return throwError('Not authorized to access SMART.');
2040
- // return EMPTY;
2041
- /*
2042
- this.zone.run(() => {
2043
- this.router.navigate(['/smart-error'], {
2044
- queryParams: {
2045
- type: 'staff',
2046
- message: 'Not authorized to access SMART.'
2047
- }
2048
- });
2049
- });
2050
- return EMPTY;
2051
- */
2052
- }
2053
- })), catchError((/**
2054
- * @param {?} error
2055
- * @return {?}
2056
- */
2057
- (error) => {
2058
- console.log('LoginStaffResolverService: ' + error);
2059
- this.router.navigate(['/smart-error'], {
2060
- queryParams: {
2061
- type: 'staff',
2062
- message: 'SMART Authentication: ' + error,
2063
- },
2064
- });
2065
- return EMPTY;
2066
- })));
2067
- }
2068
- }
2069
- LoginStaffResolverService.decorators = [
2070
- { type: Injectable, args: [{
2071
- providedIn: 'root',
2072
- },] }
2073
- ];
2074
- /** @nocollapse */
2075
- LoginStaffResolverService.ctorParameters = () => [
2076
- { type: SmartAuthService },
2077
- { type: Router }
2078
- ];
2079
- /** @nocollapse */ LoginStaffResolverService.ngInjectableDef = defineInjectable({ factory: function LoginStaffResolverService_Factory() { return new LoginStaffResolverService(inject(SmartAuthService), inject(Router)); }, token: LoginStaffResolverService, providedIn: "root" });
2080
-
2081
- /**
2082
- * @fileoverview added by tsickle
2083
- * Generated from: lib/smart-auth/smart-selected-offender-resolver.service.ts
2084
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2085
- */
2086
- class SelectedOffenderResolverService {
2087
- /**
2088
- * @param {?} service
2089
- * @param {?} zone
2090
- * @param {?} router
2091
- */
2092
- constructor(service, zone, router) {
2093
- this.service = service;
2094
- this.zone = zone;
2095
- this.router = router;
2096
- }
2097
- /**
2098
- * @param {?} route
2099
- * @param {?} state
2100
- * @return {?}
2101
- */
2102
- resolve(route, state) {
2103
- return from(this.service.getSelectedOffender()).pipe(mergeMap((/**
2104
- * @param {?} selectedOffender
2105
- * @return {?}
2106
- */
2107
- (selectedOffender) => {
2108
- if (isDevMode) {
2109
- console.log(selectedOffender);
2110
- }
2111
- if (!selectedOffender) {
2112
- return throwError('No offender selected.');
2113
- }
2114
- return of(selectedOffender);
2115
- })), retryWhen((/**
2116
- * @param {?} errors
2117
- * @return {?}
2118
- */
2119
- (errors) => errors.pipe(
2120
- // tap(() => console.log('Retry getting selected offender.')),
2121
- delay(1000), take(5), (/**
2122
- * @param {?} o
2123
- * @return {?}
2124
- */
2125
- (o) => concat(o, throwError('No offender selected (failed after retries).')))))), catchError((/**
2126
- * @param {?} error
2127
- * @return {?}
2128
- */
2129
- (error) => {
2130
- /*
2131
- this.zone.run(() => {
2132
- this.router.navigate(['/smart-error'], {
2133
- queryParams: { type: 'offender', message: error }
2134
- });
2135
- });
2136
- */
2137
- this.router.navigate(['/smart-error'], {
2138
- queryParams: { type: 'offender', message: error },
2139
- });
2140
- return EMPTY;
2141
- })));
2142
- }
2143
- }
2144
- SelectedOffenderResolverService.decorators = [
2145
- { type: Injectable, args: [{
2146
- providedIn: 'root',
2147
- },] }
2148
- ];
2149
- /** @nocollapse */
2150
- SelectedOffenderResolverService.ctorParameters = () => [
2151
- { type: XdmService },
2152
- { type: NgZone },
2153
- { type: Router }
2154
- ];
2155
- /** @nocollapse */ SelectedOffenderResolverService.ngInjectableDef = defineInjectable({ factory: function SelectedOffenderResolverService_Factory() { return new SelectedOffenderResolverService(inject(XdmService), inject(NgZone), inject(Router)); }, token: SelectedOffenderResolverService, providedIn: "root" });
2156
-
2157
- /**
2158
- * @fileoverview added by tsickle
2159
- * Generated from: lib/smart-navbar/smart-navbar-config.ts
2160
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2161
- */
2162
-
2163
- /**
2164
- * @fileoverview added by tsickle
2165
- * Generated from: lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.ts
2166
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2167
- */
2168
- class SmartStaffOffenderOptionsResolverService {
2169
- /**
2170
- * @param {?} offenderService
2171
- */
2172
- constructor(offenderService) {
2173
- this.offenderService = offenderService;
2174
- }
2175
- /**
2176
- * @return {?}
2177
- */
2178
- resolve() {
2179
- return this.offenderService.getOffenderListOptions()
2180
- .pipe(map((/**
2181
- * @param {?} __0
2182
- * @return {?}
2183
- */
2184
- ({ data }) => {
2185
- return data;
2186
- })));
2187
- }
2188
- }
2189
- SmartStaffOffenderOptionsResolverService.decorators = [
2190
- { type: Injectable, args: [{
2191
- providedIn: 'root',
2192
- },] }
2193
- ];
2194
- /** @nocollapse */
2195
- SmartStaffOffenderOptionsResolverService.ctorParameters = () => [
2196
- { type: SmartStaffOffenderOptionsService }
2197
- ];
2198
- /** @nocollapse */ SmartStaffOffenderOptionsResolverService.ngInjectableDef = defineInjectable({ factory: function SmartStaffOffenderOptionsResolverService_Factory() { return new SmartStaffOffenderOptionsResolverService(inject(SmartStaffOffenderOptionsService)); }, token: SmartStaffOffenderOptionsResolverService, providedIn: "root" });
2199
-
2200
- /**
2201
- * @fileoverview added by tsickle
2202
- * Generated from: lib/smart-auth/smart-access-control-config.ts
2203
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2204
- */
2205
- /** @enum {string} */
2206
- const AccessType = {
2207
- READ: "read",
2208
- CREATE: "create",
2209
- UPDATE: "update",
2210
- DELETE: "delete",
2211
- EXPUNGE: "expunge",
2212
- ASSIGN: "assign",
2213
- REOPEN: "reopen",
2214
- CLOSE: "close",
2215
- };
2216
-
2217
- /**
2218
- * @fileoverview added by tsickle
2219
- * Generated from: public-api.ts
2220
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2221
- */
2222
-
2223
- /**
2224
- * @fileoverview added by tsickle
2225
- * Generated from: csmart-ngc-smart-core.ts
2226
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2227
- */
2228
-
2229
- 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 };
2230
-
2231
- //# sourceMappingURL=csmart-ngc-smart-core.js.map