@hmcts/ccd-case-ui-toolkit 7.2.58-update-all-error-message-1 → 7.2.59-3552
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/shared/components/palette/case-file-view/case-file-view-field.component.mjs +4 -30
- package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +14 -9
- package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +4 -6
- package/esm2022/lib/shared/services/document-management/document-management.service.mjs +16 -35
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +113 -150
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts +0 -1
- package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/document/write-document-field.component.d.ts +1 -0
- package/lib/shared/components/palette/document/write-document-field.component.d.ts.map +1 -1
- package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts.map +1 -1
- package/lib/shared/services/document-management/document-management.service.d.ts +2 -6
- package/lib/shared/services/document-management/document-management.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,21 +1,14 @@
|
|
|
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
|
-
import { CaseNotifier } from '../../components/case-editor/services/case.notifier';
|
|
8
|
-
import { JurisdictionService } from '../../services/jurisdiction/jurisdiction.service';
|
|
9
6
|
import * as i0 from "@angular/core";
|
|
10
7
|
import * as i1 from "../http";
|
|
11
8
|
import * as i2 from "../../../app.config";
|
|
12
|
-
import * as i3 from "../../components/case-editor/services/case.notifier";
|
|
13
|
-
import * as i4 from "../../services/jurisdiction/jurisdiction.service";
|
|
14
9
|
export class DocumentManagementService {
|
|
15
10
|
http;
|
|
16
11
|
appConfig;
|
|
17
|
-
caseNotifierService;
|
|
18
|
-
jurisdictionService;
|
|
19
12
|
static PDF = 'pdf';
|
|
20
13
|
static IMAGE = 'image';
|
|
21
14
|
static WORD = 'word';
|
|
@@ -31,32 +24,21 @@ export class DocumentManagementService {
|
|
|
31
24
|
static excelList = ['XLS', 'XLSX', 'xls', 'xlsx'];
|
|
32
25
|
static powerpointList = ['PPT', 'PPTX', 'ppt', 'pptx'];
|
|
33
26
|
caseTypeId = '';
|
|
34
|
-
constructor(http, appConfig
|
|
27
|
+
constructor(http, appConfig) {
|
|
35
28
|
this.http = http;
|
|
36
29
|
this.appConfig = appConfig;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
}
|
|
30
|
+
const currUrl = window.location.pathname;
|
|
31
|
+
if (currUrl.includes('/case-details/')) {
|
|
32
|
+
this.caseTypeId = currUrl.split('/')[4];
|
|
33
|
+
}
|
|
34
|
+
console.log(this.caseTypeId);
|
|
35
|
+
//if the user refreshes on the case creation page the above logic will not work, we can get the caseTypeId from the URL
|
|
36
|
+
if (!this.caseTypeId) {
|
|
37
|
+
if (currUrl.indexOf('/case-create/') > -1) {
|
|
38
|
+
const parts = currUrl.split('/');
|
|
39
|
+
this.caseTypeId = parts[parts.indexOf('case-create') + 2];
|
|
58
40
|
}
|
|
59
|
-
}
|
|
41
|
+
}
|
|
60
42
|
}
|
|
61
43
|
uploadFile(formData) {
|
|
62
44
|
const url = this.getDocStoreUrl();
|
|
@@ -145,17 +127,16 @@ export class DocumentManagementService {
|
|
|
145
127
|
isDocumentSecureModeEnabled() {
|
|
146
128
|
const documentSecureModeCaseTypeExclusions = this.appConfig.getCdamExclusionList()?.split(',');
|
|
147
129
|
const isDocumentOnExclusionList = documentSecureModeCaseTypeExclusions?.includes(this.caseTypeId);
|
|
148
|
-
this.appConfig.logMessage(`isDocumentOnExclusionList: ${isDocumentOnExclusionList}`);
|
|
149
130
|
if (!isDocumentOnExclusionList) {
|
|
150
131
|
return true;
|
|
151
132
|
}
|
|
152
133
|
// if documentSecureModeEnabled is true, and case is in the exclusion list, return false
|
|
153
134
|
return false;
|
|
154
135
|
}
|
|
155
|
-
static ɵfac = function DocumentManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DocumentManagementService)(i0.ɵɵinject(i1.HttpService), i0.ɵɵinject(i2.AbstractAppConfig)
|
|
136
|
+
static ɵfac = function DocumentManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DocumentManagementService)(i0.ɵɵinject(i1.HttpService), i0.ɵɵinject(i2.AbstractAppConfig)); };
|
|
156
137
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DocumentManagementService, factory: DocumentManagementService.ɵfac });
|
|
157
138
|
}
|
|
158
139
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DocumentManagementService, [{
|
|
159
140
|
type: Injectable
|
|
160
|
-
}], () => [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50L2RvY3VtZW50LW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQWtCLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7QUFHdkYsTUFBTSxPQUFPLHlCQUF5QjtJQXFCakI7SUFDQTtJQUNBO0lBQ0E7SUF2QlgsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLElBQUksR0FBRyxNQUFNLENBQUM7SUFDOUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLFVBQVUsR0FBRyxZQUFZLENBQUM7SUFDMUMsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFFcEMsc0hBQXNIO0lB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LENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyx5QkFBeUIsRUFBQyxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELHdGQUF3RjtRQUN4RixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7bUhBL0lVLHlCQUF5QjtnRUFBekIseUJBQXlCLFdBQXpCLHlCQUF5Qjs7aUZBQXpCLHlCQUF5QjtjQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgRG9jdW1lbnREYXRhIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RvY3VtZW50L2RvY3VtZW50LWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9odHRwJztcbmltcG9ydCB7IENhc2VOb3RpZmllciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZS5ub3RpZmllcic7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvanVyaXNkaWN0aW9uL2p1cmlzZGljdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQREYgPSAncGRmJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgSU1BR0UgPSAnaW1hZ2UnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXT1JEID0gJ3dvcmQnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBFWENFTCA9ICdleGNlbCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFBPV0VSUE9JTlQgPSAncG93ZXJwb2ludCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRYVCA9ICd0eHQnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSVEYgPSAncnRmJztcblxuICAvLyBUaGlzIGRlbGF5IGhhcyBiZWVuIGFkZGVkIHRvIGdpdmUgZW5vdWdoIHRpbWUgdG8gdGhlIHVzZXIgb24gdGhlIFVJIHRvIHNlZSB0aGUgaW5mbyBtZXNzYWdlcyBvbiB0aGUgZG9jdW1lbnQgdXBsb2FkXG4gIC8vIGZpZWxkIGZvciBjYXNlcyB3aGVuIHVwbG9hZHMgYXJlIHZlcnkgZmFzdC5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUkVTUE9OU0VfREVMQVkgPSAxMDAwO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGltYWdlc0xpc3Q6IHN0cmluZ1tdID0gWydHSUYnLCAnSlBHJywgJ0pQRUcnLCAnUE5HJywgJ2dpZicsICdqcGcnLCAnanBlZycsICdwbmcnXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgd29yZExpc3Q6IHN0cmluZ1tdID0gWydET0MnLCAnRE9DWCcsICdkb2MnLCAnZG9jeCddO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBleGNlbExpc3Q6IHN0cmluZ1tdID0gWydYTFMnLCAnWExTWCcsICd4bHMnLCAneGxzeCddO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBwb3dlcnBvaW50TGlzdDogc3RyaW5nW10gPSBbJ1BQVCcsICdQUFRYJywgJ3BwdCcsICdwcHR4J107XG5cbiAgcHJpdmF0ZSBjYXNlVHlwZUlkOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VOb3RpZmllclNlcnZpY2U6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNhc2VOb3RpZmllclNlcnZpY2UuY2FzZVZpZXcucGlwZSh0YWtlKDEpKSxcbiAgICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5nZXRTZWxlY3RlZEp1cmlzZGljdGlvbigpXG4gICAgXSkuc3Vic2NyaWJlKChbY2FzZURldGFpbHMsIGp1cmlzZGljdGlvbl0pID0+IHtcbiAgICAgIGlmIChjYXNlRGV0YWlscykge1xuICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBjYXNlRGV0YWlscz8uY2FzZV90eXBlPy5pZDtcbiAgICAgIH1cbiAgICAgIGlmIChqdXJpc2RpY3Rpb24pIHtcbiAgICAgICAgaWYgKGp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGUpIHtcbiAgICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBqdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlLmlkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvL2lmIHRoZSB1c2VyIHJlZnJlc2hlcyBvbiB0aGUgY2FzZSBjcmVhdGlvbiBwYWdlIHRoZSBhYm92ZSBsb2dpYyB3aWxsIG5vdCB3b3JrLCB3ZSBjYW4gZ2V0IHRoZSBjYXNlVHlwZUlkIGZyb20gdGhlIFVSTFxuICAgICAgaWYgKCF0aGlzLmNhc2VUeXBlSWQpIHtcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xuICAgICAgICBpZiAodXJsLmluZGV4T2YoJy9jYXNlLWNyZWF0ZS8nKSA+IC0xKSB7XG4gICAgICAgICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKTtcbiAgICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBwYXJ0c1twYXJ0cy5pbmRleE9mKCdjYXNlLWNyZWF0ZScpICsgMl07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGxvYWRGaWxlKGZvcm1EYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXREb2NTdG9yZVVybCgpO1xuICAgIC8vIERvIG5vdCBzZXQgYW55IGhlYWRlcnMsIHN1Y2ggYXMgXCJBY2NlcHRcIiBvciBcIkNvbnRlbnQtVHlwZVwiLCB3aXRoIG51bGwgdmFsdWVzOyB0aGlzIGlzIG5vdCBwZXJtaXR0ZWQgd2l0aCB0aGVcbiAgICAvLyBBbmd1bGFyIEh0dHBDbGllbnQgaW4gQGFuZ3VsYXIvY29tbW9uL2h0dHAuIEp1c3QgY3JlYXRlIGFuZCBwYXNzIGEgbmV3IEh0dHBIZWFkZXJzIG9iamVjdC4gQW5ndWxhciB3aWxsIGFkZCB0aGVcbiAgICAvLyBjb3JyZWN0IGhlYWRlcnMgYW5kIHZhbHVlcyBhdXRvbWF0aWNhbGx5XG4gICAgdGhpcy5hcHBDb25maWcubG9nTWVzc2FnZShgVXBsb2FkaW5nIGRvY3VtZW50IGZvciBjYXNlIHR5cGU6ICR7dGhpcy5jYXNlVHlwZUlkfSwgd2l0aCB1cmw6ICR7dXJsfWApO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGZvcm1EYXRhLCB7aGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknfSlcbiAgICAgIC5waXBlKGRlbGF5KERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUkVTUE9OU0VfREVMQVkpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZWRpYVZpZXdlckluZm8oZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1lZGlhVmlld2VySW5mbyA9IHtcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IHRoaXMudHJhbnNmb3JtRG9jdW1lbnRVcmwoZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2JpbmFyeV91cmwpLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSxcbiAgICAgIGNvbnRlbnRfdHlwZTogdGhpcy5nZXRDb250ZW50VHlwZShkb2N1bWVudEZpZWxkVmFsdWUpLFxuICAgICAgYW5ub3RhdGlvbl9hcGlfdXJsOiB0aGlzLmFwcENvbmZpZy5nZXRBbm5vdGF0aW9uQXBpVXJsKCksXG4gICAgICBjYXNlX2lkOiBkb2N1bWVudEZpZWxkVmFsdWUuaWQsXG4gICAgICBjYXNlX2p1cmlzZGljdGlvbjogZG9jdW1lbnRGaWVsZFZhbHVlLmp1cmlzZGljdGlvblxuICAgIH07XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG1lZGlhVmlld2VySW5mbyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udGVudFR5cGUoZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBmaWxlRXh0ZW5zaW9uID0gJzx1bmtub3duPic7XG4gICAgaWYgKGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKTtcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lLmxlbmd0aCkge1xuICAgICAgICBmaWxlRXh0ZW5zaW9uID0gJyc7XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID49IDApIHtcbiAgICAgICAgZmlsZUV4dGVuc2lvbiA9IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZS5zbGljZShwb3NpdGlvbiArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ltYWdlKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5JTUFHRTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXb3JkKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5XT1JEO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0V4Y2VsKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5FWENFTDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNQb3dlcnBvaW50KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5QT1dFUlBPSU5UO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAndHh0Jykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuVFhUO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncnRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUlRGO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncGRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUERGO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmlsZUV4dGVuc2lvbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNJbWFnZShpbWFnZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLmltYWdlc0xpc3QuZmluZChlID0+IGUgPT09IGltYWdlVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc1dvcmQod29yZFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLndvcmRMaXN0LmZpbmQoZSA9PiBlID09PSB3b3JkVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc0V4Y2VsKGV4Y2VsVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuZXhjZWxMaXN0LmZpbmQoZSA9PiBlID09PSBleGNlbFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNQb3dlcnBvaW50KHBvd2VycG9pbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5wb3dlcnBvaW50TGlzdC5maW5kKGUgPT4gZSA9PT0gcG93ZXJwb2ludFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybURvY3VtZW50VXJsKGRvY3VtZW50QmluYXJ5VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlbW90ZUhyc1BhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZUhyc1VybCgpKTtcbiAgICBkb2N1bWVudEJpbmFyeVVybCA9IGRvY3VtZW50QmluYXJ5VXJsLnJlcGxhY2UocmVtb3RlSHJzUGF0dGVybiwgdGhpcy5hcHBDb25maWcuZ2V0SHJzVXJsKCkpO1xuICAgIGNvbnN0IHJlbW90ZURvY3VtZW50TWFuYWdlbWVudFBhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZURvY3VtZW50TWFuYWdlbWVudFVybCgpKTtcbiAgICByZXR1cm4gZG9jdW1lbnRCaW5hcnlVcmwucmVwbGFjZShyZW1vdGVEb2N1bWVudE1hbmFnZW1lbnRQYXR0ZXJuLCB0aGlzLmdldERvY1N0b3JlVXJsKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb2NTdG9yZVVybCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzRG9jdW1lbnRTZWN1cmVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcHBDb25maWcuZ2V0RG9jdW1lbnRNYW5hZ2VtZW50VXJsVjIoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50TWFuYWdlbWVudFVybCgpO1xuICB9XG5cbiAgLy8gcmV0dXJuIGZhbHNlID09IGRvY3VtZW50IHNob3VsZCBub3QgdXNlIENEQU1cbiAgLy8gcmV0dXJuIHRydWUgPT0gZG9jdW1lbnQgc2hvdWxkIHVzZSBDREFNXG4gIHB1YmxpYyBpc0RvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZG9jdW1lbnRTZWN1cmVNb2RlQ2FzZVR5cGVFeGNsdXNpb25zID0gdGhpcy5hcHBDb25maWcuZ2V0Q2RhbUV4Y2x1c2lvbkxpc3QoKT8uc3BsaXQoJywnKTtcbiAgICBjb25zdCBpc0RvY3VtZW50T25FeGNsdXNpb25MaXN0ID0gZG9jdW1lbnRTZWN1cmVNb2RlQ2FzZVR5cGVFeGNsdXNpb25zPy5pbmNsdWRlcyh0aGlzLmNhc2VUeXBlSWQpO1xuICAgIHRoaXMuYXBwQ29uZmlnLmxvZ01lc3NhZ2UoYGlzRG9jdW1lbnRPbkV4Y2x1c2lvbkxpc3Q6ICR7aXNEb2N1bWVudE9uRXhjbHVzaW9uTGlzdH1gKTtcbiAgICBpZiAoIWlzRG9jdW1lbnRPbkV4Y2x1c2lvbkxpc3Qpe1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIGlmIGRvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQgaXMgdHJ1ZSwgYW5kIGNhc2UgaXMgaW4gdGhlIGV4Y2x1c2lvbiBsaXN0LCByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
141
|
+
}], () => [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }], null); })();
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50L2RvY3VtZW50LW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQUd0QyxNQUFNLE9BQU8seUJBQXlCO0lBcUJqQjtJQUNBO0lBckJYLE1BQU0sQ0FBVSxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQzVCLE1BQU0sQ0FBVSxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLE1BQU0sQ0FBVSxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBQzlCLE1BQU0sQ0FBVSxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLE1BQU0sQ0FBVSxVQUFVLEdBQUcsWUFBWSxDQUFDO0lBQzFDLE1BQU0sQ0FBVSxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQzVCLE1BQU0sQ0FBVSxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBRXBDLHNIQUFzSDtJQUN0SCw4Q0FBOEM7SUFDdEMsTUFBTSxDQUFVLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFFdEMsTUFBTSxDQUFVLFVBQVUsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFL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RUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUFFLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsMENBQTBDO0lBQ25DLDJCQUEyQjtRQUNoQyxNQUFNLG9DQUFvQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0YsTUFBTSx5QkFBeUIsR0FBRyxvQ0FBb0MsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyx5QkFBeUIsRUFBQyxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELHdGQUF3RjtRQUN4RixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7bUhBbklVLHlCQUF5QjtnRUFBekIseUJBQXlCLFdBQXpCLHlCQUF5Qjs7aUZBQXpCLHlCQUF5QjtjQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBEb2N1bWVudERhdGEgfSBmcm9tICcuLi8uLi9kb21haW4vZG9jdW1lbnQvZG9jdW1lbnQtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2h0dHAnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFBERiA9ICdwZGYnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBJTUFHRSA9ICdpbWFnZSc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdPUkQgPSAnd29yZCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYQ0VMID0gJ2V4Y2VsJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUE9XRVJQT0lOVCA9ICdwb3dlcnBvaW50JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVFhUID0gJ3R4dCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJURiA9ICdydGYnO1xuXG4gIC8vIFRoaXMgZGVsYXkgaGFzIGJlZW4gYWRkZWQgdG8gZ2l2ZSBlbm91Z2ggdGltZSB0byB0aGUgdXNlciBvbiB0aGUgVUkgdG8gc2VlIHRoZSBpbmZvIG1lc3NhZ2VzIG9uIHRoZSBkb2N1bWVudCB1cGxvYWRcbiAgLy8gZmllbGQgZm9yIGNhc2VzIHdoZW4gdXBsb2FkcyBhcmUgdmVyeSBmYXN0LlxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSRVNQT05TRV9ERUxBWSA9IDEwMDA7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaW1hZ2VzTGlzdDogc3RyaW5nW10gPSBbJ0dJRicsICdKUEcnLCAnSlBFRycsICdQTkcnLCAnZ2lmJywgJ2pwZycsICdqcGVnJywgJ3BuZyddO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB3b3JkTGlzdDogc3RyaW5nW10gPSBbJ0RPQycsICdET0NYJywgJ2RvYycsICdkb2N4J107XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGV4Y2VsTGlzdDogc3RyaW5nW10gPSBbJ1hMUycsICdYTFNYJywgJ3hscycsICd4bHN4J107XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHBvd2VycG9pbnRMaXN0OiBzdHJpbmdbXSA9IFsnUFBUJywgJ1BQVFgnLCAncHB0JywgJ3BwdHgnXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNhc2VUeXBlSWQ6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnXG4gICkge1xuICAgIGNvbnN0IGN1cnJVcmwgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgaWYgKGN1cnJVcmwuaW5jbHVkZXMoJy9jYXNlLWRldGFpbHMvJykpIHtcbiAgICAgIHRoaXMuY2FzZVR5cGVJZCA9IGN1cnJVcmwuc3BsaXQoJy8nKVs0XTtcbiAgICB9XG4gICAgY29uc29sZS5sb2codGhpcy5jYXNlVHlwZUlkKTtcbiAgICAvL2lmIHRoZSB1c2VyIHJlZnJlc2hlcyBvbiB0aGUgY2FzZSBjcmVhdGlvbiBwYWdlIHRoZSBhYm92ZSBsb2dpYyB3aWxsIG5vdCB3b3JrLCB3ZSBjYW4gZ2V0IHRoZSBjYXNlVHlwZUlkIGZyb20gdGhlIFVSTFxuICAgIGlmICghdGhpcy5jYXNlVHlwZUlkKSB7XG4gICAgICBpZiAoY3VyclVybC5pbmRleE9mKCcvY2FzZS1jcmVhdGUvJykgPiAtMSkge1xuICAgICAgICBjb25zdCBwYXJ0cyA9IGN1cnJVcmwuc3BsaXQoJy8nKTtcbiAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0gcGFydHNbcGFydHMuaW5kZXhPZignY2FzZS1jcmVhdGUnKSArIDJdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGxvYWRGaWxlKGZvcm1EYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXREb2NTdG9yZVVybCgpO1xuICAgIC8vIERvIG5vdCBzZXQgYW55IGhlYWRlcnMsIHN1Y2ggYXMgXCJBY2NlcHRcIiBvciBcIkNvbnRlbnQtVHlwZVwiLCB3aXRoIG51bGwgdmFsdWVzOyB0aGlzIGlzIG5vdCBwZXJtaXR0ZWQgd2l0aCB0aGVcbiAgICAvLyBBbmd1bGFyIEh0dHBDbGllbnQgaW4gQGFuZ3VsYXIvY29tbW9uL2h0dHAuIEp1c3QgY3JlYXRlIGFuZCBwYXNzIGEgbmV3IEh0dHBIZWFkZXJzIG9iamVjdC4gQW5ndWxhciB3aWxsIGFkZCB0aGVcbiAgICAvLyBjb3JyZWN0IGhlYWRlcnMgYW5kIHZhbHVlcyBhdXRvbWF0aWNhbGx5XG4gICAgdGhpcy5hcHBDb25maWcubG9nTWVzc2FnZShgVXBsb2FkaW5nIGRvY3VtZW50IGZvciBjYXNlIHR5cGU6ICR7dGhpcy5jYXNlVHlwZUlkfSwgd2l0aCB1cmw6ICR7dXJsfWApO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGZvcm1EYXRhLCB7aGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknfSlcbiAgICAgIC5waXBlKGRlbGF5KERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUkVTUE9OU0VfREVMQVkpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZWRpYVZpZXdlckluZm8oZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1lZGlhVmlld2VySW5mbyA9IHtcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IHRoaXMudHJhbnNmb3JtRG9jdW1lbnRVcmwoZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2JpbmFyeV91cmwpLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSxcbiAgICAgIGNvbnRlbnRfdHlwZTogdGhpcy5nZXRDb250ZW50VHlwZShkb2N1bWVudEZpZWxkVmFsdWUpLFxuICAgICAgYW5ub3RhdGlvbl9hcGlfdXJsOiB0aGlzLmFwcENvbmZpZy5nZXRBbm5vdGF0aW9uQXBpVXJsKCksXG4gICAgICBjYXNlX2lkOiBkb2N1bWVudEZpZWxkVmFsdWUuaWQsXG4gICAgICBjYXNlX2p1cmlzZGljdGlvbjogZG9jdW1lbnRGaWVsZFZhbHVlLmp1cmlzZGljdGlvblxuICAgIH07XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG1lZGlhVmlld2VySW5mbyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udGVudFR5cGUoZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBmaWxlRXh0ZW5zaW9uID0gJzx1bmtub3duPic7XG4gICAgaWYgKGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKTtcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lLmxlbmd0aCkge1xuICAgICAgICBmaWxlRXh0ZW5zaW9uID0gJyc7XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID49IDApIHtcbiAgICAgICAgZmlsZUV4dGVuc2lvbiA9IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZS5zbGljZShwb3NpdGlvbiArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ltYWdlKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5JTUFHRTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXb3JkKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5XT1JEO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0V4Y2VsKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5FWENFTDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNQb3dlcnBvaW50KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5QT1dFUlBPSU5UO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAndHh0Jykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuVFhUO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncnRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUlRGO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncGRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUERGO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmlsZUV4dGVuc2lvbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNJbWFnZShpbWFnZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLmltYWdlc0xpc3QuZmluZChlID0+IGUgPT09IGltYWdlVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc1dvcmQod29yZFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLndvcmRMaXN0LmZpbmQoZSA9PiBlID09PSB3b3JkVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc0V4Y2VsKGV4Y2VsVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuZXhjZWxMaXN0LmZpbmQoZSA9PiBlID09PSBleGNlbFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNQb3dlcnBvaW50KHBvd2VycG9pbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5wb3dlcnBvaW50TGlzdC5maW5kKGUgPT4gZSA9PT0gcG93ZXJwb2ludFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybURvY3VtZW50VXJsKGRvY3VtZW50QmluYXJ5VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlbW90ZUhyc1BhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZUhyc1VybCgpKTtcbiAgICBkb2N1bWVudEJpbmFyeVVybCA9IGRvY3VtZW50QmluYXJ5VXJsLnJlcGxhY2UocmVtb3RlSHJzUGF0dGVybiwgdGhpcy5hcHBDb25maWcuZ2V0SHJzVXJsKCkpO1xuICAgIGNvbnN0IHJlbW90ZURvY3VtZW50TWFuYWdlbWVudFBhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZURvY3VtZW50TWFuYWdlbWVudFVybCgpKTtcbiAgICByZXR1cm4gZG9jdW1lbnRCaW5hcnlVcmwucmVwbGFjZShyZW1vdGVEb2N1bWVudE1hbmFnZW1lbnRQYXR0ZXJuLCB0aGlzLmdldERvY1N0b3JlVXJsKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb2NTdG9yZVVybCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzRG9jdW1lbnRTZWN1cmVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcHBDb25maWcuZ2V0RG9jdW1lbnRNYW5hZ2VtZW50VXJsVjIoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50TWFuYWdlbWVudFVybCgpO1xuICB9XG5cbiAgLy8gcmV0dXJuIGZhbHNlID09IGRvY3VtZW50IHNob3VsZCBub3QgdXNlIENEQU1cbiAgLy8gcmV0dXJuIHRydWUgPT0gZG9jdW1lbnQgc2hvdWxkIHVzZSBDREFNXG4gIHB1YmxpYyBpc0RvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZG9jdW1lbnRTZWN1cmVNb2RlQ2FzZVR5cGVFeGNsdXNpb25zID0gdGhpcy5hcHBDb25maWcuZ2V0Q2RhbUV4Y2x1c2lvbkxpc3QoKT8uc3BsaXQoJywnKTtcbiAgICBjb25zdCBpc0RvY3VtZW50T25FeGNsdXNpb25MaXN0ID0gZG9jdW1lbnRTZWN1cmVNb2RlQ2FzZVR5cGVFeGNsdXNpb25zPy5pbmNsdWRlcyh0aGlzLmNhc2VUeXBlSWQpO1xuICAgIGlmICghaXNEb2N1bWVudE9uRXhjbHVzaW9uTGlzdCl7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gaWYgZG9jdW1lbnRTZWN1cmVNb2RlRW5hYmxlZCBpcyB0cnVlLCBhbmQgY2FzZSBpcyBpbiB0aGUgZXhjbHVzaW9uIGxpc3QsIHJldHVybiBmYWxzZVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -8,10 +8,10 @@ import * as i1$1 from '@angular/router';
|
|
|
8
8
|
import { RouterModule, NavigationStart, NavigationEnd } from '@angular/router';
|
|
9
9
|
import * as i4 from '@angular/forms';
|
|
10
10
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormArray, FormGroup, FormControl, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
11
|
-
import { BehaviorSubject, throwError, Subject, EMPTY, Observable,
|
|
11
|
+
import { BehaviorSubject, throwError, Subject, EMPTY, Observable, skip, of, timer, forkJoin, fromEvent, combineLatest, Subscription } from 'rxjs';
|
|
12
12
|
import * as i1$2 from '@angular/common/http';
|
|
13
|
-
import { HttpErrorResponse, HttpHeaders, HttpParams
|
|
14
|
-
import { distinctUntilChanged, catchError, map, publish, refCount, switchMap, debounceTime,
|
|
13
|
+
import { HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
|
|
14
|
+
import { distinctUntilChanged, catchError, map, publish, refCount, switchMap, debounceTime, delay, finalize, timeout, mergeMap, retryWhen, tap, delayWhen, publishReplay, take, first, takeUntil, filter } from 'rxjs/operators';
|
|
15
15
|
import { polling } from 'rx-polling-hmcts';
|
|
16
16
|
import { Type, Exclude, Expose, plainToClassFromExist, plainToClass } from 'class-transformer';
|
|
17
17
|
import moment from 'moment';
|
|
@@ -6533,11 +6533,8 @@ class LabelSubstitutorDirective {
|
|
|
6533
6533
|
this.initialHintText = this.caseField.hint_text;
|
|
6534
6534
|
this.caseField.originalLabel = this.caseField.label;
|
|
6535
6535
|
this.formGroup = this.formGroup || new FormGroup({});
|
|
6536
|
-
this.languageSubscription = this.rpxTranslationService.language$.subscribe(() => {
|
|
6537
|
-
|
|
6538
|
-
setTimeout(() => {
|
|
6539
|
-
this.onLanguageChange();
|
|
6540
|
-
}, 100);
|
|
6536
|
+
this.languageSubscription = this.rpxTranslationService.language$.pipe(skip(1)).subscribe(() => {
|
|
6537
|
+
this.onLanguageChange();
|
|
6541
6538
|
});
|
|
6542
6539
|
this.applySubstitutions();
|
|
6543
6540
|
}
|
|
@@ -7134,89 +7131,9 @@ class ReadCookieService {
|
|
|
7134
7131
|
args: [DOCUMENT]
|
|
7135
7132
|
}] }], null); })();
|
|
7136
7133
|
|
|
7137
|
-
class CaseNotifier {
|
|
7138
|
-
casesService;
|
|
7139
|
-
static CASE_NAME = 'caseNameHmctsInternal';
|
|
7140
|
-
static CASE_LOCATION = 'caseManagementLocation';
|
|
7141
|
-
caseViewSource = new BehaviorSubject(new CaseView());
|
|
7142
|
-
caseView = this.caseViewSource.asObservable();
|
|
7143
|
-
cachedCaseView;
|
|
7144
|
-
constructor(casesService) {
|
|
7145
|
-
this.casesService = casesService;
|
|
7146
|
-
}
|
|
7147
|
-
removeCachedCase() {
|
|
7148
|
-
this.cachedCaseView = null;
|
|
7149
|
-
}
|
|
7150
|
-
announceCase(c) {
|
|
7151
|
-
this.caseViewSource.next(c);
|
|
7152
|
-
}
|
|
7153
|
-
fetchAndRefresh(cid) {
|
|
7154
|
-
return this.casesService
|
|
7155
|
-
.getCaseViewV2(cid)
|
|
7156
|
-
.pipe(map(caseView => {
|
|
7157
|
-
this.cachedCaseView = plainToClassFromExist(new CaseView(), caseView);
|
|
7158
|
-
this.setBasicFields(this.cachedCaseView.tabs);
|
|
7159
|
-
this.announceCase(this.cachedCaseView);
|
|
7160
|
-
return this.cachedCaseView;
|
|
7161
|
-
}));
|
|
7162
|
-
}
|
|
7163
|
-
setBasicFields(tabs) {
|
|
7164
|
-
tabs.forEach((t) => {
|
|
7165
|
-
const caseName = t.fields.find(f => f.id === CaseNotifier.CASE_NAME);
|
|
7166
|
-
const caseLocation = t.fields.find(f => f.id === CaseNotifier.CASE_LOCATION);
|
|
7167
|
-
if (caseName || caseLocation) {
|
|
7168
|
-
this.cachedCaseView.basicFields = {
|
|
7169
|
-
caseNameHmctsInternal: caseName ? caseName.value : null,
|
|
7170
|
-
caseManagementLocation: caseLocation ? caseLocation.value : null
|
|
7171
|
-
};
|
|
7172
|
-
}
|
|
7173
|
-
});
|
|
7174
|
-
}
|
|
7175
|
-
static ɵfac = function CaseNotifier_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseNotifier)(i0.ɵɵinject(CasesService)); };
|
|
7176
|
-
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseNotifier, factory: CaseNotifier.ɵfac });
|
|
7177
|
-
}
|
|
7178
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseNotifier, [{
|
|
7179
|
-
type: Injectable
|
|
7180
|
-
}], () => [{ type: CasesService }], null); })();
|
|
7181
|
-
|
|
7182
|
-
class JurisdictionService {
|
|
7183
|
-
httpService;
|
|
7184
|
-
// We retain the Subject observable because subscribing code couldn't happen a null value
|
|
7185
|
-
selectedJurisdictionSource = new Subject();
|
|
7186
|
-
_selectedJurisdictionBS = new BehaviorSubject(null);
|
|
7187
|
-
selectedJurisdiction;
|
|
7188
|
-
constructor(httpService) {
|
|
7189
|
-
this.httpService = httpService;
|
|
7190
|
-
this.selectedJurisdiction = this.selectedJurisdictionSource.asObservable();
|
|
7191
|
-
}
|
|
7192
|
-
getJurisdictions() {
|
|
7193
|
-
return this.httpService.get('/aggregated/caseworkers/:uid/jurisdictions?access=read');
|
|
7194
|
-
}
|
|
7195
|
-
announceSelectedJurisdiction(jurisdiction) {
|
|
7196
|
-
this.selectedJurisdictionSource.next(jurisdiction);
|
|
7197
|
-
this._selectedJurisdictionBS.next(jurisdiction);
|
|
7198
|
-
}
|
|
7199
|
-
getSelectedJurisdiction() {
|
|
7200
|
-
return this._selectedJurisdictionBS;
|
|
7201
|
-
}
|
|
7202
|
-
searchJudicialUsers(searchTerm, serviceId) {
|
|
7203
|
-
return this.httpService.post('api/prd/judicial/getJudicialUsersSearch', { searchString: searchTerm, serviceCode: serviceId });
|
|
7204
|
-
}
|
|
7205
|
-
searchJudicialUsersByPersonalCodes(personalCodes) {
|
|
7206
|
-
return this.httpService.post('api/prd/judicial/searchJudicialUserByPersonalCodes', { personal_code: personalCodes });
|
|
7207
|
-
}
|
|
7208
|
-
static ɵfac = function JurisdictionService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || JurisdictionService)(i0.ɵɵinject(HttpService)); };
|
|
7209
|
-
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: JurisdictionService, factory: JurisdictionService.ɵfac });
|
|
7210
|
-
}
|
|
7211
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JurisdictionService, [{
|
|
7212
|
-
type: Injectable
|
|
7213
|
-
}], () => [{ type: HttpService }], null); })();
|
|
7214
|
-
|
|
7215
7134
|
class DocumentManagementService {
|
|
7216
7135
|
http;
|
|
7217
7136
|
appConfig;
|
|
7218
|
-
caseNotifierService;
|
|
7219
|
-
jurisdictionService;
|
|
7220
7137
|
static PDF = 'pdf';
|
|
7221
7138
|
static IMAGE = 'image';
|
|
7222
7139
|
static WORD = 'word';
|
|
@@ -7232,32 +7149,21 @@ class DocumentManagementService {
|
|
|
7232
7149
|
static excelList = ['XLS', 'XLSX', 'xls', 'xlsx'];
|
|
7233
7150
|
static powerpointList = ['PPT', 'PPTX', 'ppt', 'pptx'];
|
|
7234
7151
|
caseTypeId = '';
|
|
7235
|
-
constructor(http, appConfig
|
|
7152
|
+
constructor(http, appConfig) {
|
|
7236
7153
|
this.http = http;
|
|
7237
7154
|
this.appConfig = appConfig;
|
|
7238
|
-
|
|
7239
|
-
|
|
7240
|
-
|
|
7241
|
-
|
|
7242
|
-
|
|
7243
|
-
|
|
7244
|
-
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
if (jurisdiction.currentCaseType) {
|
|
7249
|
-
this.caseTypeId = jurisdiction.currentCaseType.id;
|
|
7250
|
-
}
|
|
7251
|
-
}
|
|
7252
|
-
//if the user refreshes on the case creation page the above logic will not work, we can get the caseTypeId from the URL
|
|
7253
|
-
if (!this.caseTypeId) {
|
|
7254
|
-
const url = window.location.pathname;
|
|
7255
|
-
if (url.indexOf('/case-create/') > -1) {
|
|
7256
|
-
const parts = url.split('/');
|
|
7257
|
-
this.caseTypeId = parts[parts.indexOf('case-create') + 2];
|
|
7258
|
-
}
|
|
7155
|
+
const currUrl = window.location.pathname;
|
|
7156
|
+
if (currUrl.includes('/case-details/')) {
|
|
7157
|
+
this.caseTypeId = currUrl.split('/')[4];
|
|
7158
|
+
}
|
|
7159
|
+
console.log(this.caseTypeId);
|
|
7160
|
+
//if the user refreshes on the case creation page the above logic will not work, we can get the caseTypeId from the URL
|
|
7161
|
+
if (!this.caseTypeId) {
|
|
7162
|
+
if (currUrl.indexOf('/case-create/') > -1) {
|
|
7163
|
+
const parts = currUrl.split('/');
|
|
7164
|
+
this.caseTypeId = parts[parts.indexOf('case-create') + 2];
|
|
7259
7165
|
}
|
|
7260
|
-
}
|
|
7166
|
+
}
|
|
7261
7167
|
}
|
|
7262
7168
|
uploadFile(formData) {
|
|
7263
7169
|
const url = this.getDocStoreUrl();
|
|
@@ -7346,19 +7252,18 @@ class DocumentManagementService {
|
|
|
7346
7252
|
isDocumentSecureModeEnabled() {
|
|
7347
7253
|
const documentSecureModeCaseTypeExclusions = this.appConfig.getCdamExclusionList()?.split(',');
|
|
7348
7254
|
const isDocumentOnExclusionList = documentSecureModeCaseTypeExclusions?.includes(this.caseTypeId);
|
|
7349
|
-
this.appConfig.logMessage(`isDocumentOnExclusionList: ${isDocumentOnExclusionList}`);
|
|
7350
7255
|
if (!isDocumentOnExclusionList) {
|
|
7351
7256
|
return true;
|
|
7352
7257
|
}
|
|
7353
7258
|
// if documentSecureModeEnabled is true, and case is in the exclusion list, return false
|
|
7354
7259
|
return false;
|
|
7355
7260
|
}
|
|
7356
|
-
static ɵfac = function DocumentManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DocumentManagementService)(i0.ɵɵinject(HttpService), i0.ɵɵinject(AbstractAppConfig)
|
|
7261
|
+
static ɵfac = function DocumentManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DocumentManagementService)(i0.ɵɵinject(HttpService), i0.ɵɵinject(AbstractAppConfig)); };
|
|
7357
7262
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DocumentManagementService, factory: DocumentManagementService.ɵfac });
|
|
7358
7263
|
}
|
|
7359
7264
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DocumentManagementService, [{
|
|
7360
7265
|
type: Injectable
|
|
7361
|
-
}], () => [{ type: HttpService }, { type: AbstractAppConfig }
|
|
7266
|
+
}], () => [{ type: HttpService }, { type: AbstractAppConfig }], null); })();
|
|
7362
7267
|
|
|
7363
7268
|
class ErrorNotifierService {
|
|
7364
7269
|
errorSource = new BehaviorSubject(null);
|
|
@@ -7550,6 +7455,39 @@ class MultipageComponentStateService {
|
|
|
7550
7455
|
}]
|
|
7551
7456
|
}], null, null); })();
|
|
7552
7457
|
|
|
7458
|
+
class JurisdictionService {
|
|
7459
|
+
httpService;
|
|
7460
|
+
// We retain the Subject observable because subscribing code couldn't happen a null value
|
|
7461
|
+
selectedJurisdictionSource = new Subject();
|
|
7462
|
+
_selectedJurisdictionBS = new BehaviorSubject(null);
|
|
7463
|
+
selectedJurisdiction;
|
|
7464
|
+
constructor(httpService) {
|
|
7465
|
+
this.httpService = httpService;
|
|
7466
|
+
this.selectedJurisdiction = this.selectedJurisdictionSource.asObservable();
|
|
7467
|
+
}
|
|
7468
|
+
getJurisdictions() {
|
|
7469
|
+
return this.httpService.get('/aggregated/caseworkers/:uid/jurisdictions?access=read');
|
|
7470
|
+
}
|
|
7471
|
+
announceSelectedJurisdiction(jurisdiction) {
|
|
7472
|
+
this.selectedJurisdictionSource.next(jurisdiction);
|
|
7473
|
+
this._selectedJurisdictionBS.next(jurisdiction);
|
|
7474
|
+
}
|
|
7475
|
+
getSelectedJurisdiction() {
|
|
7476
|
+
return this._selectedJurisdictionBS;
|
|
7477
|
+
}
|
|
7478
|
+
searchJudicialUsers(searchTerm, serviceId) {
|
|
7479
|
+
return this.httpService.post('api/prd/judicial/getJudicialUsersSearch', { searchString: searchTerm, serviceCode: serviceId });
|
|
7480
|
+
}
|
|
7481
|
+
searchJudicialUsersByPersonalCodes(personalCodes) {
|
|
7482
|
+
return this.httpService.post('api/prd/judicial/searchJudicialUserByPersonalCodes', { personal_code: personalCodes });
|
|
7483
|
+
}
|
|
7484
|
+
static ɵfac = function JurisdictionService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || JurisdictionService)(i0.ɵɵinject(HttpService)); };
|
|
7485
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: JurisdictionService, factory: JurisdictionService.ɵfac });
|
|
7486
|
+
}
|
|
7487
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JurisdictionService, [{
|
|
7488
|
+
type: Injectable
|
|
7489
|
+
}], () => [{ type: HttpService }], null); })();
|
|
7490
|
+
|
|
7553
7491
|
class BannersService {
|
|
7554
7492
|
httpService;
|
|
7555
7493
|
appConfig;
|
|
@@ -8669,6 +8607,51 @@ class CaseworkerService {
|
|
|
8669
8607
|
type: Injectable
|
|
8670
8608
|
}], () => [{ type: HttpService }, { type: AbstractAppConfig }, { type: HttpErrorService }], null); })();
|
|
8671
8609
|
|
|
8610
|
+
class CaseNotifier {
|
|
8611
|
+
casesService;
|
|
8612
|
+
static CASE_NAME = 'caseNameHmctsInternal';
|
|
8613
|
+
static CASE_LOCATION = 'caseManagementLocation';
|
|
8614
|
+
caseViewSource = new BehaviorSubject(new CaseView());
|
|
8615
|
+
caseView = this.caseViewSource.asObservable();
|
|
8616
|
+
cachedCaseView;
|
|
8617
|
+
constructor(casesService) {
|
|
8618
|
+
this.casesService = casesService;
|
|
8619
|
+
}
|
|
8620
|
+
removeCachedCase() {
|
|
8621
|
+
this.cachedCaseView = null;
|
|
8622
|
+
}
|
|
8623
|
+
announceCase(c) {
|
|
8624
|
+
this.caseViewSource.next(c);
|
|
8625
|
+
}
|
|
8626
|
+
fetchAndRefresh(cid) {
|
|
8627
|
+
return this.casesService
|
|
8628
|
+
.getCaseViewV2(cid)
|
|
8629
|
+
.pipe(map(caseView => {
|
|
8630
|
+
this.cachedCaseView = plainToClassFromExist(new CaseView(), caseView);
|
|
8631
|
+
this.setBasicFields(this.cachedCaseView.tabs);
|
|
8632
|
+
this.announceCase(this.cachedCaseView);
|
|
8633
|
+
return this.cachedCaseView;
|
|
8634
|
+
}));
|
|
8635
|
+
}
|
|
8636
|
+
setBasicFields(tabs) {
|
|
8637
|
+
tabs.forEach((t) => {
|
|
8638
|
+
const caseName = t.fields.find(f => f.id === CaseNotifier.CASE_NAME);
|
|
8639
|
+
const caseLocation = t.fields.find(f => f.id === CaseNotifier.CASE_LOCATION);
|
|
8640
|
+
if (caseName || caseLocation) {
|
|
8641
|
+
this.cachedCaseView.basicFields = {
|
|
8642
|
+
caseNameHmctsInternal: caseName ? caseName.value : null,
|
|
8643
|
+
caseManagementLocation: caseLocation ? caseLocation.value : null
|
|
8644
|
+
};
|
|
8645
|
+
}
|
|
8646
|
+
});
|
|
8647
|
+
}
|
|
8648
|
+
static ɵfac = function CaseNotifier_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseNotifier)(i0.ɵɵinject(CasesService)); };
|
|
8649
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseNotifier, factory: CaseNotifier.ɵfac });
|
|
8650
|
+
}
|
|
8651
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseNotifier, [{
|
|
8652
|
+
type: Injectable
|
|
8653
|
+
}], () => [{ type: CasesService }], null); })();
|
|
8654
|
+
|
|
8672
8655
|
var Permissions;
|
|
8673
8656
|
(function (Permissions) {
|
|
8674
8657
|
Permissions["Own"] = "OWN";
|
|
@@ -13079,8 +13062,8 @@ class CaseFileViewFieldComponent {
|
|
|
13079
13062
|
this.caseFileViewService.updateDocumentCategory(cid, this.caseVersion, data.document.attribute_path, data.newCategory)
|
|
13080
13063
|
.pipe(finalize(() => {
|
|
13081
13064
|
this.loadingService.unregister(loadingToken);
|
|
13082
|
-
}), catchError((
|
|
13083
|
-
this.errorMessages = [this.
|
|
13065
|
+
}), catchError(() => {
|
|
13066
|
+
this.errorMessages = ['You do not have permission to move this document to the selected folder.'];
|
|
13084
13067
|
return of(null);
|
|
13085
13068
|
}))
|
|
13086
13069
|
.subscribe(res => {
|
|
@@ -13104,31 +13087,6 @@ class CaseFileViewFieldComponent {
|
|
|
13104
13087
|
isIcpEnabled() {
|
|
13105
13088
|
return this.icpEnabled && ((this.icp_jurisdictions?.length < 1) || this.icp_jurisdictions.includes(this.caseNotifier?.cachedCaseView?.case_type?.jurisdiction.id));
|
|
13106
13089
|
}
|
|
13107
|
-
moveDocumentError(err) {
|
|
13108
|
-
const defaultMsg = 'We couldn\'t move the document. Please try again.';
|
|
13109
|
-
if (!(err instanceof HttpErrorResponse)) {
|
|
13110
|
-
return defaultMsg;
|
|
13111
|
-
}
|
|
13112
|
-
switch (err.status) {
|
|
13113
|
-
case HttpStatusCode.BadRequest:
|
|
13114
|
-
// e.g. malformed PUT, invalid attribute_path, invalid target category
|
|
13115
|
-
return 'The request was invalid. Check the document path and destination folder.';
|
|
13116
|
-
case HttpStatusCode.Conflict:
|
|
13117
|
-
// optimistic concurrency / stale case version
|
|
13118
|
-
return 'This case changed since you opened it. Refresh and try again.';
|
|
13119
|
-
case HttpStatusCode.NotFound:
|
|
13120
|
-
return 'The document or destination folder could not be found.';
|
|
13121
|
-
case HttpStatusCode.Forbidden:
|
|
13122
|
-
case HttpStatusCode.Unauthorized:
|
|
13123
|
-
return 'You do not have permission to move this document to the selected folder.';
|
|
13124
|
-
case HttpStatusCode.ServiceUnavailable:
|
|
13125
|
-
case HttpStatusCode.GatewayTimeout:
|
|
13126
|
-
return 'The service is temporarily unavailable. Please try again in a moment.';
|
|
13127
|
-
default:
|
|
13128
|
-
// Any other status (including 500)
|
|
13129
|
-
return defaultMsg;
|
|
13130
|
-
}
|
|
13131
|
-
}
|
|
13132
13090
|
static ɵfac = function CaseFileViewFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseFileViewFieldComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseFileViewService), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(AbstractAppConfig)); };
|
|
13133
13091
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFieldComponent, selectors: [["ccd-case-file-view-field"]], decls: 3, vars: 3, consts: [[4, "ngIf"], ["class", "govuk-grid-column-two-thirds", 4, "ngIf"], ["id", "case-file-view-field-errors", "data-module", "govuk-error-summary", 1, "govuk-error-summary", "govuk-!-margin-bottom-4"], ["role", "alert"], [1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [4, "ngFor", "ngForOf"], ["type", "button", 1, "govuk-js-link"], [1, "govuk-grid-column-two-thirds"], [1, "govuk-heading-xl"], [1, "govuk-body"], [1, "govuk-heading-l"], ["id", "case-file-view", 1, "govuk-form-group"], [1, "document-tree-container"], [1, "document-tree-container__tree", 3, "clickedDocument", "moveDocument", "categoriesAndDocuments", "allowMoving"], [1, "slider"], [1, "media-viewer-container"], [3, "url", "downloadFileName", "showToolbar", "contentType", "enableAnnotations", "enableRedactions", "height", "caseId", "multimediaPlayerEnabled", "enableICP"]], template: function CaseFileViewFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
13134
13092
|
i0.ɵɵtemplate(0, CaseFileViewFieldComponent_ng_container_0_Template, 8, 1, "ng-container", 0)(1, CaseFileViewFieldComponent_div_1_Template, 5, 0, "div", 1)(2, CaseFileViewFieldComponent_div_2_Template, 9, 3, "div", 0);
|
|
@@ -13144,7 +13102,7 @@ class CaseFileViewFieldComponent {
|
|
|
13144
13102
|
type: Component,
|
|
13145
13103
|
args: [{ selector: 'ccd-case-file-view-field', template: "<ng-container *ngIf=\"errorMessages?.length\">\n <div\n id=\"case-file-view-field-errors\"\n class=\"govuk-error-summary govuk-!-margin-bottom-4\"\n data-module=\"govuk-error-summary\"\n >\n <div role=\"alert\">\n <h2 class=\"govuk-error-summary__title\">There is a problem</h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li *ngFor=\"let errorMessage of errorMessages\">\n <button type=\"button\" class=\"govuk-js-link\">{{ errorMessage }}</button>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</ng-container>\n\n<div\n *ngIf=\"getCategoriesAndDocumentsError\"\n class=\"govuk-grid-column-two-thirds\"\n>\n <h1 class=\"govuk-heading-xl\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\">Try again later.</p>\n</div>\n<div *ngIf=\"!getCategoriesAndDocumentsError\">\n <h2 class=\"govuk-heading-l\">Case file</h2>\n <div class=\"govuk-form-group\" id=\"case-file-view\">\n <!-- Document tree -->\n <div class=\"document-tree-container\">\n <ccd-case-file-view-folder \n class=\"document-tree-container__tree\"\n [categoriesAndDocuments]=\"categoriesAndDocuments$\"\n (clickedDocument)=\"setMediaViewerFile($event); resetErrorMessages()\" \n (moveDocument)=\"moveDocument($event)\"\n [allowMoving]=\"allowMoving\">\n </ccd-case-file-view-folder>\n </div>\n <!-- Slider -->\n <div class=\"slider\"></div>\n <!-- Media viewer -->\n <div class=\"media-viewer-container\">\n <ng-container *ngIf=\"currentDocument\">\n <mv-media-viewer\n [url]=\"currentDocument.document_binary_url\"\n [downloadFileName]=\"currentDocument.document_filename\"\n [showToolbar]=\"true\"\n [contentType]=\"currentDocument.content_type\"\n [enableAnnotations]=\"true\"\n [enableRedactions]=\"true\"\n [height]=\"'94.5vh'\"\n [caseId]=\"caseId\"\n [multimediaPlayerEnabled]=\"true\"\n [enableICP]=\"isIcpEnabled()\"\n >\n </mv-media-viewer>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: ["#case-file-view{display:flex;border:2px solid #C9C9C9;height:100vh;position:relative}#case-file-view .document-tree-container{background-color:#faf8f8;width:30%;min-height:400px;min-width:10%}#case-file-view .slider{width:.2%;background-color:#6b6b6b}#case-file-view .slider:hover,#case-file-view .slider:focus{cursor:col-resize}#case-file-view .media-viewer-container{background-color:#dee0e2;flex:1 1 0;overflow:hidden}\n"] }]
|
|
13146
13104
|
}], () => [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }, { type: SessionStorageService }, { type: CaseNotifier }, { type: AbstractAppConfig }], null); })();
|
|
13147
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFieldComponent, { className: "CaseFileViewFieldComponent", filePath: "lib/shared/components/palette/case-file-view/case-file-view-field.component.ts", lineNumber:
|
|
13105
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFieldComponent, { className: "CaseFileViewFieldComponent", filePath: "lib/shared/components/palette/case-file-view/case-file-view-field.component.ts", lineNumber: 17 }); })();
|
|
13148
13106
|
|
|
13149
13107
|
function ReadCaseFlagFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
13150
13108
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -15277,6 +15235,7 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15277
15235
|
jurisdictionId;
|
|
15278
15236
|
caseTypeId;
|
|
15279
15237
|
caseTypeExclusions;
|
|
15238
|
+
caseId;
|
|
15280
15239
|
// Should the file upload use CDAM
|
|
15281
15240
|
fileSecureModeOn = false;
|
|
15282
15241
|
constructor(appConfig, caseNotifier, documentManagement, dialog, fileUploadStateService, jurisdictionService) {
|
|
@@ -15290,19 +15249,20 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15290
15249
|
}
|
|
15291
15250
|
ngOnInit() {
|
|
15292
15251
|
// Wait for both observables to emit at least once
|
|
15252
|
+
const currUrl = window.location.pathname;
|
|
15253
|
+
if (currUrl.includes('/case-details/')) {
|
|
15254
|
+
this.caseTypeId = currUrl.split('/')[4];
|
|
15255
|
+
}
|
|
15293
15256
|
this.caseNotifierSubscription = combineLatest([
|
|
15294
15257
|
this.caseNotifier.caseView.pipe(take(1)),
|
|
15295
15258
|
this.jurisdictionService.getSelectedJurisdiction()
|
|
15296
15259
|
]).subscribe(([caseDetails, jurisdiction]) => {
|
|
15297
15260
|
if (caseDetails) {
|
|
15298
|
-
this.caseTypeId = caseDetails?.case_type?.id;
|
|
15299
15261
|
this.jurisdictionId = caseDetails?.case_type?.jurisdiction?.id;
|
|
15262
|
+
this.caseId = caseDetails?.case_id;
|
|
15300
15263
|
}
|
|
15301
15264
|
if (jurisdiction) {
|
|
15302
15265
|
this.jurisdictionId = jurisdiction.id;
|
|
15303
|
-
if (jurisdiction.currentCaseType) {
|
|
15304
|
-
this.caseTypeId = jurisdiction.currentCaseType.id;
|
|
15305
|
-
}
|
|
15306
15266
|
}
|
|
15307
15267
|
//if we havent set the value of caseTypeId yet, we can check if its in the url. e.g. case-creation
|
|
15308
15268
|
if (!this.caseTypeId) {
|
|
@@ -15315,12 +15275,8 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15315
15275
|
}
|
|
15316
15276
|
// use the documentManagement service to check if the document upload should use CDAM
|
|
15317
15277
|
if (this.documentManagement.isDocumentSecureModeEnabled()) {
|
|
15318
|
-
this.appConfig.logMessage(`CDAM is enabled for case with case ref:: ${caseDetails?.case_id}`);
|
|
15319
15278
|
this.fileSecureModeOn = true;
|
|
15320
15279
|
}
|
|
15321
|
-
else {
|
|
15322
|
-
this.appConfig.logMessage(`CDAM is disabled for case with case ref:: ${caseDetails?.case_id}`);
|
|
15323
|
-
}
|
|
15324
15280
|
this.dialogConfig = initDialog();
|
|
15325
15281
|
let document = this.caseField.value || { document_url: null, document_binary_url: null, document_filename: null };
|
|
15326
15282
|
document = this.fileSecureModeOn && !document.document_hash ? { ...document, document_hash: null } : document;
|
|
@@ -15554,6 +15510,13 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15554
15510
|
return documentUpload;
|
|
15555
15511
|
}
|
|
15556
15512
|
handleDocumentUploadResult(result) {
|
|
15513
|
+
// use the documentManagement service to check if the document upload should use CDAM
|
|
15514
|
+
if (this.documentManagement.isDocumentSecureModeEnabled()) {
|
|
15515
|
+
this.appConfig.logMessage(`CDAM is enabled for case with case ref:: ${this.caseId}`);
|
|
15516
|
+
}
|
|
15517
|
+
else {
|
|
15518
|
+
this.appConfig.logMessage(`CDAM is disabled for case with case ref:: ${this.caseId}`);
|
|
15519
|
+
}
|
|
15557
15520
|
if (!this.uploadedDocument) {
|
|
15558
15521
|
if (this.fileSecureModeOn) {
|
|
15559
15522
|
this.createDocumentForm({ document_url: null, document_binary_url: null, document_filename: null, document_hash: null });
|