@hmcts/ccd-case-ui-toolkit 7.2.13-2895-rc2 → 7.2.13-close-query
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.
- package/esm2022/lib/app.config.mjs +1 -2
- package/esm2022/lib/components/form/date-input/date-input.component.mjs +3 -3
- package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +49 -52
- package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +4 -4
- package/esm2022/lib/shared/components/palette/palette.module.mjs +7 -3
- package/esm2022/lib/shared/components/palette/query-management/components/close-query/close-query.component.mjs +53 -0
- package/esm2022/lib/shared/components/palette/query-management/components/index.mjs +2 -1
- package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +48 -20
- package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +15 -9
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +25 -8
- package/esm2022/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.mjs +2 -1
- package/esm2022/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +1 -1
- package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +11 -2
- package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +27 -6
- package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +4 -2
- package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +76 -91
- package/esm2022/lib/shared/services/document-management/document-management.service.mjs +14 -53
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +355 -272
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/app.config.d.ts +0 -2
- package/lib/app.config.d.ts.map +1 -1
- package/lib/shared/components/palette/document/write-document-field.component.d.ts +2 -2
- package/lib/shared/components/palette/document/write-document-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/palette.module.d.ts +33 -32
- package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/close-query/close-query.component.d.ts +9 -0
- package/lib/shared/components/palette/query-management/components/close-query/close-query.component.d.ts.map +1 -0
- package/lib/shared/components/palette/query-management/components/index.d.ts +1 -0
- package/lib/shared/components/palette/query-management/components/index.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts +2 -1
- package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts +1 -0
- package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +1 -0
- package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +1 -0
- package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -1
- package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts +0 -1
- package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts.map +1 -1
- package/lib/shared/services/document-management/document-management.service.d.ts +1 -5
- package/lib/shared/services/document-management/document-management.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import { HttpHeaders } from '@angular/common/http';
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
-
import { delay, take } from 'rxjs/operators';
|
|
3
|
+
import { delay } from 'rxjs/operators';
|
|
5
4
|
import { AbstractAppConfig } from '../../../app.config';
|
|
6
5
|
import { HttpService } from '../http';
|
|
7
6
|
import { CaseNotifier } from '../../components/case-editor/services/case.notifier';
|
|
8
|
-
import { JurisdictionService } from '../../services/jurisdiction/jurisdiction.service';
|
|
9
7
|
import * as i0 from "@angular/core";
|
|
10
8
|
import * as i1 from "../http";
|
|
11
9
|
import * as i2 from "../../../app.config";
|
|
12
10
|
import * as i3 from "../../components/case-editor/services/case.notifier";
|
|
13
|
-
import * as i4 from "../../services/jurisdiction/jurisdiction.service";
|
|
14
11
|
export class DocumentManagementService {
|
|
15
12
|
http;
|
|
16
13
|
appConfig;
|
|
17
14
|
caseNotifierService;
|
|
18
|
-
jurisdictionService;
|
|
19
15
|
static PDF = 'pdf';
|
|
20
16
|
static IMAGE = 'image';
|
|
21
17
|
static WORD = 'word';
|
|
@@ -30,33 +26,10 @@ export class DocumentManagementService {
|
|
|
30
26
|
static wordList = ['DOC', 'DOCX', 'doc', 'docx'];
|
|
31
27
|
static excelList = ['XLS', 'XLSX', 'xls', 'xlsx'];
|
|
32
28
|
static powerpointList = ['PPT', 'PPTX', 'ppt', 'pptx'];
|
|
33
|
-
|
|
34
|
-
constructor(http, appConfig, caseNotifierService, jurisdictionService) {
|
|
29
|
+
constructor(http, appConfig, caseNotifierService) {
|
|
35
30
|
this.http = http;
|
|
36
31
|
this.appConfig = appConfig;
|
|
37
32
|
this.caseNotifierService = caseNotifierService;
|
|
38
|
-
this.jurisdictionService = jurisdictionService;
|
|
39
|
-
combineLatest([
|
|
40
|
-
this.caseNotifierService.caseView.pipe(take(1)),
|
|
41
|
-
this.jurisdictionService.getSelectedJurisdiction()
|
|
42
|
-
]).subscribe(([caseDetails, jurisdiction]) => {
|
|
43
|
-
if (caseDetails) {
|
|
44
|
-
this.caseTypeId = caseDetails?.case_type?.id;
|
|
45
|
-
}
|
|
46
|
-
if (jurisdiction) {
|
|
47
|
-
if (jurisdiction.currentCaseType) {
|
|
48
|
-
this.caseTypeId = jurisdiction.currentCaseType.id;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
//if the user refreshes on the case creation page the above logic will not work, we can get the caseTypeId from the URL
|
|
52
|
-
if (!this.caseTypeId) {
|
|
53
|
-
const url = window.location.pathname;
|
|
54
|
-
if (url.indexOf('/case-create/') > -1) {
|
|
55
|
-
const parts = url.split('/');
|
|
56
|
-
this.caseTypeId = parts[parts.indexOf('case-create') + 2];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
33
|
}
|
|
61
34
|
uploadFile(formData) {
|
|
62
35
|
const url = this.getDocStoreUrl();
|
|
@@ -134,32 +107,20 @@ export class DocumentManagementService {
|
|
|
134
107
|
return documentBinaryUrl.replace(remoteDocumentManagementPattern, this.getDocStoreUrl());
|
|
135
108
|
}
|
|
136
109
|
getDocStoreUrl() {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const isDocumentOnExclusionList = documentSecureModeCaseTypeExclusions?.includes(this.caseTypeId);
|
|
147
|
-
const documentSecureModeEnabled = this.appConfig.getDocumentSecureMode();
|
|
148
|
-
// if the documentSecureModeEnabled is false, return false
|
|
149
|
-
if (!documentSecureModeEnabled) {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
// if the documentSecureModeEnabled is true, and the case is not in the exclusion list, return true
|
|
153
|
-
if (documentSecureModeEnabled && !isDocumentOnExclusionList) {
|
|
154
|
-
return true;
|
|
155
|
-
}
|
|
156
|
-
// if documentSecureModeEnabled is true, and case is in the exclusion list, return false
|
|
157
|
-
return false;
|
|
110
|
+
let docStoreUrl = '';
|
|
111
|
+
this.caseNotifierService.caseView.subscribe((caseDetails) => {
|
|
112
|
+
const caseType = caseDetails?.case_type?.id;
|
|
113
|
+
const documentSecureModeCaseTypeExclusions = this.appConfig.getDocumentSecureModeCaseTypeExclusions()?.split(',');
|
|
114
|
+
const isDocumentOnExclusionList = documentSecureModeCaseTypeExclusions?.includes(caseType);
|
|
115
|
+
const documentSecureModeEnabled = this.appConfig.getDocumentSecureMode();
|
|
116
|
+
docStoreUrl = (documentSecureModeEnabled && !isDocumentOnExclusionList) ? this.appConfig.getDocumentManagementUrlV2() : this.appConfig.getDocumentManagementUrl();
|
|
117
|
+
}).unsubscribe();
|
|
118
|
+
return docStoreUrl;
|
|
158
119
|
}
|
|
159
|
-
static ɵfac = function DocumentManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DocumentManagementService)(i0.ɵɵinject(i1.HttpService), i0.ɵɵinject(i2.AbstractAppConfig), i0.ɵɵinject(i3.CaseNotifier)
|
|
120
|
+
static ɵfac = function DocumentManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DocumentManagementService)(i0.ɵɵinject(i1.HttpService), i0.ɵɵinject(i2.AbstractAppConfig), i0.ɵɵinject(i3.CaseNotifier)); };
|
|
160
121
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DocumentManagementService, factory: DocumentManagementService.ɵfac });
|
|
161
122
|
}
|
|
162
123
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DocumentManagementService, [{
|
|
163
124
|
type: Injectable
|
|
164
|
-
}], () => [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }, { type: i3.CaseNotifier }
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50L2RvY3VtZW50LW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQWtCLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7QUFHdkYsTUFBTSxPQUFPLHlCQUF5QjtJQXFCakI7SUFDQTtJQUNBO0lBQ0E7SUF2QlgsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLElBQUksR0FBRyxNQUFNLENBQUM7SUFDOUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLFVBQVUsR0FBRyxZQUFZLENBQUM7SUFDMUMsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFFcEMsc0hBQXNIO0lB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O1FBQzFELElBQUksQ0FBQyx5QkFBeUIsRUFBQyxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELG1HQUFtRztRQUNuRyxJQUFJLHlCQUF5QixJQUFJLENBQUMseUJBQXlCLEVBQUMsQ0FBQztZQUMzRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCx3RkFBd0Y7UUFDeEYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO21IQW5KVSx5QkFBeUI7Z0VBQXpCLHlCQUF5QixXQUF6Qix5QkFBeUI7O2lGQUF6Qix5QkFBeUI7Y0FEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIG1hcCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IERvY3VtZW50RGF0YSB9IGZyb20gJy4uLy4uL2RvbWFpbi9kb2N1bWVudC9kb2N1bWVudC1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cCc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2Uubm90aWZpZXInO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2p1cmlzZGljdGlvbi9qdXJpc2RpY3Rpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUERGID0gJ3BkZic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IElNQUdFID0gJ2ltYWdlJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV09SRCA9ICd3b3JkJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhDRUwgPSAnZXhjZWwnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQT1dFUlBPSU5UID0gJ3Bvd2VycG9pbnQnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBUWFQgPSAndHh0JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUlRGID0gJ3J0Zic7XG5cbiAgLy8gVGhpcyBkZWxheSBoYXMgYmVlbiBhZGRlZCB0byBnaXZlIGVub3VnaCB0aW1lIHRvIHRoZSB1c2VyIG9uIHRoZSBVSSB0byBzZWUgdGhlIGluZm8gbWVzc2FnZXMgb24gdGhlIGRvY3VtZW50IHVwbG9hZFxuICAvLyBmaWVsZCBmb3IgY2FzZXMgd2hlbiB1cGxvYWRzIGFyZSB2ZXJ5IGZhc3QuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJFU1BPTlNFX0RFTEFZID0gMTAwMDtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBpbWFnZXNMaXN0OiBzdHJpbmdbXSA9IFsnR0lGJywgJ0pQRycsICdKUEVHJywgJ1BORycsICdnaWYnLCAnanBnJywgJ2pwZWcnLCAncG5nJ107XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHdvcmRMaXN0OiBzdHJpbmdbXSA9IFsnRE9DJywgJ0RPQ1gnLCAnZG9jJywgJ2RvY3gnXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZXhjZWxMaXN0OiBzdHJpbmdbXSA9IFsnWExTJywgJ1hMU1gnLCAneGxzJywgJ3hsc3gnXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgcG93ZXJwb2ludExpc3Q6IHN0cmluZ1tdID0gWydQUFQnLCAnUFBUWCcsICdwcHQnLCAncHB0eCddO1xuXG4gIHByaXZhdGUgY2FzZVR5cGVJZDogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXJTZXJ2aWNlOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBqdXJpc2RpY3Rpb25TZXJ2aWNlOiBKdXJpc2RpY3Rpb25TZXJ2aWNlXG4gICkge1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jYXNlTm90aWZpZXJTZXJ2aWNlLmNhc2VWaWV3LnBpcGUodGFrZSgxKSksXG4gICAgICB0aGlzLmp1cmlzZGljdGlvblNlcnZpY2UuZ2V0U2VsZWN0ZWRKdXJpc2RpY3Rpb24oKVxuICAgIF0pLnN1YnNjcmliZSgoW2Nhc2VEZXRhaWxzLCBqdXJpc2RpY3Rpb25dKSA9PiB7XG4gICAgICBpZiAoY2FzZURldGFpbHMpIHtcbiAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0gY2FzZURldGFpbHM/LmNhc2VfdHlwZT8uaWQ7XG4gICAgICB9XG4gICAgICBpZiAoanVyaXNkaWN0aW9uKSB7XG4gICAgICAgIGlmIChqdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlKSB7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0ganVyaXNkaWN0aW9uLmN1cnJlbnRDYXNlVHlwZS5pZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy9pZiB0aGUgdXNlciByZWZyZXNoZXMgb24gdGhlIGNhc2UgY3JlYXRpb24gcGFnZSB0aGUgYWJvdmUgbG9naWMgd2lsbCBub3Qgd29yaywgd2UgY2FuIGdldCB0aGUgY2FzZVR5cGVJZCBmcm9tIHRoZSBVUkxcbiAgICAgIGlmICghdGhpcy5jYXNlVHlwZUlkKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCcvY2FzZS1jcmVhdGUvJykgPiAtMSkge1xuICAgICAgICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJyk7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0gcGFydHNbcGFydHMuaW5kZXhPZignY2FzZS1jcmVhdGUnKSArIDJdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBsb2FkRmlsZShmb3JtRGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0RG9jU3RvcmVVcmwoKTtcbiAgICAvLyBEbyBub3Qgc2V0IGFueSBoZWFkZXJzLCBzdWNoIGFzIFwiQWNjZXB0XCIgb3IgXCJDb250ZW50LVR5cGVcIiwgd2l0aCBudWxsIHZhbHVlczsgdGhpcyBpcyBub3QgcGVybWl0dGVkIHdpdGggdGhlXG4gICAgLy8gQW5ndWxhciBIdHRwQ2xpZW50IGluIEBhbmd1bGFyL2NvbW1vbi9odHRwLiBKdXN0IGNyZWF0ZSBhbmQgcGFzcyBhIG5ldyBIdHRwSGVhZGVycyBvYmplY3QuIEFuZ3VsYXIgd2lsbCBhZGQgdGhlXG4gICAgLy8gY29ycmVjdCBoZWFkZXJzIGFuZCB2YWx1ZXMgYXV0b21hdGljYWxseVxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGZvcm1EYXRhLCB7aGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknfSlcbiAgICAgIC5waXBlKGRlbGF5KERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUkVTUE9OU0VfREVMQVkpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZWRpYVZpZXdlckluZm8oZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1lZGlhVmlld2VySW5mbyA9IHtcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IHRoaXMudHJhbnNmb3JtRG9jdW1lbnRVcmwoZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2JpbmFyeV91cmwpLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSxcbiAgICAgIGNvbnRlbnRfdHlwZTogdGhpcy5nZXRDb250ZW50VHlwZShkb2N1bWVudEZpZWxkVmFsdWUpLFxuICAgICAgYW5ub3RhdGlvbl9hcGlfdXJsOiB0aGlzLmFwcENvbmZpZy5nZXRBbm5vdGF0aW9uQXBpVXJsKCksXG4gICAgICBjYXNlX2lkOiBkb2N1bWVudEZpZWxkVmFsdWUuaWQsXG4gICAgICBjYXNlX2p1cmlzZGljdGlvbjogZG9jdW1lbnRGaWVsZFZhbHVlLmp1cmlzZGljdGlvblxuICAgIH07XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG1lZGlhVmlld2VySW5mbyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udGVudFR5cGUoZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBmaWxlRXh0ZW5zaW9uID0gJzx1bmtub3duPic7XG4gICAgaWYgKGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKTtcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lLmxlbmd0aCkge1xuICAgICAgICBmaWxlRXh0ZW5zaW9uID0gJyc7XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID49IDApIHtcbiAgICAgICAgZmlsZUV4dGVuc2lvbiA9IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZS5zbGljZShwb3NpdGlvbiArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ltYWdlKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5JTUFHRTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXb3JkKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5XT1JEO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0V4Y2VsKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5FWENFTDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNQb3dlcnBvaW50KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5QT1dFUlBPSU5UO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAndHh0Jykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuVFhUO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncnRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUlRGO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncGRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUERGO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmlsZUV4dGVuc2lvbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNJbWFnZShpbWFnZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLmltYWdlc0xpc3QuZmluZChlID0+IGUgPT09IGltYWdlVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc1dvcmQod29yZFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLndvcmRMaXN0LmZpbmQoZSA9PiBlID09PSB3b3JkVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc0V4Y2VsKGV4Y2VsVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuZXhjZWxMaXN0LmZpbmQoZSA9PiBlID09PSBleGNlbFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNQb3dlcnBvaW50KHBvd2VycG9pbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5wb3dlcnBvaW50TGlzdC5maW5kKGUgPT4gZSA9PT0gcG93ZXJwb2ludFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybURvY3VtZW50VXJsKGRvY3VtZW50QmluYXJ5VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlbW90ZUhyc1BhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZUhyc1VybCgpKTtcbiAgICBkb2N1bWVudEJpbmFyeVVybCA9IGRvY3VtZW50QmluYXJ5VXJsLnJlcGxhY2UocmVtb3RlSHJzUGF0dGVybiwgdGhpcy5hcHBDb25maWcuZ2V0SHJzVXJsKCkpO1xuICAgIGNvbnN0IHJlbW90ZURvY3VtZW50TWFuYWdlbWVudFBhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZURvY3VtZW50TWFuYWdlbWVudFVybCgpKTtcbiAgICByZXR1cm4gZG9jdW1lbnRCaW5hcnlVcmwucmVwbGFjZShyZW1vdGVEb2N1bWVudE1hbmFnZW1lbnRQYXR0ZXJuLCB0aGlzLmdldERvY1N0b3JlVXJsKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb2NTdG9yZVVybCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzRG9jdW1lbnRTZWN1cmVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcHBDb25maWcuZ2V0RG9jdW1lbnRNYW5hZ2VtZW50VXJsVjIoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50TWFuYWdlbWVudFVybCgpO1xuICB9XG5cbiAgLy8gcmV0dXJuIGZhbHNlID09IGRvY3VtZW50IHNob3VsZCBub3QgdXNlIENEQU1cbiAgLy8gcmV0dXJuIHRydWUgPT0gZG9jdW1lbnQgc2hvdWxkIHVzZSBDREFNXG4gIHB1YmxpYyBpc0RvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZG9jdW1lbnRTZWN1cmVNb2RlQ2FzZVR5cGVFeGNsdXNpb25zID0gdGhpcy5hcHBDb25maWcuZ2V0Q2RhbUV4Y2x1c2lvbkxpc3QoKT8uc3BsaXQoJywnKTtcbiAgICBjb25zdCBpc0RvY3VtZW50T25FeGNsdXNpb25MaXN0ID0gZG9jdW1lbnRTZWN1cmVNb2RlQ2FzZVR5cGVFeGNsdXNpb25zPy5pbmNsdWRlcyh0aGlzLmNhc2VUeXBlSWQpO1xuICAgIGNvbnN0IGRvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQgPSB0aGlzLmFwcENvbmZpZy5nZXREb2N1bWVudFNlY3VyZU1vZGUoKTtcbiAgICAvLyBpZiB0aGUgZG9jdW1lbnRTZWN1cmVNb2RlRW5hYmxlZCBpcyBmYWxzZSwgcmV0dXJuIGZhbHNlXG4gICAgaWYgKCFkb2N1bWVudFNlY3VyZU1vZGVFbmFibGVkKXtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gaWYgdGhlIGRvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQgaXMgdHJ1ZSwgYW5kIHRoZSBjYXNlIGlzIG5vdCBpbiB0aGUgZXhjbHVzaW9uIGxpc3QsIHJldHVybiB0cnVlXG4gICAgaWYgKGRvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQgJiYgIWlzRG9jdW1lbnRPbkV4Y2x1c2lvbkxpc3Qpe1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIGlmIGRvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQgaXMgdHJ1ZSwgYW5kIGNhc2UgaXMgaW4gdGhlIGV4Y2x1c2lvbiBsaXN0LCByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
125
|
+
}], () => [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }, { type: i3.CaseNotifier }], null); })();
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50L2RvY3VtZW50LW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBR25GLE1BQU0sT0FBTyx5QkFBeUI7SUFrQlA7SUFBb0M7SUFBK0M7SUFqQnhHLE1BQU0sQ0FBVSxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQzVCLE1BQU0sQ0FBVSxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLE1BQU0sQ0FBVSxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBQzlCLE1BQU0sQ0FBVSxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLE1BQU0sQ0FBVSxVQUFVLEdBQUcsWUFBWSxDQUFDO0lBQzFDLE1BQU0sQ0FBVSxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQzVCLE1BQU0sQ0FBVSxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBRXBDLHNIQUFzSDtJQUN0SCw4Q0FBOEM7SUFDdEMsTUFBTSxDQUFVLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFFdEMsTUFBTSxDQUFVLFVBQVUsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFB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QUFDLHdCQUF3QixFQUFFLENBQUM7UUFDcEssQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzttSEF6R1UseUJBQXlCO2dFQUF6Qix5QkFBeUIsV0FBekIseUJBQXlCOztpRkFBekIseUJBQXlCO2NBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IERvY3VtZW50RGF0YSB9IGZyb20gJy4uLy4uL2RvbWFpbi9kb2N1bWVudC9kb2N1bWVudC1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cCc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2Uubm90aWZpZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFBERiA9ICdwZGYnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBJTUFHRSA9ICdpbWFnZSc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdPUkQgPSAnd29yZCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYQ0VMID0gJ2V4Y2VsJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUE9XRVJQT0lOVCA9ICdwb3dlcnBvaW50JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVFhUID0gJ3R4dCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJURiA9ICdydGYnO1xuXG4gIC8vIFRoaXMgZGVsYXkgaGFzIGJlZW4gYWRkZWQgdG8gZ2l2ZSBlbm91Z2ggdGltZSB0byB0aGUgdXNlciBvbiB0aGUgVUkgdG8gc2VlIHRoZSBpbmZvIG1lc3NhZ2VzIG9uIHRoZSBkb2N1bWVudCB1cGxvYWRcbiAgLy8gZmllbGQgZm9yIGNhc2VzIHdoZW4gdXBsb2FkcyBhcmUgdmVyeSBmYXN0LlxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSRVNQT05TRV9ERUxBWSA9IDEwMDA7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaW1hZ2VzTGlzdDogc3RyaW5nW10gPSBbJ0dJRicsICdKUEcnLCAnSlBFRycsICdQTkcnLCAnZ2lmJywgJ2pwZycsICdqcGVnJywgJ3BuZyddO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB3b3JkTGlzdDogc3RyaW5nW10gPSBbJ0RPQycsICdET0NYJywgJ2RvYycsICdkb2N4J107XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGV4Y2VsTGlzdDogc3RyaW5nW10gPSBbJ1hMUycsICdYTFNYJywgJ3hscycsICd4bHN4J107XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHBvd2VycG9pbnRMaXN0OiBzdHJpbmdbXSA9IFsnUFBUJywgJ1BQVFgnLCAncHB0JywgJ3BwdHgnXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyU2VydmljZTogQ2FzZU5vdGlmaWVyKSB7fVxuXG4gIHB1YmxpYyB1cGxvYWRGaWxlKGZvcm1EYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXREb2NTdG9yZVVybCgpO1xuICAgIC8vIERvIG5vdCBzZXQgYW55IGhlYWRlcnMsIHN1Y2ggYXMgXCJBY2NlcHRcIiBvciBcIkNvbnRlbnQtVHlwZVwiLCB3aXRoIG51bGwgdmFsdWVzOyB0aGlzIGlzIG5vdCBwZXJtaXR0ZWQgd2l0aCB0aGVcbiAgICAvLyBBbmd1bGFyIEh0dHBDbGllbnQgaW4gQGFuZ3VsYXIvY29tbW9uL2h0dHAuIEp1c3QgY3JlYXRlIGFuZCBwYXNzIGEgbmV3IEh0dHBIZWFkZXJzIG9iamVjdC4gQW5ndWxhciB3aWxsIGFkZCB0aGVcbiAgICAvLyBjb3JyZWN0IGhlYWRlcnMgYW5kIHZhbHVlcyBhdXRvbWF0aWNhbGx5XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHVybCwgZm9ybURhdGEsIHtoZWFkZXJzLCBvYnNlcnZlOiAnYm9keSd9KVxuICAgICAgLnBpcGUoZGVsYXkoRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5SRVNQT05TRV9ERUxBWSkpO1xuICB9XG5cbiAgcHVibGljIGdldE1lZGlhVmlld2VySW5mbyhkb2N1bWVudEZpZWxkVmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWVkaWFWaWV3ZXJJbmZvID0ge1xuICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiB0aGlzLnRyYW5zZm9ybURvY3VtZW50VXJsKGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9iaW5hcnlfdXJsKSxcbiAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSxcbiAgICAgICAgY29udGVudF90eXBlOiB0aGlzLmdldENvbnRlbnRUeXBlKGRvY3VtZW50RmllbGRWYWx1ZSksXG4gICAgICAgIGFubm90YXRpb25fYXBpX3VybDogdGhpcy5hcHBDb25maWcuZ2V0QW5ub3RhdGlvbkFwaVVybCgpLFxuICAgICAgICBjYXNlX2lkOiBkb2N1bWVudEZpZWxkVmFsdWUuaWQsXG4gICAgICAgIGNhc2VfanVyaXNkaWN0aW9uOiBkb2N1bWVudEZpZWxkVmFsdWUuanVyaXNkaWN0aW9uXG4gICAgICB9O1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShtZWRpYVZpZXdlckluZm8pO1xuICB9XG5cbiAgcHVibGljIGdldENvbnRlbnRUeXBlKGRvY3VtZW50RmllbGRWYWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBsZXQgZmlsZUV4dGVuc2lvbiA9ICc8dW5rbm93bj4nO1xuICAgIGlmIChkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICBpZiAocG9zaXRpb24gPT09IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZS5sZW5ndGgpIHtcbiAgICAgICAgZmlsZUV4dGVuc2lvbiA9ICcnO1xuICAgICAgfSBlbHNlIGlmIChwb3NpdGlvbiA+PSAwKSB7XG4gICAgICAgIGZpbGVFeHRlbnNpb24gPSBkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUuc2xpY2UocG9zaXRpb24gKyAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuaXNJbWFnZShmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuSU1BR0U7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzV29yZChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuV09SRDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNFeGNlbChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuRVhDRUw7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzUG93ZXJwb2ludChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUE9XRVJQT0lOVDtcbiAgICB9IGVsc2UgaWYgKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSA9PT0gJ3R4dCcpIHtcbiAgICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLlRYVDtcbiAgICB9IGVsc2UgaWYgKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSA9PT0gJ3J0ZicpIHtcbiAgICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLlJURjtcbiAgICB9IGVsc2UgaWYgKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSA9PT0gJ3BkZicpIHtcbiAgICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLlBERjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpbGVFeHRlbnNpb247XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzSW1hZ2UoaW1hZ2VUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5pbWFnZXNMaXN0LmZpbmQoZSA9PiBlID09PSBpbWFnZVR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNXb3JkKHdvcmRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS53b3JkTGlzdC5maW5kKGUgPT4gZSA9PT0gd29yZFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNFeGNlbChleGNlbFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLmV4Y2VsTGlzdC5maW5kKGUgPT4gZSA9PT0gZXhjZWxUeXBlKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGlzUG93ZXJwb2ludChwb3dlcnBvaW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UucG93ZXJwb2ludExpc3QuZmluZChlID0+IGUgPT09IHBvd2VycG9pbnRUeXBlKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1Eb2N1bWVudFVybChkb2N1bWVudEJpbmFyeVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZW1vdGVIcnNQYXR0ZXJuID0gbmV3IFJlZ0V4cCh0aGlzLmFwcENvbmZpZy5nZXRSZW1vdGVIcnNVcmwoKSk7XG4gICAgZG9jdW1lbnRCaW5hcnlVcmwgPSBkb2N1bWVudEJpbmFyeVVybC5yZXBsYWNlKHJlbW90ZUhyc1BhdHRlcm4sIHRoaXMuYXBwQ29uZmlnLmdldEhyc1VybCgpKTtcbiAgICBjb25zdCByZW1vdGVEb2N1bWVudE1hbmFnZW1lbnRQYXR0ZXJuID0gbmV3IFJlZ0V4cCh0aGlzLmFwcENvbmZpZy5nZXRSZW1vdGVEb2N1bWVudE1hbmFnZW1lbnRVcmwoKSk7XG4gICAgcmV0dXJuIGRvY3VtZW50QmluYXJ5VXJsLnJlcGxhY2UocmVtb3RlRG9jdW1lbnRNYW5hZ2VtZW50UGF0dGVybiwgdGhpcy5nZXREb2NTdG9yZVVybCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RG9jU3RvcmVVcmwoKTogc3RyaW5nIHtcbiAgICBsZXQgZG9jU3RvcmVVcmwgPSAnJztcbiAgICB0aGlzLmNhc2VOb3RpZmllclNlcnZpY2UuY2FzZVZpZXcuc3Vic2NyaWJlKChjYXNlRGV0YWlscykgPT4ge1xuICAgICAgY29uc3QgY2FzZVR5cGUgPSBjYXNlRGV0YWlscz8uY2FzZV90eXBlPy5pZDtcbiAgICAgIGNvbnN0IGRvY3VtZW50U2VjdXJlTW9kZUNhc2VUeXBlRXhjbHVzaW9ucyA9IHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50U2VjdXJlTW9kZUNhc2VUeXBlRXhjbHVzaW9ucygpPy5zcGxpdCgnLCcpO1xuICAgICAgY29uc3QgaXNEb2N1bWVudE9uRXhjbHVzaW9uTGlzdCA9IGRvY3VtZW50U2VjdXJlTW9kZUNhc2VUeXBlRXhjbHVzaW9ucz8uaW5jbHVkZXMoY2FzZVR5cGUpO1xuICAgICAgY29uc3QgZG9jdW1lbnRTZWN1cmVNb2RlRW5hYmxlZCA9IHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50U2VjdXJlTW9kZSgpO1xuICAgICAgZG9jU3RvcmVVcmwgPSAoZG9jdW1lbnRTZWN1cmVNb2RlRW5hYmxlZCAmJiAhaXNEb2N1bWVudE9uRXhjbHVzaW9uTGlzdCkgPyB0aGlzLmFwcENvbmZpZy5nZXREb2N1bWVudE1hbmFnZW1lbnRVcmxWMigpIDogdGhpcy5hcHBDb25maWcuZ2V0RG9jdW1lbnRNYW5hZ2VtZW50VXJsKCk7XG4gICAgfSkudW5zdWJzY3JpYmUoKTtcbiAgICByZXR1cm4gZG9jU3RvcmVVcmw7XG4gIH1cbn1cbiJdfQ==
|