@csmart/ngc-smart-core 0.7.94 → 1.13.1

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 -2624
  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 -258
  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 -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 -289
  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 -2235
  89. package/fesm2015/csmart-ngc-smart-core.js.map +0 -1
  90. package/fesm5/csmart-ngc-smart-core.js +0 -2507
  91. package/fesm5/csmart-ngc-smart-core.js.map +0 -1
@@ -1,2235 +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
- return this.connection.promise.then((/**
150
- * @param {?} child
151
- * @return {?}
152
- */
153
- (child) => {
154
- this.offenderSubject.next(selectedOffender);
155
- child.setSelectedOffender(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).then((/**
479
- * @return {?}
480
- */
481
- () => {
482
- this.reloadCurrentRoute();
483
- }));
484
- }
485
- }
486
- /**
487
- * @private
488
- * @return {?}
489
- */
490
- setSelectedOffenderControl() {
491
- if (this.selectedOffender &&
492
- this.offenderQueryList &&
493
- this.offenderQueryList.length > 0) {
494
- /** @type {?} */
495
- const o = this.offenderQueryList.find((/**
496
- * @param {?} x
497
- * @return {?}
498
- */
499
- (x) => x.offenderId === this.selectedOffender.offenderId));
500
- if (o) {
501
- this.selectedOffenderControl$.setValue(o, { emitEvent: false });
502
- }
503
- if (!o && this.offenderQueryList.length > 0) {
504
- this.selectedOffenderControl$.setValue(this.offenderQueryList[0], {
505
- emitEvent: false,
506
- });
507
- }
508
- }
509
- }
510
- /**
511
- * @private
512
- * @return {?}
513
- */
514
- reloadCurrentRoute() {
515
- try {
516
- /** @type {?} */
517
- const urlTree = this.router.parseUrl(this.router.url);
518
- if (urlTree
519
- && urlTree.root
520
- && urlTree.root.segments
521
- && urlTree.root.segments.length > 1) {
522
- this.router.navigate([urlTree.root.segments[0].path]);
523
- }
524
- else if (urlTree
525
- && urlTree.root
526
- && urlTree.root.children
527
- && urlTree.root.children.primary
528
- && urlTree.root.children.primary.segments
529
- && urlTree.root.children.primary.segments.length > 1) {
530
- this.router.navigate([urlTree.root.children.primary.segments[0].path]);
531
- }
532
- else {
533
- this.router.navigate([this.router.url]);
534
- }
535
- }
536
- catch (_a) {
537
- this.router.navigateByUrl('/');
538
- }
539
- //window.location.reload(false);
540
- }
541
- /**
542
- * @private
543
- * @param {?} roles
544
- * @return {?}
545
- */
546
- hasIntakeRole(roles) {
547
- if (roles && roles.length > 0) {
548
- return roles.findIndex(this.isIntakeRole) > -1;
549
- }
550
- return false;
551
- }
552
- /**
553
- * @private
554
- * @param {?} role
555
- * @return {?}
556
- */
557
- isIntakeRole(role) {
558
- switch (role.roleId) {
559
- case 'OPA':
560
- case 'OPS':
561
- case 'SOPS':
562
- return true;
563
- default:
564
- return false;
565
- }
566
- }
567
- }
568
- SmartOffenderHeaderComponent.decorators = [
569
- { type: Component, args: [{
570
- selector: 'app-smart-offender-header',
571
- 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",
572
- 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}}"]
573
- }] }
574
- ];
575
- /** @nocollapse */
576
- SmartOffenderHeaderComponent.ctorParameters = () => [
577
- { type: XdmService },
578
- { type: MsalService },
579
- { type: SmartOffenderHeaderService },
580
- { type: Router }
581
- ];
582
-
583
- /**
584
- * @fileoverview added by tsickle
585
- * Generated from: lib/smart-navbar/smart-navbar.service.ts
586
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
587
- */
588
- class SmartNavbarService {
589
- /**
590
- * @param {?} http
591
- */
592
- constructor(http) {
593
- this.http = http;
594
- }
595
- /*
596
- public getNavbarConfigs(): SmartNavbarConfig[] {
597
- this.configs = [
598
- {appModuleId: 'SMART', name: 'SMART', url: 'http://localhost:4200', offenderSpecific: false, displayOrder: 1 },
599
- {appModuleId: 'OFFENDER', name: 'Offender', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 2 },
600
- {appModuleId: 'SPRVSN', name: 'Supervision', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 3 },
601
- ];
602
-
603
- return this.configs;
604
- }
605
- */
606
- /*
607
- public getNavbarConfigs(serviceApiUrl: string): Observable<SmartNavbarConfig[]> {
608
- return this.http.get<SmartNavbarConfig[]>(serviceApiUrl + '/AppModules');
609
- }
610
- */
611
- /**
612
- * @param {?} serviceApiUrl
613
- * @return {?}
614
- */
615
- getNavbarConfigs(serviceApiUrl) {
616
- /** @type {?} */
617
- const queryString = `
618
- {
619
- findAppModules {
620
- data {
621
- appModuleId
622
- name
623
- url
624
- offenderSpecificFlag
625
- displayOrder
626
- }
627
- }
628
- }`;
629
- /*
630
- const httpHeaders = new HttpHeaders({
631
- 'Content-Type': 'application/json',
632
- 'Cache-Control': 'no-cache'
633
- });
634
- const options = {
635
- headers: httpHeaders
636
- };
637
- */
638
- return this.http
639
- .post(serviceApiUrl, { query: queryString })
640
- .pipe(map((/**
641
- * @param {?} __0
642
- * @return {?}
643
- */
644
- ({ data }) => {
645
- if (isDevMode()) {
646
- console.log(data);
647
- }
648
- return data.findAppModules.data;
649
- })));
650
- }
651
- }
652
- SmartNavbarService.decorators = [
653
- { type: Injectable }
654
- ];
655
- /** @nocollapse */
656
- SmartNavbarService.ctorParameters = () => [
657
- { type: HttpClient }
658
- ];
659
-
660
- /**
661
- * @fileoverview added by tsickle
662
- * Generated from: lib/smart-navbar/smart-navbar.component.ts
663
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
664
- */
665
- class SmartNavbarComponent {
666
- /**
667
- * @param {?} navbarConfigService
668
- * @param {?} xdmService
669
- * @param {?} authnService
670
- */
671
- constructor(navbarConfigService, xdmService, authnService) {
672
- this.navbarConfigService = navbarConfigService;
673
- this.xdmService = xdmService;
674
- this.authnService = authnService;
675
- this.appModuleId = 'SMART';
676
- this.isAuthenticated = false;
677
- }
678
- /**
679
- * @return {?}
680
- */
681
- ngOnChanges() {
682
- /*
683
- console.log(this.selectedTab);
684
- setTimeout(() => {
685
- this.tabGroup.selectedIndex = this.selectedTab;
686
- }, 1000);
687
- */
688
- }
689
- /**
690
- * @return {?}
691
- */
692
- ngOnInit() {
693
- this.xdmService.getSelectedOffender().then((/**
694
- * @param {?} selectedOffender
695
- * @return {?}
696
- */
697
- (selectedOffender) => {
698
- this.selectedOffender =
699
- selectedOffender && selectedOffender.offenderId
700
- ? selectedOffender
701
- : null;
702
- }));
703
- this.xdmService.getLoginStaff().then((/**
704
- * @param {?} loginStaff
705
- * @return {?}
706
- */
707
- (loginStaff) => {
708
- // this.zone.run(() => {
709
- this.loginStaff = loginStaff ? loginStaff : null;
710
- // });
711
- }));
712
- this.offenderSubscription = this.xdmService
713
- .getOffenderUpdate()
714
- .subscribe((/**
715
- * @param {?} selectedOffender
716
- * @return {?}
717
- */
718
- (selectedOffender) => {
719
- // this.zone.run(() => {
720
- this.selectedOffender = selectedOffender;
721
- // });
722
- }));
723
- this.staffSubscription = this.xdmService
724
- .getStaffUpdate()
725
- .subscribe((/**
726
- * @param {?} loginStaff
727
- * @return {?}
728
- */
729
- (loginStaff) => {
730
- // this.zone.run(() => {
731
- this.loginStaff = loginStaff;
732
- // });
733
- }));
734
- this.navbarConfigService
735
- .getNavbarConfigs(this.serviceApiUrl)
736
- .subscribe((/**
737
- * @param {?} configs
738
- * @return {?}
739
- */
740
- (configs) => {
741
- this.navbarConfigs = configs.sort((/**
742
- * @param {?} a
743
- * @param {?} b
744
- * @return {?}
745
- */
746
- (a, b) => {
747
- if (a.displayOrder < b.displayOrder) {
748
- return -1;
749
- }
750
- else if (a.displayOrder > b.displayOrder) {
751
- return 1;
752
- }
753
- return 0;
754
- }));
755
- }));
756
- this.isAuthenticated = this.authnService.getAccount() ? true : false;
757
- }
758
- /**
759
- * @return {?}
760
- */
761
- ngOnDestroy() {
762
- this.offenderSubscription.unsubscribe();
763
- this.staffSubscription.unsubscribe();
764
- }
765
- /**
766
- * @return {?}
767
- */
768
- logout() {
769
- this.xdmService.clearAll();
770
- this.authnService.logout();
771
- }
772
- /**
773
- * @param {?} config
774
- * @return {?}
775
- */
776
- getAppModuleUrl(config) {
777
- return (config && this.selectedOffender && config.appModuleId === 'PPMAS') ?
778
- `${config.url}?skipAppMetadata=true&OffenderId=${this.selectedOffender.offenderId}` : config.url;
779
- }
780
- /**
781
- * @param {?} appModuleId
782
- * @return {?}
783
- */
784
- hasAppModulePermission(appModuleId) {
785
- if (this.loginStaff && this.loginStaff.permissions && this.loginStaff.permissions.length > 0) {
786
- return this.loginStaff.permissions.findIndex((/**
787
- * @param {?} p
788
- * @return {?}
789
- */
790
- p => p.appModuleId === appModuleId)) > -1;
791
- }
792
- return false;
793
- }
794
- /**
795
- * @return {?}
796
- */
797
- get hasExternalUserRole() {
798
- if (this.loginStaff && this.loginStaff.roles && this.loginStaff.roles.length > 0) {
799
- return this.loginStaff.roles.findIndex(this.isExternalRole) > -1;
800
- }
801
- return false;
802
- }
803
- /**
804
- * @private
805
- * @param {?} role
806
- * @return {?}
807
- */
808
- isExternalRole(role) {
809
- switch (role.roleId) {
810
- case 'EUDTL':
811
- case 'EUDUSM':
812
- case 'EUJDG':
813
- case 'EUMPD':
814
- case 'EUSOTV':
815
- case 'EUUSA2':
816
- case 'EUUSAO':
817
- case 'EUUSPC':
818
- return true;
819
- default:
820
- return false;
821
- }
822
- }
823
- }
824
- SmartNavbarComponent.decorators = [
825
- { type: Component, args: [{
826
- selector: 'app-smart-navbar',
827
- 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",
828
- encapsulation: ViewEncapsulation.None,
829
- 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}"]
830
- }] }
831
- ];
832
- /** @nocollapse */
833
- SmartNavbarComponent.ctorParameters = () => [
834
- { type: SmartNavbarService },
835
- { type: XdmService },
836
- { type: MsalService }
837
- ];
838
- SmartNavbarComponent.propDecorators = {
839
- serviceApiUrl: [{ type: Input }],
840
- appModuleId: [{ type: Input }],
841
- tabGroup: [{ type: ViewChild, args: ['tabs',] }]
842
- };
843
-
844
- /**
845
- * @fileoverview added by tsickle
846
- * Generated from: lib/smart-auth/smart-error.component.ts
847
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
848
- */
849
- class SmartErrorComponent {
850
- /**
851
- * @param {?} authnService
852
- * @param {?} route
853
- * @param {?} smartWebPortalUrl
854
- */
855
- constructor(authnService, route, smartWebPortalUrl) {
856
- this.authnService = authnService;
857
- this.route = route;
858
- this.smartWebPortalUrl = smartWebPortalUrl;
859
- }
860
- /**
861
- * @return {?}
862
- */
863
- ngOnInit() {
864
- this.type = this.route.snapshot.queryParamMap.get('type') || 'staff';
865
- this.message =
866
- this.route.snapshot.queryParamMap.get('message') || 'Error occured.';
867
- }
868
- /**
869
- * @return {?}
870
- */
871
- logout() {
872
- this.authnService.logout();
873
- }
874
- /**
875
- * @return {?}
876
- */
877
- portal() {
878
- window.location.href = this.smartWebPortalUrl;
879
- }
880
- }
881
- SmartErrorComponent.decorators = [
882
- { type: Component, args: [{
883
- selector: 'app-smart-error',
884
- 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",
885
- styles: ["div{text-align:center}"]
886
- }] }
887
- ];
888
- /** @nocollapse */
889
- SmartErrorComponent.ctorParameters = () => [
890
- { type: MsalService },
891
- { type: ActivatedRoute },
892
- { type: String, decorators: [{ type: Inject, args: [SMART_WEB_PORTAL_URL,] }] }
893
- ];
894
-
895
- /**
896
- * @fileoverview added by tsickle
897
- * Generated from: lib/smart-staff-offender-options/smart-staff-offender-options.service.ts
898
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
899
- */
900
- class SmartStaffOffenderOptionsService {
901
- /**
902
- * @param {?} serviceApiUrl
903
- * @param {?} http
904
- * @param {?} matSnackBar
905
- */
906
- constructor(serviceApiUrl, http, matSnackBar) {
907
- this.serviceApiUrl = serviceApiUrl;
908
- this.http = http;
909
- this.matSnackBar = matSnackBar;
910
- }
911
- /**
912
- * @param {?} message
913
- * @return {?}
914
- */
915
- showMessage(message) {
916
- this.matSnackBar.open(message, null, {
917
- duration: 2000,
918
- });
919
- }
920
- /**
921
- * @private
922
- * @param {?} jsonObject
923
- * @return {?}
924
- */
925
- convertEmptyToNull(jsonObject) {
926
- if (!jsonObject) {
927
- return;
928
- }
929
- if (jsonObject instanceof Array) {
930
- jsonObject.forEach((/**
931
- * @param {?} obj
932
- * @return {?}
933
- */
934
- obj => {
935
- this.convertEmptyToNull(obj);
936
- }));
937
- }
938
- /** @type {?} */
939
- const keys = Object.keys(jsonObject);
940
- keys.forEach((/**
941
- * @param {?} key
942
- * @return {?}
943
- */
944
- key => {
945
- if (typeof jsonObject[key] === 'object') {
946
- this.convertEmptyToNull(jsonObject[key]);
947
- }
948
- else if (typeof jsonObject[key] === 'string' && jsonObject[key].trim() === '') {
949
- jsonObject[key] = null;
950
- }
951
- }));
952
- }
953
- /**
954
- * @private
955
- * @param {?} queryName
956
- * @param {?} queryString
957
- * @return {?}
958
- */
959
- getGraphQueryData(queryName, queryString) {
960
- return this.http
961
- .post(this.serviceApiUrl, { query: queryString })
962
- .pipe(map((/**
963
- * @param {?} __0
964
- * @return {?}
965
- */
966
- ({ data }) => {
967
- return data[queryName];
968
- })));
969
- }
970
- /**
971
- * @return {?}
972
- */
973
- getOffenderListOptions() {
974
- /** @type {?} */
975
- const queryName = 'findOffenderListOptions';
976
- /** @type {?} */
977
- const queryString = `{
978
- ${queryName} {
979
- data {
980
- offenderListOptionId
981
- name
982
- serviceApiFieldName
983
- }
984
- message
985
- }
986
- }`;
987
- return this.getGraphQueryData(queryName, queryString);
988
- }
989
- /**
990
- * @param {?} staffId
991
- * @return {?}
992
- */
993
- getStaffOffenderListOptions(staffId) {
994
- /** @type {?} */
995
- const queryString = `{findStaffOffenderListOptions(input:{
996
- where:{
997
- staffId: ${staffId}
998
- }
999
- }){
1000
- data{
1001
- offenderListOptionId
1002
- }
1003
- } }`;
1004
- return this.http
1005
- .post(this.serviceApiUrl, { query: queryString })
1006
- .pipe(map((/**
1007
- * @param {?} __0
1008
- * @return {?}
1009
- */
1010
- ({ data }) => {
1011
- return data.findStaffOffenderListOptions.data;
1012
- })));
1013
- }
1014
- /**
1015
- * @param {?} dataToSave
1016
- * @return {?}
1017
- */
1018
- saveStaffOffenderListOptionsData(dataToSave) {
1019
- /** @type {?} */
1020
- const query = `mutation {
1021
- upsertStaffOffenderListOption(input: ${this.convertToString(dataToSave)}) {
1022
- message
1023
- }
1024
- }`;
1025
- return this.http
1026
- .post(this.serviceApiUrl, { query });
1027
- /*.pipe(
1028
- map(({ data }) => {
1029
- return data[queryName];
1030
- }));*/
1031
- }
1032
- /**
1033
- * @param {?} obj
1034
- * @return {?}
1035
- */
1036
- convertToString(obj) {
1037
- /** @type {?} */
1038
- let result = '';
1039
- if (!obj) {
1040
- return result;
1041
- }
1042
- if (obj instanceof Array) {
1043
- result += ' [';
1044
- obj.forEach((/**
1045
- * @param {?} eObj
1046
- * @return {?}
1047
- */
1048
- eObj => {
1049
- result += this.convertToString(eObj);
1050
- }));
1051
- result += '],';
1052
- }
1053
- else {
1054
- result += '{';
1055
- /** @type {?} */
1056
- const keys = Object.keys(obj);
1057
- keys.forEach((/**
1058
- * @param {?} key
1059
- * @return {?}
1060
- */
1061
- (key) => {
1062
- if (typeof obj[key] === 'object') {
1063
- result += key + ':' + this.convertToString(obj[key]);
1064
- }
1065
- else {
1066
- if (isNaN(obj[key])) {
1067
- result += key + ':"' + obj[key] + '",';
1068
- }
1069
- else {
1070
- result += key + ':' + obj[key] + ',';
1071
- }
1072
- }
1073
- }));
1074
- result = result.substring(0, result.length - 1);
1075
- result += '},';
1076
- }
1077
- return result;
1078
- }
1079
- }
1080
- SmartStaffOffenderOptionsService.decorators = [
1081
- { type: Injectable }
1082
- ];
1083
- /** @nocollapse */
1084
- SmartStaffOffenderOptionsService.ctorParameters = () => [
1085
- { type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] },
1086
- { type: HttpClient },
1087
- { type: MatSnackBar }
1088
- ];
1089
-
1090
- /**
1091
- * @fileoverview added by tsickle
1092
- * Generated from: lib/smart-staff-offender-options/smart-staff-offender-options.component.ts
1093
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1094
- */
1095
- class SmartStaffOffenderOptionsComponent {
1096
- /**
1097
- * @param {?} route
1098
- * @param {?} offenderService
1099
- * @param {?} xdmService
1100
- */
1101
- constructor(route, offenderService, xdmService) {
1102
- this.route = route;
1103
- this.offenderService = offenderService;
1104
- this.xdmService = xdmService;
1105
- this.offenderListOptions = [];
1106
- }
1107
- /**
1108
- * @return {?}
1109
- */
1110
- ngOnInit() {
1111
- /** @type {?} */
1112
- const routData = this.route.snapshot.data;
1113
- this.loginStaff = routData.loginStaff;
1114
- this.offenderListOptions = routData.selectedOffenderResolverService;
1115
- this.frmGroup = this.createForm();
1116
- this.offenderService.getStaffOffenderListOptions(this.loginStaff.staffId).subscribe((/**
1117
- * @param {?} data
1118
- * @return {?}
1119
- */
1120
- data => {
1121
- this.fillForm(data);
1122
- }));
1123
- }
1124
- /**
1125
- * @private
1126
- * @param {?} data
1127
- * @return {?}
1128
- */
1129
- fillForm(data) {
1130
- if (data) {
1131
- /** @type {?} */
1132
- const offenderListOptionsFg = this.frmGroup.get('offenderListOptions');
1133
- data.forEach((/**
1134
- * @param {?} element
1135
- * @return {?}
1136
- */
1137
- element => {
1138
- offenderListOptionsFg.get(element.offenderListOptionId).setValue(true);
1139
- }));
1140
- }
1141
- }
1142
- /**
1143
- * @private
1144
- * @return {?}
1145
- */
1146
- createForm() {
1147
- /** @type {?} */
1148
- const offenderListOptionsFg = new FormGroup({});
1149
- this.offenderListOptions.forEach((/**
1150
- * @param {?} dt
1151
- * @param {?} i
1152
- * @return {?}
1153
- */
1154
- (dt, i) => {
1155
- offenderListOptionsFg.addControl(dt.offenderListOptionId, new FormControl(false));
1156
- }));
1157
- return new FormGroup({
1158
- offenderListOptions: offenderListOptionsFg,
1159
- });
1160
- }
1161
- /**
1162
- * @return {?}
1163
- */
1164
- onSave() {
1165
- /** @type {?} */
1166
- const data = {
1167
- options: [],
1168
- staffId: this.loginStaff.staffId,
1169
- modifiedBy: this.loginStaff.staffId
1170
- };
1171
- /** @type {?} */
1172
- const offenderListOptionsVal = this.frmGroup.get('offenderListOptions').value;
1173
- /** @type {?} */
1174
- const keys = Object.keys(offenderListOptionsVal);
1175
- keys.forEach((/**
1176
- * @param {?} key
1177
- * @return {?}
1178
- */
1179
- key => {
1180
- if (offenderListOptionsVal[key]) {
1181
- data.options.push({ 'offenderListOptionId': key });
1182
- }
1183
- }));
1184
- this.offenderService.saveStaffOffenderListOptionsData(data).subscribe((/**
1185
- * @param {?} rtrDatea
1186
- * @return {?}
1187
- */
1188
- rtrDatea => {
1189
- if (rtrDatea.message) {
1190
- this.offenderService.showMessage(rtrDatea.message);
1191
- }
1192
- else {
1193
- this.offenderService.showMessage('Saved successfully');
1194
- this.xdmService.refreshLoginStaffOptions();
1195
- }
1196
- }));
1197
- }
1198
- }
1199
- SmartStaffOffenderOptionsComponent.decorators = [
1200
- { type: Component, args: [{
1201
- selector: 'lib-smart-staff-offender-options',
1202
- 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 ",
1203
- styles: [""]
1204
- }] }
1205
- ];
1206
- /** @nocollapse */
1207
- SmartStaffOffenderOptionsComponent.ctorParameters = () => [
1208
- { type: ActivatedRoute },
1209
- { type: SmartStaffOffenderOptionsService },
1210
- { type: XdmService }
1211
- ];
1212
-
1213
- /**
1214
- * @fileoverview added by tsickle
1215
- * Generated from: lib/smart-auth/smart-auth.service.ts
1216
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1217
- */
1218
- // import { stringify } from 'querystring';
1219
- class SmartAuthService {
1220
- /**
1221
- * @param {?} http
1222
- * @param {?} authnService
1223
- * @param {?} xdmService
1224
- * @param {?} smartDataServiceUrl
1225
- * @param {?} smartDomainFormatUrl
1226
- */
1227
- constructor(http, authnService, xdmService, smartDataServiceUrl, smartDomainFormatUrl) {
1228
- this.http = http;
1229
- this.authnService = authnService;
1230
- this.xdmService = xdmService;
1231
- this.smartDataServiceUrl = smartDataServiceUrl;
1232
- this.smartDomainFormatUrl = smartDomainFormatUrl;
1233
- }
1234
- /**
1235
- * @return {?}
1236
- */
1237
- getLoginStaff() {
1238
- if (isDevMode) {
1239
- console.log('SmartAuthService - getLoginStaff()');
1240
- }
1241
- if (!isDevMode && this.loginStaff) {
1242
- if (this.loginStaff.staffId) {
1243
- if (isDevMode) {
1244
- console.log('##### getLoginStaff(): get internal instance in service', this.loginStaff);
1245
- }
1246
- return of(this.loginStaff);
1247
- }
1248
- else if (this.loginStaff.userName) {
1249
- if (isDevMode) {
1250
- console.log('##### getLoginStaff(): get using preset user name', this.loginStaff);
1251
- }
1252
- return this.getStaff(this.loginStaff.userName);
1253
- }
1254
- }
1255
- return from(this.xdmService.getLoginStaff()).pipe(switchMap((/**
1256
- * @param {?} storedResult
1257
- * @return {?}
1258
- */
1259
- (storedResult) => {
1260
- if (storedResult && storedResult.staffId) {
1261
- if (isDevMode) {
1262
- console.log('##### getLoginStaff(): get from session.', storedResult);
1263
- }
1264
- this.loginStaff = storedResult;
1265
- return of(storedResult);
1266
- }
1267
- else if (storedResult && storedResult.userName) {
1268
- if (isDevMode) {
1269
- console.log('##### getLoginStaff(): get using preset user name', this.loginStaff);
1270
- }
1271
- return this.getStaff(storedResult.userName);
1272
- }
1273
- else {
1274
- /** @type {?} */
1275
- const userName = this.authnService.getAccount().userName;
1276
- /** @type {?} */
1277
- const staffName = userName.substring(0, userName.indexOf('@'));
1278
- if (isDevMode) {
1279
- console.log('##### loginLoginStaff(): get using login staff name ', staffName);
1280
- }
1281
- return this.getStaff(staffName);
1282
- }
1283
- })));
1284
- }
1285
- /**
1286
- * @private
1287
- * @param {?} app
1288
- * @param {?} afterHash
1289
- * @return {?}
1290
- */
1291
- getTeamUrl(app, afterHash) {
1292
- return this.smartDomainFormatUrl.replace('${APP}', app) + afterHash;
1293
- }
1294
- /**
1295
- * @private
1296
- * @param {?} url
1297
- * @param {?} app
1298
- * @return {?}
1299
- */
1300
- isSameHost(url, app) {
1301
- return this.smartDomainFormatUrl.replace('${APP}', app) === url;
1302
- }
1303
- /**
1304
- * @param {?} loginStaff
1305
- * @return {?}
1306
- */
1307
- redirectToTeam(loginStaff) {
1308
- if (loginStaff.roles.findIndex((/**
1309
- * @param {?} role
1310
- * @return {?}
1311
- */
1312
- (role) => role.roleId === 'EUUSPC')) > -1) {
1313
- if (!this.isSameHost(window.location.origin, 'investigation')) {
1314
- window.location.href = this.getTeamUrl('investigation', '/assignment');
1315
- }
1316
- }
1317
- else if (loginStaff.roles.findIndex((/**
1318
- * @param {?} role
1319
- * @return {?}
1320
- */
1321
- (role) => role.roleId.substring(0, 3) === 'RSC')) > -1) {
1322
- if (!this.isSameHost(window.location.origin, 'rsc')) {
1323
- window.location.href = this.getTeamUrl('rsc', '/offender-list');
1324
- }
1325
- }
1326
- }
1327
- /**
1328
- * @param {?} selectedOffender
1329
- * @return {?}
1330
- */
1331
- setSelectedOffender(selectedOffender) {
1332
- return __awaiter(this, void 0, void 0, function* () {
1333
- if (selectedOffender) {
1334
- // if (!selectedOffender.assignmentStaffRelationId) {
1335
- /** @type {?} */
1336
- const relation = yield this.getStaffOffenderRelation(this.loginStaff.staffId, selectedOffender.offenderId).toPromise();
1337
- if (relation) {
1338
- selectedOffender.assignmentStaffRelationId = relation;
1339
- }
1340
- else {
1341
- selectedOffender.assignmentStaffRelationId = 'NOASSIGN';
1342
- }
1343
- // }
1344
- }
1345
- this.xdmService.setSelectedOffender(selectedOffender);
1346
- this.selectedOffender = selectedOffender;
1347
- });
1348
- }
1349
- /**
1350
- * @return {?}
1351
- */
1352
- logout() {
1353
- this.xdmService.clearAll();
1354
- this.authnService.logout();
1355
- }
1356
- /**
1357
- * @param {?} appModuleId
1358
- * @param {?} route
1359
- * @return {?}
1360
- */
1361
- setPermission(appModuleId, route) {
1362
- return __awaiter(this, void 0, void 0, function* () {
1363
- if (!this.loginStaff) {
1364
- this.loginStaff = yield this.xdmService.getLoginStaff();
1365
- }
1366
- /** @type {?} */
1367
- const permissions = this.loginStaff.permissions;
1368
- /** @type {?} */
1369
- const resource = route.url[0].path;
1370
- if (!this.selectedOffender) {
1371
- this.selectedOffender = yield this.xdmService.getSelectedOffender();
1372
- }
1373
- if (this.selectedOffender) {
1374
- // if (!this.selectedOffender.assignmentStaffRelationId) {
1375
- /** @type {?} */
1376
- const relation = yield this.getStaffOffenderRelation(this.loginStaff.staffId, this.selectedOffender.offenderId).toPromise();
1377
- if (relation) {
1378
- this.selectedOffender.assignmentStaffRelationId = relation;
1379
- }
1380
- else {
1381
- this.selectedOffender.assignmentStaffRelationId = 'NOASSIGN';
1382
- }
1383
- this.xdmService.setSelectedOffender(this.selectedOffender);
1384
- // }
1385
- }
1386
- /** @type {?} */
1387
- const assignmentStaffRelationId = this.selectedOffender
1388
- .assignmentStaffRelationId;
1389
- /** @type {?} */
1390
- const elements = document.querySelectorAll('[class^="sac-"]');
1391
- /** @type {?} */
1392
- const pattern = /^sac-(\S+)-(\S+)$/i;
1393
- Array.from(elements).forEach((/**
1394
- * @param {?} element
1395
- * @return {?}
1396
- */
1397
- (element) => {
1398
- /** @type {?} */
1399
- let hide;
1400
- /** @type {?} */
1401
- let disable;
1402
- element.classList.forEach((/**
1403
- * @param {?} c
1404
- * @return {?}
1405
- */
1406
- (c) => {
1407
- /** @type {?} */
1408
- const results = c.match(pattern);
1409
- // console.log(results);
1410
- if (results && results.length > 2) {
1411
- /** @type {?} */
1412
- const roleId = results[1] ? results[1].toUpperCase() : null;
1413
- /** @type {?} */
1414
- const right = results[2];
1415
- // console.log(results[0]);
1416
- // console.log(results[1]);
1417
- // console.log(results[2]);
1418
- /** @type {?} */
1419
- const permission = permissions.find((/**
1420
- * @param {?} p
1421
- * @return {?}
1422
- */
1423
- function (p) {
1424
- return (p.appModuleId === appModuleId &&
1425
- p.resource === resource &&
1426
- p.roleId === roleId &&
1427
- p.assignmentStaffRelationId === assignmentStaffRelationId);
1428
- }));
1429
- /*
1430
- console.log('##### setPermission() resource: ', resource);
1431
- console.log('##### setPermission() appModuleId: ', appModuleId);
1432
- console.log('##### setPermission() roleId: ', roleId);
1433
- console.log(
1434
- '##### setPermission() assignment relation: ',
1435
- assignmentStaffRelationId,
1436
- );
1437
- */
1438
- console.log('##### Matched permission: ', permission);
1439
- if (permission) {
1440
- if (right === 'read') {
1441
- if (!permission.readFlag) {
1442
- if (hide !== false) {
1443
- hide = true;
1444
- }
1445
- }
1446
- else {
1447
- hide = false;
1448
- }
1449
- }
1450
- else if ((right === 'create' && !permission.createFlag) ||
1451
- (right === 'update' && !permission.updateFlag) ||
1452
- (right === 'delete' && !permission.deleteFlag) ||
1453
- (right === 'assign' && !permission.assignFlag) ||
1454
- (right === 'close' && !permission.closeFlag) ||
1455
- (right === 'expunge' && !permission.expungeFlag) ||
1456
- (right === 'reopen' && !permission.reopenFlag)) {
1457
- if (element.nodeName === 'BUTTON') {
1458
- if (hide !== false) {
1459
- hide = true;
1460
- }
1461
- }
1462
- else {
1463
- if (disable !== false) {
1464
- disable = true;
1465
- }
1466
- }
1467
- }
1468
- else {
1469
- if (element.nodeName === 'BUTTON') {
1470
- hide = false;
1471
- }
1472
- else {
1473
- disable = false;
1474
- }
1475
- }
1476
- }
1477
- else {
1478
- if (right === 'read') {
1479
- if (hide !== false) {
1480
- hide = true;
1481
- }
1482
- }
1483
- else if (element.nodeName === 'BUTTON') {
1484
- if (hide !== false) {
1485
- hide = true;
1486
- }
1487
- }
1488
- else if (disable !== false) {
1489
- disable = true;
1490
- }
1491
- }
1492
- }
1493
- }));
1494
- console.log('hide: ', hide);
1495
- console.log('disable: ', disable);
1496
- if (hide === true) {
1497
- this.hideHtmlElement(element);
1498
- }
1499
- else if (disable === true) {
1500
- this.disableHtmlElement(element);
1501
- }
1502
- }));
1503
- });
1504
- }
1505
- /**
1506
- * @param {?} accessControlConfig
1507
- * @return {?}
1508
- */
1509
- checkPermission(accessControlConfig) {
1510
- /** @type {?} */
1511
- const selData = accessControlConfig.route.data;
1512
- this.loginStaff = selData.loginStaff;
1513
- this.selectedOffender = selData.selectedOffender;
1514
- /** @type {?} */
1515
- const permissions = this.loginStaff.permissions;
1516
- /** @type {?} */
1517
- const resource = accessControlConfig.route.url[0].path;
1518
- /** @type {?} */
1519
- const roleId = accessControlConfig.roleId
1520
- ? accessControlConfig.roleId.toUpperCase()
1521
- : null;
1522
- /** @type {?} */
1523
- const accessType = accessControlConfig.accessType;
1524
- /** @type {?} */
1525
- const assignmentStaffRelationId = !this.selectedOffender
1526
- .assignmentStaffRelationId
1527
- ? 'N/A'
1528
- : this.selectedOffender.assignmentStaffRelationId;
1529
- /** @type {?} */
1530
- const permission = permissions.find((/**
1531
- * @param {?} p
1532
- * @return {?}
1533
- */
1534
- (p) => {
1535
- return (p.appModuleId === accessControlConfig.appModuleId &&
1536
- p.resource === resource &&
1537
- (!roleId || p.roleId === roleId) &&
1538
- p.assignmentStaffRelationId === assignmentStaffRelationId);
1539
- }));
1540
- if (permission) {
1541
- if (accessType === 'read') {
1542
- if (!permission.readFlag) {
1543
- return false;
1544
- }
1545
- else {
1546
- return true;
1547
- }
1548
- }
1549
- else if ((accessType === 'create' && !permission.createFlag) ||
1550
- (accessType === 'update' && !permission.updateFlag) ||
1551
- (accessType === 'delete' && !permission.deleteFlag) ||
1552
- (accessType === 'assign' && !permission.assignFlag) ||
1553
- (accessType === 'close' && !permission.closeFlag) ||
1554
- (accessType === 'expunge' && !permission.expungeFlag) ||
1555
- (accessType === 'reopen' && !permission.reopenFlag)) {
1556
- return false;
1557
- }
1558
- else {
1559
- return true;
1560
- }
1561
- }
1562
- else {
1563
- if (accessType === 'read') {
1564
- return false;
1565
- }
1566
- }
1567
- return false;
1568
- }
1569
- /**
1570
- * @param {?} loginStaff
1571
- * @param {?} feature
1572
- * @param {?=} appModuleId
1573
- * @return {?}
1574
- */
1575
- canAppFeatureActivate(loginStaff, feature, appModuleId = null) {
1576
- // if (!this.isAuthEnable(loginStaff.roles, appModuleId)) {
1577
- // return true;
1578
- // }
1579
- return this.hasAppFeaturePermission(loginStaff.permissions, feature, appModuleId);
1580
- }
1581
- // public isAuthEnable(roles: Role[], appModuleId: string) {
1582
- // if (roles && roles.length > 0) {
1583
- // return roles.map(r => r.roleId).findIndex(this.isExternalRole) > -1 || appModuleId === 'RR';
1584
- // }
1585
- // return false;
1586
- // }
1587
- /**
1588
- * @param {?} roles
1589
- * @return {?}
1590
- */
1591
- hasIntakeRole(roles) {
1592
- if (roles && roles.length > 0) {
1593
- return roles.findIndex(this.isIntakeRole) > -1;
1594
- }
1595
- return false;
1596
- }
1597
- /**
1598
- * @private
1599
- * @param {?} permissions
1600
- * @param {?} feature
1601
- * @param {?} appModuleId
1602
- * @return {?}
1603
- */
1604
- hasAppFeaturePermission(permissions, feature, appModuleId) {
1605
- if (permissions && permissions.length > 0) {
1606
- if (appModuleId) {
1607
- return (permissions.findIndex((/**
1608
- * @param {?} p
1609
- * @return {?}
1610
- */
1611
- (p) => p.resource === feature && p.appModuleId === appModuleId)) > -1);
1612
- }
1613
- else {
1614
- return permissions.findIndex((/**
1615
- * @param {?} p
1616
- * @return {?}
1617
- */
1618
- (p) => p.resource === feature)) > -1;
1619
- }
1620
- }
1621
- return false;
1622
- }
1623
- /**
1624
- * @private
1625
- * @param {?} roleId
1626
- * @return {?}
1627
- */
1628
- isExternalRole(roleId) {
1629
- switch (roleId) {
1630
- case 'EUDTL':
1631
- case 'EUDUSM':
1632
- case 'EUJDG':
1633
- case 'EUMPD':
1634
- case 'EUSOTV':
1635
- case 'EUUSA2':
1636
- case 'EUUSAO':
1637
- case 'EUUSPC':
1638
- return true;
1639
- default:
1640
- return false;
1641
- }
1642
- }
1643
- /**
1644
- * @private
1645
- * @param {?} role
1646
- * @return {?}
1647
- */
1648
- isIntakeRole(role) {
1649
- switch (role.roleId) {
1650
- case 'OPA':
1651
- case 'OPS':
1652
- case 'SOPS':
1653
- return true;
1654
- default:
1655
- return false;
1656
- }
1657
- }
1658
- /**
1659
- * @private
1660
- * @param {?} element
1661
- * @return {?}
1662
- */
1663
- disableHtmlElement(element) {
1664
- // console.log(element);
1665
- switch (element.nodeName) {
1666
- case 'A':
1667
- element.setAttribute('style', 'pointer-events: none;cursor: not-allowed;');
1668
- element.setAttribute('tabIndex', '-1');
1669
- break;
1670
- default:
1671
- element.setAttribute('disabled', 'disabled');
1672
- break;
1673
- }
1674
- }
1675
- /**
1676
- * @private
1677
- * @param {?} element
1678
- * @return {?}
1679
- */
1680
- hideHtmlElement(element) {
1681
- // element.setAttribute('hidden', 'hidden');
1682
- element.setAttribute('style', 'display: none;');
1683
- }
1684
- /**
1685
- * @private
1686
- * @param {?} userName
1687
- * @return {?}
1688
- */
1689
- getStaff(userName) {
1690
- /** @type {?} */
1691
- const queryString = `
1692
- {
1693
- findvStaffs(input: {where: {userName: "${userName}", activeFlag: true}}) {
1694
- totalCount
1695
- message
1696
- data {
1697
- staffId
1698
- userName
1699
- lastName
1700
- firstName
1701
- phone
1702
- email
1703
- roles {
1704
- roleId
1705
- role
1706
- }
1707
- permissions {
1708
- roleId
1709
- appModuleId
1710
- resource
1711
- assignmentStaffRelationId
1712
- readFlag
1713
- createFlag
1714
- updateFlag
1715
- deleteFlag
1716
- assignFlag
1717
- reopenFlag
1718
- closeFlag
1719
- expungeFlag
1720
- }
1721
- options {
1722
- offenderListOptionId
1723
- name
1724
- serviceApiFieldName
1725
- selectedFlag
1726
- }
1727
- }
1728
- }
1729
- }`;
1730
- return this.http
1731
- .post(this.smartDataServiceUrl, { query: queryString })
1732
- .pipe(take(1), map((/**
1733
- * @param {?} result
1734
- * @return {?}
1735
- */
1736
- (result) => {
1737
- if (isDevMode) {
1738
- console.log('##### getStaff() from service ', result);
1739
- }
1740
- if (result.data.findvStaffs.data.length > 0) {
1741
- /** @type {?} */
1742
- const data = result.data.findvStaffs.data[0];
1743
- this.xdmService.setLoginStaff(data);
1744
- this.loginStaff = data;
1745
- return data;
1746
- }
1747
- else {
1748
- return null;
1749
- // return throwError('No access right.');
1750
- }
1751
- })), catchError((/**
1752
- * @param {?} error
1753
- * @return {?}
1754
- */
1755
- (error) => {
1756
- console.log('error ' + error);
1757
- return null;
1758
- })));
1759
- }
1760
- /**
1761
- * @private
1762
- * @param {?} staffId
1763
- * @param {?} offenderId
1764
- * @return {?}
1765
- */
1766
- getStaffOffenderRelation(staffId, offenderId) {
1767
- /** @type {?} */
1768
- const queryString = `
1769
- {
1770
- findvStaffOffenderRelations(input: {where: {staffId: ${staffId}, offenderId: ${offenderId}}}) {
1771
- data {
1772
- assignmentStaffRelationId
1773
- }
1774
- }
1775
- }`;
1776
- return this.http
1777
- .post(this.smartDataServiceUrl, { query: queryString })
1778
- .pipe(take(1), map((/**
1779
- * @param {?} result
1780
- * @return {?}
1781
- */
1782
- (result) => {
1783
- if (isDevMode) {
1784
- console.log('##### getStaffOffenderRelation() from service ', result);
1785
- }
1786
- if (result.data.findvStaffOffenderRelations.data.length > 0) {
1787
- /** @type {?} */
1788
- const data = result.data.findvStaffOffenderRelations.data[0];
1789
- return data.assignmentStaffRelationId;
1790
- }
1791
- else {
1792
- return null;
1793
- // return throwError('No access right.');
1794
- }
1795
- })), catchError((/**
1796
- * @param {?} error
1797
- * @return {?}
1798
- */
1799
- (error) => {
1800
- console.log('error ' + error);
1801
- return null;
1802
- })));
1803
- }
1804
- /**
1805
- * @private
1806
- * @param {?} appModuleId
1807
- * @param {?} resource
1808
- * @return {?}
1809
- */
1810
- getRolePermissions(appModuleId, resource) {
1811
- /** @type {?} */
1812
- const queryString = `
1813
- query findvRolePermissionPivots{
1814
- findvRolePermissionPivots(input: {where: {appModuleId: ${appModuleId}, resource: ${resource}}}){
1815
- totalCount
1816
- message
1817
- }
1818
- }`;
1819
- return this.http
1820
- .post(this.smartDataServiceUrl, { query: queryString })
1821
- .pipe(take(1), map((/**
1822
- * @param {?} result
1823
- * @return {?}
1824
- */
1825
- (result) => {
1826
- if (isDevMode) {
1827
- console.log('##### findvRolePermissionPivots() from service ', result);
1828
- }
1829
- if (result.data.findvRolePermissionPivots.totalCount > 0) {
1830
- return true;
1831
- }
1832
- else {
1833
- return false;
1834
- // return throwError('No access right.');
1835
- }
1836
- })), catchError((/**
1837
- * @param {?} error
1838
- * @return {?}
1839
- */
1840
- (error) => {
1841
- console.log('error ' + error);
1842
- return throwError(error);
1843
- })));
1844
- }
1845
- }
1846
- SmartAuthService.decorators = [
1847
- { type: Injectable, args: [{
1848
- providedIn: 'root',
1849
- },] }
1850
- ];
1851
- /** @nocollapse */
1852
- SmartAuthService.ctorParameters = () => [
1853
- { type: HttpClient },
1854
- { type: MsalService },
1855
- { type: XdmService },
1856
- { type: undefined, decorators: [{ type: Inject, args: [SMART_DATA_SERVICE_URL,] }] },
1857
- { type: String, decorators: [{ type: Inject, args: [SMART_DOMAIN_FORMAT,] }] }
1858
- ];
1859
- /** @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" });
1860
-
1861
- /**
1862
- * @fileoverview added by tsickle
1863
- * Generated from: lib/smart-auth/smart-access-control.directive.ts
1864
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1865
- */
1866
- class SmartAccessControlDirective {
1867
- /**
1868
- * @param {?} elementRef
1869
- * @param {?} auth
1870
- */
1871
- constructor(elementRef, auth) {
1872
- this.elementRef = elementRef;
1873
- this.auth = auth;
1874
- }
1875
- /**
1876
- * @return {?}
1877
- */
1878
- ngOnInit() {
1879
- this.checkAccess();
1880
- }
1881
- /**
1882
- * @return {?}
1883
- */
1884
- checkAccess() {
1885
- if (!this.accessControlConfig ||
1886
- !this.accessControlConfig.route ||
1887
- !this.accessControlConfig.route.data ||
1888
- !this.accessControlConfig.route.data.loginStaff ||
1889
- !this.accessControlConfig.route.data.selectedOffender) {
1890
- return;
1891
- }
1892
- // const loginStaff = this.accessControlConfig.route.data.loginStaff;
1893
- // if (!this.auth.isAuthEnable(loginStaff.roles, this.accessControlConfig.appModuleId)) {
1894
- // return;
1895
- // }
1896
- this.elementRef.nativeElement.style.display = this.auth.checkPermission(this.accessControlConfig)
1897
- ? 'block'
1898
- : 'none';
1899
- }
1900
- }
1901
- SmartAccessControlDirective.decorators = [
1902
- { type: Directive, args: [{
1903
- selector: '[accessControl]',
1904
- },] }
1905
- ];
1906
- /** @nocollapse */
1907
- SmartAccessControlDirective.ctorParameters = () => [
1908
- { type: ElementRef },
1909
- { type: SmartAuthService }
1910
- ];
1911
- SmartAccessControlDirective.propDecorators = {
1912
- accessControlConfig: [{ type: Input }]
1913
- };
1914
-
1915
- /**
1916
- * @fileoverview added by tsickle
1917
- * Generated from: lib/smart-auth/smart-authorization-guard.service.ts
1918
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1919
- */
1920
- class SmartAuthorizationGuard {
1921
- /**
1922
- * @param {?} authnService
1923
- */
1924
- constructor(authnService) {
1925
- this.authnService = authnService;
1926
- }
1927
- /**
1928
- * @param {?} route
1929
- * @return {?}
1930
- */
1931
- canActivate(route) {
1932
- return this.authnService.getLoginStaff().pipe(take(1), mergeMap((/**
1933
- * @param {?} loginStaff
1934
- * @return {?}
1935
- */
1936
- (loginStaff) => {
1937
- if (!loginStaff || !route || !route.routeConfig) {
1938
- return of(false);
1939
- }
1940
- // if (!this.authnService.isAuthEnable(loginStaff.roles, null)) {
1941
- // return of(true);
1942
- // }
1943
- /** @type {?} */
1944
- const resource = route.routeConfig.path
1945
- ? route.routeConfig.path.split('/')[0]
1946
- : '';
1947
- /** @type {?} */
1948
- const isFeatureValid = this.authnService.canAppFeatureActivate(loginStaff, resource);
1949
- return of(isFeatureValid);
1950
- })), catchError((/**
1951
- * @param {?} error
1952
- * @return {?}
1953
- */
1954
- (error) => {
1955
- return of(false);
1956
- })));
1957
- }
1958
- }
1959
- SmartAuthorizationGuard.decorators = [
1960
- { type: Injectable }
1961
- ];
1962
- /** @nocollapse */
1963
- SmartAuthorizationGuard.ctorParameters = () => [
1964
- { type: SmartAuthService }
1965
- ];
1966
-
1967
- /**
1968
- * @fileoverview added by tsickle
1969
- * Generated from: lib/ngc-smart-core.module.ts
1970
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1971
- */
1972
- class NgcSmartCoreModule {
1973
- }
1974
- NgcSmartCoreModule.decorators = [
1975
- { type: NgModule, args: [{
1976
- declarations: [
1977
- SmartOffenderHeaderComponent,
1978
- SmartNavbarComponent,
1979
- SmartErrorComponent,
1980
- SmartStaffOffenderOptionsComponent,
1981
- SmartAccessControlDirective,
1982
- ],
1983
- imports: [
1984
- CommonModule,
1985
- HttpClientModule,
1986
- MatButtonModule,
1987
- MatMenuModule,
1988
- MatTabsModule,
1989
- MatSelectModule,
1990
- MatCardModule,
1991
- MatCheckboxModule,
1992
- ReactiveFormsModule,
1993
- ],
1994
- exports: [
1995
- SmartOffenderHeaderComponent,
1996
- SmartNavbarComponent,
1997
- SmartErrorComponent,
1998
- SmartStaffOffenderOptionsComponent,
1999
- SmartAccessControlDirective,
2000
- ],
2001
- providers: [
2002
- SmartNavbarService,
2003
- SmartOffenderHeaderService,
2004
- SmartStaffOffenderOptionsService,
2005
- SmartAuthorizationGuard,
2006
- MatSnackBar,
2007
- ],
2008
- },] }
2009
- ];
2010
-
2011
- /**
2012
- * @fileoverview added by tsickle
2013
- * Generated from: lib/smart-auth/smart-login-staff-resolver.service.ts
2014
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2015
- */
2016
- class LoginStaffResolverService {
2017
- /**
2018
- * @param {?} authnService
2019
- * @param {?} router
2020
- */
2021
- constructor(authnService, router) {
2022
- this.authnService = authnService;
2023
- this.router = router;
2024
- }
2025
- /**
2026
- * @param {?} route
2027
- * @param {?} state
2028
- * @return {?}
2029
- */
2030
- resolve(route, state) {
2031
- return this.authnService.getLoginStaff().pipe(take(1), mergeMap((/**
2032
- * @param {?} loginStaff
2033
- * @return {?}
2034
- */
2035
- (loginStaff) => {
2036
- if (isDevMode) {
2037
- console.log('LoginStaffResolverService: ', loginStaff);
2038
- }
2039
- if (loginStaff) {
2040
- return of(loginStaff);
2041
- }
2042
- else {
2043
- return throwError('Not authorized to access SMART.');
2044
- // return EMPTY;
2045
- /*
2046
- this.zone.run(() => {
2047
- this.router.navigate(['/smart-error'], {
2048
- queryParams: {
2049
- type: 'staff',
2050
- message: 'Not authorized to access SMART.'
2051
- }
2052
- });
2053
- });
2054
- return EMPTY;
2055
- */
2056
- }
2057
- })), catchError((/**
2058
- * @param {?} error
2059
- * @return {?}
2060
- */
2061
- (error) => {
2062
- console.log('LoginStaffResolverService: ' + error);
2063
- this.router.navigate(['/smart-error'], {
2064
- queryParams: {
2065
- type: 'staff',
2066
- message: 'SMART Authentication: ' + error,
2067
- },
2068
- });
2069
- return EMPTY;
2070
- })));
2071
- }
2072
- }
2073
- LoginStaffResolverService.decorators = [
2074
- { type: Injectable, args: [{
2075
- providedIn: 'root',
2076
- },] }
2077
- ];
2078
- /** @nocollapse */
2079
- LoginStaffResolverService.ctorParameters = () => [
2080
- { type: SmartAuthService },
2081
- { type: Router }
2082
- ];
2083
- /** @nocollapse */ LoginStaffResolverService.ngInjectableDef = defineInjectable({ factory: function LoginStaffResolverService_Factory() { return new LoginStaffResolverService(inject(SmartAuthService), inject(Router)); }, token: LoginStaffResolverService, providedIn: "root" });
2084
-
2085
- /**
2086
- * @fileoverview added by tsickle
2087
- * Generated from: lib/smart-auth/smart-selected-offender-resolver.service.ts
2088
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2089
- */
2090
- class SelectedOffenderResolverService {
2091
- /**
2092
- * @param {?} service
2093
- * @param {?} zone
2094
- * @param {?} router
2095
- */
2096
- constructor(service, zone, router) {
2097
- this.service = service;
2098
- this.zone = zone;
2099
- this.router = router;
2100
- }
2101
- /**
2102
- * @param {?} route
2103
- * @param {?} state
2104
- * @return {?}
2105
- */
2106
- resolve(route, state) {
2107
- return from(this.service.getSelectedOffender()).pipe(mergeMap((/**
2108
- * @param {?} selectedOffender
2109
- * @return {?}
2110
- */
2111
- (selectedOffender) => {
2112
- if (isDevMode) {
2113
- console.log(selectedOffender);
2114
- }
2115
- if (!selectedOffender) {
2116
- return throwError('No offender selected.');
2117
- }
2118
- return of(selectedOffender);
2119
- })), retryWhen((/**
2120
- * @param {?} errors
2121
- * @return {?}
2122
- */
2123
- (errors) => errors.pipe(
2124
- // tap(() => console.log('Retry getting selected offender.')),
2125
- delay(1000), take(5), (/**
2126
- * @param {?} o
2127
- * @return {?}
2128
- */
2129
- (o) => concat(o, throwError('No offender selected (failed after retries).')))))), catchError((/**
2130
- * @param {?} error
2131
- * @return {?}
2132
- */
2133
- (error) => {
2134
- /*
2135
- this.zone.run(() => {
2136
- this.router.navigate(['/smart-error'], {
2137
- queryParams: { type: 'offender', message: error }
2138
- });
2139
- });
2140
- */
2141
- this.router.navigate(['/smart-error'], {
2142
- queryParams: { type: 'offender', message: error },
2143
- });
2144
- return EMPTY;
2145
- })));
2146
- }
2147
- }
2148
- SelectedOffenderResolverService.decorators = [
2149
- { type: Injectable, args: [{
2150
- providedIn: 'root',
2151
- },] }
2152
- ];
2153
- /** @nocollapse */
2154
- SelectedOffenderResolverService.ctorParameters = () => [
2155
- { type: XdmService },
2156
- { type: NgZone },
2157
- { type: Router }
2158
- ];
2159
- /** @nocollapse */ SelectedOffenderResolverService.ngInjectableDef = defineInjectable({ factory: function SelectedOffenderResolverService_Factory() { return new SelectedOffenderResolverService(inject(XdmService), inject(NgZone), inject(Router)); }, token: SelectedOffenderResolverService, providedIn: "root" });
2160
-
2161
- /**
2162
- * @fileoverview added by tsickle
2163
- * Generated from: lib/smart-navbar/smart-navbar-config.ts
2164
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2165
- */
2166
-
2167
- /**
2168
- * @fileoverview added by tsickle
2169
- * Generated from: lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.ts
2170
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2171
- */
2172
- class SmartStaffOffenderOptionsResolverService {
2173
- /**
2174
- * @param {?} offenderService
2175
- */
2176
- constructor(offenderService) {
2177
- this.offenderService = offenderService;
2178
- }
2179
- /**
2180
- * @return {?}
2181
- */
2182
- resolve() {
2183
- return this.offenderService.getOffenderListOptions()
2184
- .pipe(map((/**
2185
- * @param {?} __0
2186
- * @return {?}
2187
- */
2188
- ({ data }) => {
2189
- return data;
2190
- })));
2191
- }
2192
- }
2193
- SmartStaffOffenderOptionsResolverService.decorators = [
2194
- { type: Injectable, args: [{
2195
- providedIn: 'root',
2196
- },] }
2197
- ];
2198
- /** @nocollapse */
2199
- SmartStaffOffenderOptionsResolverService.ctorParameters = () => [
2200
- { type: SmartStaffOffenderOptionsService }
2201
- ];
2202
- /** @nocollapse */ SmartStaffOffenderOptionsResolverService.ngInjectableDef = defineInjectable({ factory: function SmartStaffOffenderOptionsResolverService_Factory() { return new SmartStaffOffenderOptionsResolverService(inject(SmartStaffOffenderOptionsService)); }, token: SmartStaffOffenderOptionsResolverService, providedIn: "root" });
2203
-
2204
- /**
2205
- * @fileoverview added by tsickle
2206
- * Generated from: lib/smart-auth/smart-access-control-config.ts
2207
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2208
- */
2209
- /** @enum {string} */
2210
- const AccessType = {
2211
- READ: "read",
2212
- CREATE: "create",
2213
- UPDATE: "update",
2214
- DELETE: "delete",
2215
- EXPUNGE: "expunge",
2216
- ASSIGN: "assign",
2217
- REOPEN: "reopen",
2218
- CLOSE: "close",
2219
- };
2220
-
2221
- /**
2222
- * @fileoverview added by tsickle
2223
- * Generated from: public-api.ts
2224
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2225
- */
2226
-
2227
- /**
2228
- * @fileoverview added by tsickle
2229
- * Generated from: csmart-ngc-smart-core.ts
2230
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2231
- */
2232
-
2233
- 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 };
2234
-
2235
- //# sourceMappingURL=csmart-ngc-smart-core.js.map