@csmart/ngc-smart-victim 0.1.7 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) 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 +958 -0
  18. package/esm2020/lib/smart-victim.component.mjs +310 -0
  19. package/esm2020/lib/smart-victim.model.mjs +132 -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 +3221 -0
  27. package/fesm2015/csmart-ngc-smart-victim.mjs.map +1 -0
  28. package/fesm2020/csmart-ngc-smart-victim.mjs +3210 -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.module.d.ts +47 -0
  45. package/lib/smart-victim.service.d.ts +3 -0
  46. package/lib/victim-routing.module.d.ts +5 -0
  47. package/lib/victimSearch/victimSearchForm.component.d.ts +3 -0
  48. package/package.json +28 -18
  49. package/public-api.d.ts +4 -0
  50. package/bundles/csmart-ngc-smart-victim.umd.js +0 -6434
  51. package/bundles/csmart-ngc-smart-victim.umd.js.map +0 -1
  52. package/bundles/csmart-ngc-smart-victim.umd.min.js +0 -16
  53. package/bundles/csmart-ngc-smart-victim.umd.min.js.map +0 -1
  54. package/csmart-ngc-smart-victim.metadata.json +0 -1
  55. package/esm2015/csmart-ngc-smart-victim.js +0 -25
  56. package/esm2015/lib/caseNote/caseNote.component.js +0 -349
  57. package/esm2015/lib/common-dialog/common-dialog.component.js +0 -46
  58. package/esm2015/lib/common-dialog/common-dialog.module.js +0 -32
  59. package/esm2015/lib/common-dialog/common-dialog.service.js +0 -63
  60. package/esm2015/lib/contact/contact.component.js +0 -232
  61. package/esm2015/lib/intake.service.js +0 -183
  62. package/esm2015/lib/safetyPlan/serviceProvider.component.js +0 -130
  63. package/esm2015/lib/safetyPlan/victimSafetyPlan.component.js +0 -257
  64. package/esm2015/lib/safetyPlan/victimSafetyPlanDetail.component.js +0 -556
  65. package/esm2015/lib/shared/app.shared.module.js +0 -81
  66. package/esm2015/lib/shared/directives/phone-mask.directive.js +0 -168
  67. package/esm2015/lib/shared/validators/date.validator.js +0 -108
  68. package/esm2015/lib/shared/validators/index.js +0 -7
  69. package/esm2015/lib/smart-victim-delete-confirm.component.js +0 -61
  70. package/esm2015/lib/smart-victim-detail/smart-victim-detail.component.js +0 -1410
  71. package/esm2015/lib/smart-victim.component.js +0 -476
  72. package/esm2015/lib/smart-victim.model.js +0 -631
  73. package/esm2015/lib/smart-victim.module.js +0 -84
  74. package/esm2015/lib/smart-victim.service.js +0 -792
  75. package/esm2015/lib/victim-routing.module.js +0 -40
  76. package/esm2015/lib/victimSearch/VictimSearchFilter.js +0 -20
  77. package/esm2015/lib/victimSearch/victimSearchForm.component.js +0 -59
  78. package/esm2015/public-api.js +0 -13
  79. package/esm5/csmart-ngc-smart-victim.js +0 -25
  80. package/esm5/lib/caseNote/caseNote.component.js +0 -372
  81. package/esm5/lib/common-dialog/common-dialog.component.js +0 -48
  82. package/esm5/lib/common-dialog/common-dialog.module.js +0 -36
  83. package/esm5/lib/common-dialog/common-dialog.service.js +0 -75
  84. package/esm5/lib/contact/contact.component.js +0 -285
  85. package/esm5/lib/intake.service.js +0 -194
  86. package/esm5/lib/safetyPlan/serviceProvider.component.js +0 -99
  87. package/esm5/lib/safetyPlan/victimSafetyPlan.component.js +0 -306
  88. package/esm5/lib/safetyPlan/victimSafetyPlanDetail.component.js +0 -628
  89. package/esm5/lib/shared/app.shared.module.js +0 -85
  90. package/esm5/lib/shared/directives/phone-mask.directive.js +0 -184
  91. package/esm5/lib/shared/validators/date.validator.js +0 -108
  92. package/esm5/lib/shared/validators/index.js +0 -7
  93. package/esm5/lib/smart-victim-delete-confirm.component.js +0 -51
  94. package/esm5/lib/smart-victim-detail/smart-victim-detail.component.js +0 -1502
  95. package/esm5/lib/smart-victim.component.js +0 -528
  96. package/esm5/lib/smart-victim.model.js +0 -541
  97. package/esm5/lib/smart-victim.module.js +0 -84
  98. package/esm5/lib/smart-victim.service.js +0 -1063
  99. package/esm5/lib/victim-routing.module.js +0 -44
  100. package/esm5/lib/victimSearch/VictimSearchFilter.js +0 -24
  101. package/esm5/lib/victimSearch/victimSearchForm.component.js +0 -70
  102. package/esm5/public-api.js +0 -13
  103. package/fesm2015/csmart-ngc-smart-victim.js +0 -5690
  104. package/fesm2015/csmart-ngc-smart-victim.js.map +0 -1
  105. package/fesm5/csmart-ngc-smart-victim.js +0 -6211
  106. package/fesm5/csmart-ngc-smart-victim.js.map +0 -1
