@hmcts/ccd-case-ui-toolkit 7.0.21-cfv-accessibility → 7.0.21-cot-771

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.
@@ -120,8 +120,8 @@ export class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent
120
120
  }
121
121
  }
122
122
  }
123
- getLinkedCaseReasons(serviceId) {
124
- const reasonCodeAPIurl = `${this.appConfig.getRDCommonDataApiUrl()}/lov/categories/CaseLinkingReasonCode?serviceId=${serviceId}`;
123
+ getLinkedCaseReasons(serviceCode) {
124
+ const reasonCodeAPIurl = `${this.appConfig.getRDCommonDataApiUrl()}/lov/categories/CaseLinkingReasonCode?serviceId=${serviceCode}`;
125
125
  this.commonDataService.getRefData(reasonCodeAPIurl).subscribe({
126
126
  next: reasons => {
127
127
  // Sort in ascending order
@@ -136,7 +136,7 @@ export class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent
136
136
  const servicesApiUrl = `refdata/location/orgServices?ccdCaseType=${this.caseDetails?.case_type?.id}`;
137
137
  this.commonDataService.getServiceOrgData(servicesApiUrl).subscribe(result => {
138
138
  result.forEach(ids => {
139
- this.getLinkedCaseReasons(ids.service_id);
139
+ this.getLinkedCaseReasons(ids.service_code);
140
140
  });
141
141
  });
142
142
  }
@@ -226,4 +226,4 @@ WriteLinkedCasesFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ ty
226
226
  type: Component,
227
227
  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" }]
228
228
  }], function () { return [{ type: i1.AbstractAppConfig }, { type: i2.CommonDataService }, { type: i3.CasesService }, { type: i4.LinkedCasesService }, { type: i5.CaseEditDataService }]; }, null); })();
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtbGlua2VkLWNhc2VzLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy93cml0ZS1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL3dyaXRlLWxpbmtlZC1jYXNlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBNEIsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztJQ1ZoQyw2QkFBZ0U7SUFDOUQsNERBQ2dFO0lBQTlELHlQQUEyQixlQUFBLHdDQUFpQyxDQUFBLElBQUM7SUFBQyxpQkFBb0M7SUFDdEcsMEJBQWU7Ozs7SUFDZiw2QkFBK0Q7SUFDN0QsOENBQ2dFO0lBQTlELDJPQUEyQixlQUFBLHdDQUFpQyxDQUFBLElBQUM7SUFBQyxpQkFBc0I7SUFDeEYsMEJBQWU7Ozs7SUFDZiw2QkFBeUQ7SUFDdkQseUNBQ2dFO0lBQTlELHVPQUEyQixlQUFBLHdDQUFpQyxDQUFBLElBQUM7SUFBQyxpQkFBaUI7SUFDbkYsMEJBQWU7Ozs7SUFDZiw2QkFBMkQ7SUFDekQsMkNBQ2dFO0lBQTlELDBPQUEyQixlQUFBLHlDQUFpQyxDQUFBLElBQUM7SUFBQyxpQkFBbUI7SUFDckYsMEJBQWU7Ozs7SUFDZiw2QkFBa0U7SUFDaEUsOERBQ2dFO0lBQTlELDZQQUEyQixlQUFBLHlDQUFpQyxDQUFBLElBQUM7SUFBQyxpQkFBc0M7SUFDeEcsMEJBQWU7O0FESG5CLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwyQkFBMkI7SUFTN0UsWUFDbUIsU0FBNEIsRUFDNUIsaUJBQW9DLEVBQ3BDLFlBQTBCLEVBQzFCLGtCQUFzQyxFQUN0QyxtQkFBd0M7UUFDekQsS0FBSyxFQUFFLENBQUM7UUFMUyxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQVZwRCxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUNwQyw2QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztRQUNwRCxnQkFBVyxHQUFlLEVBQUUsQ0FBQztRQUM1QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFTM0MsQ0FBQztJQUVNLFFBQVE7UUFDYix3REFBd0Q7UUFDeEQsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDckQsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUNwRTtZQUNFLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEUsQ0FBQyxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztZQUM5RSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUMsVUFBVSxDQUFDO1NBQ2pILENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7WUFDdEUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRO1NBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLHFCQUFxQixDQUFDLFdBQXFCO1FBQ2hELElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7WUFDbEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQ3JELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRSxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ25DLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDL0I7UUFDRCxVQUFVLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNELElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDbkMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxnQkFBa0M7UUFDakUsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRXJELElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7YUFBTTtZQUNMLElBQUksZ0JBQWdCLENBQUMsYUFBYSxJQUFJLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNFLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQzdELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDbkgsQ0FBQyxDQUFDLENBQUM7YUFDSjtTQUNGO0lBQ0gsQ0FBQztJQUVNLG9CQUFvQixDQUFDLFNBQWlCO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLG1EQUFtRCxTQUFTLEVBQUUsQ0FBQztRQUNqSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzVELElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDZCwwQkFBMEI7Z0JBQzFCLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVsRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxHQUFHLGVBQWUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxDQUFDO2dCQUN6RywyQ0FBMkM7Z0JBQzNDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0csQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxjQUFjLEdBQUcsNENBQTRDLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3JHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDMUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQTtRQUVKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN4QixzREFBc0Q7WUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hFLG1GQUFtRjtZQUNuRixJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDeEMsb0JBQW9CO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO2FBQU07WUFDTCxpRUFBaUU7WUFDakUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xFO0lBQ0gsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixFQUFFO1lBQ3RELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2hJLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pIO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7UUFDdkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQztJQUMzRSxDQUFDO0lBRU0sV0FBVyxDQUFDLGdCQUFrQztRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztZQUM5RCxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixLQUFLLGdCQUFnQixDQUFDLGtCQUFrQixJQUFJLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLEVBQUU7WUFDOUgsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCO2dCQUN0RCxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUztnQkFDNUIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztTQUNsQztRQUNELE9BQU8sZ0JBQWdCLENBQUMsa0JBQWtCLENBQUM7SUFDN0MsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUMvRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNwQixDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMscUJBQXFCLElBQUksVUFBVSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsS0FBSyxVQUFVLENBQ3pILENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksZ0JBQWdCLEVBQUU7Z0JBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ3pELFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNsRyxDQUFDO2dCQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNoRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQzthQUN2RDtZQUNELHVDQUF1QztZQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx5QkFBeUI7Z0JBQ3RFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDO3VCQUN2RixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQjtnQkFDbkMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs0R0FwS1UsOEJBQThCO2lGQUE5Qiw4QkFBOEI7UUNsQjNDLDhCQUF3RSxhQUFBO1FBRXBFLGlHQUdlO1FBQ2YsaUdBR2U7UUFDZixpR0FHZTtRQUNmLGlHQUdlO1FBQ2YsaUdBR2U7UUFDakIsaUJBQU0sRUFBQTs7UUF0QndDLHlDQUF1QjtRQUN2QyxlQUE0QjtRQUE1Qiw4Q0FBNEI7UUFDekMsZUFBK0M7UUFBL0Msb0VBQStDO1FBSS9DLGVBQThDO1FBQTlDLG1FQUE4QztRQUk5QyxlQUF3QztRQUF4Qyw2REFBd0M7UUFJeEMsZUFBMEM7UUFBMUMsK0RBQTBDO1FBSTFDLGVBQWlEO1FBQWpELHNFQUFpRDs7dUZEQXZELDhCQUE4QjtjQUoxQyxTQUFTOzJCQUNFLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgQ2FzZUVkaXREYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvY2FzZS1lZGl0LWRhdGEnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldyc7XG5pbXBvcnQgeyBDb21tb25EYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbW1vbi1kYXRhLXNlcnZpY2UvY29tbW9uLWRhdGEtc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQnO1xuaW1wb3J0IHsgQ2FzZUxpbmssIExpbmtlZENhc2VzU3RhdGUgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMsIExpbmtlZENhc2VzRXZlbnRUcmlnZ2VycywgTGlua2VkQ2FzZXNQYWdlcyB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWxpbmtlZC1jYXNlcy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlTGlua2VkQ2FzZXNGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGNhc2VFZGl0Rm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3O1xuICBwdWJsaWMgbGlua2VkQ2FzZXNQYWdlOiBudW1iZXI7XG4gIHB1YmxpYyBsaW5rZWRDYXNlc1BhZ2VzID0gTGlua2VkQ2FzZXNQYWdlcztcbiAgcHVibGljIGxpbmtlZENhc2VzRXZlbnRUcmlnZ2VycyA9IExpbmtlZENhc2VzRXZlbnRUcmlnZ2VycztcbiAgcHVibGljIGxpbmtlZENhc2VzOiBDYXNlTGlua1tdID0gW107XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25EYXRhU2VydmljZTogQ29tbW9uRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUVkaXREYXRhU2VydmljZTogQ2FzZUVkaXREYXRhU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gVGhpcyBpcyByZXF1aXJlZCB0byBlbmFibGUgQ29udGludWUgYnV0dG9uIHZhbGlkYXRpb25cbiAgICAvLyBDb250aW51ZSBidXR0b24gc2hvdWxkIGJlIGVuYWJsZWQgb25seSBhdCBjaGVjayB5b3VyIGFuc3dlcnMgcGFnZVxuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcChmYWxzZSk7XG4gICAgLy8gQ2xlYXIgdmFsaWRhdGlvbiBlcnJvcnNcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2xlYXJGb3JtVmFsaWRhdGlvbkVycm9ycygpO1xuICAgIC8vIEdldCBsaW5rZWQgY2FzZSByZWFzb25zIGZyb20gcmVmIGRhdGFcbiAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5lZGl0TW9kZSA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNhc2VEZXRhaWxzJC5zdWJzY3JpYmUoXG4gICAgICB7XG4gICAgICAgIG5leHQ6IGNhc2VEZXRhaWxzID0+IHsgdGhpcy5pbml0aWFsaXNlQ2FzZURldGFpbHMoY2FzZURldGFpbHMpOyB9XG4gICAgICB9KSk7XG4gICAgdGhpcy5nZXRPcmdTZXJ2aWNlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2FzZUV2ZW50VHJpZ2dlck5hbWUkLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBuYW1lID0+IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmlzTGlua2VkQ2FzZXNFdmVudFRyaWdnZXIgPSAobmFtZSA9PT0gTGlua2VkQ2FzZXNFdmVudFRyaWdnZXJzLkxJTktfQ0FTRVMpXG4gICAgfSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNhc2VFZGl0Rm9ybSQuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IGVkaXRGb3JtID0+IHRoaXMuY2FzZUVkaXRGb3JtID0gZWRpdEZvcm1cbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGlzZUNhc2VEZXRhaWxzKGNhc2VEZXRhaWxzOiBDYXNlVmlldyk6IHZvaWQge1xuICAgIGlmIChjYXNlRGV0YWlscykge1xuICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IGNhc2VEZXRhaWxzO1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZURldGFpbHMgPSBjYXNlRGV0YWlscztcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VJZCA9IGNhc2VEZXRhaWxzLmNhc2VfaWQ7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlTmFtZSA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmdldENhc2VOYW1lKGNhc2VEZXRhaWxzKTtcbiAgICAgIHRoaXMuZ2V0TGlua2VkQ2FzZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGxldCBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ292dWstaGVhZGluZy1sJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgICBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGVhZGluZy1oMicpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25MaW5rZWRDYXNlc1N0YXRlRW1pdHRlZChsaW5rZWRDYXNlc1N0YXRlOiBMaW5rZWRDYXNlc1N0YXRlKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgdmFsaWRhdGlvbiBlcnJvcnNcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2xlYXJGb3JtVmFsaWRhdGlvbkVycm9ycygpO1xuXG4gICAgaWYgKGxpbmtlZENhc2VzU3RhdGUubmF2aWdhdGVUb05leHRQYWdlKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzUGFnZSA9IHRoaXMuZ2V0TmV4dFBhZ2UobGlua2VkQ2FzZXNTdGF0ZSk7XG4gICAgICB0aGlzLnByb2NlZWRUb05leHRQYWdlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsaW5rZWRDYXNlc1N0YXRlLmVycm9yTWVzc2FnZXMgJiYgbGlua2VkQ2FzZXNTdGF0ZS5lcnJvck1lc3NhZ2VzLmxlbmd0aCkge1xuICAgICAgICBsaW5rZWRDYXNlc1N0YXRlLmVycm9yTWVzc2FnZXMuZm9yRWFjaCgoZXJyb3JNZXNzYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5hZGRGb3JtVmFsaWRhdGlvbkVycm9yKHsgaWQ6IGVycm9yTWVzc2FnZS5maWVsZElkLCBtZXNzYWdlOiBlcnJvck1lc3NhZ2UuZGVzY3JpcHRpb24gfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRMaW5rZWRDYXNlUmVhc29ucyhzZXJ2aWNlSWQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHJlYXNvbkNvZGVBUEl1cmwgPSBgJHt0aGlzLmFwcENvbmZpZy5nZXRSRENvbW1vbkRhdGFBcGlVcmwoKX0vbG92L2NhdGVnb3JpZXMvQ2FzZUxpbmtpbmdSZWFzb25Db2RlP3NlcnZpY2VJZD0ke3NlcnZpY2VJZH1gO1xuICAgIHRoaXMuY29tbW9uRGF0YVNlcnZpY2UuZ2V0UmVmRGF0YShyZWFzb25Db2RlQVBJdXJsKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcmVhc29ucyA9PiB7XG4gICAgICAgIC8vIFNvcnQgaW4gYXNjZW5kaW5nIG9yZGVyXG4gICAgICAgIGNvbnN0IGxpbmtDYXNlUmVhc29ucyA9IHJlYXNvbnMubGlzdF9vZl92YWx1ZXMuc29ydCgoYSwgYikgPT4gKGEudmFsdWVfZW4gPiBiLnZhbHVlX2VuKSA/IDEgOiAtMSk7XG5cbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua0Nhc2VSZWFzb25zID0gbGlua0Nhc2VSZWFzb25zPy5maWx0ZXIocmVhc29uID0+IHJlYXNvbi52YWx1ZV9lbiAhPT0gJ090aGVyJyk7XG4gICAgICAgIC8vIE1vdmUgT3RoZXIgb3B0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3RcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua0Nhc2VSZWFzb25zLnB1c2gobGlua0Nhc2VSZWFzb25zPy5maW5kKHJlYXNvbiA9PiByZWFzb24udmFsdWVfZW4gPT09ICdPdGhlcicpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldE9yZ1NlcnZpY2UoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VydmljZXNBcGlVcmwgPSBgcmVmZGF0YS9sb2NhdGlvbi9vcmdTZXJ2aWNlcz9jY2RDYXNlVHlwZT0ke3RoaXMuY2FzZURldGFpbHM/LmNhc2VfdHlwZT8uaWR9YDtcbiAgICB0aGlzLmNvbW1vbkRhdGFTZXJ2aWNlLmdldFNlcnZpY2VPcmdEYXRhKHNlcnZpY2VzQXBpVXJsKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIHJlc3VsdC5mb3JFYWNoKGlkcyA9PiB7XG4gICAgICAgIHRoaXMuZ2V0TGlua2VkQ2FzZVJlYXNvbnMoaWRzLnNlcnZpY2VfaWQpO1xuICAgICAgfSlcblxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgcHJvY2VlZFRvTmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBdEZpbmFsUGFnZSgpKSB7XG4gICAgICAvLyBDb250aW51ZSBidXR0b24gZXZlbnQgbXVzdCBiZSBhbGxvd2VkIGluIGZpbmFsIHBhZ2VcbiAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcCh0cnVlKTtcbiAgICAgIC8vIFRyaWdnZXIgdmFsaWRhdGlvbiB0byBjbGVhciB0aGUgXCJub3RBdEZpbmFsUGFnZVwiIGVycm9yIGlmIG5vdyBhdCB0aGUgZmluYWwgc3RhdGVcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIC8vIHVwZGF0ZSBmb3JtIHZhbHVlXG4gICAgICB0aGlzLnN1Ym1pdExpbmtlZENhc2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENvbnRpbnVlIGJ1dHRvbiBldmVudCBtdXN0IG5vdCBiZSBhbGxvd2VkIGlmIG5vdCBpbiBmaW5hbCBwYWdlXG4gICAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0TGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXAoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRMaW5rZWRDYXNlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmlzTGlua2VkQ2FzZXNFdmVudFRyaWdnZXIpIHtcbiAgICAgIGNvbnN0IHVubGlua2VkQ2FzZVJlZmVyZW5lSWRzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS51bmxpbmspLm1hcChpdGVtID0+IGl0ZW0uY2FzZVJlZmVyZW5jZSk7XG4gICAgICBjb25zdCBjYXNlRmllbGRWYWx1ZSA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlO1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgPSBjYXNlRmllbGRWYWx1ZS5maWx0ZXIoaXRlbSA9PiB1bmxpbmtlZENhc2VSZWZlcmVuZUlkcy5pbmRleE9mKGl0ZW0uaWQpID09PSAtMSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlLmNhc2VMaW5rcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlO1xuICAgICh0aGlzLmNhc2VFZGl0Rm9ybS5jb250cm9sc1snZGF0YSddIGFzIGFueSkgPSBuZXcgRm9ybUdyb3VwKHsgY2FzZUxpbmtzOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgfHwgW10pIH0pO1xuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRDYXNlRWRpdEZvcm0odGhpcy5jYXNlRWRpdEZvcm0pO1xuICB9XG5cbiAgcHVibGljIGlzQXRGaW5hbFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGlua2VkQ2FzZXNQYWdlID09PSB0aGlzLmxpbmtlZENhc2VzUGFnZXMuQ0hFQ0tfWU9VUl9BTlNXRVJTO1xuICB9XG5cbiAgcHVibGljIGdldE5leHRQYWdlKGxpbmtlZENhc2VzU3RhdGU6IExpbmtlZENhc2VzU3RhdGUpOiBudW1iZXIge1xuICAgIGlmICgodGhpcy5saW5rZWRDYXNlc1BhZ2UgPT09IExpbmtlZENhc2VzUGFnZXMuQkVGT1JFX1lPVV9TVEFSVCkgfHxcbiAgICAgIChsaW5rZWRDYXNlc1N0YXRlLmN1cnJlbnRMaW5rZWRDYXNlc1BhZ2UgPT09IExpbmtlZENhc2VzUGFnZXMuQ0hFQ0tfWU9VUl9BTlNXRVJTICYmIGxpbmtlZENhc2VzU3RhdGUubmF2aWdhdGVUb1ByZXZpb3VzUGFnZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyXG4gICAgICAgID8gTGlua2VkQ2FzZXNQYWdlcy5MSU5LX0NBU0VcbiAgICAgICAgOiBMaW5rZWRDYXNlc1BhZ2VzLlVOTElOS19DQVNFO1xuICAgIH1cbiAgICByZXR1cm4gTGlua2VkQ2FzZXNQYWdlcy5DSEVDS19ZT1VSX0FOU1dFUlM7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlc1NlcnZpY2UuZ2V0Q2FzZVZpZXdWMih0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQpLnN1YnNjcmliZSgoY2FzZVZpZXc6IENhc2VWaWV3KSA9PiB7XG4gICAgICBjb25zdCBjYXNlVmlld0ZpbHRlcmVkID0gY2FzZVZpZXcudGFicy5maWx0ZXIodGFiID0+IHtcbiAgICAgICAgcmV0dXJuIHRhYi5maWVsZHMuc29tZShcbiAgICAgICAgICAoeyBmaWVsZF90eXBlIH0pID0+IGZpZWxkX3R5cGUgJiYgZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUgJiYgZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUuaWQgPT09ICdDYXNlTGluaydcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGNhc2VWaWV3RmlsdGVyZWQpIHtcbiAgICAgICAgY29uc3QgY2FzZUxpbmtGaWVsZFZhbHVlID0gY2FzZVZpZXdGaWx0ZXJlZC5tYXAoZmlsdGVyZWQgPT5cbiAgICAgICAgICBmaWx0ZXJlZC5maWVsZHM/Lmxlbmd0aCA+IDAgJiYgZmlsdGVyZWQuZmllbGRzLmZpbHRlcihmaWVsZCA9PiBmaWVsZC5pZCA9PT0gJ2Nhc2VMaW5rcycpWzBdLnZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gY2FzZUxpbmtGaWVsZFZhbHVlLmxlbmd0aCA/IGNhc2VMaW5rRmllbGRWYWx1ZVswXSA6IFtdO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRBbGxMaW5rZWRDYXNlSW5mb3JtYXRpb24oKTtcbiAgICAgIH1cbiAgICAgIC8vIEluaXRpYWxpc2UgdGhlIGZpcnN0IHBhZ2UgdG8gZGlzcGxheVxuICAgICAgdGhpcy5saW5rZWRDYXNlc1BhZ2UgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyIHx8XG4gICAgICAgICh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSAmJiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5sZW5ndGggPiAwXG4gICAgICAgICAgJiYgIXRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnNlcnZlckxpbmtlZEFwaUVycm9yKVxuICAgICAgICA/IExpbmtlZENhc2VzUGFnZXMuQkVGT1JFX1lPVV9TVEFSVFxuICAgICAgICA6IExpbmtlZENhc2VzUGFnZXMuTk9fTElOS0VEX0NBU0VTO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0yXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdTd2l0Y2hdPVwibGlua2VkQ2FzZXNQYWdlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibGlua2VkQ2FzZXNQYWdlcy5CRUZPUkVfWU9VX1NUQVJUXCI+XG4gICAgICA8Y2NkLWxpbmtlZC1jYXNlcy1iZWZvcmUteW91LXN0YXJ0XG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1saW5rZWQtY2FzZXMtYmVmb3JlLXlvdS1zdGFydD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJsaW5rZWRDYXNlc1BhZ2VzLk5PX0xJTktFRF9DQVNFU1wiPlxuICAgICAgPGNjZC1uby1saW5rZWQtY2FzZXNcbiAgICAgICAgKGxpbmtlZENhc2VzU3RhdGVFbWl0dGVyKT1cIm9uTGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiPjwvY2NkLW5vLWxpbmtlZC1jYXNlcz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJsaW5rZWRDYXNlc1BhZ2VzLkxJTktfQ0FTRVwiPlxuICAgICAgPGNjZC1saW5rLWNhc2VzXG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1saW5rLWNhc2VzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImxpbmtlZENhc2VzUGFnZXMuVU5MSU5LX0NBU0VcIj5cbiAgICAgIDxjY2QtdW5saW5rLWNhc2VzXG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC11bmxpbmstY2FzZXM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibGlua2VkQ2FzZXNQYWdlcy5DSEVDS19ZT1VSX0FOU1dFUlNcIj5cbiAgICAgIDxjY2QtbGlua2VkLWNhc2VzLWNoZWNrLXlvdXItYW5zd2Vyc1xuICAgICAgICAobGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXIpPVwib25MaW5rZWRDYXNlc1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtbGlua2VkLWNhc2VzLWNoZWNrLXlvdXItYW5zd2Vycz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtbGlua2VkLWNhc2VzLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy93cml0ZS1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL3dyaXRlLWxpbmtlZC1jYXNlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBNEIsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztJQ1ZoQyw2QkFBZ0U7SUFDOUQsNERBQ2dFO0lBQTlELHlQQUEyQixlQUFB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LENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs0R0FwS1UsOEJBQThCO2lGQUE5Qiw4QkFBOEI7UUNsQjNDLDhCQUF3RSxhQUFBO1FBRXBFLGlHQUdlO1FBQ2YsaUdBR2U7UUFDZixpR0FHZTtRQUNmLGlHQUdlO1FBQ2YsaUdBR2U7UUFDakIsaUJBQU0sRUFBQTs7UUF0QndDLHlDQUF1QjtRQUN2QyxlQUE0QjtRQUE1Qiw4Q0FBNEI7UUFDekMsZUFBK0M7UUFBL0Msb0VBQStDO1FBSS9DLGVBQThDO1FBQTlDLG1FQUE4QztRQUk5QyxlQUF3QztRQUF4Qyw2REFBd0M7UUFJeEMsZUFBMEM7UUFBMUMsK0RBQTBDO1FBSTFDLGVBQWlEO1FBQWpELHNFQUFpRDs7dUZEQXZELDhCQUE4QjtjQUoxQyxTQUFTOzJCQUNFLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgQ2FzZUVkaXREYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvY2FzZS1lZGl0LWRhdGEnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldyc7XG5pbXBvcnQgeyBDb21tb25EYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbW1vbi1kYXRhLXNlcnZpY2UvY29tbW9uLWRhdGEtc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQnO1xuaW1wb3J0IHsgQ2FzZUxpbmssIExpbmtlZENhc2VzU3RhdGUgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMsIExpbmtlZENhc2VzRXZlbnRUcmlnZ2VycywgTGlua2VkQ2FzZXNQYWdlcyB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWxpbmtlZC1jYXNlcy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlTGlua2VkQ2FzZXNGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGNhc2VFZGl0Rm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3O1xuICBwdWJsaWMgbGlua2VkQ2FzZXNQYWdlOiBudW1iZXI7XG4gIHB1YmxpYyBsaW5rZWRDYXNlc1BhZ2VzID0gTGlua2VkQ2FzZXNQYWdlcztcbiAgcHVibGljIGxpbmtlZENhc2VzRXZlbnRUcmlnZ2VycyA9IExpbmtlZENhc2VzRXZlbnRUcmlnZ2VycztcbiAgcHVibGljIGxpbmtlZENhc2VzOiBDYXNlTGlua1tdID0gW107XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25EYXRhU2VydmljZTogQ29tbW9uRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUVkaXREYXRhU2VydmljZTogQ2FzZUVkaXREYXRhU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gVGhpcyBpcyByZXF1aXJlZCB0byBlbmFibGUgQ29udGludWUgYnV0dG9uIHZhbGlkYXRpb25cbiAgICAvLyBDb250aW51ZSBidXR0b24gc2hvdWxkIGJlIGVuYWJsZWQgb25seSBhdCBjaGVjayB5b3VyIGFuc3dlcnMgcGFnZVxuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcChmYWxzZSk7XG4gICAgLy8gQ2xlYXIgdmFsaWRhdGlvbiBlcnJvcnNcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2xlYXJGb3JtVmFsaWRhdGlvbkVycm9ycygpO1xuICAgIC8vIEdldCBsaW5rZWQgY2FzZSByZWFzb25zIGZyb20gcmVmIGRhdGFcbiAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5lZGl0TW9kZSA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNhc2VEZXRhaWxzJC5zdWJzY3JpYmUoXG4gICAgICB7XG4gICAgICAgIG5leHQ6IGNhc2VEZXRhaWxzID0+IHsgdGhpcy5pbml0aWFsaXNlQ2FzZURldGFpbHMoY2FzZURldGFpbHMpOyB9XG4gICAgICB9KSk7XG4gICAgdGhpcy5nZXRPcmdTZXJ2aWNlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2FzZUV2ZW50VHJpZ2dlck5hbWUkLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBuYW1lID0+IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmlzTGlua2VkQ2FzZXNFdmVudFRyaWdnZXIgPSAobmFtZSA9PT0gTGlua2VkQ2FzZXNFdmVudFRyaWdnZXJzLkxJTktfQ0FTRVMpXG4gICAgfSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNhc2VFZGl0Rm9ybSQuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IGVkaXRGb3JtID0+IHRoaXMuY2FzZUVkaXRGb3JtID0gZWRpdEZvcm1cbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGlzZUNhc2VEZXRhaWxzKGNhc2VEZXRhaWxzOiBDYXNlVmlldyk6IHZvaWQge1xuICAgIGlmIChjYXNlRGV0YWlscykge1xuICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IGNhc2VEZXRhaWxzO1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZURldGFpbHMgPSBjYXNlRGV0YWlscztcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VJZCA9IGNhc2VEZXRhaWxzLmNhc2VfaWQ7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlTmFtZSA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmdldENhc2VOYW1lKGNhc2VEZXRhaWxzKTtcbiAgICAgIHRoaXMuZ2V0TGlua2VkQ2FzZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGxldCBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ292dWstaGVhZGluZy1sJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgICBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGVhZGluZy1oMicpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25MaW5rZWRDYXNlc1N0YXRlRW1pdHRlZChsaW5rZWRDYXNlc1N0YXRlOiBMaW5rZWRDYXNlc1N0YXRlKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgdmFsaWRhdGlvbiBlcnJvcnNcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2xlYXJGb3JtVmFsaWRhdGlvbkVycm9ycygpO1xuXG4gICAgaWYgKGxpbmtlZENhc2VzU3RhdGUubmF2aWdhdGVUb05leHRQYWdlKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzUGFnZSA9IHRoaXMuZ2V0TmV4dFBhZ2UobGlua2VkQ2FzZXNTdGF0ZSk7XG4gICAgICB0aGlzLnByb2NlZWRUb05leHRQYWdlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsaW5rZWRDYXNlc1N0YXRlLmVycm9yTWVzc2FnZXMgJiYgbGlua2VkQ2FzZXNTdGF0ZS5lcnJvck1lc3NhZ2VzLmxlbmd0aCkge1xuICAgICAgICBsaW5rZWRDYXNlc1N0YXRlLmVycm9yTWVzc2FnZXMuZm9yRWFjaCgoZXJyb3JNZXNzYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5hZGRGb3JtVmFsaWRhdGlvbkVycm9yKHsgaWQ6IGVycm9yTWVzc2FnZS5maWVsZElkLCBtZXNzYWdlOiBlcnJvck1lc3NhZ2UuZGVzY3JpcHRpb24gfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRMaW5rZWRDYXNlUmVhc29ucyhzZXJ2aWNlQ29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcmVhc29uQ29kZUFQSXVybCA9IGAke3RoaXMuYXBwQ29uZmlnLmdldFJEQ29tbW9uRGF0YUFwaVVybCgpfS9sb3YvY2F0ZWdvcmllcy9DYXNlTGlua2luZ1JlYXNvbkNvZGU/c2VydmljZUlkPSR7c2VydmljZUNvZGV9YDtcbiAgICB0aGlzLmNvbW1vbkRhdGFTZXJ2aWNlLmdldFJlZkRhdGEocmVhc29uQ29kZUFQSXVybCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHJlYXNvbnMgPT4ge1xuICAgICAgICAvLyBTb3J0IGluIGFzY2VuZGluZyBvcmRlclxuICAgICAgICBjb25zdCBsaW5rQ2FzZVJlYXNvbnMgPSByZWFzb25zLmxpc3Rfb2ZfdmFsdWVzLnNvcnQoKGEsIGIpID0+IChhLnZhbHVlX2VuID4gYi52YWx1ZV9lbikgPyAxIDogLTEpO1xuXG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtDYXNlUmVhc29ucyA9IGxpbmtDYXNlUmVhc29ucz8uZmlsdGVyKHJlYXNvbiA9PiByZWFzb24udmFsdWVfZW4gIT09ICdPdGhlcicpO1xuICAgICAgICAvLyBNb3ZlIE90aGVyIG9wdGlvbiB0byB0aGUgZW5kIG9mIHRoZSBsaXN0XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtDYXNlUmVhc29ucy5wdXNoKGxpbmtDYXNlUmVhc29ucz8uZmluZChyZWFzb24gPT4gcmVhc29uLnZhbHVlX2VuID09PSAnT3RoZXInKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRPcmdTZXJ2aWNlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlcnZpY2VzQXBpVXJsID0gYHJlZmRhdGEvbG9jYXRpb24vb3JnU2VydmljZXM/Y2NkQ2FzZVR5cGU9JHt0aGlzLmNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/LmlkfWA7XG4gICAgdGhpcy5jb21tb25EYXRhU2VydmljZS5nZXRTZXJ2aWNlT3JnRGF0YShzZXJ2aWNlc0FwaVVybCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICByZXN1bHQuZm9yRWFjaChpZHMgPT4ge1xuICAgICAgICB0aGlzLmdldExpbmtlZENhc2VSZWFzb25zKGlkcy5zZXJ2aWNlX2NvZGUpO1xuICAgICAgfSlcblxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgcHJvY2VlZFRvTmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBdEZpbmFsUGFnZSgpKSB7XG4gICAgICAvLyBDb250aW51ZSBidXR0b24gZXZlbnQgbXVzdCBiZSBhbGxvd2VkIGluIGZpbmFsIHBhZ2VcbiAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcCh0cnVlKTtcbiAgICAgIC8vIFRyaWdnZXIgdmFsaWRhdGlvbiB0byBjbGVhciB0aGUgXCJub3RBdEZpbmFsUGFnZVwiIGVycm9yIGlmIG5vdyBhdCB0aGUgZmluYWwgc3RhdGVcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIC8vIHVwZGF0ZSBmb3JtIHZhbHVlXG4gICAgICB0aGlzLnN1Ym1pdExpbmtlZENhc2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENvbnRpbnVlIGJ1dHRvbiBldmVudCBtdXN0IG5vdCBiZSBhbGxvd2VkIGlmIG5vdCBpbiBmaW5hbCBwYWdlXG4gICAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0TGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXAoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRMaW5rZWRDYXNlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmlzTGlua2VkQ2FzZXNFdmVudFRyaWdnZXIpIHtcbiAgICAgIGNvbnN0IHVubGlua2VkQ2FzZVJlZmVyZW5lSWRzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS51bmxpbmspLm1hcChpdGVtID0+IGl0ZW0uY2FzZVJlZmVyZW5jZSk7XG4gICAgICBjb25zdCBjYXNlRmllbGRWYWx1ZSA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlO1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgPSBjYXNlRmllbGRWYWx1ZS5maWx0ZXIoaXRlbSA9PiB1bmxpbmtlZENhc2VSZWZlcmVuZUlkcy5pbmRleE9mKGl0ZW0uaWQpID09PSAtMSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlLmNhc2VMaW5rcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlO1xuICAgICh0aGlzLmNhc2VFZGl0Rm9ybS5jb250cm9sc1snZGF0YSddIGFzIGFueSkgPSBuZXcgRm9ybUdyb3VwKHsgY2FzZUxpbmtzOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgfHwgW10pIH0pO1xuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRDYXNlRWRpdEZvcm0odGhpcy5jYXNlRWRpdEZvcm0pO1xuICB9XG5cbiAgcHVibGljIGlzQXRGaW5hbFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGlua2VkQ2FzZXNQYWdlID09PSB0aGlzLmxpbmtlZENhc2VzUGFnZXMuQ0hFQ0tfWU9VUl9BTlNXRVJTO1xuICB9XG5cbiAgcHVibGljIGdldE5leHRQYWdlKGxpbmtlZENhc2VzU3RhdGU6IExpbmtlZENhc2VzU3RhdGUpOiBudW1iZXIge1xuICAgIGlmICgodGhpcy5saW5rZWRDYXNlc1BhZ2UgPT09IExpbmtlZENhc2VzUGFnZXMuQkVGT1JFX1lPVV9TVEFSVCkgfHxcbiAgICAgIChsaW5rZWRDYXNlc1N0YXRlLmN1cnJlbnRMaW5rZWRDYXNlc1BhZ2UgPT09IExpbmtlZENhc2VzUGFnZXMuQ0hFQ0tfWU9VUl9BTlNXRVJTICYmIGxpbmtlZENhc2VzU3RhdGUubmF2aWdhdGVUb1ByZXZpb3VzUGFnZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyXG4gICAgICAgID8gTGlua2VkQ2FzZXNQYWdlcy5MSU5LX0NBU0VcbiAgICAgICAgOiBMaW5rZWRDYXNlc1BhZ2VzLlVOTElOS19DQVNFO1xuICAgIH1cbiAgICByZXR1cm4gTGlua2VkQ2FzZXNQYWdlcy5DSEVDS19ZT1VSX0FOU1dFUlM7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlc1NlcnZpY2UuZ2V0Q2FzZVZpZXdWMih0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQpLnN1YnNjcmliZSgoY2FzZVZpZXc6IENhc2VWaWV3KSA9PiB7XG4gICAgICBjb25zdCBjYXNlVmlld0ZpbHRlcmVkID0gY2FzZVZpZXcudGFicy5maWx0ZXIodGFiID0+IHtcbiAgICAgICAgcmV0dXJuIHRhYi5maWVsZHMuc29tZShcbiAgICAgICAgICAoeyBmaWVsZF90eXBlIH0pID0+IGZpZWxkX3R5cGUgJiYgZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUgJiYgZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUuaWQgPT09ICdDYXNlTGluaydcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGNhc2VWaWV3RmlsdGVyZWQpIHtcbiAgICAgICAgY29uc3QgY2FzZUxpbmtGaWVsZFZhbHVlID0gY2FzZVZpZXdGaWx0ZXJlZC5tYXAoZmlsdGVyZWQgPT5cbiAgICAgICAgICBmaWx0ZXJlZC5maWVsZHM/Lmxlbmd0aCA+IDAgJiYgZmlsdGVyZWQuZmllbGRzLmZpbHRlcihmaWVsZCA9PiBmaWVsZC5pZCA9PT0gJ2Nhc2VMaW5rcycpWzBdLnZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gY2FzZUxpbmtGaWVsZFZhbHVlLmxlbmd0aCA/IGNhc2VMaW5rRmllbGRWYWx1ZVswXSA6IFtdO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRBbGxMaW5rZWRDYXNlSW5mb3JtYXRpb24oKTtcbiAgICAgIH1cbiAgICAgIC8vIEluaXRpYWxpc2UgdGhlIGZpcnN0IHBhZ2UgdG8gZGlzcGxheVxuICAgICAgdGhpcy5saW5rZWRDYXNlc1BhZ2UgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyIHx8XG4gICAgICAgICh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSAmJiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5sZW5ndGggPiAwXG4gICAgICAgICAgJiYgIXRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnNlcnZlckxpbmtlZEFwaUVycm9yKVxuICAgICAgICA/IExpbmtlZENhc2VzUGFnZXMuQkVGT1JFX1lPVV9TVEFSVFxuICAgICAgICA6IExpbmtlZENhc2VzUGFnZXMuTk9fTElOS0VEX0NBU0VTO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0yXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdTd2l0Y2hdPVwibGlua2VkQ2FzZXNQYWdlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibGlua2VkQ2FzZXNQYWdlcy5CRUZPUkVfWU9VX1NUQVJUXCI+XG4gICAgICA8Y2NkLWxpbmtlZC1jYXNlcy1iZWZvcmUteW91LXN0YXJ0XG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1saW5rZWQtY2FzZXMtYmVmb3JlLXlvdS1zdGFydD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJsaW5rZWRDYXNlc1BhZ2VzLk5PX0xJTktFRF9DQVNFU1wiPlxuICAgICAgPGNjZC1uby1saW5rZWQtY2FzZXNcbiAgICAgICAgKGxpbmtlZENhc2VzU3RhdGVFbWl0dGVyKT1cIm9uTGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiPjwvY2NkLW5vLWxpbmtlZC1jYXNlcz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJsaW5rZWRDYXNlc1BhZ2VzLkxJTktfQ0FTRVwiPlxuICAgICAgPGNjZC1saW5rLWNhc2VzXG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1saW5rLWNhc2VzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImxpbmtlZENhc2VzUGFnZXMuVU5MSU5LX0NBU0VcIj5cbiAgICAgIDxjY2QtdW5saW5rLWNhc2VzXG4gICAgICAgIChsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcik9XCJvbkxpbmtlZENhc2VzU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC11bmxpbmstY2FzZXM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibGlua2VkQ2FzZXNQYWdlcy5DSEVDS19ZT1VSX0FOU1dFUlNcIj5cbiAgICAgIDxjY2QtbGlua2VkLWNhc2VzLWNoZWNrLXlvdXItYW5zd2Vyc1xuICAgICAgICAobGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXIpPVwib25MaW5rZWRDYXNlc1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtbGlua2VkLWNhc2VzLWNoZWNrLXlvdXItYW5zd2Vycz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -18020,8 +18020,8 @@ class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent {
18020
18020
  }
