@csmart/ngc-smart-victim 1.18.12 → 1.18.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. package/esm2022/csmart-ngc-smart-victim.mjs +5 -0
  2. package/esm2022/lib/caseNote/caseNote.component.mjs +194 -0
  3. package/esm2022/lib/common-dialog/common-dialog.component.mjs +23 -0
  4. package/esm2022/lib/common-dialog/common-dialog.module.mjs +34 -0
  5. package/esm2022/lib/common-dialog/common-dialog.service.mjs +33 -0
  6. package/esm2022/lib/contact/contact.component.mjs +140 -0
  7. package/esm2022/lib/email.services.mjs +42 -0
  8. package/esm2022/lib/intake.service.mjs +57 -0
  9. package/esm2022/lib/safetyPlan/serviceProvider.component.mjs +99 -0
  10. package/esm2022/lib/safetyPlan/victimSafetyPlan.component.mjs +116 -0
  11. package/esm2022/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +340 -0
  12. package/esm2022/lib/shared/app.shared.module.mjs +215 -0
  13. package/esm2022/lib/shared/validators/date.validator.mjs +59 -0
  14. package/esm2022/lib/shared/validators/index.mjs +2 -0
  15. package/esm2022/lib/smart-victim-delete-confirm.component.mjs +44 -0
  16. package/esm2022/lib/smart-victim-detail/smart-victim-detail.component.mjs +1155 -0
  17. package/esm2022/lib/smart-victim.component.mjs +317 -0
  18. package/esm2022/lib/smart-victim.model.mjs +142 -0
  19. package/esm2022/lib/smart-victim.module.mjs +128 -0
  20. package/esm2022/lib/smart-victim.service.mjs +370 -0
  21. package/esm2022/lib/victim-routing.module.mjs +41 -0
  22. package/esm2022/lib/victimSearch/VictimSearchFilter.mjs +3 -0
  23. package/esm2022/lib/victimSearch/victimSearchForm.component.mjs +38 -0
  24. package/esm2022/public-api.mjs +11 -0
  25. package/fesm2022/csmart-ngc-smart-victim.mjs +3342 -0
  26. package/fesm2022/csmart-ngc-smart-victim.mjs.map +1 -0
  27. package/index.d.ts +5 -0
  28. package/lib/caseNote/caseNote.component.d.ts +51 -0
  29. package/lib/common-dialog/common-dialog.component.d.ts +14 -0
  30. package/lib/common-dialog/common-dialog.module.d.ts +8 -0
  31. package/lib/common-dialog/common-dialog.service.d.ts +11 -0
  32. package/lib/contact/contact.component.d.ts +40 -0
  33. package/lib/email.services.d.ts +11 -0
  34. package/lib/intake.service.d.ts +57 -0
  35. package/lib/safetyPlan/serviceProvider.component.d.ts +19 -0
  36. package/lib/safetyPlan/victimSafetyPlan.component.d.ts +54 -0
  37. package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +62 -0
  38. package/lib/shared/app.shared.module.d.ts +33 -0
  39. package/lib/shared/validators/date.validator.d.ts +9 -0
  40. package/lib/shared/validators/index.d.ts +1 -0
  41. package/lib/smart-victim-delete-confirm.component.d.ts +12 -0
  42. package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +129 -0
  43. package/lib/smart-victim.component.d.ts +69 -0
  44. package/lib/smart-victim.model.d.ts +211 -0
  45. package/lib/smart-victim.module.d.ts +49 -0
  46. package/lib/smart-victim.service.d.ts +71 -0
  47. package/lib/victim-routing.module.d.ts +7 -0
  48. package/{src/lib/victimSearch/VictimSearchFilter.ts → lib/victimSearch/VictimSearchFilter.d.ts} +7 -9
  49. package/lib/victimSearch/victimSearchForm.component.d.ts +14 -0
  50. package/package.json +21 -6
  51. package/{src/public-api.ts → public-api.d.ts} +7 -12
  52. package/karma.conf.js +0 -32
  53. package/ng-package.json +0 -7
  54. package/src/lib/caseNote/caseNote.component.css +0 -22
  55. package/src/lib/caseNote/caseNote.component.html +0 -188
  56. package/src/lib/caseNote/caseNote.component.ts +0 -265
  57. package/src/lib/common-dialog/common-dialog.component.css +0 -10
  58. package/src/lib/common-dialog/common-dialog.component.html +0 -23
  59. package/src/lib/common-dialog/common-dialog.component.spec.ts +0 -25
  60. package/src/lib/common-dialog/common-dialog.component.ts +0 -21
  61. package/src/lib/common-dialog/common-dialog.module.ts +0 -22
  62. package/src/lib/common-dialog/common-dialog.service.ts +0 -35
  63. package/src/lib/contact/contact.component.css +0 -22
  64. package/src/lib/contact/contact.component.html +0 -124
  65. package/src/lib/contact/contact.component.ts +0 -176
  66. package/src/lib/email-notification.service.ts +0 -42
  67. package/src/lib/email.services.ts +0 -51
  68. package/src/lib/http.service.ts +0 -34
  69. package/src/lib/intake.service.ts +0 -82
  70. package/src/lib/loader.service.ts +0 -11
  71. package/src/lib/safetyPlan/serviceProvider.component.ts +0 -94
  72. package/src/lib/safetyPlan/victimSafetyPlan.component.css +0 -27
  73. package/src/lib/safetyPlan/victimSafetyPlan.component.html +0 -85
  74. package/src/lib/safetyPlan/victimSafetyPlan.component.ts +0 -178
  75. package/src/lib/safetyPlan/victimSafetyPlanDetail.component.html +0 -234
  76. package/src/lib/safetyPlan/victimSafetyPlanDetail.component.ts +0 -492
  77. package/src/lib/shared/app.shared.module.ts +0 -111
  78. package/src/lib/shared/validators/date.validator.ts +0 -73
  79. package/src/lib/shared/validators/index.ts +0 -1
  80. package/src/lib/smart-victim-delete-confirm.component.ts +0 -35
  81. package/src/lib/smart-victim-detail/smart-victim-detail.component.css +0 -43
  82. package/src/lib/smart-victim-detail/smart-victim-detail.component.html +0 -876
  83. package/src/lib/smart-victim-detail/smart-victim-detail.component.spec.ts +0 -25
  84. package/src/lib/smart-victim-detail/smart-victim-detail.component.ts +0 -1469
  85. package/src/lib/smart-victim.component.css +0 -245
  86. package/src/lib/smart-victim.component.html +0 -132
  87. package/src/lib/smart-victim.component.spec.ts +0 -25
  88. package/src/lib/smart-victim.component.ts +0 -333
  89. package/src/lib/smart-victim.model.ts +0 -311
  90. package/src/lib/smart-victim.module.ts +0 -110
  91. package/src/lib/smart-victim.service.spec.ts +0 -12
  92. package/src/lib/smart-victim.service.ts +0 -576
  93. package/src/lib/victim-routing.module.ts +0 -36
  94. package/src/lib/victimSearch/victimSearchForm.component.html +0 -35
  95. package/src/lib/victimSearch/victimSearchForm.component.ts +0 -41
  96. package/src/test.ts +0 -16
  97. package/tsconfig.lib.json +0 -36
  98. package/tsconfig.spec.json +0 -17
  99. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxXQUFXO0FBR1gseUNBQXlDO0FBRXpDLHNCQUFzQjtBQUN0Qix1QkFBdUI7QUFDdkIsOEJBQThCO0FBRTlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQWUsbUJBQW1CLEVBQXFDLE1BQU0sd0JBQXdCLENBQUM7QUFDN0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFakQsTUFBTSxVQUFVLEdBQUc7SUFDakIsdUJBQXVCO0lBQ3ZCLDBCQUEwQjtJQUMxQixpQ0FBaUM7Q0FHbEMsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsaUNBQWlDO0NBRWxDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRztJQUNuQixZQUFZO0lBQ1osbUJBQW1CO0NBQ3BCLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxDQUFDO0FBRTlFLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsZUFBZSxFQUFFLGlCQUFpQixFQUFDLGNBQWMsRUFBQyxlQUFlO0lBQ2pFLGFBQWEsRUFBRSxvQkFBb0I7SUFDbkMsYUFBYSxFQUFFLGFBQWEsRUFBRSxxQkFBcUI7SUFDbkQsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQjtJQUNuRCxhQUFhLEVBQUUsY0FBYyxFQUFFLG9CQUFvQjtJQUNuRCxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBQyxrQkFBa0I7SUFDM0QsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGVBQWU7SUFDbEQsY0FBYyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsWUFBWTtDQUMvRSxDQUFDO0FBeUJGLE1BQU0sT0FBTyxvQkFBb0I7aUlBQXBCLG9CQUFvQjtrSUFBcEIsb0JBQW9CLGlCQXJEL0IsdUJBQXVCO1lBQ3ZCLDBCQUEwQjtZQUMxQixpQ0FBaUMsRUE4QjNCLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQix5QkFBeUI7WUFDekIsdUJBQXVCLGFBeEI3QixZQUFZO1lBQ1osbUJBQW1CLEVBTW5CLGVBQWUsRUFBRSxpQkFBaUIsRUFBQyxjQUFjLEVBQUMsZUFBZTtZQUNqRSxhQUFhLEVBQUUsb0JBQW9CO1lBQ25DLGFBQWEsRUFBRSxhQUFhLEVBQUUscUJBQXFCO1lBQ25ELGdCQUFnQixFQUFFLGFBQWEsRUFBRSxrQkFBa0I7WUFDbkQsYUFBYSxFQUFFLGNBQWMsRUFBRSxvQkFBb0I7WUFDbkQsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUMsa0JBQWtCO1lBQzNELGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlO1lBQ2xELGNBQWMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFWMUQsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQTBCbkUsa0JBQWtCO1lBQ2xCLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsWUFBWSxhQTlDbEIsdUJBQXVCO1lBQ3ZCLDBCQUEwQjtZQUMxQixpQ0FBaUMsRUFnRE4sWUFBWTtrSUFHNUIsb0JBQW9CLGFBRmxCLENBQUMscUJBQXFCLENBQUMsWUFYM0IsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixZQUFZLEVBQ2Ysa0JBQWtCO1lBQ2xCLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsWUFBWSxFQUlTLFlBQVk7OzJGQUc1QixvQkFBb0I7a0JBdkJoQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVTt3QkFDeEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQix5QkFBeUI7d0JBQ3pCLHVCQUF1QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLEdBQUcsWUFBWTt3QkFDZixHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRyxZQUFZO3dCQUNmLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osY0FBYztxQkFFakI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsWUFBWSxDQUFDO29CQUN0QyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLEZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbi8vIGltcG9ydCB7XHJcblxyXG5cclxuLy8gICBNYXRNZW51TW9kdWxlLCBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcclxuXHJcbi8vICAgTWF0U2lkZW5hdk1vZHVsZSxcclxuLy8gIE1hdFBhZ2luYXRvck1vZHVsZSxcclxuLy8gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XHJcblxyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcclxuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1hdE5hdGl2ZURhdGVNb2R1bGUsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNYXRHcmlkTGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2dyaWQtbGlzdCc7XHJcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgQ2RrVGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xyXG5pbXBvcnQgeyBMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgU21hcnRBZGRyZXNzTW9kdWxlIH0gZnJvbSAnQGNzbWFydC9uZ2Mtc21hcnQtYWRkcmVzcyc7XHJcbmltcG9ydCB7IE5nY1NtYXJ0VmljdGltQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnRWaWN0aW1EZWxldGVDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGVsZXRlLWNvbmZpcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uRGlhbG9nTW9kdWxlIH0gZnJvbSAnLi9jb21tb24tZGlhbG9nL2NvbW1vbi1kaWFsb2cubW9kdWxlJztcclxuaW1wb3J0IHsgVmljdGltUm91dGluZ01vZHVsZSB9IGZyb20gJy4vdmljdGltLXJvdXRpbmcubW9kdWxlJztcclxuaW1wb3J0IHsgQ2FzZU5vdGVDb21wb25lbnQgfSBmcm9tICcuL2Nhc2VOb3RlL2Nhc2VOb3RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbnRhY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWN0aW1TYWZldHlQbGFuQ29tcG9uZW50IH0gZnJvbSAnLi9zYWZldHlQbGFuL3ZpY3RpbVNhZmV0eVBsYW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmljdGltU2FmZXR5UGxhbkRldGFpbENvbXBvbmVudCB9IGZyb20gJy4vc2FmZXR5UGxhbi92aWN0aW1TYWZldHlQbGFuRGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpY3RpbVNlYXJjaEZvcm1Db21wb25lbnQgfSBmcm9tICcuL3ZpY3RpbVNlYXJjaC92aWN0aW1TZWFyY2hGb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwb2xsb01vZHVsZSwgQVBPTExPX09QVElPTlMgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XHJcbmltcG9ydCB7IFNlcml2ZVByb3ZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zYWZldHlQbGFuL3NlcnZpY2VQcm92aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydENvcmVNb2R1bGUgfSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgU21hcnRVaU1vZHVsZSB9IGZyb20gJ0Bjc21hcnQvc21hcnQtdWknO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UUyA9IFtcclxuICBOZ2NTbWFydFZpY3RpbUNvbXBvbmVudCxcclxuICBTbWFydFZpY3RpbURldGFpbENvbXBvbmVudCxcclxuICBTbWFydFZpY3RpbURlbGV0ZUNvbmZpcm1Db21wb25lbnQsXHJcblxyXG4gIFxyXG5dO1xyXG5cclxuY29uc3QgRU5UUllfQ09NUE9ORU5UUyA9IFtcclxuICBTbWFydFZpY3RpbURlbGV0ZUNvbmZpcm1Db21wb25lbnQsXHJcbiBcclxuXTtcclxuXHJcbmNvbnN0IEJBU0VfTU9EVUxFUyA9IFtcclxuICBDb21tb25Nb2R1bGUsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG5dO1xyXG5cclxuY29uc3QgQ09SRV9NT0RVTEVTID0gW05nY1NtYXJ0Q29yZU1vZHVsZSwgU21hcnRBZGRyZXNzTW9kdWxlLCBTbWFydFVpTW9kdWxlLF07XHJcblxyXG5jb25zdCBNQVRFUklBTF9NT0RVTEVTID0gW1xyXG4gIE1hdEJ1dHRvbk1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsTWF0UmFkaW9Nb2R1bGUsTWF0U2xpZGVyTW9kdWxlLFxyXG4gIE1hdENhcmRNb2R1bGUsIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gIE1hdExpc3RNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcclxuICBNYXRUb29sYmFyTW9kdWxlLCBNYXRUYWJzTW9kdWxlLCBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgTWF0TWVudU1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gIE1hdERhdGVwaWNrZXJNb2R1bGUsIE1hdE5hdGl2ZURhdGVNb2R1bGUsTWF0UGFnaW5hdG9yTW9kdWxlLFxyXG4gIE1hdERpYWxvZ01vZHVsZSwgTWF0U2lkZW5hdk1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLFxyXG4gIE1hdFRhYmxlTW9kdWxlLCBNYXRTb3J0TW9kdWxlLCBNYXRHcmlkTGlzdE1vZHVsZSwgQ2RrVGFibGVNb2R1bGUsIExheW91dE1vZHVsZSxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTLFxyXG4gICAgICAgIENhc2VOb3RlQ29tcG9uZW50LFxyXG4gICAgICAgIENvbnRhY3RDb21wb25lbnQsXHJcbiAgICAgICAgVmljdGltU2FmZXR5UGxhbkNvbXBvbmVudCxcclxuICAgICAgICBWaWN0aW1TYWZldHlQbGFuRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgIFZpY3RpbVNlYXJjaEZvcm1Db21wb25lbnQsXHJcbiAgICAgICAgU2VyaXZlUHJvdmlkZXJDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgLi4uQkFTRV9NT0RVTEVTLFxyXG4gICAgICAgIC4uLk1BVEVSSUFMX01PRFVMRVMsXHJcbiAgICAgICAgLi4uQ09SRV9NT0RVTEVTLFxyXG4gICAgICAgIENvbW1vbkRpYWxvZ01vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBWaWN0aW1Sb3V0aW5nTW9kdWxlLFxyXG4gICAgICAgIEFwb2xsb01vZHVsZSxcclxuICAgICAgICAvL1NoYXJlZE1vZHVsZVxyXG4gICAgICAgIFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFsuLi5DT01QT05FTlRTLCBBcG9sbG9Nb2R1bGVdLFxyXG4gICAgcHJvdmlkZXJzOiBbTmdjU21hcnRWaWN0aW1TZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1Nb2R1bGUgeyB9XHJcbiJdfQ==
@@ -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