@hmcts/ccd-case-ui-toolkit 7.1.23 → 7.1.24-case-links-fix

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { Component } from '@angular/core';
2
- import { FormControl, FormGroup } from '@angular/forms';
2
+ import { FormControl } from '@angular/forms';
3
3
  import { AbstractAppConfig } from '../../../../app.config';
4
4
  import { CaseEditDataService } from '../../../commons/case-edit-data';
5
5
  import { CommonDataService } from '../../../services/common-data-service/common-data-service';
@@ -84,14 +84,16 @@ export class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent
84
84
  // Get linked case reasons from ref data
85
85
  this.linkedCasesService.editMode = false;
86
86
  this.subscriptions.add(this.caseEditDataService.caseDetails$.subscribe({
87
- next: caseDetails => { this.initialiseCaseDetails(caseDetails); }
87
+ next: (caseDetails) => {
88
+ this.initialiseCaseDetails(caseDetails);
89
+ }
88
90
  }));
89
91
  this.getOrgService();
90
92
  this.subscriptions.add(this.caseEditDataService.caseEventTriggerName$.subscribe({
91
- next: name => this.linkedCasesService.isLinkedCasesEventTrigger = (name === LinkedCasesEventTriggers.LINK_CASES)
93
+ next: (name) => this.linkedCasesService.isLinkedCasesEventTrigger = (name === LinkedCasesEventTriggers.LINK_CASES)
92
94
  }));
93
95
  this.subscriptions.add(this.caseEditDataService.caseEditForm$.subscribe({
94
- next: editForm => this.caseEditForm = editForm
96
+ next: (editForm) => this.caseEditForm = editForm
95
97
  }));
96
98
  }
97
99
  initialiseCaseDetails(caseDetails) {
@@ -167,13 +169,28 @@ export class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent
167
169
  }
168
170
  }
169
171
  submitLinkedCases() {
172
+ let caseFieldValue = [...(this.linkedCasesService.caseFieldValue || [])];
170
173
  if (!this.linkedCasesService.isLinkedCasesEventTrigger) {
171
- const unlinkedCaseRefereneIds = this.linkedCasesService.linkedCases.filter(item => item.unlink).map(item => item.caseReference);
172
- const caseFieldValue = this.linkedCasesService.caseFieldValue;
173
- this.linkedCasesService.caseFieldValue = caseFieldValue.filter(item => unlinkedCaseRefereneIds.indexOf(item.id) === -1);
174
+ const unlinkedCaseReferenceIds = this.linkedCasesService.linkedCases
175
+ .filter((item) => item.unlink)
176
+ .map((item) => item.caseReference);
177
+ caseFieldValue = caseFieldValue.filter((item) => !unlinkedCaseReferenceIds.includes(item.id));
178
+ }
179
+ // Replace the caseLinks value in this.formGroup
180
+ this.formGroup.patchValue({
181
+ caseLinks: caseFieldValue
182
+ });
183
+ // Replace the caseLinks control in caseEditForm.controls.data
184
+ const dataFormGroup = this.caseEditForm.controls.data;
185
+ if (dataFormGroup) {
186
+ // Remove the existing caseLinks control (if it exists)
187
+ if (dataFormGroup.contains('caseLinks')) {
188
+ dataFormGroup.removeControl('caseLinks');
189
+ }
190
+ // Add the new control with the replacement value
191
+ dataFormGroup.addControl('caseLinks', new FormControl(caseFieldValue || []));
174
192
  }
175
- this.formGroup.value.caseLinks = this.linkedCasesService.caseFieldValue;
176
- this.caseEditForm.controls['data'] = new FormGroup({ caseLinks: new FormControl(this.linkedCasesService.caseFieldValue || []) });
193
+ // Set the updated form in the caseEditDataService
177
194
  this.caseEditDataService.setCaseEditForm(this.caseEditForm);
178
195
  }
179
196
  isAtFinalPage() {
@@ -190,11 +207,11 @@ export class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent
190
207
  }
191
208
  getLinkedCases() {
192
209
  this.casesService.getCaseViewV2(this.linkedCasesService.caseId).subscribe((caseView) => {
193
- const caseViewFiltered = caseView.tabs.filter(tab => {
210
+ const caseViewFiltered = caseView.tabs.filter((tab) => {
194
211
  return tab.fields.some(({ field_type }) => field_type && field_type.collection_field_type && field_type.collection_field_type.id === 'CaseLink');
195
212
  });
196
213
  if (caseViewFiltered) {
197
- const caseLinkFieldValue = caseViewFiltered.map(filtered => filtered.fields?.length > 0 && filtered.fields.filter(field => field.id === 'caseLinks')[0].value);
214
+ const caseLinkFieldValue = caseViewFiltered.map((filtered) => filtered.fields?.length > 0 && filtered.fields.filter((field) => field.id === 'caseLinks')[0].value);
198
215
  this.linkedCasesService.caseFieldValue = caseLinkFieldValue.length ? caseLinkFieldValue[0] : [];
199
216
  this.linkedCasesService.getAllLinkedCaseInformation();
200
217
  }
@@ -234,5 +251,5 @@ export class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent
234
251
  type: Component,
235
252
  args: [{ selector: 'ccd-write-linked-cases-field', template: "<div class=\"form-group govuk-!-margin-bottom-2\" [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngSwitch]=\"linkedCasesPage\">\n <ng-container *ngSwitchCase=\"linkedCasesPages.BEFORE_YOU_START\">\n <ccd-linked-cases-before-you-start\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-linked-cases-before-you-start>\n </ng-container>\n <ng-container *ngSwitchCase=\"linkedCasesPages.NO_LINKED_CASES\">\n <ccd-no-linked-cases\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-no-linked-cases>\n </ng-container>\n <ng-container *ngSwitchCase=\"linkedCasesPages.LINK_CASE\">\n <ccd-link-cases\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-link-cases>\n </ng-container>\n <ng-container *ngSwitchCase=\"linkedCasesPages.UNLINK_CASE\">\n <ccd-unlink-cases\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-unlink-cases>\n </ng-container>\n <ng-container *ngSwitchCase=\"linkedCasesPages.CHECK_YOUR_ANSWERS\">\n <ccd-linked-cases-check-your-answers\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-linked-cases-check-your-answers>\n </ng-container>\n </div>\n</div>\n" }]
236
253
  }], () => [{ type: i1.AbstractAppConfig }, { type: i2.CommonDataService }, { type: i3.CasesService }, { type: i4.LinkedCasesService }, { type: i5.CaseEditDataService }], null); })();
