@csmart/ngc-smart-core 1.15.8 → 1.17.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 (60) hide show
  1. package/{esm2020 → esm2022}/csmart-ngc-smart-core.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/ngc-smart-core.module.mjs +98 -98
  3. package/{esm2020 → esm2022}/lib/smart-auth/smart-access-control-config.mjs +11 -11
  4. package/esm2022/lib/smart-auth/smart-access-control.directive.mjs +39 -0
  5. package/esm2022/lib/smart-auth/smart-auth.service.mjs +504 -0
  6. package/esm2022/lib/smart-auth/smart-authorization-guard.service.mjs +35 -0
  7. package/{esm2020 → esm2022}/lib/smart-auth/smart-error.component.mjs +37 -37
  8. package/esm2022/lib/smart-auth/smart-login-staff-resolver.service.mjs +59 -0
  9. package/esm2022/lib/smart-auth/smart-selected-offender-resolver.service.mjs +60 -0
  10. package/{esm2020 → esm2022}/lib/smart-navbar/smart-navbar-config.mjs +1 -1
  11. package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +174 -0
  12. package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +63 -0
  13. package/esm2022/lib/smart-offender-header/smart-offender-header.component.mjs +151 -0
  14. package/{esm2020 → esm2022}/lib/smart-offender-header/smart-offender-header.service.mjs +29 -29
  15. package/esm2022/lib/smart-offender-header/smart-offender-redirect.guard.mjs +27 -0
  16. package/{esm2020 → esm2022}/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.mjs +25 -25
  17. package/esm2022/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +78 -0
  18. package/esm2022/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +132 -0
  19. package/esm2022/lib/smart-storage/smart-storage-model.mjs +30 -0
  20. package/esm2022/lib/smart-storage/xdm.service.mjs +201 -0
  21. package/{esm2020 → esm2022}/public-api.mjs +20 -20
  22. package/{fesm2020 → fesm2022}/csmart-ngc-smart-core.mjs +1467 -1467
  23. package/{fesm2015 → fesm2022}/csmart-ngc-smart-core.mjs.map +1 -1
  24. package/index.d.ts +5 -5
  25. package/lib/ngc-smart-core.module.d.ts +20 -20
  26. package/lib/smart-auth/smart-access-control-config.d.ts +17 -17
  27. package/lib/smart-auth/smart-access-control.directive.d.ts +14 -14
  28. package/lib/smart-auth/smart-auth.service.d.ts +41 -41
  29. package/lib/smart-auth/smart-authorization-guard.service.d.ts +13 -13
  30. package/lib/smart-auth/smart-error.component.d.ts +17 -17
  31. package/lib/smart-auth/smart-login-staff-resolver.service.d.ts +13 -13
  32. package/lib/smart-auth/smart-selected-offender-resolver.service.d.ts +15 -15
  33. package/lib/smart-navbar/smart-navbar-config.d.ts +7 -7
  34. package/lib/smart-navbar/smart-navbar.component.d.ts +42 -42
  35. package/lib/smart-navbar/smart-navbar.service.d.ts +12 -12
  36. package/lib/smart-offender-header/smart-offender-header.component.d.ts +32 -32
  37. package/lib/smart-offender-header/smart-offender-header.service.d.ts +18 -18
  38. package/lib/smart-offender-header/smart-offender-redirect.guard.d.ts +9 -9
  39. package/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.d.ts +10 -11
  40. package/lib/smart-staff-offender-options/smart-staff-offender-options.component.d.ts +22 -22
  41. package/lib/smart-staff-offender-options/smart-staff-offender-options.service.d.ts +19 -19
  42. package/lib/smart-storage/smart-storage-model.d.ts +58 -58
  43. package/lib/smart-storage/xdm.service.d.ts +43 -43
  44. package/package.json +5 -11
  45. package/public-api.d.ts +17 -17
  46. package/esm2020/lib/smart-auth/smart-access-control.directive.mjs +0 -39
  47. package/esm2020/lib/smart-auth/smart-auth.service.mjs +0 -504
  48. package/esm2020/lib/smart-auth/smart-authorization-guard.service.mjs +0 -35
  49. package/esm2020/lib/smart-auth/smart-login-staff-resolver.service.mjs +0 -59
  50. package/esm2020/lib/smart-auth/smart-selected-offender-resolver.service.mjs +0 -60
  51. package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +0 -174
  52. package/esm2020/lib/smart-navbar/smart-navbar.service.mjs +0 -63
  53. package/esm2020/lib/smart-offender-header/smart-offender-header.component.mjs +0 -151
  54. package/esm2020/lib/smart-offender-header/smart-offender-redirect.guard.mjs +0 -27
  55. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +0 -78
  56. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +0 -132
  57. package/esm2020/lib/smart-storage/smart-storage-model.mjs +0 -30
  58. package/esm2020/lib/smart-storage/xdm.service.mjs +0 -201
  59. package/fesm2015/csmart-ngc-smart-core.mjs +0 -1670
  60. package/fesm2020/csmart-ngc-smart-core.mjs.map +0 -1
