@csmart/ngc-smart-victim 0.1.7 → 1.13.2

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 +53 -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 +3163 -0
  27. package/fesm2015/csmart-ngc-smart-victim.mjs.map +1 -0
  28. package/fesm2020/csmart-ngc-smart-victim.mjs +3152 -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 +10 -13
  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 -6434
  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 -1410
  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 -1502
  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 -5690
  105. package/fesm2015/csmart-ngc-smart-victim.js.map +0 -1
  106. package/fesm5/csmart-ngc-smart-victim.js +0 -6211
  107. package/fesm5/csmart-ngc-smart-victim.js.map +0 -1
@@ -1,476 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/smart-victim.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { DOCUMENT } from '@angular/common';
7
- import { Component, ViewChild, Input, Inject } from '@angular/core';
8
- import { ActivatedRoute, Router } from '@angular/router';
9
- import { MatTableDataSource } from '@angular/material/table';
10
- import { MatPaginator, MatSort, MatSnackBar } from '@angular/material';
11
- import { MatDialog } from '@angular/material';
12
- import { AccessType, } from "@csmart/ngc-smart-core";
13
- import { NgcSmartVictimService } from './smart-victim.service';
14
- import { VictimListFilter, SMART_WARRANT_URL } from './smart-victim.model';
15
- //import { SmartVictimDetailComponent } from './smart-victim-detail/smart-victim-detail.component';
16
- import { IntakeStep, IntakeServicesComponent, } from './intake.service';
17
- export class NgcSmartVictimComponent {
18
- /**
19
- * @param {?} dialog
20
- * @param {?} victimService
21
- * @param {?} router
22
- * @param {?} route
23
- * @param {?} snackBar
24
- * @param {?} intakeService
25
- * @param {?} smartWarrantUrl
26
- * @param {?} document
27
- */
28
- constructor(dialog, victimService, router, route, snackBar, intakeService, smartWarrantUrl, document) {
29
- this.dialog = dialog;
30
- this.victimService = victimService;
31
- this.router = router;
32
- this.route = route;
33
- this.snackBar = snackBar;
34
- this.intakeService = intakeService;
35
- this.smartWarrantUrl = smartWarrantUrl;
36
- this.document = document;
37
- this.appModuleId = '';
38
- this.activatedRoute = null;
39
- this.victims = [];
40
- this.victimDetail = (/** @type {?} */ ({}));
41
- this.showDetail = false;
42
- this.victimListFilter = new VictimListFilter();
43
- this.victimListDataSource = new MatTableDataSource();
44
- this.doSpin = false;
45
- this.showListFlag = false;
46
- this.msg = "";
47
- this.isIntake = false;
48
- }
49
- // private onChange(filter: VictimListFilter) {
50
- // console.log('filter in onchange');
51
- // console.log(filter);
52
- // this.getVictimList(filter);
53
- // }
54
- /**
55
- * @param {?} filterValue
56
- * @return {?}
57
- */
58
- applyFilter(filterValue) {
59
- this.victimListDataSource.filter = filterValue.trim().toLowerCase();
60
- }
61
- /**
62
- * @return {?}
63
- */
64
- addRecord() {
65
- this.showDetail = true;
66
- this.showAdd = false;
67
- this.victimDetail = null;
68
- this.showListFlag = false;
69
- }
70
- /**
71
- * @param {?} record
72
- * @return {?}
73
- */
74
- editVictimDetail(record) {
75
- console.log("victim edit record");
76
- console.log(record);
77
- console.log(record.victimId);
78
- this.victimDetail = record;
79
- this.showDetail = true;
80
- this.showAdd = false;
81
- this.showListFlag = false;
82
- }
83
- /**
84
- * @param {?} detail
85
- * @return {?}
86
- */
87
- save(detail) {
88
- this.showDetail = false;
89
- this.showAdd = true;
90
- this.showListFlag = true;
91
- }
92
- /**
93
- * @return {?}
94
- */
95
- cancel() {
96
- this.showDetail = false;
97
- this.victimDetail = (/** @type {?} */ ({}));
98
- }
99
- /**
100
- * @return {?}
101
- */
102
- ngAfterViewInit() {
103
- this.victimListDataSource.paginator = this.paginator;
104
- this.victimListDataSource.sort = this.sort;
105
- }
106
- /**
107
- * @return {?}
108
- */
109
- ngOnChanges() {
110
- this.updateAccessControlConfig = {
111
- accessType: AccessType.UPDATE,
112
- appModuleId: this.appModuleId,
113
- roleId: null,
114
- route: this.activatedRoute.snapshot,
115
- };
116
- this.createAccessControlConfig = {
117
- accessType: AccessType.CREATE,
118
- appModuleId: this.appModuleId,
119
- roleId: null,
120
- route: this.activatedRoute.snapshot,
121
- };
122
- this.deleteAccessControlConfig = {
123
- accessType: AccessType.DELETE,
124
- appModuleId: this.appModuleId,
125
- roleId: null,
126
- route: this.activatedRoute.snapshot,
127
- };
128
- }
129
- /**
130
- * @return {?}
131
- */
132
- ngOnInit() {
133
- /** @type {?} */
134
- var data = this.route.snapshot.data;
135
- /** @type {?} */
136
- var myPath = this.router.url.slice(-10);
137
- console.log("smart-victim ngOnInit");
138
- console.log(this.intakeFlag);
139
- console.log(myPath);
140
- if (this.intakeFlag || myPath == "victimHome") {
141
- this.isIntake = true;
142
- }
143
- this.displayedColumns = ["lastName", "firstName"];
144
- if (this.showRelationshipColumn == true ||
145
- myPath == "victimList" ||
146
- myPath == "victimHome") {
147
- this.displayedColumns.push("relationship");
148
- }
149
- if (this.showOffenderNameColumn == true) {
150
- this.displayedColumns.push("offenderName");
151
- }
152
- if (this.showOffenderPhoneColumn == true ||
153
- myPath == "victimList" ||
154
- myPath == "victimHome") {
155
- this.displayedColumns.push("homePhone");
156
- }
157
- this.displayedColumns.push("victimId");
158
- if (this.showSearchForm == true) {
159
- this.showListFlag = false;
160
- }
161
- console.log("this.showSearchForm");
162
- console.log(this.showSearchForm);
163
- console.log("myPath");
164
- console.log(myPath);
165
- if (this.showSearchForm == false ||
166
- myPath == "victimList" ||
167
- myPath == "victimHome") {
168
- /** @type {?} */
169
- var myOffenderId;
170
- if (this.offenderId) {
171
- myOffenderId = this.offenderId;
172
- }
173
- else {
174
- console.log("back from previous page");
175
- this.showAdd = true;
176
- this.showRelationshipColumn = true;
177
- //this.displayedColumns.push("relationship");
178
- this.showOffenderPhoneColumn = true;
179
- // this.displayedColumns.push("homePhone");
180
- this.accessByModule = "true";
181
- this.showEdit = "true";
182
- this.showCaseNote = "true";
183
- this.showSafetyPlan = "true";
184
- myOffenderId = data.selectedOffender.offenderId;
185
- }
186
- /** @type {?} */
187
- const victimListFilter = {
188
- offenderId: myOffenderId,
189
- lastName: null,
190
- firstName: null,
191
- pdid: null,
192
- birthDate: null,
193
- };
194
- console.log("victimListFilter in smar-victim componenet");
195
- console.log(victimListFilter);
196
- this.victimService
197
- .getVictimListByFilter(victimListFilter)
198
- .subscribe((/**
199
- * @param {?} data
200
- * @return {?}
201
- */
202
- (data) => {
203
- this.victimListDataSource.data = data;
204
- this.victims = data;
205
- data.forEach((/**
206
- * @param {?} d
207
- * @return {?}
208
- */
209
- (d) => {
210
- if (d.homePhone == null || d.homePhone == "") {
211
- d.homePhone = d.cellPhone;
212
- }
213
- if (d.homePhone == null || d.homePhone == "") {
214
- d.homePhone = d.workPhone;
215
- }
216
- }));
217
- console.log("victim data at line 179");
218
- console.log(this.victims);
219
- console.log("showListFlag");
220
- console.log(this.showListFlag);
221
- this.showListFlag = true;
222
- if (data.length == 0) {
223
- this.msg = "No Record Found!";
224
- }
225
- }));
226
- }
227
- else {
228
- console.log("find filter");
229
- console.log(this.victimListFilter);
230
- if (this.showListFlag === true) {
231
- if (this.victimListFilter != null) {
232
- this.victimService
233
- .getVictimListByFilter(this.victimListFilter)
234
- .subscribe((/**
235
- * @param {?} data
236
- * @return {?}
237
- */
238
- (data) => {
239
- this.victimListDataSource.data = data;
240
- this.victims = data;
241
- console.log("victim data at line 201");
242
- console.log(data);
243
- }));
244
- }
245
- }
246
- }
247
- }
248
- /**
249
- * @param {?} phoneNumberString
250
- * @return {?}
251
- */
252
- formatPhoneNumber(phoneNumberString) {
253
- if (!phoneNumberString)
254
- return "";
255
- /** @type {?} */
256
- var cleaned = ("" + phoneNumberString).replace(/\D/g, "");
257
- /** @type {?} */
258
- var match = cleaned.match(/^(\d{3})(\d{3})(\d{4})$/);
259
- if (match) {
260
- return "(" + match[1] + ") " + match[2] + "-" + match[3];
261
- }
262
- return "";
263
- }
264
- /**
265
- * @return {?}
266
- */
267
- saveIntake() {
268
- if (!this.isIntake) {
269
- return;
270
- }
271
- /** @type {?} */
272
- const intakeStep = (/** @type {?} */ ({
273
- intakeStepId: IntakeStep.VictimInformation,
274
- offenderId: this.offenderId,
275
- modifiedBy: this.staffId,
276
- }));
277
- this.intakeService
278
- .updateIntakeSteps(this.offenderId, intakeStep)
279
- .subscribe((/**
280
- * @param {?} res
281
- * @return {?}
282
- */
283
- (res) => {
284
- console.log("save intake step.");
285
- this.snackBar.open("Status Saved.", "", {
286
- duration: 3000,
287
- });
288
- //this.router.navigate(['/warrant '], { queryParams: { intake: 1 } });
289
- this.document.location.href = `${this.smartWarrantUrl}/warrant`;
290
- }));
291
- }
292
- /**
293
- * @param {?} victimId
294
- * @return {?}
295
- */
296
- goToCaseNote(victimId) {
297
- this.router.navigate(["casenote", victimId]);
298
- }
299
- /**
300
- * @param {?} victimId
301
- * @return {?}
302
- */
303
- goToSaftyPlan(victimId) {
304
- this.router.navigate(["saftyPlan", victimId]);
305
- }
306
- /**
307
- * @param {?} filter
308
- * @return {?}
309
- */
310
- getVictimList(filter) {
311
- this.victimListFilter = filter;
312
- console.log("this.victimListFilter inside getVictimList");
313
- console.log(this.victimListFilter);
314
- this.doSpin = true;
315
- this.victimService.getVictimListByFilter(filter).subscribe((/**
316
- * @param {?} data
317
- * @return {?}
318
- */
319
- (data) => {
320
- this.victimListDataSource.data = data;
321
- this.doSpin = !this.doSpin;
322
- if (data.length > 0) {
323
- this.showListFlag = true;
324
- }
325
- else {
326
- this.msg = "No record found!";
327
- }
328
- }), (/**
329
- * @param {?} err
330
- * @return {?}
331
- */
332
- (err) => {
333
- this.doSpin = !this.doSpin;
334
- }));
335
- }
336
- }
337
- NgcSmartVictimComponent.decorators = [
338
- { type: Component, args: [{
339
- selector: "csmart-victim",
340
- template: "<div *ngIf=\"showSearchForm\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\" \r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\" \r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n \r\n <div class=\"add-action\" *ngIf=\"showAdd\">\r\n <button mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\" \r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n &nbsp;&nbsp;\r\n\r\n <div *ngIf=\"isIntake\">\r\n <button \r\n mat-raised-button \r\n color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button> \r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"showListFlag\">\r\n <mat-card id=\"divVictim\" >\r\n <mat-card-content >\r\n <mat-table #table [dataSource]=\"victimListDataSource\" >\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\r\n </ng-container>\r\n \r\n <div *ngIf=\"showRelationshipColumn\">\r\n <ng-container matColumnDef=\"relationship\">\r\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.relationship}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderPhoneColumn\">\r\n <ng-container matColumnDef=\"homePhone\">\r\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{formatPhoneNumber(row.homePhone)}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <div *ngIf=\"showOffenderNameColumn\">\r\n <ng-container matColumnDef=\"offenderName\">\r\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container matColumnDef=\"victimId\">\r\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n \r\n <!-- <div *ngIf=\"accessByModule\">\r\n <mat-checkbox></mat-checkbox>\r\n </div> -->\r\n \r\n <div *ngIf=\"showEdit\">\r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"editVictimDetail(row)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n </div>\r\n\r\n \r\n\r\n &nbsp;&nbsp; \r\n\r\n <div *ngIf=\"showCaseNote\">\r\n <button type=\"button\" matTooltip=\"CaseNote\" mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToCaseNote(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Case Note\r\n </button> \r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n <div *ngIf=\"showSafetyPlan\">\r\n <button type=\"button\" matTooltip=\"safety plan\" mat-raised-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToSaftyPlan(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Safety Plan\r\n </button>\r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>",
341
- styles: ["div.services{max-width:500px;margin:auto;border:3px solid #73ad21}.rTable{display:block;width:100%}.rTableBody,.rTableFoot,.rTableHeading,.rTableRow{clear:both}.rTableFoot,.rTableHead{background-color:#ddd;font-weight:700}.rTableCell,.rTableHead{border:0;float:left;padding:1px;width:28%}.rTable:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.victimSearch{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;grid-column-gap:10px}.edit-btn{margin-right:4px}.main-container{display:flex;margin-top:8px}.add-action{display:flex;justify-content:flex-end;margin-bottom:8px}.example-headers-align .mat-expansion-panel-header-description,.example-headers-align .mat-expansion-panel-header-title{flex-basis:0}.example-headers-align .mat-expansion-panel-header-description{justify-content:space-between;align-items:center}mat-form-field{margin-right:12px}.actions{display:flex;justify-content:space-around}.Row{display:table;width:100%;table-layout:fixed}.Column{display:table-cell}.sp-form textarea{float:left;margin-top:20px;margin-bottom:10px;width:462px;height:70px;overflow:auto;box-sizing:border-box}.mat-column-firstName,.mat-column-homePhone,.mat-column-lastName,.mat-column-offenderName,.mat-column-relationship{word-wrap:break-word!important;white-space:unset!important;flex:0 0 15%!important;width:15%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mat-column-victimId{word-wrap:break-word!important;white-space:unset!important;flex:0 0 25%!important;width:25%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}"]
342
- }] }
343
- ];
344
- /** @nocollapse */
345
- NgcSmartVictimComponent.ctorParameters = () => [
346
- { type: MatDialog },
347
- { type: NgcSmartVictimService },
348
- { type: Router },
349
- { type: ActivatedRoute },
350
- { type: MatSnackBar },
351
- { type: IntakeServicesComponent },
352
- { type: String, decorators: [{ type: Inject, args: [SMART_WARRANT_URL,] }] },
353
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
354
- ];
355
- NgcSmartVictimComponent.propDecorators = {
356
- offenderId: [{ type: Input }],
357
- staffId: [{ type: Input }],
358
- staffRole: [{ type: Input }],
359
- showCaseNote: [{ type: Input }],
360
- showSafetyPlan: [{ type: Input }],
361
- showAdd: [{ type: Input }],
362
- showEdit: [{ type: Input }],
363
- showRelationshipColumn: [{ type: Input }],
364
- showOffenderNameColumn: [{ type: Input }],
365
- showOffenderPhoneColumn: [{ type: Input }],
366
- showSearchForm: [{ type: Input }],
367
- accessByModule: [{ type: Input }],
368
- intakeFlag: [{ type: Input }],
369
- appModuleId: [{ type: Input }],
370
- activatedRoute: [{ type: Input }],
371
- paginator: [{ type: ViewChild, args: [MatPaginator,] }],
372
- sort: [{ type: ViewChild, args: [MatSort,] }]
373
- };
374
- if (false) {
375
- /** @type {?} */
376
- NgcSmartVictimComponent.prototype.offenderId;
377
- /** @type {?} */
378
- NgcSmartVictimComponent.prototype.staffId;
379
- /** @type {?} */
380
- NgcSmartVictimComponent.prototype.staffRole;
381
- /** @type {?} */
382
- NgcSmartVictimComponent.prototype.showCaseNote;
383
- /** @type {?} */
384
- NgcSmartVictimComponent.prototype.showSafetyPlan;
385
- /** @type {?} */
386
- NgcSmartVictimComponent.prototype.showAdd;
387
- /** @type {?} */
388
- NgcSmartVictimComponent.prototype.showEdit;
389
- /** @type {?} */
390
- NgcSmartVictimComponent.prototype.showRelationshipColumn;
391
- /** @type {?} */
392
- NgcSmartVictimComponent.prototype.showOffenderNameColumn;
393
- /** @type {?} */
394
- NgcSmartVictimComponent.prototype.showOffenderPhoneColumn;
395
- /** @type {?} */
396
- NgcSmartVictimComponent.prototype.showSearchForm;
397
- /** @type {?} */
398
- NgcSmartVictimComponent.prototype.accessByModule;
399
- /** @type {?} */
400
- NgcSmartVictimComponent.prototype.intakeFlag;
401
- /** @type {?} */
402
- NgcSmartVictimComponent.prototype.appModuleId;
403
- /** @type {?} */
404
- NgcSmartVictimComponent.prototype.activatedRoute;
405
- /** @type {?} */
406
- NgcSmartVictimComponent.prototype.paginator;
407
- /** @type {?} */
408
- NgcSmartVictimComponent.prototype.sort;
409
- /** @type {?} */
410
- NgcSmartVictimComponent.prototype.displayedColumns;
411
- /** @type {?} */
412
- NgcSmartVictimComponent.prototype.victims;
413
- /** @type {?} */
414
- NgcSmartVictimComponent.prototype.victimDetail;
415
- /** @type {?} */
416
- NgcSmartVictimComponent.prototype.showDetail;
417
- /** @type {?} */
418
- NgcSmartVictimComponent.prototype.victimListFilter;
419
- /** @type {?} */
420
- NgcSmartVictimComponent.prototype.victimListDataSource;
421
- /** @type {?} */
422
- NgcSmartVictimComponent.prototype.doSpin;
423
- /** @type {?} */
424
- NgcSmartVictimComponent.prototype.showListFlag;
425
- /** @type {?} */
426
- NgcSmartVictimComponent.prototype.msg;
427
- /** @type {?} */
428
- NgcSmartVictimComponent.prototype.isIntake;
429
- /** @type {?} */
430
- NgcSmartVictimComponent.prototype.updateAccessControlConfig;
431
- /** @type {?} */
432
- NgcSmartVictimComponent.prototype.createAccessControlConfig;
433
- /** @type {?} */
434
- NgcSmartVictimComponent.prototype.deleteAccessControlConfig;
435
- /**
436
- * @type {?}
437
- * @private
438
- */
439
- NgcSmartVictimComponent.prototype.dialog;
440
- /**
441
- * @type {?}
442
- * @private
443
- */
444
- NgcSmartVictimComponent.prototype.victimService;
445
- /**
446
- * @type {?}
447
- * @private
448
- */
449
- NgcSmartVictimComponent.prototype.router;
450
- /**
451
- * @type {?}
452
- * @private
453
- */
454
- NgcSmartVictimComponent.prototype.route;
455
- /**
456
- * @type {?}
457
- * @private
458
- */
459
- NgcSmartVictimComponent.prototype.snackBar;
460
- /**
461
- * @type {?}
462
- * @private
463
- */
464
- NgcSmartVictimComponent.prototype.intakeService;
465
- /**
466
- * @type {?}
467
- * @private
468
- */
469
- NgcSmartVictimComponent.prototype.smartWarrantUrl;
470
- /**
471
- * @type {?}
472
- * @private
473
- */
474
- NgcSmartVictimComponent.prototype.document;
475
- }
476
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjc21hcnQvbmdjLXNtYXJ0LXZpY3RpbS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC12aWN0aW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXlCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFJbkcsT0FBTyxFQUVMLFVBQVUsRUFDVix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQU0xQixNQUFNLE9BQU8sdUJBQXVCOzs7Ozs7Ozs7OztJQW9DbEMsWUFDVSxNQUFpQixFQUNqQixhQUFvQyxFQUNwQyxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsUUFBcUIsRUFDckIsYUFBc0MsRUFDWCxlQUF1QixFQUNoQyxRQUFhO1FBUC9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVE7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Q0wsS0FBSzsyQkFDTCxLQUFLOzZCQUNMLEtBQUs7c0JBRUwsS0FBSzt1QkFDTCxLQUFLO3FDQUNMLEtBQUs7cUNBQ0wsS0FBSztzQ0FDTCxLQUFLOzZCQUNMLEtBQUs7NkJBQ0wsS0FBSzt5QkFDTCxLQUFLOzBCQUNMLEtBQUs7NkJBQ0wsS0FBSzt3QkFFTCxTQUFTLFNBQUMsWUFBWTttQkFDdEIsU0FBUyxTQUFDLE9BQU87Ozs7SUFsQmxCLDZDQUE0Qjs7SUFDNUIsMENBQXlCOztJQUN6Qiw0Q0FBMkI7O0lBQzNCLCtDQUE4Qjs7SUFDOUIsaURBQWdDOztJQUVoQywwQ0FBMEI7O0lBQzFCLDJDQUEwQjs7SUFDMUIseURBQXlDOztJQUN6Qyx5REFBeUM7O0lBQ3pDLDBEQUEwQzs7SUFDMUMsaURBQWlDOztJQUNqQyxpREFBZ0M7O0lBQ2hDLDZDQUE0Qjs7SUFDNUIsOENBQTBCOztJQUMxQixpREFBK0M7O0lBRS9DLDRDQUFpRDs7SUFDakQsdUNBQWtDOztJQUdsQyxtREFBMkI7O0lBQzNCLDBDQUF1Qjs7SUFDdkIsK0NBQTBCOztJQUMxQiw2Q0FBbUI7O0lBQ25CLG1EQUE0RDs7SUFDNUQsdURBQWdEOztJQUNoRCx5Q0FBd0I7O0lBQ3hCLCtDQUE4Qjs7SUFDOUIsc0NBQWlCOztJQUNqQiwyQ0FBaUI7O0lBRWpCLDREQUFvRDs7SUFDcEQsNERBQW9EOztJQUNwRCw0REFBb0Q7Ozs7O0lBRWxELHlDQUF5Qjs7Ozs7SUFDekIsZ0RBQTRDOzs7OztJQUM1Qyx5Q0FBc0I7Ozs7O0lBQ3RCLHdDQUE2Qjs7Ozs7SUFDN0IsMkNBQTZCOzs7OztJQUM3QixnREFBOEM7Ozs7O0lBQzlDLGtEQUEwRDs7Ozs7SUFDMUQsMkNBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkLCBJbnB1dCwgT3V0cHV0LCBBZnRlclZpZXdJbml0LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBNYXRTb3J0LE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQge1xyXG4gIFNlbGVjdGVkT2ZmZW5kZXIsXHJcbiAgTG9naW5TdGFmZixcclxuICBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcsXHJcbiAgQWNjZXNzVHlwZSxcclxufSBmcm9tIFwiQGNzbWFydC9uZ2Mtc21hcnQtY29yZVwiO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbVNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWxlbWVudHNWaWN0aW0sIFZpY3RpbUxpc3RGaWx0ZXIsIFZpY3RpbSwgU01BUlRfV0FSUkFOVF9VUkwgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5tb2RlbCc7XHJcbmltcG9ydCB7IFNtYXJ0VmljdGltRGVsZXRlQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtdmljdGltLWRlbGV0ZS1jb25maXJtLmNvbXBvbmVudCc7XHJcbi8vaW1wb3J0IHsgU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS1kZXRhaWwvc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHtcclxuICBJbnRha2VTdGVwU3RhdHVzTW9kZWwsXHJcbiAgSW50YWtlU3RlcCxcclxuICBJbnRha2VTZXJ2aWNlc0NvbXBvbmVudCxcclxufSBmcm9tICcuL2ludGFrZS5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY3NtYXJ0LXZpY3RpbVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc21hcnQtdmljdGltLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHN0YWZmSWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBzdGFmZlJvbGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93Q2FzZU5vdGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93U2FmZXR5UGxhbjogc3RyaW5nO1xyXG4gIC8vQElucHV0KCkgc2hvd0FkZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBZGQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0VkaXQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93UmVsYXRpb25zaGlwQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlck5hbWVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd09mZmVuZGVyUGhvbmVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaEZvcm06IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWNjZXNzQnlNb2R1bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnRha2VGbGFnOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYXBwTW9kdWxlSWQgPSAnJztcclxuICBASW5wdXQoKSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBudWxsO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG4gIC8vIEBWaWV3Q2hpbGQoU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQpIGNoaWxkO1xyXG5cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICB2aWN0aW1zOiBWaWN0aW1bXSA9IFtdO1xyXG4gIHZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgc2hvd0RldGFpbCA9IGZhbHNlO1xyXG4gIHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSBuZXcgVmljdGltTGlzdEZpbHRlcigpO1xyXG4gIHZpY3RpbUxpc3REYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGRvU3BpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dMaXN0RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1zZzogc3RyaW5nID0gXCJcIjtcclxuICBpc0ludGFrZSA9IGZhbHNlO1xyXG5cclxuICB1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XHJcbiAgY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHZpY3RpbVNlcnZpY2U6IE5nY1NtYXJ0VmljdGltU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBpbnRha2VTZXJ2aWNlOiBJbnRha2VTZXJ2aWNlc0NvbXBvbmVudCxcclxuICAgIEBJbmplY3QoU01BUlRfV0FSUkFOVF9VUkwpIHByaXZhdGUgc21hcnRXYXJyYW50VXJsOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcclxuICApIHt9XHJcblxyXG4gIC8vIHByaXZhdGUgb25DaGFuZ2UoZmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyKSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnZmlsdGVyIGluIG9uY2hhbmdlJyk7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhmaWx0ZXIpO1xyXG4gIC8vICAgdGhpcy5nZXRWaWN0aW1MaXN0KGZpbHRlcik7XHJcbiAgLy8gfVxyXG5cclxuICBhcHBseUZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICBhZGRSZWNvcmQoKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93QWRkID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IG51bGw7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZWRpdFZpY3RpbURldGFpbChyZWNvcmQpIHtcclxuICAgIGNvbnNvbGUubG9nKFwidmljdGltIGVkaXQgcmVjb3JkXCIpO1xyXG4gICAgY29uc29sZS5sb2cocmVjb3JkKTtcclxuICAgIGNvbnNvbGUubG9nKHJlY29yZC52aWN0aW1JZCk7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IHJlY29yZDtcclxuICAgIHRoaXMuc2hvd0RldGFpbCA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dBZGQgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzYXZlKGRldGFpbDogVmljdGltKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0FkZCA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSBmYWxzZTtcclxuICAgIHRoaXMudmljdGltRGV0YWlsID0gPFZpY3RpbT57fTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgICB0aGlzLnVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLlVQREFURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICAgICB0aGlzLmNyZWF0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkNSRUFURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICAgICB0aGlzLmRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkRFTEVURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdmFyIGRhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XHJcbiAgICB2YXIgbXlQYXRoID0gdGhpcy5yb3V0ZXIudXJsLnNsaWNlKC0xMCk7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJzbWFydC12aWN0aW0gbmdPbkluaXRcIik7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmludGFrZUZsYWcpO1xyXG4gICAgY29uc29sZS5sb2cobXlQYXRoKTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnRha2VGbGFnIHx8IG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIikge1xyXG4gICAgICB0aGlzLmlzSW50YWtlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbXCJsYXN0TmFtZVwiLCBcImZpcnN0TmFtZVwiXTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2hvd1JlbGF0aW9uc2hpcENvbHVtbiA9PSB0cnVlIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUxpc3RcIiB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1Ib21lXCJcclxuICAgICkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChcInJlbGF0aW9uc2hpcFwiKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNob3dPZmZlbmRlck5hbWVDb2x1bW4gPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChcIm9mZmVuZGVyTmFtZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2hvd09mZmVuZGVyUGhvbmVDb2x1bW4gPT0gdHJ1ZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJob21lUGhvbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJ2aWN0aW1JZFwiKTtcclxuXHJcbiAgICBpZiAodGhpcy5zaG93U2VhcmNoRm9ybSA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLnNob3dTZWFyY2hGb3JtXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zaG93U2VhcmNoRm9ybSk7XHJcbiAgICBjb25zb2xlLmxvZyhcIm15UGF0aFwiKTtcclxuICAgIGNvbnNvbGUubG9nKG15UGF0aCk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dTZWFyY2hGb3JtID09IGZhbHNlIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUxpc3RcIiB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1Ib21lXCJcclxuICAgICkge1xyXG4gICAgICB2YXIgbXlPZmZlbmRlcklkO1xyXG4gICAgICBpZiAodGhpcy5vZmZlbmRlcklkKSB7XHJcbiAgICAgICAgbXlPZmZlbmRlcklkID0gdGhpcy5vZmZlbmRlcklkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiYmFjayBmcm9tIHByZXZpb3VzIHBhZ2VcIik7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3dSZWxhdGlvbnNoaXBDb2x1bW4gPSB0cnVlO1xyXG4gICAgICAgIC8vdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJyZWxhdGlvbnNoaXBcIik7XHJcbiAgICAgICAgdGhpcy5zaG93T2ZmZW5kZXJQaG9uZUNvbHVtbiA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJob21lUGhvbmVcIik7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NCeU1vZHVsZSA9IFwidHJ1ZVwiO1xyXG4gICAgICAgIHRoaXMuc2hvd0VkaXQgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dDYXNlTm90ZSA9IFwidHJ1ZVwiO1xyXG4gICAgICAgIHRoaXMuc2hvd1NhZmV0eVBsYW4gPSBcInRydWVcIjtcclxuXHJcbiAgICAgICAgbXlPZmZlbmRlcklkID0gZGF0YS5zZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSB7XHJcbiAgICAgICAgb2ZmZW5kZXJJZDogbXlPZmZlbmRlcklkLFxyXG4gICAgICAgIGxhc3ROYW1lOiBudWxsLFxyXG4gICAgICAgIGZpcnN0TmFtZTogbnVsbCxcclxuICAgICAgICBwZGlkOiBudWxsLFxyXG4gICAgICAgIGJpcnRoRGF0ZTogbnVsbCxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwidmljdGltTGlzdEZpbHRlciBpbiBzbWFyLXZpY3RpbSBjb21wb25lbmV0XCIpO1xyXG4gICAgICBjb25zb2xlLmxvZyh2aWN0aW1MaXN0RmlsdGVyKTtcclxuXHJcbiAgICAgIHRoaXMudmljdGltU2VydmljZVxyXG4gICAgICAgIC5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIodmljdGltTGlzdEZpbHRlcilcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuXHJcbiAgICAgICAgICB0aGlzLnZpY3RpbXMgPSBkYXRhO1xyXG5cclxuICAgICAgICAgIGRhdGEuZm9yRWFjaCgoZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZC5ob21lUGhvbmUgPT0gbnVsbCB8fCBkLmhvbWVQaG9uZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgZC5ob21lUGhvbmUgPSBkLmNlbGxQaG9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZC5ob21lUGhvbmUgPT0gbnVsbCB8fCBkLmhvbWVQaG9uZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgZC5ob21lUGhvbmUgPSBkLndvcmtQaG9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBkYXRhIGF0IGxpbmUgMTc5XCIpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1zKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwic2hvd0xpc3RGbGFnXCIpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy5zaG93TGlzdEZsYWcpO1xyXG4gICAgICAgICAgdGhpcy5zaG93TGlzdEZsYWcgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5tc2cgPSBcIk5vIFJlY29yZCBGb3VuZCFcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmluZCBmaWx0ZXJcIik7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltTGlzdEZpbHRlcik7XHJcblxyXG4gICAgICBpZiAodGhpcy5zaG93TGlzdEZsYWcgPT09IHRydWUpIHtcclxuICAgICAgICBpZiAodGhpcy52aWN0aW1MaXN0RmlsdGVyICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMudmljdGltU2VydmljZVxyXG4gICAgICAgICAgICAuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKHRoaXMudmljdGltTGlzdEZpbHRlcilcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogVmljdGltW10pID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMudmljdGltcyA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJ2aWN0aW0gZGF0YSBhdCBsaW5lIDIwMVwiKTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtYXRQaG9uZU51bWJlcihwaG9uZU51bWJlclN0cmluZykge1xyXG4gICAgaWYgKCFwaG9uZU51bWJlclN0cmluZykgcmV0dXJuIFwiXCI7XHJcbiAgICB2YXIgY2xlYW5lZCA9IChcIlwiICsgcGhvbmVOdW1iZXJTdHJpbmcpLnJlcGxhY2UoL1xcRC9nLCBcIlwiKTtcclxuICAgIHZhciBtYXRjaCA9IGNsZWFuZWQubWF0Y2goL14oXFxkezN9KShcXGR7M30pKFxcZHs0fSkkLyk7XHJcbiAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgcmV0dXJuIFwiKFwiICsgbWF0Y2hbMV0gKyBcIikgXCIgKyBtYXRjaFsyXSArIFwiLVwiICsgbWF0Y2hbM107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHNhdmVJbnRha2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNJbnRha2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW50YWtlU3RlcCA9IDxJbnRha2VTdGVwU3RhdHVzTW9kZWw+e1xyXG4gICAgICBpbnRha2VTdGVwSWQ6IEludGFrZVN0ZXAuVmljdGltSW5mb3JtYXRpb24sXHJcbiAgICAgIG9mZmVuZGVySWQ6IHRoaXMub2ZmZW5kZXJJZCxcclxuICAgICAgbW9kaWZpZWRCeTogdGhpcy5zdGFmZklkLFxyXG4gICAgfTtcclxuICAgIHRoaXMuaW50YWtlU2VydmljZVxyXG4gICAgICAudXBkYXRlSW50YWtlU3RlcHModGhpcy5vZmZlbmRlcklkLCBpbnRha2VTdGVwKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInNhdmUgaW50YWtlIHN0ZXAuXCIpO1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihcIlN0YXR1cyBTYXZlZC5cIiwgXCJcIiwge1xyXG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy90aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy93YXJyYW50ICddLCB7IHF1ZXJ5UGFyYW1zOiB7IGludGFrZTogMSB9IH0pO1xyXG5cclxuICAgICAgICB0aGlzLmRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBgJHt0aGlzLnNtYXJ0V2FycmFudFVybH0vd2FycmFudGA7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0Nhc2VOb3RlKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImNhc2Vub3RlXCIsIHZpY3RpbUlkXSk7XHJcbiAgfVxyXG5cclxuICBnb1RvU2FmdHlQbGFuKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcInNhZnR5UGxhblwiLCB2aWN0aW1JZF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmljdGltTGlzdChmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpIHtcclxuICAgIHRoaXMudmljdGltTGlzdEZpbHRlciA9IGZpbHRlcjtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy52aWN0aW1MaXN0RmlsdGVyIGluc2lkZSBnZXRWaWN0aW1MaXN0XCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1MaXN0RmlsdGVyKTtcclxuICAgIHRoaXMuZG9TcGluID0gdHJ1ZTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIoZmlsdGVyKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcblxyXG4gICAgICAgIHRoaXMuZG9TcGluID0gIXRoaXMuZG9TcGluO1xyXG5cclxuICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXNnID0gXCJObyByZWNvcmQgZm91bmQhXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb1NwaW4gPSAhdGhpcy5kb1NwaW47XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==