@csmart/ngc-smart-victim 0.1.6 → 1.13.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. package/csmart-ngc-smart-victim.d.ts +1 -15
  2. package/esm2020/csmart-ngc-smart-victim.mjs +5 -0
  3. package/esm2020/lib/caseNote/caseNote.component.mjs +185 -0
  4. package/esm2020/lib/common-dialog/common-dialog.component.mjs +23 -0
  5. package/esm2020/lib/common-dialog/common-dialog.module.mjs +38 -0
  6. package/esm2020/lib/common-dialog/common-dialog.service.mjs +33 -0
  7. package/esm2020/lib/contact/contact.component.mjs +140 -0
  8. package/esm2020/lib/intake.service.mjs +57 -0
  9. package/esm2020/lib/safetyPlan/serviceProvider.component.mjs +115 -0
  10. package/esm2020/lib/safetyPlan/victimSafetyPlan.component.mjs +116 -0
  11. package/esm2020/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +340 -0
  12. package/esm2020/lib/shared/app.shared.module.mjs +213 -0
  13. package/esm2020/lib/shared/directives/phone-mask.directive.mjs +114 -0
  14. package/esm2020/lib/shared/validators/date.validator.mjs +59 -0
  15. package/esm2020/lib/shared/validators/index.mjs +2 -0
  16. package/esm2020/lib/smart-victim-delete-confirm.component.mjs +53 -0
  17. package/esm2020/lib/smart-victim-detail/smart-victim-detail.component.mjs +961 -0
  18. package/esm2020/lib/smart-victim.component.mjs +310 -0
  19. package/esm2020/lib/smart-victim.model.mjs +133 -0
  20. package/esm2020/lib/smart-victim.module.mjs +138 -0
  21. package/esm2020/lib/smart-victim.service.mjs +347 -0
  22. package/esm2020/lib/victim-routing.module.mjs +42 -0
  23. package/esm2020/lib/victimSearch/VictimSearchFilter.mjs +3 -0
  24. package/esm2020/lib/victimSearch/victimSearchForm.component.mjs +38 -0
  25. package/esm2020/public-api.mjs +12 -0
  26. package/fesm2015/csmart-ngc-smart-victim.mjs +3225 -0
  27. package/fesm2015/csmart-ngc-smart-victim.mjs.map +1 -0
  28. package/fesm2020/csmart-ngc-smart-victim.mjs +3214 -0
  29. package/fesm2020/csmart-ngc-smart-victim.mjs.map +1 -0
  30. package/lib/caseNote/caseNote.component.d.ts +6 -2
  31. package/lib/common-dialog/common-dialog.component.d.ts +4 -1
  32. package/lib/common-dialog/common-dialog.module.d.ts +6 -0
  33. package/lib/common-dialog/common-dialog.service.d.ts +4 -1
  34. package/lib/contact/contact.component.d.ts +4 -1
  35. package/lib/intake.service.d.ts +3 -0
  36. package/lib/safetyPlan/serviceProvider.component.d.ts +4 -1
  37. package/lib/safetyPlan/victimSafetyPlan.component.d.ts +7 -2
  38. package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +7 -2
  39. package/lib/shared/app.shared.module.d.ts +30 -0
  40. package/lib/shared/directives/phone-mask.directive.d.ts +5 -2
  41. package/lib/smart-victim-delete-confirm.component.d.ts +3 -0
  42. package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +9 -4
  43. package/lib/smart-victim.component.d.ts +8 -3
  44. package/lib/smart-victim.model.d.ts +2 -1
  45. package/lib/smart-victim.module.d.ts +47 -0
  46. package/lib/smart-victim.service.d.ts +3 -0
  47. package/lib/victim-routing.module.d.ts +5 -0
  48. package/lib/victimSearch/victimSearchForm.component.d.ts +3 -0
  49. package/package.json +28 -18
  50. package/public-api.d.ts +4 -0
  51. package/bundles/csmart-ngc-smart-victim.umd.js +0 -6430
  52. package/bundles/csmart-ngc-smart-victim.umd.js.map +0 -1
  53. package/bundles/csmart-ngc-smart-victim.umd.min.js +0 -16
  54. package/bundles/csmart-ngc-smart-victim.umd.min.js.map +0 -1
  55. package/csmart-ngc-smart-victim.metadata.json +0 -1
  56. package/esm2015/csmart-ngc-smart-victim.js +0 -25
  57. package/esm2015/lib/caseNote/caseNote.component.js +0 -349
  58. package/esm2015/lib/common-dialog/common-dialog.component.js +0 -46
  59. package/esm2015/lib/common-dialog/common-dialog.module.js +0 -32
  60. package/esm2015/lib/common-dialog/common-dialog.service.js +0 -63
  61. package/esm2015/lib/contact/contact.component.js +0 -232
  62. package/esm2015/lib/intake.service.js +0 -183
  63. package/esm2015/lib/safetyPlan/serviceProvider.component.js +0 -130
  64. package/esm2015/lib/safetyPlan/victimSafetyPlan.component.js +0 -257
  65. package/esm2015/lib/safetyPlan/victimSafetyPlanDetail.component.js +0 -556
  66. package/esm2015/lib/shared/app.shared.module.js +0 -81
  67. package/esm2015/lib/shared/directives/phone-mask.directive.js +0 -168
  68. package/esm2015/lib/shared/validators/date.validator.js +0 -108
  69. package/esm2015/lib/shared/validators/index.js +0 -7
  70. package/esm2015/lib/smart-victim-delete-confirm.component.js +0 -61
  71. package/esm2015/lib/smart-victim-detail/smart-victim-detail.component.js +0 -1406
  72. package/esm2015/lib/smart-victim.component.js +0 -476
  73. package/esm2015/lib/smart-victim.model.js +0 -631
  74. package/esm2015/lib/smart-victim.module.js +0 -84
  75. package/esm2015/lib/smart-victim.service.js +0 -792
  76. package/esm2015/lib/victim-routing.module.js +0 -40
  77. package/esm2015/lib/victimSearch/VictimSearchFilter.js +0 -20
  78. package/esm2015/lib/victimSearch/victimSearchForm.component.js +0 -59
  79. package/esm2015/public-api.js +0 -13
  80. package/esm5/csmart-ngc-smart-victim.js +0 -25
  81. package/esm5/lib/caseNote/caseNote.component.js +0 -372
  82. package/esm5/lib/common-dialog/common-dialog.component.js +0 -48
  83. package/esm5/lib/common-dialog/common-dialog.module.js +0 -36
  84. package/esm5/lib/common-dialog/common-dialog.service.js +0 -75
  85. package/esm5/lib/contact/contact.component.js +0 -285
  86. package/esm5/lib/intake.service.js +0 -194
  87. package/esm5/lib/safetyPlan/serviceProvider.component.js +0 -99
  88. package/esm5/lib/safetyPlan/victimSafetyPlan.component.js +0 -306
  89. package/esm5/lib/safetyPlan/victimSafetyPlanDetail.component.js +0 -628
  90. package/esm5/lib/shared/app.shared.module.js +0 -85
  91. package/esm5/lib/shared/directives/phone-mask.directive.js +0 -184
  92. package/esm5/lib/shared/validators/date.validator.js +0 -108
  93. package/esm5/lib/shared/validators/index.js +0 -7
  94. package/esm5/lib/smart-victim-delete-confirm.component.js +0 -51
  95. package/esm5/lib/smart-victim-detail/smart-victim-detail.component.js +0 -1498
  96. package/esm5/lib/smart-victim.component.js +0 -528
  97. package/esm5/lib/smart-victim.model.js +0 -541
  98. package/esm5/lib/smart-victim.module.js +0 -84
  99. package/esm5/lib/smart-victim.service.js +0 -1063
  100. package/esm5/lib/victim-routing.module.js +0 -44
  101. package/esm5/lib/victimSearch/VictimSearchFilter.js +0 -24
  102. package/esm5/lib/victimSearch/victimSearchForm.component.js +0 -70
  103. package/esm5/public-api.js +0 -13
  104. package/fesm2015/csmart-ngc-smart-victim.js +0 -5686
  105. package/fesm2015/csmart-ngc-smart-victim.js.map +0 -1
  106. package/fesm5/csmart-ngc-smart-victim.js +0 -6207
  107. package/fesm5/csmart-ngc-smart-victim.js.map +0 -1