@@ -1,27 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/router";
5
- export class SmartOffenderRedirectGuard {
6
- constructor(router) {
7
- this.router = router;
8
- }
9
- canActivate(route, state) {
10
- const targetRoute = route.data['routeTo'];
11
- const queryParams = route.parent?.queryParams;
12
- if (targetRoute) {
13
- this.router.navigate([targetRoute], { queryParams: queryParams });
14
- return false;
15
- }
16
- return true;
17
- }
18
- }
19
- /** @nocollapse */ SmartOffenderRedirectGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SmartOffenderRedirectGuard, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
20
- /** @nocollapse */ SmartOffenderRedirectGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SmartOffenderRedirectGuard, providedIn: 'root' });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SmartOffenderRedirectGuard, decorators: [{
22
- type: Injectable,
23
- args: [{
24
- providedIn: 'root'
25
- }]
26
- }], ctorParameters: function () { return [{ type: i1.Router }]; } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtb2ZmZW5kZXItcmVkaXJlY3QuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jc21hcnQvbmdjLXNtYXJ0LWNvcmUvc3JjL2xpYi9zbWFydC1vZmZlbmRlci1oZWFkZXIvc21hcnQtb2ZmZW5kZXItcmVkaXJlY3QuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQTRELE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFLbkcsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFdEMsV0FBVyxDQUNULEtBQTZCLEVBQzdCLEtBQTBCO1FBRTFCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDOUMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDbEUsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7MklBZFUsMEJBQTBCOytJQUExQiwwQkFBMEIsY0FGekIsTUFBTTs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0T2ZmZW5kZXJSZWRpcmVjdEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XHJcblxyXG4gIGNhbkFjdGl2YXRlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdGFyZ2V0Um91dGUgPSByb3V0ZS5kYXRhWydyb3V0ZVRvJ107XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHJvdXRlLnBhcmVudD8ucXVlcnlQYXJhbXM7XHJcbiAgICBpZiAodGFyZ2V0Um91dGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RhcmdldFJvdXRlXSwgeyBxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfSk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,78 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { SmartStaffOffenderOptionsService } from './smart-staff-offender-options.service';
3
- import { UntypedFormGroup, UntypedFormControl, } from '@angular/forms';
4
- import { ActivatedRoute } from '@angular/router';
5
- import { XdmService } from '../smart-storage/xdm.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
- import * as i2 from "./smart-staff-offender-options.service";
9
- import * as i3 from "../smart-storage/xdm.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@angular/material/button";
12
- import * as i6 from "@angular/material/card";
13
- import * as i7 from "@angular/material/checkbox";
14
- import * as i8 from "@angular/forms";
15
- export class SmartStaffOffenderOptionsComponent {
16
- constructor(route, offenderService, xdmService) {
17
- this.route = route;
18
- this.offenderService = offenderService;
19
- this.xdmService = xdmService;
20
- this.offenderListOptions = [];
21
- }
22
- ngOnInit() {
23
- const routData = this.route.snapshot.data;
24
- this.loginStaff = routData.loginStaff;
25
- this.offenderListOptions = routData.selectedOffenderResolverService;
26
- this.frmGroup = this.createForm();
27
- this.offenderService.getStaffOffenderListOptions(this.loginStaff.staffId).subscribe(data => {
28
- this.fillForm(data);
29
- });
30
- }
31
- fillForm(data) {
32
- if (data) {
33
- const offenderListOptionsFg = this.frmGroup.get('offenderListOptions');
34
- data.forEach(element => {
35
- offenderListOptionsFg.get(element.offenderListOptionId).setValue(true);
36
- });
37
- }
38
- }
39
- createForm() {
40
- const offenderListOptionsFg = new UntypedFormGroup({});
41
- this.offenderListOptions.forEach((dt, i) => {
42
- offenderListOptionsFg.addControl(dt.offenderListOptionId, new UntypedFormControl(false));
43
- });
44
- return new UntypedFormGroup({
45
- offenderListOptions: offenderListOptionsFg,
46
- });
47
- }
48
- onSave() {
49
- const data = {
50
- options: [],
51
- staffId: this.loginStaff.staffId,
52
- modifiedBy: this.loginStaff.staffId
53
- };
54
- const offenderListOptionsVal = this.frmGroup.get('offenderListOptions').value;
55
- const keys = Object.keys(offenderListOptionsVal);
56
- keys.forEach(key => {
57
- if (offenderListOptionsVal[key]) {
58
- data.options.push({ 'offenderListOptionId': key });
59
- }
60
- });
61
- this.offenderService.saveStaffOffenderListOptionsData(data).subscribe(rtrDatea => {
62
- if (rtrDatea.message) {
63
- this.offenderService.showMessage(rtrDatea.message);
64
- }
65
- else {
66
- this.offenderService.showMessage('Saved successfully');
67
- this.xdmService.refreshLoginStaffOptions();
68
- }
69
- });
70
- }
71
- }
72
- /** @nocollapse */ SmartStaffOffenderOptionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SmartStaffOffenderOptionsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SmartStaffOffenderOptionsService }, { token: i3.XdmService }], target: i0.ɵɵFactoryTarget.Component });
73
- /** @nocollapse */ SmartStaffOffenderOptionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SmartStaffOffenderOptionsComponent, selector: "lib-smart-staff-offender-options", ngImport: i0, template: "<form class=\"main-form\" [formGroup]=\"frmGroup\">\r\n <mat-card appearance=\"outlined\" 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 ", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }] });
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SmartStaffOffenderOptionsComponent, decorators: [{
75
- type: Component,
76
- args: [{ selector: 'lib-smart-staff-offender-options', template: "<form class=\"main-form\" [formGroup]=\"frmGroup\">\r\n <mat-card appearance=\"outlined\" 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 " }]
77
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SmartStaffOffenderOptionsService }, { type: i3.XdmService }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jc21hcnQvbmdjLXNtYXJ0LWNvcmUvc3JjL2xpYi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsR0FJbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7O0FBT3pELE1BQU0sT0FBTyxrQ0FBa0M7SUFJN0MsWUFDVSxLQUFxQixFQUNyQixlQUFpRCxFQUNqRCxVQUFzQjtRQUZ0QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0M7UUFDakQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUxoQyx3QkFBbUIsR0FBZSxFQUFFLENBQUM7SUFNakMsQ0FBQztJQUVMLFFBQVE7UUFDTixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsK0JBQStCLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6RixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFJO1FBQ25CLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxxQkFBcUIsR0FBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3JCLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekUsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUVILENBQUM7SUFDTyxVQUFVO1FBQ2hCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxFQUNsRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLGdCQUFnQixDQUFDO1lBQzFCLG1CQUFtQixFQUFFLHFCQUFxQjtTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUFHO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPO1lBQ2hDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87U0FDcEMsQ0FBQztRQUVGLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakIsSUFBSSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO2FBQ2xEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUEsRUFBRTtZQUM5RSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNwRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLENBQUM7YUFDNUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O21KQWpFVSxrQ0FBa0M7dUlBQWxDLGtDQUFrQyx3RUNsQi9DLHFrQ0F5QkU7NEZEUFcsa0NBQWtDO2tCQUw5QyxTQUFTOytCQUNFLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNTZXJ2aWNlfSBmcm9tICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7ICBGb3JtQnVpbGRlcixcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcclxuICBWYWxpZGF0b3JzLFxyXG4gIFZhbGlkYXRvckZuLFxyXG4gIEFic3RyYWN0Q29udHJvbCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExvZ2luU3RhZmYgfSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgWGRtU2VydmljZX0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS94ZG0uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGxvZ2luU3RhZmY6IExvZ2luU3RhZmY7XHJcbiAgb2ZmZW5kZXJMaXN0T3B0aW9uczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGZybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIG9mZmVuZGVyU2VydmljZTogU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHhkbVNlcnZpY2U6IFhkbVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IHJvdXREYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhO1xyXG4gICAgdGhpcy5sb2dpblN0YWZmID0gcm91dERhdGEubG9naW5TdGFmZjtcclxuICAgIHRoaXMub2ZmZW5kZXJMaXN0T3B0aW9ucyA9IHJvdXREYXRhLnNlbGVjdGVkT2ZmZW5kZXJSZXNvbHZlclNlcnZpY2U7XHJcbiAgICB0aGlzLmZybUdyb3VwID0gdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgICB0aGlzLm9mZmVuZGVyU2VydmljZS5nZXRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnModGhpcy5sb2dpblN0YWZmLnN0YWZmSWQpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5maWxsRm9ybShkYXRhKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWxsRm9ybShkYXRhKSB7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBjb25zdCBvZmZlbmRlckxpc3RPcHRpb25zRmcgPSAgdGhpcy5mcm1Hcm91cC5nZXQoJ29mZmVuZGVyTGlzdE9wdGlvbnMnKTtcclxuICAgICAgZGF0YS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbnNGZy5nZXQoZWxlbWVudC5vZmZlbmRlckxpc3RPcHRpb25JZCkuc2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xyXG4gICAgY29uc3Qgb2ZmZW5kZXJMaXN0T3B0aW9uc0ZnID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5vZmZlbmRlckxpc3RPcHRpb25zLmZvckVhY2goIChkdCwgaSkgPT4ge1xyXG4gICAgICBvZmZlbmRlckxpc3RPcHRpb25zRmcuYWRkQ29udHJvbChkdC5vZmZlbmRlckxpc3RPcHRpb25JZCwgbmV3IFVudHlwZWRGb3JtQ29udHJvbChmYWxzZSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgb2ZmZW5kZXJMaXN0T3B0aW9uczogb2ZmZW5kZXJMaXN0T3B0aW9uc0ZnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNhdmUoKSB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBvcHRpb25zOiBbXSxcclxuICAgICAgc3RhZmZJZDogdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXHJcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMubG9naW5TdGFmZi5zdGFmZklkXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9mZmVuZGVyTGlzdE9wdGlvbnNWYWwgPSB0aGlzLmZybUdyb3VwLmdldCgnb2ZmZW5kZXJMaXN0T3B0aW9ucycpLnZhbHVlO1xyXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9mZmVuZGVyTGlzdE9wdGlvbnNWYWwpO1xyXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGlmIChvZmZlbmRlckxpc3RPcHRpb25zVmFsW2tleV0pIHtcclxuICAgICAgICBkYXRhLm9wdGlvbnMucHVzaCh7J29mZmVuZGVyTGlzdE9wdGlvbklkJzoga2V5fSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub2ZmZW5kZXJTZXJ2aWNlLnNhdmVTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnNEYXRhKGRhdGEpLnN1YnNjcmliZShydHJEYXRlYT0+e1xyXG4gICAgICBpZiAocnRyRGF0ZWEubWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMub2ZmZW5kZXJTZXJ2aWNlLnNob3dNZXNzYWdlKHJ0ckRhdGVhLm1lc3NhZ2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub2ZmZW5kZXJTZXJ2aWNlLnNob3dNZXNzYWdlKCdTYXZlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICB0aGlzLnhkbVNlcnZpY2UucmVmcmVzaExvZ2luU3RhZmZPcHRpb25zKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGZvcm0gY2xhc3M9XCJtYWluLWZvcm1cIiBbZm9ybUdyb3VwXT1cImZybUdyb3VwXCI+XHJcbiAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIHJvbGU9XCJncm91cFwiPlxyXG4gIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwib2ZmZW5kZXJMaXN0T3B0aW9uc1wiPlxyXG4gICAgICA8ZGl2ICBzdHlsZT1cImZsb2F0OmxlZnQ7XCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb2ZmZW5kZXJMaXN0T3B0aW9uIG9mIG9mZmVuZGVyTGlzdE9wdGlvbnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKm5nSWY9XCJpJTIhPTBcIiBjb2xvcj1cInByaW1hcnlcIiBmb3JtQ29udHJvbE5hbWU9XCJ7e29mZmVuZGVyTGlzdE9wdGlvbi5vZmZlbmRlckxpc3RPcHRpb25JZH19XCI+XHJcbiAgICAgICAgICAgIHt7b2ZmZW5kZXJMaXN0T3B0aW9uLm5hbWV9fVxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9mZmVuZGVyTGlzdE9wdGlvbiBvZiBvZmZlbmRlckxpc3RPcHRpb25zOyBsZXQgaSA9IGluZGV4XCIgPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCAqbmdJZj1cImklMj09MFwiIGNvbG9yPVwicHJpbWFyeVwiIGZvcm1Db250cm9sTmFtZT1cInt7b2ZmZW5kZXJMaXN0T3B0aW9uLm9mZmVuZGVyTGlzdE9wdGlvbklkfX1cIj5cclxuICAgICAgICAgICAge3tvZmZlbmRlckxpc3RPcHRpb24ubmFtZX19XHJcbiAgICAgICAgICA8L21hdC1jaGVja2JveD4gXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8ZGl2IGFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cIm9uU2F2ZSgpXCI+U2F2ZTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICA8L21hdC1jYXJkPlxyXG4gIDwvZm9ybT5cclxuICAiXX0=
@@ -1,132 +0,0 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import { HttpClient } from '@angular/common/http';
3
- import { map } from 'rxjs/operators';
4
- import { MatSnackBar } from '@angular/material/snack-bar';
5
- import { SMART_DATA_SERVICE_URL } from '../smart-storage/smart-storage-model';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common/http";
8
- import * as i2 from "@angular/material/snack-bar";
9
- export class SmartStaffOffenderOptionsService {
10
- constructor(http, matSnackBar, serviceApiUrl) {
11
- this.http = http;
12
- this.matSnackBar = matSnackBar;
13
- this.serviceApiUrl = serviceApiUrl;
14
- }
15
- showMessage(message) {
16
- this.matSnackBar.open(message, null, {
17
- duration: 2000,
18
- });
19
- }
20
- convertEmptyToNull(jsonObject) {
21
- if (!jsonObject) {
22
- return;
23
- }
24
- if (jsonObject instanceof Array) {
25
- jsonObject.forEach((obj) => {
26
- this.convertEmptyToNull(obj);
27
- });
28
- }
29
- const keys = Object.keys(jsonObject);
30
- keys.forEach((key) => {
31
- if (typeof jsonObject[key] === 'object') {
32
- this.convertEmptyToNull(jsonObject[key]);
33
- }
34
- else if (typeof jsonObject[key] === 'string' &&
35
- jsonObject[key].trim() === '') {
36
- jsonObject[key] = null;
37
- }
38
- });
39
- }
40
- getGraphQueryData(queryName, queryString) {
41
- return this.http.post(this.serviceApiUrl, { query: queryString }).pipe(map(({ data }) => {
42
- return data[queryName];
43
- }));
44
- }
45
- getOffenderListOptions() {
46
- const queryString = `{findOffenderListOptions(input:{
47
- where:{
48
- deactivatedDate: null
49
- }
50
- }){
51
- data{
52
- offenderListOptionId
53
- name
54
- serviceApiFieldName
55
- }
56
- } }`;
57
- return this.http.post(this.serviceApiUrl, { query: queryString }).pipe(map(({ data }) => {
58
- return data['findOffenderListOptions'];
59
- }));
60
- }
61
- getStaffOffenderListOptions(staffId) {
62
- const queryString = `{findStaffOffenderListOptions(input:{
63
- where:{
64
- staffId: ${staffId}
65
- }
66
- }){
67
- data{
68
- offenderListOptionId
69
- }
70
- } }`;
71
- return this.http.post(this.serviceApiUrl, { query: queryString }).pipe(map(({ data }) => {
72
- return data.findStaffOffenderListOptions.data;
73
- }));
74
- }
75
- saveStaffOffenderListOptionsData(dataToSave) {
76
- //}: Observable<any> {
77
- // this.convertEmptyToNull(dataToSave);
78
- const queryName = 'upsertStaffOffenderListOption';
79
- const query = `mutation {
80
- upsertStaffOffenderListOption(input: ${this.convertToString(dataToSave)}) {
81
- message
82
- }
83
- }`;
84
- return this.http.post(this.serviceApiUrl, { query });
85
- /*.pipe(
86
- map(({ data }) => {
87
- return data[queryName];
88
- }));*/
89
- }
90
- convertToString(obj) {
91
- let result = '';
92
- if (!obj) {
93
- return result;
94
- }
95
- if (obj instanceof Array) {
96
- result += ' [';
97
- obj.forEach((eObj) => {
98
- result += this.convertToString(eObj);
99
- });
100
- result += '],';
101
- }
102
- else {
103
- result += '{';
104
- const keys = Object.keys(obj);
105
- keys.forEach((key) => {
106
- if (typeof obj[key] === 'object') {
107
- result += key + ':' + this.convertToString(obj[key]);
108
- }
109
- else {
110
- if (isNaN(obj[key])) {
111
- result += key + ':"' + obj[key] + '",';
112
- }
113
- else {
114
- result += key + ':' + obj[key] + ',';
115
- }
116
- }
117
- });
118
- result = result.substring(0, result.length - 1);
119
- result += '},';
120
- }
121
- return result;
122
- }
123
- }
124
- /** @nocollapse */ SmartStaffOffenderOptionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SmartStaffOffenderOptionsService, deps: [{ token: i1.HttpClient }, { token: i2.MatSnackBar }, { token: SMART_DATA_SERVICE_URL }], target: i0.ɵɵFactoryTarget.Injectable });
125
- /** @nocollapse */ SmartStaffOffenderOptionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SmartStaffOffenderOptionsService });
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SmartStaffOffenderOptionsService, decorators: [{
127
- type: Injectable
128
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.MatSnackBar }, { type: undefined, decorators: [{
129
- type: Inject,
130
- args: [SMART_DATA_SERVICE_URL]
131
- }] }]; } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFHOUUsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUNVLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ1EsYUFBYTtRQUY3QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ1Esa0JBQWEsR0FBYixhQUFhLENBQUE7SUFDcEQsQ0FBQztJQUVHLFdBQVcsQ0FBQyxPQUFPO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDbkMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsVUFBZ0I7UUFDekMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU87U0FDUjtRQUVELElBQUksVUFBVSxZQUFZLEtBQUssRUFBRTtZQUMvQixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxr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QUMsQ0FBQztZQUNILE1BQU0sSUFBSSxJQUFJLENBQUM7U0FDaEI7YUFBTTtZQUNMLE1BQU0sSUFBSSxHQUFHLENBQUM7WUFDZCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7b0JBQ2hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3REO3FCQUFNO29CQUNMLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO3dCQUNuQixNQUFNLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO3FCQUN4Qzt5QkFBTTt3QkFDTCxNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO3FCQUN0QztpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsTUFBTSxJQUFJLElBQUksQ0FBQztTQUNoQjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O2lKQXhJVSxnQ0FBZ0MsdUVBSWpDLHNCQUFzQjtxSkFKckIsZ0NBQWdDOzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVU7OzBCQUtOLE1BQU07MkJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgbWF0U25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgQEluamVjdChTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMKSBwcml2YXRlIHNlcnZpY2VBcGlVcmwsXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgc2hvd01lc3NhZ2UobWVzc2FnZSkge1xyXG4gICAgdGhpcy5tYXRTbmFja0Jhci5vcGVuKG1lc3NhZ2UsIG51bGwsIHtcclxuICAgICAgZHVyYXRpb246IDIwMDAsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydEVtcHR5VG9OdWxsKGpzb25PYmplY3Q6IEpTT04pIHtcclxuICAgIGlmICghanNvbk9iamVjdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGpzb25PYmplY3QgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICBqc29uT2JqZWN0LmZvckVhY2goKG9iaikgPT4ge1xyXG4gICAgICAgIHRoaXMuY29udmVydEVtcHR5VG9OdWxsKG9iaik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhqc29uT2JqZWN0KTtcclxuICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2YganNvbk9iamVjdFtrZXldID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIHRoaXMuY29udmVydEVtcHR5VG9OdWxsKGpzb25PYmplY3Rba2V5XSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdHlwZW9mIGpzb25PYmplY3Rba2V5XSA9PT0gJ3N0cmluZycgJiZcclxuICAgICAgICBqc29uT2JqZWN0W2tleV0udHJpbSgpID09PSAnJ1xyXG4gICAgICApIHtcclxuICAgICAgICBqc29uT2JqZWN0W2tleV0gPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0R3JhcGhRdWVyeURhdGEoXHJcbiAgICBxdWVyeU5hbWU6IHN0cmluZyxcclxuICAgIHF1ZXJ5U3RyaW5nOiBzdHJpbmcsXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHRoaXMuc2VydmljZUFwaVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSkucGlwZShcclxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBkYXRhW3F1ZXJ5TmFtZV07XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldE9mZmVuZGVyTGlzdE9wdGlvbnMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYHtmaW5kT2ZmZW5kZXJMaXN0T3B0aW9ucyhpbnB1dDp7XHJcbiAgICAgIHdoZXJlOntcclxuICAgICAgICBkZWFjdGl2YXRlZERhdGU6IG51bGxcclxuICAgICAgfVxyXG4gICAgfSl7XHJcbiAgICAgIGRhdGF7XHJcbiAgICAgICAgb2ZmZW5kZXJMaXN0T3B0aW9uSWRcclxuICAgICAgICAgIG5hbWVcclxuICAgICAgICAgIHNlcnZpY2VBcGlGaWVsZE5hbWVcclxuICAgICAgfVxyXG4gIH0gfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5zZXJ2aWNlQXBpVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KS5waXBlKFxyXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFbJ2ZpbmRPZmZlbmRlckxpc3RPcHRpb25zJ107XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnMoc3RhZmZJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XHJcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IGB7ZmluZFN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucyhpbnB1dDp7XHJcbiAgICAgIHdoZXJlOntcclxuICAgICAgICBzdGFmZklkOiAke3N0YWZmSWR9XHJcbiAgICAgIH1cclxuICAgIH0pe1xyXG4gICAgICBkYXRhe1xyXG4gICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXHJcbiAgICAgIH1cclxuICB9IH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5zZXJ2aWNlQXBpVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KS5waXBlKFxyXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEuZmluZFN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucy5kYXRhO1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzYXZlU3RhZmZPZmZlbmRlckxpc3RPcHRpb25zRGF0YShkYXRhVG9TYXZlOiBhbnkpIHtcclxuICAgIC8vfTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICAvLyB0aGlzLmNvbnZlcnRFbXB0eVRvTnVsbChkYXRhVG9TYXZlKTtcclxuICAgIGNvbnN0IHF1ZXJ5TmFtZSA9ICd1cHNlcnRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbic7XHJcbiAgICBjb25zdCBxdWVyeSA9IGBtdXRhdGlvbiAge1xyXG4gICAgICAgICAgICB1cHNlcnRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbihpbnB1dDogJHt0aGlzLmNvbnZlcnRUb1N0cmluZyhcclxuICAgICAgICAgICAgICBkYXRhVG9TYXZlLFxyXG4gICAgICAgICAgICApfSkge1xyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5zZXJ2aWNlQXBpVXJsLCB7IHF1ZXJ5IH0pO1xyXG4gICAgLyoucGlwZShcclxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBkYXRhW3F1ZXJ5TmFtZV07XHJcbiAgICAgIH0pKTsqL1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvU3RyaW5nKG9iaik6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcblxyXG4gICAgaWYgKCFvYmopIHtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob2JqIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgcmVzdWx0ICs9ICcgWyc7XHJcbiAgICAgIG9iai5mb3JFYWNoKChlT2JqKSA9PiB7XHJcbiAgICAgICAgcmVzdWx0ICs9IHRoaXMuY29udmVydFRvU3RyaW5nKGVPYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgcmVzdWx0ICs9ICddLCc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHQgKz0gJ3snO1xyXG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcclxuICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgcmVzdWx0ICs9IGtleSArICc6JyArIHRoaXMuY29udmVydFRvU3RyaW5nKG9ialtrZXldKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGlzTmFOKG9ialtrZXldKSkge1xyXG4gICAgICAgICAgICByZXN1bHQgKz0ga2V5ICsgJzpcIicgKyBvYmpba2V5XSArICdcIiwnO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVzdWx0ICs9IGtleSArICc6JyArIG9ialtrZXldICsgJywnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoMCwgcmVzdWx0Lmxlbmd0aCAtIDEpO1xyXG4gICAgICByZXN1bHQgKz0gJ30sJztcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,30 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export class Permission {
3
- }
4
- export class Role {
5
- }
6
- export class Option {
7
- }
8
- export class LoginStaff {
9
- constructor() {
10
- this.selectedRole = '*';
11
- }
12
- }
13
- export class SelectedOffender {
14
- constructor() {
15
- this.intakeFlag = false;
16
- }
17
- }
18
- export class OffenderQuery {
19
- }
20
- export class StorageKey {
21
- }
22
- StorageKey.selectedOffender = 'smart-selected-offender';
23
- StorageKey.loginStaff = 'smart-login-staff';
24
- StorageKey.offenderQuery = 'smart-offender-query';
25
- export const SMART_WEB_STORAGE_LISTENER_URL = new InjectionToken('SMART Web Storage Listener URL');
26
- export const SMART_WEB_PORTAL_URL = new InjectionToken('SMART Web Portal URL');
27
- export const SMART_DATA_SERVICE_URL = new InjectionToken('SMART Data Service URL');
28
- //exception for redirection
29
- export const SMART_DOMAIN_FORMAT = new InjectionToken('SMART Domain Format URL');
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RvcmFnZS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NzbWFydC9uZ2Mtc21hcnQtY29yZS9zcmMvbGliL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sT0FBTyxVQUFVO0NBYXRCO0FBRUQsTUFBTSxPQUFPLElBQUk7Q0FHaEI7QUFFRCxNQUFNLE9BQU8sTUFBTTtDQUtsQjtBQUVELE1BQU0sT0FBTyxVQUFVO0lBQXZCO1FBT0UsaUJBQVksR0FBVyxHQUFHLENBQUM7SUFJN0IsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQU9FLGVBQVUsR0FBYSxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLGFBQWE7Q0FFekI7QUFFRCxNQUFNLE9BQU8sVUFBVTs7QUFDZCwyQkFBZ0IsR0FBRyx5QkFBeUIsQ0FBQztBQUM3QyxxQkFBVSxHQUFHLG1CQUFtQixDQUFDO0FBQ2pDLHdCQUFhLEdBQUcsc0JBQXNCLENBQUM7QUFHaEQsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsSUFBSSxjQUFjLENBQzlELGdDQUFnQyxDQUNqQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQ3BELHNCQUFzQixDQUN2QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3RELHdCQUF3QixDQUN6QixDQUFDO0FBRUYsMkJBQTJCO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUNuRCx5QkFBeUIsQ0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbiB7XHJcbiAgcm9sZUlkOiBzdHJpbmc7XHJcbiAgYXBwTW9kdWxlSWQ6IHN0cmluZztcclxuICByZXNvdXJjZTogc3RyaW5nO1xyXG4gIGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQ6IHN0cmluZztcclxuICByZWFkRmxhZzogYm9vbGVhbjtcclxuICBjcmVhdGVGbGFnOiBib29sZWFuO1xyXG4gIHVwZGF0ZUZsYWc6IGJvb2xlYW47XHJcbiAgZGVsZXRlRmxhZzogYm9vbGVhbjtcclxuICBhc3NpZ25GbGFnOiBib29sZWFuO1xyXG4gIHJlb3BlbkZsYWc6IGJvb2xlYW47XHJcbiAgY2xvc2VGbGFnOiBib29sZWFuO1xyXG4gIGV4cHVuZ2VGbGFnOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm9sZSB7XHJcbiAgcm9sZUlkOiBzdHJpbmc7XHJcbiAgcm9sZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgT3B0aW9uIHtcclxuICBvZmZlbmRlck9wdGlvbkxpc3RJZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBzZXJ2aWNlQXBpRmllbGROYW1lOiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWRGbGFnOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTG9naW5TdGFmZiB7XHJcbiAgc3RhZmZJZDogbnVtYmVyO1xyXG4gIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XHJcbiAgbGFzdE5hbWU6IHN0cmluZztcclxuICBwaG9uZTogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWRSb2xlOiBzdHJpbmcgPSAnKic7XHJcbiAgcm9sZXM/OiBSb2xlW107XHJcbiAgcGVybWlzc2lvbnM/OiBQZXJtaXNzaW9uW107XHJcbiAgb3B0aW9ucz86IE9wdGlvbltdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2VsZWN0ZWRPZmZlbmRlciB7XHJcbiAgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBwZElkOiBzdHJpbmc7XHJcbiAgYmlydGhEYXRlOiBEYXRlO1xyXG4gIGdlbmRlcjogc3RyaW5nO1xyXG4gIGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQ/OiBzdHJpbmc7XHJcbiAgaW50YWtlRmxhZz86IGJvb2xlYW4gPSBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE9mZmVuZGVyUXVlcnkge1xyXG4gIG9mZmVuZGVyczogU2VsZWN0ZWRPZmZlbmRlcltdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZUtleSB7XHJcbiAgc3RhdGljIHNlbGVjdGVkT2ZmZW5kZXIgPSAnc21hcnQtc2VsZWN0ZWQtb2ZmZW5kZXInO1xyXG4gIHN0YXRpYyBsb2dpblN0YWZmID0gJ3NtYXJ0LWxvZ2luLXN0YWZmJztcclxuICBzdGF0aWMgb2ZmZW5kZXJRdWVyeSA9ICdzbWFydC1vZmZlbmRlci1xdWVyeSc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBTTUFSVF9XRUJfU1RPUkFHRV9MSVNURU5FUl9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcclxuICAnU01BUlQgV2ViIFN0b3JhZ2UgTGlzdGVuZXIgVVJMJyxcclxuKTtcclxuZXhwb3J0IGNvbnN0IFNNQVJUX1dFQl9QT1JUQUxfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXHJcbiAgJ1NNQVJUIFdlYiBQb3J0YWwgVVJMJyxcclxuKTtcclxuZXhwb3J0IGNvbnN0IFNNQVJUX0RBVEFfU0VSVklDRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcclxuICAnU01BUlQgRGF0YSBTZXJ2aWNlIFVSTCcsXHJcbik7XHJcblxyXG4vL2V4Y2VwdGlvbiBmb3IgcmVkaXJlY3Rpb25cclxuZXhwb3J0IGNvbnN0IFNNQVJUX0RPTUFJTl9GT1JNQVQgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcclxuICAnU01BUlQgRG9tYWluIEZvcm1hdCBVUkwnLFxyXG4pO1xyXG5cclxuIl19
@@ -1,201 +0,0 @@
1
- import { Injectable, Inject, isDevMode } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
- import { Subject, of, from } from 'rxjs';
4
- import { catchError, map, switchMap } from 'rxjs/operators';
5
- import { StorageKey, SMART_WEB_STORAGE_LISTENER_URL, SMART_DATA_SERVICE_URL, } from './smart-storage-model';
6
- // import connectToChild from "penpal/lib/connectToChild";
7
- import { connectToChild } from 'penpal';
8
- import { HttpClient } from '@angular/common/http';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common/http";
11
- export class XdmService {
12
- constructor(document, smartStorageListenerUrl, httpClient, smartDataServiceUrl) {
13
- this.document = document;
14
- this.smartStorageListenerUrl = smartStorageListenerUrl;
15
- this.httpClient = httpClient;
16
- this.smartDataServiceUrl = smartDataServiceUrl;
17
- this.offenderSubject = new Subject();
18
- this.staffSubject = new Subject();
19
- this.offenderQuerySubject = new Subject();
20
- if (isDevMode) {
21
- console.log('SmartStorage XdmService (Client) - constructor()');
22
- }
23
- this.init();
24
- }
25
- init() {
26
- const frame = this.document.createElement('iframe');
27
- frame.src = this.smartStorageListenerUrl;
28
- frame.id = 'childframe';
29
- frame.name = Math.random().toString();
30
- frame.onload = null;
31
- frame.style.visibility = 'hidden';
32
- this.document.body.appendChild(frame);
33
- this.connection = connectToChild({
34
- iframe: frame,
35
- debug: false,
36
- });
37
- }
38
- getStaffOffenderListOptions(staffId) {
39
- const queryString = `{findvStaffOffenderListOptions(input:{
40
- where:{
41
- staffId: ${staffId}
42
- }
43
- }){
44
- data{
45
- offenderListOptionId
46
- name
47
- serviceApiFieldName
48
- selectedFlag
49
- }
50
- } }`;
51
- return this.httpClient
52
- .post(this.smartDataServiceUrl, { query: queryString })
53
- .pipe(map(({ data }) => {
54
- data.findvStaffOffenderListOptions.data['offenderOptionListId'] =
55
- data.findvStaffOffenderListOptions.data['offenderListOptionId'];
56
- return data.findvStaffOffenderListOptions.data;
57
- }));
58
- /*return of([
59
- { offenderListOptionId: 'genderCode', name: '', selectedFlag: true }]);*/
60
- }
61
- clearAll() {
62
- this.connection.promise.then((child) => {
63
- child.clearAll();
64
- this.offenderSubject.next();
65
- this.staffSubject.next();
66
- });
67
- }
68
- /*************************************
69
- * Offender
70
- **************************************/
71
- setSelectedOffender(selectedOffender) {
72
- this.connection.promise.then((child) => {
73
- child.setSelectedOffender(selectedOffender);
74
- this.offenderSubject.next(selectedOffender);
75
- });
76
- this.getLoginStaff().then((loginStaff) => {
77
- let now = (new Date()).toISOString();
78
- const queryString = `mutation { createStaffOffenderAccess(input: {
79
- staffId: ${loginStaff.staffId},
80
- offenderId: ${selectedOffender.offenderId},
81
- accessDate: "${now}"
82
- }) {
83
- data {
84
- staffOffenderAccessId
85
- }
86
- }}`;
87
- this.httpClient.post(this.smartDataServiceUrl, { query: queryString }).subscribe();
88
- });
89
- }
90
- getSelectedOffender() {
91
- return this.connection.promise.then((child) => child.getSelectedOffender(StorageKey.selectedOffender));
92
- }
93
- clearSelectedOffender() {
94
- this.connection.promise.then((child) => {
95
- child.clearSelectedOffender();
96
- this.offenderSubject.next();
97
- });
98
- }
99
- getOffenderUpdate() {
100
- return this.offenderSubject.asObservable();
101
- }
102
- /************************************************************************
103
- * Staff
104
- ************************************************************************/
105
- setLoginStaff(loginStaff) {
106
- this.connection.promise.then((child) => {
107
- child.setLoginStaff(loginStaff);
108
- this.staffSubject.next(loginStaff);
109
- });
110
- }
111
- getLoginStaff() {
112
- return this.connection.promise.then((child) => child.getLoginStaff(StorageKey.loginStaff));
113
- }
114
- clearLoginStaff() {
115
- this.connection.promise.then((child) => {
116
- child.clearLoginStaff();
117
- this.staffSubject.next();
118
- });
119
- }
120
- getStaffUpdate() {
121
- return this.staffSubject.asObservable();
122
- }
123
- refreshLoginStaffOptions() {
124
- this.getLoginStaff().then((oldLoginStaff) => {
125
- this.getStaffOffenderListOptions(oldLoginStaff.staffId).subscribe((optionData) => {
126
- console.log(optionData);
127
- oldLoginStaff.options = optionData;
128
- this.setLoginStaff(oldLoginStaff);
129
- });
130
- });
131
- }
132
- /************************************************************************
133
- * Offender Query
134
- ************************************************************************/
135
- setOffenderQuery(offenderQuery) {
136
- this.connection.promise.then((child) => {
137
- child.setOffenderQuery(offenderQuery);
138
- this.offenderQuerySubject.next(offenderQuery);
139
- });
140
- }
141
- getOffenderQuery() {
142
- return this.connection.promise.then((child) => child.getOffenderQuery(StorageKey.offenderQuery));
143
- }
144
- clearOffenderQuery() {
145
- this.connection.promise.then((child) => {
146
- child.clearOffenderQuery();
147
- this.offenderQuerySubject.next();
148
- });
149
- }
150
- getOffenderQueryUpdate() {
151
- return this.offenderQuerySubject.asObservable();
152
- }
153
- setSelectedOffenderFromRoute(offenderId, intakeFlag) {
154
- return from(this.getLoginStaff()).pipe(switchMap(loginStaff => {
155
- const queryString = `{
156
- getSelectedOffender(input: {
157
- offenderId: ${offenderId},
158
- staffId: ${loginStaff.staffId}
159
- }){
160
- data{
161
- offenderId
162
- name: offenderName
163
- pdId
164
- birthDate
165
- gender
166
- }
167
- }
168
- }`;
169
- return this.httpClient.post(this.smartDataServiceUrl, { query: queryString }).pipe(map(({ data }) => data.getSelectedOffender.data), catchError(error => {
170
- console.error('HTTP request error:', error);
171
- return of(null);
172
- }));
173
- }), map(selectedOffender => {
174
- selectedOffender.intakeFlag = intakeFlag;
175
- this.setSelectedOffender(selectedOffender);
176
- this.setOffenderQuery({ offenders: [selectedOffender] });
177
- return selectedOffender;
178
- }), catchError(error => {
179
- console.error('Error in processing offender data:', error);
180
- throw error;
181
- }));
182
- }
183
- }
184
- /** @nocollapse */ XdmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: XdmService, deps: [{ token: DOCUMENT }, { token: SMART_WEB_STORAGE_LISTENER_URL }, { token: i1.HttpClient }, { token: SMART_DATA_SERVICE_URL }], target: i0.ɵɵFactoryTarget.Injectable });
185
- /** @nocollapse */ XdmService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: XdmService, providedIn: 'root' });
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: XdmService, decorators: [{
187
- type: Injectable,
188
- args: [{
189
- providedIn: 'root',
190
- }]
191
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
192
- type: Inject,
193
- args: [DOCUMENT]
194
- }] }, { type: undefined, decorators: [{
195
- type: Inject,
196
- args: [SMART_WEB_STORAGE_LISTENER_URL]
197
- }] }, { type: i1.HttpClient }, { type: undefined, decorators: [{
198
- type: Inject,
199
- args: [SMART_DATA_SERVICE_URL]
200
- }] }]; } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGRtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jc21hcnQvbmdjLXNtYXJ0LWNvcmUvc3JjL2xpYi9zbWFydC1zdG9yYWdlL3hkbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFJTCxVQUFVLEVBQ1YsOEJBQThCLEVBQzlCLHNCQUFzQixHQUV2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLDBEQUEwRDtBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBS2xELE1BQU0sT0FBTyxVQUFVO0lBTXJCLFlBQzRCLFFBQWEsRUFFL0IsdUJBQStCLEVBQy9CLFVBQXNCLEVBQ1UsbUJBQW1CO1FBSmpDLGFBQVEsR0FBUixRQUFRLENBQUs7UUFFL0IsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFRO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQUE7UUFWckQsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztRQUN6RCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFxQixDQUFDO1FBQ2hELHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO1FBVWpFLElBQUksU0FBUyxFQUFFO1lBQ2Is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dkQsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzRCxNQUFNLEtBQUssQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FDRCxDQUFDO0lBQ0osQ0FBQzs7MkhBck5VLFVBQVUsa0JBT1gsUUFBUSxhQUNSLDhCQUE4Qix1Q0FHOUIsc0JBQXNCOytIQVhyQixVQUFVLGNBRlQsTUFBTTs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUUksTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLDhCQUE4Qjs7MEJBR3JDLE1BQU07MkJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgZnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gIFNlbGVjdGVkT2ZmZW5kZXIsXHJcbiAgTG9naW5TdGFmZixcclxuICBPZmZlbmRlclF1ZXJ5LFxyXG4gIFN0b3JhZ2VLZXksXHJcbiAgU01BUlRfV0VCX1NUT1JBR0VfTElTVEVORVJfVVJMLFxyXG4gIFNNQVJUX0RBVEFfU0VSVklDRV9VUkwsXHJcbiAgT3B0aW9uLFxyXG59IGZyb20gJy4vc21hcnQtc3RvcmFnZS1tb2RlbCc7XHJcblxyXG4vLyBpbXBvcnQgY29ubmVjdFRvQ2hpbGQgZnJvbSBcInBlbnBhbC9saWIvY29ubmVjdFRvQ2hpbGRcIjtcclxuaW1wb3J0IHsgY29ubmVjdFRvQ2hpbGQgfSBmcm9tICdwZW5wYWwnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFhkbVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgb2ZmZW5kZXJTdWJqZWN0ID0gbmV3IFN1YmplY3Q8U2VsZWN0ZWRPZmZlbmRlciB8IHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBzdGFmZlN1YmplY3QgPSBuZXcgU3ViamVjdDxMb2dpblN0YWZmIHwgdm9pZD4oKTtcclxuICBwcml2YXRlIG9mZmVuZGVyUXVlcnlTdWJqZWN0ID0gbmV3IFN1YmplY3Q8T2ZmZW5kZXJRdWVyeSB8IHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBjb25uZWN0aW9uOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxyXG4gICAgQEluamVjdChTTUFSVF9XRUJfU1RPUkFHRV9MSVNURU5FUl9VUkwpXHJcbiAgICBwcml2YXRlIHNtYXJ0U3RvcmFnZUxpc3RlbmVyVXJsOiBzdHJpbmcsXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KFNNQVJUX0RBVEFfU0VSVklDRV9VUkwpIHByaXZhdGUgc21hcnREYXRhU2VydmljZVVybCxcclxuICApIHtcclxuICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1NtYXJ0U3RvcmFnZSBYZG1TZXJ2aWNlIChDbGllbnQpIC0gY29uc3RydWN0b3IoKScpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBmcmFtZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XHJcbiAgICBmcmFtZS5zcmMgPSB0aGlzLnNtYXJ0U3RvcmFnZUxpc3RlbmVyVXJsO1xyXG4gICAgZnJhbWUuaWQgPSAnY2hpbGRmcmFtZSc7XHJcbiAgICBmcmFtZS5uYW1lID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygpO1xyXG4gICAgZnJhbWUub25sb2FkID0gbnVsbDtcclxuICAgIGZyYW1lLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7XHJcblxyXG4gICAgdGhpcy5jb25uZWN0aW9uID0gY29ubmVjdFRvQ2hpbGQoe1xyXG4gICAgICBpZnJhbWU6IGZyYW1lLFxyXG4gICAgICBkZWJ1ZzogZmFsc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3RhZmZPZmZlbmRlckxpc3RPcHRpb25zKFxyXG4gICAgc3RhZmZJZDogbnVtYmVyLFxyXG4gICk6IE9ic2VydmFibGU8QXJyYXk8T3B0aW9uPj4ge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBge2ZpbmR2U3RhZmZPZmZlbmRlckxpc3RPcHRpb25zKGlucHV0OntcclxuICAgICAgICB3aGVyZTp7XHJcbiAgICAgICAgICBzdGFmZklkOiAke3N0YWZmSWR9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KXtcclxuICAgICAgICBkYXRhe1xyXG4gICAgICAgICAgb2ZmZW5kZXJMaXN0T3B0aW9uSWRcclxuICAgICAgICAgIG5hbWVcclxuICAgICAgICAgIHNlcnZpY2VBcGlGaWVsZE5hbWVcclxuICAgICAgICAgIHNlbGVjdGVkRmxhZ1xyXG4gICAgICAgIH1cclxuICAgIH0gfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PGFueT4odGhpcy5zbWFydERhdGFTZXJ2aWNlVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHsgZGF0YSB9KSA9PiB7XHJcbiAgICAgICAgICBkYXRhLmZpbmR2U3RhZmZPZmZlbmRlckxpc3RPcHRpb25zLmRhdGFbJ29mZmVuZGVyT3B0aW9uTGlzdElkJ10gPVxyXG4gICAgICAgICAgICBkYXRhLmZpbmR2U3RhZmZPZmZlbmRlckxpc3RPcHRpb25zLmRhdGFbJ29mZmVuZGVyTGlzdE9wdGlvbklkJ107XHJcbiAgICAgICAgICByZXR1cm4gZGF0YS5maW5kdlN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucy5kYXRhO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gICAgLypyZXR1cm4gb2YoW1xyXG4gICAgICB7IG9mZmVuZGVyTGlzdE9wdGlvbklkOiAnZ2VuZGVyQ29kZScsIG5hbWU6ICcnLCBzZWxlY3RlZEZsYWc6IHRydWUgfV0pOyovXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJBbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT4ge1xyXG4gICAgICBjaGlsZC5jbGVhckFsbCgpO1xyXG4gICAgICB0aGlzLm9mZmVuZGVyU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIHRoaXMuc3RhZmZTdWJqZWN0Lm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgKiBPZmZlbmRlclxyXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuICBwdWJsaWMgc2V0U2VsZWN0ZWRPZmZlbmRlcihzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT4ge1xyXG4gICAgICBjaGlsZC5zZXRTZWxlY3RlZE9mZmVuZGVyKHNlbGVjdGVkT2ZmZW5kZXIpO1xyXG4gICAgICB0aGlzLm9mZmVuZGVyU3ViamVjdC5uZXh0KHNlbGVjdGVkT2ZmZW5kZXIpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5nZXRMb2dpblN0YWZmKCkudGhlbigobG9naW5TdGFmZikgPT4ge1xyXG4gICAgICBsZXQgbm93ID0gKG5ldyBEYXRlKCkpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYG11dGF0aW9uIHsgY3JlYXRlU3RhZmZPZmZlbmRlckFjY2VzcyhpbnB1dDoge1xyXG4gICAgICAgIHN0YWZmSWQ6ICR7bG9naW5TdGFmZi5zdGFmZklkfSxcclxuICAgICAgICBvZmZlbmRlcklkOiAke3NlbGVjdGVkT2ZmZW5kZXIub2ZmZW5kZXJJZH0sXHJcbiAgICAgICAgYWNjZXNzRGF0ZTogXCIke25vd31cIlxyXG4gICAgICB9KSB7XHJcbiAgICAgICAgZGF0YSB7XHJcbiAgICAgICAgICBzdGFmZk9mZmVuZGVyQWNjZXNzSWRcclxuICAgICAgICB9XHJcbiAgICAgIH19YDtcclxuICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3Q8YW55Pih0aGlzLnNtYXJ0RGF0YVNlcnZpY2VVcmwsIHsgcXVlcnk6IHF1ZXJ5U3RyaW5nIH0pLnN1YnNjcmliZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRPZmZlbmRlcigpOiBQcm9taXNlPFNlbGVjdGVkT2ZmZW5kZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT5cclxuICAgICAgY2hpbGQuZ2V0U2VsZWN0ZWRPZmZlbmRlcihTdG9yYWdlS2V5LnNlbGVjdGVkT2ZmZW5kZXIpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhclNlbGVjdGVkT2ZmZW5kZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT4ge1xyXG4gICAgICBjaGlsZC5jbGVhclNlbGVjdGVkT2ZmZW5kZXIoKTtcclxuICAgICAgdGhpcy5vZmZlbmRlclN1YmplY3QubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0T2ZmZW5kZXJVcGRhdGUoKTogT2JzZXJ2YWJsZTxTZWxlY3RlZE9mZmVuZGVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5vZmZlbmRlclN1YmplY3QuYXNPYnNlcnZhYmxlKCkgYXMgT2JzZXJ2YWJsZTxTZWxlY3RlZE9mZmVuZGVyPjtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgKiBTdGFmZlxyXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgcHVibGljIHNldExvZ2luU3RhZmYobG9naW5TdGFmZjogTG9naW5TdGFmZikge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uLnByb21pc2UudGhlbigoY2hpbGQpID0+IHtcclxuICAgICAgY2hpbGQuc2V0TG9naW5TdGFmZihsb2dpblN0YWZmKTtcclxuICAgICAgdGhpcy5zdGFmZlN1YmplY3QubmV4dChsb2dpblN0YWZmKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldExvZ2luU3RhZmYoKTogUHJvbWlzZTxMb2dpblN0YWZmPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLnByb21pc2UudGhlbigoY2hpbGQpID0+XHJcbiAgICAgIGNoaWxkLmdldExvZ2luU3RhZmYoU3RvcmFnZUtleS5sb2dpblN0YWZmKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJMb2dpblN0YWZmKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uLnByb21pc2UudGhlbigoY2hpbGQpID0+IHtcclxuICAgICAgY2hpbGQuY2xlYXJMb2dpblN0YWZmKCk7XHJcbiAgICAgIHRoaXMuc3RhZmZTdWJqZWN0Lm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0YWZmVXBkYXRlKCk6IE9ic2VydmFibGU8TG9naW5TdGFmZj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhZmZTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpIGFzIE9ic2VydmFibGU8TG9naW5TdGFmZj47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaExvZ2luU3RhZmZPcHRpb25zKCkge1xyXG4gICAgdGhpcy5nZXRMb2dpblN0YWZmKCkudGhlbigob2xkTG9naW5TdGFmZikgPT4ge1xyXG4gICAgICB0aGlzLmdldFN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucyhvbGRMb2dpblN0YWZmLnN0YWZmSWQpLnN1YnNjcmliZShcclxuICAgICAgICAob3B0aW9uRGF0YSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2cob3B0aW9uRGF0YSk7XHJcbiAgICAgICAgICBvbGRMb2dpblN0YWZmLm9wdGlvbnMgPSBvcHRpb25EYXRhO1xyXG4gICAgICAgICAgdGhpcy5zZXRMb2dpblN0YWZmKG9sZExvZ2luU3RhZmYpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgKiBPZmZlbmRlciBRdWVyeVxyXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgcHVibGljIHNldE9mZmVuZGVyUXVlcnkob2ZmZW5kZXJRdWVyeTogT2ZmZW5kZXJRdWVyeSkge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uLnByb21pc2UudGhlbigoY2hpbGQpID0+IHtcclxuICAgICAgY2hpbGQuc2V0T2ZmZW5kZXJRdWVyeShvZmZlbmRlclF1ZXJ5KTtcclxuICAgICAgdGhpcy5vZmZlbmRlclF1ZXJ5U3ViamVjdC5uZXh0KG9mZmVuZGVyUXVlcnkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0T2ZmZW5kZXJRdWVyeSgpOiBQcm9taXNlPE9mZmVuZGVyUXVlcnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT5cclxuICAgICAgY2hpbGQuZ2V0T2ZmZW5kZXJRdWVyeShTdG9yYWdlS2V5Lm9mZmVuZGVyUXVlcnkpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhck9mZmVuZGVyUXVlcnkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24ucHJvbWlzZS50aGVuKChjaGlsZCkgPT4ge1xyXG4gICAgICBjaGlsZC5jbGVhck9mZmVuZGVyUXVlcnkoKTtcclxuICAgICAgdGhpcy5vZmZlbmRlclF1ZXJ5U3ViamVjdC5uZXh0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRPZmZlbmRlclF1ZXJ5VXBkYXRlKCk6IE9ic2VydmFibGU8T2ZmZW5kZXJRdWVyeT4ge1xyXG4gICAgcmV0dXJuIHRoaXMub2ZmZW5kZXJRdWVyeVN1YmplY3QuYXNPYnNlcnZhYmxlKCkgYXMgT2JzZXJ2YWJsZTxPZmZlbmRlclF1ZXJ5PjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTZWxlY3RlZE9mZmVuZGVyRnJvbVJvdXRlKG9mZmVuZGVySWQ6IG51bWJlciwgaW50YWtlRmxhZzogYm9vbGVhbik6IE9ic2VydmFibGU8U2VsZWN0ZWRPZmZlbmRlcj4ge1xyXG4gICAgcmV0dXJuIGZyb20odGhpcy5nZXRMb2dpblN0YWZmKCkpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcChsb2dpblN0YWZmID0+IHtcclxuICAgICAgICBjb25zdCBxdWVyeVN0cmluZyA9IGB7XHJcbiAgICAgICAgICBnZXRTZWxlY3RlZE9mZmVuZGVyKGlucHV0OiB7IFxyXG4gICAgICAgICAgICBvZmZlbmRlcklkOiAke29mZmVuZGVySWR9LFxyXG4gICAgICAgICAgICBzdGFmZklkOiAke2xvZ2luU3RhZmYuc3RhZmZJZH1cclxuICAgICAgICAgIH0pe1xyXG4gICAgICAgICAgICBkYXRhe1xyXG4gICAgICAgICAgICAgIG9mZmVuZGVySWRcclxuICAgICAgICAgICAgICBuYW1lOiBvZmZlbmRlck5hbWVcclxuICAgICAgICAgICAgICBwZElkXHJcbiAgICAgICAgICAgICAgYmlydGhEYXRlXHJcbiAgICAgICAgICAgICAgZ2VuZGVyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8YW55Pih0aGlzLnNtYXJ0RGF0YVNlcnZpY2VVcmwsIHsgcXVlcnk6IHF1ZXJ5U3RyaW5nIH0pLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhLmdldFNlbGVjdGVkT2ZmZW5kZXIuZGF0YSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignSFRUUCByZXF1ZXN0IGVycm9yOicsIGVycm9yKTtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpOyBcclxuICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBtYXAoc2VsZWN0ZWRPZmZlbmRlciA9PiB7XHJcbiAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5pbnRha2VGbGFnID0gaW50YWtlRmxhZztcclxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkT2ZmZW5kZXIoc2VsZWN0ZWRPZmZlbmRlcik7XHJcbiAgICAgICAgdGhpcy5zZXRPZmZlbmRlclF1ZXJ5KHtvZmZlbmRlcnM6IFtzZWxlY3RlZE9mZmVuZGVyXX0pO1xyXG4gICAgICAgIHJldHVybiBzZWxlY3RlZE9mZmVuZGVyO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gcHJvY2Vzc2luZyBvZmZlbmRlciBkYXRhOicsIGVycm9yKTtcclxuICAgICAgICB0aHJvdyBlcnJvcjsgXHJcbiAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn0iXX0=