237
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteLinkedCasesFieldComponent, { className: "WriteLinkedCasesFieldComponent", filePath: "lib/shared/components/palette/linked-cases/write-linked-cases-field.component.ts", lineNumber: 19 }); })();
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtbGlua2VkLWNhc2VzLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy93cml0ZS1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL3dyaXRlLWxpbmtlZC1jYXNlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBNEIsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztJQ1ZoQyw2QkFBZ0U7SUFDOUQsNERBQ2dFO0lBQTlELHdRQUEyQix3Q0FB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Q2hHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBQ3hELENBQUM7WUFDRCx1Q0FBdUM7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCO2dCQUN0RSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQzt1QkFDdkYsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0I7Z0JBQ25DLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzt3RkF0S1UsOEJBQThCOzZEQUE5Qiw4QkFBOEI7WUNqQnpDLEFBREYsOEJBQXdFLGFBQ1g7WUFpQnpELEFBSkEsQUFKQSxBQUpBLEFBSkEsaUdBQWdFLG9GQUlELG9GQUlOLG9GQUlFLG9GQUlPO1lBS3RFLEFBREUsaUJBQU0sRUFDRjs7WUF2QjBDLHlDQUF1QjtZQUN2QyxjQUE0QjtZQUE1Qiw4Q0FBNEI7WUFDekMsY0FBK0M7WUFBL0Msb0VBQStDO1lBSS9DLGNBQThDO1lBQTlDLG1FQUE4QztZQUk5QyxjQUF3QztZQUF4Qyw2REFBd0M7WUFJeEMsY0FBMEM7WUFBMUMsK0RBQTBDO1lBSTFDLGNBQWlEO1lBQWpELHNFQUFpRDs7O2lGREF2RCw4QkFBOEI7Y0FKMUMsU0FBUzsyQkFDRSw4QkFBOEI7O2tGQUc3Qiw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IENhc2VFZGl0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2Nhc2UtZWRpdC1kYXRhJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9jYXNlLXZpZXcnO1xuaW1wb3J0IHsgQ29tbW9uRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24tZGF0YS1zZXJ2aWNlL2NvbW1vbi1kYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkJztcbmltcG9ydCB7IENhc2VMaW5rLCBMaW5rZWRDYXNlc1N0YXRlIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLCBMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlcnMsIExpbmtlZENhc2VzUGFnZXMgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1saW5rZWQtY2FzZXMtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3JpdGUtbGlua2VkLWNhc2VzLWZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXcml0ZUxpbmtlZENhc2VzRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBjYXNlRWRpdEZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIGxpbmtlZENhc2VzUGFnZTogbnVtYmVyO1xuICBwdWJsaWMgbGlua2VkQ2FzZXNQYWdlcyA9IExpbmtlZENhc2VzUGFnZXM7XG4gIHB1YmxpYyBsaW5rZWRDYXNlc0V2ZW50VHJpZ2dlcnMgPSBMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlcnM7XG4gIHB1YmxpYyBsaW5rZWRDYXNlczogQ2FzZUxpbmtbXSA9IFtdO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbW9uRGF0YVNlcnZpY2U6IENvbW1vbkRhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VFZGl0RGF0YVNlcnZpY2U6IENhc2VFZGl0RGF0YVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFRoaXMgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIENvbnRpbnVlIGJ1dHRvbiB2YWxpZGF0aW9uXG4gICAgLy8gQ29udGludWUgYnV0dG9uIHNob3VsZCBiZSBlbmFibGVkIG9ubHkgYXQgY2hlY2sgeW91ciBhbnN3ZXJzIHBhZ2VcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0TGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXAoZmFsc2UpO1xuICAgIC8vIENsZWFyIHZhbGlkYXRpb24gZXJyb3JzXG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNsZWFyRm9ybVZhbGlkYXRpb25FcnJvcnMoKTtcbiAgICAvLyBHZXQgbGlua2VkIGNhc2UgcmVhc29ucyBmcm9tIHJlZiBkYXRhXG4gICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZWRpdE1vZGUgPSBmYWxzZTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5jYXNlRGV0YWlscyQuc3Vic2NyaWJlKFxuICAgICAge1xuICAgICAgICBuZXh0OiBjYXNlRGV0YWlscyA9PiB7IHRoaXMuaW5pdGlhbGlzZUNhc2VEZXRhaWxzKGNhc2VEZXRhaWxzKTsgfVxuICAgICAgfSkpO1xuICAgIHRoaXMuZ2V0T3JnU2VydmljZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNhc2VFdmVudFRyaWdnZXJOYW1lJC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogbmFtZSA9PiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyID0gKG5hbWUgPT09IExpbmtlZENhc2VzRXZlbnRUcmlnZ2Vycy5MSU5LX0NBU0VTKVxuICAgIH0pKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5jYXNlRWRpdEZvcm0kLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBlZGl0Rm9ybSA9PiB0aGlzLmNhc2VFZGl0Rm9ybSA9IGVkaXRGb3JtXG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpc2VDYXNlRGV0YWlscyhjYXNlRGV0YWlsczogQ2FzZVZpZXcpOiB2b2lkIHtcbiAgICBpZiAoY2FzZURldGFpbHMpIHtcbiAgICAgIHRoaXMuY2FzZURldGFpbHMgPSBjYXNlRGV0YWlscztcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VEZXRhaWxzID0gY2FzZURldGFpbHM7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQgPSBjYXNlRGV0YWlscy5jYXNlX2lkO1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZU5hbWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShjYXNlRGV0YWlscyk7XG4gICAgICB0aGlzLmdldExpbmtlZENhc2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgbGFiZWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dvdnVrLWhlYWRpbmctbCcpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gICAgbGFiZWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2hlYWRpbmctaDInKTtcbiAgICBpZiAobGFiZWxGaWVsZCAmJiBsYWJlbEZpZWxkLmxlbmd0aCkge1xuICAgICAgbGFiZWxGaWVsZFswXS5yZXBsYWNlV2l0aCgnJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZWQobGlua2VkQ2FzZXNTdGF0ZTogTGlua2VkQ2FzZXNTdGF0ZSk6IHZvaWQge1xuICAgIC8vIENsZWFyIHZhbGlkYXRpb24gZXJyb3JzXG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNsZWFyRm9ybVZhbGlkYXRpb25FcnJvcnMoKTtcblxuICAgIGlmIChsaW5rZWRDYXNlc1N0YXRlLm5hdmlnYXRlVG9OZXh0UGFnZSkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1BhZ2UgPSB0aGlzLmdldE5leHRQYWdlKGxpbmtlZENhc2VzU3RhdGUpO1xuICAgICAgdGhpcy5wcm9jZWVkVG9OZXh0UGFnZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobGlua2VkQ2FzZXNTdGF0ZS5lcnJvck1lc3NhZ2VzICYmIGxpbmtlZENhc2VzU3RhdGUuZXJyb3JNZXNzYWdlcy5sZW5ndGgpIHtcbiAgICAgICAgbGlua2VkQ2FzZXNTdGF0ZS5lcnJvck1lc3NhZ2VzLmZvckVhY2goKGVycm9yTWVzc2FnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuYWRkRm9ybVZhbGlkYXRpb25FcnJvcih7IGlkOiBlcnJvck1lc3NhZ2UuZmllbGRJZCwgbWVzc2FnZTogZXJyb3JNZXNzYWdlLmRlc2NyaXB0aW9uIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZVJlYXNvbnMoc2VydmljZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZWFzb25Db2RlQVBJdXJsID0gYCR7dGhpcy5hcHBDb25maWcuZ2V0UkRDb21tb25EYXRhQXBpVXJsKCl9L2xvdi9jYXRlZ29yaWVzL0Nhc2VMaW5raW5nUmVhc29uQ29kZT9zZXJ2aWNlSWQ9JHtzZXJ2aWNlSWR9YDtcbiAgICB0aGlzLmNvbW1vbkRhdGFTZXJ2aWNlLmdldFJlZkRhdGEocmVhc29uQ29kZUFQSXVybCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZWFzb25zKSA9PiB7XG4gICAgICAgIC8vIFNvcnQgaW4gYXNjZW5kaW5nIG9yZGVyXG4gICAgICAgIGNvbnN0IGxpbmtDYXNlUmVhc29ucyA9IHJlYXNvbnMubGlzdF9vZl92YWx1ZXMuc29ydCgoYSwgYikgPT4gKGEudmFsdWVfZW4gPiBiLnZhbHVlX2VuKSA/IDEgOiAtMSk7XG4gICAgICAgIGlmIChsaW5rQ2FzZVJlYXNvbnM/LmZpbHRlcigocmVhc29uKSA9PiByZWFzb24udmFsdWVfZW4gIT09ICdPdGhlcicpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rQ2FzZVJlYXNvbnMgPSBsaW5rQ2FzZVJlYXNvbnM/LmZpbHRlcigocmVhc29uKSA9PiByZWFzb24udmFsdWVfZW4gIT09ICdPdGhlcicpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1vdmUgT3RoZXIgb3B0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3RcbiAgICAgICAgaWYgKGxpbmtDYXNlUmVhc29ucz8uZmluZCgocmVhc29uKSA9PiByZWFzb24udmFsdWVfZW4gPT09ICdPdGhlcicpKSB7XG4gICAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua0Nhc2VSZWFzb25zLnB1c2gobGlua0Nhc2VSZWFzb25zPy5maW5kKChyZWFzb24pID0+IHJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRPcmdTZXJ2aWNlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlcnZpY2VzQXBpVXJsID0gYHJlZmRhdGEvbG9jYXRpb24vb3JnU2VydmljZXM/Y2NkQ2FzZVR5cGU9JHt0aGlzLmNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/LmlkfWA7XG4gICAgdGhpcy5jb21tb25EYXRhU2VydmljZS5nZXRTZXJ2aWNlT3JnRGF0YShzZXJ2aWNlc0FwaVVybCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIHJlc3VsdC5mb3JFYWNoKChpZHMpID0+IHtcbiAgICAgICAgdGhpcy5nZXRMaW5rZWRDYXNlUmVhc29ucyhpZHMuc2VydmljZV9jb2RlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHByb2NlZWRUb05leHRQYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQXRGaW5hbFBhZ2UoKSkge1xuICAgICAgLy8gQ29udGludWUgYnV0dG9uIGV2ZW50IG11c3QgYmUgYWxsb3dlZCBpbiBmaW5hbCBwYWdlXG4gICAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0TGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXAodHJ1ZSk7XG4gICAgICAvLyBUcmlnZ2VyIHZhbGlkYXRpb24gdG8gY2xlYXIgdGhlIFwibm90QXRGaW5hbFBhZ2VcIiBlcnJvciBpZiBub3cgYXQgdGhlIGZpbmFsIHN0YXRlXG4gICAgICB0aGlzLmZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAvLyB1cGRhdGUgZm9ybSB2YWx1ZVxuICAgICAgdGhpcy5zdWJtaXRMaW5rZWRDYXNlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250aW51ZSBidXR0b24gZXZlbnQgbXVzdCBub3QgYmUgYWxsb3dlZCBpZiBub3QgaW4gZmluYWwgcGFnZVxuICAgICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLnNldExpbmtlZENhc2VzSm91cm5leUF0RmluYWxTdGVwKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3VibWl0TGlua2VkQ2FzZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyKSB7XG4gICAgICBjb25zdCB1bmxpbmtlZENhc2VSZWZlcmVuZUlkcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzLmZpbHRlcihpdGVtID0+IGl0ZW0udW5saW5rKS5tYXAoaXRlbSA9PiBpdGVtLmNhc2VSZWZlcmVuY2UpO1xuICAgICAgY29uc3QgY2FzZUZpZWxkVmFsdWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZTtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gY2FzZUZpZWxkVmFsdWUuZmlsdGVyKGl0ZW0gPT4gdW5saW5rZWRDYXNlUmVmZXJlbmVJZHMuaW5kZXhPZihpdGVtLmlkKSA9PT0gLTEpO1xuICAgIH1cbiAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZS5jYXNlTGlua3MgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZTtcbiAgICAodGhpcy5jYXNlRWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXSBhcyBhbnkpID0gbmV3IEZvcm1Hcm91cCh7IGNhc2VMaW5rczogbmV3IEZvcm1Db250cm9sKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlIHx8IFtdKSB9KTtcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0Q2FzZUVkaXRGb3JtKHRoaXMuY2FzZUVkaXRGb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0F0RmluYWxQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpbmtlZENhc2VzUGFnZSA9PT0gdGhpcy5saW5rZWRDYXNlc1BhZ2VzLkNIRUNLX1lPVVJfQU5TV0VSUztcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0UGFnZShsaW5rZWRDYXNlc1N0YXRlOiBMaW5rZWRDYXNlc1N0YXRlKTogbnVtYmVyIHtcbiAgICBpZiAoKHRoaXMubGlua2VkQ2FzZXNQYWdlID09PSBMaW5rZWRDYXNlc1BhZ2VzLkJFRk9SRV9ZT1VfU1RBUlQpIHx8XG4gICAgICAobGlua2VkQ2FzZXNTdGF0ZS5jdXJyZW50TGlua2VkQ2FzZXNQYWdlID09PSBMaW5rZWRDYXNlc1BhZ2VzLkNIRUNLX1lPVVJfQU5TV0VSUyAmJiBsaW5rZWRDYXNlc1N0YXRlLm5hdmlnYXRlVG9QcmV2aW91c1BhZ2UpKSB7XG4gICAgICByZXR1cm4gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlclxuICAgICAgICA/IExpbmtlZENhc2VzUGFnZXMuTElOS19DQVNFXG4gICAgICAgIDogTGlua2VkQ2FzZXNQYWdlcy5VTkxJTktfQ0FTRTtcbiAgICB9XG4gICAgcmV0dXJuIExpbmtlZENhc2VzUGFnZXMuQ0hFQ0tfWU9VUl9BTlNXRVJTO1xuICB9XG5cbiAgcHVibGljIGdldExpbmtlZENhc2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkKS5zdWJzY3JpYmUoKGNhc2VWaWV3OiBDYXNlVmlldykgPT4ge1xuICAgICAgY29uc3QgY2FzZVZpZXdGaWx0ZXJlZCA9IGNhc2VWaWV3LnRhYnMuZmlsdGVyKHRhYiA9PiB7XG4gICAgICAgIHJldHVybiB0YWIuZmllbGRzLnNvbWUoXG4gICAgICAgICAgKHsgZmllbGRfdHlwZSB9KSA9PiBmaWVsZF90eXBlICYmIGZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlICYmIGZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmlkID09PSAnQ2FzZUxpbmsnXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIGlmIChjYXNlVmlld0ZpbHRlcmVkKSB7XG4gICAgICAgIGNvbnN0IGNhc2VMaW5rRmllbGRWYWx1ZSA9IGNhc2VWaWV3RmlsdGVyZWQubWFwKGZpbHRlcmVkID0+XG4gICAgICAgICAgZmlsdGVyZWQuZmllbGRzPy5sZW5ndGggPiAwICYmIGZpbHRlcmVkLmZpZWxkcy5maWx0ZXIoZmllbGQgPT4gZmllbGQuaWQgPT09ICdjYXNlTGlua3MnKVswXS52YWx1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSA9IGNhc2VMaW5rRmllbGRWYWx1ZS5sZW5ndGggPyBjYXNlTGlua0ZpZWxkVmFsdWVbMF0gOiBbXTtcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgICB9XG4gICAgICAvLyBJbml0aWFsaXNlIHRoZSBmaXJzdCBwYWdlIHRvIGRpc3BsYXlcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNQYWdlID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlciB8fFxuICAgICAgICAodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgJiYgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUubGVuZ3RoID4gMFxuICAgICAgICAgICYmICF0aGlzLmxpbmtlZENhc2VzU2VydmljZS5zZXJ2ZXJMaW5rZWRBcGlFcnJvcilcbiAgICAgICAgPyBMaW5rZWRDYXNlc1BhZ2VzLkJFRk9SRV9ZT1VfU1RBUlRcbiAgICAgICAgOiBMaW5rZWRDYXNlc1BhZ2VzLk5PX0xJTktFRF9DQVNFUztcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMlwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nU3dpdGNoXT1cImxpbmtlZENhc2VzUGFnZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImxpbmtlZENhc2VzUGFnZXMuQkVGT1JFX1lPVV9TVEFSVFwiPlxuICAgICAgPGNjZC1saW5rZWQtY2FzZXMtYmVmb3JlLXlvdS1zdGFydFxuICAgICAgICAobGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXIpPVwib25MaW5rZWRDYXNlc1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtbGlua2VkLWNhc2VzLWJlZm9yZS15b3Utc3RhcnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibGlua2VkQ2FzZXNQYWdlcy5OT19MSU5LRURfQ0FTRVNcIj5cbiAgICAgIDxjY2Qtbm8tbGlua2VkLWNhc2VzXG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1uby1saW5rZWQtY2FzZXM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibGlua2VkQ2FzZXNQYWdlcy5MSU5LX0NBU0VcIj5cbiAgICAgIDxjY2QtbGluay1jYXNlc1xuICAgICAgICAobGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXIpPVwib25MaW5rZWRDYXNlc1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtbGluay1jYXNlcz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJsaW5rZWRDYXNlc1BhZ2VzLlVOTElOS19DQVNFXCI+XG4gICAgICA8Y2NkLXVubGluay1jYXNlc1xuICAgICAgICAobGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXIpPVwib25MaW5rZWRDYXNlc1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtdW5saW5rLWNhc2VzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImxpbmtlZENhc2VzUGFnZXMuQ0hFQ0tfWU9VUl9BTlNXRVJTXCI+XG4gICAgICA8Y2NkLWxpbmtlZC1jYXNlcy1jaGVjay15b3VyLWFuc3dlcnNcbiAgICAgICAgKGxpbmtlZENhc2VzU3RhdGVFbWl0dGVyKT1cIm9uTGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiPjwvY2NkLWxpbmtlZC1jYXNlcy1jaGVjay15b3VyLWFuc3dlcnM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
254
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteLinkedCasesFieldComponent, { className: "WriteLinkedCasesFieldComponent", filePath: "lib/shared/components/palette/linked-cases/write-linked-cases-field.component.ts", lineNumber: 18 }); })();
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtbGlua2VkLWNhc2VzLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy93cml0ZS1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL3dyaXRlLWxpbmtlZC1jYXNlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7SUNUaEMsNkJBQWdFO0lBQzlELDREQUNnRTtJQUE5RCx3UUFBMkIsd0NBQWlDLEtBQUM7SUFB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QXdDO1lBSXhDLGNBQTBDO1lBQTFDLCtEQUEwQztZQUkxQyxjQUFpRDtZQUFqRCxzRUFBaUQ7OztpRkREdkQsOEJBQThCO2NBSjFDLFNBQVM7MkJBQ0UsOEJBQThCOztrRkFHN0IsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBDYXNlRWRpdERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9jYXNlLWVkaXQtZGF0YSc7XG5pbXBvcnQgeyBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9jYXNlLXZpZXcnO1xuaW1wb3J0IHsgQ29tbW9uRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24tZGF0YS1zZXJ2aWNlL2NvbW1vbi1kYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkJztcbmltcG9ydCB7IENhc2VMaW5rLCBMaW5rZWRDYXNlc1N0YXRlIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNFdmVudFRyaWdnZXJzLCBMaW5rZWRDYXNlc1BhZ2VzIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtd3JpdGUtbGlua2VkLWNhc2VzLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWxpbmtlZC1jYXNlcy1maWVsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVMaW5rZWRDYXNlc0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgY2FzZUVkaXRGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBjYXNlRGV0YWlsczogQ2FzZVZpZXc7XG4gIHB1YmxpYyBsaW5rZWRDYXNlc1BhZ2U6IG51bWJlcjtcbiAgcHVibGljIGxpbmtlZENhc2VzUGFnZXMgPSBMaW5rZWRDYXNlc1BhZ2VzO1xuICBwdWJsaWMgbGlua2VkQ2FzZXNFdmVudFRyaWdnZXJzID0gTGlua2VkQ2FzZXNFdmVudFRyaWdnZXJzO1xuICBwdWJsaWMgbGlua2VkQ2FzZXM6IENhc2VMaW5rW10gPSBbXTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbkRhdGFTZXJ2aWNlOiBDb21tb25EYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlRWRpdERhdGFTZXJ2aWNlOiBDYXNlRWRpdERhdGFTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBDb250aW51ZSBidXR0b24gdmFsaWRhdGlvblxuICAgIC8vIENvbnRpbnVlIGJ1dHRvbiBzaG91bGQgYmUgZW5hYmxlZCBvbmx5IGF0IGNoZWNrIHlvdXIgYW5zd2VycyBwYWdlXG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLnNldExpbmtlZENhc2VzSm91cm5leUF0RmluYWxTdGVwKGZhbHNlKTtcbiAgICAvLyBDbGVhciB2YWxpZGF0aW9uIGVycm9yc1xuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5jbGVhckZvcm1WYWxpZGF0aW9uRXJyb3JzKCk7XG4gICAgLy8gR2V0IGxpbmtlZCBjYXNlIHJlYXNvbnMgZnJvbSByZWYgZGF0YVxuICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmVkaXRNb2RlID0gZmFsc2U7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2FzZURldGFpbHMkLnN1YnNjcmliZShcbiAgICAgIHtcbiAgICAgICAgbmV4dDogKGNhc2VEZXRhaWxzKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXNlQ2FzZURldGFpbHMoY2FzZURldGFpbHMpO1xuICAgICAgICB9XG4gICAgICB9KSk7XG4gICAgdGhpcy5nZXRPcmdTZXJ2aWNlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2FzZUV2ZW50VHJpZ2dlck5hbWUkLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAobmFtZSkgPT4gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlciA9IChuYW1lID09PSBMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlcnMuTElOS19DQVNFUylcbiAgICB9KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2FzZUVkaXRGb3JtJC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGVkaXRGb3JtKSA9PiB0aGlzLmNhc2VFZGl0Rm9ybSA9IGVkaXRGb3JtXG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpc2VDYXNlRGV0YWlscyhjYXNlRGV0YWlsczogQ2FzZVZpZXcpOiB2b2lkIHtcbiAgICBpZiAoY2FzZURldGFpbHMpIHtcbiAgICAgIHRoaXMuY2FzZURldGFpbHMgPSBjYXNlRGV0YWlscztcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VEZXRhaWxzID0gY2FzZURldGFpbHM7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQgPSBjYXNlRGV0YWlscy5jYXNlX2lkO1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZU5hbWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShjYXNlRGV0YWlscyk7XG4gICAgICB0aGlzLmdldExpbmtlZENhc2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgbGFiZWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dvdnVrLWhlYWRpbmctbCcpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gICAgbGFiZWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2hlYWRpbmctaDInKTtcbiAgICBpZiAobGFiZWxGaWVsZCAmJiBsYWJlbEZpZWxkLmxlbmd0aCkge1xuICAgICAgbGFiZWxGaWVsZFswXS5yZXBsYWNlV2l0aCgnJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZWQobGlua2VkQ2FzZXNTdGF0ZTogTGlua2VkQ2FzZXNTdGF0ZSk6IHZvaWQge1xuICAgIC8vIENsZWFyIHZhbGlkYXRpb24gZXJyb3JzXG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNsZWFyRm9ybVZhbGlkYXRpb25FcnJvcnMoKTtcblxuICAgIGlmIChsaW5rZWRDYXNlc1N0YXRlLm5hdmlnYXRlVG9OZXh0UGFnZSkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1BhZ2UgPSB0aGlzLmdldE5leHRQYWdlKGxpbmtlZENhc2VzU3RhdGUpO1xuICAgICAgdGhpcy5wcm9jZWVkVG9OZXh0UGFnZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobGlua2VkQ2FzZXNTdGF0ZS5lcnJvck1lc3NhZ2VzICYmIGxpbmtlZENhc2VzU3RhdGUuZXJyb3JNZXNzYWdlcy5sZW5ndGgpIHtcbiAgICAgICAgbGlua2VkQ2FzZXNTdGF0ZS5lcnJvck1lc3NhZ2VzLmZvckVhY2goKGVycm9yTWVzc2FnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuYWRkRm9ybVZhbGlkYXRpb25FcnJvcih7IGlkOiBlcnJvck1lc3NhZ2UuZmllbGRJZCwgbWVzc2FnZTogZXJyb3JNZXNzYWdlLmRlc2NyaXB0aW9uIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZVJlYXNvbnMoc2VydmljZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZWFzb25Db2RlQVBJdXJsID0gYCR7dGhpcy5hcHBDb25maWcuZ2V0UkRDb21tb25EYXRhQXBpVXJsKCl9L2xvdi9jYXRlZ29yaWVzL0Nhc2VMaW5raW5nUmVhc29uQ29kZT9zZXJ2aWNlSWQ9JHtzZXJ2aWNlSWR9YDtcbiAgICB0aGlzLmNvbW1vbkRhdGFTZXJ2aWNlLmdldFJlZkRhdGEocmVhc29uQ29kZUFQSXVybCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZWFzb25zKSA9PiB7XG4gICAgICAgIC8vIFNvcnQgaW4gYXNjZW5kaW5nIG9yZGVyXG4gICAgICAgIGNvbnN0IGxpbmtDYXNlUmVhc29ucyA9IHJlYXNvbnMubGlzdF9vZl92YWx1ZXMuc29ydCgoYSwgYikgPT4gKGEudmFsdWVfZW4gPiBiLnZhbHVlX2VuKSA/IDEgOiAtMSk7XG4gICAgICAgIGlmIChsaW5rQ2FzZVJlYXNvbnM/LmZpbHRlcigocmVhc29uKSA9PiByZWFzb24udmFsdWVfZW4gIT09ICdPdGhlcicpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rQ2FzZVJlYXNvbnMgPSBsaW5rQ2FzZVJlYXNvbnM/LmZpbHRlcigocmVhc29uKSA9PiByZWFzb24udmFsdWVfZW4gIT09ICdPdGhlcicpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1vdmUgT3RoZXIgb3B0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3RcbiAgICAgICAgaWYgKGxpbmtDYXNlUmVhc29ucz8uZmluZCgocmVhc29uKSA9PiByZWFzb24udmFsdWVfZW4gPT09ICdPdGhlcicpKSB7XG4gICAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua0Nhc2VSZWFzb25zLnB1c2gobGlua0Nhc2VSZWFzb25zPy5maW5kKChyZWFzb24pID0+IHJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRPcmdTZXJ2aWNlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlcnZpY2VzQXBpVXJsID0gYHJlZmRhdGEvbG9jYXRpb24vb3JnU2VydmljZXM/Y2NkQ2FzZVR5cGU9JHt0aGlzLmNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/LmlkfWA7XG4gICAgdGhpcy5jb21tb25EYXRhU2VydmljZS5nZXRTZXJ2aWNlT3JnRGF0YShzZXJ2aWNlc0FwaVVybCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIHJlc3VsdC5mb3JFYWNoKChpZHMpID0+IHtcbiAgICAgICAgdGhpcy5nZXRMaW5rZWRDYXNlUmVhc29ucyhpZHMuc2VydmljZV9jb2RlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHByb2NlZWRUb05leHRQYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQXRGaW5hbFBhZ2UoKSkge1xuICAgICAgLy8gQ29udGludWUgYnV0dG9uIGV2ZW50IG11c3QgYmUgYWxsb3dlZCBpbiBmaW5hbCBwYWdlXG4gICAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0TGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXAodHJ1ZSk7XG4gICAgICAvLyBUcmlnZ2VyIHZhbGlkYXRpb24gdG8gY2xlYXIgdGhlIFwibm90QXRGaW5hbFBhZ2VcIiBlcnJvciBpZiBub3cgYXQgdGhlIGZpbmFsIHN0YXRlXG4gICAgICB0aGlzLmZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAvLyB1cGRhdGUgZm9ybSB2YWx1ZVxuICAgICAgdGhpcy5zdWJtaXRMaW5rZWRDYXNlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250aW51ZSBidXR0b24gZXZlbnQgbXVzdCBub3QgYmUgYWxsb3dlZCBpZiBub3QgaW4gZmluYWwgcGFnZVxuICAgICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLnNldExpbmtlZENhc2VzSm91cm5leUF0RmluYWxTdGVwKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3VibWl0TGlua2VkQ2FzZXMoKTogdm9pZCB7XG4gICAgbGV0IGNhc2VGaWVsZFZhbHVlID0gWy4uLih0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSB8fCBbXSldO1xuXG4gICAgaWYgKCF0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyKSB7XG4gICAgICBjb25zdCB1bmxpbmtlZENhc2VSZWZlcmVuY2VJZHMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlc1xuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnVubGluaylcbiAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5jYXNlUmVmZXJlbmNlKTtcblxuICAgICAgY2FzZUZpZWxkVmFsdWUgPSBjYXNlRmllbGRWYWx1ZS5maWx0ZXIoXG4gICAgICAgIChpdGVtKSA9PiAhdW5saW5rZWRDYXNlUmVmZXJlbmNlSWRzLmluY2x1ZGVzKGl0ZW0uaWQpXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBSZXBsYWNlIHRoZSBjYXNlTGlua3MgdmFsdWUgaW4gdGhpcy5mb3JtR3JvdXBcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgIGNhc2VMaW5rczogY2FzZUZpZWxkVmFsdWVcbiAgICB9KTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIGNhc2VMaW5rcyBjb250cm9sIGluIGNhc2VFZGl0Rm9ybS5jb250cm9scy5kYXRhXG4gICAgY29uc3QgZGF0YUZvcm1Hcm91cCA9IHRoaXMuY2FzZUVkaXRGb3JtLmNvbnRyb2xzLmRhdGEgYXMgRm9ybUdyb3VwO1xuICAgIGlmIChkYXRhRm9ybUdyb3VwKSB7XG4gICAgICAvLyBSZW1vdmUgdGhlIGV4aXN0aW5nIGNhc2VMaW5rcyBjb250cm9sIChpZiBpdCBleGlzdHMpXG4gICAgICBpZiAoZGF0YUZvcm1Hcm91cC5jb250YWlucygnY2FzZUxpbmtzJykpIHtcbiAgICAgICAgZGF0YUZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdjYXNlTGlua3MnKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHRoZSBuZXcgY29udHJvbCB3aXRoIHRoZSByZXBsYWNlbWVudCB2YWx1ZVxuICAgICAgZGF0YUZvcm1Hcm91cC5hZGRDb250cm9sKCdjYXNlTGlua3MnLCBuZXcgRm9ybUNvbnRyb2woY2FzZUZpZWxkVmFsdWUgfHwgW10pKTtcbiAgICB9XG5cbiAgICAvLyBTZXQgdGhlIHVwZGF0ZWQgZm9ybSBpbiB0aGUgY2FzZUVkaXREYXRhU2VydmljZVxuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRDYXNlRWRpdEZvcm0odGhpcy5jYXNlRWRpdEZvcm0pO1xuICB9XG5cbiAgcHVibGljIGlzQXRGaW5hbFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGlua2VkQ2FzZXNQYWdlID09PSB0aGlzLmxpbmtlZENhc2VzUGFnZXMuQ0hFQ0tfWU9VUl9BTlNXRVJTO1xuICB9XG5cbiAgcHVibGljIGdldE5leHRQYWdlKGxpbmtlZENhc2VzU3RhdGU6IExpbmtlZENhc2VzU3RhdGUpOiBudW1iZXIge1xuICAgIGlmICgodGhpcy5saW5rZWRDYXNlc1BhZ2UgPT09IExpbmtlZENhc2VzUGFnZXMuQkVGT1JFX1lPVV9TVEFSVCkgfHxcbiAgICAgIChsaW5rZWRDYXNlc1N0YXRlLmN1cnJlbnRMaW5rZWRDYXNlc1BhZ2UgPT09IExpbmtlZENhc2VzUGFnZXMuQ0hFQ0tfWU9VUl9BTlNXRVJTICYmIGxpbmtlZENhc2VzU3RhdGUubmF2aWdhdGVUb1ByZXZpb3VzUGFnZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyXG4gICAgICAgID8gTGlua2VkQ2FzZXNQYWdlcy5MSU5LX0NBU0VcbiAgICAgICAgOiBMaW5rZWRDYXNlc1BhZ2VzLlVOTElOS19DQVNFO1xuICAgIH1cbiAgICByZXR1cm4gTGlua2VkQ2FzZXNQYWdlcy5DSEVDS19ZT1VSX0FOU1dFUlM7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlc1NlcnZpY2UuZ2V0Q2FzZVZpZXdWMih0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQpLnN1YnNjcmliZSgoY2FzZVZpZXc6IENhc2VWaWV3KSA9PiB7XG4gICAgICBjb25zdCBjYXNlVmlld0ZpbHRlcmVkID0gY2FzZVZpZXcudGFicy5maWx0ZXIoKHRhYikgPT4ge1xuICAgICAgICByZXR1cm4gdGFiLmZpZWxkcy5zb21lKFxuICAgICAgICAgICh7IGZpZWxkX3R5cGUgfSkgPT4gZmllbGRfdHlwZSAmJiBmaWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZSAmJiBmaWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5pZCA9PT0gJ0Nhc2VMaW5rJ1xuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICBpZiAoY2FzZVZpZXdGaWx0ZXJlZCkge1xuICAgICAgICBjb25zdCBjYXNlTGlua0ZpZWxkVmFsdWUgPSBjYXNlVmlld0ZpbHRlcmVkLm1hcCgoZmlsdGVyZWQpID0+XG4gICAgICAgICAgZmlsdGVyZWQuZmllbGRzPy5sZW5ndGggPiAwICYmIGZpbHRlcmVkLmZpZWxkcy5maWx0ZXIoKGZpZWxkKSA9PiBmaWVsZC5pZCA9PT0gJ2Nhc2VMaW5rcycpWzBdLnZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gY2FzZUxpbmtGaWVsZFZhbHVlLmxlbmd0aCA/IGNhc2VMaW5rRmllbGRWYWx1ZVswXSA6IFtdO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRBbGxMaW5rZWRDYXNlSW5mb3JtYXRpb24oKTtcbiAgICAgIH1cbiAgICAgIC8vIEluaXRpYWxpc2UgdGhlIGZpcnN0IHBhZ2UgdG8gZGlzcGxheVxuICAgICAgdGhpcy5saW5rZWRDYXNlc1BhZ2UgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyIHx8XG4gICAgICAgICh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSAmJiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5sZW5ndGggPiAwXG4gICAgICAgICAgJiYgIXRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnNlcnZlckxpbmtlZEFwaUVycm9yKVxuICAgICAgICA/IExpbmtlZENhc2VzUGFnZXMuQkVGT1JFX1lPVV9TVEFSVFxuICAgICAgICA6IExpbmtlZENhc2VzUGFnZXMuTk9fTElOS0VEX0NBU0VTO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0yXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdTd2l0Y2hdPVwibGlua2VkQ2FzZXNQYWdlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibGlua2VkQ2FzZXNQYWdlcy5CRUZPUkVfWU9VX1NUQVJUXCI+XG4gICAgICA8Y2NkLWxpbmtlZC1jYXNlcy1iZWZvcmUteW91LXN0YXJ0XG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1saW5rZWQtY2FzZXMtYmVmb3JlLXlvdS1zdGFydD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJsaW5rZWRDYXNlc1BhZ2VzLk5PX0xJTktFRF9DQVNFU1wiPlxuICAgICAgPGNjZC1uby1saW5rZWQtY2FzZXNcbiAgICAgICAgKGxpbmtlZENhc2VzU3RhdGVFbWl0dGVyKT1cIm9uTGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiPjwvY2NkLW5vLWxpbmtlZC1jYXNlcz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJsaW5rZWRDYXNlc1BhZ2VzLkxJTktfQ0FTRVwiPlxuICAgICAgPGNjZC1saW5rLWNhc2VzXG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1saW5rLWNhc2VzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImxpbmtlZENhc2VzUGFnZXMuVU5MSU5LX0NBU0VcIj5cbiAgICAgIDxjY2QtdW5saW5rLWNhc2VzXG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC11bmxpbmstY2FzZXM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibGlua2VkQ2FzZXNQYWdlcy5DSEVDS19ZT1VSX0FOU1dFUlNcIj5cbiAgICAgIDxjY2QtbGlua2VkLWNhc2VzLWNoZWNrLXlvdXItYW5zd2Vyc1xuICAgICAgICAobGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXIpPVwib25MaW5rZWRDYXNlc1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtbGlua2VkLWNhc2VzLWNoZWNrLXlvdXItYW5zd2Vycz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -16651,8 +16651,8 @@ class LinkCasesComponent {
16651
16651
  })), this.validatorsUtils.formArraySelectedValidator());
