@csmart/ngc-smart-core 1.13.19 → 1.13.21

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 (46) hide show
  1. package/README.md +24 -24
  2. package/csmart-ngc-smart-core.d.ts +5 -5
  3. package/esm2020/csmart-ngc-smart-core.mjs +4 -4
  4. package/esm2020/lib/ngc-smart-core.module.mjs +97 -97
  5. package/esm2020/lib/smart-auth/smart-access-control-config.mjs +12 -12
  6. package/esm2020/lib/smart-auth/smart-access-control.directive.mjs +39 -40
  7. package/esm2020/lib/smart-auth/smart-auth.service.mjs +505 -505
  8. package/esm2020/lib/smart-auth/smart-authorization-guard.service.mjs +35 -35
  9. package/esm2020/lib/smart-auth/smart-error.component.mjs +37 -37
  10. package/esm2020/lib/smart-auth/smart-login-staff-resolver.service.mjs +59 -59
  11. package/esm2020/lib/smart-auth/smart-selected-offender-resolver.service.mjs +49 -49
  12. package/esm2020/lib/smart-navbar/smart-navbar-config.mjs +2 -2
  13. package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +167 -167
  14. package/esm2020/lib/smart-navbar/smart-navbar.service.mjs +63 -63
  15. package/esm2020/lib/smart-offender-header/smart-offender-header.component.mjs +151 -151
  16. package/esm2020/lib/smart-offender-header/smart-offender-header.service.mjs +41 -41
  17. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.mjs +25 -25
  18. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +78 -78
  19. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +132 -132
  20. package/esm2020/lib/smart-storage/smart-storage-model.mjs +30 -30
  21. package/esm2020/lib/smart-storage/xdm.service.mjs +171 -158
  22. package/esm2020/public-api.mjs +20 -20
  23. package/fesm2015/csmart-ngc-smart-core.mjs +1530 -1518
  24. package/fesm2015/csmart-ngc-smart-core.mjs.map +1 -1
  25. package/fesm2020/csmart-ngc-smart-core.mjs +1516 -1504
  26. package/fesm2020/csmart-ngc-smart-core.mjs.map +1 -1
  27. package/lib/ngc-smart-core.module.d.ts +20 -20
  28. package/lib/smart-auth/smart-access-control-config.d.ts +17 -17
  29. package/lib/smart-auth/smart-access-control.directive.d.ts +14 -14
  30. package/lib/smart-auth/smart-auth.service.d.ts +41 -41
  31. package/lib/smart-auth/smart-authorization-guard.service.d.ts +13 -13
  32. package/lib/smart-auth/smart-error.component.d.ts +17 -17
  33. package/lib/smart-auth/smart-login-staff-resolver.service.d.ts +13 -13
  34. package/lib/smart-auth/smart-selected-offender-resolver.service.d.ts +15 -15
  35. package/lib/smart-navbar/smart-navbar-config.d.ts +7 -7
  36. package/lib/smart-navbar/smart-navbar.component.d.ts +40 -40
  37. package/lib/smart-navbar/smart-navbar.service.d.ts +12 -12
  38. package/lib/smart-offender-header/smart-offender-header.component.d.ts +32 -32
  39. package/lib/smart-offender-header/smart-offender-header.service.d.ts +18 -18
  40. package/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.d.ts +11 -11
  41. package/lib/smart-staff-offender-options/smart-staff-offender-options.component.d.ts +22 -22
  42. package/lib/smart-staff-offender-options/smart-staff-offender-options.service.d.ts +19 -19
  43. package/lib/smart-storage/smart-storage-model.d.ts +58 -58
  44. package/lib/smart-storage/xdm.service.d.ts +42 -42
  45. package/package.json +1 -1
  46. package/public-api.d.ts +16 -16