@@ -0,0 +1,138 @@
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 { PhoneMaskDirective } from './shared/directives/phone-mask.directive';
45
+ import { SeriveProviderComponent } from './safetyPlan/serviceProvider.component';
46
+ import { NgcSmartCoreModule } from '@csmart/ngc-smart-core';
47
+ import { MatMenuModule } from '@angular/material/menu';
48
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
49
+ import { MatPaginatorModule } from '@angular/material/paginator';
50
+ import { MatSidenavModule } from '@angular/material/sidenav';
51
+ import * as i0 from "@angular/core";
52
+ const COMPONENTS = [
53
+ NgcSmartVictimComponent,
54
+ SmartVictimDetailComponent,
55
+ SmartVictimDeleteConfirmComponent,
56
+ PhoneMaskDirective
57
+ ];
58
+ const ENTRY_COMPONENTS = [
59
+ SmartVictimDeleteConfirmComponent,
60
+ ];
61
+ const BASE_MODULES = [
62
+ CommonModule,
63
+ ReactiveFormsModule
64
+ ];
65
+ const CORE_MODULES = [NgcSmartCoreModule, SmartAddressModule];
66
+ const MATERIAL_MODULES = [
67
+ MatButtonModule, MatCheckboxModule, MatRadioModule, MatSliderModule,
68
+ MatCardModule, MatSlideToggleModule,
69
+ MatListModule, MatIconModule, MatButtonToggleModule,
70
+ MatToolbarModule, MatTabsModule, MatExpansionModule,
71
+ MatMenuModule, MatInputModule, MatProgressBarModule,
72
+ MatDatepickerModule, MatNativeDateModule, MatPaginatorModule,
73
+ MatDialogModule, MatSidenavModule, MatSelectModule,
74
+ MatTableModule, MatSortModule, MatGridListModule, CdkTableModule, LayoutModule,
75
+ ];
76
+ export class NgcSmartVictimModule {
77
+ }
78
+ /** @nocollapse */ /** @nocollapse */ NgcSmartVictimModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgcSmartVictimModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
79
+ /** @nocollapse */ /** @nocollapse */ NgcSmartVictimModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgcSmartVictimModule, declarations: [NgcSmartVictimComponent,
80
+ SmartVictimDetailComponent,
81
+ SmartVictimDeleteConfirmComponent,
82
+ PhoneMaskDirective, CaseNoteComponent,
83
+ ContactComponent,
84
+ VictimSafetyPlanComponent,
85
+ VictimSafetyPlanDetailComponent,
86
+ VictimSearchFormComponent,
87
+ SeriveProviderComponent], imports: [CommonModule,
88
+ ReactiveFormsModule, MatButtonModule, MatCheckboxModule, MatRadioModule, MatSliderModule,
89
+ MatCardModule, MatSlideToggleModule,
90
+ MatListModule, MatIconModule, MatButtonToggleModule,
91
+ MatToolbarModule, MatTabsModule, MatExpansionModule,
92
+ MatMenuModule, MatInputModule, MatProgressBarModule,
93
+ MatDatepickerModule, MatNativeDateModule, MatPaginatorModule,
94
+ MatDialogModule, MatSidenavModule, MatSelectModule,
95
+ MatTableModule, MatSortModule, MatGridListModule, CdkTableModule, LayoutModule, NgcSmartCoreModule, SmartAddressModule, CommonDialogModule,
96
+ FormsModule,
97
+ VictimRoutingModule,
98
+ ApolloModule], exports: [NgcSmartVictimComponent,
99
+ SmartVictimDetailComponent,
100
+ SmartVictimDeleteConfirmComponent,
101
+ PhoneMaskDirective, ApolloModule] });
102
+ /** @nocollapse */ /** @nocollapse */ NgcSmartVictimModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgcSmartVictimModule, providers: [NgcSmartVictimService], imports: [[
103
+ ...BASE_MODULES,
104
+ ...MATERIAL_MODULES,
105
+ ...CORE_MODULES,
106
+ CommonDialogModule,
107
+ FormsModule,
108
+ VictimRoutingModule,
109
+ ApolloModule,
110
+ //SharedModule
111
+ ], ApolloModule] });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgcSmartVictimModule, decorators: [{
113
+ type: NgModule,
114
+ args: [{
115
+ declarations: [...COMPONENTS,
116
+ CaseNoteComponent,
117
+ ContactComponent,
118
+ VictimSafetyPlanComponent,
119
+ VictimSafetyPlanDetailComponent,
120
+ VictimSearchFormComponent,
121
+ SeriveProviderComponent
122
+ ],
123
+ imports: [
124
+ ...BASE_MODULES,
125
+ ...MATERIAL_MODULES,
126
+ ...CORE_MODULES,
127
+ CommonDialogModule,
128
+ FormsModule,
129
+ VictimRoutingModule,
130
+ ApolloModule,
131
+ //SharedModule
132
+ ],
133
+ exports: [...COMPONENTS, ApolloModule],
134
+ entryComponents: [...ENTRY_COMPONENTS, SeriveProviderComponent],
135
+ providers: [NgcSmartVictimService]
136
+ }]
137
+ }] });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxXQUFXO0FBR1gseUNBQXlDO0FBRXpDLHNCQUFzQjtBQUN0Qix1QkFBdUI7QUFDdkIsOEJBQThCO0FBRTlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQWUsbUJBQW1CLEVBQXFDLE1BQU0sd0JBQXdCLENBQUM7QUFDN0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUk3RCxNQUFNLFVBQVUsR0FBRztJQUNqQix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLGlDQUFpQztJQUNqQyxrQkFBa0I7Q0FFbkIsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsaUNBQWlDO0NBRWxDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRztJQUNuQixZQUFZO0lBQ1osbUJBQW1CO0NBQ3BCLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFFOUQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixlQUFlLEVBQUUsaUJBQWlCLEVBQUMsY0FBYyxFQUFDLGVBQWU7SUFDakUsYUFBYSxFQUFFLG9CQUFvQjtJQUNuQyxhQUFhLEVBQUUsYUFBYSxFQUFFLHFCQUFxQjtJQUNuRCxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsa0JBQWtCO0lBQ25ELGFBQWEsRUFBRSxjQUFjLEVBQUUsb0JBQW9CO0lBQ25ELG1CQUFtQixFQUFFLG1CQUFtQixFQUFDLGtCQUFrQjtJQUMzRCxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZTtJQUNsRCxjQUFjLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxZQUFZO0NBQy9FLENBQUM7QUEyQkYsTUFBTSxPQUFPLG9CQUFvQjs7dUpBQXBCLG9CQUFvQjt3SkFBcEIsb0JBQW9CLGlCQXZEL0IsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQixpQ0FBaUM7UUFDakMsa0JBQWtCLEVBNkJoQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLHlCQUF5QjtRQUN6QiwrQkFBK0I7UUFDL0IseUJBQXlCO1FBQ3pCLHVCQUF1QixhQXhCekIsWUFBWTtRQUNaLG1CQUFtQixFQU1uQixlQUFlLEVBQUUsaUJBQWlCLEVBQUMsY0FBYyxFQUFDLGVBQWU7UUFDakUsYUFBYSxFQUFFLG9CQUFvQjtRQUNuQyxhQUFhLEVBQUUsYUFBYSxFQUFFLHFCQUFxQjtRQUNuRCxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsa0JBQWtCO1FBQ25ELGFBQWEsRUFBRSxjQUFjLEVBQUUsb0JBQW9CO1FBQ25ELG1CQUFtQixFQUFFLG1CQUFtQixFQUFDLGtCQUFrQjtRQUMzRCxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZTtRQUNsRCxjQUFjLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxZQUFZLEVBVjFELGtCQUFrQixFQUFFLGtCQUFrQixFQTBCeEQsa0JBQWtCO1FBQ2xCLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsWUFBWSxhQTlDZCx1QkFBdUI7UUFDdkIsMEJBQTBCO1FBQzFCLGlDQUFpQztRQUNqQyxrQkFBa0IsRUFnRE8sWUFBWTt3SkFJMUIsb0JBQW9CLGFBRnBCLENBQUUscUJBQXFCLENBQUUsWUFkM0I7WUFDUCxHQUFHLFlBQVk7WUFDZixHQUFHLGdCQUFnQjtZQUNuQixHQUFHLFlBQVk7WUFDZixrQkFBa0I7WUFDbEIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osY0FBYztTQUdmLEVBQ3dCLFlBQVk7MkZBSTFCLG9CQUFvQjtrQkF6QmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVO3dCQUMxQixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QiwrQkFBK0I7d0JBQy9CLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsR0FBRyxZQUFZO3dCQUNmLEdBQUcsZ0JBQWdCO3dCQUNuQixHQUFHLFlBQVk7d0JBQ2Ysa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixjQUFjO3FCQUdmO29CQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLFlBQVksQ0FBQztvQkFDdEMsZUFBZSxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQztvQkFDL0QsU0FBUyxFQUFFLENBQUUscUJBQXFCLENBQUU7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSxGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG4vLyBpbXBvcnQge1xyXG5cclxuXHJcbi8vICAgTWF0TWVudU1vZHVsZSwgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXHJcblxyXG4vLyAgIE1hdFNpZGVuYXZNb2R1bGUsXHJcbi8vICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbi8vIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5cclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcclxuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNYXROYXRpdmVEYXRlTW9kdWxlLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xyXG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcblxyXG5pbXBvcnQgeyBDZGtUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XHJcbmltcG9ydCB7IExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQgeyBTbWFydEFkZHJlc3NNb2R1bGUgfSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1hZGRyZXNzJztcclxuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1Db21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbVNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS1kZXRhaWwvc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWFydFZpY3RpbURlbGV0ZUNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS1kZWxldGUtY29uZmlybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25EaWFsb2dNb2R1bGUgfSBmcm9tICcuL2NvbW1vbi1kaWFsb2cvY29tbW9uLWRpYWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBWaWN0aW1Sb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi92aWN0aW0tcm91dGluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBDYXNlTm90ZUNvbXBvbmVudCB9IGZyb20gJy4vY2FzZU5vdGUvY2FzZU5vdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29udGFjdENvbXBvbmVudCB9IGZyb20gJy4vY29udGFjdC9jb250YWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpY3RpbVNhZmV0eVBsYW5Db21wb25lbnQgfSBmcm9tICcuL3NhZmV0eVBsYW4vdmljdGltU2FmZXR5UGxhbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWN0aW1TYWZldHlQbGFuRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zYWZldHlQbGFuL3ZpY3RpbVNhZmV0eVBsYW5EZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmljdGltU2VhcmNoRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vdmljdGltU2VhcmNoL3ZpY3RpbVNlYXJjaEZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBvbGxvTW9kdWxlLCBBUE9MTE9fT1BUSU9OUyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcbiBpbXBvcnQgeyBQaG9uZU1hc2tEaXJlY3RpdmUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3RpdmVzL3Bob25lLW1hc2suZGlyZWN0aXZlJztcclxuIGltcG9ydCB7IFNlcml2ZVByb3ZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zYWZldHlQbGFuL3NlcnZpY2VQcm92aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydENvcmVNb2R1bGUgfSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuXHJcblxyXG5cclxuY29uc3QgQ09NUE9ORU5UUyA9IFtcclxuICBOZ2NTbWFydFZpY3RpbUNvbXBvbmVudCxcclxuICBTbWFydFZpY3RpbURldGFpbENvbXBvbmVudCxcclxuICBTbWFydFZpY3RpbURlbGV0ZUNvbmZpcm1Db21wb25lbnQsXHJcbiAgUGhvbmVNYXNrRGlyZWN0aXZlXHJcbiAgXHJcbl07XHJcblxyXG5jb25zdCBFTlRSWV9DT01QT05FTlRTID0gW1xyXG4gIFNtYXJ0VmljdGltRGVsZXRlQ29uZmlybUNvbXBvbmVudCxcclxuIFxyXG5dO1xyXG5cclxuY29uc3QgQkFTRV9NT0RVTEVTID0gW1xyXG4gIENvbW1vbk1vZHVsZSxcclxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbl07XHJcblxyXG5jb25zdCBDT1JFX01PRFVMRVMgPSBbTmdjU21hcnRDb3JlTW9kdWxlLCBTbWFydEFkZHJlc3NNb2R1bGVdO1xyXG5cclxuY29uc3QgTUFURVJJQUxfTU9EVUxFUyA9IFtcclxuICBNYXRCdXR0b25Nb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlLE1hdFJhZGlvTW9kdWxlLE1hdFNsaWRlck1vZHVsZSxcclxuICBNYXRDYXJkTW9kdWxlLCBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICBNYXRMaXN0TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcbiAgTWF0VG9vbGJhck1vZHVsZSwgTWF0VGFic01vZHVsZSwgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gIE1hdE1lbnVNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcclxuICBNYXREYXRlcGlja2VyTW9kdWxlLCBNYXROYXRpdmVEYXRlTW9kdWxlLE1hdFBhZ2luYXRvck1vZHVsZSxcclxuICBNYXREaWFsb2dNb2R1bGUsIE1hdFNpZGVuYXZNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSxcclxuICBNYXRUYWJsZU1vZHVsZSwgTWF0U29ydE1vZHVsZSwgTWF0R3JpZExpc3RNb2R1bGUsIENka1RhYmxlTW9kdWxlLCBMYXlvdXRNb2R1bGUsXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVFMsXHJcbiAgICBDYXNlTm90ZUNvbXBvbmVudCxcclxuICAgIENvbnRhY3RDb21wb25lbnQsXHJcbiAgICBWaWN0aW1TYWZldHlQbGFuQ29tcG9uZW50LFxyXG4gICAgVmljdGltU2FmZXR5UGxhbkRldGFpbENvbXBvbmVudCxcclxuICAgIFZpY3RpbVNlYXJjaEZvcm1Db21wb25lbnQsXHJcbiAgICBTZXJpdmVQcm92aWRlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgLi4uQkFTRV9NT0RVTEVTLFxyXG4gICAgLi4uTUFURVJJQUxfTU9EVUxFUyxcclxuICAgIC4uLkNPUkVfTU9EVUxFUyxcclxuICAgIENvbW1vbkRpYWxvZ01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVmljdGltUm91dGluZ01vZHVsZSxcclxuICAgIEFwb2xsb01vZHVsZSxcclxuICAgIC8vU2hhcmVkTW9kdWxlXHJcbiAgIFxyXG4gXHJcbiAgXSxcclxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UUywgQXBvbGxvTW9kdWxlXSxcclxuICBlbnRyeUNvbXBvbmVudHM6IFsuLi5FTlRSWV9DT01QT05FTlRTLCBTZXJpdmVQcm92aWRlckNvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbIE5nY1NtYXJ0VmljdGltU2VydmljZSBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ2NTbWFydFZpY3RpbU1vZHVsZSB7IH1cclxuIl19
@@ -0,0 +1,347 @@
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
+ handleError(error) {
55
+ console.error(error);
56
+ return observableThrowError(error.json().error || 'Server error');
57
+ }
58
+ getDrugsTypes() {
59
+ return this.http.get(this.smartLookupServiceUrl + 'DrugTypes', options).pipe(map(res => res));
60
+ }
61
+ getDocketList(offenderId) {
62
+ const queryString = `
63
+ {
64
+ findDockets(input: { where: { offenderId:${offenderId} } }) {
65
+ totalCount
66
+ message
67
+ data {
68
+ docketId
69
+ docketNumber
70
+
71
+ }
72
+ }
73
+ }`;
74
+ return this.http.post(this.serviceApiUrl, { query: queryString }).pipe(map(({ data }) => {
75
+ console.log('dockets for this offender:', data.findDockets.data);
76
+ return data.findDockets.data;
77
+ }));
78
+ }
79
+ getSupportTypes() {
80
+ return this.http.get(this.smartLookupServiceUrl + 'VictimSupportTypes', options).pipe(map(res => res));
81
+ }
82
+ getPrefixes() {
83
+ return this.http.get(this.smartLookupServiceUrl + 'Prefixes', options).pipe(map(res => res));
84
+ }
85
+ getSuffixes() {
86
+ return this.http.get(this.smartLookupServiceUrl + 'Suffixes', options).pipe(map(res => res));
87
+ }
88
+ getRelationshipTypes() {
89
+ return this.http.get(this.smartLookupServiceUrl + 'RelationshipTypes', options).pipe(map(res => res));
90
+ }
91
+ getGenders() {
92
+ return this.http.get(this.smartLookupServiceUrl + 'Genders', options).pipe(map(res => res));
93
+ }
94
+ getWeaponTypes() {
95
+ return this.http.get(this.smartLookupServiceUrl + 'WeaponTypes', options).pipe(map(res => res));
96
+ }
97
+ getFlagOptionYesNoUnknowns() {
98
+ return this.http.get(this.smartLookupServiceUrl + 'FlagOptionYesNoUnknowns', options).pipe(map(res => {
99
+ return res;
100
+ }));
101
+ }
102
+ getContactTypes() {
103
+ return this.http.get(this.smartLookupServiceUrl + 'ContactTypes', options).pipe(map(res => {
104
+ return res;
105
+ }));
106
+ }
107
+ getContactMethods() {
108
+ return this.http.get(this.smartLookupServiceUrl + 'VictimContactMethods', options).pipe(map(res => {
109
+ return res;
110
+ }));
111
+ }
112
+ getContactBys() {
113
+ return this.http.get(this.smartLookupServiceUrl + 'VictimContactPurposes', options).pipe(map(res => {
114
+ return res;
115
+ }));
116
+ }
117
+ getVictimContactPurposes() {
118
+ return this.http.get(this.smartLookupServiceUrl + 'VictimContactPurposes', options).pipe(map(res => {
119
+ return res;
120
+ }));
121
+ }
122
+ getVictimServiceTypes() {
123
+ return this.http.get(this.smartLookupServiceUrl + 'VictimServiceTypes', options).pipe(map(res => {
124
+ return res;
125
+ }));
126
+ }
127
+ getVictimServiceStatus() {
128
+ return this.http.get(this.smartLookupServiceUrl + 'VictimServiceStatus', options).pipe(map(res => {
129
+ return res;
130
+ }));
131
+ }
132
+ getvVictimServiceTypeProgramProviders() {
133
+ return this.http.get(this.smartLookupServiceUrl + 'vVictimServiceTypeProgramProviders', options).pipe(map(res => {
134
+ return res;
135
+ }));
136
+ }
137
+ getVictim(val) {
138
+ return this.http.get(this.smartVictimServiceUrl + 'Victims/' + val, options).pipe(map(res => {
139
+ console.log('victim return data');
140
+ console.log(res);
141
+ return res;
142
+ }));
143
+ }
144
+ getVictimAdvocate(val) {
145
+ return this.http.get(this.smartVictimServiceUrl + 'VictimAdvocates/' + val, options).pipe(map(res => {
146
+ return res;
147
+ }));
148
+ }
149
+ getVictimGuardian(val) {
150
+ return this.http.get(this.smartVictimServiceUrl + 'VictimGuardians/' + val, options).pipe(map(res => {
151
+ return res;
152
+ }));
153
+ }
154
+ postVictims(val) {
155
+ const tempVal = JSON.stringify(val);
156
+ return this.http.post(this.smartVictimServiceUrl + 'Victims', tempVal, options).pipe(map(res => { return res; }));
157
+ }
158
+ putVictims(id, val) {
159
+ const tempVal = JSON.stringify(val);
160
+ return this.http.put(this.smartVictimServiceUrl + 'Victims/' + id, tempVal, options).pipe(map(res => { return res; }));
161
+ }
162
+ putVictimAdvocate(id, val) {
163
+ let body;
164
+ body = JSON.stringify(val);
165
+ return this.http.put(this.smartVictimServiceUrl + 'VictimAdvocates/' + id, body, options).pipe(map(res => { return res; }));
166
+ }
167
+ postVictimAdvocate(id, val) {
168
+ const tempVal = JSON.stringify(val);
169
+ return this.http.post(this.smartVictimServiceUrl + 'VictimAdvocates/' + id, tempVal, options).pipe(map(res => { return res; }));
170
+ }
171
+ putVictimGuardian(id, val) {
172
+ console.log('update victim guardian');
173
+ console.log(val);
174
+ const tempVal = JSON.stringify(val);
175
+ return this.http.put(this.smartVictimServiceUrl + 'VictimGuardians/' + id, tempVal, options).pipe(map(res => { return res; }));
176
+ }
177
+ postVictimGuardian(id, val) {
178
+ const tempVal = JSON.stringify(val);
179
+ return this.http.post(this.smartVictimServiceUrl + 'VictimGuardians/' + id, tempVal, options).pipe(map(res => { return res; }));
180
+ }
181
+ getVictimDrugUse(val) {
182
+ return this.http.get(this.smartVictimServiceUrl + 'VictimDrugUses/' + val, options).pipe(map((res) => {
183
+ return res;
184
+ }));
185
+ }
186
+ putVictimDrugUse(id, val) {
187
+ const tempVal = JSON.stringify(val);
188
+ return this.http.put(this.smartVictimServiceUrl + 'VictimDrugUses/' + id, tempVal, options).pipe(map(res => { return res; }));
189
+ }
190
+ postVictimDrugUse(id, val) {
191
+ const tempVal = JSON.stringify(val);
192
+ return this.http.post(this.smartVictimServiceUrl + 'VictimDrugUses/' + id, tempVal, options).pipe(map(res => { return res; }));
193
+ }
194
+ putVictimWeaponUse(id, val) {
195
+ const tempVal = JSON.stringify(val);
196
+ return this.http.put(this.smartVictimServiceUrl + 'VictimWeaponUses/' + id, tempVal, options).pipe(map(res => { return res; }));
197
+ }
198
+ postVictimWeaponUse(id, val) {
199
+ const tempVal = JSON.stringify(val);
200
+ return this.http.post(this.smartVictimServiceUrl + 'VictimWeaponUses/' + id, tempVal, options).pipe(map(res => { return res; }));
201
+ }
202
+ putVictimSupport(id, val) {
203
+ const tempVal = JSON.stringify(val);
204
+ return this.http.put(this.smartVictimServiceUrl + 'VictimSupports/' + id, tempVal, options).pipe(map(res => { return res; }));
205
+ }
206
+ postVictimSupport(id, val) {
207
+ const tempVal = JSON.stringify(val);
208
+ return this.http.post(this.smartVictimServiceUrl + 'VictimSupports/' + id, tempVal, options).pipe(map(res => { return res; }));
209
+ }
210
+ deleteVictims(val) {
211
+ return this.http.delete(this.smartVictimServiceUrl + 'Victims/' + val, options).pipe(map(res => { return res; }));
212
+ }
213
+ // //==============Victim Serive===================================
214
+ getVictims(offenderId) {
215
+ return this.http.get(this.smartVictimServiceUrl + 'Victims/offender/' + offenderId)
216
+ .pipe(map((res) => {
217
+ return res;
218
+ }), catchError(this.handleError));
219
+ }
220
+ getVictimsByFilter(filter) {
221
+ return this.http
222
+ .post(this.smartVictimServiceUrl + '/Victims', JSON.stringify(filter), { headers: headers })
223
+ .pipe(map((res) => {
224
+ return res;
225
+ }), catchError(this.handleError));
226
+ }
227
+ getVictimListByFilter(filter) {
228
+ console.log('filer in service');
229
+ console.log(filter);
230
+ return this.http
231
+ .post(this.smartVictimServiceUrl + 'vVictims/Filter', JSON.stringify(filter), options)
232
+ .pipe();
233
+ }
234
+ getCasetNotes(victimId) {
235
+ return this.http.get(this.smartVictimServiceUrl + 'VictimCaseNotes/victim/' + victimId)
236
+ .pipe(map((res) => {
237
+ return res;
238
+ }), catchError(this.handleError));
239
+ }
240
+ addCaseNote(caseNote) {
241
+ let body;
242
+ body = JSON.stringify(caseNote);
243
+ return this.http
244
+ .post(this.smartVictimServiceUrl + 'VictimCaseNotes/', body, options);
245
+ }
246
+ updateCaseNote(caseNote) {
247
+ let body;
248
+ body = JSON.stringify(caseNote);
249
+ return this.http
250
+ .put(this.smartVictimServiceUrl + 'VictimCaseNotes/' + caseNote.victimCaseNoteId, body, options);
251
+ }
252
+ deleteCaseNote(id, staffId) {
253
+ return this.http.delete(`${this.smartVictimServiceUrl}VictimCaseNotes/${id}?staffId=${staffId}`);
254
+ }
255
+ getContacts(victimId) {
256
+ return this.http.get(this.smartVictimServiceUrl + 'VictimContacts/victim/' + victimId)
257
+ .pipe(map((res) => {
258
+ return res;
259
+ }), catchError(this.handleError));
260
+ }
261
+ addContact(contact) {
262
+ let body;
263
+ body = JSON.stringify(contact);
264
+ return this.http
265
+ .post(this.smartVictimServiceUrl + 'VictimContacts/', body, options);
266
+ }
267
+ updateContact(contact) {
268
+ let body;
269
+ body = JSON.stringify(contact);
270
+ return this.http
271
+ .put(this.smartVictimServiceUrl + 'VictimContacts/' + contact.victimContactId, body, options);
272
+ }
273
+ getSafetyPlans(victimId) {
274
+ return this.http.get(this.smartVictimServiceUrl + 'vVictimServiceLists/victim/' + victimId)
275
+ .pipe(map((res) => {
276
+ return res;
277
+ }), catchError(this.handleError));
278
+ }
279
+ getVictimServices(victimServiceId) {
280
+ return this.http.get(this.smartVictimServiceUrl + 'vVictimServiceLists/victimServiceId/' + victimServiceId)
281
+ .pipe(map((res) => {
282
+ return res;
283
+ }), catchError(this.handleError));
284
+ }
285
+ getVictimServiceDetail(victimServiceId) {
286
+ return this.http.get(this.smartVictimServiceUrl + 'VictimServiceDetails/' + victimServiceId)
287
+ .pipe(map((res) => {
288
+ return res;
289
+ }), catchError(this.handleError));
290
+ }
291
+ addSafetyPlan(victimSafetyPlan) {
292
+ let body;
293
+ body = JSON.stringify(victimSafetyPlan);
294
+ return this.http
295
+ .post(this.smartVictimServiceUrl + 'VictimServices/', body, options)
296
+ .pipe();
297
+ }
298
+ updateSafetyPlan(victimSafetyPlan) {
299
+ let body;
300
+ body = JSON.stringify(victimSafetyPlan);
301
+ return this.http
302
+ .put(this.smartVictimServiceUrl + 'VictimServices/' + victimSafetyPlan.victimServiceId, body, options);
303
+ }
304
+ addVictimServiceStatus(victimServiceStatusHistory) {
305
+ let body;
306
+ body = JSON.stringify(victimServiceStatusHistory);
307
+ return this.http
308
+ .post(this.smartVictimServiceUrl + 'VictimServiceStatusHistories/', body, options);
309
+ }
310
+ getServiceStatusHistories(victimServiceId) {
311
+ return this.http.get(this.smartVictimServiceUrl + 'VictimServiceStatusHistories/victimServiceId/' + victimServiceId)
312
+ .pipe(map((res) => {
313
+ return res;
314
+ }), catchError(this.handleError));
315
+ }
316
+ deleteSafetyPlan(victimServiceId, staffId) {
317
+ return this.http.delete(`${this.smartVictimServiceUrl}VictimServices/${victimServiceId}?staffId=${staffId}`);
318
+ }
319
+ addPlanProvider(victimServiceDetail) {
320
+ let body;
321
+ body = JSON.stringify(victimServiceDetail);
322
+ return this.http
323
+ .post(this.smartVictimServiceUrl + 'VictimServiceDetails/', body, options)
324
+ .pipe();
325
+ }
326
+ deleteProvider(victimProgramProviderId, staffId) {
327
+ return this.http.delete(`${this.smartVictimServiceUrl}VictimServiceDetails/${victimProgramProviderId}?staffId=${staffId}`);
328
+ }
329
+ }
330
+ /** @nocollapse */ /** @nocollapse */ NgcSmartVictimService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", 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 });
331
+ /** @nocollapse */ /** @nocollapse */ NgcSmartVictimService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgcSmartVictimService, providedIn: 'root' });
332
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgcSmartVictimService, decorators: [{
333
+ type: Injectable,
334
+ args: [{
335
+ providedIn: 'root'
336
+ }]
337
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
338
+ type: Inject,
339
+ args: [SMART_OFFENDER_SERVICE_URL]
340
+ }] }, { type: undefined, decorators: [{
341
+ type: Inject,
342
+ args: [SMART_LOOKUP_SERVICE_URL]
343
+ }] }, { type: undefined, decorators: [{
344
+ type: Inject,
345
+ args: [SMART_VICTIM_SERVICE_URL]
346
+ }] }, { type: i2.Apollo }]; } });
347
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc21hcnQtdmljdGltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUMsd0JBQXdCLEVBRVcsTUFBTSxzQkFBc0IsQ0FBQztBQUM5SCxPQUFPLEVBQWMsVUFBVSxJQUFJLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUMsVUFBVSxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR3hDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztBQUN4RSxNQUFNLE9BQU8sR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUtyQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW9CLElBQWdCLEVBQ1UsdUJBQStCLEVBQ2pDLHFCQUE2QixFQUM3QixxQkFBNkIsRUFDL0QsTUFBYztRQUpKLFNBQUksR0FBSixJQUFJLENBQVk7UUFDVSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQVE7UUFDakMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFRO1FBQzdCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUTtRQUMvRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTGhCLGtCQUFhLEdBQUksc0RBQXNELENBQUM7SUFPMUUsQ0FBQztJQUVQLHlDQUF5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T0FBTyxDQUFDO2FBQ3pFLElBQUksRUFBRSxDQUFDO0lBRVosQ0FBQztJQUVILGNBQWMsQ0FBQyx1QkFBK0IsRUFBRSxPQUFlO1FBQzdELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMscUJBQXFCLHdCQUF3Qix1QkFBdUIsWUFBWSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTdILENBQUM7O3dKQTNoQlkscUJBQXFCLDRDQUd0QiwwQkFBMEIsYUFDMUIsd0JBQXdCLGFBQ3hCLHdCQUF3Qjs0SkFMdkIscUJBQXFCLGNBRnBCLE1BQU07MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBSUksTUFBTTsyQkFBQywwQkFBMEI7OzBCQUNqQyxNQUFNOzJCQUFDLHdCQUF3Qjs7MEJBQy9CLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCxIdHRwUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU01BUlRfTE9PS1VQX1NFUlZJQ0VfVVJMLCBTTUFSVF9PRkZFTkRFUl9TRVJWSUNFX1VSTCxTTUFSVF9WSUNUSU1fU0VSVklDRV9VUkwsXHJcbiAgICBWaWN0aW1MaXN0RmlsdGVyLFZpY3RpbURydWdVc2UsVmljdGltLFZpY3RpbVNhZmV0eVBsYW4sXHJcbiAgIENhc2VOb3RlLENvbnRhY3QsVmljdGltU2VydmljZURldGFpbCxWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeSxWaWN0aW1BZHZvY2F0ZSxWaWN0aW1HdWFyZGlhbn0gZnJvbSAnLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIGFzIG9ic2VydmFibGVUaHJvd0Vycm9yfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLGNhdGNoRXJyb3IsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5cclxuXHJcbmNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xyXG5jb25zdCBvcHRpb25zID0geyBoZWFkZXJzOiBoZWFkZXJzIH07XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ2NTbWFydFZpY3RpbVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgc2VydmljZUFwaVVybCA9ICAnaHR0cHM6Ly9zbWFydC1zZXJ2aWNlLXRlc3QuYXp1cmV3ZWJzaXRlcy5uZXQvZ3JhcGhxbCc7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgQEluamVjdChTTUFSVF9PRkZFTkRFUl9TRVJWSUNFX1VSTCkgcHJpdmF0ZSBzbWFydE9mZmVuZGVyU2VydmljZVVybDogc3RyaW5nLFxyXG4gICAgQEluamVjdChTTUFSVF9MT09LVVBfU0VSVklDRV9VUkwpIHByaXZhdGUgc21hcnRMb29rdXBTZXJ2aWNlVXJsOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KFNNQVJUX1ZJQ1RJTV9TRVJWSUNFX1VSTCkgcHJpdmF0ZSBzbWFydFZpY3RpbVNlcnZpY2VVcmw6IHN0cmluZyxcclxuICAgIHByaXZhdGUgYXBvbGxvOiBBcG9sbG9cclxuXHJcbiAgICApIHsgfVxyXG5cclxuICAvLyBnZXRWaWN0aW1JbnN1cmFuY2VzKG9mZmVuZGVySWQ6IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlcy8/b2ZmZW5kZXJJZD0nICsgb2ZmZW5kZXJJZCkucGlwZSgpO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gZ2V0VmljdGltSW5zdXJhbmNlKGlkOiBhbnkpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRPZmZlbmRlclNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZXMvP2lkPScgKyBpZCkucGlwZSgpO1xyXG4gIC8vIH0gXHJcblxyXG4gIC8vIHBvc3RWaWN0aW1JbnN1cmFuY2UodmFsOiBhbnkpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0T2ZmZW5kZXJTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VzJywgdmFsKS5waXBlKCk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwdXRWaWN0aW1JbnN1cmFuY2UoaWQ6IGFueSwgdmFsOiBhbnkpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRPZmZlbmRlclNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZXMvP2lkPScgKyBpZCwgdmFsKS5waXBlKCk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBkZWxldGVWaWN0aW1JbnN1cmFuY2UoaWQ6IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlcy8/aWQ9JyArIGlkKS5waXBlKCk7XHJcbiAgLy8gfVxyXG4gIFxyXG4gIC8vIGdldFZpY3RpbUluc3VyYW5jZVR5cGVzKCkge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlVHlwZXMnKS5waXBlKCk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXRWaWN0aW1JbnN1cmFuY2VQb2xpY3lIb2xkZXJzKCkge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlUG9saWN5SG9sZGVycycpLnBpcGUoKTtcclxuICAvLyB9XHJcblxyXG4vLyAgIGdldFZpY3RpbUluc3VyYW5jZVN3aXRjaFJlYXNvbnMoKSB7XHJcbi8vICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VTd2l0Y2hSZWFzb25zJykucGlwZSgpO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgZ2V0VmljdGltSW5zdXJhbmNlUHJvdmlkZXJzKCkge1xyXG4vLyAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlUHJvdmlkZXInKS5waXBlKCk7XHJcbi8vICAgfVxyXG5cclxuLy8gICBnZXRWaWN0aW1JbnN1cmFuY2VQcm92aWRlcihpZCkge1xyXG4vLyAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZVByb3ZpZGVycy8nICsgaWQpLnBpcGUoKTtcclxuLy8gfVxyXG5cclxuLy8gICBwb3N0UHJvdmlkZXJJbmZvcm1hdGlvbih2YWw6IGFueSkge1xyXG4vLyAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZVByb3ZpZGVycycsIHZhbCkucGlwZSgpO1xyXG4vLyAgIH1cclxuXHJcblxyXG5cclxucHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KSB7XHJcbiAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKGVycm9yLmpzb24oKS5lcnJvciB8fCAnU2VydmVyIGVycm9yJyk7XHJcbn1cclxuXHJcbmdldERydWdzVHlwZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ0RydWdUeXBlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0RG9ja2V0TGlzdChvZmZlbmRlcklkOiBudW1iZXIpIHtcclxuICBjb25zdCBxdWVyeVN0cmluZyA9IGBcclxuICB7XHJcbiAgICBmaW5kRG9ja2V0cyhpbnB1dDogeyB3aGVyZTogeyBvZmZlbmRlcklkOiR7b2ZmZW5kZXJJZH0gfSB9KSB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgICAgbWVzc2FnZVxyXG4gICAgICBkYXRhIHtcclxuICAgICAgICBkb2NrZXRJZFxyXG4gICAgICAgIGRvY2tldE51bWJlclxyXG4gICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1gO1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLnNlcnZpY2VBcGlVcmwsIHsgcXVlcnk6IHF1ZXJ5U3RyaW5nIH0pLnBpcGUoXHJcbiAgICBtYXAoKHsgZGF0YSB9KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdkb2NrZXRzIGZvciB0aGlzIG9mZmVuZGVyOicsIGRhdGEuZmluZERvY2tldHMuZGF0YSk7XHJcbiAgICAgIHJldHVybiBkYXRhLmZpbmREb2NrZXRzLmRhdGE7XHJcbiAgICB9KSk7XHJcblxyXG5cclxufVxyXG5cclxuZ2V0U3VwcG9ydFR5cGVzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbVN1cHBvcnRUeXBlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0UHJlZml4ZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ1ByZWZpeGVzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4gcmVzKVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRTdWZmaXhlcygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCAgKyAnU3VmZml4ZXMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiByZXMpXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldFJlbGF0aW9uc2hpcFR5cGVzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICArICdSZWxhdGlvbnNoaXBUeXBlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0R2VuZGVycygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCAgKyAnR2VuZGVycycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0V2VhcG9uVHlwZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ1dlYXBvblR5cGVzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4gcmVzKVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRGbGFnT3B0aW9uWWVzTm9Vbmtub3ducygpIHtcclxuIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ0ZsYWdPcHRpb25ZZXNOb1Vua25vd25zJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgIH0pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldENvbnRhY3RUeXBlcygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICdDb250YWN0VHlwZXMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgICAoXHJcbiAgICAgICBtYXAocmVzID0+IHsgXHJcbiAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgIH0pXHJcbiAgICAgICApO1xyXG4gfVxyXG4gZ2V0Q29udGFjdE1ldGhvZHMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdE1ldGhvZHMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgICAoXHJcbiAgICAgICBtYXAocmVzID0+IHsgXHJcbiAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgIH0pXHJcbiAgICAgICApO1xyXG4gfVxyXG4gZ2V0Q29udGFjdEJ5cygpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RQdXJwb3NlcycsIG9wdGlvbnMpLnBpcGVcclxuICAoXHJcbiAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICByZXR1cm4gcmVzO1xyXG4gIH0pXHJcbiAgKTtcclxuXHJcbiB9XHJcblxyXG5nZXRWaWN0aW1Db250YWN0UHVycG9zZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdFB1cnBvc2VzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAgKFxyXG4gICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICB9KVxyXG4gICAgICAgKTtcclxuIH1cclxuXHJcbiBnZXRWaWN0aW1TZXJ2aWNlVHlwZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZVR5cGVzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAgKFxyXG4gICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICB9KVxyXG4gICAgICAgKTtcclxuIH1cclxuIGdldFZpY3RpbVNlcnZpY2VTdGF0dXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZVN0YXR1cycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgIChcclxuICAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgfSlcclxuICAgICAgICk7XHJcbiB9XHJcblxyXG4gZ2V0dlZpY3RpbVNlcnZpY2VUeXBlUHJvZ3JhbVByb3ZpZGVycygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICd2VmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAgKFxyXG4gICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICB9KVxyXG4gICAgICAgKTtcclxuIH1cclxuXHJcblxyXG5nZXRWaWN0aW0odmFsOiBhbnkpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1zLycgKyB2YWwsIG9wdGlvbnMpLnBpcGVcclxuICAoXHJcbiAgICBtYXAocmVzID0+IHsgXHJcbiAgICAgIGNvbnNvbGUubG9nKCd2aWN0aW0gcmV0dXJuIGRhdGEnKTtcclxuICAgICAgY29uc29sZS5sb2cocmVzKTsgIFxyXG4gICAgICByZXR1cm4gcmVzO1xyXG5cclxuICAgIH0pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldFZpY3RpbUFkdm9jYXRlKHZhbDogYW55KSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQWR2b2NhdGVzLycgKyB2YWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG5cclxuICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRWaWN0aW1HdWFyZGlhbih2YWw6IGFueSkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUd1YXJkaWFucy8nICsgdmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuXHJcbiAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgIHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucG9zdFZpY3RpbXModmFsOiBhbnkpIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwrICdWaWN0aW1zJywgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnB1dFZpY3RpbXMoaWQ6IGFueSwgdmFsOiBhbnkpIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1zLycgKyBpZCwgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnB1dFZpY3RpbUFkdm9jYXRlKGlkOiBhbnksIHZhbDogVmljdGltQWR2b2NhdGUpIHtcclxuICBsZXQgYm9keTogc3RyaW5nO1xyXG4gIGJvZHkgPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xyXG4gIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUFkdm9jYXRlcy8nICsgaWQsIGJvZHksIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG5cclxuXHJcblxyXG5cclxufVxyXG5cclxucG9zdFZpY3RpbUFkdm9jYXRlKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUFkdm9jYXRlcy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5wdXRWaWN0aW1HdWFyZGlhbihpZDogYW55LCB2YWw6IGFueSkge1xyXG4gIGNvbnNvbGUubG9nKCd1cGRhdGUgdmljdGltIGd1YXJkaWFuJyk7XHJcbiAgY29uc29sZS5sb2codmFsKTtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1HdWFyZGlhbnMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucG9zdFZpY3RpbUd1YXJkaWFuKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUd1YXJkaWFucy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRWaWN0aW1EcnVnVXNlKHZhbDogYW55KTogT2JzZXJ2YWJsZTxWaWN0aW1EcnVnVXNlW10+e1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbURydWdVc2VzLycgKyB2YWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAoKHJlczogVmljdGltRHJ1Z1VzZVtdKSA9PiB7IFxyXG4gICAgICAgICAgICByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnB1dFZpY3RpbURydWdVc2UoaWQ6IGFueSwgdmFsOiBWaWN0aW1EcnVnVXNlW10pIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltRHJ1Z1VzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucG9zdFZpY3RpbURydWdVc2UoaWQ6IGFueSwgdmFsOiBhbnkpIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltRHJ1Z1VzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucHV0VmljdGltV2VhcG9uVXNlKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltV2VhcG9uVXNlcy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5wb3N0VmljdGltV2VhcG9uVXNlKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVdlYXBvblVzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5wdXRWaWN0aW1TdXBwb3J0KGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU3VwcG9ydHMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucG9zdFZpY3RpbVN1cHBvcnQoaWQ6IGFueSwgdmFsOiBhbnkpIHtcclxuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU3VwcG9ydHMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxuZGVsZXRlVmljdGltcyh2YWw6IGFueSkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsKyAnVmljdGltcy8nICsgdmFsLCBvcHRpb25zKS5waXBlXHJcbiAgKFxyXG4gIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuLy8gLy89PT09PT09PT09PT09PVZpY3RpbSBTZXJpdmU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuZ2V0VmljdGltcyhvZmZlbmRlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlIDxWaWN0aW1bXT4ge1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCAgKyAnVmljdGltcy9vZmZlbmRlci8nICsgb2ZmZW5kZXJJZClcclxuICAucGlwZShtYXAoKHJlczogVmljdGltW10pID0+IHtcclxuICAgIFxyXG4gICAgICByZXR1cm4gcmVzO1xyXG4gIH0pXHJcbiAgLGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG59XHJcblxyXG5nZXRWaWN0aW1zQnlGaWx0ZXIoZmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyKTogT2JzZXJ2YWJsZTxWaWN0aW1bXT57XHJcbiAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnL1ZpY3RpbXMnLCBKU09OLnN0cmluZ2lmeShmaWx0ZXIpLCB7IGhlYWRlcnM6IGhlYWRlcnMgfSlcclxuICAgICAgICAgIC5waXBlKG1hcCgocmVzOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG59XHJcblxyXG5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIoZmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyKSBcclxue1xyXG4gIGNvbnNvbGUubG9nKCdmaWxlciBpbiBzZXJ2aWNlJyk7XHJcbiAgY29uc29sZS5sb2coZmlsdGVyKTtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ3ZWaWN0aW1zL0ZpbHRlcicsIEpTT04uc3RyaW5naWZ5KGZpbHRlciksIG9wdGlvbnMpXHJcbiAgLnBpcGUoKTtcclxuXHJcbn1cclxuXHJcblxyXG5nZXRDYXNldE5vdGVzKHZpY3RpbUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlIDxDYXNlTm90ZVtdPiB7XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNhc2VOb3Rlcy92aWN0aW0vJyArIHZpY3RpbUlkKVxyXG4gIC5waXBlKG1hcCgocmVzOiBDYXNlTm90ZVtdKSA9PiB7XHJcbiAgICAgIHJldHVybiByZXM7XHJcbiAgfSlcclxuICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XHJcbiBcclxuXHJcbn1cclxuYWRkQ2FzZU5vdGUoY2FzZU5vdGU6IENhc2VOb3RlKSB7XHJcbiAgbGV0IGJvZHk6IHN0cmluZztcclxuICAgICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGNhc2VOb3RlKTtcclxuICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQ2FzZU5vdGVzLycsIGJvZHksIG9wdGlvbnMpO1xyXG4gXHJcbiB9XHJcblxyXG4gXHJcbnVwZGF0ZUNhc2VOb3RlKGNhc2VOb3RlOiBDYXNlTm90ZSl7XHJcblxyXG4gIGxldCBib2R5OiBzdHJpbmc7XHJcbiAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGNhc2VOb3RlKTtcclxuICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQ2FzZU5vdGVzLycgKyBjYXNlTm90ZS52aWN0aW1DYXNlTm90ZUlkLCBib2R5LCBvcHRpb25zKVxyXG5cclxuICAgICAgO1xyXG4gfVxyXG5cclxuZGVsZXRlQ2FzZU5vdGUoaWQ6IG51bWJlciwgc3RhZmZJZDogbnVtYmVyKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsfVZpY3RpbUNhc2VOb3Rlcy8ke2lkfT9zdGFmZklkPSR7c3RhZmZJZH1gKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRhY3RzKHZpY3RpbUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlIDxDb250YWN0W10+IHtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1Db250YWN0cy92aWN0aW0vJyArIHZpY3RpbUlkKVxyXG4gICAgLnBpcGUobWFwKChyZXM6IENvbnRhY3RbXSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXM7XHJcbiAgICB9KVxyXG4gICAgLGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG4gIFxyXG4gIH1cclxuICBhZGRDb250YWN0KGNvbnRhY3Q6IENvbnRhY3QpIHtcclxuICAgIGxldCBib2R5OiBzdHJpbmc7XHJcbiAgICAgICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGNvbnRhY3QpO1xyXG4gICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdHMvJywgYm9keSwgb3B0aW9ucyk7XHJcbiAgIFxyXG4gICB9XHJcbiAgXHJcbiAgIFxyXG4gIHVwZGF0ZUNvbnRhY3QoY29udGFjdDogQ29udGFjdCl7XHJcbiAgXHJcbiAgICBsZXQgYm9keTogc3RyaW5nO1xyXG4gICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGNvbnRhY3QpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgIC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdHMvJyArIGNvbnRhY3QudmljdGltQ29udGFjdElkLCBib2R5LCBvcHRpb25zKVxyXG4gIFxyXG4gICAgICAgIDtcclxuICAgfVxyXG4gIFxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbmdldFNhZmV0eVBsYW5zKHZpY3RpbUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlIDxWaWN0aW1TYWZldHlQbGFuW10+IHtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ3ZWaWN0aW1TZXJ2aWNlTGlzdHMvdmljdGltLycgKyB2aWN0aW1JZClcclxuICAgICAgLnBpcGUobWFwKChyZXM6IFZpY3RpbVNhZmV0eVBsYW5bXSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgfSlcclxuICAgICAgLGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG4gIH1cclxuXHJcbmdldFZpY3RpbVNlcnZpY2VzKHZpY3RpbVNlcnZpY2VJZDogbnVtYmVyKTogT2JzZXJ2YWJsZSA8VmljdGltU2FmZXR5UGxhbltdPiB7XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICd2VmljdGltU2VydmljZUxpc3RzL3ZpY3RpbVNlcnZpY2VJZC8nICsgdmljdGltU2VydmljZUlkKVxyXG4gICAgICAucGlwZShtYXAoKHJlczogVmljdGltU2FmZXR5UGxhbltdKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gIHJlcztcclxuICAgICAgfSlcclxuICAgICAgLGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG4gIFxyXG4gIH1cclxuXHJcbmdldFZpY3RpbVNlcnZpY2VEZXRhaWwodmljdGltU2VydmljZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlIDxWaWN0aW1TZXJ2aWNlRGV0YWlsW10+IHtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZURldGFpbHMvJyArIHZpY3RpbVNlcnZpY2VJZClcclxuICAucGlwZShtYXAoKHJlczogVmljdGltU2VydmljZURldGFpbFtdKSA9PiB7XHJcbiAgXHJcbiAgICAgIHJldHVybiByZXM7XHJcbiAgfSlcclxuICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XHJcblxyXG59XHJcbmFkZFNhZmV0eVBsYW4odmljdGltU2FmZXR5UGxhbjogVmljdGltU2FmZXR5UGxhbikge1xyXG5cclxuICBsZXQgYm9keTogc3RyaW5nO1xyXG4gICAgICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KHZpY3RpbVNhZmV0eVBsYW4pO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZXMvJywgYm9keSwgb3B0aW9ucylcclxuICAgICAgICAgIC5waXBlKCk7XHJcbiAgXHJcbiAgfVxyXG51cGRhdGVTYWZldHlQbGFuKHZpY3RpbVNhZmV0eVBsYW46IFZpY3RpbVNhZmV0eVBsYW4pe1xyXG5cclxuICAgICAgbGV0IGJvZHk6IHN0cmluZztcclxuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KHZpY3RpbVNhZmV0eVBsYW4pO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VzLycgKyB2aWN0aW1TYWZldHlQbGFuLnZpY3RpbVNlcnZpY2VJZCwgYm9keSwgb3B0aW9ucylcclxuXHJcbiAgICAgICAgICA7XHJcbiAgICAgfVxyXG5hZGRWaWN0aW1TZXJ2aWNlU3RhdHVzKHZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3J5OiBWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeSl7XHJcbiAgbGV0IGJvZHk6IHN0cmluZztcclxuICBib2R5ID0gSlNPTi5zdHJpbmdpZnkodmljdGltU2VydmljZVN0YXR1c0hpc3RvcnkpO1xyXG4gIHJldHVybiB0aGlzLmh0dHBcclxuICAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yaWVzLycsIGJvZHksIG9wdGlvbnMpO1xyXG5cclxuICB9XHJcblxyXG5nZXRTZXJ2aWNlU3RhdHVzSGlzdG9yaWVzKHZpY3RpbVNlcnZpY2VJZDogbnVtYmVyKXtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yaWVzL3ZpY3RpbVNlcnZpY2VJZC8nICsgdmljdGltU2VydmljZUlkKVxyXG4gIC5waXBlKFxyXG4gICAgICBtYXAoKHJlczogVmljdGltU2VydmljZVN0YXR1c0hpc3RvcnlbXSkgPT4ge1xyXG4gIFxyXG4gICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgfSlcclxuICAgICAgLGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICApO1xyXG59XHJcblxyXG5kZWxldGVTYWZldHlQbGFuKHZpY3RpbVNlcnZpY2VJZDogbnVtYmVyLCBzdGFmZklkOiBudW1iZXIpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybH1WaWN0aW1TZXJ2aWNlcy8ke3ZpY3RpbVNlcnZpY2VJZH0/c3RhZmZJZD0ke3N0YWZmSWR9YCk7XHJcblxyXG4gIH1cclxuYWRkUGxhblByb3ZpZGVyKHZpY3RpbVNlcnZpY2VEZXRhaWw6VmljdGltU2VydmljZURldGFpbCl7XHJcbiAgICAgIGxldCBib2R5OiBzdHJpbmc7XHJcbiAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeSh2aWN0aW1TZXJ2aWNlRGV0YWlsKTtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlRGV0YWlscy8nLCBib2R5LCBvcHRpb25zKVxyXG4gICAgICAucGlwZSgpO1xyXG5cclxuICB9XHJcblxyXG5kZWxldGVQcm92aWRlcih2aWN0aW1Qcm9ncmFtUHJvdmlkZXJJZDogc3RyaW5nLCBzdGFmZklkOiBudW1iZXIpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsfVZpY3RpbVNlcnZpY2VEZXRhaWxzLyR7dmljdGltUHJvZ3JhbVByb3ZpZGVySWR9P3N0YWZmSWQ9JHtzdGFmZklkfWApO1xyXG5cclxufVxyXG5cclxufVxyXG4iXX0=