@@ -1,528 +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
- var NgcSmartVictimComponent = /** @class */ (function () {
18
- function NgcSmartVictimComponent(dialog, victimService, router, route, snackBar, intakeService, smartWarrantUrl, document) {
19
- this.dialog = dialog;
20
- this.victimService = victimService;
21
- this.router = router;
22
- this.route = route;
23
- this.snackBar = snackBar;
24
- this.intakeService = intakeService;
25
- this.smartWarrantUrl = smartWarrantUrl;
26
- this.document = document;
27
- this.appModuleId = '';
28
- this.activatedRoute = null;
29
- this.victims = [];
30
- this.victimDetail = (/** @type {?} */ ({}));
31
- this.showDetail = false;
32
- this.victimListFilter = new VictimListFilter();
33
- this.victimListDataSource = new MatTableDataSource();
34
- this.doSpin = false;
35
- this.showListFlag = false;
36
- this.msg = "";
37
- this.isIntake = false;
38
- }
39
- // private onChange(filter: VictimListFilter) {
40
- // console.log('filter in onchange');
41
- // console.log(filter);
42
- // this.getVictimList(filter);
43
- // }
44
- // private onChange(filter: VictimListFilter) {
45
- // console.log('filter in onchange');
46
- // console.log(filter);
47
- // this.getVictimList(filter);
48
- // }
49
- /**
50
- * @param {?} filterValue
51
- * @return {?}
52
- */
53
- NgcSmartVictimComponent.prototype.applyFilter =
54
- // private onChange(filter: VictimListFilter) {
55
- // console.log('filter in onchange');
56
- // console.log(filter);
57
- // this.getVictimList(filter);
58
- // }
59
- /**
60
- * @param {?} filterValue
61
- * @return {?}
62
- */
63
- function (filterValue) {
64
- this.victimListDataSource.filter = filterValue.trim().toLowerCase();
65
- };
66
- /**
67
- * @return {?}
68
- */
69
- NgcSmartVictimComponent.prototype.addRecord = /**
70
- * @return {?}
71
- */
72
- function () {
73
- this.showDetail = true;
74
- this.showAdd = false;
75
- this.victimDetail = null;
76
- this.showListFlag = false;
77
- };
78
- /**
79
- * @param {?} record
80
- * @return {?}
81
- */
82
- NgcSmartVictimComponent.prototype.editVictimDetail = /**
83
- * @param {?} record
84
- * @return {?}
85
- */
86
- function (record) {
87
- console.log("victim edit record");
88
- console.log(record);
89
- console.log(record.victimId);
90
- this.victimDetail = record;
91
- this.showDetail = true;
92
- this.showAdd = false;
93
- this.showListFlag = false;
94
- };
95
- /**
96
- * @param {?} detail
97
- * @return {?}
98
- */
99
- NgcSmartVictimComponent.prototype.save = /**
100
- * @param {?} detail
101
- * @return {?}
102
- */
103
- function (detail) {
104
- this.showDetail = false;
105
- this.showAdd = true;
106
- this.showListFlag = true;
107
- };
108
- /**
109
- * @return {?}
110
- */
111
- NgcSmartVictimComponent.prototype.cancel = /**
112
- * @return {?}
113
- */
114
- function () {
115
- this.showDetail = false;
116
- this.victimDetail = (/** @type {?} */ ({}));
117
- };
118
- /**
119
- * @return {?}
120
- */
121
- NgcSmartVictimComponent.prototype.ngAfterViewInit = /**
122
- * @return {?}
123
- */
124
- function () {
125
- this.victimListDataSource.paginator = this.paginator;
126
- this.victimListDataSource.sort = this.sort;
127
- };
128
- /**
129
- * @return {?}
130
- */
131
- NgcSmartVictimComponent.prototype.ngOnChanges = /**
132
- * @return {?}
133
- */
134
- function () {
135
- this.updateAccessControlConfig = {
136
- accessType: AccessType.UPDATE,
137
- appModuleId: this.appModuleId,
138
- roleId: null,
139
- route: this.activatedRoute.snapshot,
140
- };
141
- this.createAccessControlConfig = {
142
- accessType: AccessType.CREATE,
143
- appModuleId: this.appModuleId,
144
- roleId: null,
145
- route: this.activatedRoute.snapshot,
146
- };
147
- this.deleteAccessControlConfig = {
148
- accessType: AccessType.DELETE,
149
- appModuleId: this.appModuleId,
150
- roleId: null,
151
- route: this.activatedRoute.snapshot,
152
- };
153
- };
154
- /**
155
- * @return {?}
156
- */
157
- NgcSmartVictimComponent.prototype.ngOnInit = /**
158
- * @return {?}
159
- */
160
- function () {
161
- var _this = this;
162
- /** @type {?} */
163
- var data = this.route.snapshot.data;
164
- /** @type {?} */
165
- var myPath = this.router.url.slice(-10);
166
- console.log("smart-victim ngOnInit");
167
- console.log(this.intakeFlag);
168
- console.log(myPath);
169
- if (this.intakeFlag || myPath == "victimHome") {
170
- this.isIntake = true;
171
- }
172
- this.displayedColumns = ["lastName", "firstName"];
173
- if (this.showRelationshipColumn == true ||
174
- myPath == "victimList" ||
175
- myPath == "victimHome") {
176
- this.displayedColumns.push("relationship");
177
- }
178
- if (this.showOffenderNameColumn == true) {
179
- this.displayedColumns.push("offenderName");
180
- }
181
- if (this.showOffenderPhoneColumn == true ||
182
- myPath == "victimList" ||
183
- myPath == "victimHome") {
184
- this.displayedColumns.push("homePhone");
185
- }
186
- this.displayedColumns.push("victimId");
187
- if (this.showSearchForm == true) {
188
- this.showListFlag = false;
189
- }
190
- console.log("this.showSearchForm");
191
- console.log(this.showSearchForm);
192
- console.log("myPath");
193
- console.log(myPath);
194
- if (this.showSearchForm == false ||
195
- myPath == "victimList" ||
196
- myPath == "victimHome") {
197
- /** @type {?} */
198
- var myOffenderId;
199
- if (this.offenderId) {
200
- myOffenderId = this.offenderId;
201
- }
202
- else {
203
- console.log("back from previous page");
204
- this.showAdd = true;
205
- this.showRelationshipColumn = true;
206
- //this.displayedColumns.push("relationship");
207
- this.showOffenderPhoneColumn = true;
208
- // this.displayedColumns.push("homePhone");
209
- this.accessByModule = "true";
210
- this.showEdit = "true";
211
- this.showCaseNote = "true";
212
- this.showSafetyPlan = "true";
213
- myOffenderId = data.selectedOffender.offenderId;
214
- }
215
- /** @type {?} */
216
- var victimListFilter = {
217
- offenderId: myOffenderId,
218
- lastName: null,
219
- firstName: null,
220
- pdid: null,
221
- birthDate: null,
222
- };
223
- console.log("victimListFilter in smar-victim componenet");
224
- console.log(victimListFilter);
225
- this.victimService
226
- .getVictimListByFilter(victimListFilter)
227
- .subscribe((/**
228
- * @param {?} data
229
- * @return {?}
230
- */
231
- function (data) {
232
- _this.victimListDataSource.data = data;
233
- _this.victims = data;
234
- data.forEach((/**
235
- * @param {?} d
236
- * @return {?}
237
- */
238
- function (d) {
239
- if (d.homePhone == null || d.homePhone == "") {
240
- d.homePhone = d.cellPhone;
241
- }
242
- if (d.homePhone == null || d.homePhone == "") {
243
- d.homePhone = d.workPhone;
244
- }
245
- }));
246
- console.log("victim data at line 179");
247
- console.log(_this.victims);
248
- console.log("showListFlag");
249
- console.log(_this.showListFlag);
250
- _this.showListFlag = true;
251
- if (data.length == 0) {
252
- _this.msg = "No Record Found!";
253
- }
254
- }));
255
- }
256
- else {
257
- console.log("find filter");
258
- console.log(this.victimListFilter);
259
- if (this.showListFlag === true) {
260
- if (this.victimListFilter != null) {
261
- this.victimService
262
- .getVictimListByFilter(this.victimListFilter)
263
- .subscribe((/**
264
- * @param {?} data
265
- * @return {?}
266
- */
267
- function (data) {
268
- _this.victimListDataSource.data = data;
269
- _this.victims = data;
270
- console.log("victim data at line 201");
271
- console.log(data);
272
- }));
273
- }
274
- }
275
- }
276
- };
277
- /**
278
- * @param {?} phoneNumberString
279
- * @return {?}
280
- */
281
- NgcSmartVictimComponent.prototype.formatPhoneNumber = /**
282
- * @param {?} phoneNumberString
283
- * @return {?}
284
- */
285
- function (phoneNumberString) {
286
- if (!phoneNumberString)
287
- return "";
288
- /** @type {?} */
289
- var cleaned = ("" + phoneNumberString).replace(/\D/g, "");
290
- /** @type {?} */
291
- var match = cleaned.match(/^(\d{3})(\d{3})(\d{4})$/);
292
- if (match) {
293
- return "(" + match[1] + ") " + match[2] + "-" + match[3];
294
- }
295
- return "";
296
- };
297
- /**
298
- * @return {?}
299
- */
300
- NgcSmartVictimComponent.prototype.saveIntake = /**
301
- * @return {?}
302
- */
303
- function () {
304
- var _this = this;
305
- if (!this.isIntake) {
306
- return;
307
- }
308
- /** @type {?} */
309
- var intakeStep = (/** @type {?} */ ({
310
- intakeStepId: IntakeStep.VictimInformation,
311
- offenderId: this.offenderId,
312
- modifiedBy: this.staffId,
313
- }));
314
- this.intakeService
315
- .updateIntakeSteps(this.offenderId, intakeStep)
316
- .subscribe((/**
317
- * @param {?} res
318
- * @return {?}
319
- */
320
- function (res) {
321
- console.log("save intake step.");
322
- _this.snackBar.open("Status Saved.", "", {
323
- duration: 3000,
324
- });
325
- //this.router.navigate(['/warrant '], { queryParams: { intake: 1 } });
326
- _this.document.location.href = _this.smartWarrantUrl + "/warrant";
327
- }));
328
- };
329
- /**
330
- * @param {?} victimId
331
- * @return {?}
332
- */
333
- NgcSmartVictimComponent.prototype.goToCaseNote = /**
334
- * @param {?} victimId
335
- * @return {?}
336
- */
337
- function (victimId) {
338
- this.router.navigate(["casenote", victimId]);
339
- };
340
- /**
341
- * @param {?} victimId
342
- * @return {?}
343
- */
344
- NgcSmartVictimComponent.prototype.goToSaftyPlan = /**
345
- * @param {?} victimId
346
- * @return {?}
347
- */
348
- function (victimId) {
349
- this.router.navigate(["saftyPlan", victimId]);
350
- };
351
- /**
352
- * @param {?} filter
353
- * @return {?}
354
- */
355
- NgcSmartVictimComponent.prototype.getVictimList = /**
356
- * @param {?} filter
357
- * @return {?}
358
- */
359
- function (filter) {
360
- var _this = this;
361
- this.victimListFilter = filter;
362
- console.log("this.victimListFilter inside getVictimList");
363
- console.log(this.victimListFilter);
364
- this.doSpin = true;
365
- this.victimService.getVictimListByFilter(filter).subscribe((/**
366
- * @param {?} data
367
- * @return {?}
368
- */
369
- function (data) {
370
- _this.victimListDataSource.data = data;
371
- _this.doSpin = !_this.doSpin;
372
- if (data.length > 0) {
373
- _this.showListFlag = true;
374
- }
375
- else {
376
- _this.msg = "No record found!";
377
- }
378
- }), (/**
379
- * @param {?} err
380
- * @return {?}
381
- */
382
- function (err) {
383
- _this.doSpin = !_this.doSpin;
384
- }));
385
- };
386
- NgcSmartVictimComponent.decorators = [
387
- { type: Component, args: [{
388
- selector: "csmart-victim",
389
- 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>",
390
- 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}"]
391
- }] }
392
- ];
393
- /** @nocollapse */
394
- NgcSmartVictimComponent.ctorParameters = function () { return [
395
- { type: MatDialog },
396
- { type: NgcSmartVictimService },
397
- { type: Router },
398
- { type: ActivatedRoute },
399
- { type: MatSnackBar },
400
- { type: IntakeServicesComponent },
401
- { type: String, decorators: [{ type: Inject, args: [SMART_WARRANT_URL,] }] },
402
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
403
- ]; };
404
- NgcSmartVictimComponent.propDecorators = {
405
- offenderId: [{ type: Input }],
406
- staffId: [{ type: Input }],
407
- staffRole: [{ type: Input }],
408
- showCaseNote: [{ type: Input }],
409
- showSafetyPlan: [{ type: Input }],
410
- showAdd: [{ type: Input }],
411
- showEdit: [{ type: Input }],
412
- showRelationshipColumn: [{ type: Input }],
413
- showOffenderNameColumn: [{ type: Input }],
414
- showOffenderPhoneColumn: [{ type: Input }],
415
- showSearchForm: [{ type: Input }],
416
- accessByModule: [{ type: Input }],
417
- intakeFlag: [{ type: Input }],
418
- appModuleId: [{ type: Input }],
419
- activatedRoute: [{ type: Input }],
420
- paginator: [{ type: ViewChild, args: [MatPaginator,] }],
421
- sort: [{ type: ViewChild, args: [MatSort,] }]
422
- };
423
- return NgcSmartVictimComponent;
424
- }());
425
- export { NgcSmartVictimComponent };
426
- if (false) {
427
- /** @type {?} */
428
- NgcSmartVictimComponent.prototype.offenderId;
429
- /** @type {?} */
430
- NgcSmartVictimComponent.prototype.staffId;
431
- /** @type {?} */
432
- NgcSmartVictimComponent.prototype.staffRole;
433
- /** @type {?} */
434
- NgcSmartVictimComponent.prototype.showCaseNote;
435
- /** @type {?} */
436
- NgcSmartVictimComponent.prototype.showSafetyPlan;
437
- /** @type {?} */
438
- NgcSmartVictimComponent.prototype.showAdd;
439
- /** @type {?} */
440
- NgcSmartVictimComponent.prototype.showEdit;
441
- /** @type {?} */
442
- NgcSmartVictimComponent.prototype.showRelationshipColumn;
443
- /** @type {?} */
444
- NgcSmartVictimComponent.prototype.showOffenderNameColumn;
445
- /** @type {?} */
446
- NgcSmartVictimComponent.prototype.showOffenderPhoneColumn;
447
- /** @type {?} */
448
- NgcSmartVictimComponent.prototype.showSearchForm;
449
- /** @type {?} */
450
- NgcSmartVictimComponent.prototype.accessByModule;
451
- /** @type {?} */
452
- NgcSmartVictimComponent.prototype.intakeFlag;
453
- /** @type {?} */
454
- NgcSmartVictimComponent.prototype.appModuleId;
455
- /** @type {?} */
456
- NgcSmartVictimComponent.prototype.activatedRoute;
457
- /** @type {?} */
458
- NgcSmartVictimComponent.prototype.paginator;
459
- /** @type {?} */
460
- NgcSmartVictimComponent.prototype.sort;
461
- /** @type {?} */
462
- NgcSmartVictimComponent.prototype.displayedColumns;
463
- /** @type {?} */
464
- NgcSmartVictimComponent.prototype.victims;
465
- /** @type {?} */
466
- NgcSmartVictimComponent.prototype.victimDetail;
467
- /** @type {?} */
468
- NgcSmartVictimComponent.prototype.showDetail;
469
- /** @type {?} */
470
- NgcSmartVictimComponent.prototype.victimListFilter;
471
- /** @type {?} */
472
- NgcSmartVictimComponent.prototype.victimListDataSource;
473
- /** @type {?} */
474
- NgcSmartVictimComponent.prototype.doSpin;
475
- /** @type {?} */
476
- NgcSmartVictimComponent.prototype.showListFlag;
477
- /** @type {?} */
478
- NgcSmartVictimComponent.prototype.msg;
479
- /** @type {?} */
480
- NgcSmartVictimComponent.prototype.isIntake;
481
- /** @type {?} */
482
- NgcSmartVictimComponent.prototype.updateAccessControlConfig;
483
- /** @type {?} */
484
- NgcSmartVictimComponent.prototype.createAccessControlConfig;
485
- /** @type {?} */
486
- NgcSmartVictimComponent.prototype.deleteAccessControlConfig;
487
- /**
488
- * @type {?}
489
- * @private
490
- */
491
- NgcSmartVictimComponent.prototype.dialog;
492
- /**
493
- * @type {?}
494
- * @private
495
- */
496
- NgcSmartVictimComponent.prototype.victimService;
497
- /**
498
- * @type {?}
499
- * @private
500
- */
501
- NgcSmartVictimComponent.prototype.router;
502
- /**
503
- * @type {?}
504
- * @private
505
- */
506
- NgcSmartVictimComponent.prototype.route;
507
- /**
508
- * @type {?}
509
- * @private
510
- */
511
- NgcSmartVictimComponent.prototype.snackBar;
512
- /**
513
- * @type {?}
514
- * @private
515
- */
516
- NgcSmartVictimComponent.prototype.intakeService;
517
- /**
518
- * @type {?}
519
- * @private
520
- */
521
- NgcSmartVictimComponent.prototype.smartWarrantUrl;
522
- /**
523
- * @type {?}
524
- * @private
525
- */
526
- NgcSmartVictimComponent.prototype.document;
527
- }
528
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjc21hcnQvbmdjLXNtYXJ0LXZpY3RpbS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC12aWN0aW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXlCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFJbkcsT0FBTyxFQUVMLFVBQVUsRUFDVix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQjtJQXlDRSxpQ0FDVSxNQUFpQixFQUNqQixhQUFvQyxFQUNwQyxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsUUFBcUIsRUFDckIsYUFBc0MsRUFDWCxlQUF1QixFQUNoQyxRQUFhO1FBUC9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtR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Ozs7SUFDMUQsMkNBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkLCBJbnB1dCwgT3V0cHV0LCBBZnRlclZpZXdJbml0LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBNYXRTb3J0LE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQge1xyXG4gIFNlbGVjdGVkT2ZmZW5kZXIsXHJcbiAgTG9naW5TdGFmZixcclxuICBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcsXHJcbiAgQWNjZXNzVHlwZSxcclxufSBmcm9tIFwiQGNzbWFydC9uZ2Mtc21hcnQtY29yZVwiO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbVNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWxlbWVudHNWaWN0aW0sIFZpY3RpbUxpc3RGaWx0ZXIsIFZpY3RpbSwgU01BUlRfV0FSUkFOVF9VUkwgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5tb2RlbCc7XHJcbmltcG9ydCB7IFNtYXJ0VmljdGltRGVsZXRlQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtdmljdGltLWRlbGV0ZS1jb25maXJtLmNvbXBvbmVudCc7XHJcbi8vaW1wb3J0IHsgU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS1kZXRhaWwvc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHtcclxuICBJbnRha2VTdGVwU3RhdHVzTW9kZWwsXHJcbiAgSW50YWtlU3RlcCxcclxuICBJbnRha2VTZXJ2aWNlc0NvbXBvbmVudCxcclxufSBmcm9tICcuL2ludGFrZS5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY3NtYXJ0LXZpY3RpbVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc21hcnQtdmljdGltLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHN0YWZmSWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBzdGFmZlJvbGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93Q2FzZU5vdGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93U2FmZXR5UGxhbjogc3RyaW5nO1xyXG4gIC8vQElucHV0KCkgc2hvd0FkZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBZGQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0VkaXQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93UmVsYXRpb25zaGlwQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlck5hbWVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd09mZmVuZGVyUGhvbmVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaEZvcm06IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWNjZXNzQnlNb2R1bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnRha2VGbGFnOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYXBwTW9kdWxlSWQgPSAnJztcclxuICBASW5wdXQoKSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBudWxsO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG4gIC8vIEBWaWV3Q2hpbGQoU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQpIGNoaWxkO1xyXG5cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICB2aWN0aW1zOiBWaWN0aW1bXSA9IFtdO1xyXG4gIHZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgc2hvd0RldGFpbCA9IGZhbHNlO1xyXG4gIHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSBuZXcgVmljdGltTGlzdEZpbHRlcigpO1xyXG4gIHZpY3RpbUxpc3REYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGRvU3BpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dMaXN0RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1zZzogc3RyaW5nID0gXCJcIjtcclxuICBpc0ludGFrZSA9IGZhbHNlO1xyXG5cclxuICB1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XHJcbiAgY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHZpY3RpbVNlcnZpY2U6IE5nY1NtYXJ0VmljdGltU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBpbnRha2VTZXJ2aWNlOiBJbnRha2VTZXJ2aWNlc0NvbXBvbmVudCxcclxuICAgIEBJbmplY3QoU01BUlRfV0FSUkFOVF9VUkwpIHByaXZhdGUgc21hcnRXYXJyYW50VXJsOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcclxuICApIHt9XHJcblxyXG4gIC8vIHByaXZhdGUgb25DaGFuZ2UoZmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyKSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnZmlsdGVyIGluIG9uY2hhbmdlJyk7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhmaWx0ZXIpO1xyXG4gIC8vICAgdGhpcy5nZXRWaWN0aW1MaXN0KGZpbHRlcik7XHJcbiAgLy8gfVxyXG5cclxuICBhcHBseUZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICBhZGRSZWNvcmQoKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93QWRkID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IG51bGw7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZWRpdFZpY3RpbURldGFpbChyZWNvcmQpIHtcclxuICAgIGNvbnNvbGUubG9nKFwidmljdGltIGVkaXQgcmVjb3JkXCIpO1xyXG4gICAgY29uc29sZS5sb2cocmVjb3JkKTtcclxuICAgIGNvbnNvbGUubG9nKHJlY29yZC52aWN0aW1JZCk7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IHJlY29yZDtcclxuICAgIHRoaXMuc2hvd0RldGFpbCA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dBZGQgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzYXZlKGRldGFpbDogVmljdGltKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0FkZCA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSBmYWxzZTtcclxuICAgIHRoaXMudmljdGltRGV0YWlsID0gPFZpY3RpbT57fTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgICB0aGlzLnVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLlVQREFURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICAgICB0aGlzLmNyZWF0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkNSRUFURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICAgICB0aGlzLmRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkRFTEVURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdmFyIGRhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XHJcbiAgICB2YXIgbXlQYXRoID0gdGhpcy5yb3V0ZXIudXJsLnNsaWNlKC0xMCk7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJzbWFydC12aWN0aW0gbmdPbkluaXRcIik7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmludGFrZUZsYWcpO1xyXG4gICAgY29uc29sZS5sb2cobXlQYXRoKTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnRha2VGbGFnIHx8IG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIikge1xyXG4gICAgICB0aGlzLmlzSW50YWtlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbXCJsYXN0TmFtZVwiLCBcImZpcnN0TmFtZVwiXTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2hvd1JlbGF0aW9uc2hpcENvbHVtbiA9PSB0cnVlIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUxpc3RcIiB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1Ib21lXCJcclxuICAgICkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChcInJlbGF0aW9uc2hpcFwiKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNob3dPZmZlbmRlck5hbWVDb2x1bW4gPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChcIm9mZmVuZGVyTmFtZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2hvd09mZmVuZGVyUGhvbmVDb2x1bW4gPT0gdHJ1ZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJob21lUGhvbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJ2aWN0aW1JZFwiKTtcclxuXHJcbiAgICBpZiAodGhpcy5zaG93U2VhcmNoRm9ybSA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLnNob3dTZWFyY2hGb3JtXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zaG93U2VhcmNoRm9ybSk7XHJcbiAgICBjb25zb2xlLmxvZyhcIm15UGF0aFwiKTtcclxuICAgIGNvbnNvbGUubG9nKG15UGF0aCk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dTZWFyY2hGb3JtID09IGZhbHNlIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUxpc3RcIiB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1Ib21lXCJcclxuICAgICkge1xyXG4gICAgICB2YXIgbXlPZmZlbmRlcklkO1xyXG4gICAgICBpZiAodGhpcy5vZmZlbmRlcklkKSB7XHJcbiAgICAgICAgbXlPZmZlbmRlcklkID0gdGhpcy5vZmZlbmRlcklkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiYmFjayBmcm9tIHByZXZpb3VzIHBhZ2VcIik7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3dSZWxhdGlvbnNoaXBDb2x1bW4gPSB0cnVlO1xyXG4gICAgICAgIC8vdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJyZWxhdGlvbnNoaXBcIik7XHJcbiAgICAgICAgdGhpcy5zaG93T2ZmZW5kZXJQaG9uZUNvbHVtbiA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJob21lUGhvbmVcIik7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NCeU1vZHVsZSA9IFwidHJ1ZVwiO1xyXG4gICAgICAgIHRoaXMuc2hvd0VkaXQgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dDYXNlTm90ZSA9IFwidHJ1ZVwiO1xyXG4gICAgICAgIHRoaXMuc2hvd1NhZmV0eVBsYW4gPSBcInRydWVcIjtcclxuXHJcbiAgICAgICAgbXlPZmZlbmRlcklkID0gZGF0YS5zZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSB7XHJcbiAgICAgICAgb2ZmZW5kZXJJZDogbXlPZmZlbmRlcklkLFxyXG4gICAgICAgIGxhc3ROYW1lOiBudWxsLFxyXG4gICAgICAgIGZpcnN0TmFtZTogbnVsbCxcclxuICAgICAgICBwZGlkOiBudWxsLFxyXG4gICAgICAgIGJpcnRoRGF0ZTogbnVsbCxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwidmljdGltTGlzdEZpbHRlciBpbiBzbWFyLXZpY3RpbSBjb21wb25lbmV0XCIpO1xyXG4gICAgICBjb25zb2xlLmxvZyh2aWN0aW1MaXN0RmlsdGVyKTtcclxuXHJcbiAgICAgIHRoaXMudmljdGltU2VydmljZVxyXG4gICAgICAgIC5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIodmljdGltTGlzdEZpbHRlcilcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuXHJcbiAgICAgICAgICB0aGlzLnZpY3RpbXMgPSBkYXRhO1xyXG5cclxuICAgICAgICAgIGRhdGEuZm9yRWFjaCgoZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZC5ob21lUGhvbmUgPT0gbnVsbCB8fCBkLmhvbWVQaG9uZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgZC5ob21lUGhvbmUgPSBkLmNlbGxQaG9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZC5ob21lUGhvbmUgPT0gbnVsbCB8fCBkLmhvbWVQaG9uZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgZC5ob21lUGhvbmUgPSBkLndvcmtQaG9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBkYXRhIGF0IGxpbmUgMTc5XCIpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1zKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwic2hvd0xpc3RGbGFnXCIpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy5zaG93TGlzdEZsYWcpO1xyXG4gICAgICAgICAgdGhpcy5zaG93TGlzdEZsYWcgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5tc2cgPSBcIk5vIFJlY29yZCBGb3VuZCFcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmluZCBmaWx0ZXJcIik7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltTGlzdEZpbHRlcik7XHJcblxyXG4gICAgICBpZiAodGhpcy5zaG93TGlzdEZsYWcgPT09IHRydWUpIHtcclxuICAgICAgICBpZiAodGhpcy52aWN0aW1MaXN0RmlsdGVyICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMudmljdGltU2VydmljZVxyXG4gICAgICAgICAgICAuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKHRoaXMudmljdGltTGlzdEZpbHRlcilcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogVmljdGltW10pID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMudmljdGltcyA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJ2aWN0aW0gZGF0YSBhdCBsaW5lIDIwMVwiKTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtYXRQaG9uZU51bWJlcihwaG9uZU51bWJlclN0cmluZykge1xyXG4gICAgaWYgKCFwaG9uZU51bWJlclN0cmluZykgcmV0dXJuIFwiXCI7XHJcbiAgICB2YXIgY2xlYW5lZCA9IChcIlwiICsgcGhvbmVOdW1iZXJTdHJpbmcpLnJlcGxhY2UoL1xcRC9nLCBcIlwiKTtcclxuICAgIHZhciBtYXRjaCA9IGNsZWFuZWQubWF0Y2goL14oXFxkezN9KShcXGR7M30pKFxcZHs0fSkkLyk7XHJcbiAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgcmV0dXJuIFwiKFwiICsgbWF0Y2hbMV0gKyBcIikgXCIgKyBtYXRjaFsyXSArIFwiLVwiICsgbWF0Y2hbM107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHNhdmVJbnRha2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNJbnRha2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW50YWtlU3RlcCA9IDxJbnRha2VTdGVwU3RhdHVzTW9kZWw+e1xyXG4gICAgICBpbnRha2VTdGVwSWQ6IEludGFrZVN0ZXAuVmljdGltSW5mb3JtYXRpb24sXHJcbiAgICAgIG9mZmVuZGVySWQ6IHRoaXMub2ZmZW5kZXJJZCxcclxuICAgICAgbW9kaWZpZWRCeTogdGhpcy5zdGFmZklkLFxyXG4gICAgfTtcclxuICAgIHRoaXMuaW50YWtlU2VydmljZVxyXG4gICAgICAudXBkYXRlSW50YWtlU3RlcHModGhpcy5vZmZlbmRlcklkLCBpbnRha2VTdGVwKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInNhdmUgaW50YWtlIHN0ZXAuXCIpO1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihcIlN0YXR1cyBTYXZlZC5cIiwgXCJcIiwge1xyXG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy90aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy93YXJyYW50ICddLCB7IHF1ZXJ5UGFyYW1zOiB7IGludGFrZTogMSB9IH0pO1xyXG5cclxuICAgICAgICB0aGlzLmRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBgJHt0aGlzLnNtYXJ0V2FycmFudFVybH0vd2FycmFudGA7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0Nhc2VOb3RlKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImNhc2Vub3RlXCIsIHZpY3RpbUlkXSk7XHJcbiAgfVxyXG5cclxuICBnb1RvU2FmdHlQbGFuKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcInNhZnR5UGxhblwiLCB2aWN0aW1JZF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmljdGltTGlzdChmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpIHtcclxuICAgIHRoaXMudmljdGltTGlzdEZpbHRlciA9IGZpbHRlcjtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy52aWN0aW1MaXN0RmlsdGVyIGluc2lkZSBnZXRWaWN0aW1MaXN0XCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1MaXN0RmlsdGVyKTtcclxuICAgIHRoaXMuZG9TcGluID0gdHJ1ZTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIoZmlsdGVyKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcblxyXG4gICAgICAgIHRoaXMuZG9TcGluID0gIXRoaXMuZG9TcGluO1xyXG5cclxuICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXNnID0gXCJObyByZWNvcmQgZm91bmQhXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb1NwaW4gPSAhdGhpcy5kb1NwaW47XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==