@@ -1,151 +1,151 @@
1
- import { Component } from '@angular/core';
2
- import { XdmService } from '../smart-storage/xdm.service';
3
- import { MsalService } from '@azure/msal-angular';
4
- import { FormControl } from '@angular/forms';
5
- import { SmartOffenderHeaderService } from './smart-offender-header.service';
6
- import { Router } from '@angular/router';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../smart-storage/xdm.service";
9
- import * as i2 from "@azure/msal-angular";
10
- import * as i3 from "./smart-offender-header.service";
11
- import * as i4 from "@angular/router";
12
- import * as i5 from "@angular/material/form-field";
13
- import * as i6 from "@angular/material/select";
14
- import * as i7 from "@angular/material/core";
15
- import * as i8 from "@angular/common";
16
- import * as i9 from "@angular/forms";
17
- export class SmartOffenderHeaderComponent {
18
- // public isAuthenticated: boolean;
19
- constructor(xdmService, authnService, smartOffenderHeaderService, router) {
20
- this.xdmService = xdmService;
21
- this.authnService = authnService;
22
- this.smartOffenderHeaderService = smartOffenderHeaderService;
23
- this.router = router;
24
- this.selectedOffenderControl$ = new FormControl();
25
- }
26
- ngOnInit() {
27
- // this.isAuthenticated = this.authnService.getAccount() ? true : false;
28
- this.xdmService.getLoginStaff().then((loginStaff) => {
29
- this.loginStaff = loginStaff ? loginStaff : null;
30
- });
31
- this.xdmService.getSelectedOffender().then((selectedOffender) => {
32
- this.selectedOffender =
33
- selectedOffender && selectedOffender.offenderId
34
- ? selectedOffender
35
- : null;
36
- });
37
- this.subscription = this.xdmService
38
- .getOffenderUpdate()
39
- .subscribe((selectedOffender) => {
40
- this.selectedOffender = selectedOffender;
41
- this.setSelectedOffenderControl();
42
- });
43
- this.xdmService.getOffenderQuery().then((offenderQuery) => {
44
- if (offenderQuery) {
45
- this.offenderQueryList = offenderQuery.offenders;
46
- this.setSelectedOffenderControl();
47
- }
48
- });
49
- this.offenderQuerySubscription = this.xdmService
50
- .getOffenderQueryUpdate()
51
- .subscribe((offenderList) => {
52
- if (offenderList && offenderList.offenders) {
53
- this.offenderQueryList = [...offenderList.offenders];
54
- }
55
- });
56
- this.selectedOffenderControl$.valueChanges.subscribe((o) => this.onOffenderSelected(o));
57
- this.router.routeReuseStrategy.shouldReuseRoute = () => {
58
- return false;
59
- };
60
- }
61
- get isAuthenticated() {
62
- return this.authnService.instance.getAllAccounts().length > 0;
63
- }
64
- ngOnDestroy() {
65
- this.subscription.unsubscribe();
66
- }
67
- onOffenderSelected(offender) {
68
- if (offender) {
69
- // const o = offender.offenderName.split(',');
70
- // if (o.length === 2) {
71
- // const offenderName = `${o[1]} ${o[0]}`;
72
- // this.selectedOffender = {
73
- // offenderId: offender.offenderId,
74
- // name: offenderName,
75
- // pdId: offender.pdId,
76
- // birthDate: offender.birthDate,
77
- // gender: offender.genderCode,
78
- // assignmentStaffRelationId: '',
79
- // intakeFlag: this.loginStaff
80
- // ? this.hasIntakeRole(this.loginStaff.roles)
81
- // : false,
82
- // } as SelectedOffender;
83
- this.selectedOffender = offender;
84
- this.xdmService.setSelectedOffender(this.selectedOffender);
85
- this.reloadCurrentRoute();
86
- }
87
- }
88
- setSelectedOffenderControl() {
89
- if (this.selectedOffender &&
90
- this.offenderQueryList &&
91
- this.offenderQueryList.length > 0) {
92
- const o = this.offenderQueryList.find((x) => x.offenderId === this.selectedOffender.offenderId);
93
- if (o) {
94
- this.selectedOffenderControl$.setValue(o, { emitEvent: false });
95
- }
96
- if (!o && this.offenderQueryList.length > 0) {
97
- this.selectedOffenderControl$.setValue(this.offenderQueryList[0], {
98
- emitEvent: false,
99
- });
100
- }
101
- }
102
- }
103
- reloadCurrentRoute() {
104
- try {
105
- const urlTree = this.router.parseUrl(this.router.url);
106
- if (urlTree &&
107
- urlTree.root &&
108
- urlTree.root.segments &&
109
- urlTree.root.segments.length > 1) {
110
- this.router.navigate([urlTree.root.segments[0].path]);
111
- }
112
- else if (urlTree &&
113
- urlTree.root &&
114
- urlTree.root.children &&
115
- urlTree.root.children.primary &&
116
- urlTree.root.children.primary.segments &&
117
- urlTree.root.children.primary.segments.length == 1) {
118
- this.router.navigate([urlTree.root.children.primary.segments[0].path]);
119
- }
120
- else {
121
- this.router.navigate([this.router.url]);
122
- }
123
- }
124
- catch {
125
- this.router.navigateByUrl('/');
126
- }
127
- }
128
- hasIntakeRole(roles) {
129
- if (roles && roles.length > 0) {
130
- return roles.findIndex(this.isIntakeRole) > -1;
131
- }
132
- return false;
133
- }
134
- isIntakeRole(role) {
135
- switch (role.roleId) {
136
- case 'OPA':
137
- case 'OPS':
138
- case 'SOPS':
139
- return true;
140
- default:
141
- return false;
142
- }
143
- }
144
- }
145
- /** @nocollapse */ /** @nocollapse */ SmartOffenderHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderComponent, deps: [{ token: i1.XdmService }, { token: i2.MsalService }, { token: i3.SmartOffenderHeaderService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component });
146
- /** @nocollapse */ /** @nocollapse */ SmartOffenderHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: SmartOffenderHeaderComponent, selector: "app-smart-offender-header", ngImport: i0, 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", styles: [".offender-header-container{display:grid;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:grid;grid-template-columns:80px 80px;margin-top:8px}.switch-offender{width:100%!important}@media only screen and (max-width: 740px){.offender-header-container{display:grid;grid-template-rows:1fr 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}}\n"], components: [{ type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatLabel, selector: "mat-label" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderComponent, decorators: [{
148
- type: Component,
149
- args: [{ selector: 'app-smart-offender-header', 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", styles: [".offender-header-container{display:grid;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:grid;grid-template-columns:80px 80px;margin-top:8px}.switch-offender{width:100%!important}@media only screen and (max-width: 740px){.offender-header-container{display:grid;grid-template-rows:1fr 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}}\n"] }]
150
- }], ctorParameters: function () { return [{ type: i1.XdmService }, { type: i2.MsalService }, { type: i3.SmartOffenderHeaderService }, { type: i4.Router }]; } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtb2ZmZW5kZXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NzbWFydC9uZ2Mtc21hcnQtY29yZS9zcmMvbGliL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci9zbWFydC1vZmZlbmRlci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtb2ZmZW5kZXItaGVhZGVyL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFtRCxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDL0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8sNEJBQTRCO0lBUXZDLG1DQUFtQztJQUVuQyxZQUNVLFVBQXNCLEVBQ3RCLFlBQXlCLEVBQ3pCLDBCQUFzRCxFQUN0RCxNQUFjO1FBSGQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELFdBQU0sR0FBTixNQUFNLENBQVE7UUFWeEIsNkJBQXdCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQVcxQyxDQUFDO0lBRUosUUFBUTtRQUNOLHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsVUFB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OytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIE5nWm9uZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWGRtU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWxlY3RlZE9mZmVuZGVyLCBMb2dpblN0YWZmLCBSb2xlLCBPZmZlbmRlclF1ZXJ5IH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBPYnNlcnZhYmxlLCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNtYXJ0T2ZmZW5kZXJIZWFkZXJTZXJ2aWNlLCBBc3NpZ25lZE9mZmVuZGVyIH0gZnJvbSAnLi9zbWFydC1vZmZlbmRlci1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zbWFydC1vZmZlbmRlci1oZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1vZmZlbmRlci1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydE9mZmVuZGVySGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyO1xyXG4gIGxvZ2luU3RhZmY6IExvZ2luU3RhZmY7XHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgc2VsZWN0ZWRPZmZlbmRlckNvbnRyb2wkID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgLy8gYXNzaWduZWRPZmZlbmRlcnM6IEFzc2lnbmVkT2ZmZW5kZXJbXTtcclxuICBvZmZlbmRlclF1ZXJ5TGlzdDogU2VsZWN0ZWRPZmZlbmRlcltdO1xyXG4gIG9mZmVuZGVyUXVlcnlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAvLyBwdWJsaWMgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgeGRtU2VydmljZTogWGRtU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICAgIHByaXZhdGUgc21hcnRPZmZlbmRlckhlYWRlclNlcnZpY2U6IFNtYXJ0T2ZmZW5kZXJIZWFkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gdGhpcy5pc0F1dGhlbnRpY2F0ZWQgPSB0aGlzLmF1dGhuU2VydmljZS5nZXRBY2NvdW50KCkgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLnhkbVNlcnZpY2UuZ2V0TG9naW5TdGFmZigpLnRoZW4oKGxvZ2luU3RhZmYpID0+IHtcclxuICAgICAgdGhpcy5sb2dpblN0YWZmID0gbG9naW5TdGFmZiA/IGxvZ2luU3RhZmYgOiBudWxsO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnhkbVNlcnZpY2UuZ2V0U2VsZWN0ZWRPZmZlbmRlcigpLnRoZW4oKHNlbGVjdGVkT2ZmZW5kZXIpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID1cclxuICAgICAgICBzZWxlY3RlZE9mZmVuZGVyICYmIHNlbGVjdGVkT2ZmZW5kZXIub2ZmZW5kZXJJZFxyXG4gICAgICAgICAgPyBzZWxlY3RlZE9mZmVuZGVyXHJcbiAgICAgICAgICA6IG51bGw7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMueGRtU2VydmljZVxyXG4gICAgICAuZ2V0T2ZmZW5kZXJVcGRhdGUoKVxyXG4gICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZE9mZmVuZGVyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID0gc2VsZWN0ZWRPZmZlbmRlcjtcclxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkT2ZmZW5kZXJDb250cm9sKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMueGRtU2VydmljZS5nZXRPZmZlbmRlclF1ZXJ5KCkudGhlbigob2ZmZW5kZXJRdWVyeTogT2ZmZW5kZXJRdWVyeSkgPT4ge1xyXG4gICAgICBpZiAob2ZmZW5kZXJRdWVyeSkge1xyXG4gICAgICAgIHRoaXMub2ZmZW5kZXJRdWVyeUxpc3QgPSBvZmZlbmRlclF1ZXJ5Lm9mZmVuZGVycztcclxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkT2ZmZW5kZXJDb250cm9sKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub2ZmZW5kZXJRdWVyeVN1YnNjcmlwdGlvbiA9IHRoaXMueGRtU2VydmljZVxyXG4gICAgICAuZ2V0T2ZmZW5kZXJRdWVyeVVwZGF0ZSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKG9mZmVuZGVyTGlzdCkgPT4ge1xyXG4gICAgICAgIGlmIChvZmZlbmRlckxpc3QgJiYgb2ZmZW5kZXJMaXN0Lm9mZmVuZGVycykge1xyXG4gICAgICAgICAgdGhpcy5vZmZlbmRlclF1ZXJ5TGlzdCA9IFsuLi5vZmZlbmRlckxpc3Qub2ZmZW5kZXJzXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlckNvbnRyb2wkLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKG8pID0+XHJcbiAgICAgIHRoaXMub25PZmZlbmRlclNlbGVjdGVkKG8pLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkUmV1c2VSb3V0ZSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQoKSA6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aG5TZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKCkubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25PZmZlbmRlclNlbGVjdGVkKG9mZmVuZGVyKTogdm9pZCB7XHJcbiAgICBpZiAob2ZmZW5kZXIpIHtcclxuICAgICAgLy8gY29uc3QgbyA9IG9mZmVuZGVyLm9mZmVuZGVyTmFtZS5zcGxpdCgnLCcpO1xyXG4gICAgICAvLyBpZiAoby5sZW5ndGggPT09IDIpIHtcclxuICAgICAgLy8gICBjb25zdCBvZmZlbmRlck5hbWUgPSBgJHtvWzFdfSAke29bMF19YDtcclxuICAgICAgLy8gICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPSB7XHJcbiAgICAgIC8vICAgICBvZmZlbmRlcklkOiBvZmZlbmRlci5vZmZlbmRlcklkLFxyXG4gICAgICAvLyAgICAgbmFtZTogb2ZmZW5kZXJOYW1lLFxyXG4gICAgICAvLyAgICAgcGRJZDogb2ZmZW5kZXIucGRJZCxcclxuICAgICAgLy8gICAgIGJpcnRoRGF0ZTogb2ZmZW5kZXIuYmlydGhEYXRlLFxyXG4gICAgICAvLyAgICAgZ2VuZGVyOiBvZmZlbmRlci5nZW5kZXJDb2RlLFxyXG4gICAgICAvLyAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZDogJycsXHJcbiAgICAgIC8vICAgICBpbnRha2VGbGFnOiB0aGlzLmxvZ2luU3RhZmZcclxuICAgICAgLy8gICAgICAgPyB0aGlzLmhhc0ludGFrZVJvbGUodGhpcy5sb2dpblN0YWZmLnJvbGVzKVxyXG4gICAgICAvLyAgICAgICA6IGZhbHNlLFxyXG4gICAgICAvLyAgIH0gYXMgU2VsZWN0ZWRPZmZlbmRlcjtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID0gb2ZmZW5kZXI7XHJcbiAgICAgIHRoaXMueGRtU2VydmljZS5zZXRTZWxlY3RlZE9mZmVuZGVyKHRoaXMuc2VsZWN0ZWRPZmZlbmRlcik7XHJcbiAgICAgIHRoaXMucmVsb2FkQ3VycmVudFJvdXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlbGVjdGVkT2ZmZW5kZXJDb250cm9sKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgJiZcclxuICAgICAgdGhpcy5vZmZlbmRlclF1ZXJ5TGlzdCAmJlxyXG4gICAgICB0aGlzLm9mZmVuZGVyUXVlcnlMaXN0Lmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICBjb25zdCBvID0gdGhpcy5vZmZlbmRlclF1ZXJ5TGlzdC5maW5kKFxyXG4gICAgICAgICh4KSA9PiB4Lm9mZmVuZGVySWQgPT09IHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkLFxyXG4gICAgICApO1xyXG4gICAgICBpZiAobykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlckNvbnRyb2wkLnNldFZhbHVlKG8sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFvICYmIHRoaXMub2ZmZW5kZXJRdWVyeUxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlckNvbnRyb2wkLnNldFZhbHVlKHRoaXMub2ZmZW5kZXJRdWVyeUxpc3RbMF0sIHtcclxuICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVsb2FkQ3VycmVudFJvdXRlKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyLnVybCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB1cmxUcmVlICYmXHJcbiAgICAgICAgdXJsVHJlZS5yb290ICYmXHJcbiAgICAgICAgdXJsVHJlZS5yb290LnNlZ21lbnRzICYmXHJcbiAgICAgICAgdXJsVHJlZS5yb290LnNlZ21lbnRzLmxlbmd0aCA+IDFcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybFRyZWUucm9vdC5zZWdtZW50c1swXS5wYXRoXSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdXJsVHJlZSAmJlxyXG4gICAgICAgIHVybFRyZWUucm9vdCAmJlxyXG4gICAgICAgIHVybFRyZWUucm9vdC5jaGlsZHJlbiAmJlxyXG4gICAgICAgIHVybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5ICYmXHJcbiAgICAgICAgdXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHMgJiZcclxuICAgICAgICB1cmxUcmVlLnJvb3QuY2hpbGRyZW4ucHJpbWFyeS5zZWdtZW50cy5sZW5ndGggPT0gMVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHNbMF0ucGF0aF0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJvdXRlci51cmxdKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzSW50YWtlUm9sZShyb2xlczogUm9sZVtdKSB7XHJcbiAgICBpZiAocm9sZXMgJiYgcm9sZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gcm9sZXMuZmluZEluZGV4KHRoaXMuaXNJbnRha2VSb2xlKSA+IC0xO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0ludGFrZVJvbGUocm9sZTogUm9sZSkge1xyXG4gICAgc3dpdGNoIChyb2xlLnJvbGVJZCkge1xyXG4gICAgICBjYXNlICdPUEEnOlxyXG4gICAgICBjYXNlICdPUFMnOlxyXG4gICAgICBjYXNlICdTT1BTJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIm9mZmVuZGVyLWhlYWRlci1jb250YWluZXJcIlxyXG4gICpuZ0lmPVwic2VsZWN0ZWRPZmZlbmRlciAmJiBpc0F1dGhlbnRpY2F0ZWRcIj5cclxuICA8ZGl2IGNsYXNzPVwib2ZmZW5kZXItaGVhZGVyLW5hbWUtaXRlbVwiPlxyXG4gICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwic3RhbmRhcmRcIiBjbGFzcz1cInN3aXRjaC1vZmZlbmRlclwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5Td2l0Y2ggT2ZmZW5kZXI8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbF09XCJzZWxlY3RlZE9mZmVuZGVyQ29udHJvbCRcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb2ZmZW5kZXIgb2Ygb2ZmZW5kZXJRdWVyeUxpc3RcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJvZmZlbmRlclwiPlxyXG4gICAgICAgICAgICAgIHt7IG9mZmVuZGVyPy5uYW1lfX0gKHt7b2ZmZW5kZXI/Lm9mZmVuZGVySWR9fSlcclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJvZmZlbmRlci1oZWFkZXItaWQtaXRlbVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbGFiZWxcIj5QRElEOjwvc3Bhbj4ge3sgc2VsZWN0ZWRPZmZlbmRlci5wZElkIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJvZmZlbmRlci1oZWFkZXItaWQtaXRlbVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbGFiZWxcIj5DU09TQSBJRDo8L3NwYW4+XHJcbiAgICAgIHt7IHNlbGVjdGVkT2ZmZW5kZXIub2ZmZW5kZXJJZCB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
1
+ import { Component } from '@angular/core';
2
+ import { XdmService } from '../smart-storage/xdm.service';
3
+ import { MsalService } from '@azure/msal-angular';
4
+ import { FormControl } from '@angular/forms';
5
+ import { SmartOffenderHeaderService } from './smart-offender-header.service';
6
+ import { Router } from '@angular/router';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../smart-storage/xdm.service";
9
+ import * as i2 from "@azure/msal-angular";
10
+ import * as i3 from "./smart-offender-header.service";
11
+ import * as i4 from "@angular/router";
12
+ import * as i5 from "@angular/material/form-field";
13
+ import * as i6 from "@angular/material/select";
14
+ import * as i7 from "@angular/material/core";
15
+ import * as i8 from "@angular/common";
16
+ import * as i9 from "@angular/forms";
17
+ export class SmartOffenderHeaderComponent {
18
+ // public isAuthenticated: boolean;
19
+ constructor(xdmService, authnService, smartOffenderHeaderService, router) {
20
+ this.xdmService = xdmService;
21
+ this.authnService = authnService;
22
+ this.smartOffenderHeaderService = smartOffenderHeaderService;
23
+ this.router = router;
24
+ this.selectedOffenderControl$ = new FormControl();
25
+ }
26
+ ngOnInit() {
27
+ // this.isAuthenticated = this.authnService.getAccount() ? true : false;
28
+ this.xdmService.getLoginStaff().then((loginStaff) => {
29
+ this.loginStaff = loginStaff ? loginStaff : null;
30
+ });
31
+ this.xdmService.getSelectedOffender().then((selectedOffender) => {
32
+ this.selectedOffender =
33
+ selectedOffender && selectedOffender.offenderId
34
+ ? selectedOffender
35
+ : null;
36
+ });
37
+ this.subscription = this.xdmService
38
+ .getOffenderUpdate()
39
+ .subscribe((selectedOffender) => {
40
+ this.selectedOffender = selectedOffender;
41
+ this.setSelectedOffenderControl();
42
+ });
43
+ this.xdmService.getOffenderQuery().then((offenderQuery) => {
44
+ if (offenderQuery) {
45
+ this.offenderQueryList = offenderQuery.offenders;
46
+ this.setSelectedOffenderControl();
47
+ }
48
+ });
49
+ this.offenderQuerySubscription = this.xdmService
50
+ .getOffenderQueryUpdate()
51
+ .subscribe((offenderList) => {
52
+ if (offenderList && offenderList.offenders) {
53
+ this.offenderQueryList = [...offenderList.offenders];
54
+ }
55
+ });
56
+ this.selectedOffenderControl$.valueChanges.subscribe((o) => this.onOffenderSelected(o));
57
+ this.router.routeReuseStrategy.shouldReuseRoute = () => {
58
+ return false;
59
+ };
60
+ }
61
+ get isAuthenticated() {
62
+ return this.authnService.instance.getAllAccounts().length > 0;
63
+ }
64
+ ngOnDestroy() {
65
+ this.subscription.unsubscribe();
66
+ }
67
+ onOffenderSelected(offender) {
68
+ if (offender) {
69
+ // const o = offender.offenderName.split(',');
70
+ // if (o.length === 2) {
71
+ // const offenderName = `${o[1]} ${o[0]}`;
72
+ // this.selectedOffender = {
73
+ // offenderId: offender.offenderId,
74
+ // name: offenderName,
75
+ // pdId: offender.pdId,
76
+ // birthDate: offender.birthDate,
77
+ // gender: offender.genderCode,
78
+ // assignmentStaffRelationId: '',
79
+ // intakeFlag: this.loginStaff
80
+ // ? this.hasIntakeRole(this.loginStaff.roles)
81
+ // : false,
82
+ // } as SelectedOffender;
83
+ this.selectedOffender = offender;
84
+ this.xdmService.setSelectedOffender(this.selectedOffender);
85
+ this.reloadCurrentRoute();
86
+ }
87
+ }
88
+ setSelectedOffenderControl() {
89
+ if (this.selectedOffender &&
90
+ this.offenderQueryList &&
91
+ this.offenderQueryList.length > 0) {
92
+ const o = this.offenderQueryList.find((x) => x.offenderId === this.selectedOffender.offenderId);
93
+ if (o) {
94
+ this.selectedOffenderControl$.setValue(o, { emitEvent: false });
95
+ }
96
+ if (!o && this.offenderQueryList.length > 0) {
97
+ this.selectedOffenderControl$.setValue(this.offenderQueryList[0], {
98
+ emitEvent: false,
99
+ });
100
+ }
101
+ }
102
+ }
103
+ reloadCurrentRoute() {
104
+ try {
105
+ const urlTree = this.router.parseUrl(this.router.url);
106
+ if (urlTree &&
107
+ urlTree.root &&
108
+ urlTree.root.segments &&
109
+ urlTree.root.segments.length > 1) {
110
+ this.router.navigate([urlTree.root.segments[0].path]);
111
+ }
112
+ else if (urlTree &&
113
+ urlTree.root &&
114
+ urlTree.root.children &&
115
+ urlTree.root.children.primary &&
116
+ urlTree.root.children.primary.segments &&
117
+ urlTree.root.children.primary.segments.length > 1) {
118
+ this.router.navigate([urlTree.root.children.primary.segments[0].path]);
119
+ }
120
+ else {
121
+ this.router.navigate([this.router.url]);
122
+ }
123
+ }
124
+ catch {
125
+ this.router.navigateByUrl('/');
126
+ }
127
+ }
128
+ hasIntakeRole(roles) {
129
+ if (roles && roles.length > 0) {
130
+ return roles.findIndex(this.isIntakeRole) > -1;
131
+ }
132
+ return false;
133
+ }
134
+ isIntakeRole(role) {
135
+ switch (role.roleId) {
136
+ case 'OPA':
137
+ case 'OPS':
138
+ case 'SOPS':
139
+ return true;
140
+ default:
141
+ return false;
142
+ }
143
+ }
144
+ }
145
+ /** @nocollapse */ /** @nocollapse */ SmartOffenderHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderComponent, deps: [{ token: i1.XdmService }, { token: i2.MsalService }, { token: i3.SmartOffenderHeaderService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component });
146
+ /** @nocollapse */ /** @nocollapse */ SmartOffenderHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: SmartOffenderHeaderComponent, selector: "app-smart-offender-header", ngImport: i0, template: "<div\n class=\"offender-header-container\"\n *ngIf=\"selectedOffender && isAuthenticated\">\n <div class=\"offender-header-name-item\">\n <mat-form-field appearance=\"standard\" class=\"switch-offender\">\n <mat-label>Switch Offender</mat-label>\n <mat-select [formControl]=\"selectedOffenderControl$\">\n <mat-option\n *ngFor=\"let offender of offenderQueryList\"\n [value]=\"offender\">\n {{ offender?.name}} ({{offender?.offenderId}})\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div>\n <div class=\"offender-header-id-item\">\n <span class=\"item-label\">PDID:</span> {{ selectedOffender.pdId }}\n </div>\n <div class=\"offender-header-id-item\">\n <span class=\"item-label\">CSOSA ID:</span>\n {{ selectedOffender.offenderId }}\n </div>\n </div>\n</div>\n", styles: [".offender-header-container{display:grid;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:grid;grid-template-columns:80px 80px;margin-top:8px}.switch-offender{width:100%!important}@media only screen and (max-width: 740px){.offender-header-container{display:grid;grid-template-rows:1fr 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}}\n"], components: [{ type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatLabel, selector: "mat-label" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderComponent, decorators: [{
148
+ type: Component,
149
+ args: [{ selector: 'app-smart-offender-header', template: "<div\n class=\"offender-header-container\"\n *ngIf=\"selectedOffender && isAuthenticated\">\n <div class=\"offender-header-name-item\">\n <mat-form-field appearance=\"standard\" class=\"switch-offender\">\n <mat-label>Switch Offender</mat-label>\n <mat-select [formControl]=\"selectedOffenderControl$\">\n <mat-option\n *ngFor=\"let offender of offenderQueryList\"\n [value]=\"offender\">\n {{ offender?.name}} ({{offender?.offenderId}})\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div>\n <div class=\"offender-header-id-item\">\n <span class=\"item-label\">PDID:</span> {{ selectedOffender.pdId }}\n </div>\n <div class=\"offender-header-id-item\">\n <span class=\"item-label\">CSOSA ID:</span>\n {{ selectedOffender.offenderId }}\n </div>\n </div>\n</div>\n", styles: [".offender-header-container{display:grid;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:grid;grid-template-columns:80px 80px;margin-top:8px}.switch-offender{width:100%!important}@media only screen and (max-width: 740px){.offender-header-container{display:grid;grid-template-rows:1fr 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}}\n"] }]
150
+ }], ctorParameters: function () { return [{ type: i1.XdmService }, { type: i2.MsalService }, { type: i3.SmartOffenderHeaderService }, { type: i4.Router }]; } });
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtb2ZmZW5kZXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NzbWFydC9uZ2Mtc21hcnQtY29yZS9zcmMvbGliL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci9zbWFydC1vZmZlbmRlci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtb2ZmZW5kZXItaGVhZGVyL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFtRCxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDL0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8sNEJBQTRCO0lBUXZDLG1DQUFtQztJQUVuQyxZQUNVLFVBQXNCLEVBQ3RCLFlBQXlCLEVBQ3pCLDBCQUFzRCxFQUN0RCxNQUFjO1FBSGQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELFdBQU0sR0FBTixNQUFNLENBQVE7UUFWeEIsNkJBQXdCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQVcxQyxDQUFDO0lBRUosUUFBUTtRQUNOLHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsVUFB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OytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIE5nWm9uZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFhkbVNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3hkbS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlbGVjdGVkT2ZmZW5kZXIsIExvZ2luU3RhZmYsIFJvbGUsIE9mZmVuZGVyUXVlcnkgfSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBPYnNlcnZhYmxlLCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTbWFydE9mZmVuZGVySGVhZGVyU2VydmljZSwgQXNzaWduZWRPZmZlbmRlciB9IGZyb20gJy4vc21hcnQtb2ZmZW5kZXItaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXNtYXJ0LW9mZmVuZGVyLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1vZmZlbmRlci1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1vZmZlbmRlci1oZWFkZXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydE9mZmVuZGVySGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc2VsZWN0ZWRPZmZlbmRlcjogU2VsZWN0ZWRPZmZlbmRlcjtcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHNlbGVjdGVkT2ZmZW5kZXJDb250cm9sJCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAvLyBhc3NpZ25lZE9mZmVuZGVyczogQXNzaWduZWRPZmZlbmRlcltdO1xuICBvZmZlbmRlclF1ZXJ5TGlzdDogU2VsZWN0ZWRPZmZlbmRlcltdO1xuICBvZmZlbmRlclF1ZXJ5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIC8vIHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB4ZG1TZXJ2aWNlOiBYZG1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBNc2FsU2VydmljZSxcbiAgICBwcml2YXRlIHNtYXJ0T2ZmZW5kZXJIZWFkZXJTZXJ2aWNlOiBTbWFydE9mZmVuZGVySGVhZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gdGhpcy5pc0F1dGhlbnRpY2F0ZWQgPSB0aGlzLmF1dGhuU2VydmljZS5nZXRBY2NvdW50KCkgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy54ZG1TZXJ2aWNlLmdldExvZ2luU3RhZmYoKS50aGVuKChsb2dpblN0YWZmKSA9PiB7XG4gICAgICB0aGlzLmxvZ2luU3RhZmYgPSBsb2dpblN0YWZmID8gbG9naW5TdGFmZiA6IG51bGw7XG4gICAgfSk7XG4gICAgdGhpcy54ZG1TZXJ2aWNlLmdldFNlbGVjdGVkT2ZmZW5kZXIoKS50aGVuKChzZWxlY3RlZE9mZmVuZGVyKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPVxuICAgICAgICBzZWxlY3RlZE9mZmVuZGVyICYmIHNlbGVjdGVkT2ZmZW5kZXIub2ZmZW5kZXJJZFxuICAgICAgICAgID8gc2VsZWN0ZWRPZmZlbmRlclxuICAgICAgICAgIDogbnVsbDtcbiAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy54ZG1TZXJ2aWNlXG4gICAgICAuZ2V0T2ZmZW5kZXJVcGRhdGUoKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRPZmZlbmRlcikgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPSBzZWxlY3RlZE9mZmVuZGVyO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkT2ZmZW5kZXJDb250cm9sKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMueGRtU2VydmljZS5nZXRPZmZlbmRlclF1ZXJ5KCkudGhlbigob2ZmZW5kZXJRdWVyeTogT2ZmZW5kZXJRdWVyeSkgPT4ge1xuICAgICAgaWYgKG9mZmVuZGVyUXVlcnkpIHtcbiAgICAgICAgdGhpcy5vZmZlbmRlclF1ZXJ5TGlzdCA9IG9mZmVuZGVyUXVlcnkub2ZmZW5kZXJzO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkT2ZmZW5kZXJDb250cm9sKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm9mZmVuZGVyUXVlcnlTdWJzY3JpcHRpb24gPSB0aGlzLnhkbVNlcnZpY2VcbiAgICAgIC5nZXRPZmZlbmRlclF1ZXJ5VXBkYXRlKClcbiAgICAgIC5zdWJzY3JpYmUoKG9mZmVuZGVyTGlzdCkgPT4ge1xuICAgICAgICBpZiAob2ZmZW5kZXJMaXN0ICYmIG9mZmVuZGVyTGlzdC5vZmZlbmRlcnMpIHtcbiAgICAgICAgICB0aGlzLm9mZmVuZGVyUXVlcnlMaXN0ID0gWy4uLm9mZmVuZGVyTGlzdC5vZmZlbmRlcnNdO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlckNvbnRyb2wkLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKG8pID0+XG4gICAgICB0aGlzLm9uT2ZmZW5kZXJTZWxlY3RlZChvKSxcbiAgICApO1xuXG4gICAgdGhpcy5yb3V0ZXIucm91dGVSZXVzZVN0cmF0ZWd5LnNob3VsZFJldXNlUm91dGUgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgfVxuXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQoKSA6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmF1dGhuU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk9mZmVuZGVyU2VsZWN0ZWQob2ZmZW5kZXIpOiB2b2lkIHtcbiAgICBpZiAob2ZmZW5kZXIpIHtcbiAgICAgIC8vIGNvbnN0IG8gPSBvZmZlbmRlci5vZmZlbmRlck5hbWUuc3BsaXQoJywnKTtcbiAgICAgIC8vIGlmIChvLmxlbmd0aCA9PT0gMikge1xuICAgICAgLy8gICBjb25zdCBvZmZlbmRlck5hbWUgPSBgJHtvWzFdfSAke29bMF19YDtcbiAgICAgIC8vICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID0ge1xuICAgICAgLy8gICAgIG9mZmVuZGVySWQ6IG9mZmVuZGVyLm9mZmVuZGVySWQsXG4gICAgICAvLyAgICAgbmFtZTogb2ZmZW5kZXJOYW1lLFxuICAgICAgLy8gICAgIHBkSWQ6IG9mZmVuZGVyLnBkSWQsXG4gICAgICAvLyAgICAgYmlydGhEYXRlOiBvZmZlbmRlci5iaXJ0aERhdGUsXG4gICAgICAvLyAgICAgZ2VuZGVyOiBvZmZlbmRlci5nZW5kZXJDb2RlLFxuICAgICAgLy8gICAgIGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQ6ICcnLFxuICAgICAgLy8gICAgIGludGFrZUZsYWc6IHRoaXMubG9naW5TdGFmZlxuICAgICAgLy8gICAgICAgPyB0aGlzLmhhc0ludGFrZVJvbGUodGhpcy5sb2dpblN0YWZmLnJvbGVzKVxuICAgICAgLy8gICAgICAgOiBmYWxzZSxcbiAgICAgIC8vICAgfSBhcyBTZWxlY3RlZE9mZmVuZGVyO1xuICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID0gb2ZmZW5kZXI7XG4gICAgICB0aGlzLnhkbVNlcnZpY2Uuc2V0U2VsZWN0ZWRPZmZlbmRlcih0aGlzLnNlbGVjdGVkT2ZmZW5kZXIpO1xuICAgICAgdGhpcy5yZWxvYWRDdXJyZW50Um91dGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFNlbGVjdGVkT2ZmZW5kZXJDb250cm9sKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciAmJlxuICAgICAgdGhpcy5vZmZlbmRlclF1ZXJ5TGlzdCAmJlxuICAgICAgdGhpcy5vZmZlbmRlclF1ZXJ5TGlzdC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCBvID0gdGhpcy5vZmZlbmRlclF1ZXJ5TGlzdC5maW5kKFxuICAgICAgICAoeCkgPT4geC5vZmZlbmRlcklkID09PSB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIub2ZmZW5kZXJJZCxcbiAgICAgICk7XG4gICAgICBpZiAobykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXJDb250cm9sJC5zZXRWYWx1ZShvLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghbyAmJiB0aGlzLm9mZmVuZGVyUXVlcnlMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyQ29udHJvbCQuc2V0VmFsdWUodGhpcy5vZmZlbmRlclF1ZXJ5TGlzdFswXSwge1xuICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVsb2FkQ3VycmVudFJvdXRlKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy5yb3V0ZXIudXJsKTtcbiAgICAgIGlmIChcbiAgICAgICAgdXJsVHJlZSAmJlxuICAgICAgICB1cmxUcmVlLnJvb3QgJiZcbiAgICAgICAgdXJsVHJlZS5yb290LnNlZ21lbnRzICYmXG4gICAgICAgIHVybFRyZWUucm9vdC5zZWdtZW50cy5sZW5ndGggPiAxXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybFRyZWUucm9vdC5zZWdtZW50c1swXS5wYXRoXSk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB1cmxUcmVlICYmXG4gICAgICAgIHVybFRyZWUucm9vdCAmJlxuICAgICAgICB1cmxUcmVlLnJvb3QuY2hpbGRyZW4gJiZcbiAgICAgICAgdXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkgJiZcbiAgICAgICAgdXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHMgJiZcbiAgICAgICAgdXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHMubGVuZ3RoID4gMVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxUcmVlLnJvb3QuY2hpbGRyZW4ucHJpbWFyeS5zZWdtZW50c1swXS5wYXRoXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5yb3V0ZXIudXJsXSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNJbnRha2VSb2xlKHJvbGVzOiBSb2xlW10pIHtcbiAgICBpZiAocm9sZXMgJiYgcm9sZXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHJvbGVzLmZpbmRJbmRleCh0aGlzLmlzSW50YWtlUm9sZSkgPiAtMTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ludGFrZVJvbGUocm9sZTogUm9sZSkge1xuICAgIHN3aXRjaCAocm9sZS5yb2xlSWQpIHtcbiAgICAgIGNhc2UgJ09QQSc6XG4gICAgICBjYXNlICdPUFMnOlxuICAgICAgY2FzZSAnU09QUyc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm9mZmVuZGVyLWhlYWRlci1jb250YWluZXJcIlxuICAqbmdJZj1cInNlbGVjdGVkT2ZmZW5kZXIgJiYgaXNBdXRoZW50aWNhdGVkXCI+XG4gIDxkaXYgY2xhc3M9XCJvZmZlbmRlci1oZWFkZXItbmFtZS1pdGVtXCI+XG4gICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwic3RhbmRhcmRcIiBjbGFzcz1cInN3aXRjaC1vZmZlbmRlclwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+U3dpdGNoIE9mZmVuZGVyPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cInNlbGVjdGVkT2ZmZW5kZXJDb250cm9sJFwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9mZmVuZGVyIG9mIG9mZmVuZGVyUXVlcnlMaXN0XCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9mZmVuZGVyXCI+XG4gICAgICAgICAgICAgIHt7IG9mZmVuZGVyPy5uYW1lfX0gKHt7b2ZmZW5kZXI/Lm9mZmVuZGVySWR9fSlcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvZmZlbmRlci1oZWFkZXItaWQtaXRlbVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLWxhYmVsXCI+UERJRDo8L3NwYW4+IHt7IHNlbGVjdGVkT2ZmZW5kZXIucGRJZCB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvZmZlbmRlci1oZWFkZXItaWQtaXRlbVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLWxhYmVsXCI+Q1NPU0EgSUQ6PC9zcGFuPlxuICAgICAge3sgc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,41 +1,41 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import { HttpClient } from '@angular/common/http';
3
- import { map } from 'rxjs/operators';
4
- import { SMART_DATA_SERVICE_URL, } from '../smart-storage/smart-storage-model';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- export class SmartOffenderHeaderService {
8
- constructor(smartDataServiceUrl, http) {
9
- this.smartDataServiceUrl = smartDataServiceUrl;
10
- this.http = http;
11
- }
12
- getStaffOffenders(staffId) {
13
- const queryString = `
14
- query getStaffOffenderList{
15
- filterOffenderList(input: {staffId: ${staffId}}) {
16
- data {
17
- offenderId
18
- offenderName
19
- pdId
20
- birthDate
21
- gender
22
- }
23
- }
24
- }
25
- `;
26
- return this.http
27
- .post(this.smartDataServiceUrl, { query: queryString })
28
- .pipe(map(({ data }) => {
29
- return data.filterOffenderList.data;
30
- }));
31
- }
32
- }
33
- /** @nocollapse */ /** @nocollapse */ SmartOffenderHeaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderService, deps: [{ token: SMART_DATA_SERVICE_URL }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
34
- /** @nocollapse */ /** @nocollapse */ SmartOffenderHeaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderService });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderService, decorators: [{
36
- type: Injectable
37
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
38
- type: Inject,
39
- args: [SMART_DATA_SERVICE_URL]
40
- }] }, { type: i1.HttpClient }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtb2ZmZW5kZXItaGVhZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jc21hcnQvbmdjLXNtYXJ0LWNvcmUvc3JjL2xpYi9zbWFydC1vZmZlbmRlci1oZWFkZXIvc21hcnQtb2ZmZW5kZXItaGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsc0JBQXNCLEdBQ3ZCLE1BQU0sc0NBQXNDLENBQUM7OztBQUk5QyxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQzBDLG1CQUFtQixFQUNuRCxJQUFnQjtRQURnQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQUE7UUFDbkQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUosaUJBQWlCLENBQUMsT0FBZTtRQUMvQixNQUFNLFdBQVcsR0FBRzs7a0RBRTBCLE9BQU87Ozs7Ozs7Ozs7S0FVcEQsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7OzZKQTNCVSwwQkFBMEIsa0JBRTNCLHNCQUFzQjtpS0FGckIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMLFxyXG59IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbCc7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU21hcnRPZmZlbmRlckhlYWRlclNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMKSBwcml2YXRlIHNtYXJ0RGF0YVNlcnZpY2VVcmwsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgKSB7fVxyXG5cclxuICBnZXRTdGFmZk9mZmVuZGVycyhzdGFmZklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFzc2lnbmVkT2ZmZW5kZXJbXT4ge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBgXHJcbiAgICAgICAgcXVlcnkgZ2V0U3RhZmZPZmZlbmRlckxpc3R7XHJcbiAgICAgICAgICAgIGZpbHRlck9mZmVuZGVyTGlzdChpbnB1dDoge3N0YWZmSWQ6ICR7c3RhZmZJZH19KSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhIHtcclxuICAgICAgICAgICAgICAgICAgICBvZmZlbmRlcklkXHJcbiAgICAgICAgICAgICAgICAgICAgb2ZmZW5kZXJOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgcGRJZFxyXG4gICAgICAgICAgICAgICAgICAgIGJpcnRoRGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIGdlbmRlclxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55Pih0aGlzLnNtYXJ0RGF0YVNlcnZpY2VVcmwsIHsgcXVlcnk6IHF1ZXJ5U3RyaW5nIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBkYXRhLmZpbHRlck9mZmVuZGVyTGlzdC5kYXRhO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBc3NpZ25lZE9mZmVuZGVyIHtcclxuICBvZmZlbmRlcklkOiBudW1iZXI7XHJcbiAgb2ZmZW5kZXJOYW1lOiBzdHJpbmc7XHJcbiAgcGRJZDogc3RyaW5nO1xyXG4gIGJpcnRoRGF0ZTogRGF0ZTtcclxuICBnZW5kZXI6IHN0cmluZztcclxufVxyXG4iXX0=
1
+ import { Injectable, Inject } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { map } from 'rxjs/operators';
4
+ import { SMART_DATA_SERVICE_URL, } from '../smart-storage/smart-storage-model';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ export class SmartOffenderHeaderService {
8
+ constructor(smartDataServiceUrl, http) {
9
+ this.smartDataServiceUrl = smartDataServiceUrl;
10
+ this.http = http;
11
+ }
12
+ getStaffOffenders(staffId) {
13
+ const queryString = `
14
+ query getStaffOffenderList{
15
+ filterOffenderList(input: {staffId: ${staffId}}) {
16
+ data {
17
+ offenderId
18
+ offenderName
19
+ pdId
20
+ birthDate
21
+ gender
22
+ }
23
+ }
24
+ }
25
+ `;
26
+ return this.http
27
+ .post(this.smartDataServiceUrl, { query: queryString })
28
+ .pipe(map(({ data }) => {
29
+ return data.filterOffenderList.data;
30
+ }));
31
+ }
32
+ }
33
+ /** @nocollapse */ /** @nocollapse */ SmartOffenderHeaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderService, deps: [{ token: SMART_DATA_SERVICE_URL }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
34
+ /** @nocollapse */ /** @nocollapse */ SmartOffenderHeaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderService });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartOffenderHeaderService, decorators: [{
36
+ type: Injectable
37
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
38
+ type: Inject,
39
+ args: [SMART_DATA_SERVICE_URL]
40
+ }] }, { type: i1.HttpClient }]; } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtb2ZmZW5kZXItaGVhZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jc21hcnQvbmdjLXNtYXJ0LWNvcmUvc3JjL2xpYi9zbWFydC1vZmZlbmRlci1oZWFkZXIvc21hcnQtb2ZmZW5kZXItaGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsc0JBQXNCLEdBQ3ZCLE1BQU0sc0NBQXNDLENBQUM7OztBQUk5QyxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQzBDLG1CQUFtQixFQUNuRCxJQUFnQjtRQURnQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQUE7UUFDbkQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUosaUJBQWlCLENBQUMsT0FBZTtRQUMvQixNQUFNLFdBQVcsR0FBRzs7a0RBRTBCLE9BQU87Ozs7Ozs7Ozs7S0FVcEQsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7OzZKQTNCVSwwQkFBMEIsa0JBRTNCLHNCQUFzQjtpS0FGckIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIFNNQVJUX0RBVEFfU0VSVklDRV9VUkwsXG59IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbCc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNtYXJ0T2ZmZW5kZXJIZWFkZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMKSBwcml2YXRlIHNtYXJ0RGF0YVNlcnZpY2VVcmwsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICApIHt9XG5cbiAgZ2V0U3RhZmZPZmZlbmRlcnMoc3RhZmZJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBc3NpZ25lZE9mZmVuZGVyW10+IHtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IGBcbiAgICAgICAgcXVlcnkgZ2V0U3RhZmZPZmZlbmRlckxpc3R7XG4gICAgICAgICAgICBmaWx0ZXJPZmZlbmRlckxpc3QoaW5wdXQ6IHtzdGFmZklkOiAke3N0YWZmSWR9fSkge1xuICAgICAgICAgICAgICAgIGRhdGEge1xuICAgICAgICAgICAgICAgICAgICBvZmZlbmRlcklkXG4gICAgICAgICAgICAgICAgICAgIG9mZmVuZGVyTmFtZVxuICAgICAgICAgICAgICAgICAgICBwZElkXG4gICAgICAgICAgICAgICAgICAgIGJpcnRoRGF0ZVxuICAgICAgICAgICAgICAgICAgICBnZW5kZXJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueT4odGhpcy5zbWFydERhdGFTZXJ2aWNlVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4gZGF0YS5maWx0ZXJPZmZlbmRlckxpc3QuZGF0YTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzaWduZWRPZmZlbmRlciB7XG4gIG9mZmVuZGVySWQ6IG51bWJlcjtcbiAgb2ZmZW5kZXJOYW1lOiBzdHJpbmc7XG4gIHBkSWQ6IHN0cmluZztcbiAgYmlydGhEYXRlOiBEYXRlO1xuICBnZW5kZXI6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,25 +1,25 @@
1
- import { Injectable } from '@angular/core';
2
- import { SmartStaffOffenderOptionsService } from './smart-staff-offender-options.service';
3
- import { map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./smart-staff-offender-options.service";
6
- export class SmartStaffOffenderOptionsResolverService {
7
- constructor(offenderService) {
8
- this.offenderService = offenderService;
9
- }
10
- resolve() {
11
- return this.offenderService.getOffenderListOptions()
12
- .pipe(map(({ data }) => {
13
- return data;
14
- }));
15
- }
16
- }
17
- /** @nocollapse */ /** @nocollapse */ SmartStaffOffenderOptionsResolverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartStaffOffenderOptionsResolverService, deps: [{ token: i1.SmartStaffOffenderOptionsService }], target: i0.ɵɵFactoryTarget.Injectable });
18
- /** @nocollapse */ /** @nocollapse */ SmartStaffOffenderOptionsResolverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartStaffOffenderOptionsResolverService, providedIn: 'root' });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartStaffOffenderOptionsResolverService, decorators: [{
20
- type: Injectable,
21
- args: [{
22
- providedIn: 'root',
23
- }]
24
- }], ctorParameters: function () { return [{ type: i1.SmartStaffOffenderOptionsService }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy1yZXNvbHZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zLXJlc29sdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUV6RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUtyQyxNQUFNLE9BQU8sd0NBQXdDO0lBQ2pELFlBQW9CLGVBQWlEO1FBQWpELG9CQUFlLEdBQWYsZUFBZSxDQUFrQztJQUFHLENBQUM7SUFDekUsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsRUFBRTthQUNuRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7MktBVFEsd0NBQXdDOytLQUF4Qyx3Q0FBd0MsY0FGdkMsTUFBTTsyRkFFUCx3Q0FBd0M7a0JBSHBELFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXNvbHZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2V9IGZyb20gJy4vc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1Jlc29sdmVyU2VydmljZSBpbXBsZW1lbnRzIFJlc29sdmU8T2JzZXJ2YWJsZTxhbnk+PiB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9mZmVuZGVyU2VydmljZTogU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2UpIHt9XHJcbiAgICByZXNvbHZlKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vZmZlbmRlclNlcnZpY2UuZ2V0T2ZmZW5kZXJMaXN0T3B0aW9ucygpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import { SmartStaffOffenderOptionsService } from './smart-staff-offender-options.service';
3
+ import { map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./smart-staff-offender-options.service";
6
+ export class SmartStaffOffenderOptionsResolverService {
7
+ constructor(offenderService) {
8
+ this.offenderService = offenderService;
9
+ }
10
+ resolve() {
11
+ return this.offenderService.getOffenderListOptions()
12
+ .pipe(map(({ data }) => {
13
+ return data;
14
+ }));
15
+ }
16
+ }
17
+ /** @nocollapse */ /** @nocollapse */ SmartStaffOffenderOptionsResolverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartStaffOffenderOptionsResolverService, deps: [{ token: i1.SmartStaffOffenderOptionsService }], target: i0.ɵɵFactoryTarget.Injectable });
18
+ /** @nocollapse */ /** @nocollapse */ SmartStaffOffenderOptionsResolverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartStaffOffenderOptionsResolverService, providedIn: 'root' });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SmartStaffOffenderOptionsResolverService, decorators: [{
20
+ type: Injectable,
21
+ args: [{
22
+ providedIn: 'root',
23
+ }]
24
+ }], ctorParameters: function () { return [{ type: i1.SmartStaffOffenderOptionsService }]; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy1yZXNvbHZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zLXJlc29sdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUV6RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUtyQyxNQUFNLE9BQU8sd0NBQXdDO0lBQ2pELFlBQW9CLGVBQWlEO1FBQWpELG9CQUFlLEdBQWYsZUFBZSxDQUFrQztJQUFHLENBQUM7SUFDekUsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsRUFBRTthQUNuRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7MktBVFEsd0NBQXdDOytLQUF4Qyx3Q0FBd0MsY0FGdkMsTUFBTTsyRkFFUCx3Q0FBd0M7a0JBSHBELFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zU2VydmljZX0gZnJvbSAnLi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1Jlc29sdmVyU2VydmljZSBpbXBsZW1lbnRzIFJlc29sdmU8T2JzZXJ2YWJsZTxhbnk+PiB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBvZmZlbmRlclNlcnZpY2U6IFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNTZXJ2aWNlKSB7fVxuICAgIHJlc29sdmUoKSB7XG4gICAgICByZXR1cm4gdGhpcy5vZmZlbmRlclNlcnZpY2UuZ2V0T2ZmZW5kZXJMaXN0T3B0aW9ucygpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG4iXX0=