@csmart/ngc-smart-victim 1.14.43 → 1.14.44

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. package/{esm2020 → esm2022}/csmart-ngc-smart-victim.mjs +4 -4
  2. package/esm2022/lib/caseNote/caseNote.component.mjs +219 -0
  3. package/esm2022/lib/common-dialog/common-dialog.component.mjs +26 -0
  4. package/{esm2020 → esm2022}/lib/common-dialog/common-dialog.module.mjs +34 -34
  5. package/esm2022/lib/common-dialog/common-dialog.service.mjs +34 -0
  6. package/esm2022/lib/contact/contact.component.mjs +158 -0
  7. package/esm2022/lib/email.services.mjs +43 -0
  8. package/esm2022/lib/intake.service.mjs +59 -0
  9. package/esm2022/lib/safetyPlan/serviceProvider.component.mjs +105 -0
  10. package/esm2022/lib/safetyPlan/victimSafetyPlan.component.mjs +146 -0
  11. package/esm2022/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +372 -0
  12. package/{esm2020 → esm2022}/lib/shared/app.shared.module.mjs +215 -215
  13. package/esm2022/lib/shared/validators/date.validator.mjs +59 -0
  14. package/{esm2020 → esm2022}/lib/shared/validators/index.mjs +1 -1
  15. package/esm2022/lib/smart-victim-delete-confirm.component.mjs +46 -0
  16. package/esm2022/lib/smart-victim-detail/smart-victim-detail.component.mjs +1141 -0
  17. package/esm2022/lib/smart-victim.component.mjs +343 -0
  18. package/esm2022/lib/smart-victim.model.mjs +233 -0
  19. package/{esm2020 → esm2022}/lib/smart-victim.module.mjs +128 -128
  20. package/esm2022/lib/smart-victim.service.mjs +357 -0
  21. package/{esm2020 → esm2022}/lib/victim-routing.module.mjs +41 -41
  22. package/esm2022/lib/victimSearch/VictimSearchFilter.mjs +8 -0
  23. package/esm2022/lib/victimSearch/victimSearchForm.component.mjs +37 -0
  24. package/{esm2020 → esm2022}/public-api.mjs +10 -10
  25. package/{fesm2020 → fesm2022}/csmart-ngc-smart-victim.mjs +3360 -3065
  26. package/fesm2022/csmart-ngc-smart-victim.mjs.map +1 -0
  27. package/index.d.ts +5 -5
  28. package/lib/caseNote/caseNote.component.d.ts +51 -51
  29. package/lib/common-dialog/common-dialog.component.d.ts +14 -14
  30. package/lib/common-dialog/common-dialog.module.d.ts +8 -8
  31. package/lib/common-dialog/common-dialog.service.d.ts +11 -11
  32. package/lib/contact/contact.component.d.ts +40 -40
  33. package/lib/email.services.d.ts +11 -11
  34. package/lib/intake.service.d.ts +57 -57
  35. package/lib/safetyPlan/serviceProvider.component.d.ts +19 -19
  36. package/lib/safetyPlan/victimSafetyPlan.component.d.ts +54 -54
  37. package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +62 -62
  38. package/lib/shared/app.shared.module.d.ts +33 -33
  39. package/lib/shared/validators/date.validator.d.ts +9 -9
  40. package/lib/shared/validators/index.d.ts +1 -1
  41. package/lib/smart-victim-delete-confirm.component.d.ts +12 -12
  42. package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +129 -129
  43. package/lib/smart-victim.component.d.ts +68 -68
  44. package/lib/smart-victim.model.d.ts +205 -205
  45. package/lib/smart-victim.module.d.ts +49 -49
  46. package/lib/smart-victim.service.d.ts +71 -71
  47. package/lib/victim-routing.module.d.ts +7 -7
  48. package/lib/victimSearch/VictimSearchFilter.d.ts +7 -7
  49. package/lib/victimSearch/victimSearchForm.component.d.ts +14 -14
  50. package/package.json +5 -11
  51. package/public-api.d.ts +7 -7
  52. package/esm2020/lib/caseNote/caseNote.component.mjs +0 -194
  53. package/esm2020/lib/common-dialog/common-dialog.component.mjs +0 -23
  54. package/esm2020/lib/common-dialog/common-dialog.service.mjs +0 -33
  55. package/esm2020/lib/contact/contact.component.mjs +0 -140
  56. package/esm2020/lib/email.services.mjs +0 -42
  57. package/esm2020/lib/intake.service.mjs +0 -57
  58. package/esm2020/lib/safetyPlan/serviceProvider.component.mjs +0 -99
  59. package/esm2020/lib/safetyPlan/victimSafetyPlan.component.mjs +0 -116
  60. package/esm2020/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +0 -340
  61. package/esm2020/lib/shared/validators/date.validator.mjs +0 -59
  62. package/esm2020/lib/smart-victim-delete-confirm.component.mjs +0 -44
  63. package/esm2020/lib/smart-victim-detail/smart-victim-detail.component.mjs +0 -1104
  64. package/esm2020/lib/smart-victim.component.mjs +0 -314
  65. package/esm2020/lib/smart-victim.model.mjs +0 -133
  66. package/esm2020/lib/smart-victim.service.mjs +0 -352
  67. package/esm2020/lib/victimSearch/VictimSearchFilter.mjs +0 -3
  68. package/esm2020/lib/victimSearch/victimSearchForm.component.mjs +0 -38
  69. package/fesm2015/csmart-ngc-smart-victim.mjs +0 -3273
  70. package/fesm2015/csmart-ngc-smart-victim.mjs.map +0 -1
  71. package/fesm2020/csmart-ngc-smart-victim.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NtYXJ0LW5nYy1zbWFydC12aWN0aW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9jc21hcnQtbmdjLXNtYXJ0LXZpY3RpbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,219 @@
