@csmart/ngc-smart-victim 1.18.9 → 1.18.13
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/csmart-ngc-smart-victim.mjs +5 -0
- package/esm2022/lib/caseNote/caseNote.component.mjs +194 -0
- package/esm2022/lib/common-dialog/common-dialog.component.mjs +23 -0
- package/esm2022/lib/common-dialog/common-dialog.module.mjs +34 -0
- package/esm2022/lib/common-dialog/common-dialog.service.mjs +33 -0
- package/esm2022/lib/contact/contact.component.mjs +140 -0
- package/esm2022/lib/email.services.mjs +42 -0
- package/esm2022/lib/intake.service.mjs +57 -0
- package/esm2022/lib/safetyPlan/serviceProvider.component.mjs +99 -0
- package/esm2022/lib/safetyPlan/victimSafetyPlan.component.mjs +116 -0
- package/esm2022/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +340 -0
- package/esm2022/lib/shared/app.shared.module.mjs +215 -0
- package/esm2022/lib/shared/validators/date.validator.mjs +59 -0
- package/esm2022/lib/shared/validators/index.mjs +2 -0
- package/esm2022/lib/smart-victim-delete-confirm.component.mjs +44 -0
- package/esm2022/lib/smart-victim-detail/smart-victim-detail.component.mjs +1155 -0
- package/esm2022/lib/smart-victim.component.mjs +317 -0
- package/esm2022/lib/smart-victim.model.mjs +142 -0
- package/esm2022/lib/smart-victim.module.mjs +128 -0
- package/esm2022/lib/smart-victim.service.mjs +370 -0
- package/esm2022/lib/victim-routing.module.mjs +41 -0
- package/esm2022/lib/victimSearch/VictimSearchFilter.mjs +3 -0
- package/esm2022/lib/victimSearch/victimSearchForm.component.mjs +38 -0
- package/esm2022/public-api.mjs +11 -0
- package/fesm2022/csmart-ngc-smart-victim.mjs +3342 -0
- package/fesm2022/csmart-ngc-smart-victim.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/caseNote/caseNote.component.d.ts +51 -0
- package/lib/common-dialog/common-dialog.component.d.ts +14 -0
- package/lib/common-dialog/common-dialog.module.d.ts +8 -0
- package/lib/common-dialog/common-dialog.service.d.ts +11 -0
- package/lib/contact/contact.component.d.ts +40 -0
- package/lib/email.services.d.ts +11 -0
- package/lib/intake.service.d.ts +57 -0
- package/lib/safetyPlan/serviceProvider.component.d.ts +19 -0
- package/lib/safetyPlan/victimSafetyPlan.component.d.ts +54 -0
- package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +62 -0
- package/lib/shared/app.shared.module.d.ts +33 -0
- package/lib/shared/validators/date.validator.d.ts +9 -0
- package/lib/shared/validators/index.d.ts +1 -0
- package/lib/smart-victim-delete-confirm.component.d.ts +12 -0
- package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +129 -0
- package/lib/smart-victim.component.d.ts +69 -0
- package/lib/smart-victim.model.d.ts +211 -0
- package/lib/smart-victim.module.d.ts +49 -0
- package/lib/smart-victim.service.d.ts +71 -0
- package/lib/victim-routing.module.d.ts +7 -0
- package/{src/lib/victimSearch/VictimSearchFilter.ts → lib/victimSearch/VictimSearchFilter.d.ts} +7 -9
- package/lib/victimSearch/victimSearchForm.component.d.ts +14 -0
- package/package.json +21 -6
- package/{src/public-api.ts → public-api.d.ts} +7 -12
- package/karma.conf.js +0 -32
- package/ng-package.json +0 -7
- package/src/lib/caseNote/caseNote.component.css +0 -22
- package/src/lib/caseNote/caseNote.component.html +0 -188
- package/src/lib/caseNote/caseNote.component.ts +0 -265
- package/src/lib/common-dialog/common-dialog.component.css +0 -10
- package/src/lib/common-dialog/common-dialog.component.html +0 -23
- package/src/lib/common-dialog/common-dialog.component.spec.ts +0 -25
- package/src/lib/common-dialog/common-dialog.component.ts +0 -21
- package/src/lib/common-dialog/common-dialog.module.ts +0 -22
- package/src/lib/common-dialog/common-dialog.service.ts +0 -35
- package/src/lib/contact/contact.component.css +0 -22
- package/src/lib/contact/contact.component.html +0 -124
- package/src/lib/contact/contact.component.ts +0 -176
- package/src/lib/email-notification.service.ts +0 -42
- package/src/lib/email.services.ts +0 -51
- package/src/lib/http.service.ts +0 -34
- package/src/lib/intake.service.ts +0 -82
- package/src/lib/loader.service.ts +0 -11
- package/src/lib/safetyPlan/serviceProvider.component.ts +0 -94
- package/src/lib/safetyPlan/victimSafetyPlan.component.css +0 -27
- package/src/lib/safetyPlan/victimSafetyPlan.component.html +0 -85
- package/src/lib/safetyPlan/victimSafetyPlan.component.ts +0 -178
- package/src/lib/safetyPlan/victimSafetyPlanDetail.component.html +0 -234
- package/src/lib/safetyPlan/victimSafetyPlanDetail.component.ts +0 -492
- package/src/lib/shared/app.shared.module.ts +0 -111
- package/src/lib/shared/validators/date.validator.ts +0 -73
- package/src/lib/shared/validators/index.ts +0 -1
- package/src/lib/smart-victim-delete-confirm.component.ts +0 -35
- package/src/lib/smart-victim-detail/smart-victim-detail.component.css +0 -43
- package/src/lib/smart-victim-detail/smart-victim-detail.component.html +0 -869
- package/src/lib/smart-victim-detail/smart-victim-detail.component.spec.ts +0 -25
- package/src/lib/smart-victim-detail/smart-victim-detail.component.ts +0 -1387
- package/src/lib/smart-victim.component.css +0 -245
- package/src/lib/smart-victim.component.html +0 -132
- package/src/lib/smart-victim.component.spec.ts +0 -25
- package/src/lib/smart-victim.component.ts +0 -333
- package/src/lib/smart-victim.model.ts +0 -301
- package/src/lib/smart-victim.module.ts +0 -110
- package/src/lib/smart-victim.service.spec.ts +0 -12
- package/src/lib/smart-victim.service.ts +0 -557
- package/src/lib/victim-routing.module.ts +0 -35
- package/src/lib/victimSearch/victimSearchForm.component.html +0 -35
- package/src/lib/victimSearch/victimSearchForm.component.ts +0 -41
- package/src/test.ts +0 -16
- package/tsconfig.lib.json +0 -36
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -17
@@ -0,0 +1,128 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
4
|
+
// import {
|
5
|
+
// MatMenuModule, MatProgressBarModule,
|
6
|
+
// MatSidenavModule,
|
7
|
+
// MatPaginatorModule,
|
8
|
+
// } from '@angular/material';
|
9
|
+
import { MatButtonModule } from '@angular/material/button';
|
10
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
11
|
+
import { MatCardModule } from '@angular/material/card';
|
12
|
+
import { MatSliderModule } from '@angular/material/slider';
|
13
|
+
import { MatListModule } from '@angular/material/list';
|
14
|
+
import { MatIconModule } from '@angular/material/icon';
|
15
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
16
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
17
|
+
import { MatRadioModule } from '@angular/material/radio';
|
18
|
+
import { MatInputModule } from '@angular/material/input';
|
19
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
20
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
21
|
+
import { MatNativeDateModule } from '@angular/material/core';
|
22
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
23
|
+
import { MatExpansionModule } from '@angular/material/expansion';
|
24
|
+
import { MatSelectModule } from '@angular/material/select';
|
25
|
+
import { MatTableModule } from '@angular/material/table';
|
26
|
+
import { MatSortModule } from '@angular/material/sort';
|
27
|
+
import { MatGridListModule } from '@angular/material/grid-list';
|
28
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
29
|
+
import { CdkTableModule } from '@angular/cdk/table';
|
30
|
+
import { LayoutModule } from '@angular/cdk/layout';
|
31
|
+
import { SmartAddressModule } from '@csmart/ngc-smart-address';
|
32
|
+
import { NgcSmartVictimComponent } from './smart-victim.component';
|
33
|
+
import { NgcSmartVictimService } from './smart-victim.service';
|
34
|
+
import { SmartVictimDetailComponent } from './smart-victim-detail/smart-victim-detail.component';
|
35
|
+
import { SmartVictimDeleteConfirmComponent } from './smart-victim-delete-confirm.component';
|
36
|
+
import { CommonDialogModule } from './common-dialog/common-dialog.module';
|
37
|
+
import { VictimRoutingModule } from './victim-routing.module';
|
38
|
+
import { CaseNoteComponent } from './caseNote/caseNote.component';
|
39
|
+
import { ContactComponent } from './contact/contact.component';
|
40
|
+
import { VictimSafetyPlanComponent } from './safetyPlan/victimSafetyPlan.component';
|
41
|
+
import { VictimSafetyPlanDetailComponent } from './safetyPlan/victimSafetyPlanDetail.component';
|
42
|
+
import { VictimSearchFormComponent } from './victimSearch/victimSearchForm.component';
|
43
|
+
import { ApolloModule } from 'apollo-angular';
|
44
|
+
import { SeriveProviderComponent } from './safetyPlan/serviceProvider.component';
|
45
|
+
import { NgcSmartCoreModule } from '@csmart/ngc-smart-core';
|
46
|
+
import { MatMenuModule } from '@angular/material/menu';
|
47
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
48
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
49
|
+
import { MatSidenavModule } from '@angular/material/sidenav';
|
50
|
+
import { SmartUiModule } from '@csmart/smart-ui';
|
51
|
+
import * as i0 from "@angular/core";
|
52
|
+
const COMPONENTS = [
|
53
|
+
NgcSmartVictimComponent,
|
54
|
+
SmartVictimDetailComponent,
|
55
|
+
SmartVictimDeleteConfirmComponent,
|
56
|
+
];
|
57
|
+
const ENTRY_COMPONENTS = [
|
58
|
+
SmartVictimDeleteConfirmComponent,
|
59
|
+
];
|
60
|
+
const BASE_MODULES = [
|
61
|
+
CommonModule,
|
62
|
+
ReactiveFormsModule
|
63
|
+
];
|
64
|
+
const CORE_MODULES = [NgcSmartCoreModule, SmartAddressModule, SmartUiModule,];
|
65
|
+
const MATERIAL_MODULES = [
|
66
|
+
MatButtonModule, MatCheckboxModule, MatRadioModule, MatSliderModule,
|
67
|
+
MatCardModule, MatSlideToggleModule,
|
68
|
+
MatListModule, MatIconModule, MatButtonToggleModule,
|
69
|
+
MatToolbarModule, MatTabsModule, MatExpansionModule,
|
70
|
+
MatMenuModule, MatInputModule, MatProgressBarModule,
|
71
|
+
MatDatepickerModule, MatNativeDateModule, MatPaginatorModule,
|
72
|
+
MatDialogModule, MatSidenavModule, MatSelectModule,
|
73
|
+
MatTableModule, MatSortModule, MatGridListModule, CdkTableModule, LayoutModule,
|
74
|
+
];
|
75
|
+
export class NgcSmartVictimModule {
|
76
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgcSmartVictimModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
77
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: NgcSmartVictimModule, declarations: [NgcSmartVictimComponent,
|
78
|
+
SmartVictimDetailComponent,
|
79
|
+
SmartVictimDeleteConfirmComponent, CaseNoteComponent,
|
80
|
+
ContactComponent,
|
81
|
+
VictimSafetyPlanComponent,
|
82
|
+
VictimSafetyPlanDetailComponent,
|
83
|
+
VictimSearchFormComponent,
|
84
|
+
SeriveProviderComponent], imports: [CommonModule,
|
85
|
+
ReactiveFormsModule, MatButtonModule, MatCheckboxModule, MatRadioModule, MatSliderModule,
|
86
|
+
MatCardModule, MatSlideToggleModule,
|
87
|
+
MatListModule, MatIconModule, MatButtonToggleModule,
|
88
|
+
MatToolbarModule, MatTabsModule, MatExpansionModule,
|
89
|
+
MatMenuModule, MatInputModule, MatProgressBarModule,
|
90
|
+
MatDatepickerModule, MatNativeDateModule, MatPaginatorModule,
|
91
|
+
MatDialogModule, MatSidenavModule, MatSelectModule,
|
92
|
+
MatTableModule, MatSortModule, MatGridListModule, CdkTableModule, LayoutModule, NgcSmartCoreModule, SmartAddressModule, SmartUiModule, CommonDialogModule,
|
93
|
+
FormsModule,
|
94
|
+
VictimRoutingModule,
|
95
|
+
ApolloModule], exports: [NgcSmartVictimComponent,
|
96
|
+
SmartVictimDetailComponent,
|
97
|
+
SmartVictimDeleteConfirmComponent, ApolloModule] }); }
|
98
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgcSmartVictimModule, providers: [NgcSmartVictimService], imports: [BASE_MODULES, MATERIAL_MODULES, CORE_MODULES, CommonDialogModule,
|
99
|
+
FormsModule,
|
100
|
+
VictimRoutingModule,
|
101
|
+
ApolloModule, ApolloModule] }); }
|
102
|
+
}
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgcSmartVictimModule, decorators: [{
|
104
|
+
type: NgModule,
|
105
|
+
args: [{
|
106
|
+
declarations: [...COMPONENTS,
|
107
|
+
CaseNoteComponent,
|
108
|
+
ContactComponent,
|
109
|
+
VictimSafetyPlanComponent,
|
110
|
+
VictimSafetyPlanDetailComponent,
|
111
|
+
VictimSearchFormComponent,
|
112
|
+
SeriveProviderComponent
|
113
|
+
],
|
114
|
+
imports: [
|
115
|
+
...BASE_MODULES,
|
116
|
+
...MATERIAL_MODULES,
|
117
|
+
...CORE_MODULES,
|
118
|
+
CommonDialogModule,
|
119
|
+
FormsModule,
|
120
|
+
VictimRoutingModule,
|
121
|
+
ApolloModule,
|
122
|
+
//SharedModule
|
123
|
+
],
|
124
|
+
exports: [...COMPONENTS, ApolloModule],
|
125
|
+
providers: [NgcSmartVictimService]
|
126
|
+
}]
|
127
|
+
}] });
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxXQUFXO0FBR1gseUNBQXlDO0FBRXpDLHNCQUFzQjtBQUN0Qix1QkFBdUI7QUFDdkIsOEJBQThCO0FBRTlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxP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eEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQix5QkFBeUI7d0JBQ3pCLHVCQUF1QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLEdBQUcsWUFBWTt3QkFDZixHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRyxZQUFZO3dCQUNmLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osY0FBYztxQkFFakI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsWUFBWSxDQUFDO29CQUN0QyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLEZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbi8vIGltcG9ydCB7XHJcblxyXG5cclxuLy8gICBNYXRNZW51TW9kdWxlLCBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcclxuXHJcbi8vICAgTWF0U2lkZW5hdk1vZHVsZSxcclxuLy8gIE1hdFBhZ2luYXRvck1vZHVsZSxcclxuLy8gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XHJcblxyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcclxuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1hdE5hdGl2ZURhdGVNb2R1bGUsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNYXRHcmlkTGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2dyaWQtbGlzdCc7XHJcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgQ2RrVGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xyXG5pbXBvcnQgeyBMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgU21hcnRBZGRyZXNzTW9kdWxlIH0gZnJvbSAnQGNzbWFydC9uZ2Mtc21hcnQtYWRkcmVzcyc7XHJcbmltcG9ydCB7IE5nY1NtYXJ0VmljdGltQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnRWaWN0aW1EZWxldGVDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGVsZXRlLWNvbmZpcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uRGlhbG9nTW9kdWxlIH0gZnJvbSAnLi9jb21tb24tZGlhbG9nL2NvbW1vbi1kaWFsb2cubW9kdWxlJztcclxuaW1wb3J0IHsgVmljdGltUm91dGluZ01vZHVsZSB9IGZyb20gJy4vdmljdGltLXJvdXRpbmcubW9kdWxlJztcclxuaW1wb3J0IHsgQ2FzZU5vdGVDb21wb25lbnQgfSBmcm9tICcuL2Nhc2VOb3RlL2Nhc2VOb3RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbnRhY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWN0aW1TYWZldHlQbGFuQ29tcG9uZW50IH0gZnJvbSAnLi9zYWZldHlQbGFuL3ZpY3RpbVNhZmV0eVBsYW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmljdGltU2FmZXR5UGxhbkRldGFpbENvbXBvbmVudCB9IGZyb20gJy4vc2FmZXR5UGxhbi92aWN0aW1TYWZldHlQbGFuRGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpY3RpbVNlYXJjaEZvcm1Db21wb25lbnQgfSBmcm9tICcuL3ZpY3RpbVNlYXJjaC92aWN0aW1TZWFyY2hGb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwb2xsb01vZHVsZSwgQVBPTExPX09QVElPTlMgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XHJcbmltcG9ydCB7IFNlcml2ZVByb3ZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zYWZldHlQbGFuL3NlcnZpY2VQcm92aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydENvcmVNb2R1bGUgfSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgU21hcnRVaU1vZHVsZSB9IGZyb20gJ0Bjc21hcnQvc21hcnQtdWknO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UUyA9IFtcclxuICBOZ2NTbWFydFZpY3RpbUNvbXBvbmVudCxcclxuICBTbWFydFZpY3RpbURldGFpbENvbXBvbmVudCxcclxuICBTbWFydFZpY3RpbURlbGV0ZUNvbmZpcm1Db21wb25lbnQsXHJcblxyXG4gIFxyXG5dO1xyXG5cclxuY29uc3QgRU5UUllfQ09NUE9ORU5UUyA9IFtcclxuICBTbWFydFZpY3RpbURlbGV0ZUNvbmZpcm1Db21wb25lbnQsXHJcbiBcclxuXTtcclxuXHJcbmNvbnN0IEJBU0VfTU9EVUxFUyA9IFtcclxuICBDb21tb25Nb2R1bGUsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG5dO1xyXG5cclxuY29uc3QgQ09SRV9NT0RVTEVTID0gW05nY1NtYXJ0Q29yZU1vZHVsZSwgU21hcnRBZGRyZXNzTW9kdWxlLCBTbWFydFVpTW9kdWxlLF07XHJcblxyXG5jb25zdCBNQVRFUklBTF9NT0RVTEVTID0gW1xyXG4gIE1hdEJ1dHRvbk1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsTWF0UmFkaW9Nb2R1bGUsTWF0U2xpZGVyTW9kdWxlLFxyXG4gIE1hdENhcmRNb2R1bGUsIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gIE1hdExpc3RNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcclxuICBNYXRUb29sYmFyTW9kdWxlLCBNYXRUYWJzTW9kdWxlLCBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgTWF0TWVudU1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gIE1hdERhdGVwaWNrZXJNb2R1bGUsIE1hdE5hdGl2ZURhdGVNb2R1bGUsTWF0UGFnaW5hdG9yTW9kdWxlLFxyXG4gIE1hdERpYWxvZ01vZHVsZSwgTWF0U2lkZW5hdk1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLFxyXG4gIE1hdFRhYmxlTW9kdWxlLCBNYXRTb3J0TW9kdWxlLCBNYXRHcmlkTGlzdE1vZHVsZSwgQ2RrVGFibGVNb2R1bGUsIExheW91dE1vZHVsZSxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTLFxyXG4gICAgICAgIENhc2VOb3RlQ29tcG9uZW50LFxyXG4gICAgICAgIENvbnRhY3RDb21wb25lbnQsXHJcbiAgICAgICAgVmljdGltU2FmZXR5UGxhbkNvbXBvbmVudCxcclxuICAgICAgICBWaWN0aW1TYWZldHlQbGFuRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgIFZpY3RpbVNlYXJjaEZvcm1Db21wb25lbnQsXHJcbiAgICAgICAgU2VyaXZlUHJvdmlkZXJDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgLi4uQkFTRV9NT0RVTEVTLFxyXG4gICAgICAgIC4uLk1BVEVSSUFMX01PRFVMRVMsXHJcbiAgICAgICAgLi4uQ09SRV9NT0RVTEVTLFxyXG4gICAgICAgIENvbW1vbkRpYWxvZ01vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBWaWN0aW1Sb3V0aW5nTW9kdWxlLFxyXG4gICAgICAgIEFwb2xsb01vZHVsZSxcclxuICAgICAgICAvL1NoYXJlZE1vZHVsZVxyXG4gICAgICAgIFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFsuLi5DT01QT05FTlRTLCBBcG9sbG9Nb2R1bGVdLFxyXG4gICAgcHJvdmlkZXJzOiBbTmdjU21hcnRWaWN0aW1TZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1Nb2R1bGUgeyB9XHJcbiJdfQ==
|
@@ -0,0 +1,370 @@
|
|
1
|
+
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
2
|
+
import { Injectable, Inject } from '@angular/core';
|
3
|
+
import { SMART_LOOKUP_SERVICE_URL, SMART_OFFENDER_SERVICE_URL, SMART_VICTIM_SERVICE_URL } from './smart-victim.model';
|
4
|
+
import { throwError as observableThrowError } from 'rxjs';
|
5
|
+
import { map, catchError } from 'rxjs/operators';
|
6
|
+
import { Apollo } from 'apollo-angular';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
import * as i1 from "@angular/common/http";
|
9
|
+
import * as i2 from "apollo-angular";
|
10
|
+
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
|
11
|
+
const options = { headers: headers };
|
12
|
+
export class NgcSmartVictimService {
|
13
|
+
constructor(http, smartOffenderServiceUrl, smartLookupServiceUrl, smartVictimServiceUrl, apollo) {
|
14
|
+
this.http = http;
|
15
|
+
this.smartOffenderServiceUrl = smartOffenderServiceUrl;
|
16
|
+
this.smartLookupServiceUrl = smartLookupServiceUrl;
|
17
|
+
this.smartVictimServiceUrl = smartVictimServiceUrl;
|
18
|
+
this.apollo = apollo;
|
19
|
+
this.serviceApiUrl = 'https://smart-service-test.azurewebsites.net/graphql';
|
20
|
+
}
|
21
|
+
// getVictimInsurances(offenderId: any) {
|
22
|
+
// return this.http.get(this.smartOffenderServiceUrl + '/VictimInsurances/?offenderId=' + offenderId).pipe();
|
23
|
+
// }
|
24
|
+
// getVictimInsurance(id: any) {
|
25
|
+
// return this.http.get(this.smartOffenderServiceUrl + '/VictimInsurances/?id=' + id).pipe();
|
26
|
+
// }
|
27
|
+
// postVictimInsurance(val: any) {
|
28
|
+
// return this.http.post(this.smartOffenderServiceUrl + '/VictimInsurances', val).pipe();
|
29
|
+
// }
|
30
|
+
// putVictimInsurance(id: any, val: any) {
|
31
|
+
// return this.http.put(this.smartOffenderServiceUrl + '/VictimInsurances/?id=' + id, val).pipe();
|
32
|
+
// }
|
33
|
+
// deleteVictimInsurance(id: any) {
|
34
|
+
// return this.http.delete(this.smartOffenderServiceUrl + '/VictimInsurances/?id=' + id).pipe();
|
35
|
+
// }
|
36
|
+
// getVictimInsuranceTypes() {
|
37
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceTypes').pipe();
|
38
|
+
// }
|
39
|
+
// getVictimInsurancePolicyHolders() {
|
40
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsurancePolicyHolders').pipe();
|
41
|
+
// }
|
42
|
+
// getVictimInsuranceSwitchReasons() {
|
43
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceSwitchReasons').pipe();
|
44
|
+
// }
|
45
|
+
// getVictimInsuranceProviders() {
|
46
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceProvider').pipe();
|
47
|
+
// }
|
48
|
+
// getVictimInsuranceProvider(id) {
|
49
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceProviders/' + id).pipe();
|
50
|
+
// }
|
51
|
+
// postProviderInformation(val: any) {
|
52
|
+
// return this.http.post(this.smartLookupServiceUrl + '/VictimInsuranceProviders', val).pipe();
|
53
|
+
// }
|
54
|
+
getCurrentHousing(offenderId) {
|
55
|
+
return this.http
|
56
|
+
.get(this.smartOffenderServiceUrl + 'Housings/current/' + offenderId)
|
57
|
+
.pipe();
|
58
|
+
}
|
59
|
+
handleError(error) {
|
60
|
+
console.error(error);
|
61
|
+
return observableThrowError(error.json().error || 'Server error');
|
62
|
+
}
|
63
|
+
getDrugsTypes() {
|
64
|
+
return this.http.get(this.smartLookupServiceUrl + 'DrugTypes', options).pipe(map(res => res));
|
65
|
+
}
|
66
|
+
getDocketList(offenderId) {
|
67
|
+
const queryString = `
|
68
|
+
{
|
69
|
+
findDockets(input: { where: { offenderId:${offenderId} } }) {
|
70
|
+
totalCount
|
71
|
+
message
|
72
|
+
data {
|
73
|
+
docketId
|
74
|
+
docketNumber
|
75
|
+
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}`;
|
79
|
+
return this.http.post(this.serviceApiUrl, { query: queryString }).pipe(map(({ data }) => {
|
80
|
+
console.log('dockets for this offender:', data.findDockets.data);
|
81
|
+
return data.findDockets.data;
|
82
|
+
}));
|
83
|
+
}
|
84
|
+
getSupportTypes() {
|
85
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimSupportTypes', options).pipe(map(res => res));
|
86
|
+
}
|
87
|
+
getPrefixes() {
|
88
|
+
return this.http.get(this.smartLookupServiceUrl + 'Prefixes', options).pipe(map(res => res));
|
89
|
+
}
|
90
|
+
getSuffixes() {
|
91
|
+
return this.http.get(this.smartLookupServiceUrl + 'Suffixes', options).pipe(map(res => res));
|
92
|
+
}
|
93
|
+
getRelationshipTypes() {
|
94
|
+
return this.http.get(this.smartLookupServiceUrl + 'RelationshipTypes', options).pipe(map(res => res));
|
95
|
+
}
|
96
|
+
getGenders() {
|
97
|
+
return this.http.get(this.smartLookupServiceUrl + 'Genders', options).pipe(map(res => res));
|
98
|
+
}
|
99
|
+
getWeaponTypes() {
|
100
|
+
return this.http.get(this.smartLookupServiceUrl + 'WeaponTypes', options).pipe(map(res => res));
|
101
|
+
}
|
102
|
+
getFlagOptionYesNoUnknowns() {
|
103
|
+
return this.http.get(this.smartLookupServiceUrl + 'FlagOptionYesNoUnknowns', options).pipe(map(res => {
|
104
|
+
return res;
|
105
|
+
}));
|
106
|
+
}
|
107
|
+
getContactTypes() {
|
108
|
+
return this.http.get(this.smartLookupServiceUrl + 'ContactTypes', options).pipe(map(res => {
|
109
|
+
return res;
|
110
|
+
}));
|
111
|
+
}
|
112
|
+
getContactMethods() {
|
113
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimContactMethods', options).pipe(map(res => {
|
114
|
+
return res;
|
115
|
+
}));
|
116
|
+
}
|
117
|
+
getContactBys() {
|
118
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimContactPurposes', options).pipe(map(res => {
|
119
|
+
return res;
|
120
|
+
}));
|
121
|
+
}
|
122
|
+
getVictimContactPurposes() {
|
123
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimContactPurposes', options).pipe(map(res => {
|
124
|
+
return res;
|
125
|
+
}));
|
126
|
+
}
|
127
|
+
getVictimServiceTypes() {
|
128
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimServiceTypes', options).pipe(map(res => {
|
129
|
+
return res;
|
130
|
+
}));
|
131
|
+
}
|
132
|
+
getVictimServiceStatus() {
|
133
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimServiceStatus', options).pipe(map(res => {
|
134
|
+
return res;
|
135
|
+
}));
|
136
|
+
}
|
137
|
+
getvVictimServiceTypeProgramProviders() {
|
138
|
+
return this.http.get(this.smartLookupServiceUrl + 'vVictimServiceTypeProgramProviders', options).pipe(map(res => {
|
139
|
+
return res;
|
140
|
+
}));
|
141
|
+
}
|
142
|
+
getVictim(val) {
|
143
|
+
return this.http.get(this.smartVictimServiceUrl + 'Victims/' + val, options).pipe(map(res => {
|
144
|
+
console.log('victim return data');
|
145
|
+
console.log(res);
|
146
|
+
return res;
|
147
|
+
}));
|
148
|
+
}
|
149
|
+
getVictimAdvocate(val) {
|
150
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimAdvocates/' + val, options).pipe(map(res => {
|
151
|
+
return res;
|
152
|
+
}));
|
153
|
+
}
|
154
|
+
getVictimGuardian(val) {
|
155
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimGuardians/' + val, options).pipe(map(res => {
|
156
|
+
return res;
|
157
|
+
}));
|
158
|
+
}
|
159
|
+
postVictims(val) {
|
160
|
+
const tempVal = JSON.stringify(val);
|
161
|
+
return this.http.post(this.smartVictimServiceUrl + 'Victims', tempVal, options).pipe(map(res => { return res; }));
|
162
|
+
}
|
163
|
+
putVictims(id, val) {
|
164
|
+
const tempVal = JSON.stringify(val);
|
165
|
+
return this.http.put(this.smartVictimServiceUrl + 'Victims/' + id, tempVal, options).pipe(map(res => { return res; }));
|
166
|
+
}
|
167
|
+
putVictimAdvocate(id, val) {
|
168
|
+
let body;
|
169
|
+
body = JSON.stringify(val);
|
170
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimAdvocates/' + id, body, options).pipe(map(res => { return res; }));
|
171
|
+
}
|
172
|
+
postVictimAdvocate(id, val) {
|
173
|
+
const tempVal = JSON.stringify(val);
|
174
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimAdvocates/' + id, tempVal, options).pipe(map(res => { return res; }));
|
175
|
+
}
|
176
|
+
putVictimGuardian(id, val) {
|
177
|
+
console.log('update victim guardian');
|
178
|
+
console.log(val);
|
179
|
+
const tempVal = JSON.stringify(val);
|
180
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimGuardians/' + id, tempVal, options).pipe(map(res => { return res; }));
|
181
|
+
}
|
182
|
+
postVictimGuardian(id, val) {
|
183
|
+
const tempVal = JSON.stringify(val);
|
184
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimGuardians/' + id, tempVal, options).pipe(map(res => { return res; }));
|
185
|
+
}
|
186
|
+
getVictimDrugUse(val) {
|
187
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimDrugUses/' + val, options).pipe(map((res) => {
|
188
|
+
return res;
|
189
|
+
}));
|
190
|
+
}
|
191
|
+
putVictimDrugUse(id, val) {
|
192
|
+
const tempVal = JSON.stringify(val);
|
193
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimDrugUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
194
|
+
}
|
195
|
+
postVictimDrugUse(id, val) {
|
196
|
+
const tempVal = JSON.stringify(val);
|
197
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimDrugUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
198
|
+
}
|
199
|
+
putVictimWeaponUse(id, val) {
|
200
|
+
const tempVal = JSON.stringify(val);
|
201
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimWeaponUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
202
|
+
}
|
203
|
+
postVictimWeaponUse(id, val) {
|
204
|
+
const tempVal = JSON.stringify(val);
|
205
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimWeaponUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
206
|
+
}
|
207
|
+
putVictimSupport(id, val) {
|
208
|
+
const tempVal = JSON.stringify(val);
|
209
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimSupports/' + id, tempVal, options).pipe(map(res => { return res; }));
|
210
|
+
}
|
211
|
+
postVictimSupport(id, val) {
|
212
|
+
const tempVal = JSON.stringify(val);
|
213
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimSupports/' + id, tempVal, options).pipe(map(res => { return res; }));
|
214
|
+
}
|
215
|
+
/*
|
216
|
+
putVictimRelationship(id: any, val: any) {
|
217
|
+
const tempVal = JSON.stringify(val);
|
218
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimRelationships/' + id, tempVal, options).pipe
|
219
|
+
(
|
220
|
+
map(res => { return res;})
|
221
|
+
);
|
222
|
+
}
|
223
|
+
|
224
|
+
postVictimRelationship(id: any, val: any) {
|
225
|
+
const tempVal = JSON.stringify(val);
|
226
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimRelationships/' + id, tempVal, options).pipe
|
227
|
+
(
|
228
|
+
map(res => { return res;})
|
229
|
+
);
|
230
|
+
}
|
231
|
+
|
232
|
+
*/
|
233
|
+
deleteVictims(val, staffId) {
|
234
|
+
return this.http.delete(this.smartVictimServiceUrl + 'Victims/' + val + '?staffId=' + staffId, options).pipe(map(res => { return res; }));
|
235
|
+
}
|
236
|
+
// //==============Victim Serive===================================
|
237
|
+
getVictims(offenderId) {
|
238
|
+
return this.http.get(this.smartVictimServiceUrl + 'Victims/offender/' + offenderId)
|
239
|
+
.pipe(map((res) => {
|
240
|
+
return res;
|
241
|
+
}), catchError(this.handleError));
|
242
|
+
}
|
243
|
+
getVictimsByFilter(filter) {
|
244
|
+
return this.http
|
245
|
+
.post(this.smartVictimServiceUrl + '/Victims', JSON.stringify(filter), { headers: headers })
|
246
|
+
.pipe(map((res) => {
|
247
|
+
return res;
|
248
|
+
}), catchError(this.handleError));
|
249
|
+
}
|
250
|
+
getVictimListByFilter(filter) {
|
251
|
+
console.log('filer in service');
|
252
|
+
console.log(filter);
|
253
|
+
return this.http
|
254
|
+
.post(this.smartVictimServiceUrl + 'vVictims/Filter', JSON.stringify(filter), options)
|
255
|
+
.pipe();
|
256
|
+
}
|
257
|
+
getCasetNotes(victimId) {
|
258
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimCaseNotes/victim/' + victimId)
|
259
|
+
.pipe(map((res) => {
|
260
|
+
return res;
|
261
|
+
}), catchError(this.handleError));
|
262
|
+
}
|
263
|
+
addCaseNote(caseNote) {
|
264
|
+
let body;
|
265
|
+
body = JSON.stringify(caseNote);
|
266
|
+
return this.http
|
267
|
+
.post(this.smartVictimServiceUrl + 'VictimCaseNotes/', body, options);
|
268
|
+
}
|
269
|
+
updateCaseNote(caseNote) {
|
270
|
+
let body;
|
271
|
+
body = JSON.stringify(caseNote);
|
272
|
+
return this.http
|
273
|
+
.put(this.smartVictimServiceUrl + 'VictimCaseNotes/' + caseNote.victimCaseNoteId, body, options);
|
274
|
+
}
|
275
|
+
deleteCaseNote(id, staffId) {
|
276
|
+
return this.http.delete(`${this.smartVictimServiceUrl}VictimCaseNotes/${id}?staffId=${staffId}`);
|
277
|
+
}
|
278
|
+
getContacts(victimId) {
|
279
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimContacts/victim/' + victimId)
|
280
|
+
.pipe(map((res) => {
|
281
|
+
return res;
|
282
|
+
}), catchError(this.handleError));
|
283
|
+
}
|
284
|
+
addContact(contact) {
|
285
|
+
let body;
|
286
|
+
body = JSON.stringify(contact);
|
287
|
+
return this.http
|
288
|
+
.post(this.smartVictimServiceUrl + 'VictimContacts/', body, options);
|
289
|
+
}
|
290
|
+
updateContact(contact) {
|
291
|
+
let body;
|
292
|
+
body = JSON.stringify(contact);
|
293
|
+
return this.http
|
294
|
+
.put(this.smartVictimServiceUrl + 'VictimContacts/' + contact.victimContactId, body, options);
|
295
|
+
}
|
296
|
+
getSafetyPlans(victimId) {
|
297
|
+
return this.http.get(this.smartVictimServiceUrl + 'vVictimServiceLists/victim/' + victimId)
|
298
|
+
.pipe(map((res) => {
|
299
|
+
return res;
|
300
|
+
}), catchError(this.handleError));
|
301
|
+
}
|
302
|
+
getVictimServices(victimServiceId) {
|
303
|
+
return this.http.get(this.smartVictimServiceUrl + 'vVictimServiceLists/victimServiceId/' + victimServiceId)
|
304
|
+
.pipe(map((res) => {
|
305
|
+
return res;
|
306
|
+
}), catchError(this.handleError));
|
307
|
+
}
|
308
|
+
getVictimServiceDetail(victimServiceId) {
|
309
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimServiceDetails/' + victimServiceId)
|
310
|
+
.pipe(map((res) => {
|
311
|
+
return res;
|
312
|
+
}), catchError(this.handleError));
|
313
|
+
}
|
314
|
+
addSafetyPlan(victimSafetyPlan) {
|
315
|
+
let body;
|
316
|
+
body = JSON.stringify(victimSafetyPlan);
|
317
|
+
return this.http
|
318
|
+
.post(this.smartVictimServiceUrl + 'VictimServices/', body, options)
|
319
|
+
.pipe();
|
320
|
+
}
|
321
|
+
updateSafetyPlan(victimSafetyPlan) {
|
322
|
+
let body;
|
323
|
+
body = JSON.stringify(victimSafetyPlan);
|
324
|
+
return this.http
|
325
|
+
.put(this.smartVictimServiceUrl + 'VictimServices/' + victimSafetyPlan.victimServiceId, body, options);
|
326
|
+
}
|
327
|
+
addVictimServiceStatus(victimServiceStatusHistory) {
|
328
|
+
let body;
|
329
|
+
body = JSON.stringify(victimServiceStatusHistory);
|
330
|
+
return this.http
|
331
|
+
.post(this.smartVictimServiceUrl + 'VictimServiceStatusHistories/', body, options);
|
332
|
+
}
|
333
|
+
getServiceStatusHistories(victimServiceId) {
|
334
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimServiceStatusHistories/victimServiceId/' + victimServiceId)
|
335
|
+
.pipe(map((res) => {
|
336
|
+
return res;
|
337
|
+
}), catchError(this.handleError));
|
338
|
+
}
|
339
|
+
deleteSafetyPlan(victimServiceId, staffId) {
|
340
|
+
return this.http.delete(`${this.smartVictimServiceUrl}VictimServices/${victimServiceId}?staffId=${staffId}`);
|
341
|
+
}
|
342
|
+
addPlanProvider(victimServiceDetail) {
|
343
|
+
let body;
|
344
|
+
body = JSON.stringify(victimServiceDetail);
|
345
|
+
return this.http
|
346
|
+
.post(this.smartVictimServiceUrl + 'VictimServiceDetails/', body, options)
|
347
|
+
.pipe();
|
348
|
+
}
|
349
|
+
deleteProvider(victimProgramProviderId, staffId) {
|
350
|
+
return this.http.delete(`${this.smartVictimServiceUrl}VictimServiceDetails/${victimProgramProviderId}?staffId=${staffId}`);
|
351
|
+
}
|
352
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgcSmartVictimService, deps: [{ token: i1.HttpClient }, { token: SMART_OFFENDER_SERVICE_URL }, { token: SMART_LOOKUP_SERVICE_URL }, { token: SMART_VICTIM_SERVICE_URL }, { token: i2.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
353
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgcSmartVictimService, providedIn: 'root' }); }
|
354
|
+
}
|
355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgcSmartVictimService, decorators: [{
|
356
|
+
type: Injectable,
|
357
|
+
args: [{
|
358
|
+
providedIn: 'root'
|
359
|
+
}]
|
360
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
361
|
+
type: Inject,
|
362
|
+
args: [SMART_OFFENDER_SERVICE_URL]
|
363
|
+
}] }, { type: undefined, decorators: [{
|
364
|
+
type: Inject,
|
365
|
+
args: [SMART_LOOKUP_SERVICE_URL]
|
366
|
+
}] }, { type: undefined, decorators: [{
|
367
|
+
type: Inject,
|
368
|
+
args: [SMART_VICTIM_SERVICE_URL]
|
369
|
+
}] }, { type: i2.Apollo }] });
|
370
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc21hcnQtdmljdGltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFDLHdCQUF3QixFQUVXLE1BQU0sc0JBQXNCLENBQUM7QUFDOUgsT0FBTyxFQUFjLFVBQVUsSUFBSSxvQkFBb0IsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFDLFVBQVUsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUl4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7QUFDeEUsTUFBTSxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFLckMsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUFvQixJQUFnQixFQUVVLHVCQUErQixFQUNqQyxxQkFBNkIsRUFDN0IscUJBQTZCLEVBQy9ELE1BQWM7UUFMSixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRVUsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFRO1FBQ2pDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUTtRQUM3QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQVE7UUFDL0QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU5oQixrQkFBYSxHQUFJLHNEQUFzRCxDQUFDO0lBUTFFLENBQUM7SUFFUCx5Q0FB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Q0FBQztJQUU3RyxDQUFDO0lBQ0gsZUFBZSxDQUFDLG1CQUF1QztRQUNqRCxJQUFJLElBQVksQ0FBQztRQUNqQixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHVCQUF1QixFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7YUFDekUsSUFBSSxFQUFFLENBQUM7SUFFWixDQUFDO0lBRUgsY0FBYyxDQUFDLHVCQUErQixFQUFFLE9BQWU7UUFDN0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsd0JBQXdCLHVCQUF1QixZQUFZLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFN0gsQ0FBQztpSUExaUJZLHFCQUFxQiw0Q0FJdEIsMEJBQTBCLGFBQzFCLHdCQUF3QixhQUN4Qix3QkFBd0I7cUlBTnZCLHFCQUFxQixjQUZwQixNQUFNOzsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLSSxNQUFNOzJCQUFDLDBCQUEwQjs7MEJBQ2pDLE1BQU07MkJBQUMsd0JBQXdCOzswQkFDL0IsTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU01BUlRfTE9PS1VQX1NFUlZJQ0VfVVJMLCBTTUFSVF9PRkZFTkRFUl9TRVJWSUNFX1VSTCxTTUFSVF9WSUNUSU1fU0VSVklDRV9VUkwsXHJcbiAgICBWaWN0aW1MaXN0RmlsdGVyLFZpY3RpbURydWdVc2UsVmljdGltLFZpY3RpbVNhZmV0eVBsYW4sXHJcbiAgIENhc2VOb3RlLENvbnRhY3QsVmljdGltU2VydmljZURldGFpbCxWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeSxWaWN0aW1BZHZvY2F0ZSxWaWN0aW1HdWFyZGlhbn0gZnJvbSAnLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIGFzIG9ic2VydmFibGVUaHJvd0Vycm9yfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLGNhdGNoRXJyb3IsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5cclxuXHJcblxyXG5jb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcclxuY29uc3Qgb3B0aW9ucyA9IHsgaGVhZGVyczogaGVhZGVycyB9O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIHtcclxuICBwcml2YXRlIHNlcnZpY2VBcGlVcmwgPSAgJ2h0dHBzOi8vc21hcnQtc2VydmljZS10ZXN0LmF6dXJld2Vic2l0ZXMubmV0L2dyYXBocWwnO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgXHJcbiAgICBASW5qZWN0KFNNQVJUX09GRkVOREVSX1NFUlZJQ0VfVVJMKSBwcml2YXRlIHNtYXJ0T2ZmZW5kZXJTZXJ2aWNlVXJsOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KFNNQVJUX0xPT0tVUF9TRVJWSUNFX1VSTCkgcHJpdmF0ZSBzbWFydExvb2t1cFNlcnZpY2VVcmw6IHN0cmluZyxcclxuICAgIEBJbmplY3QoU01BUlRfVklDVElNX1NFUlZJQ0VfVVJMKSBwcml2YXRlIHNtYXJ0VmljdGltU2VydmljZVVybDogc3RyaW5nLFxyXG4gICAgcHJpdmF0ZSBhcG9sbG86IEFwb2xsb1xyXG5cclxuICAgICkgeyB9XHJcblxyXG4gIC8vIGdldFZpY3RpbUluc3VyYW5jZXMob2ZmZW5kZXJJZDogYW55KSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0T2ZmZW5kZXJTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VzLz9vZmZlbmRlcklkPScgKyBvZmZlbmRlcklkKS5waXBlKCk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXRWaWN0aW1JbnN1cmFuY2UoaWQ6IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlcy8/aWQ9JyArIGlkKS5waXBlKCk7XHJcbiAgLy8gfSBcclxuXHJcbiAgLy8gcG9zdFZpY3RpbUluc3VyYW5jZSh2YWw6IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRPZmZlbmRlclNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZXMnLCB2YWwpLnBpcGUoKTtcclxuICAvLyB9XHJcblxyXG4gIC8vIHB1dFZpY3RpbUluc3VyYW5jZShpZDogYW55LCB2YWw6IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlcy8/aWQ9JyArIGlkLCB2YWwpLnBpcGUoKTtcclxuICAvLyB9XHJcblxyXG4gIC8vIGRlbGV0ZVZpY3RpbUluc3VyYW5jZShpZDogYW55KSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLnNtYXJ0T2ZmZW5kZXJTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VzLz9pZD0nICsgaWQpLnBpcGUoKTtcclxuICAvLyB9XHJcbiAgXHJcbiAgLy8gZ2V0VmljdGltSW5zdXJhbmNlVHlwZXMoKSB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VUeXBlcycpLnBpcGUoKTtcclxuICAvLyB9XHJcblxyXG4gIC8vIGdldFZpY3RpbUluc3VyYW5jZVBvbGljeUhvbGRlcnMoKSB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VQb2xpY3lIb2xkZXJzJykucGlwZSgpO1xyXG4gIC8vIH1cclxuXHJcbi8vICAgZ2V0VmljdGltSW5zdXJhbmNlU3dpdGNoUmVhc29ucygpIHtcclxuLy8gICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZVN3aXRjaFJlYXNvbnMnKS5waXBlKCk7XHJcbi8vICAgfVxyXG5cclxuLy8gICBnZXRWaWN0aW1JbnN1cmFuY2VQcm92aWRlcnMoKSB7XHJcbi8vICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VQcm92aWRlcicpLnBpcGUoKTtcclxuLy8gICB9XHJcblxyXG4vLyAgIGdldFZpY3RpbUluc3VyYW5jZVByb3ZpZGVyKGlkKSB7XHJcbi8vICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlUHJvdmlkZXJzLycgKyBpZCkucGlwZSgpO1xyXG4vLyB9XHJcblxyXG4vLyAgIHBvc3RQcm92aWRlckluZm9ybWF0aW9uKHZhbDogYW55KSB7XHJcbi8vICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlUHJvdmlkZXJzJywgdmFsKS5waXBlKCk7XHJcbi8vICAgfVxyXG5cclxuZ2V0Q3VycmVudEhvdXNpbmcob2ZmZW5kZXJJZDogbnVtYmVyKSB7XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC5nZXQodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICdIb3VzaW5ncy9jdXJyZW50LycgKyBvZmZlbmRlcklkKVxyXG4gICAgLnBpcGUoKTtcclxufVxyXG5cclxucHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KSB7XHJcbiAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKGVycm9yLmpzb24oKS5lcnJvciB8fCAnU2VydmVyIGVycm9yJyk7XHJcbn1cclxuXHJcbmdldERydWdzVHlwZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ0RydWdUeXBlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0RG9ja2V0TGlzdChvZmZlbmRlcklkOiBudW1iZXIpIHtcclxuICBjb25zdCBxdWVyeVN0cmluZyA9IGBcclxuICB7XHJcbiAgICBmaW5kRG9ja2V0cyhpbnB1dDogeyB3aGVyZTogeyBvZmZlbmRlcklkOiR7b2ZmZW5kZXJJZH0gfSB9KSB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgICAgbWVzc2FnZVxyXG4gICAgICBkYXRhIHtcclxuICAgICAgICBkb2NrZXRJZFxyXG4gICAgICAgIGRvY2tldE51bWJlclxyXG4gICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1gO1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLnNlcnZpY2VBcGlVcmwsIHsgcXVlcnk6IHF1ZXJ5U3RyaW5nIH0pLnBpcGUoXHJcbiAgICBtYXAoKHsgZGF0YSB9KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdkb2NrZXRzIGZvciB0aGlzIG9mZmVuZGVyOicsIGRhdGEuZmluZERvY2tldHMuZGF0YSk7XHJcbiAgICAgIHJldHVybiBkYXRhLmZpbmREb2NrZXRzLmRhdGE7XHJcbiAgICB9KSk7XHJcblxyXG5cclxufVxyXG5cclxuZ2V0U3VwcG9ydFR5cGVzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbVN1cHBvcnRUeXBlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0UHJlZml4ZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ1ByZWZpeGVzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4gcmVzKVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRTdWZmaXhlcygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCAgKyAnU3VmZml4ZXMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiByZXMpXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldFJlbGF0aW9uc2hpcFR5cGVzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICArICdSZWxhdGlvbnNoaXBUeXBlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0R2VuZGVycygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCAgKyAnR2VuZGVycycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0V2VhcG9uVHlwZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ1dlYXBvblR5cGVzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4gcmVzKVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRGbGFnT3B0aW9uWWVzTm9Vbmtub3ducygpIHtcclxuIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ0ZsYWdPcHRpb25ZZXNOb1Vua25vd25zJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgIH0pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldENvbnRhY3RUeXBlcygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICdDb250YWN0VHlwZXMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgICAoXHJcbiAgICAgICBtYXAocmVzID0+IHsgXHJcbiAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgIH0pXHJcbiAgICAgICApO1xyXG4gfVxyXG4gZ2V0Q29udGFjdE1ldGhvZHMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdE1ldGhvZHMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgICAoXHJcbiAgICAgICBtYXAocmVzID0+IHsgXHJcbiAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgIH0pXHJcbiAgICAgICApO1xyXG4gfVxyXG4gZ2V0Q29udGFjdEJ5cygpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RQdXJwb3NlcycsIG9wdGlvbnMpLnBpcGVcclxuICAoXHJcbiAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICByZXR1cm4gcmVzO1xyXG4gIH0pXHJcbiAgKTtcclxuXHJcbiB9XHJcblxyXG5nZXRWaWN0aW1Db250YWN0UHVycG9zZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdFB1cnBvc2VzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAgKFxyXG4gICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICB9KVxyXG4gICAgICAgKTtcclxuIH1cclxuXHJcbiBnZXRWaWN0aW1TZXJ2aWNlVHlwZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZVR5cGVzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAgKFxyXG4gICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICB9KVxyXG4gICAgICAgKTtcclxuIH1cclxuIGdldFZpY3RpbVNlcnZpY2VTdGF0dXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZVN0YXR1cycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgIChcclxuICAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgfSlcclxuICAgICAgICk7XHJcbiB9XHJcblxyXG4gZ2V0dlZpY3RpbVNlcnZpY2VUeXBlUHJvZ3JhbVByb3ZpZGVycygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICd2VmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAgKFxyXG4gICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICB9KVxyXG4gICAgICAgKTtcclxuIH1cclxuXHJcblxyXG5nZXRWaWN0aW0odmFsOiBhbnkpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1zLycgKyB2YWwsIG9wdGlvbnMpLnBpcGVcclxuICAoXHJcbiAgICBtYXAocmVzID0+IHsgXHJcbiAgICAgIGNvbnNvbGUubG9nKCd2aWN0aW0gcmV0dXJuIGRhdGEnKTtcclxuICAgICAgY29uc29sZS5sb2cocmVzKTsgIFxyXG4gICAgICByZXR1cm4gcmVzO1xyXG5cclxuICAgIH0pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldFZpY3RpbUFkdm9jYXRlKHZhbDogYW55KSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQWR2b2NhdGVzLycgKyB2YWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG5cclxuICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRWaWN0aW1HdWFyZGlhbih2YWw6IGFueSkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUd1YXJkaWFucy8nICsgdmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuXHJcbiAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgIHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucG9zdFZpY3RpbXModmFsOiBhbnkpIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwrICdWaWN0aW1zJywgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnB1dFZpY3RpbXMoaWQ6IGFueSwgdmFsOiBhbnkpIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1zLycgKyBpZCwgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnB1dFZpY3RpbUFkdm9jYXRlKGlkOiBhbnksIHZhbDogVmljdGltQWR2b2NhdGUpIHtcclxuICBsZXQgYm9keTogc3RyaW5nO1xyXG4gIGJvZHkgPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xyXG4gIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUFkdm9jYXRlcy8nICsgaWQsIGJvZHksIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG5cclxuXHJcblxyXG5cclxufVxyXG5cclxucG9zdFZpY3RpbUFkdm9jYXRlKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUFkdm9jYXRlcy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5wdXRWaWN0aW1HdWFyZGlhbihpZDogYW55LCB2YWw6IGFueSkge1xyXG4gIGNvbnNvbGUubG9nKCd1cGRhdGUgdmljdGltIGd1YXJkaWFuJyk7XHJcbiAgY29uc29sZS5sb2codmFsKTtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1HdWFyZGlhbnMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucG9zdFZpY3RpbUd1YXJkaWFuKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUd1YXJkaWFucy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRWaWN0aW1EcnVnVXNlKHZhbDogYW55KTogT2JzZXJ2YWJsZTxWaWN0aW1EcnVnVXNlW10+e1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbURydWdVc2VzLycgKyB2YWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAoKHJlczogVmljdGltRHJ1Z1VzZVtdKSA9PiB7IFxyXG4gICAgICAgICAgICByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnB1dFZpY3RpbURydWdVc2UoaWQ6IGFueSwgdmFsOiBWaWN0aW1EcnVnVXNlW10pIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltRHJ1Z1VzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucG9zdFZpY3RpbURydWdVc2UoaWQ6IGFueSwgdmFsOiBhbnkpIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltRHJ1Z1VzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucHV0VmljdGltV2VhcG9uVXNlKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltV2VhcG9uVXNlcy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5wb3N0VmljdGltV2VhcG9uVXNlKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVdlYXBvblVzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5wdXRWaWN0aW1TdXBwb3J0KGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU3VwcG9ydHMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucG9zdFZpY3RpbVN1cHBvcnQoaWQ6IGFueSwgdmFsOiBhbnkpIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU3VwcG9ydHMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxuLypcclxucHV0VmljdGltUmVsYXRpb25zaGlwKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltUmVsYXRpb25zaGlwcy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5wb3N0VmljdGltUmVsYXRpb25zaGlwKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVJlbGF0aW9uc2hpcHMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxuKi9cclxuXHJcbmRlbGV0ZVZpY3RpbXModmFsOiBhbnksICBzdGFmZklkOiBudW1iZXIpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCsgJ1ZpY3RpbXMvJyArIHZhbCArICc/c3RhZmZJZD0nKyBzdGFmZklkLCBvcHRpb25zKS5waXBlXHJcbiAgKFxyXG4gIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgKTtcclxufVxyXG5cclxuXHJcbi8vIC8vPT09PT09PT09PT09PT1WaWN0aW0gU2VyaXZlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbmdldFZpY3RpbXMob2ZmZW5kZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZSA8VmljdGltW10+IHtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgICsgJ1ZpY3RpbXMvb2ZmZW5kZXIvJyArIG9mZmVuZGVySWQpXHJcbiAgLnBpcGUobWFwKChyZXM6IFZpY3RpbVtdKSA9PiB7XHJcbiAgICBcclxuICAgICAgcmV0dXJuIHJlcztcclxuICB9KVxyXG4gICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxufVxyXG5cclxuZ2V0VmljdGltc0J5RmlsdGVyKGZpbHRlcjogVmljdGltTGlzdEZpbHRlcik6IE9ic2VydmFibGU8VmljdGltW10+e1xyXG4gIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJy9WaWN0aW1zJywgSlNPTi5zdHJpbmdpZnkoZmlsdGVyKSwgeyBoZWFkZXJzOiBoZWFkZXJzIH0pXHJcbiAgICAgICAgICAucGlwZShtYXAoKHJlczogVmljdGltW10pID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxufVxyXG5cclxuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKGZpbHRlcjogVmljdGltTGlzdEZpbHRlcikgXHJcbntcclxuICBjb25zb2xlLmxvZygnZmlsZXIgaW4gc2VydmljZScpO1xyXG4gIGNvbnNvbGUubG9nKGZpbHRlcik7XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHBcclxuICAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICd2VmljdGltcy9GaWx0ZXInLCBKU09OLnN0cmluZ2lmeShmaWx0ZXIpLCBvcHRpb25zKVxyXG4gIC5waXBlKCk7XHJcblxyXG59XHJcblxyXG5cclxuZ2V0Q2FzZXROb3Rlcyh2aWN0aW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZSA8Q2FzZU5vdGVbXT4ge1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1DYXNlTm90ZXMvdmljdGltLycgKyB2aWN0aW1JZClcclxuICAucGlwZShtYXAoKHJlczogQ2FzZU5vdGVbXSkgPT4ge1xyXG4gICAgICByZXR1cm4gcmVzO1xyXG4gIH0pXHJcbiAgLGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG4gXHJcblxyXG59XHJcbmFkZENhc2VOb3RlKGNhc2VOb3RlOiBDYXNlTm90ZSkge1xyXG4gIGxldCBib2R5OiBzdHJpbmc7XHJcbiAgICAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShjYXNlTm90ZSk7XHJcbiAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNhc2VOb3Rlcy8nLCBib2R5LCBvcHRpb25zKTtcclxuIFxyXG4gfVxyXG5cclxuIFxyXG51cGRhdGVDYXNlTm90ZShjYXNlTm90ZTogQ2FzZU5vdGUpe1xyXG5cclxuICBsZXQgYm9keTogc3RyaW5nO1xyXG4gIGJvZHkgPSBKU09OLnN0cmluZ2lmeShjYXNlTm90ZSk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNhc2VOb3Rlcy8nICsgY2FzZU5vdGUudmljdGltQ2FzZU5vdGVJZCwgYm9keSwgb3B0aW9ucylcclxuXHJcbiAgICAgIDtcclxuIH1cclxuXHJcbmRlbGV0ZUNhc2VOb3RlKGlkOiBudW1iZXIsIHN0YWZmSWQ6IG51bWJlcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybH1WaWN0aW1DYXNlTm90ZXMvJHtpZH0/c3RhZmZJZD0ke3N0YWZmSWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250YWN0cyh2aWN0aW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZSA8Q29udGFjdFtdPiB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdHMvdmljdGltLycgKyB2aWN0aW1JZClcclxuICAgIC5waXBlKG1hcCgocmVzOiBDb250YWN0W10pID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgfSlcclxuICAgICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxuICBcclxuICB9XHJcbiAgYWRkQ29udGFjdChjb250YWN0OiBDb250YWN0KSB7XHJcbiAgICBsZXQgYm9keTogc3RyaW5nO1xyXG4gICAgICAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShjb250YWN0KTtcclxuICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RzLycsIGJvZHksIG9wdGlvbnMpO1xyXG4gICBcclxuICAgfVxyXG4gIFxyXG4gICBcclxuICB1cGRhdGVDb250YWN0KGNvbnRhY3Q6IENvbnRhY3Qpe1xyXG4gIFxyXG4gICAgbGV0IGJvZHk6IHN0cmluZztcclxuICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShjb250YWN0KTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RzLycgKyBjb250YWN0LnZpY3RpbUNvbnRhY3RJZCwgYm9keSwgb3B0aW9ucylcclxuICBcclxuICAgICAgICA7XHJcbiAgIH1cclxuICBcclxuZ2V0U2FmZXR5UGxhbnModmljdGltSWQ6IG51bWJlcik6IE9ic2VydmFibGUgPFZpY3RpbVNhZmV0eVBsYW5bXT4ge1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAndlZpY3RpbVNlcnZpY2VMaXN0cy92aWN0aW0vJyArIHZpY3RpbUlkKVxyXG4gICAgICAucGlwZShtYXAoKHJlczogVmljdGltU2FmZXR5UGxhbltdKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICB9KVxyXG4gICAgICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XHJcbiAgfVxyXG5cclxuZ2V0VmljdGltU2VydmljZXModmljdGltU2VydmljZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlIDxWaWN0aW1TYWZldHlQbGFuW10+IHtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ3ZWaWN0aW1TZXJ2aWNlTGlzdHMvdmljdGltU2VydmljZUlkLycgKyB2aWN0aW1TZXJ2aWNlSWQpXHJcbiAgICAgIC5waXBlKG1hcCgocmVzOiBWaWN0aW1TYWZldHlQbGFuW10pID0+IHtcclxuICAgICAgICAgIHJldHVybiAgcmVzO1xyXG4gICAgICB9KVxyXG4gICAgICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XHJcbiAgXHJcbiAgfVxyXG5cclxuZ2V0VmljdGltU2VydmljZURldGFpbCh2aWN0aW1TZXJ2aWNlSWQ6IG51bWJlcik6IE9ic2VydmFibGUgPFZpY3RpbVNlcnZpY2VEZXRhaWxbXT4ge1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlRGV0YWlscy8nICsgdmljdGltU2VydmljZUlkKVxyXG4gIC5waXBlKG1hcCgocmVzOiBWaWN0aW1TZXJ2aWNlRGV0YWlsW10pID0+IHtcclxuICBcclxuICAgICAgcmV0dXJuIHJlcztcclxuICB9KVxyXG4gICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxuXHJcbn1cclxuYWRkU2FmZXR5UGxhbih2aWN0aW1TYWZldHlQbGFuOiBWaWN0aW1TYWZldHlQbGFuKSB7XHJcblxyXG4gIGxldCBib2R5OiBzdHJpbmc7XHJcbiAgICAgICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkodmljdGltU2FmZXR5UGxhbik7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlcy8nLCBib2R5LCBvcHRpb25zKVxyXG4gICAgICAgICAgLnBpcGUoKTtcclxuICBcclxuICB9XHJcbnVwZGF0ZVNhZmV0eVBsYW4odmljdGltU2FmZXR5UGxhbjogVmljdGltU2FmZXR5UGxhbil7XHJcblxyXG4gICAgICBsZXQgYm9keTogc3RyaW5nO1xyXG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkodmljdGltU2FmZXR5UGxhbik7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgIC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZXMvJyArIHZpY3RpbVNhZmV0eVBsYW4udmljdGltU2VydmljZUlkLCBib2R5LCBvcHRpb25zKVxyXG5cclxuICAgICAgICAgIDtcclxuICAgICB9XHJcbmFkZFZpY3RpbVNlcnZpY2VTdGF0dXModmljdGltU2VydmljZVN0YXR1c0hpc3Rvcnk6IFZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3J5KXtcclxuICBsZXQgYm9keTogc3RyaW5nO1xyXG4gIGJvZHkgPSBKU09OLnN0cmluZ2lmeSh2aWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeSk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3JpZXMvJywgYm9keSwgb3B0aW9ucyk7XHJcblxyXG4gIH1cclxuXHJcbmdldFNlcnZpY2VTdGF0dXNIaXN0b3JpZXModmljdGltU2VydmljZUlkOiBudW1iZXIpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3JpZXMvdmljdGltU2VydmljZUlkLycgKyB2aWN0aW1TZXJ2aWNlSWQpXHJcbiAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeVtdKSA9PiB7XHJcbiAgXHJcbiAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICB9KVxyXG4gICAgICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICk7XHJcbn1cclxuXHJcbmRlbGV0ZVNhZmV0eVBsYW4odmljdGltU2VydmljZUlkOiBudW1iZXIsIHN0YWZmSWQ6IG51bWJlcikge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsfVZpY3RpbVNlcnZpY2VzLyR7dmljdGltU2VydmljZUlkfT9zdGFmZklkPSR7c3RhZmZJZH1gKTtcclxuXHJcbiAgfVxyXG5hZGRQbGFuUHJvdmlkZXIodmljdGltU2VydmljZURldGFpbDpWaWN0aW1TZXJ2aWNlRGV0YWlsKXtcclxuICAgICAgbGV0IGJvZHk6IHN0cmluZztcclxuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KHZpY3RpbVNlcnZpY2VEZXRhaWwpO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VEZXRhaWxzLycsIGJvZHksIG9wdGlvbnMpXHJcbiAgICAgIC5waXBlKCk7XHJcblxyXG4gIH1cclxuXHJcbmRlbGV0ZVByb3ZpZGVyKHZpY3RpbVByb2dyYW1Qcm92aWRlcklkOiBzdHJpbmcsIHN0YWZmSWQ6IG51bWJlcil7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmx9VmljdGltU2VydmljZURldGFpbHMvJHt2aWN0aW1Qcm9ncmFtUHJvdmlkZXJJZH0/c3RhZmZJZD0ke3N0YWZmSWR9YCk7XHJcblxyXG59XHJcblxyXG5cclxuXHJcbn1cclxuIl19
|