18021
18021
  }
18022
18022
  }
18023
- getLinkedCaseReasons(serviceId) {
18024
- const reasonCodeAPIurl = `${this.appConfig.getRDCommonDataApiUrl()}/lov/categories/CaseLinkingReasonCode?serviceId=${serviceId}`;
18023
+ getLinkedCaseReasons(serviceCode) {
18024
+ const reasonCodeAPIurl = `${this.appConfig.getRDCommonDataApiUrl()}/lov/categories/CaseLinkingReasonCode?serviceId=${serviceCode}`;
18025
18025
  this.commonDataService.getRefData(reasonCodeAPIurl).subscribe({
18026
18026
  next: reasons => {
18027
18027
  // Sort in ascending order
@@ -18037,7 +18037,7 @@ class WriteLinkedCasesFieldComponent extends AbstractFieldWriteComponent {
18037
18037
  const servicesApiUrl = `refdata/location/orgServices?ccdCaseType=${(_b = (_a = this.caseDetails) === null || _a === void 0 ? void 0 : _a.case_type) === null || _b === void 0 ? void 0 : _b.id}`;
18038
18038
  this.commonDataService.getServiceOrgData(servicesApiUrl).subscribe(result => {
18039
18039
  result.forEach(ids => {
18040
- this.getLinkedCaseReasons(ids.service_id);
18040
+ this.getLinkedCaseReasons(ids.service_code);
18041
18041
  });
18042
18042
  });
18043
18043
  }
@@ -23216,7 +23216,7 @@ CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE = 'Uncategorised docum
23216
23216
  CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME = 'documentSearchFormControl';
23217
23217
  CaseFileViewFolderComponent.MINIMUM_SEARCH_CHARACTERS = 1;
23218
23218
  CaseFileViewFolderComponent.ɵfac = function CaseFileViewFolderComponent_Factory(t) { return new (t || CaseFileViewFolderComponent)(i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(AbstractAppConfig)); };
23219
- CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments", allowMoving: "allowMoving" }, outputs: { clickedDocument: "clickedDocument", moveDocument: "moveDocument" }, decls: 9, vars: 3, consts: [[1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", "aria-label", "Search by document name", 1, "form-control", "document-search"], [1, "document-folders-header"], [1, "document-folders-header__title"], [3, "sortAscending", "sortDescending"], ["class", "document-tree-container", 4, "ngIf"], [1, "document-tree-container"], [4, "ngIf"], [3, "dataSource", "treeControl"], ["class", "document-tree-container__node document-tree-container__node--document", 4, "cdkTreeNodeDef"], ["class", "document-tree-container__node document-tree-container__folder", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-container__node", "document-tree-container__node--document"], [1, "node", 3, "click"], ["disabled", "", 1, "node__icon"], ["src", "/assets/img/case-file-view/case-file-view-document.svg", "alt", "Document icon", 1, "node__iconImg"], [1, "node__name", "node-name-document"], [1, "node__document-upload-timestamp"], [1, "node__document-options"], [3, "allowMoving", "changeFolderAction", "openInANewTabAction", "downloadAction", "printAction"], [1, "document-tree-container__node", "document-tree-container__folder"], ["cdkTreeNodeToggle", "", 1, "node"], [1, "node__icon"], ["alt", "Folder icon", 1, "node__iconImg", 3, "src"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) {
23219
+ CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments", allowMoving: "allowMoving" }, outputs: { clickedDocument: "clickedDocument", moveDocument: "moveDocument" }, decls: 9, vars: 3, consts: [[1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", 1, "form-control", "document-search"], [1, "document-folders-header"], [1, "document-folders-header__title"], [3, "sortAscending", "sortDescending"], ["class", "document-tree-container", 4, "ngIf"], [1, "document-tree-container"], [4, "ngIf"], [3, "dataSource", "treeControl"], ["class", "document-tree-container__node document-tree-container__node--document", 4, "cdkTreeNodeDef"], ["class", "document-tree-container__node document-tree-container__folder", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-container__node", "document-tree-container__node--document"], [1, "node", 3, "click"], ["disabled", "", 1, "node__icon"], ["src", "/assets/img/case-file-view/case-file-view-document.svg", "alt", "Document icon", 1, "node__iconImg"], [1, "node__name", "node-name-document"], [1, "node__document-upload-timestamp"], [1, "node__document-options"], [3, "allowMoving", "changeFolderAction", "openInANewTabAction", "downloadAction", "printAction"], [1, "document-tree-container__node", "document-tree-container__folder"], ["cdkTreeNodeToggle", "", 1, "node"], [1, "node__icon"], ["alt", "Folder icon", 1, "node__iconImg", 3, "src"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) {
23220
23220
  if (rf & 1) {
23221
23221
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
23222
23222
  i0.ɵɵelement(2, "input", 2);
@@ -23241,7 +23241,7 @@ CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
23241
23241
  (function () {
23242
23242
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFolderComponent, [{
23243
23243
  type: Component,
23244
- args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\"\n aria-label=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <div class=\"document-folders-header__title\">Documents ({{ documentCount }})</div>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp}}</span>\n </span>\n <div class=\"node__document-options\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </button>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #FFF;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#EEE}.document-tree-container::-webkit-scrollbar-thumb{background:#CCC}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}\n"] }]
23244
+ args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <div class=\"document-folders-header__title\">Documents ({{ documentCount }})</div>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp}}</span>\n </span>\n <div class=\"node__document-options\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </button>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #FFF;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#EEE}.document-tree-container::-webkit-scrollbar-thumb{background:#CCC}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}\n"] }]
23245
23245
  }], function () { return [{ type: WindowService }, { type: i1$1.Router }, { type: DocumentManagementService }, { type: i1$3.MatLegacyDialog }, { type: AbstractAppConfig }]; }, { categoriesAndDocuments: [{
23246
23246
  type: Input
23247
23247
  }], allowMoving: [{
@@ -33504,7 +33504,7 @@ function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_2_Tem
33504
33504
  const tab_r20 = i0.ɵɵnextContext().$implicit;
33505
33505
  const ctx_r22 = i0.ɵɵnextContext(2);
33506
33506
  i0.ɵɵclassMap(tab_r20.id);
33507
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(1, 4, "case viewer table"));
33507
+ i0.ɵɵattribute("aria-describedby", i0.ɵɵpipeBind1(1, 4, "case viewer table"));
33508
33508
  i0.ɵɵadvance(3);
33509
33509
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBindV(4, 6, i0.ɵɵpureFunction2(14, _c1$3, i0.ɵɵpipeBind1(5, 12, tab_r20), ctx_r22.formGroup.controls["data"])));
33510
33510
  }
@@ -33988,7 +33988,7 @@ CaseFullAccessViewComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
33988
33988
  (function () {
33989
33989
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFullAccessViewComponent, [{
33990
33990
  type: Component,
33991
- args: [{ selector: 'ccd-case-full-access-view', template: "<!-- Generic error heading and error message to be displayed only if there are no specific callback errors or warnings, or no error details -->\n<div *ngIf=\"error && !(error.callbackErrors || error.callbackWarnings || error.details)\" class=\"error-summary\"\n role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h1 class=\"heading-h1 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'Something went wrong' | rpxTranslate}}\n </h1>\n <div class=\"govuk-error-summary__body\" id=\"edit-case-event_error-summary-body\">\n <p>{{\"We're working to fix the problem. Try again shortly.\" | rpxTranslate}}</p>\n <p>\n <a href=\"get-help\" target=\"_blank\">\n {{\"Contact us\" | rpxTranslate}}</a> {{\"if you're still having problems.\" | rpxTranslate}}\n </p>\n </div>\n</div>\n<!-- Callback error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"group\"\n aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-h2 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'The callback data failed validation' | rpxTranslate}}\n </h2>\n <p>{{error.message | rpxTranslate}}</p>\n <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n <li *ngFor=\"let fieldError of error.details.field_errors\">\n {{fieldError.message | rpxTranslate}}\n </li>\n </ul>\n</div>\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n<div class=\"grid-row\">\n <div class=\"column-one-half\">\n <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n <div class=\"case-viewer-controls\" *ngIf=\"hasPrint && !isDraft() && isPrintEnabled()\">\n <a id=\"case-viewer-control-print\" routerLink=\"print\" class=\"button button-secondary\">{{'Print' | rpxTranslate}}</a>\n </div>\n </div>\n <div *ngIf=\"hasEventSelector\" class=\"column-one-half\">\n <ccd-event-trigger [isDisabled]=\"isTriggerButtonDisabled()\" [triggers]=\"caseDetails.triggers\"\n [triggerText]=\"triggerText\" (onTriggerChange)=\"clearErrorsAndWarnings()\"\n (onTriggerSubmit)=\"applyTrigger($event)\"></ccd-event-trigger>\n </div>\n</div>\n<div class=\"grid-row\" *ngIf=\"activeCaseFlags && !caseFlagsExternalUser\">\n <div class=\"column-full\">\n <ccd-notification-banner [notificationBannerConfig]=\"notificationBannerConfig\" (linkClicked)=\"onLinkClicked($event)\">\n </ccd-notification-banner>\n </div>\n</div>\n<div class=\"grid-row\">\n <div class=\"column-full\">\n <ng-container *ngIf=\"hasTabsPresent()\">\n <mat-tab-group #tabGroup animationDuration=\"0ms\" (selectedIndexChange)=\"tabChanged($event)\" [disableRipple]=\"true\"\n [selectedIndex]=\"selectedTabIndex\">\n <mat-tab *ngFor=\"let tab of prependedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n <mat-tab *ngFor=\"let tab of sortedTabs; let curIdx=index\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n <ng-template matTabContent>\n <table [class]=\"tab.id\" [attr.aria-label]=\"'case viewer table' | rpxTranslate\">\n <tbody>\n <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true : formGroup.controls['data']\">\n <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"caseFields\" [hidden]=\"field.hidden\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\">\n <th id=\"case-viewer-field-label\" *ngIf=\"!isFieldToHaveNoLabel(field)\">\n <div class=\"case-viewer-label text-16\">\n {{field.label | rpxTranslate}}</div>\n </th>\n <td [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n <th [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </th>\n </tr>\n </ng-container>\n </div>\n </ng-container>\n </tbody>\n </table>\n </ng-template>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of appendedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n </mat-tab-group>\n <router-outlet *ngIf=\"(prependedTabs && prependedTabs.length) || (appendedTabs && appendedTabs.length)\"></router-outlet>\n </ng-container>\n </div>\n</div>\n", styles: ["th{width:1%;white-space:nowrap;vertical-align:top}.compound-field th{padding:0}.case-viewer-controls{margin-top:47px;margin-bottom:20px}ccd-case-header{float:left;margin-right:10px}ccd-event-trigger{float:right}.case-viewer-label{min-width:300px;white-space:normal}.markdown h3{margin-bottom:0}\n"] }]
33991
+ args: [{ selector: 'ccd-case-full-access-view', template: "<!-- Generic error heading and error message to be displayed only if there are no specific callback errors or warnings, or no error details -->\n<div *ngIf=\"error && !(error.callbackErrors || error.callbackWarnings || error.details)\" class=\"error-summary\"\n role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h1 class=\"heading-h1 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'Something went wrong' | rpxTranslate}}\n </h1>\n <div class=\"govuk-error-summary__body\" id=\"edit-case-event_error-summary-body\">\n <p>{{\"We're working to fix the problem. Try again shortly.\" | rpxTranslate}}</p>\n <p>\n <a href=\"get-help\" target=\"_blank\">\n {{\"Contact us\" | rpxTranslate}}</a> {{\"if you're still having problems.\" | rpxTranslate}}\n </p>\n </div>\n</div>\n<!-- Callback error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"group\"\n aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-h2 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'The callback data failed validation' | rpxTranslate}}\n </h2>\n <p>{{error.message | rpxTranslate}}</p>\n <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n <li *ngFor=\"let fieldError of error.details.field_errors\">\n {{fieldError.message | rpxTranslate}}\n </li>\n </ul>\n</div>\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n<div class=\"grid-row\">\n <div class=\"column-one-half\">\n <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n <div class=\"case-viewer-controls\" *ngIf=\"hasPrint && !isDraft() && isPrintEnabled()\">\n <a id=\"case-viewer-control-print\" routerLink=\"print\" class=\"button button-secondary\">{{'Print' | rpxTranslate}}</a>\n </div>\n </div>\n <div *ngIf=\"hasEventSelector\" class=\"column-one-half\">\n <ccd-event-trigger [isDisabled]=\"isTriggerButtonDisabled()\" [triggers]=\"caseDetails.triggers\"\n [triggerText]=\"triggerText\" (onTriggerChange)=\"clearErrorsAndWarnings()\"\n (onTriggerSubmit)=\"applyTrigger($event)\"></ccd-event-trigger>\n </div>\n</div>\n<div class=\"grid-row\" *ngIf=\"activeCaseFlags && !caseFlagsExternalUser\">\n <div class=\"column-full\">\n <ccd-notification-banner [notificationBannerConfig]=\"notificationBannerConfig\" (linkClicked)=\"onLinkClicked($event)\">\n </ccd-notification-banner>\n </div>\n</div>\n<div class=\"grid-row\">\n <div class=\"column-full\">\n <ng-container *ngIf=\"hasTabsPresent()\">\n <mat-tab-group #tabGroup animationDuration=\"0ms\" (selectedIndexChange)=\"tabChanged($event)\" [disableRipple]=\"true\"\n [selectedIndex]=\"selectedTabIndex\">\n <mat-tab *ngFor=\"let tab of prependedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n <mat-tab *ngFor=\"let tab of sortedTabs; let curIdx=index\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n <ng-template matTabContent>\n <table [class]=\"tab.id\" [attr.aria-describedby]=\"'case viewer table' | rpxTranslate\">\n <tbody>\n <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true : formGroup.controls['data']\">\n <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"caseFields\" [hidden]=\"field.hidden\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\">\n <th id=\"case-viewer-field-label\" *ngIf=\"!isFieldToHaveNoLabel(field)\">\n <div class=\"case-viewer-label text-16\">\n {{field.label | rpxTranslate}}</div>\n </th>\n <td [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n <th [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </th>\n </tr>\n </ng-container>\n </div>\n </ng-container>\n </tbody>\n </table>\n </ng-template>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of appendedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n </mat-tab-group>\n <router-outlet *ngIf=\"(prependedTabs && prependedTabs.length) || (appendedTabs && appendedTabs.length)\"></router-outlet>\n </ng-container>\n </div>\n</div>\n", styles: ["th{width:1%;white-space:nowrap;vertical-align:top}.compound-field th{padding:0}.case-viewer-controls{margin-top:47px;margin-bottom:20px}ccd-case-header{float:left;margin-right:10px}ccd-event-trigger{float:right}.case-viewer-label{min-width:300px;white-space:normal}.markdown h3{margin-bottom:0}\n"] }]
33992
33992
  }], function () { return [{ type: i0.NgZone }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: NavigationNotifierService }, { type: OrderService }, { type: ActivityPollingService }, { type: i1$3.MatLegacyDialog }, { type: AlertService }, { type: DraftService }, { type: ErrorNotifierService }, { type: ConvertHrefToRouterService }, { type: i4.Location }, { type: i0.ChangeDetectorRef }, { type: SessionStorageService }, { type: i1.RpxTranslatePipe }]; }, { hasPrint: [{
33993
33993
  type: Input
33994
33994
  }], hasEventSelector: [{