1
+ import { Component } from '@angular/core';
2
+ import { NgcSmartVictimService } from '../smart-victim.service';
3
+ import { UntypedFormControl, UntypedFormBuilder, Validators } from '@angular/forms';
4
+ import { CommonDialogService } from '.././common-dialog/common-dialog.service';
5
+ import { MatSnackBar } from '@angular/material/snack-bar';
6
+ import { Router, ActivatedRoute } from '@angular/router';
7
+ import { SmartAuthService } from '@csmart/ngc-smart-core';
8
+ import { dateValidator } from '../shared/validators';
9
+ import { MatTableDataSource } from '@angular/material/table';
10
+ import { EmailService } from '../email.services';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/forms";
13
+ import * as i2 from "../smart-victim.service";
14
+ import * as i3 from ".././common-dialog/common-dialog.service";
15
+ import * as i4 from "@angular/material/snack-bar";
16
+ import * as i5 from "@angular/router";
17
+ import * as i6 from "@csmart/ngc-smart-core";
18
+ import * as i7 from "../email.services";
19
+ import * as i8 from "@angular/common";
20
+ import * as i9 from "@angular/material/button";
21
+ import * as i10 from "@angular/material/card";
22
+ import * as i11 from "@angular/material/toolbar";
23
+ import * as i12 from "@angular/material/input";
24
+ import * as i13 from "@angular/material/form-field";
25
+ import * as i14 from "@angular/cdk/text-field";
26
+ import * as i15 from "@angular/material/datepicker";
27
+ import * as i16 from "@angular/material/select";
28
+ import * as i17 from "@angular/material/core";
29
+ import * as i18 from "@angular/material/table";
30
+ export class CaseNoteComponent {
31
+ formBuilder;
32
+ _victimServicesComponent;
33
+ commonDialogService;
34
+ snackBar;
35
+ route;
36
+ router;
37
+ smartAuthService;
38
+ emailService;
39
+ // @Input() isIntake: boolean;
40
+ offenderId;
41
+ loginStaff;
42
+ hiddenDetailFlag;
43
+ caseNoteList;
44
+ caseNote;
45
+ editCaseNote = {};
46
+ errorMessage;
47
+ contactTypes;
48
+ contactPurposes;
49
+ result;
50
+ victimName;
51
+ staffId;
52
+ victimId;
53
+ sub;
54
+ caseNoteDataSource = new MatTableDataSource();
55
+ addDisableFlag;
56
+ hiddenAddNewFlag;
57
+ caseNoteForm;
58
+ constructor(formBuilder, _victimServicesComponent, commonDialogService, snackBar, route, router, smartAuthService, emailService) {
59
+ this.formBuilder = formBuilder;
60
+ this._victimServicesComponent = _victimServicesComponent;
61
+ this.commonDialogService = commonDialogService;
62
+ this.snackBar = snackBar;
63
+ this.route = route;
64
+ this.router = router;
65
+ this.smartAuthService = smartAuthService;
66
+ this.emailService = emailService;
67
+ this.initForm();
68
+ }
69
+ initForm() {
70
+ this.caseNoteForm = this.formBuilder.group({
71
+ caseNoteDate: new UntypedFormControl('', Validators.compose([
72
+ Validators.required, dateValidator()
73
+ ])),
74
+ contactType: new UntypedFormControl('', Validators.required),
75
+ contactPurpose: new UntypedFormControl('', Validators.required),
76
+ comment: new UntypedFormControl('', Validators.required)
77
+ });
78
+ this.caseNoteForm.markAsPristine();
79
+ this.caseNoteForm.markAsUntouched();
80
+ }
81
+ ngAfterViewInit() {
82
+ this.smartAuthService.setPermission('Victim', this.route.snapshot);
83
+ }
84
+ ngOnInit() {
85
+ var data = this.route.snapshot.data;
86
+ this.loginStaff = data.loginStaff;
87
+ this.staffId = this.loginStaff.staffId;
88
+ this.sub = this.route.params.subscribe(params => {
89
+ this.victimId = params['victimId'];
90
+ this.offenderId = params['offenderId'];
91
+ });
92
+ this.addDisableFlag = false;
93
+ this.hiddenDetailFlag = true;
94
+ this.hiddenAddNewFlag = false;
95
+ this._victimServicesComponent.getVictim(this.victimId).subscribe((items) => {
96
+ this.victimName = items.firstName + ', ' + items.lastName;
97
+ });
98
+ this._victimServicesComponent.getContactTypes().subscribe((items) => {
99
+ this.contactTypes = items;
100
+ });
101
+ this._victimServicesComponent.getVictimContactPurposes().subscribe((items) => {
102
+ this.contactPurposes = items;
103
+ });
104
+ this._victimServicesComponent.getCasetNotes(this.victimId).subscribe(caseNoteList => {
105
+ console.log('caseNoteList');
106
+ console.log(caseNoteList);
107
+ this.caseNoteList = caseNoteList;
108
+ this.caseNoteDataSource.data = this.caseNoteList;
109
+ });
110
+ // this._victimServicesComponent.getCasetNotes(this.victimId).subscribe(
111
+ // (itms: any) => {
112
+ // const ELEMENT_DATA: Element[] = itms;
113
+ // this.caseNoteDataSource.data = ELEMENT_DATA;
114
+ // })
115
+ }
116
+ onEditCaseNote(victimCaseNoteId) {
117
+ this.hiddenDetailFlag = false;
118
+ this.hiddenAddNewFlag = true;
119
+ this.addDisableFlag = true;
120
+ this.editCaseNote = this.caseNoteList.find(x => x.victimCaseNoteId === victimCaseNoteId);
121
+ }
122
+ onDeleteCaseNote(victimCaseNoteId) {
123
+ this.commonDialogService
124
+ .confirm('', 'Do you want to delete this case note?', 'Yes', 'No')
125
+ .subscribe(res => {
126
+ this.result = res;
127
+ if (this.result) {
128
+ this._victimServicesComponent.deleteCaseNote(victimCaseNoteId, this.staffId)
129
+ .subscribe(result => {
130
+ this.snackBar.open('delete Successfully !', '', { duration: 3000, });
131
+ this._victimServicesComponent.getCasetNotes(this.victimId).subscribe(caseNoteList => {
132
+ this.caseNoteList = caseNoteList;
133
+ this.caseNoteDataSource.data = this.caseNoteList;
134
+ });
135
+ });
136
+ }
137
+ });
138
+ }
139
+ onAddNew() {
140
+ this.hiddenDetailFlag = false;
141
+ this.editCaseNote.victimCaseNoteId = 0;
142
+ const caseNoteDateControl = this.caseNoteForm.get('caseNoteDate');
143
+ caseNoteDateControl.setValue(null);
144
+ caseNoteDateControl.setErrors(null);
145
+ caseNoteDateControl.markAsPristine();
146
+ caseNoteDateControl.markAsPristine();
147
+ const contactTypeControl = this.caseNoteForm.get('contactType');
148
+ contactTypeControl.setValue(null);
149
+ contactTypeControl.setErrors(null);
150
+ contactTypeControl.markAsPristine();
151
+ contactTypeControl.markAsUntouched();
152
+ const contactPurposeControl = this.caseNoteForm.get('contactPurpose');
153
+ contactPurposeControl.setValue(null);
154
+ contactPurposeControl.setErrors(null);
155
+ contactPurposeControl.markAsPristine();
156
+ contactPurposeControl.markAsUntouched();
157
+ const commentControl = this.caseNoteForm.get('comment');
158
+ commentControl.setValue(null);
159
+ commentControl.setErrors(null);
160
+ commentControl.markAsPristine();
161
+ commentControl.markAsUntouched();
162
+ }
163
+ back() {
164
+ this.router.navigate(['victimHome']);
165
+ }
166
+ saveCaseNote() {
167
+ this.emailService
168
+ .createCaseNoteEmail("VictimCaseNoteReminders", this.offenderId, this.staffId)
169
+ .subscribe();
170
+ if (this.editCaseNote.victimCaseNoteId === undefined || this.editCaseNote.victimCaseNoteId === 0) {
171
+ const castNote = {
172
+ victimId: this.victimId,
173
+ victimCaseNoteId: 0,
174
+ caseNoteDate: this.editCaseNote.caseNoteDate,
175
+ contactTypeId: this.editCaseNote.contactTypeId,
176
+ contactType: null,
177
+ victimContactPurposeId: this.editCaseNote.victimContactPurposeId,
178
+ victimContactPurpose: null,
179
+ comment: this.editCaseNote.comment,
180
+ modifiedBy: this.staffId,
181
+ victimFirstName: null,
182
+ victimLastName: null
183
+ };
184
+ this._victimServicesComponent.addCaseNote(castNote).subscribe(result => {
185
+ this.snackBar.open('Saved Successfully !', '', {
186
+ duration: 3000,
187
+ });
188
+ // this._victimServicesComponent.sendEmail('', {referralId: 0, offenderId: this.offenderId }, this.loginStaff.staffId);
189
+ this.hiddenDetailFlag = true;
190
+ this._victimServicesComponent.getCasetNotes(this.victimId).subscribe(caseNoteList => {
191
+ this.caseNoteList = caseNoteList;
192
+ this.caseNoteDataSource.data = this.caseNoteList;
193
+ });
194
+ });
195
+ }
196
+ else {
197
+ this._victimServicesComponent.updateCaseNote(this.editCaseNote).subscribe(result => {
198
+ this.snackBar.open('Update Successfully !', '', {
199
+ duration: 3000,
200
+ });
201
+ this.hiddenDetailFlag = true;
202
+ this.hiddenAddNewFlag = false;
203
+ this.addDisableFlag = false;
204
+ this._victimServicesComponent.getCasetNotes(this.victimId).subscribe(caseNoteList => {
205
+ this.caseNoteList = caseNoteList;
206
+ this.caseNoteDataSource.data = this.caseNoteList;
207
+ });
208
+ });
209
+ }
210
+ //email
211
+ }
212
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CaseNoteComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.NgcSmartVictimService }, { token: i3.CommonDialogService }, { token: i4.MatSnackBar }, { token: i5.ActivatedRoute }, { token: i5.Router }, { token: i6.SmartAuthService }, { token: i7.EmailService }], target: i0.ɵɵFactoryTarget.Component });
213
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CaseNoteComponent, selector: "ng-component", providers: [CommonDialogService], 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\" >Case Note</h4>\r\n </mat-toolbar>\r\n <br>\r\n <div class=\"row\" >\r\n <div [hidden]=\"hiddenAddNewFlag\">\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" (click)=\"onAddNew()\" [disabled]=\"addDisableFlag\">Add Case Note</button>\r\n\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" (click)=\"back()\">Back</button>\r\n </div>\r\n </div>\r\n\r\n <div [hidden]=\"hiddenDetailFlag\" >\r\n <mat-card >\r\n <div class='container'> \r\n <form [formGroup]=\"caseNoteForm\" #caseNoteDetailForm=\"ngForm\" >\r\n \r\n <div>\r\n <mat-label>Victim Name:</mat-label>\r\n {{victimName}} \r\n </div>\r\n \r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Date of Case Note: </mat-label>\r\n <input matInput formControlName=\"caseNoteDate\" \r\n (click)=\"caseNoteDate.open()\" \r\n [matDatepicker]=\"caseNoteDate\" \r\n placeholder=\"Choose a start date\" \r\n [(ngModel)]=\"editCaseNote.caseNoteDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"caseNoteDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #caseNoteDate></mat-datepicker>\r\n\r\n <div class=\"help-block\" *ngIf=\"caseNoteForm.get('caseNoteDate').errors \r\n && (caseNoteForm.get('caseNoteDate').dirty || caseNoteForm.get('caseNoteDate').touched)\">\r\n <mat-error>case note date is <strong>required</strong></mat-error>\r\n </div> \r\n\r\n <div class=\"help-block\" \r\n *ngIf=\"caseNoteForm.get('caseNoteDate').hasError('date') \r\n && (caseNoteForm.get('caseNoteDate').dirty || caseNoteForm.get('caseNoteDate').touched)\">\r\n <mat-error>future case note Date is <strong>not allowed</strong></mat-error>\r\n </div>\r\n\r\n </mat-form-field>\r\n\r\n </div> \r\n \r\n \r\n\r\n <div>\r\n <mat-form-field>\r\n <mat-label>Contact Type:</mat-label>\r\n <mat-select placeholder=\"contactType\" formControlName=\"contactType\" required [(ngModel)]=\"editCaseNote.contactTypeId\">\r\n <mat-option *ngFor=\" let contactType of contactTypes\" [value]=\"contactType.contactTypeId\" >{{contactType.name}}</mat-option>\r\n </mat-select>\r\n\r\n <div class=\"help-block\" *ngIf=\"caseNoteForm.get('contactType').errors \r\n && (caseNoteForm.get('contactType').dirty || caseNoteForm.get('contactType').touched)\">\r\n <mat-error>comment is <strong>required</strong></mat-error>\r\n </div> \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 Purpose:</mat-label>\r\n <mat-select formControlName=\"contactPurpose\" required [(ngModel)]=\"editCaseNote.victimContactPurposeId\" class=\"mat-select-inner\">\r\n <mat-option *ngFor=\" let contactPurpose of contactPurposes\" [value]=\"contactPurpose.victimContactPurposeId\" >{{contactPurpose.name}}</mat-option>\r\n </mat-select>\r\n\r\n <div class=\"help-block\" *ngIf=\"caseNoteForm.get('contactPurpose').errors \r\n && (caseNoteForm.get('contactPurpose').dirty || caseNoteForm.get('contactPurpose').touched)\">\r\n <mat-error>comment is <strong>required</strong></mat-error>\r\n </div> \r\n \r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n\r\n <mat-form-field style=\"width: 400px;\">\r\n <mat-label>Comment:</mat-label>\r\n <textarea \r\n class=\"textarea-content\"\r\n matInput \r\n placeholder=\"\" \r\n required formControlName=\"comment\" \r\n [(ngModel)]=\"editCaseNote.comment\"\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"8\"\r\n cdkAutosizeMaxRows=\"12\">\r\n </textarea> \r\n\r\n <div class=\"help-block\" *ngIf=\"caseNoteForm.get('comment').errors \r\n && (caseNoteForm.get('comment').dirty || caseNoteForm.get('comment').touched)\">\r\n <mat-error>comment is <strong>required</strong></mat-error>\r\n </div> \r\n </mat-form-field>\r\n </div>\r\n \r\n <div>\r\n <button mat-raised-button color=\"primary\" (click)=\"saveCaseNote()\" [disabled]=\"!caseNoteDetailForm.form.valid\" >Save</button>\r\n\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" (click)=\"hiddenDetailFlag = true;addDisableFlag = false; this.hiddenAddNewFlag = false;\">Cancel</button>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </mat-card>\r\n \r\n </div>\r\n <br>\r\n <mat-table #table [dataSource]=\"caseNoteDataSource\" class=\"example-table\">\r\n <ng-container matColumnDef=\"caseNoteDate\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Case Note Date</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.caseNoteDate | date}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"contactType\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Contact Type</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.contactType}} </mat-cell>\r\n </ng-container>\r\n \r\n \r\n <ng-container matColumnDef=\"contactPurpose\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Contact Purpose</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.contactPurpose}} </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=\"victimCaseNoteId\">\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 \r\n <button \r\n class=\"sac-cso-read sac-vsp-read\" \r\n mat-icon-button \r\n color=\"primary\" \r\n matTooltip=\"Edit Case Note\" \r\n (click)=\"onEditCaseNote(row.victimCaseNoteId)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n\r\n &nbsp;&nbsp;\r\n \r\n \r\n\r\n <button\r\n class=\"sac-vsp-read\"\r\n matTooltip=\"Delete Case Note\" \r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"onDeleteCaseNote(row.victimCaseNoteId)\">\r\n <i class=\"material-icons\">delete</i>\r\n </button>\r\n\r\n\r\n\r\n\r\n </mat-cell>\r\n </ng-container>\r\n \r\n <mat-header-row *matHeaderRowDef=\"['caseNoteDate', 'contactType', 'contactPurpose', 'comment', 'victimCaseNoteId']\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns:['caseNoteDate', 'contactType', 'contactPurpose', 'comment', 'victimCaseNoteId'];\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n</mat-card-content>\r\n</mat-card>", styles: [".container{width:800px;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}.textarea-content{width:500px}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i10.MatCardHeader, selector: "mat-card-header" }, { kind: "component", type: i11.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { 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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i13.MatLabel, selector: "mat-label" }, { kind: "directive", type: i13.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i13.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i14.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: i15.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i15.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i15.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i16.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i17.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i18.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i18.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i18.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i18.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i18.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i18.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i18.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i18.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i18.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i18.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "pipe", type: i8.DatePipe, name: "date" }] });
214
+ }
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CaseNoteComponent, decorators: [{
216
+ type: Component,
217
+ args: [{ providers: [CommonDialogService], 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\" >Case Note</h4>\r\n </mat-toolbar>\r\n <br>\r\n <div class=\"row\" >\r\n <div [hidden]=\"hiddenAddNewFlag\">\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" (click)=\"onAddNew()\" [disabled]=\"addDisableFlag\">Add Case Note</button>\r\n\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" (click)=\"back()\">Back</button>\r\n </div>\r\n </div>\r\n\r\n <div [hidden]=\"hiddenDetailFlag\" >\r\n <mat-card >\r\n <div class='container'> \r\n <form [formGroup]=\"caseNoteForm\" #caseNoteDetailForm=\"ngForm\" >\r\n \r\n <div>\r\n <mat-label>Victim Name:</mat-label>\r\n {{victimName}} \r\n </div>\r\n \r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Date of Case Note: </mat-label>\r\n <input matInput formControlName=\"caseNoteDate\" \r\n (click)=\"caseNoteDate.open()\" \r\n [matDatepicker]=\"caseNoteDate\" \r\n placeholder=\"Choose a start date\" \r\n [(ngModel)]=\"editCaseNote.caseNoteDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"caseNoteDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #caseNoteDate></mat-datepicker>\r\n\r\n <div class=\"help-block\" *ngIf=\"caseNoteForm.get('caseNoteDate').errors \r\n && (caseNoteForm.get('caseNoteDate').dirty || caseNoteForm.get('caseNoteDate').touched)\">\r\n <mat-error>case note date is <strong>required</strong></mat-error>\r\n </div> \r\n\r\n <div class=\"help-block\" \r\n *ngIf=\"caseNoteForm.get('caseNoteDate').hasError('date') \r\n && (caseNoteForm.get('caseNoteDate').dirty || caseNoteForm.get('caseNoteDate').touched)\">\r\n <mat-error>future case note Date is <strong>not allowed</strong></mat-error>\r\n </div>\r\n\r\n </mat-form-field>\r\n\r\n </div> \r\n \r\n \r\n\r\n <div>\r\n <mat-form-field>\r\n <mat-label>Contact Type:</mat-label>\r\n <mat-select placeholder=\"contactType\" formControlName=\"contactType\" required [(ngModel)]=\"editCaseNote.contactTypeId\">\r\n <mat-option *ngFor=\" let contactType of contactTypes\" [value]=\"contactType.contactTypeId\" >{{contactType.name}}</mat-option>\r\n </mat-select>\r\n\r\n <div class=\"help-block\" *ngIf=\"caseNoteForm.get('contactType').errors \r\n && (caseNoteForm.get('contactType').dirty || caseNoteForm.get('contactType').touched)\">\r\n <mat-error>comment is <strong>required</strong></mat-error>\r\n </div> \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 Purpose:</mat-label>\r\n <mat-select formControlName=\"contactPurpose\" required [(ngModel)]=\"editCaseNote.victimContactPurposeId\" class=\"mat-select-inner\">\r\n <mat-option *ngFor=\" let contactPurpose of contactPurposes\" [value]=\"contactPurpose.victimContactPurposeId\" >{{contactPurpose.name}}</mat-option>\r\n </mat-select>\r\n\r\n <div class=\"help-block\" *ngIf=\"caseNoteForm.get('contactPurpose').errors \r\n && (caseNoteForm.get('contactPurpose').dirty || caseNoteForm.get('contactPurpose').touched)\">\r\n <mat-error>comment is <strong>required</strong></mat-error>\r\n </div> \r\n \r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n\r\n <mat-form-field style=\"width: 400px;\">\r\n <mat-label>Comment:</mat-label>\r\n <textarea \r\n class=\"textarea-content\"\r\n matInput \r\n placeholder=\"\" \r\n required formControlName=\"comment\" \r\n [(ngModel)]=\"editCaseNote.comment\"\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"8\"\r\n cdkAutosizeMaxRows=\"12\">\r\n </textarea> \r\n\r\n <div class=\"help-block\" *ngIf=\"caseNoteForm.get('comment').errors \r\n && (caseNoteForm.get('comment').dirty || caseNoteForm.get('comment').touched)\">\r\n <mat-error>comment is <strong>required</strong></mat-error>\r\n </div> \r\n </mat-form-field>\r\n </div>\r\n \r\n <div>\r\n <button mat-raised-button color=\"primary\" (click)=\"saveCaseNote()\" [disabled]=\"!caseNoteDetailForm.form.valid\" >Save</button>\r\n\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" (click)=\"hiddenDetailFlag = true;addDisableFlag = false; this.hiddenAddNewFlag = false;\">Cancel</button>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </mat-card>\r\n \r\n </div>\r\n <br>\r\n <mat-table #table [dataSource]=\"caseNoteDataSource\" class=\"example-table\">\r\n <ng-container matColumnDef=\"caseNoteDate\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Case Note Date</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.caseNoteDate | date}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"contactType\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Contact Type</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.contactType}} </mat-cell>\r\n </ng-container>\r\n \r\n \r\n <ng-container matColumnDef=\"contactPurpose\">\r\n <mat-header-cell *matHeaderCellDef class=\"example-header-cell\">Contact Purpose</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" class=\"example-cell\"> {{row.contactPurpose}} </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=\"victimCaseNoteId\">\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 \r\n <button \r\n class=\"sac-cso-read sac-vsp-read\" \r\n mat-icon-button \r\n color=\"primary\" \r\n matTooltip=\"Edit Case Note\" \r\n (click)=\"onEditCaseNote(row.victimCaseNoteId)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n\r\n &nbsp;&nbsp;\r\n \r\n \r\n\r\n <button\r\n class=\"sac-vsp-read\"\r\n matTooltip=\"Delete Case Note\" \r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"onDeleteCaseNote(row.victimCaseNoteId)\">\r\n <i class=\"material-icons\">delete</i>\r\n </button>\r\n\r\n\r\n\r\n\r\n </mat-cell>\r\n </ng-container>\r\n \r\n <mat-header-row *matHeaderRowDef=\"['caseNoteDate', 'contactType', 'contactPurpose', 'comment', 'victimCaseNoteId']\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns:['caseNoteDate', 'contactType', 'contactPurpose', 'comment', 'victimCaseNoteId'];\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n</mat-card-content>\r\n</mat-card>", styles: [".container{width:800px;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}.textarea-content{width:500px}\n"] }]
218
+ }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.NgcSmartVictimService }, { type: i3.CommonDialogService }, { type: i4.MatSnackBar }, { type: i5.ActivatedRoute }, { type: i5.Router }, { type: i6.SmartAuthService }, { type: i7.EmailService }] });
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZU5vdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL2Nhc2VOb3RlL2Nhc2VOb3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9jYXNlTm90ZS9jYXNlTm90ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF1RSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLGtCQUFrQixFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdqRCxNQUFNLE9BQU8saUJBQWlCO0lBd0JsQjtJQUNBO0lBQ0E7SUFDRDtJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBN0JYLDhCQUE4QjtJQUM3QixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFhO0lBRXZCLGdCQUFnQixDQUFTO0lBQ3pCLFlBQVksQ0FBYTtJQUN6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Q2hhbmdlcywgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLEFmdGVyVmlld0luaXQgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nY1NtYXJ0VmljdGltU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXZpY3RpbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uL2NvbW1vbi1kaWFsb2cvY29tbW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBTZWxlY3RlZE9mZmVuZGVyLCBMb2dpblN0YWZmIH0gZnJvbSAnQGNzbWFydC9uZ2Mtc21hcnQtY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDYXNlTm90ZX0gZnJvbSAnLi4vc21hcnQtdmljdGltLm1vZGVsJztcclxuaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJ0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUnO1xyXG5pbXBvcnQgeyBkYXRlVmFsaWRhdG9yLCBwYXNzRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4uL3NoYXJlZC92YWxpZGF0b3JzJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBFbWFpbFNlcnZpY2UgfSBmcm9tICcuLi9lbWFpbC5zZXJ2aWNlcyc7XHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2VOb3RlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYXNlTm90ZS5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbQ29tbW9uRGlhbG9nU2VydmljZV1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXNlTm90ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0ICB7XHJcblxyXG4gLy8gQElucHV0KCkgaXNJbnRha2U6IGJvb2xlYW47XHJcbiAgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gIGxvZ2luU3RhZmY6IExvZ2luU3RhZmY7XHJcbiAgXHJcbiAgaGlkZGVuRGV0YWlsRmxhZzpib29sZWFuO1xyXG4gIGNhc2VOb3RlTGlzdDogQ2FzZU5vdGVbXTtcclxuICBjYXNlTm90ZTogQ2FzZU5vdGU7XHJcbiAgZWRpdENhc2VOb3RlOiBDYXNlTm90ZSA9IDxDYXNlTm90ZT57fTtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBjb250YWN0VHlwZXM6IGFueVtdO1xyXG4gIGNvbnRhY3RQdXJwb3NlczogYW55W107XHJcbiAgcmVzdWx0OiBhbnk7XHJcbiAgdmljdGltTmFtZTogc3RyaW5nO1xyXG4gIHN0YWZmSWQ6IG51bWJlcjtcclxuICB2aWN0aW1JZDogbnVtYmVyO1xyXG4gIHByaXZhdGUgc3ViOiBhbnk7XHJcbiAgY2FzZU5vdGVEYXRhU291cmNlPSBuZXcgIE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGFkZERpc2FibGVGbGFnOiBib29sZWFuO1xyXG4gIGhpZGRlbkFkZE5ld0ZsYWc6IGJvb2xlYW47XHJcbiAgY2FzZU5vdGVGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlciwgXHJcbiAgICBwcml2YXRlIF92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudDogTmdjU21hcnRWaWN0aW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb21tb25EaWFsb2dTZXJ2aWNlOiBDb21tb25EaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgc21hcnRBdXRoU2VydmljZTogU21hcnRBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgZW1haWxTZXJ2aWNlOiBFbWFpbFNlcnZpY2VcclxuICAgICBcclxuICApIHtcclxuICAgICAgdGhpcy5pbml0Rm9ybSgpO1xyXG4gICAgIH1cclxuICAgcHJpdmF0ZSBpbml0Rm9ybSgpIHtcclxuICAgdGhpcy5jYXNlTm90ZUZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgIGNhc2VOb3RlRGF0ZTogIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXHJcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsZGF0ZVZhbGlkYXRvcigpXSkpLFxyXG4gICAgY29udGFjdFR5cGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICBjb250YWN0UHVycG9zZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyxWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIGNvbW1lbnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuICB9KTtcclxuXHJcbiAgIHRoaXMuY2FzZU5vdGVGb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgIHRoaXMuY2FzZU5vdGVGb3JtLm1hcmtBc1VudG91Y2hlZCgpO1xyXG5cclxuICAgfVxyXG4gICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNtYXJ0QXV0aFNlcnZpY2Uuc2V0UGVybWlzc2lvbignVmljdGltJywgdGhpcy5yb3V0ZS5zbmFwc2hvdCk7XHJcbiAgfVxyXG4gXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB2YXIgZGF0YSA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YTtcclxuICAgIHRoaXMubG9naW5TdGFmZiA9IGRhdGEubG9naW5TdGFmZjtcclxuICAgIHRoaXMuc3RhZmZJZCA9ICB0aGlzLmxvZ2luU3RhZmYuc3RhZmZJZDtcclxuXHJcblxyXG4gICAgdGhpcy5zdWIgPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy52aWN0aW1JZCA9IHBhcmFtc1sndmljdGltSWQnXTtcclxuICAgICAgdGhpcy5vZmZlbmRlcklkID0gcGFyYW1zWydvZmZlbmRlcklkJ107XHJcbiBcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkRGlzYWJsZUZsYWc9IGZhbHNlO1xyXG4gICAgdGhpcy5oaWRkZW5EZXRhaWxGbGFnID0gdHJ1ZTtcclxuICAgIHRoaXMuaGlkZGVuQWRkTmV3RmxhZyA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRWaWN0aW0odGhpcy52aWN0aW1JZCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudmljdGltTmFtZSA9IGl0ZW1zLmZpcnN0TmFtZSArICcsICcgKyBpdGVtcy5sYXN0TmFtZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRDb250YWN0VHlwZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb250YWN0VHlwZXMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRWaWN0aW1Db250YWN0UHVycG9zZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb250YWN0UHVycG9zZXMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICBcclxuICAgIHRoaXMuX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50LmdldENhc2V0Tm90ZXModGhpcy52aWN0aW1JZCkuc3Vic2NyaWJlKFxyXG4gICAgICBjYXNlTm90ZUxpc3QgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYXNlTm90ZUxpc3QnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhjYXNlTm90ZUxpc3QpO1xyXG4gICAgICAgIHRoaXMuY2FzZU5vdGVMaXN0ID0gY2FzZU5vdGVMaXN0OyBcclxuICAgICAgICB0aGlzLmNhc2VOb3RlRGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jYXNlTm90ZUxpc3Q7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG5cclxuICAgIFxyXG5cclxuICAgIC8vIHRoaXMuX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50LmdldENhc2V0Tm90ZXModGhpcy52aWN0aW1JZCkuc3Vic2NyaWJlKFxyXG4gICAgLy8gICAoaXRtczogYW55KSA9PiB7XHJcbiAgICAvLyAgIGNvbnN0IEVMRU1FTlRfREFUQTogRWxlbWVudFtdID0gaXRtcztcclxuICAgIC8vICAgdGhpcy5jYXNlTm90ZURhdGFTb3VyY2UuZGF0YSA9ICBFTEVNRU5UX0RBVEE7XHJcbiAgICAvLyAgIH0pXHJcbiAgfVxyXG4gIG9uRWRpdENhc2VOb3RlKHZpY3RpbUNhc2VOb3RlSWQ6IG51bWJlcil7XHJcbiAgXHJcbiAgICB0aGlzLmhpZGRlbkRldGFpbEZsYWcgPWZhbHNlO1xyXG4gICAgdGhpcy5oaWRkZW5BZGROZXdGbGFnID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmFkZERpc2FibGVGbGFnID0gdHJ1ZTtcclxuICAgIHRoaXMuZWRpdENhc2VOb3RlID0gdGhpcy5jYXNlTm90ZUxpc3QuZmluZCh4ID0+IHgudmljdGltQ2FzZU5vdGVJZCA9PT0gdmljdGltQ2FzZU5vdGVJZCk7XHJcblxyXG4gIH1cclxuIFxyXG4gIG9uRGVsZXRlQ2FzZU5vdGUodmljdGltQ2FzZU5vdGVJZDogbnVtYmVyKXtcclxuICAgICB0aGlzLmNvbW1vbkRpYWxvZ1NlcnZpY2VcclxuICAgIC5jb25maXJtKCcnLCAnRG8geW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2FzZSBub3RlPycsICdZZXMnLCAnTm8nKVxyXG4gICAgLnN1YnNjcmliZShyZXMgPT4ge3RoaXMucmVzdWx0ID0gIHJlcztcclxuICAgICAgICBpZiAodGhpcy5yZXN1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmljdGltU2VydmljZXNDb21wb25lbnQuZGVsZXRlQ2FzZU5vdGUodmljdGltQ2FzZU5vdGVJZCwgdGhpcy5zdGFmZklkKVxyXG4gICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdkZWxldGUgU3VjY2Vzc2Z1bGx5ICEnLCAnJywgeyBkdXJhdGlvbjogMzAwMCx9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50LmdldENhc2V0Tm90ZXModGhpcy52aWN0aW1JZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgIGNhc2VOb3RlTGlzdCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhc2VOb3RlTGlzdCA9IGNhc2VOb3RlTGlzdDsgXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhc2VOb3RlRGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jYXNlTm90ZUxpc3Q7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgfSk7XHJcbiAgfVxyXG4gIG9uQWRkTmV3KCl7XHJcblxyXG4gICAgdGhpcy5oaWRkZW5EZXRhaWxGbGFnID0gZmFsc2U7XHJcbiAgICB0aGlzLmVkaXRDYXNlTm90ZS52aWN0aW1DYXNlTm90ZUlkID0gMDtcclxuXHJcbiAgICBjb25zdCBjYXNlTm90ZURhdGVDb250cm9sID0gdGhpcy5jYXNlTm90ZUZvcm0uZ2V0KCdjYXNlTm90ZURhdGUnKTtcclxuICAgIGNhc2VOb3RlRGF0ZUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICBjYXNlTm90ZURhdGVDb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgIGNhc2VOb3RlRGF0ZUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcclxuICAgIGNhc2VOb3RlRGF0ZUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcclxuXHJcblxyXG4gICAgY29uc3QgY29udGFjdFR5cGVDb250cm9sID0gdGhpcy5jYXNlTm90ZUZvcm0uZ2V0KCdjb250YWN0VHlwZScpO1xyXG4gICAgY29udGFjdFR5cGVDb250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgY29udGFjdFR5cGVDb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgIGNvbnRhY3RUeXBlQ29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgY29udGFjdFR5cGVDb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG5cclxuXHJcbiAgICBjb25zdCBjb250YWN0UHVycG9zZUNvbnRyb2wgPSB0aGlzLmNhc2VOb3RlRm9ybS5nZXQoJ2NvbnRhY3RQdXJwb3NlJyk7XHJcbiAgICBjb250YWN0UHVycG9zZUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICBjb250YWN0UHVycG9zZUNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgY29udGFjdFB1cnBvc2VDb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICBjb250YWN0UHVycG9zZUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XHJcblxyXG5cclxuICAgIGNvbnN0IGNvbW1lbnRDb250cm9sID0gdGhpcy5jYXNlTm90ZUZvcm0uZ2V0KCdjb21tZW50Jyk7XHJcbiAgICBjb21tZW50Q29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgIGNvbW1lbnRDb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgIGNvbW1lbnRDb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICBjb21tZW50Q29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcclxuICAgXHJcbiAgfVxyXG4gIGJhY2soKXtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndmljdGltSG9tZSddKTtcclxuICB9XHJcbiBcclxuICBzYXZlQ2FzZU5vdGUoKXtcclxuICAgIHRoaXMuZW1haWxTZXJ2aWNlXHJcbiAgICAuY3JlYXRlQ2FzZU5vdGVFbWFpbChcclxuICAgICAgXCJWaWN0aW1DYXNlTm90ZVJlbWluZGVyc1wiLFxyXG4gICAgdGhpcy5vZmZlbmRlcklkLFxyXG4gICAgdGhpcy5zdGFmZklkXHJcbiAgICApXHJcbiAgICAuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZWRpdENhc2VOb3RlLnZpY3RpbUNhc2VOb3RlSWQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmVkaXRDYXNlTm90ZS52aWN0aW1DYXNlTm90ZUlkID09PSAwKSB7XHJcblxyXG4gICAgICBjb25zdCBjYXN0Tm90ZTogQ2FzZU5vdGUgPSB7XHJcbiAgICAgICAgdmljdGltSWQ6dGhpcy52aWN0aW1JZCxcclxuICAgICAgICB2aWN0aW1DYXNlTm90ZUlkOiAwLFxyXG4gICAgICAgIGNhc2VOb3RlRGF0ZTogdGhpcy5lZGl0Q2FzZU5vdGUuY2FzZU5vdGVEYXRlLFxyXG4gICAgICAgIGNvbnRhY3RUeXBlSWQ6IHRoaXMuZWRpdENhc2VOb3RlLmNvbnRhY3RUeXBlSWQsXHJcbiAgICAgICAgY29udGFjdFR5cGU6IG51bGwsXHJcbiAgICAgICAgdmljdGltQ29udGFjdFB1cnBvc2VJZDogdGhpcy5lZGl0Q2FzZU5vdGUudmljdGltQ29udGFjdFB1cnBvc2VJZCxcclxuICAgICAgICB2aWN0aW1Db250YWN0UHVycG9zZTogbnVsbCxcclxuICAgICAgICBjb21tZW50OiB0aGlzLmVkaXRDYXNlTm90ZS5jb21tZW50LFxyXG4gICAgICAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZCxcclxuICAgICAgICB2aWN0aW1GaXJzdE5hbWU6IG51bGwsXHJcbiAgICAgICAgdmljdGltTGFzdE5hbWU6IG51bGxcclxuXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fdmljdGltU2VydmljZXNDb21wb25lbnQuYWRkQ2FzZU5vdGUoY2FzdE5vdGUpLnN1YnNjcmliZShcclxuICAgICAgcmVzdWx0ID0+IHtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1NhdmVkIFN1Y2Nlc3NmdWxseSAhJywgJycsIHtcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgLy8gdGhpcy5fdmljdGltU2VydmljZXNDb21wb25lbnQuc2VuZEVtYWlsKCcnLCB7cmVmZXJyYWxJZDogIDAsIG9mZmVuZGVySWQ6IHRoaXMub2ZmZW5kZXJJZCB9LCB0aGlzLmxvZ2luU3RhZmYuc3RhZmZJZCk7XHJcblxyXG5cclxuXHJcbiAgICAgIHRoaXMuaGlkZGVuRGV0YWlsRmxhZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50LmdldENhc2V0Tm90ZXModGhpcy52aWN0aW1JZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIGNhc2VOb3RlTGlzdCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNhc2VOb3RlTGlzdCA9IGNhc2VOb3RlTGlzdDsgXHJcbiAgICAgICAgICB0aGlzLmNhc2VOb3RlRGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jYXNlTm90ZUxpc3Q7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICk7XHJcbiB9IGVsc2Uge1xyXG4gIHRoaXMuX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50LnVwZGF0ZUNhc2VOb3RlKHRoaXMuZWRpdENhc2VOb3RlKS5zdWJzY3JpYmUoXHJcbiAgICByZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1VwZGF0ZSBTdWNjZXNzZnVsbHkgIScsICcnLCB7XHJcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuaGlkZGVuRGV0YWlsRmxhZyA9IHRydWU7XHJcbiAgICB0aGlzLmhpZGRlbkFkZE5ld0ZsYWcgPSAgZmFsc2U7XHJcbiAgICB0aGlzLmFkZERpc2FibGVGbGFnID0gZmFsc2U7XHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRDYXNldE5vdGVzKHRoaXMudmljdGltSWQpLnN1YnNjcmliZShcclxuICAgICAgY2FzZU5vdGVMaXN0ID0+IHtcclxuICAgICAgICB0aGlzLmNhc2VOb3RlTGlzdCA9IGNhc2VOb3RlTGlzdDsgXHJcbiAgICAgICAgdGhpcy5jYXNlTm90ZURhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY2FzZU5vdGVMaXN0O1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgICB9XHJcbiAgKTtcclxuICAgIH0gXHJcblxyXG4vL2VtYWlsXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbiA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuXHJcbiAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtdG9vbGJhciAgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJjYXJkLWhlYWRlclwiID5DYXNlIE5vdGU8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbaGlkZGVuXT1cImhpZGRlbkFkZE5ld0ZsYWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDs8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvbkFkZE5ldygpXCIgW2Rpc2FibGVkXT1cImFkZERpc2FibGVGbGFnXCI+QWRkIENhc2UgTm90ZTwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDs8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICAoY2xpY2spPVwiYmFjaygpXCI+QmFjazwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbaGlkZGVuXT1cImhpZGRlbkRldGFpbEZsYWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyJz4gICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNhc2VOb3RlRm9ybVwiICNjYXNlTm90ZURldGFpbEZvcm09XCJuZ0Zvcm1cIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t2aWN0aW1OYW1lfX0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+ICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EYXRlIG9mIENhc2UgTm90ZTogPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNhc2VOb3RlRGF0ZVwiICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhc2VOb3RlRGF0ZS5vcGVuKClcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJjYXNlTm90ZURhdGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNob29zZSBhIHN0YXJ0IGRhdGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRDYXNlTm90ZS5jYXNlTm90ZURhdGVcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiY2FzZU5vdGVEYXRlXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2Nhc2VOb3RlRGF0ZT48L21hdC1kYXRlcGlja2VyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJjYXNlTm90ZUZvcm0uZ2V0KCdjYXNlTm90ZURhdGUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoY2FzZU5vdGVGb3JtLmdldCgnY2FzZU5vdGVEYXRlJykuZGlydHkgfHwgY2FzZU5vdGVGb3JtLmdldCgnY2FzZU5vdGVEYXRlJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+Y2FzZSBub3RlIGRhdGUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNhc2VOb3RlRm9ybS5nZXQoJ2Nhc2VOb3RlRGF0ZScpLmhhc0Vycm9yKCdkYXRlJykgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoY2FzZU5vdGVGb3JtLmdldCgnY2FzZU5vdGVEYXRlJykuZGlydHkgfHwgY2FzZU5vdGVGb3JtLmdldCgnY2FzZU5vdGVEYXRlJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+ZnV0dXJlIGNhc2Ugbm90ZSBEYXRlIGlzIDxzdHJvbmc+bm90IGFsbG93ZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q29udGFjdCBUeXBlOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIHBsYWNlaG9sZGVyPVwiY29udGFjdFR5cGVcIiBmb3JtQ29udHJvbE5hbWU9XCJjb250YWN0VHlwZVwiICByZXF1aXJlZCAgIFsobmdNb2RlbCldPVwiZWRpdENhc2VOb3RlLmNvbnRhY3RUeXBlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwiIGxldCBjb250YWN0VHlwZSBvZiBjb250YWN0VHlwZXNcIiBbdmFsdWVdPVwiY29udGFjdFR5cGUuY29udGFjdFR5cGVJZFwiID57e2NvbnRhY3RUeXBlLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwiY2FzZU5vdGVGb3JtLmdldCgnY29udGFjdFR5cGUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoY2FzZU5vdGVGb3JtLmdldCgnY29udGFjdFR5cGUnKS5kaXJ0eSB8fCBjYXNlTm90ZUZvcm0uZ2V0KCdjb250YWN0VHlwZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPmNvbW1lbnQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LXNlbGVjdC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkNvbnRhY3QgUHVycG9zZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJjb250YWN0UHVycG9zZVwiICAgcmVxdWlyZWQgWyhuZ01vZGVsKV09XCJlZGl0Q2FzZU5vdGUudmljdGltQ29udGFjdFB1cnBvc2VJZFwiIGNsYXNzPVwibWF0LXNlbGVjdC1pbm5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCIgbGV0IGNvbnRhY3RQdXJwb3NlIG9mIGNvbnRhY3RQdXJwb3Nlc1wiIFt2YWx1ZV09XCJjb250YWN0UHVycG9zZS52aWN0aW1Db250YWN0UHVycG9zZUlkXCIgPnt7Y29udGFjdFB1cnBvc2UubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJjYXNlTm90ZUZvcm0uZ2V0KCdjb250YWN0UHVycG9zZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChjYXNlTm90ZUZvcm0uZ2V0KCdjb250YWN0UHVycG9zZScpLmRpcnR5IHx8IGNhc2VOb3RlRm9ybS5nZXQoJ2NvbnRhY3RQdXJwb3NlJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+Y29tbWVudCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6IDQwMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Db21tZW50OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0YXJlYS1jb250ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIGZvcm1Db250cm9sTmFtZT1cImNvbW1lbnRcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdENhc2VOb3RlLmNvbW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2F1dG9zaXplPVwiY2RrVGV4dGFyZWFBdXRvc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCI4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0F1dG9zaXplTWF4Um93cz1cIjEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRhcmVhPiBcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwiY2FzZU5vdGVGb3JtLmdldCgnY29tbWVudCcpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChjYXNlTm90ZUZvcm0uZ2V0KCdjb21tZW50JykuZGlydHkgfHwgY2FzZU5vdGVGb3JtLmdldCgnY29tbWVudCcpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPmNvbW1lbnQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2F2ZUNhc2VOb3RlKClcIiAgW2Rpc2FibGVkXT1cIiFjYXNlTm90ZURldGFpbEZvcm0uZm9ybS52YWxpZFwiID5TYXZlPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOzxidXR0b24gIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICAoY2xpY2spPVwiaGlkZGVuRGV0YWlsRmxhZyA9IHRydWU7YWRkRGlzYWJsZUZsYWcgPSBmYWxzZTsgdGhpcy5oaWRkZW5BZGROZXdGbGFnID0gZmFsc2U7XCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYmxlICN0YWJsZSBbZGF0YVNvdXJjZV09XCJjYXNlTm90ZURhdGFTb3VyY2VcIiBjbGFzcz1cImV4YW1wbGUtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY2FzZU5vdGVEYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5DYXNlIE5vdGUgRGF0ZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5jYXNlTm90ZURhdGUgfCBkYXRlfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvbnRhY3RUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+Q29udGFjdCBUeXBlPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5jb250YWN0VHlwZX19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29udGFjdFB1cnBvc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db250YWN0IFB1cnBvc2U8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LmNvbnRhY3RQdXJwb3NlfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb21tZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db21tZW50PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LmNvbW1lbnR9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInZpY3RpbUNhc2VOb3RlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj48L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNhYy1jc28tcmVhZCBzYWMtdnNwLXJlYWRcIiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvbiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCBDYXNlIE5vdGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRWRpdENhc2VOb3RlKHJvdy52aWN0aW1DYXNlTm90ZUlkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5tb2RlX2VkaXQ8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYWMtdnNwLXJlYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRlbGV0ZSBDYXNlIE5vdGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlbGV0ZUNhc2VOb3RlKHJvdy52aWN0aW1DYXNlTm90ZUlkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmRlbGV0ZTwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cIlsnY2FzZU5vdGVEYXRlJywgJ2NvbnRhY3RUeXBlJywgJ2NvbnRhY3RQdXJwb3NlJywgJ2NvbW1lbnQnLCAndmljdGltQ2FzZU5vdGVJZCddXCIgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1yb3dcIj48L21hdC1oZWFkZXItcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6WydjYXNlTm90ZURhdGUnLCAnY29udGFjdFR5cGUnLCAnY29udGFjdFB1cnBvc2UnLCAnY29tbWVudCcsICd2aWN0aW1DYXNlTm90ZUlkJ107XCIgY2xhc3M9XCJleGFtcGxlLXJvd1wiPjwvbWF0LXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYmxlPlxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuPC9tYXQtY2FyZC1jb250ZW50PlxyXG48L21hdC1jYXJkPiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { Component } from '@angular/core';
2
+ import { MatDialogRef } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@angular/material/card";
7
+ import * as i4 from "@angular/common";
8
+ export class CommonDialogComponent {
9
+ commondialogRef;
10
+ title;
11
+ message;
12
+ cmdYesTitle = "Yes";
13
+ cmdNoTitle = "No";
14
+ constructor(commondialogRef) {
15
+ this.commondialogRef = commondialogRef;
16
+ }
17
+ ngOnInit() {
18
+ }
19
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CommonDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
20
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CommonDialogComponent, selector: "app-common-dialog", ngImport: i0, template: "\r\n \r\n <mat-card class=\"example-card\"> \r\n <mat-card-content>\r\n <p>{{ title }}</p>\r\n <p>{{ message }}</p>\r\n <br>\r\n\r\n <div class=\"inner\">\r\n <button type=\"button\" mat-raised-button color=\"primary\"\r\n (click)=\"commondialogRef.close(true)\">{{cmdYesTitle}}</button>\r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n <div *ngIf=\"cmdYesTitle!=='Ok'\" class=\"inner\">\r\n <button type=\"button\" mat-raised-button color=\"primary\" \r\n (click)=\"commondialogRef.close()\">{{cmdNoTitle}}</button>\r\n \r\n </div>\r\n \r\n \r\n </mat-card-content>\r\n </mat-card>", styles: [".md-dialog-container{position:fixed;top:0!important;overflow:hidden}.inner{display:inline-block}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CommonDialogComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'app-common-dialog', template: "\r\n \r\n <mat-card class=\"example-card\"> \r\n <mat-card-content>\r\n <p>{{ title }}</p>\r\n <p>{{ message }}</p>\r\n <br>\r\n\r\n <div class=\"inner\">\r\n <button type=\"button\" mat-raised-button color=\"primary\"\r\n (click)=\"commondialogRef.close(true)\">{{cmdYesTitle}}</button>\r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n <div *ngIf=\"cmdYesTitle!=='Ok'\" class=\"inner\">\r\n <button type=\"button\" mat-raised-button color=\"primary\" \r\n (click)=\"commondialogRef.close()\">{{cmdNoTitle}}</button>\r\n \r\n </div>\r\n \r\n \r\n </mat-card-content>\r\n </mat-card>", styles: [".md-dialog-container{position:fixed;top:0!important;overflow:hidden}.inner{display:inline-block}\n"] }]
25
+ }], ctorParameters: () => [{ type: i1.MatDialogRef }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvY29tbW9uLWRpYWxvZy9jb21tb24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9jb21tb24tZGlhbG9nL2NvbW1vbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQVksWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQU9qRSxNQUFNLE9BQU8scUJBQXFCO0lBTWI7SUFMZCxLQUFLLENBQVM7SUFDZCxPQUFPLENBQVM7SUFDaEIsV0FBVyxHQUFVLEtBQUssQ0FBQztJQUMzQixVQUFVLEdBQVcsSUFBSSxDQUFDO0lBRS9CLFlBQW1CLGVBQW9EO1FBQXBELG9CQUFlLEdBQWYsZUFBZSxDQUFxQztJQUFJLENBQUM7SUFFNUUsUUFBUTtJQUVSLENBQUM7MEhBVlUscUJBQXFCOzhHQUFyQixxQkFBcUIseURDUmxDLHM4QkFzQnNCOzsyRkRkVCxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXREaWFsb2csIE1hdERpYWxvZ1JlZn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvbW1vbi1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb21tb24tZGlhbG9nLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxucHVibGljIHRpdGxlOiBzdHJpbmc7XHJcbnB1YmxpYyBtZXNzYWdlOiBzdHJpbmc7XHJcbnB1YmxpYyBjbWRZZXNUaXRsZTogc3RyaW5nID1cIlllc1wiO1xyXG5wdWJsaWMgY21kTm9UaXRsZTogc3RyaW5nID0gXCJOb1wiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29tbW9uZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q29tbW9uRGlhbG9nQ29tcG9uZW50PikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICBcclxuICB9XHJcblxyXG59XHJcbiIsIlxyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJleGFtcGxlLWNhcmRcIj4gXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICA8cD57eyB0aXRsZSB9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgIDxwPnt7IG1lc3NhZ2UgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICA8YnI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29tbW9uZGlhbG9nUmVmLmNsb3NlKHRydWUpXCI+e3tjbWRZZXNUaXRsZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21kWWVzVGl0bGUhPT0nT2snXCIgY2xhc3M9XCJpbm5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb21tb25kaWFsb2dSZWYuY2xvc2UoKVwiPnt7Y21kTm9UaXRsZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgPC9tYXQtY2FyZD4iXX0=
@@ -1,34 +1,34 @@
1
- import { NgModule } from '@angular/core';
2
- import { SharedModule } from '../shared/app.shared.module';
3
- import { CommonDialogComponent } from './common-dialog.component';
4
- import * as i0 from "@angular/core";
5
- export class CommonDialogModule {
6
- }
7
- /** @nocollapse */ CommonDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CommonDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- /** @nocollapse */ CommonDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: CommonDialogModule, declarations: [CommonDialogComponent], imports: [
9
- // MaterialModule.forRoot(),
10
- SharedModule], exports: [CommonDialogComponent] });
11
- /** @nocollapse */ CommonDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CommonDialogModule, providers: [
12
- CommonDialogComponent,
13
- ], imports: [
14
- // MaterialModule.forRoot(),
15
- SharedModule] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CommonDialogModule, decorators: [{
17
- type: NgModule,
18
- args: [{
19
- imports: [
20
- // MaterialModule.forRoot(),
21
- SharedModule
22
- ],
23
- exports: [
24
- CommonDialogComponent,
25
- ],
26
- declarations: [
27
- CommonDialogComponent,
28
- ],
29
- providers: [
30
- CommonDialogComponent,
31
- ]
32
- }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWRpYWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvY29tbW9uLWRpYWxvZy9jb21tb24tZGlhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFpQmxFLE1BQU0sT0FBTyxrQkFBa0I7O2tJQUFsQixrQkFBa0I7bUlBQWxCLGtCQUFrQixpQkFOdkIscUJBQXFCO1FBUHJCLDRCQUE0QjtRQUM1QixZQUFZLGFBR1oscUJBQXFCO21JQVNoQixrQkFBa0IsYUFKaEI7UUFDUCxxQkFBcUI7S0FDeEI7UUFYRyw0QkFBNEI7UUFDNUIsWUFBWTsyRkFZUCxrQkFBa0I7a0JBZjlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLDRCQUE0Qjt3QkFDNUIsWUFBWTtxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wscUJBQXFCO3FCQUN4QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YscUJBQXFCO3FCQUN4QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AscUJBQXFCO3FCQUN4QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvYXBwLnNoYXJlZC5tb2R1bGUnO1xyXG5cclxuaW1wb3J0IHsgQ29tbW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIC8vIE1hdGVyaWFsTW9kdWxlLmZvclJvb3QoKSxcclxuICAgICAgICBTaGFyZWRNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIENvbW1vbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBDb21tb25EaWFsb2dDb21wb25lbnQsXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tb25EaWFsb2dNb2R1bGUgeyB9XHJcbiJdfQ==
1
+ import { NgModule } from '@angular/core';
2
+ import { SharedModule } from '../shared/app.shared.module';
3
+ import { CommonDialogComponent } from './common-dialog.component';
4
+ import * as i0 from "@angular/core";
5
+ export class CommonDialogModule {
6
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CommonDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: CommonDialogModule, declarations: [CommonDialogComponent], imports: [
8
+ // MaterialModule.forRoot(),
9
+ SharedModule], exports: [CommonDialogComponent] });
10
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CommonDialogModule, providers: [
11
+ CommonDialogComponent,
12
+ ], imports: [
13
+ // MaterialModule.forRoot(),
14
+ SharedModule] });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CommonDialogModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ imports: [
20
+ // MaterialModule.forRoot(),
21
+ SharedModule
22
+ ],
23
+ exports: [
24
+ CommonDialogComponent,
25
+ ],
26
+ declarations: [
27
+ CommonDialogComponent,
28
+ ],
29
+ providers: [
30
+ CommonDialogComponent,
31
+ ]
32
+ }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWRpYWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvY29tbW9uLWRpYWxvZy9jb21tb24tZGlhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFpQmxFLE1BQU0sT0FBTyxrQkFBa0I7MEhBQWxCLGtCQUFrQjsySEFBbEIsa0JBQWtCLGlCQU52QixxQkFBcUI7WUFQckIsNEJBQTRCO1lBQzVCLFlBQVksYUFHWixxQkFBcUI7MkhBU2hCLGtCQUFrQixhQUpoQjtZQUNQLHFCQUFxQjtTQUN4QjtZQVhHLDRCQUE0QjtZQUM1QixZQUFZOzsyRkFZUCxrQkFBa0I7a0JBZjlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLDRCQUE0Qjt3QkFDNUIsWUFBWTtxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wscUJBQXFCO3FCQUN4QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YscUJBQXFCO3FCQUN4QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AscUJBQXFCO3FCQUN4QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvYXBwLnNoYXJlZC5tb2R1bGUnO1xyXG5cclxuaW1wb3J0IHsgQ29tbW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIC8vIE1hdGVyaWFsTW9kdWxlLmZvclJvb3QoKSxcclxuICAgICAgICBTaGFyZWRNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIENvbW1vbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBDb21tb25EaWFsb2dDb21wb25lbnQsXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tb25EaWFsb2dNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { CommonDialogComponent } from './common-dialog.component';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { Injectable } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/dialog";
6
+ export class CommonDialogService {
7
+ dialog;
8
+ constructor(dialog) {
9
+ this.dialog = dialog;
10
+ }
11
+ confirm(title, message, cmdYesTitle, cmdNoTitle) {
12
+ let dialogRef;
13
+ dialogRef = this.dialog.open(CommonDialogComponent);
14
+ dialogRef.componentInstance.title = title;
15
+ dialogRef.componentInstance.message = message;
16
+ dialogRef.componentInstance.cmdYesTitle = cmdYesTitle;
17
+ dialogRef.componentInstance.cmdNoTitle = cmdNoTitle;
18
+ return dialogRef.afterClosed();
19
+ }
20
+ warning(title, message, cmdOkTitle) {
21
+ let dialogRef;
22
+ dialogRef = this.dialog.open(CommonDialogComponent);
23
+ dialogRef.componentInstance.title = title;
24
+ dialogRef.componentInstance.message = message;
25
+ dialogRef.componentInstance.cmdYesTitle = cmdOkTitle;
26
+ return dialogRef.afterClosed();
27
+ }
28
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CommonDialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
29
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CommonDialogService });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CommonDialogService, decorators: [{
32
+ type: Injectable
33
+ }], ctorParameters: () => [{ type: i1.MatDialog }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL2NvbW1vbi1kaWFsb2cvY29tbW9uLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQWlDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFFUjtJQUFwQixZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQUksQ0FBQztJQUVuQyxPQUFPLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxXQUFtQixFQUFFLFVBQWtCO1FBRWxGLElBQUksU0FBOEMsQ0FBQztRQUVuRCxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNwRCxTQUFTLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUM5QyxTQUFTLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUN0RCxTQUFTLENBQUMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUNwRCxPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsVUFBa0I7UUFFN0QsSUFBSSxTQUE4QyxDQUFDO1FBRW5ELFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BELFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzlDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBRXJELE9BQU8sU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7MEhBMUJRLG1CQUFtQjs4SEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21tb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbW1vbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbW1vbkRpYWxvZ1NlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHsgfVxyXG5cclxuICAgIHB1YmxpYyBjb25maXJtKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgY21kWWVzVGl0bGU6IHN0cmluZywgY21kTm9UaXRsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcblxyXG4gICAgICAgIGxldCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb21tb25EaWFsb2dDb21wb25lbnQ+O1xyXG5cclxuICAgICAgICBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbW1vbkRpYWxvZ0NvbXBvbmVudCk7XHJcbiAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLnRpdGxlID0gdGl0bGU7XHJcbiAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLm1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5jbWRZZXNUaXRsZSA9IGNtZFllc1RpdGxlO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5jbWROb1RpdGxlID0gY21kTm9UaXRsZTtcclxuICAgICAgICByZXR1cm4gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHdhcm5pbmcodGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBjbWRPa1RpdGxlOiBzdHJpbmcsICk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG5cclxuICAgICAgICBsZXQgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q29tbW9uRGlhbG9nQ29tcG9uZW50PjtcclxuXHJcbiAgICAgICAgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb21tb25EaWFsb2dDb21wb25lbnQpO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS50aXRsZSA9IHRpdGxlO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5tZXNzYWdlID0gbWVzc2FnZTtcclxuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuY21kWWVzVGl0bGUgPSBjbWRPa1RpdGxlO1xyXG4gICAgICAgXHJcbiAgICAgICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=