@csmart/ngc-smart-victim 1.14.43 → 1.18.1
Sign up to get free protection for your applications and to get access to all the features.
- package/{esm2020 → esm2022}/csmart-ngc-smart-victim.mjs +4 -4
- package/esm2022/lib/caseNote/caseNote.component.mjs +194 -0
- package/esm2022/lib/common-dialog/common-dialog.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/common-dialog/common-dialog.module.mjs +34 -34
- package/{esm2020 → esm2022}/lib/common-dialog/common-dialog.service.mjs +33 -33
- package/esm2022/lib/contact/contact.component.mjs +140 -0
- package/{esm2020 → esm2022}/lib/email.services.mjs +29 -29
- package/esm2022/lib/intake.service.mjs +57 -0
- package/{esm2020 → esm2022}/lib/safetyPlan/serviceProvider.component.mjs +62 -62
- package/esm2022/lib/safetyPlan/victimSafetyPlan.component.mjs +116 -0
- package/esm2022/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +340 -0
- package/{esm2020 → esm2022}/lib/shared/app.shared.module.mjs +215 -215
- package/esm2022/lib/shared/validators/date.validator.mjs +59 -0
- package/{esm2020 → esm2022}/lib/shared/validators/index.mjs +1 -1
- package/esm2022/lib/smart-victim-delete-confirm.component.mjs +44 -0
- package/esm2022/lib/smart-victim-detail/smart-victim-detail.component.mjs +1104 -0
- package/esm2022/lib/smart-victim.component.mjs +314 -0
- package/{esm2020 → esm2022}/lib/smart-victim.model.mjs +132 -132
- package/{esm2020 → esm2022}/lib/smart-victim.module.mjs +128 -128
- package/esm2022/lib/smart-victim.service.mjs +352 -0
- package/{esm2020 → esm2022}/lib/victim-routing.module.mjs +41 -41
- package/{esm2020 → esm2022}/lib/victimSearch/VictimSearchFilter.mjs +2 -2
- package/esm2022/lib/victimSearch/victimSearchForm.component.mjs +38 -0
- package/{esm2020 → esm2022}/public-api.mjs +10 -10
- package/fesm2022/csmart-ngc-smart-victim.mjs +3261 -0
- package/fesm2022/csmart-ngc-smart-victim.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/caseNote/caseNote.component.d.ts +51 -51
- package/lib/common-dialog/common-dialog.component.d.ts +14 -14
- package/lib/common-dialog/common-dialog.module.d.ts +8 -8
- package/lib/common-dialog/common-dialog.service.d.ts +11 -11
- package/lib/contact/contact.component.d.ts +40 -40
- package/lib/email.services.d.ts +11 -11
- package/lib/intake.service.d.ts +57 -57
- package/lib/safetyPlan/serviceProvider.component.d.ts +19 -19
- package/lib/safetyPlan/victimSafetyPlan.component.d.ts +54 -54
- package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +62 -62
- package/lib/shared/app.shared.module.d.ts +33 -33
- package/lib/shared/validators/date.validator.d.ts +9 -9
- package/lib/shared/validators/index.d.ts +1 -1
- package/lib/smart-victim-delete-confirm.component.d.ts +12 -12
- package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +129 -129
- package/lib/smart-victim.component.d.ts +68 -68
- package/lib/smart-victim.model.d.ts +205 -205
- package/lib/smart-victim.module.d.ts +49 -49
- package/lib/smart-victim.service.d.ts +71 -71
- package/lib/victim-routing.module.d.ts +7 -7
- package/lib/victimSearch/VictimSearchFilter.d.ts +7 -7
- package/lib/victimSearch/victimSearchForm.component.d.ts +14 -14
- package/package.json +5 -11
- package/public-api.d.ts +7 -7
- package/esm2020/lib/caseNote/caseNote.component.mjs +0 -194
- package/esm2020/lib/common-dialog/common-dialog.component.mjs +0 -23
- package/esm2020/lib/contact/contact.component.mjs +0 -140
- package/esm2020/lib/intake.service.mjs +0 -57
- package/esm2020/lib/safetyPlan/victimSafetyPlan.component.mjs +0 -116
- package/esm2020/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +0 -340
- package/esm2020/lib/shared/validators/date.validator.mjs +0 -59
- package/esm2020/lib/smart-victim-delete-confirm.component.mjs +0 -44
- package/esm2020/lib/smart-victim-detail/smart-victim-detail.component.mjs +0 -1104
- package/esm2020/lib/smart-victim.component.mjs +0 -314
- package/esm2020/lib/smart-victim.service.mjs +0 -352
- package/esm2020/lib/victimSearch/victimSearchForm.component.mjs +0 -38
- package/fesm2015/csmart-ngc-smart-victim.mjs +0 -3273
- package/fesm2015/csmart-ngc-smart-victim.mjs.map +0 -1
- package/fesm2020/csmart-ngc-smart-victim.mjs +0 -3261
- package/fesm2020/csmart-ngc-smart-victim.mjs.map +0 -1
@@ -1,140 +0,0 @@
|
|
1
|
-
import { Component } from '@angular/core';
|
2
|
-
import { NgcSmartVictimService } from '../smart-victim.service';
|
3
|
-
import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
4
|
-
import { Router, ActivatedRoute } from '@angular/router';
|
5
|
-
import { SmartAuthService } from '@csmart/ngc-smart-core';
|
6
|
-
import { dateValidator } from '../shared/validators';
|
7
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "../smart-victim.service";
|
10
|
-
import * as i2 from "@angular/material/snack-bar";
|
11
|
-
import * as i3 from "@angular/router";
|
12
|
-
import * as i4 from "@csmart/ngc-smart-core";
|
13
|
-
import * as i5 from "@angular/common";
|
14
|
-
import * as i6 from "@angular/forms";
|
15
|
-
import * as i7 from "@angular/material/button";
|
16
|
-
import * as i8 from "@angular/material/card";
|
17
|
-
import * as i9 from "@angular/material/toolbar";
|
18
|
-
import * as i10 from "@angular/cdk/text-field";
|
19
|
-
import * as i11 from "@angular/material/form-field";
|
20
|
-
import * as i12 from "@angular/material/input";
|
21
|
-
import * as i13 from "@angular/material/datepicker";
|
22
|
-
import * as i14 from "@angular/material/select";
|
23
|
-
import * as i15 from "@angular/material/core";
|
24
|
-
export class ContactComponent {
|
25
|
-
constructor(_victimServicesComponent,
|
26
|
-
//private commonDialogService: CommonDialogService,
|
27
|
-
snackBar, route, router, smartAuthService) {
|
28
|
-
this._victimServicesComponent = _victimServicesComponent;
|
29
|
-
this.snackBar = snackBar;
|
30
|
-
this.route = route;
|
31
|
-
this.router = router;
|
32
|
-
this.smartAuthService = smartAuthService;
|
33
|
-
this.editContact = {};
|
34
|
-
this.staff = {};
|
35
|
-
this.contactForm = new UntypedFormGroup({
|
36
|
-
//contactDate: new FormControl(),
|
37
|
-
contactDate: new UntypedFormControl('', Validators.compose([
|
38
|
-
dateValidator()
|
39
|
-
])),
|
40
|
-
contactMethod: new UntypedFormControl(),
|
41
|
-
contactBy: new UntypedFormControl(),
|
42
|
-
comment: new UntypedFormControl(),
|
43
|
-
nextContactDate: new UntypedFormControl()
|
44
|
-
});
|
45
|
-
}
|
46
|
-
ngAfterViewInit() {
|
47
|
-
this.smartAuthService.setPermission('Victim', this.route.snapshot);
|
48
|
-
}
|
49
|
-
ngOnInit() {
|
50
|
-
var data = this.route.snapshot.data;
|
51
|
-
this.loginStaff = data.loginStaff;
|
52
|
-
this.staffId = this.loginStaff.staffId;
|
53
|
-
this.staff = [
|
54
|
-
{
|
55
|
-
staffId: this.loginStaff.staffId,
|
56
|
-
fullName: this.loginStaff.firstName + ' ' + this.loginStaff.lastName,
|
57
|
-
},
|
58
|
-
];
|
59
|
-
this.sub = this.route.params.subscribe(params => {
|
60
|
-
this.victimId = params['victimId'];
|
61
|
-
console.log('my this.victimId');
|
62
|
-
console.log(this.victimId);
|
63
|
-
});
|
64
|
-
this._victimServicesComponent.getContactMethods().subscribe((items) => {
|
65
|
-
this.contactMethods = items;
|
66
|
-
console.log('this.contactMethods');
|
67
|
-
console.log(this.contactMethods);
|
68
|
-
});
|
69
|
-
// this._victimServicesComponent.getContactBys().subscribe(
|
70
|
-
// (items: any) => {
|
71
|
-
// this.contactBy= items;
|
72
|
-
// }
|
73
|
-
// );
|
74
|
-
// this._victimServicesComponent.getContacts(this.victimId).subscribe(
|
75
|
-
// caseNoteList => {
|
76
|
-
// this.caseNoteList = caseNoteList;
|
77
|
-
// }
|
78
|
-
// );
|
79
|
-
}
|
80
|
-
onEditContact(victimContactId) {
|
81
|
-
// this.hiddenDetailFlag =false;
|
82
|
-
// this.hiddenAddNewFlag = true;
|
83
|
-
// this.addDisableFlag = true;
|
84
|
-
// this.editCaseNote = this.caseNoteList.find(x => x.victimCaseNoteId === victimCaseNoteId);
|
85
|
-
}
|
86
|
-
// onDeleteCaseNote(victimCaseNoteId: number){
|
87
|
-
// this.commonDialogService
|
88
|
-
// .confirm('', 'Do you want to delete this case note?', 'Yes', 'No')
|
89
|
-
// .subscribe(res => {this.result = res;
|
90
|
-
// if (this.result) {
|
91
|
-
// this._victimServicesComponent.deleteCaseNote(victimCaseNoteId, this.staffId)
|
92
|
-
// .subscribe(result => {
|
93
|
-
// this.snackBar.open('delete Successfully !', '', { duration: 3000,});
|
94
|
-
// this._victimServicesComponent.getCasetNotes(this.victimId).subscribe(
|
95
|
-
// caseNoteList => {
|
96
|
-
// this.caseNoteList = caseNoteList;
|
97
|
-
// }
|
98
|
-
// );
|
99
|
-
// }
|
100
|
-
// );
|
101
|
-
// }
|
102
|
-
// });
|
103
|
-
// }
|
104
|
-
onAddNew() {
|
105
|
-
// this.editCas.caseNoteDate = null;
|
106
|
-
// this.editCaseNote.contactTypeId = null;
|
107
|
-
// this.editCaseNote.victimContactPurposeId = null;
|
108
|
-
// this.editCaseNote.comment = null;
|
109
|
-
}
|
110
|
-
back() {
|
111
|
-
this.router.navigate(['victimDetail', this.victimId]);
|
112
|
-
}
|
113
|
-
saveContact() {
|
114
|
-
const contact = {
|
115
|
-
victimId: this.victimId,
|
116
|
-
victimContactId: 0,
|
117
|
-
contactDate: this.editContact.contactDate,
|
118
|
-
victimContactMethodId: this.editContact.victimContactMethodId,
|
119
|
-
contactMethod: null,
|
120
|
-
contactedByName: null,
|
121
|
-
contactedBy: this.editContact.contactedBy,
|
122
|
-
comment: this.editContact.comment,
|
123
|
-
nextContactDate: this.editContact.nextContactDate,
|
124
|
-
modifiedBy: this.staffId,
|
125
|
-
};
|
126
|
-
this._victimServicesComponent.addContact(contact).subscribe(result => {
|
127
|
-
this.snackBar.open('Saved Successfully !', '', {
|
128
|
-
duration: 3000,
|
129
|
-
});
|
130
|
-
this.router.navigate(['victimDetail', this.victimId]);
|
131
|
-
});
|
132
|
-
}
|
133
|
-
}
|
134
|
-
/** @nocollapse */ ContactComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ContactComponent, deps: [{ token: i1.NgcSmartVictimService }, { token: i2.MatSnackBar }, { token: i3.ActivatedRoute }, { token: i3.Router }, { token: i4.SmartAuthService }], target: i0.ɵɵFactoryTarget.Component });
|
135
|
-
/** @nocollapse */ ContactComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ContactComponent, selector: "ng-component", ngImport: i0, template: "\r\n <mat-card>\r\n <mat-card-header>\r\n\r\n </mat-card-header>\r\n <mat-card-content>\r\n \r\n <mat-toolbar color=\"primary\">\r\n <h4 class=\"card-header\" >Contact detail</h4>\r\n </mat-toolbar>\r\n <br>\r\n \r\n\r\n \r\n <mat-card >\r\n <div class='container'> \r\n <form [formGroup]=\"contactForm\" #contactDetailForm=\"ngForm\" >\r\n \r\n \r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Contact Date:</mat-label>\r\n <input matInput formControlName=\"contactDate\" \r\n (click)=\"contactDate.open()\" \r\n [matDatepicker]=\"contactDate\" \r\n placeholder=\"Choose a contact date\" \r\n [(ngModel)]=\"editContact.contactDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"contactDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #contactDate></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <div class=\"validation-errors\">\r\n <div\r\n class=\"help-block\"\r\n *ngIf=\"\r\n contactForm\r\n .get('contactDate')\r\n .hasError('required') &&\r\n (contactForm.get('contactDate').dirty ||\r\n contactForm.get('contactDate').touched)\">\r\n <mat-error>Contact date is\r\n <strong>required</strong></mat-error>\r\n </div>\r\n <div\r\n class=\"help-block\"\r\n *ngIf=\"\r\n contactForm.get('contactDate').hasError('date') &&\r\n (contactForm.get('contactDate').dirty ||\r\n contactForm.get('contactDate').touched)\">\r\n <mat-error >future Date is <strong>not allowed</strong> for contact date</mat-error>\r\n </div>\r\n </div>\r\n </div> \r\n \r\n \r\n\r\n <div>\r\n <mat-form-field>\r\n <mat-label>Contact Method:</mat-label>\r\n <mat-select placeholder=\"contactMethod\" formControlName=\"contactMethod\" required [(ngModel)]=\"editContact.victimContactMethodId\">\r\n <mat-option *ngFor=\" let contactMethod of contactMethods\" [value]=\"contactMethod.victimContactMethodId\" >{{contactMethod.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n \r\n <div> \r\n <mat-form-field class=\"mat-select-content\">\r\n <mat-label>Contact By:</mat-label>\r\n <mat-select formControlName=\"contactBy\" required [(ngModel)]=\"editContact.contactedBy\" class=\"mat-select-inner\">\r\n <mat-option *ngFor=\" let item of staff\" [value]=\"item.staffId\" >{{ item.fullName}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n\r\n <mat-form-field>\r\n <mat-label>Comments </mat-label>\r\n <textarea \r\n matInput \r\n placeholder=\"\" \r\n required formControlName=\"comment\" \r\n [(ngModel)]=\"editContact.comment\"\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\">\r\n </textarea> \r\n </mat-form-field>\r\n </div>\r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Next Contact Date: </mat-label>\r\n <input matInput formControlName=\"nextContactDate\" \r\n (click)=\"nextContactDate.open()\" \r\n [matDatepicker]=\"nextContactDate\" \r\n placeholder=\"Choose a next contact date\" \r\n [(ngModel)]=\"editContact.nextContactDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"nextContactDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #nextContactDate></mat-datepicker>\r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n <!-- <button mat-raised-button color=\"primary\" (click)=\"saveContact()\" [disabled]=\"!contactForm.form.valid\" >Save</button> -->\r\n <button mat-raised-button color=\"primary\" (click)=\"saveContact()\" [disabled]=\"!contactForm.valid\" >Save</button>\r\n <button mat-raised-button color=\"primary\" >Cancel</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"back()\" >Back</button>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </mat-card>\r\n \r\n \r\n <br>\r\n \r\n\r\n\r\n\r\n</mat-card-content>\r\n</mat-card>", styles: ["mat-form-field{width:50%}.container{margin:16px;display:grid;grid-template-columns:repeat(1,1fr);grid-gap:10px;grid-auto-rows:minmax(50px,auto);justify-items:stretch}.mat-select-content{width:300px}.mat-select-inner{width:290px}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i8.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i10.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i11.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "directive", type: i11.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i13.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i13.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i13.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i14.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i15.MatOption, selector: "mat-option", exportAs: ["matOption"] }] });
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ContactComponent, decorators: [{
|
137
|
-
type: Component,
|
138
|
-
args: [{ template: "\r\n <mat-card>\r\n <mat-card-header>\r\n\r\n </mat-card-header>\r\n <mat-card-content>\r\n \r\n <mat-toolbar color=\"primary\">\r\n <h4 class=\"card-header\" >Contact detail</h4>\r\n </mat-toolbar>\r\n <br>\r\n \r\n\r\n \r\n <mat-card >\r\n <div class='container'> \r\n <form [formGroup]=\"contactForm\" #contactDetailForm=\"ngForm\" >\r\n \r\n \r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Contact Date:</mat-label>\r\n <input matInput formControlName=\"contactDate\" \r\n (click)=\"contactDate.open()\" \r\n [matDatepicker]=\"contactDate\" \r\n placeholder=\"Choose a contact date\" \r\n [(ngModel)]=\"editContact.contactDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"contactDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #contactDate></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <div class=\"validation-errors\">\r\n <div\r\n class=\"help-block\"\r\n *ngIf=\"\r\n contactForm\r\n .get('contactDate')\r\n .hasError('required') &&\r\n (contactForm.get('contactDate').dirty ||\r\n contactForm.get('contactDate').touched)\">\r\n <mat-error>Contact date is\r\n <strong>required</strong></mat-error>\r\n </div>\r\n <div\r\n class=\"help-block\"\r\n *ngIf=\"\r\n contactForm.get('contactDate').hasError('date') &&\r\n (contactForm.get('contactDate').dirty ||\r\n contactForm.get('contactDate').touched)\">\r\n <mat-error >future Date is <strong>not allowed</strong> for contact date</mat-error>\r\n </div>\r\n </div>\r\n </div> \r\n \r\n \r\n\r\n <div>\r\n <mat-form-field>\r\n <mat-label>Contact Method:</mat-label>\r\n <mat-select placeholder=\"contactMethod\" formControlName=\"contactMethod\" required [(ngModel)]=\"editContact.victimContactMethodId\">\r\n <mat-option *ngFor=\" let contactMethod of contactMethods\" [value]=\"contactMethod.victimContactMethodId\" >{{contactMethod.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n \r\n <div> \r\n <mat-form-field class=\"mat-select-content\">\r\n <mat-label>Contact By:</mat-label>\r\n <mat-select formControlName=\"contactBy\" required [(ngModel)]=\"editContact.contactedBy\" class=\"mat-select-inner\">\r\n <mat-option *ngFor=\" let item of staff\" [value]=\"item.staffId\" >{{ item.fullName}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n\r\n <mat-form-field>\r\n <mat-label>Comments </mat-label>\r\n <textarea \r\n matInput \r\n placeholder=\"\" \r\n required formControlName=\"comment\" \r\n [(ngModel)]=\"editContact.comment\"\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\">\r\n </textarea> \r\n </mat-form-field>\r\n </div>\r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Next Contact Date: </mat-label>\r\n <input matInput formControlName=\"nextContactDate\" \r\n (click)=\"nextContactDate.open()\" \r\n [matDatepicker]=\"nextContactDate\" \r\n placeholder=\"Choose a next contact date\" \r\n [(ngModel)]=\"editContact.nextContactDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"nextContactDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #nextContactDate></mat-datepicker>\r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n <!-- <button mat-raised-button color=\"primary\" (click)=\"saveContact()\" [disabled]=\"!contactForm.form.valid\" >Save</button> -->\r\n <button mat-raised-button color=\"primary\" (click)=\"saveContact()\" [disabled]=\"!contactForm.valid\" >Save</button>\r\n <button mat-raised-button color=\"primary\" >Cancel</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"back()\" >Back</button>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </mat-card>\r\n \r\n \r\n <br>\r\n \r\n\r\n\r\n\r\n</mat-card-content>\r\n</mat-card>", styles: ["mat-form-field{width:50%}.container{margin:16px;display:grid;grid-template-columns:repeat(1,1fr);grid-gap:10px;grid-auto-rows:minmax(50px,auto);justify-items:stretch}.mat-select-content{width:300px}.mat-select-inner{width:290px}\n"] }]
|
139
|
-
}], ctorParameters: function () { return [{ type: i1.NgcSmartVictimService }, { type: i2.MatSnackBar }, { type: i3.ActivatedRoute }, { type: i3.Router }, { type: i4.SmartAuthService }]; } });
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvY29udGFjdC9jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9jb250YWN0L2NvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBdUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFjLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlGLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBaUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTFELE1BQU0sT0FBTyxnQkFBZ0I7SUFrQjNCLFlBRVUsd0JBQStDO0lBQ3ZELG1EQUFtRDtJQUM1QyxRQUFxQixFQUNwQixLQUFxQixFQUNyQixNQUFjLEVBQ2QsZ0JBQWtDO1FBTGxDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBdUI7UUFFaEQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNwQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXBCNUMsZ0JBQVcsR0FBcUIsRUFBRSxDQUFDO1FBV25DLFVBQUssR0FBUSxF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QUFJLENBQUMsUUFBUSxDQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsV0FBVztRQUVMLE1BQU0sT0FBTyxHQUFZO1lBQ3pCLFFBQVEsRUFBQyxJQUFJLENBQUMsUUFBUTtZQUN0QixlQUFlLEVBQUUsQ0FBQztZQUNsQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXO1lBQ3pDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCO1lBQzdELGFBQWEsRUFBRSxJQUFJO1lBQ25CLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVc7WUFDekMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTztZQUNqQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlO1lBQ2pELFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTztTQUUzQixDQUFDO1FBQ0YsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQ3pELE1BQU0sQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxFQUFFO2dCQUM3QyxRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQ0YsQ0FBQztJQUNGLENBQUM7O2dJQTdKUSxnQkFBZ0I7b0hBQWhCLGdCQUFnQixvRENoQjdCLG82U0EySFc7MkZEM0dFLGdCQUFnQjtrQkFKNUIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LEluamVjdCxPbkNoYW5nZXMsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlcixBZnRlclZpZXdJbml0ICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbVNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tbW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi9jb21tb24tZGlhbG9nL2NvbW1vbi1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEF9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFNlbGVjdGVkT2ZmZW5kZXIsIExvZ2luU3RhZmYgfSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbnRhY3R9IGZyb20gJy4uL3NtYXJ0LXZpY3RpbS5tb2RlbCc7XHJcbmltcG9ydCB7IFNtYXJ0QXV0aFNlcnZpY2UgfSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1jb3JlJztcclxuaW1wb3J0IHsgZGF0ZVZhbGlkYXRvcixwYXNzRGF0ZVZhbGlkYXRvcixkYXRlTGVzc1RoYW4gfSBmcm9tICcuLi9zaGFyZWQvdmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0LmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRhY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJWaWV3SW5pdCAge1xyXG5cclxuICBvZmZlbmRlcklkOiBudW1iZXI7XHJcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcclxuICBjb250YWN0OiBDb250YWN0O1xyXG4gIGVkaXRDb250YWN0OiBDb250YWN0ID0gPENvbnRhY3Q+e307XHJcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgY29udGFjdE1ldGhvZHM6IGFueVtdO1xyXG4gIGNvbnRhY3RCeTogYW55W107XHJcbiAgcmVzdWx0OiBhbnk7XHJcbiAgdmljdGltTmFtZTogc3RyaW5nO1xyXG4gIHN0YWZmSWQ6IG51bWJlcjtcclxuICB2aWN0aW1JZDogbnVtYmVyO1xyXG4gIGhpZGRlbkFkZE5ld0ZsYWc6IGJvb2xlYW47XHJcbiAgY29udGFjdEZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHJpdmF0ZSBzdWI6IGFueTtcclxuICBzdGFmZjogYW55ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG5cclxuICAgIHByaXZhdGUgX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50OiBOZ2NTbWFydFZpY3RpbVNlcnZpY2UsXHJcbiAgICAvL3ByaXZhdGUgY29tbW9uRGlhbG9nU2VydmljZTogQ29tbW9uRGlhbG9nU2VydmljZSxcclxuICAgIHB1YmxpYyBzbmFja0JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHNtYXJ0QXV0aFNlcnZpY2U6IFNtYXJ0QXV0aFNlcnZpY2UsXHJcbiAgICAgXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRhY3RGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xyXG4gICAgICAvL2NvbnRhY3REYXRlOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgY29udGFjdERhdGU6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgICBkYXRlVmFsaWRhdG9yKClcdCAgXSkpLFxyXG5cclxuICAgICAgY29udGFjdE1ldGhvZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxyXG4gICAgICBjb250YWN0Qnk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcclxuICAgICAgY29tbWVudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxyXG4gICAgICBuZXh0Q29udGFjdERhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zbWFydEF1dGhTZXJ2aWNlLnNldFBlcm1pc3Npb24oJ1ZpY3RpbScsIHRoaXMucm91dGUuc25hcHNob3QpO1xyXG4gIH1cclxuIFxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdmFyIGRhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XHJcbiAgICB0aGlzLmxvZ2luU3RhZmYgPSBkYXRhLmxvZ2luU3RhZmY7XHJcbiAgICB0aGlzLnN0YWZmSWQgPSAgdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQ7XHJcbiAgIFxyXG4gICAgdGhpcy5zdGFmZiA9IFtcclxuICAgICAge1xyXG4gICAgICAgIHN0YWZmSWQ6IHRoaXMubG9naW5TdGFmZi5zdGFmZklkLFxyXG4gICAgICAgIGZ1bGxOYW1lOiB0aGlzLmxvZ2luU3RhZmYuZmlyc3ROYW1lICsgJyAnICsgdGhpcy5sb2dpblN0YWZmLmxhc3ROYW1lLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgdGhpcy5zdWIgPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy52aWN0aW1JZCA9IHBhcmFtc1sndmljdGltSWQnXTtcclxuICAgICAgY29uc29sZS5sb2coJ215IHRoaXMudmljdGltSWQnKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1JZCk7XHJcbiBcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRDb250YWN0TWV0aG9kcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRhY3RNZXRob2RzID0gaXRlbXM7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuY29udGFjdE1ldGhvZHMnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNvbnRhY3RNZXRob2RzKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRDb250YWN0QnlzKCkuc3Vic2NyaWJlKFxyXG4gICAgLy8gICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgLy8gICAgIHRoaXMuY29udGFjdEJ5PSBpdGVtcztcclxuICAgIC8vICAgfVxyXG4gICAgLy8gKTtcclxuXHJcbiAgICBcclxuICAgIC8vIHRoaXMuX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50LmdldENvbnRhY3RzKHRoaXMudmljdGltSWQpLnN1YnNjcmliZShcclxuICAgIC8vICAgY2FzZU5vdGVMaXN0ID0+IHtcclxuICAgICBcclxuICAgIC8vICAgICB0aGlzLmNhc2VOb3RlTGlzdCA9IGNhc2VOb3RlTGlzdDsgXHJcbiAgICAgIFxyXG4gICAgLy8gICB9XHJcbiAgICAvLyApO1xyXG4gXHJcbiAgfVxyXG4gIG9uRWRpdENvbnRhY3QodmljdGltQ29udGFjdElkOiBudW1iZXIpe1xyXG4gIFxyXG4gICAgLy8gdGhpcy5oaWRkZW5EZXRhaWxGbGFnID1mYWxzZTtcclxuICAgIC8vIHRoaXMuaGlkZGVuQWRkTmV3RmxhZyA9IHRydWU7XHJcblxyXG4gICAgLy8gdGhpcy5hZGREaXNhYmxlRmxhZyA9IHRydWU7XHJcbiAgICAvLyB0aGlzLmVkaXRDYXNlTm90ZSA9IHRoaXMuY2FzZU5vdGVMaXN0LmZpbmQoeCA9PiB4LnZpY3RpbUNhc2VOb3RlSWQgPT09IHZpY3RpbUNhc2VOb3RlSWQpO1xyXG5cclxuICB9XHJcbiBcclxuICAvLyBvbkRlbGV0ZUNhc2VOb3RlKHZpY3RpbUNhc2VOb3RlSWQ6IG51bWJlcil7XHJcbiAgLy8gICAgdGhpcy5jb21tb25EaWFsb2dTZXJ2aWNlXHJcbiAgLy8gICAuY29uZmlybSgnJywgJ0RvIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhc2Ugbm90ZT8nLCAnWWVzJywgJ05vJylcclxuICAvLyAgIC5zdWJzY3JpYmUocmVzID0+IHt0aGlzLnJlc3VsdCA9ICByZXM7XHJcbiAgLy8gICAgICAgaWYgKHRoaXMucmVzdWx0KSB7XHJcbiAgLy8gICAgICAgICAgIHRoaXMuX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50LmRlbGV0ZUNhc2VOb3RlKHZpY3RpbUNhc2VOb3RlSWQsIHRoaXMuc3RhZmZJZClcclxuICAvLyAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignZGVsZXRlIFN1Y2Nlc3NmdWxseSAhJywgJycsIHsgZHVyYXRpb246IDMwMDAsfSk7XHJcblxyXG4gIC8vICAgICAgICAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRDYXNldE5vdGVzKHRoaXMudmljdGltSWQpLnN1YnNjcmliZShcclxuICAvLyAgICAgICAgICAgICBjYXNlTm90ZUxpc3QgPT4ge1xyXG4gIC8vICAgICAgICAgICAgICAgdGhpcy5jYXNlTm90ZUxpc3QgPSBjYXNlTm90ZUxpc3Q7IFxyXG4gICAgICAgICAgICAgIFxyXG4gIC8vICAgICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgKTtcclxuICAvLyAgICAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICAgKTtcclxuICAvLyAgICAgICB9XHJcblxyXG4gIC8vICAgIH0pO1xyXG4gIC8vIH1cclxuICBvbkFkZE5ldygpe1xyXG4gICBcclxuICAgIC8vIHRoaXMuZWRpdENhcy5jYXNlTm90ZURhdGUgPSBudWxsO1xyXG4gICAgLy8gdGhpcy5lZGl0Q2FzZU5vdGUuY29udGFjdFR5cGVJZCA9IG51bGw7XHJcbiAgICAvLyB0aGlzLmVkaXRDYXNlTm90ZS52aWN0aW1Db250YWN0UHVycG9zZUlkID0gbnVsbDtcclxuICAgIC8vIHRoaXMuZWRpdENhc2VOb3RlLmNvbW1lbnQgPSBudWxsO1xyXG4gIH1cclxuICBiYWNrKCl7XHJcblxyXG4gXHJcbiAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbURldGFpbCcsIHRoaXMudmljdGltSWQgXSk7IFxyXG4gIH1cclxuIFxyXG4gIHNhdmVDb250YWN0KCl7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRhY3Q6IENvbnRhY3QgPSB7XHJcbiAgICAgICAgdmljdGltSWQ6dGhpcy52aWN0aW1JZCxcclxuICAgICAgICB2aWN0aW1Db250YWN0SWQ6IDAsXHJcbiAgICAgICAgY29udGFjdERhdGU6IHRoaXMuZWRpdENvbnRhY3QuY29udGFjdERhdGUsXHJcbiAgICAgICAgdmljdGltQ29udGFjdE1ldGhvZElkOiB0aGlzLmVkaXRDb250YWN0LnZpY3RpbUNvbnRhY3RNZXRob2RJZCxcclxuICAgICAgICBjb250YWN0TWV0aG9kOiBudWxsLFxyXG4gICAgICAgIGNvbnRhY3RlZEJ5TmFtZTogbnVsbCxcclxuICAgICAgICBjb250YWN0ZWRCeTogdGhpcy5lZGl0Q29udGFjdC5jb250YWN0ZWRCeSxcclxuICAgICAgICBjb21tZW50OiB0aGlzLmVkaXRDb250YWN0LmNvbW1lbnQsXHJcbiAgICAgICAgbmV4dENvbnRhY3REYXRlOiB0aGlzLmVkaXRDb250YWN0Lm5leHRDb250YWN0RGF0ZSxcclxuICAgICAgICBtb2RpZmllZEJ5OiB0aGlzLnN0YWZmSWQsXHJcbiAgICBcclxuICAgIH07XHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5hZGRDb250YWN0KGNvbnRhY3QpLnN1YnNjcmliZShcclxuICAgICAgcmVzdWx0ID0+IHtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1NhdmVkIFN1Y2Nlc3NmdWxseSAhJywgJycsIHtcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndmljdGltRGV0YWlsJywgdGhpcy52aWN0aW1JZCBdKTsgXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIlxyXG4gPG1hdC1jYXJkPlxyXG4gICAgICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcblxyXG4gICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRvb2xiYXIgIGNvbG9yPVwicHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiY2FyZC1oZWFkZXJcIiA+Q29udGFjdCBkZXRhaWw8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyJz4gICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNvbnRhY3RGb3JtXCIgI2NvbnRhY3REZXRhaWxGb3JtPVwibmdGb3JtXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q29udGFjdCBEYXRlOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb250YWN0RGF0ZVwiICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRhY3REYXRlLm9wZW4oKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImNvbnRhY3REYXRlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDaG9vc2UgYSBjb250YWN0IGRhdGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRDb250YWN0LmNvbnRhY3REYXRlXCIgcmVxdWlyZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImNvbnRhY3REYXRlXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2NvbnRhY3REYXRlPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9ja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3RGb3JtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdjb250YWN0RGF0ZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGFjdEZvcm0uZ2V0KCdjb250YWN0RGF0ZScpLmRpcnR5IHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdEZvcm0uZ2V0KCdjb250YWN0RGF0ZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+Q29udGFjdCBkYXRlIGlzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9ja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3RGb3JtLmdldCgnY29udGFjdERhdGUnKS5oYXNFcnJvcignZGF0ZScpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRhY3RGb3JtLmdldCgnY29udGFjdERhdGUnKS5kaXJ0eSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3RGb3JtLmdldCgnY29udGFjdERhdGUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yID5mdXR1cmUgRGF0ZSBpcyA8c3Ryb25nPm5vdCBhbGxvd2VkPC9zdHJvbmc+IGZvciBjb250YWN0IGRhdGU8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Db250YWN0IE1ldGhvZDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBwbGFjZWhvbGRlcj1cImNvbnRhY3RNZXRob2RcIiBmb3JtQ29udHJvbE5hbWU9XCJjb250YWN0TWV0aG9kXCIgIHJlcXVpcmVkICAgWyhuZ01vZGVsKV09XCJlZGl0Q29udGFjdC52aWN0aW1Db250YWN0TWV0aG9kSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwiIGxldCBjb250YWN0TWV0aG9kIG9mIGNvbnRhY3RNZXRob2RzXCIgW3ZhbHVlXT1cImNvbnRhY3RNZXRob2QudmljdGltQ29udGFjdE1ldGhvZElkXCIgPnt7Y29udGFjdE1ldGhvZC5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+ICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtc2VsZWN0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q29udGFjdCBCeTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJjb250YWN0QnlcIiAgIHJlcXVpcmVkIFsobmdNb2RlbCldPVwiZWRpdENvbnRhY3QuY29udGFjdGVkQnlcIiBjbGFzcz1cIm1hdC1zZWxlY3QtaW5uZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwiIGxldCBpdGVtIG9mIHN0YWZmXCIgW3ZhbHVlXT1cIml0ZW0uc3RhZmZJZFwiID57eyBpdGVtLmZ1bGxOYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q29tbWVudHMgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJjb21tZW50XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRDb250YWN0LmNvbW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2F1dG9zaXplPVwiY2RrVGV4dGFyZWFBdXRvc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0F1dG9zaXplTWF4Um93cz1cIjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk5leHQgQ29udGFjdCBEYXRlOiA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmV4dENvbnRhY3REYXRlXCIgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dENvbnRhY3REYXRlLm9wZW4oKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cIm5leHRDb250YWN0RGF0ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ2hvb3NlIGEgbmV4dCBjb250YWN0IGRhdGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRDb250YWN0Lm5leHRDb250YWN0RGF0ZVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJuZXh0Q29udGFjdERhdGVcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjbmV4dENvbnRhY3REYXRlPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlQ29udGFjdCgpXCIgIFtkaXNhYmxlZF09XCIhY29udGFjdEZvcm0uZm9ybS52YWxpZFwiID5TYXZlPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlQ29udGFjdCgpXCIgW2Rpc2FibGVkXT1cIiFjb250YWN0Rm9ybS52YWxpZFwiID5TYXZlPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7PGJ1dHRvbiAgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgID5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDs8YnV0dG9uICBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYmFjaygpXCIgID5CYWNrPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgXHJcblxyXG5cclxuXHJcbjwvbWF0LWNhcmQtY29udGVudD5cclxuPC9tYXQtY2FyZD4iXX0=
|
@@ -1,57 +0,0 @@
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
2
|
-
import { Injectable, Inject } from '@angular/core';
|
3
|
-
import { SMART_OFFENDER_SERVICE_URL } from './smart-victim.model';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@angular/common/http";
|
6
|
-
const headers = new Headers({ 'Content-Type': 'application/json' });
|
7
|
-
export class IntakeServicesComponent {
|
8
|
-
//serviceData = environment.smartOffenderServiceUrl;
|
9
|
-
constructor(http, smartOffenderServiceUrl) {
|
10
|
-
this.http = http;
|
11
|
-
this.smartOffenderServiceUrl = smartOffenderServiceUrl;
|
12
|
-
}
|
13
|
-
getIntakeByOffender(offenderId) {
|
14
|
-
return this.http
|
15
|
-
.get(this.smartOffenderServiceUrl + 'IntakeBasic/offender/' + offenderId)
|
16
|
-
.pipe();
|
17
|
-
}
|
18
|
-
updateIntakeSteps(offenderId, intakeStepStatus) {
|
19
|
-
return this.http.put(this.smartOffenderServiceUrl + '/IntakeStepStatus/' + offenderId, intakeStepStatus);
|
20
|
-
}
|
21
|
-
}
|
22
|
-
/** @nocollapse */ IntakeServicesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: IntakeServicesComponent, deps: [{ token: i1.HttpClient }, { token: SMART_OFFENDER_SERVICE_URL }], target: i0.ɵɵFactoryTarget.Injectable });
|
23
|
-
/** @nocollapse */ IntakeServicesComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: IntakeServicesComponent, providedIn: 'root' });
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: IntakeServicesComponent, decorators: [{
|
25
|
-
type: Injectable,
|
26
|
-
args: [{
|
27
|
-
providedIn: 'root'
|
28
|
-
}]
|
29
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
30
|
-
type: Inject,
|
31
|
-
args: [SMART_OFFENDER_SERVICE_URL]
|
32
|
-
}] }]; } });
|
33
|
-
export class IntakeStep {
|
34
|
-
}
|
35
|
-
IntakeStep.PhysicalInformation = "PHYSIN";
|
36
|
-
IntakeStep.Photo = "PHOTOS";
|
37
|
-
IntakeStep.HousingInformation = "HOUSE";
|
38
|
-
IntakeStep.DocketInformation = "DOCKET";
|
39
|
-
IntakeStep.Alias = "ALIAS";
|
40
|
-
IntakeStep.IntakeBasicInformation = "INTKBI";
|
41
|
-
IntakeStep.ContactInformation = "CONTCT";
|
42
|
-
IntakeStep.DeceasedInformation = "DEATH";
|
43
|
-
IntakeStep.DriversLicense = "DRVLIC";
|
44
|
-
IntakeStep.EmploymentInformation = "EMPLOY";
|
45
|
-
IntakeStep.GangAffiliation = "GANG";
|
46
|
-
IntakeStep.HealthInsurance = "HLTHINS";
|
47
|
-
IntakeStep.Identification = "IDNTFCTN";
|
48
|
-
IntakeStep.InternetIdentifier = "INTERNETID";
|
49
|
-
IntakeStep.MilitaryService = "MLTSVC";
|
50
|
-
IntakeStep.School = "SCHOOL";
|
51
|
-
IntakeStep.SelectiveService = "SLCTVSVC";
|
52
|
-
IntakeStep.Vehicle = "VEHICLE";
|
53
|
-
IntakeStep.VictimInformation = "VICTIM";
|
54
|
-
IntakeStep.WarrantInformation = "WARRNT";
|
55
|
-
IntakeStep.RunningRecord = "RUNREC";
|
56
|
-
IntakeStep.Signature = "SIGN";
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50YWtlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvaW50YWtlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2xELE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRywwQkFBMEIsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7QUFHbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0FBSXBFLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsb0RBQW9EO0lBQ3BELFlBQW9CLElBQWdCLEVBQ1UsdUJBQStCO1FBRHpELFNBQUksR0FBSixJQUFJLENBQVk7UUFDVSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQVE7SUFDeEUsQ0FBQztJQUNOLG1CQUFtQixDQUFDLFVBQWU7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBUyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLEdBQUcsVUFBVSxDQUFDO2FBQ2hGLElBQUksRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGlCQUFpQixDQUNmLFVBQWtCLEVBQ2xCLGdCQUF1QztRQUV2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsb0JBQW9CLEdBQUcsVUFBVSxFQUNoRSxnQkFBZ0IsQ0FDakIsQ0FBQztJQUNKLENBQUM7O3VJQW5CVSx1QkFBdUIsNENBR3hCLDBCQUEwQjsySUFIekIsdUJBQXVCLGNBRnRCLE1BQU07MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBSUksTUFBTTsyQkFBQywwQkFBMEI7O0FBNEN0QyxNQUFNLE9BQU8sVUFBVTs7QUFDTCw4QkFBbUIsR0FBRyxRQUFRLENBQUM7QUFDOUIsZ0JBQUssR0FBRyxRQUFRLENBQUM7QUFDakIsNkJBQWtCLEdBQUcsT0FBTyxDQUFDO0FBQzdCLDRCQUFpQixHQUFHLFFBQVEsQ0FBQztBQUM3QixnQkFBSyxHQUFHLE9BQU8sQ0FBQztBQUNoQixpQ0FBc0IsR0FBRyxRQUFRLENBQUM7QUFDbEMsNkJBQWtCLEdBQUcsUUFBUSxDQUFDO0FBQzlCLDhCQUFtQixHQUFHLE9BQU8sQ0FBQztBQUM5Qix5QkFBYyxHQUFHLFFBQVEsQ0FBQztBQUMxQixnQ0FBcUIsR0FBRyxRQUFRLENBQUM7QUFDakMsMEJBQWUsR0FBRyxNQUFNLENBQUM7QUFDekIsMEJBQWUsR0FBRyxTQUFTLENBQUM7QUFDNUIseUJBQWMsR0FBRyxVQUFVLENBQUM7QUFDNUIsNkJBQWtCLEdBQUcsWUFBWSxDQUFDO0FBQ2xDLDBCQUFlLEdBQUcsUUFBUSxDQUFDO0FBQzNCLGlCQUFNLEdBQUcsUUFBUSxDQUFDO0FBQ2xCLDJCQUFnQixHQUFHLFVBQVUsQ0FBQztBQUM5QixrQkFBTyxHQUFHLFNBQVMsQ0FBQztBQUNwQiw0QkFBaUIsR0FBRyxRQUFRLENBQUM7QUFDN0IsNkJBQWtCLEdBQUcsUUFBUSxDQUFDO0FBQzlCLHdCQUFhLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLG9CQUFTLEdBQUcsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSxJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgIFNNQVJUX09GRkVOREVSX1NFUlZJQ0VfVVJMfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5tb2RlbCc7XHJcblxyXG5cclxuY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50YWtlU2VydmljZXNDb21wb25lbnQge1xyXG4gIC8vc2VydmljZURhdGEgPSBlbnZpcm9ubWVudC5zbWFydE9mZmVuZGVyU2VydmljZVVybDtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KFNNQVJUX09GRkVOREVSX1NFUlZJQ0VfVVJMKSBwcml2YXRlIHNtYXJ0T2ZmZW5kZXJTZXJ2aWNlVXJsOiBzdHJpbmcsIFxyXG4gICAgKSB7fVxyXG4gIGdldEludGFrZUJ5T2ZmZW5kZXIob2ZmZW5kZXJJZDogYW55KTogT2JzZXJ2YWJsZTxJbnRha2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxJbnRha2U+KHRoaXMuc21hcnRPZmZlbmRlclNlcnZpY2VVcmwgKyAnSW50YWtlQmFzaWMvb2ZmZW5kZXIvJyArIG9mZmVuZGVySWQpXHJcbiAgICAgIC5waXBlKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVJbnRha2VTdGVwcyhcclxuICAgIG9mZmVuZGVySWQ6IG51bWJlcixcclxuICAgIGludGFrZVN0ZXBTdGF0dXM6IEludGFrZVN0ZXBTdGF0dXNNb2RlbCxcclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KFxyXG4gICAgICB0aGlzLnNtYXJ0T2ZmZW5kZXJTZXJ2aWNlVXJsICsgJy9JbnRha2VTdGVwU3RhdHVzLycgKyBvZmZlbmRlcklkLFxyXG4gICAgICBpbnRha2VTdGVwU3RhdHVzLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW50YWtlIHtcclxuICBpbnRha2VJZDogbnVtYmVyO1xyXG4gIG9mZmVuZGVySWQ6IG51bWJlcjtcclxuICBpbnRha2VPZmZlbmRlclJlcG9ydFN0YXR1c0lkPzogYW55O1xyXG4gIHN0YXJ0RGF0ZTogc3RyaW5nO1xyXG4gIGVuZERhdGU/OiBhbnk7XHJcbiAgYXNzaWdubWVudElkPzogYW55O1xyXG4gIG1vZGlmaWVkQnk6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnRha2VTdGVwU3RhdHVzIHtcclxuICBpbnRha2VTdGVwU3RhdHVzSWQ6IG51bWJlcjtcclxuICBpbnRha2VJZDogbnVtYmVyO1xyXG4gIGludGFrZVN0ZXBJZDogc3RyaW5nO1xyXG4gIGNvbXBsZXRlZERhdGU6IERhdGU7XHJcbiAgbW9kaWZpZWRCeTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEludGFrZVN0ZXBTdGF0dXNNb2RlbFxyXG57XHJcbiAgICBvZmZlbmRlcklkOiBudW1iZXI7XHJcbiAgICBpbnRha2VTdGVwSWQ6IHN0cmluZztcclxuICAgIG1vZGlmaWVkQnk6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEludGFrZVN0ZXB7XHJcbiAgICBwdWJsaWMgc3RhdGljIFBoeXNpY2FsSW5mb3JtYXRpb24gPSBcIlBIWVNJTlwiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgUGhvdG8gPSBcIlBIT1RPU1wiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgSG91c2luZ0luZm9ybWF0aW9uID0gXCJIT1VTRVwiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgRG9ja2V0SW5mb3JtYXRpb24gPSBcIkRPQ0tFVFwiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgQWxpYXMgPSBcIkFMSUFTXCI7XHJcbiAgICBwdWJsaWMgc3RhdGljICBJbnRha2VCYXNpY0luZm9ybWF0aW9uID0gXCJJTlRLQklcIjtcclxuICAgIHB1YmxpYyBzdGF0aWMgIENvbnRhY3RJbmZvcm1hdGlvbiA9IFwiQ09OVENUXCI7XHJcbiAgICBwdWJsaWMgc3RhdGljICBEZWNlYXNlZEluZm9ybWF0aW9uID0gXCJERUFUSFwiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgRHJpdmVyc0xpY2Vuc2UgPSBcIkRSVkxJQ1wiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgRW1wbG95bWVudEluZm9ybWF0aW9uID0gXCJFTVBMT1lcIjtcclxuICAgIHB1YmxpYyBzdGF0aWMgIEdhbmdBZmZpbGlhdGlvbiA9IFwiR0FOR1wiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgSGVhbHRoSW5zdXJhbmNlID0gXCJITFRISU5TXCI7XHJcbiAgICBwdWJsaWMgc3RhdGljICBJZGVudGlmaWNhdGlvbiA9IFwiSUROVEZDVE5cIjtcclxuICAgIHB1YmxpYyBzdGF0aWMgIEludGVybmV0SWRlbnRpZmllciA9IFwiSU5URVJORVRJRFwiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgTWlsaXRhcnlTZXJ2aWNlID0gXCJNTFRTVkNcIjtcclxuICAgIHB1YmxpYyBzdGF0aWMgIFNjaG9vbCA9IFwiU0NIT09MXCI7XHJcbiAgICBwdWJsaWMgc3RhdGljICBTZWxlY3RpdmVTZXJ2aWNlID0gXCJTTENUVlNWQ1wiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgVmVoaWNsZSA9IFwiVkVISUNMRVwiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgVmljdGltSW5mb3JtYXRpb24gPSBcIlZJQ1RJTVwiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgV2FycmFudEluZm9ybWF0aW9uID0gXCJXQVJSTlRcIjtcclxuICAgIHB1YmxpYyBzdGF0aWMgIFJ1bm5pbmdSZWNvcmQgPSBcIlJVTlJFQ1wiO1xyXG4gICAgcHVibGljIHN0YXRpYyAgU2lnbmF0dXJlID0gXCJTSUdOXCI7XHJcbn0iXX0=
|
@@ -1,116 +0,0 @@
|
|
1
|
-
import { Component } from '@angular/core';
|
2
|
-
import { NgcSmartVictimService } from '../smart-victim.service';
|
3
|
-
import { MatDialog } from '@angular/material/dialog';
|
4
|
-
import { CommonDialogService } from '.././common-dialog/common-dialog.service';
|
5
|
-
import { HttpClient } from '@angular/common/http';
|
6
|
-
import { Router, ActivatedRoute } from '@angular/router';
|
7
|
-
import { SmartAuthService } from '@csmart/ngc-smart-core';
|
8
|
-
import { MatTableDataSource } from '@angular/material/table';
|
9
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
10
|
-
import * as i0 from "@angular/core";
|
11
|
-
import * as i1 from "../smart-victim.service";
|
12
|
-
import * as i2 from ".././common-dialog/common-dialog.service";
|
13
|
-
import * as i3 from "@angular/common/http";
|
14
|
-
import * as i4 from "@angular/material/dialog";
|
15
|
-
import * as i5 from "@angular/router";
|
16
|
-
import * as i6 from "@angular/material/snack-bar";
|
17
|
-
import * as i7 from "@csmart/ngc-smart-core";
|
18
|
-
import * as i8 from "@angular/material/button";
|
19
|
-
import * as i9 from "@angular/material/card";
|
20
|
-
import * as i10 from "@angular/material/toolbar";
|
21
|
-
import * as i11 from "@angular/material/table";
|
22
|
-
import * as i12 from "@angular/common";
|
23
|
-
export class VictimSafetyPlanComponent {
|
24
|
-
constructor(_victimServicesComponent, commonDialogService, http, dialog, route, router, snackBar, smartAuthService) {
|
25
|
-
this._victimServicesComponent = _victimServicesComponent;
|
26
|
-
this.commonDialogService = commonDialogService;
|
27
|
-
this.http = http;
|
28
|
-
this.dialog = dialog;
|
29
|
-
this.route = route;
|
30
|
-
this.router = router;
|
31
|
-
this.snackBar = snackBar;
|
32
|
-
this.smartAuthService = smartAuthService;
|
33
|
-
this.editSafetyPlan = {};
|
34
|
-
this.safetyPlanDataSource = new MatTableDataSource();
|
35
|
-
}
|
36
|
-
ngAfterViewInit() {
|
37
|
-
this.smartAuthService.setPermission('Victim', this.route.snapshot);
|
38
|
-
}
|
39
|
-
ngOnInit() {
|
40
|
-
var data = this.route.snapshot.data;
|
41
|
-
this.loginStaff = data.loginStaff;
|
42
|
-
this.staffId = this.loginStaff.staffId;
|
43
|
-
this.sub = this.route.params.subscribe(params => {
|
44
|
-
this.victimId = params['victimId'];
|
45
|
-
});
|
46
|
-
this.hiddenAddNewFlag = false;
|
47
|
-
this.victimName = this.victimName;
|
48
|
-
this._victimServicesComponent.getSafetyPlans(this.victimId).subscribe(victimSafetyPlans => {
|
49
|
-
this.victimSafetyPlans = victimSafetyPlans;
|
50
|
-
this.safetyPlanDataSource.data = this.victimSafetyPlans;
|
51
|
-
console.log('this.victimSafetyPlans');
|
52
|
-
console.log(this.victimSafetyPlans);
|
53
|
-
});
|
54
|
-
// this.myVictimServiceId =1;
|
55
|
-
// this._victimServicesComponent.getVictimServiceDetail(this.myVictimServiceId).subscribe(
|
56
|
-
// victimServiceDetail => {
|
57
|
-
// this.victimServiceDetail = victimServiceDetail;
|
58
|
-
// console.log('service detail');
|
59
|
-
// console.log(this.victimServiceDetail);
|
60
|
-
// }
|
61
|
-
// );
|
62
|
-
this._victimServicesComponent.getServiceStatusHistories(1).subscribe(victimServiceStatusHistories => {
|
63
|
-
// this.victimServiceStatusHistories = victimServiceStatusHistories;
|
64
|
-
});
|
65
|
-
}
|
66
|
-
//---------------graphQL--------------------------------------
|
67
|
-
// getVictimServiceTypeProgramProviders(): Observable<VictimServiceTypeProgramProviderModel[]> {
|
68
|
-
// const queryString = `
|
69
|
-
// {
|
70
|
-
// findVictimServiceTypeProgramProviders {
|
71
|
-
// data {
|
72
|
-
// victimServiceTypeProgramProviderId
|
73
|
-
// victimServiceType
|
74
|
-
// victimProgramProvider
|
75
|
-
// }
|
76
|
-
// }
|
77
|
-
// }`;
|
78
|
-
// return this.http.post<any>(environment.smartApiUrl, { query: queryString })
|
79
|
-
// .map(result => {
|
80
|
-
// return result.data.findVictimServiceTypeProgramProviders.data;
|
81
|
-
// });
|
82
|
-
// }
|
83
|
-
goToSafetyPlanDetail(victimServiceId) {
|
84
|
-
this.router.navigate(['saftyPlanDetail', victimServiceId, this.victimId]);
|
85
|
-
}
|
86
|
-
onAddNew() {
|
87
|
-
this.hiddenDetailFlag = false;
|
88
|
-
}
|
89
|
-
onDeleteSafetyPlan(victimServiceId) {
|
90
|
-
this.commonDialogService
|
91
|
-
.confirm('', 'Do you want to delete this safety plan?', 'Yes', 'No')
|
92
|
-
.subscribe(res => {
|
93
|
-
this.result = res;
|
94
|
-
if (this.result) {
|
95
|
-
this._victimServicesComponent.deleteSafetyPlan(victimServiceId, this.staffId)
|
96
|
-
.subscribe(result => {
|
97
|
-
this.snackBar.open('delete safety plan Successfully !', '', { duration: 3000, });
|
98
|
-
this._victimServicesComponent.getSafetyPlans(this.victimId).subscribe(victimSafetyPlans => {
|
99
|
-
this.victimSafetyPlans = victimSafetyPlans;
|
100
|
-
this.safetyPlanDataSource.data = this.victimSafetyPlans;
|
101
|
-
});
|
102
|
-
});
|
103
|
-
}
|
104
|
-
});
|
105
|
-
}
|
106
|
-
back() {
|
107
|
-
this.router.navigate(['victimHome']);
|
108
|
-
}
|
109
|
-
}
|
110
|
-
/** @nocollapse */ VictimSafetyPlanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: VictimSafetyPlanComponent, deps: [{ token: i1.NgcSmartVictimService }, { token: i2.CommonDialogService }, { token: i3.HttpClient }, { token: i4.MatDialog }, { token: i5.ActivatedRoute }, { token: i5.Router }, { token: i6.MatSnackBar }, { token: i7.SmartAuthService }], target: i0.ɵɵFactoryTarget.Component });
|
111
|
-
/** @nocollapse */ VictimSafetyPlanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: VictimSafetyPlanComponent, selector: "ng-component", providers: [CommonDialogService], ngImport: i0, template: "\r\n <mat-card>\r\n <mat-card-header>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-toolbar color=\"primary\">\r\n <h4 class=\"card-header\" style=\"display: inline-block;\">Safety Plan</h4>\r\n </mat-toolbar>\r\n <br>\r\n <button mat-raised-button color=\"primary\" (click)=\"goToSafetyPlanDetail(0)\" >Add Goal</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"back()\">Back</button>\r\n <br>\r\n <br>\r\n <mat-table #table [dataSource]=\"safetyPlanDataSource\" class=\"example-table\">\r\n <ng-container matColumnDef=\"startDate\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Start Date</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.startDate | date}} </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"goal\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Goal</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.goal }} </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"victimServiceStatus\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Status</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.victimServiceStatus }} </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"comment\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Comment</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.comment }} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"victimServiceId\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\"></mat-header-cell>\r\n <!-- <mat-cell *matCellDef=\"let row\" class=\"example-cell\">\r\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"goToSafetyPlanDetail(row.victimServiceId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span> \r\n <mat-icon>edit</mat-icon> \r\n </button> \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"onDeleteSafetyPlan(row.victimServiceId)\"> \r\n <span class=\"glyphicon glyphicon-trash\" ></span> Delete\r\n </button> \r\n </mat-cell> -->\r\n\r\n <mat-cell *matCellDef=\"let element\">\r\n \r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"Edit Safety Plan\" (click)=\"goToSafetyPlanDetail(element.victimServiceId)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n\r\n \r\n \r\n <button\r\n class=\"delete-btn\"\r\n matTooltip=\"Delete Safety Plan\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"onDeleteSafetyPlan(element.victimServiceId)\">\r\n <i class=\"material-icons\">delete</i>\r\n </button>\r\n\r\n\r\n\r\n\r\n \r\n </mat-cell>\r\n\r\n \r\n \r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"['startDate', 'goal', 'victimServiceStatus', 'comment', 'victimServiceId']\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns:['startDate', 'goal', 'victimServiceStatus', 'comment', 'victimServiceId'];\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n \r\n \r\n</mat-card-content>\r\n</mat-card>", dependencies: [{ kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i9.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i9.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "pipe", type: i12.DatePipe, name: "date" }] });
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: VictimSafetyPlanComponent, decorators: [{
|
113
|
-
type: Component,
|
114
|
-
args: [{ providers: [CommonDialogService], template: "\r\n <mat-card>\r\n <mat-card-header>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-toolbar color=\"primary\">\r\n <h4 class=\"card-header\" style=\"display: inline-block;\">Safety Plan</h4>\r\n </mat-toolbar>\r\n <br>\r\n <button mat-raised-button color=\"primary\" (click)=\"goToSafetyPlanDetail(0)\" >Add Goal</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"back()\">Back</button>\r\n <br>\r\n <br>\r\n <mat-table #table [dataSource]=\"safetyPlanDataSource\" class=\"example-table\">\r\n <ng-container matColumnDef=\"startDate\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Start Date</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.startDate | date}} </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"goal\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Goal</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.goal }} </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"victimServiceStatus\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Status</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.victimServiceStatus }} </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"comment\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Comment</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.comment }} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"victimServiceId\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\"></mat-header-cell>\r\n <!-- <mat-cell *matCellDef=\"let row\" class=\"example-cell\">\r\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"goToSafetyPlanDetail(row.victimServiceId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span> \r\n <mat-icon>edit</mat-icon> \r\n </button> \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"onDeleteSafetyPlan(row.victimServiceId)\"> \r\n <span class=\"glyphicon glyphicon-trash\" ></span> Delete\r\n </button> \r\n </mat-cell> -->\r\n\r\n <mat-cell *matCellDef=\"let element\">\r\n \r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"Edit Safety Plan\" (click)=\"goToSafetyPlanDetail(element.victimServiceId)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n\r\n \r\n \r\n <button\r\n class=\"delete-btn\"\r\n matTooltip=\"Delete Safety Plan\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"onDeleteSafetyPlan(element.victimServiceId)\">\r\n <i class=\"material-icons\">delete</i>\r\n </button>\r\n\r\n\r\n\r\n\r\n \r\n </mat-cell>\r\n\r\n \r\n \r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"['startDate', 'goal', 'victimServiceStatus', 'comment', 'victimServiceId']\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns:['startDate', 'goal', 'victimServiceStatus', 'comment', 'victimServiceId'];\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n \r\n \r\n</mat-card-content>\r\n</mat-card>" }]
|
115
|
-
}], ctorParameters: function () { return [{ type: i1.NgcSmartVictimService }, { type: i2.CommonDialogService }, { type: i3.HttpClient }, { type: i4.MatDialog }, { type: i5.ActivatedRoute }, { type: i5.Router }, { type: i6.MatSnackBar }, { type: i7.SmartAuthService }]; } });
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmljdGltU2FmZXR5UGxhbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc2FmZXR5UGxhbi92aWN0aW1TYWZldHlQbGFuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zYWZldHlQbGFuL3ZpY3RpbVNhZmV0eVBsYW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUlsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPMUQsTUFBTSxPQUFPLHlCQUF5QjtJQTRCcEMsWUFFVSx3QkFBK0MsRUFDL0MsbUJBQXdDLEVBQ3hDLElBQWdCLEVBQ2pCLE1BQWlCLEVBQ2hCLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZixRQUFxQixFQUNwQixnQkFBa0M7UUFQbEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF1QjtRQUMvQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hD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LENBQUMsRUFBRTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUksR0FBRyxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFFYixJQUFJLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7cUJBQzFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFFbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksR0FBRSxDQUFDLENBQUM7b0JBRWhGLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FDbkUsaUJBQWlCLENBQUMsRUFBRTt3QkFDbEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO3dCQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztvQkFDMUQsQ0FBQyxDQUNGLENBQUM7Z0JBRUQsQ0FBQyxDQUNGLENBQUM7YUFJTjtRQUVKLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFFdkMsQ0FBQzs7eUlBdEpVLHlCQUF5Qjs2SEFBekIseUJBQXlCLHVDQUh6QixDQUFDLG1CQUFtQixDQUFDLDBCQ2pCbEMseS9JQW9GVzsyRkRoRUUseUJBQXlCO2tCQUxyQyxTQUFTO2dDQUVHLENBQUMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCxJbmplY3QsQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbVNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBWaWN0aW1TYWZldHlQbGFuLFZpY3RpbVNlcnZpY2VEZXRhaWwsVmljdGltU2VydmljZVN0YXR1c0hpc3RvcnkgfSBmcm9tICcuLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb21tb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uL2NvbW1vbi1kaWFsb2cvY29tbW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG4vL2ltcG9ydCB7IFZpY3RpbVNhZmV0eVBsYW5EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL3ZpY3RpbVNhZmV0eVBsYW5EZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0ZWRPZmZlbmRlciwgTG9naW5TdGFmZiB9IGZyb20gJ0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJ0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi92aWN0aW1TYWZldHlQbGFuLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtDb21tb25EaWFsb2dTZXJ2aWNlXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpY3RpbVNhZmV0eVBsYW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgLy9zZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyO1xyXG4gIGxvZ2luU3RhZmY6IExvZ2luU3RhZmY7XHJcbiAgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG5cclxuXHJcbiAgaGlkZGVuRGV0YWlsRmxhZzpib29sZWFuO1xyXG4gIGhpZGRlbkFkZE5ld0ZsYWc6IGJvb2xlYW47XHJcbiAgc2FmZXR5UGxhbnM6IFZpY3RpbVNhZmV0eVBsYW5bXTtcclxuICBzYWZldHlQbGFuOiBWaWN0aW1TYWZldHlQbGFuO1xyXG4gIGVkaXRTYWZldHlQbGFuOiBWaWN0aW1TYWZldHlQbGFuID0gPFZpY3RpbVNhZmV0eVBsYW4+e307XHJcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgY29udGFjdFR5cGVzOiBhbnlbXTtcclxuICBjb250YWN0UHVycG9zZXM6IGFueVtdO1xyXG4gIHZpY3RpbVNlcnZpY2VUeXBlczogYW55W107XHJcbiAgdmljdGltU2FmZXR5UGxhbnM6IFZpY3RpbVNhZmV0eVBsYW5bXTtcclxuICB2aWN0aW1TZXJ2aWNlU3RhdHVzOiBhbnlbXTtcclxuICB2aWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yaWVzOiBWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeVtdO1xyXG4gIHF1ZXJ5U3RyaW5nOiBzdHJpbmc7XHJcbiAgdmljdGltU2VydmljZURldGFpbDogVmljdGltU2VydmljZURldGFpbFtdO1xyXG4gIG15VmljdGltU2VydmljZUlkOiBudW1iZXI7XHJcbiAgcmVzdWx0OiBhbnk7XHJcbiAgdmljdGltTmFtZTogc3RyaW5nO1xyXG4gIHN0YWZmSWQ6IG51bWJlcjtcclxuICB2aWN0aW1JZDogbnVtYmVyO1xyXG4gIHByaXZhdGUgc3ViOiBhbnk7XHJcbiAgc2FmZXR5UGxhbkRhdGFTb3VyY2UgPSBuZXcgIE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gXHJcbiAgY29uc3RydWN0b3IoXHJcbiBcclxuICAgIHByaXZhdGUgX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50OiBOZ2NTbWFydFZpY3RpbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbW1vbkRpYWxvZ1NlcnZpY2U6IENvbW1vbkRpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBzbWFydEF1dGhTZXJ2aWNlOiBTbWFydEF1dGhTZXJ2aWNlLFxyXG4gICAgIFxyXG4gICkge1xyXG4gICAgXHJcblxyXG4gICB9XHJcbiAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc21hcnRBdXRoU2VydmljZS5zZXRQZXJtaXNzaW9uKCdWaWN0aW0nLCB0aGlzLnJvdXRlLnNuYXBzaG90KTtcclxuICB9XHJcbiBcclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB2YXIgZGF0YSA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YTtcclxuICAgIHRoaXMubG9naW5TdGFmZiA9IGRhdGEubG9naW5TdGFmZjtcclxuICAgIHRoaXMuc3RhZmZJZCA9ICB0aGlzLmxvZ2luU3RhZmYuc3RhZmZJZDtcclxuXHJcbiAgICB0aGlzLnN1YiA9IHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICB0aGlzLnZpY3RpbUlkID0gcGFyYW1zWyd2aWN0aW1JZCddO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaGlkZGVuQWRkTmV3RmxhZyA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWN0aW1OYW1lPSB0aGlzLnZpY3RpbU5hbWU7XHJcbiAgXHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRTYWZldHlQbGFucyh0aGlzLnZpY3RpbUlkKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZpY3RpbVNhZmV0eVBsYW5zID0+IHtcclxuICAgICAgICB0aGlzLnZpY3RpbVNhZmV0eVBsYW5zID0gdmljdGltU2FmZXR5UGxhbnM7IFxyXG4gICAgICAgIHRoaXMuc2FmZXR5UGxhbkRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudmljdGltU2FmZXR5UGxhbnM7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltU2FmZXR5UGxhbnMnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbVNhZmV0eVBsYW5zKTtcclxuXHJcbiAgXHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgIFxyXG4gICAgLy8gIHRoaXMubXlWaWN0aW1TZXJ2aWNlSWQgPTE7XHJcbiAgICAvLyB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRWaWN0aW1TZXJ2aWNlRGV0YWlsKHRoaXMubXlWaWN0aW1TZXJ2aWNlSWQpLnN1YnNjcmliZShcclxuICAgIC8vICAgdmljdGltU2VydmljZURldGFpbCA9PiB7XHJcbiAgICAvLyAgICAgdGhpcy52aWN0aW1TZXJ2aWNlRGV0YWlsID0gdmljdGltU2VydmljZURldGFpbDtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZygnc2VydmljZSBkZXRhaWwnKTtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbVNlcnZpY2VEZXRhaWwpOyBcclxuICAgIC8vICAgfVxyXG4gICAgLy8gKTtcclxuXHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRTZXJ2aWNlU3RhdHVzSGlzdG9yaWVzKDEpLnN1YnNjcmliZShcclxuICAgICAgdmljdGltU2VydmljZVN0YXR1c0hpc3RvcmllcyA9PiB7XHJcbiAgICAgICAvLyB0aGlzLnZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3JpZXMgPSB2aWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yaWVzOyBcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgXHJcbi8vLS0tLS0tLS0tLS0tLS0tZ3JhcGhRTC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vICAgZ2V0VmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJzKCk6IE9ic2VydmFibGU8VmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJNb2RlbFtdPiB7XHJcbi8vICAgICBjb25zdCBxdWVyeVN0cmluZyA9IGBcclxuLy8gICAgICAgICB7XHJcbi8vICAgICAgICAgICBmaW5kVmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJzIHtcclxuLy8gICAgICAgICAgICAgICAgIGRhdGEge1xyXG4vLyAgICAgICAgICAgICAgICAgICB2aWN0aW1TZXJ2aWNlVHlwZVByb2dyYW1Qcm92aWRlcklkXHJcbi8vICAgICAgICAgICAgICAgICAgIHZpY3RpbVNlcnZpY2VUeXBlXHJcbi8vICAgICAgICAgICAgICAgICAgIHZpY3RpbVByb2dyYW1Qcm92aWRlclxyXG4vLyAgICAgICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICB9YDtcclxuXHJcbiBcclxuLy8gICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGVudmlyb25tZW50LnNtYXJ0QXBpVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KVxyXG4vLyAgICAgICAgIC5tYXAocmVzdWx0ID0+IHtcclxuLy8gICAgICAgICByZXR1cm4gcmVzdWx0LmRhdGEuZmluZFZpY3RpbVNlcnZpY2VUeXBlUHJvZ3JhbVByb3ZpZGVycy5kYXRhO1xyXG4vLyAgICAgfSk7XHJcbi8vIH1cclxuXHJcbiAgZ29Ub1NhZmV0eVBsYW5EZXRhaWwodmljdGltU2VydmljZUlkOiBudW1iZXIpe1xyXG4gIFxyXG4gICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3NhZnR5UGxhbkRldGFpbCcsIHZpY3RpbVNlcnZpY2VJZCwgIHRoaXMudmljdGltSWQgXSk7IFxyXG5cclxuICB9XHJcbiAgb25BZGROZXcoKXtcclxuICAgIHRoaXMuaGlkZGVuRGV0YWlsRmxhZyA9IGZhbHNlO1xyXG5cclxuICB9XHJcbiAgb25EZWxldGVTYWZldHlQbGFuKHZpY3RpbVNlcnZpY2VJZDogbnVtYmVyKXtcclxuXHJcbiAgICB0aGlzLmNvbW1vbkRpYWxvZ1NlcnZpY2VcclxuICAgIC5jb25maXJtKCcnLCAnRG8geW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgc2FmZXR5IHBsYW4/JywgJ1llcycsICdObycpXHJcbiAgICAuc3Vic2NyaWJlKHJlcyA9PiB7dGhpcy5yZXN1bHQgPSAgcmVzO1xyXG4gICAgICAgIGlmICh0aGlzLnJlc3VsdCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fdmljdGltU2VydmljZXNDb21wb25lbnQuZGVsZXRlU2FmZXR5UGxhbih2aWN0aW1TZXJ2aWNlSWQsdGhpcy5zdGFmZklkKVxyXG4gICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ2RlbGV0ZSBzYWZldHkgcGxhbiBTdWNjZXNzZnVsbHkgIScsICcnLCB7IGR1cmF0aW9uOiAzMDAwLH0pO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRTYWZldHlQbGFucyh0aGlzLnZpY3RpbUlkKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICB2aWN0aW1TYWZldHlQbGFucyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmljdGltU2FmZXR5UGxhbnMgPSB2aWN0aW1TYWZldHlQbGFuczsgXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2FmZXR5UGxhbkRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudmljdGltU2FmZXR5UGxhbnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBcclxuXHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBiYWNrKCl7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbUhvbWUnXSk7XHJcbiAgXHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbn1cclxuXHJcbiIsIlxyXG4gPG1hdC1jYXJkPlxyXG4gICAgICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPG1hdC10b29sYmFyICBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiY2FyZC1oZWFkZXJcIiBzdHlsZT1cImRpc3BsYXk6IGlubGluZS1ibG9jaztcIj5TYWZldHkgUGxhbjwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdG9vbGJhcj5cclxuICAgICAgICA8YnI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZ29Ub1NhZmV0eVBsYW5EZXRhaWwoMClcIiA+QWRkIEdvYWw8L2J1dHRvbj5cclxuICAgICAgICAmbmJzcDsmbmJzcDs8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICAoY2xpY2spPVwiYmFjaygpXCI+QmFjazwvYnV0dG9uPlxyXG4gICAgICAgIDxicj5cclxuICAgICAgICA8YnI+XHJcbiAgICAgICAgPG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPVwic2FmZXR5UGxhbkRhdGFTb3VyY2VcIiBjbGFzcz1cImV4YW1wbGUtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RhcnREYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5TdGFydCBEYXRlPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LnN0YXJ0RGF0ZSB8IGRhdGV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImdvYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Hb2FsPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5nb2FsIH19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ2aWN0aW1TZXJ2aWNlU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+U3RhdHVzPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy52aWN0aW1TZXJ2aWNlU3RhdHVzIH19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb21tZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+Q29tbWVudDwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj4ge3tyb3cuY29tbWVudCB9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidmljdGltU2VydmljZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImdvVG9TYWZldHlQbGFuRGV0YWlsKHJvdy52aWN0aW1TZXJ2aWNlSWQpXCI+ICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1wZW5jaWxcIiA+PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9uRGVsZXRlU2FmZXR5UGxhbihyb3cudmljdGltU2VydmljZUlkKVwiPiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXRyYXNoXCIgPjwvc3Bhbj4mbmJzcDtEZWxldGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IFxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNlbGw+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXQtYnRuXCIgIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAgbWF0VG9vbHRpcD1cIkVkaXQgU2FmZXR5IFBsYW5cIiAoY2xpY2spPVwiZ29Ub1NhZmV0eVBsYW5EZXRhaWwoZWxlbWVudC52aWN0aW1TZXJ2aWNlSWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPm1vZGVfZWRpdDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkZWxldGUtYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEZWxldGUgU2FmZXR5IFBsYW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlU2FmZXR5UGxhbihlbGVtZW50LnZpY3RpbVNlcnZpY2VJZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5kZWxldGU8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jZWxsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJbJ3N0YXJ0RGF0ZScsICdnb2FsJywgJ3ZpY3RpbVNlcnZpY2VTdGF0dXMnLCAnY29tbWVudCcsICd2aWN0aW1TZXJ2aWNlSWQnXVwiIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItcm93XCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICAgICAgICAgICAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOlsnc3RhcnREYXRlJywgJ2dvYWwnLCAndmljdGltU2VydmljZVN0YXR1cycsICdjb21tZW50JywgJ3ZpY3RpbVNlcnZpY2VJZCddO1wiIGNsYXNzPVwiZXhhbXBsZS1yb3dcIj48L21hdC1yb3c+XHJcbiAgICAgICAgICAgICAgICA8L21hdC10YWJsZT5cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICBcclxuPC9tYXQtY2FyZC1jb250ZW50PlxyXG48L21hdC1jYXJkPiJdfQ==
|