16652
16652
  }
16653
16653
  toggleLinkCaseReasonOtherComments(event) {
16654
- this.linkCaseReasons.find(reason => reason.value_en === event.target.value).selected = event.target.checked;
16655
- this.showComments = this.linkCaseReasons.find(reason => reason.value_en === 'Other').selected;
16654
+ this.linkCaseReasons.find((reason) => reason.value_en === event.target.value).selected = event.target.checked;
16655
+ this.showComments = this.linkCaseReasons.find((reason) => reason.value_en === 'Other')?.selected;
16656
16656
  }
16657
16657
  submitCaseInfo() {
16658
16658
  this.errorMessages = [];
@@ -16691,7 +16691,7 @@ class LinkCasesComponent {
16691
16691
  this.errorMessages.push({
16692
16692
  title: 'dummy-case-number',
16693
16693
  description: LinkedCasesErrorMessages.CaseNumberError,
16694
- fieldId: 'caseNumber',
16694
+ fieldId: 'caseNumber'
16695
16695
  });
16696
16696
  }
16697
16697
  if (this.linkCaseForm.controls.reasonType.invalid) {
@@ -16699,17 +16699,17 @@ class LinkCasesComponent {
16699
16699
  this.errorMessages.push({
16700
16700
  title: 'dummy-case-reason',
16701
16701
  description: LinkedCasesErrorMessages.ReasonSelectionError,
16702
- fieldId: 'caseReason',
16702
+ fieldId: 'caseReason'
16703
16703
  });
16704
16704
  }
16705
16705
  if (this.linkCaseForm.controls.reasonType.valid
16706
- && this.linkCaseReasons.find(reason => reason.value_en === 'Other').selected) {
16706
+ && this.linkCaseReasons.find((reason) => reason.value_en === 'Other').selected) {
16707
16707
  if (this.linkCaseForm.controls.otherDescription.value.trim().length === 0) {
16708
16708
  this.caseReasonCommentsError = LinkedCasesErrorMessages.otherDescriptionError;
16709
16709
  this.errorMessages.push({
16710
16710
  title: 'dummy-case-reason-comments',
16711
16711
  description: LinkedCasesErrorMessages.otherDescriptionError,
16712
- fieldId: 'otherDescription',
16712
+ fieldId: 'otherDescription'
16713
16713
  });
16714
16714
  }
16715
16715
  if (this.linkCaseForm.controls.otherDescription.value.trim().length > 100) {
@@ -16717,7 +16717,7 @@ class LinkCasesComponent {
16717
16717
  this.errorMessages.push({
16718
16718
  title: 'dummy-case-reason-comments',
16719
16719
  description: LinkedCasesErrorMessages.otherDescriptionMaxLengthError,
16720
- fieldId: 'otherDescription',
16720
+ fieldId: 'otherDescription'
16721
16721
  });
16722
16722
  }
16723
16723
  }
@@ -16726,7 +16726,7 @@ class LinkCasesComponent {
16726
16726
  this.errorMessages.push({
16727
16727
  title: 'dummy-case-number',
16728
16728
  description: LinkedCasesErrorMessages.CaseProposedError,
16729
- fieldId: 'caseNumber',
16729
+ fieldId: 'caseNumber'
16730
16730
  });
16731
16731
  }
16732
16732
  if (this.isCaseSelected(this.linkedCasesService.linkedCases)) {
@@ -16734,14 +16734,14 @@ class LinkCasesComponent {
16734
16734
  this.errorMessages.push({
16735
16735
  title: 'dummy-case-number',
16736
16736
  description: LinkedCasesErrorMessages.CasesLinkedError,
16737
- fieldId: 'caseNumber',
16737
+ fieldId: 'caseNumber'
16738
16738
  });
16739
16739
  }
16740
16740
  if (this.linkCaseForm.value.caseNumber.split('-').join('') === this.linkedCasesService.caseId.split('-').join('')) {
16741
16741
  this.errorMessages.push({
16742
16742
  title: 'dummy-case-number',
16743
16743
  description: LinkedCasesErrorMessages.ProposedCaseWithIn,
16744
- fieldId: 'caseNumber',
16744
+ fieldId: 'caseNumber'
16745
16745
  });
16746
16746
  }
16747
16747
  window.scrollTo(0, 0);
@@ -16762,7 +16762,7 @@ class LinkCasesComponent {
16762
16762
  caseState: caseView.state.name || '',
16763
16763
  caseStateDescription: caseView.state.description || '',
16764
16764
  caseService: caseView.case_type && caseView.case_type.jurisdiction && caseView.case_type.jurisdiction.description || '',
16765
- caseName: this.linkedCasesService.getCaseName(caseView),
16765
+ caseName: this.linkedCasesService.getCaseName(caseView)
16766
16766
  };
16767
16767
  const ccdApiCaseLinkData = {
16768
16768
  CaseReference: caseView.case_id,
@@ -16775,7 +16775,7 @@ class LinkCasesComponent {
16775
16775
  }
16776
16776
  this.linkedCasesService.caseFieldValue.push({ id: caseView.case_id.toString(), value: ccdApiCaseLinkData });
16777
16777
  this.selectedCases.push(caseLink);
16778
- this.linkCaseReasons.forEach(reason => reason.selected = false);
16778
+ this.linkCaseReasons.forEach((reason) => reason.selected = false);
16779
16779
  this.initForm();
16780
16780
  this.emitLinkedCasesState(false);
16781
16781
  }, (error) => {
@@ -16783,7 +16783,7 @@ class LinkCasesComponent {
16783
16783
  this.errorMessages.push({
16784
16784
  title: 'dummy-case-number',
16785
16785
  description: LinkedCasesErrorMessages.CaseCheckAgainError,
16786
- fieldId: 'caseNumber',
16786
+ fieldId: 'caseNumber'
16787
16787
  });
16788
16788
  this.emitLinkedCasesState(false);
16789
16789
  window.scrollTo(0, 0);
@@ -16795,7 +16795,7 @@ class LinkCasesComponent {
16795
16795
  this.linkedCasesStateEmitter.emit({
16796
16796
  currentLinkedCasesPage: LinkedCasesPages.LINK_CASE,
16797
16797
  errorMessages: this.errorMessages,
16798
- navigateToNextPage: isNavigateToNextPage,
16798
+ navigateToNextPage: isNavigateToNextPage
16799
16799
  });
16800
16800
  }
16801
16801
  getSelectedCaseReasons() {
@@ -16830,7 +16830,7 @@ class LinkCasesComponent {
16830
16830
  }
16831
16831
  onSelectedLinkedCaseRemove(pos, selectedCaseReference) {
16832
16832
  const caseFieldValue = this.linkedCasesService.caseFieldValue || [];
16833
- const updatedItems = caseFieldValue.filter(item => item.value && item.value.CaseReference !== selectedCaseReference);
16833
+ const updatedItems = caseFieldValue.filter((item) => item.value && item.value.CaseReference !== selectedCaseReference);
16834
16834
  if (updatedItems) {
16835
16835
  this.linkedCasesService.caseFieldValue = updatedItems;
16836
16836
  }
@@ -16851,7 +16851,7 @@ class LinkCasesComponent {
16851
16851
  this.errorMessages.push({
16852
16852
  title: 'dummy-case-selection',
16853
16853
  description: LinkedCasesErrorMessages.CaseSelectionError,
16854
- fieldId: 'caseReason',
16854
+ fieldId: 'caseReason'
16855
16855
  });
16856
16856
  navigateToNextPage = false;
16857
16857
  }
@@ -17586,7 +17586,7 @@ class UnLinkCasesComponent {
17586
17586
  }
17587
17587
  else {
17588
17588
  this.casesService.getCaseViewV2(this.caseId).subscribe((caseView) => {
17589
- const linkedCasesTab = caseView.tabs.find(tab => tab.id === UnLinkCasesComponent.LINKED_CASES_TAB_ID);
17589
+ const linkedCasesTab = caseView.tabs.find((tab) => tab.id === UnLinkCasesComponent.LINKED_CASES_TAB_ID);
17590
17590
  if (linkedCasesTab) {
17591
17591
  const linkedCases = linkedCasesTab.fields[0].value;
17592
17592
  this.linkedCases = linkedCases;
@@ -17598,22 +17598,22 @@ class UnLinkCasesComponent {
17598
17598
  }
17599
17599
  getAllLinkedCaseInformation() {
17600
17600
  const searchCasesResponse = [];
17601
- this.linkedCases.forEach(linkedCase => {
17601
+ this.linkedCases.forEach((linkedCase) => {
17602
17602
  searchCasesResponse.push(this.casesService.getCaseViewV2(linkedCase.caseReference));
17603
17603
  });
17604
17604
  if (searchCasesResponse.length) {
17605
17605
  this.searchCasesByCaseIds(searchCasesResponse).subscribe((searchCases) => {
17606
17606
  searchCases.forEach((response) => {
17607
- const linkedCaseFromList = this.linkedCases.find(linkedCase => linkedCase.caseReference === response.case_id);
17607
+ const linkedCaseFromList = this.linkedCases.find((linkedCase) => linkedCase.caseReference === response.case_id);
17608
17608
  if (linkedCaseFromList) {
17609
17609
  const caseName = this.linkedCasesService.getCaseName(response);
17610
- this.linkedCases.find(linkedCase => linkedCase.caseReference === response.case_id).caseName = caseName;
17610
+ this.linkedCases.find((linkedCase) => linkedCase.caseReference === response.case_id).caseName = caseName;
17611
17611
  }
17612
17612
  });
17613
17613
  this.initForm();
17614
17614
  this.linkedCasesService.linkedCases = this.linkedCases;
17615
17615
  this.isServerError = false;
17616
- }, err => {
17616
+ }, (err) => {
17617
17617
  this.isServerError = true;
17618
17618
  this.notifyAPIFailure.emit(true);
17619
17619
  });
@@ -17628,7 +17628,7 @@ class UnLinkCasesComponent {
17628
17628
  });
17629
17629
  }
17630
17630
  get getLinkedCasesFormArray() {
17631
- const formFieldArray = this.linkedCases.map(val => this.fb.group({
17631
+ const formFieldArray = this.linkedCases.map((val) => this.fb.group({
17632
17632
  caseReference: val.caseReference,
17633
17633
  reasons: val.reasons,
17634
17634
  createdDateTime: val.createdDateTime,
@@ -17642,7 +17642,7 @@ class UnLinkCasesComponent {
17642
17642
  }
17643
17643
  onChange(caseSelected) {
17644
17644
  this.resetErrorMessages();
17645
- const selectedCase = this.linkedCases.find(linkedCase => linkedCase.caseReference === caseSelected.value);
17645
+ const selectedCase = this.linkedCases.find((linkedCase) => linkedCase.caseReference === caseSelected.value);
17646
17646
  if (selectedCase) {
17647
17647
  selectedCase.unlink = caseSelected.checked ? true : false;
17648
17648
  }
@@ -17650,7 +17650,7 @@ class UnLinkCasesComponent {
17650
17650
  onNext() {
17651
17651
  this.resetErrorMessages();
17652
17652
  let navigateToNextPage = true;
17653
- const casesMarkedToUnlink = this.linkedCases.find(linkedCase => linkedCase.unlink && linkedCase.unlink === true);
17653
+ const casesMarkedToUnlink = this.linkedCases.find((linkedCase) => linkedCase.unlink && linkedCase.unlink === true);
17654
17654
  if (!casesMarkedToUnlink) {
17655
17655
  this.errorMessages.push({
17656
17656
  title: 'case-selection',
@@ -17668,7 +17668,7 @@ class UnLinkCasesComponent {
17668
17668
  this.linkedCasesStateEmitter.emit({
17669
17669
  currentLinkedCasesPage: LinkedCasesPages.UNLINK_CASE,
17670
17670
  errorMessages: this.errorMessages,
17671
- navigateToNextPage: isNavigateToNextPage,
17671
+ navigateToNextPage: isNavigateToNextPage
17672
17672
  });
17673
17673
  }
17674
17674
  resetErrorMessages() {
@@ -18011,14 +18011,16 @@ class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent {
18011
18011
  // Get linked case reasons from ref data
18012
18012
  this.linkedCasesService.editMode = false;
18013
18013
  this.subscriptions.add(this.caseEditDataService.caseDetails$.subscribe({
18014
- next: caseDetails => { this.initialiseCaseDetails(caseDetails); }
18014
+ next: (caseDetails) => {
18015
+ this.initialiseCaseDetails(caseDetails);
18016
+ }
18015
18017
  }));
18016
18018
  this.getOrgService();
18017
18019
  this.subscriptions.add(this.caseEditDataService.caseEventTriggerName$.subscribe({
18018
- next: name => this.linkedCasesService.isLinkedCasesEventTrigger = (name === LinkedCasesEventTriggers.LINK_CASES)
18020
+ next: (name) => this.linkedCasesService.isLinkedCasesEventTrigger = (name === LinkedCasesEventTriggers.LINK_CASES)
18019
18021
  }));
18020
18022
  this.subscriptions.add(this.caseEditDataService.caseEditForm$.subscribe({
18021
- next: editForm => this.caseEditForm = editForm
18023
+ next: (editForm) => this.caseEditForm = editForm
18022
18024
  }));
18023
18025
  }
18024
18026
  initialiseCaseDetails(caseDetails) {
@@ -18094,13 +18096,28 @@ class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent {
18094
18096
  }
18095
18097
  }
18096
18098
  submitLinkedCases() {
18099
+ let caseFieldValue = [...(this.linkedCasesService.caseFieldValue || [])];
18097
18100
  if (!this.linkedCasesService.isLinkedCasesEventTrigger) {
18098
- const unlinkedCaseRefereneIds = this.linkedCasesService.linkedCases.filter(item => item.unlink).map(item => item.caseReference);
18099
- const caseFieldValue = this.linkedCasesService.caseFieldValue;
18100
- this.linkedCasesService.caseFieldValue = caseFieldValue.filter(item => unlinkedCaseRefereneIds.indexOf(item.id) === -1);
18101
+ const unlinkedCaseReferenceIds = this.linkedCasesService.linkedCases
18102
+ .filter((item) => item.unlink)
18103
+ .map((item) => item.caseReference);
18104
+ caseFieldValue = caseFieldValue.filter((item) => !unlinkedCaseReferenceIds.includes(item.id));
18105
+ }
18106
+ // Replace the caseLinks value in this.formGroup
18107
+ this.formGroup.patchValue({
18108
+ caseLinks: caseFieldValue
18109
+ });
18110
+ // Replace the caseLinks control in caseEditForm.controls.data
18111
+ const dataFormGroup = this.caseEditForm.controls.data;
18112
+ if (dataFormGroup) {
18113
+ // Remove the existing caseLinks control (if it exists)
18114
+ if (dataFormGroup.contains('caseLinks')) {
18115
+ dataFormGroup.removeControl('caseLinks');
18116
+ }
18117
+ // Add the new control with the replacement value
18118
+ dataFormGroup.addControl('caseLinks', new FormControl(caseFieldValue || []));
18101
18119
  }
18102
- this.formGroup.value.caseLinks = this.linkedCasesService.caseFieldValue;
18103
- this.caseEditForm.controls['data'] = new FormGroup({ caseLinks: new FormControl(this.linkedCasesService.caseFieldValue || []) });
18120
+ // Set the updated form in the caseEditDataService
18104
18121
  this.caseEditDataService.setCaseEditForm(this.caseEditForm);
18105
18122
  }
18106
18123
  isAtFinalPage() {
@@ -18117,11 +18134,11 @@ class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent {
18117
18134
  }
18118
18135
  getLinkedCases() {
18119
18136
  this.casesService.getCaseViewV2(this.linkedCasesService.caseId).subscribe((caseView) => {
18120
- const caseViewFiltered = caseView.tabs.filter(tab => {
18137
+ const caseViewFiltered = caseView.tabs.filter((tab) => {
18121
18138
  return tab.fields.some(({ field_type }) => field_type && field_type.collection_field_type && field_type.collection_field_type.id === 'CaseLink');
18122
18139
  });
18123
18140
  if (caseViewFiltered) {
18124
- const caseLinkFieldValue = caseViewFiltered.map(filtered => filtered.fields?.length > 0 && filtered.fields.filter(field => field.id === 'caseLinks')[0].value);
18141
+ const caseLinkFieldValue = caseViewFiltered.map((filtered) => filtered.fields?.length > 0 && filtered.fields.filter((field) => field.id === 'caseLinks')[0].value);
18125
18142
  this.linkedCasesService.caseFieldValue = caseLinkFieldValue.length ? caseLinkFieldValue[0] : [];
18126
18143
  this.linkedCasesService.getAllLinkedCaseInformation();
18127
18144
  }
@@ -18161,7 +18178,7 @@ class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent {
18161
18178
  type: Component,
18162
18179
  args: [{ selector: 'ccd-write-linked-cases-field', template: "<div class=\"form-group govuk-!-margin-bottom-2\" [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngSwitch]=\"linkedCasesPage\">\n <ng-container *ngSwitchCase=\"linkedCasesPages.BEFORE_YOU_START\">\n <ccd-linked-cases-before-you-start\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-linked-cases-before-you-start>\n </ng-container>\n <ng-container *ngSwitchCase=\"linkedCasesPages.NO_LINKED_CASES\">\n <ccd-no-linked-cases\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-no-linked-cases>\n </ng-container>\n <ng-container *ngSwitchCase=\"linkedCasesPages.LINK_CASE\">\n <ccd-link-cases\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-link-cases>\n </ng-container>\n <ng-container *ngSwitchCase=\"linkedCasesPages.UNLINK_CASE\">\n <ccd-unlink-cases\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-unlink-cases>\n </ng-container>\n <ng-container *ngSwitchCase=\"linkedCasesPages.CHECK_YOUR_ANSWERS\">\n <ccd-linked-cases-check-your-answers\n (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\"></ccd-linked-cases-check-your-answers>\n </ng-container>\n </div>\n</div>\n" }]
18163
18180
  }], () => [{ type: AbstractAppConfig }, { type: CommonDataService }, { type: CasesService }, { type: LinkedCasesService }, { type: CaseEditDataService }], null); })();
18164
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteLinkedCasesFieldComponent, { className: "WriteLinkedCasesFieldComponent", filePath: "lib/shared/components/palette/linked-cases/write-linked-cases-field.component.ts", lineNumber: 19 }); })();
18181
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteLinkedCasesFieldComponent, { className: "WriteLinkedCasesFieldComponent", filePath: "lib/shared/components/palette/linked-cases/write-linked-cases-field.component.ts", lineNumber: 18 }); })();
18165
18182
 
18166
18183
  function ReadMoneyGbpFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
18167
18184
  i0.ɵɵelementContainerStart(0);