@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.
- package/{esm2020 → esm2022}/csmart-ngc-smart-core.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ngc-smart-core.module.mjs +98 -98
- package/{esm2020 → esm2022}/lib/smart-auth/smart-access-control-config.mjs +11 -11
- package/esm2022/lib/smart-auth/smart-access-control.directive.mjs +39 -0
- package/esm2022/lib/smart-auth/smart-auth.service.mjs +504 -0
- package/esm2022/lib/smart-auth/smart-authorization-guard.service.mjs +35 -0
- package/{esm2020 → esm2022}/lib/smart-auth/smart-error.component.mjs +37 -37
- package/esm2022/lib/smart-auth/smart-login-staff-resolver.service.mjs +59 -0
- package/esm2022/lib/smart-auth/smart-selected-offender-resolver.service.mjs +60 -0
- package/{esm2020 → esm2022}/lib/smart-navbar/smart-navbar-config.mjs +1 -1
- package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +174 -0
- package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +63 -0
- package/esm2022/lib/smart-offender-header/smart-offender-header.component.mjs +151 -0
- package/{esm2020 → esm2022}/lib/smart-offender-header/smart-offender-header.service.mjs +29 -29
- package/esm2022/lib/smart-offender-header/smart-offender-redirect.guard.mjs +27 -0
- package/{esm2020 → esm2022}/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.mjs +25 -25
- package/esm2022/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +78 -0
- package/esm2022/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +132 -0
- package/esm2022/lib/smart-storage/smart-storage-model.mjs +30 -0
- package/esm2022/lib/smart-storage/xdm.service.mjs +201 -0
- package/{esm2020 → esm2022}/public-api.mjs +20 -20
- package/{fesm2020 → fesm2022}/csmart-ngc-smart-core.mjs +1467 -1467
- package/{fesm2015 → fesm2022}/csmart-ngc-smart-core.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/ngc-smart-core.module.d.ts +20 -20
- package/lib/smart-auth/smart-access-control-config.d.ts +17 -17
- package/lib/smart-auth/smart-access-control.directive.d.ts +14 -14
- package/lib/smart-auth/smart-auth.service.d.ts +41 -41
- package/lib/smart-auth/smart-authorization-guard.service.d.ts +13 -13
- package/lib/smart-auth/smart-error.component.d.ts +17 -17
- package/lib/smart-auth/smart-login-staff-resolver.service.d.ts +13 -13
- package/lib/smart-auth/smart-selected-offender-resolver.service.d.ts +15 -15
- package/lib/smart-navbar/smart-navbar-config.d.ts +7 -7
- package/lib/smart-navbar/smart-navbar.component.d.ts +42 -42
- package/lib/smart-navbar/smart-navbar.service.d.ts +12 -12
- package/lib/smart-offender-header/smart-offender-header.component.d.ts +32 -32
- package/lib/smart-offender-header/smart-offender-header.service.d.ts +18 -18
- package/lib/smart-offender-header/smart-offender-redirect.guard.d.ts +9 -9
- package/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.d.ts +10 -11
- package/lib/smart-staff-offender-options/smart-staff-offender-options.component.d.ts +22 -22
- package/lib/smart-staff-offender-options/smart-staff-offender-options.service.d.ts +19 -19
- package/lib/smart-storage/smart-storage-model.d.ts +58 -58
- package/lib/smart-storage/xdm.service.d.ts +43 -43
- package/package.json +5 -11
- package/public-api.d.ts +17 -17
- package/esm2020/lib/smart-auth/smart-access-control.directive.mjs +0 -39
- package/esm2020/lib/smart-auth/smart-auth.service.mjs +0 -504
- package/esm2020/lib/smart-auth/smart-authorization-guard.service.mjs +0 -35
- package/esm2020/lib/smart-auth/smart-login-staff-resolver.service.mjs +0 -59
- package/esm2020/lib/smart-auth/smart-selected-offender-resolver.service.mjs +0 -60
- package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +0 -174
- package/esm2020/lib/smart-navbar/smart-navbar.service.mjs +0 -63
- package/esm2020/lib/smart-offender-header/smart-offender-header.component.mjs +0 -151
- package/esm2020/lib/smart-offender-header/smart-offender-redirect.guard.mjs +0 -27
- package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +0 -78
- package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +0 -132
- package/esm2020/lib/smart-storage/smart-storage-model.mjs +0 -30
- package/esm2020/lib/smart-storage/xdm.service.mjs +0 -201
- package/fesm2015/csmart-ngc-smart-core.mjs +0 -1670
- 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=
|