@hmcts/ccd-case-ui-toolkit 7.2.0-cdam → 7.2.0-inputmode-numeric
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 +2 -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 +47 -51
- package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +4 -4
- package/esm2022/lib/shared/services/document-management/document-management.service.mjs +14 -38
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +100 -123
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/app.config.d.ts +2 -2
- package/lib/app.config.d.ts.map +1 -1
- package/lib/shared/components/palette/document/write-document-field.component.d.ts +1 -2
- package/lib/shared/components/palette/document/write-document-field.component.d.ts.map +1 -1
- package/lib/shared/services/document-management/document-management.service.d.ts +1 -4
- package/lib/shared/services/document-management/document-management.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -45,7 +45,7 @@ export class WriteNumberFieldComponent extends AbstractFieldWriteComponent {
|
|
|
45
45
|
this.numberControl = this.registerControl(new FormControl(this.caseField.value));
|
|
46
46
|
}
|
|
47
47
|
static ɵfac = /*@__PURE__*/ (() => { let ɵWriteNumberFieldComponent_BaseFactory; return function WriteNumberFieldComponent_Factory(__ngFactoryType__) { return (ɵWriteNumberFieldComponent_BaseFactory || (ɵWriteNumberFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(WriteNumberFieldComponent)))(__ngFactoryType__ || WriteNumberFieldComponent); }; })();
|
|
48
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteNumberFieldComponent, selectors: [["ccd-write-number-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 12, consts: [[1, "form-group", 3, "ngClass"], [3, "for"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], ["type", "
|
|
48
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteNumberFieldComponent, selectors: [["ccd-write-number-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 12, consts: [[1, "form-group", 3, "ngClass"], [3, "for"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], ["type", "text", "inputmode", "numeric", "pattern", "[0-9]*", 1, "form-control", "bottom-30", 3, "ngClass", "id", "formControl"], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function WriteNumberFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
49
49
|
i0.ɵɵelementStart(0, "div", 0)(1, "label", 1);
|
|
50
50
|
i0.ɵɵtemplate(2, WriteNumberFieldComponent_span_2_Template, 3, 3, "span", 2);
|
|
51
51
|
i0.ɵɵelementEnd();
|
|
@@ -64,11 +64,11 @@ export class WriteNumberFieldComponent extends AbstractFieldWriteComponent {
|
|
|
64
64
|
i0.ɵɵproperty("ngIf", ctx.numberControl.errors && ctx.numberControl.dirty);
|
|
65
65
|
i0.ɵɵadvance();
|
|
66
66
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1, ctx.numberControl.errors && ctx.numberControl.dirty))("id", ctx.id())("formControl", ctx.numberControl);
|
|
67
|
-
} }, dependencies: [i1.NgClass, i1.NgIf, i2.DefaultValueAccessor, i2.
|
|
67
|
+
} }, dependencies: [i1.NgClass, i1.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.PatternValidator, i2.FormControlDirective, i3.FieldLabelPipe, i4.FirstErrorPipe, i5.RpxTranslatePipe], encapsulation: 2 });
|
|
68
68
|
}
|
|
69
69
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteNumberFieldComponent, [{
|
|
70
70
|
type: Component,
|
|
71
|
-
args: [{ selector: 'ccd-write-number-field', template: "<div class=\"form-group\" [ngClass]=\"{'form-group-error': !numberControl.valid && numberControl.dirty}\">\n <label [for]=\"id()\">\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n </label>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"numberControl.errors && numberControl.dirty\">\n {{numberControl.errors | ccdFirstError:caseField.label}}\n </span>\n\n <input class=\"form-control bottom-30\" [ngClass]=\"{'govuk-input--error': numberControl.errors && numberControl.dirty}\"\n [id]=\"id()\" type=\"
|
|
71
|
+
args: [{ selector: 'ccd-write-number-field', template: "<div class=\"form-group\" [ngClass]=\"{'form-group-error': !numberControl.valid && numberControl.dirty}\">\n <label [for]=\"id()\">\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n </label>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"numberControl.errors && numberControl.dirty\">\n {{numberControl.errors | ccdFirstError:caseField.label}}\n </span>\n\n <input class=\"form-control bottom-30\" [ngClass]=\"{'govuk-input--error': numberControl.errors && numberControl.dirty}\"\n [id]=\"id()\" type=\"text\" inputmode=\"numeric\" pattern=\"[0-9]*\" [formControl]=\"numberControl\">\n</div>\n" }]
|
|
72
72
|
}], null, null); })();
|
|
73
73
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteNumberFieldComponent, { className: "WriteNumberFieldComponent", filePath: "lib/shared/components/palette/number/write-number-field.component.ts", lineNumber: 9 }); })();
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL251bWJlci93cml0ZS1udW1iZXItZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbnVtYmVyL3dyaXRlLW51bWJlci1maWVsZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7O0lDQXZGLCtCQUFpRDtJQUFBLFlBQTZCOztJQUFBLGlCQUFPOzs7SUFBcEMsY0FBNkI7SUFBN0IsNERBQTZCOzs7SUFFaEYsK0JBQW9EO0lBQUEsWUFBc0M7O0lBQUEsaUJBQU87OztJQUE3QyxjQUFzQztJQUF0QyxzRUFBc0M7OztJQUMxRiwrQkFBZ0Y7SUFDOUUsWUFDRjs7SUFBQSxpQkFBTzs7O0lBREwsY0FDRjtJQURFLDBHQUNGOztBRENGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwyQkFBMkI7SUFFakUsYUFBYSxDQUFjO0lBRTNCLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztJQUNsRyxDQUFDO2lSQU5VLHlCQUF5Qix5QkFBekIseUJBQXlCOzZEQUF6Qix5QkFBeUI7WUNQcEMsQUFERiw4QkFBc0csZUFDaEY7WUFDbEIsNEVBQWlEO1lBQ25ELGlCQUFRO1lBRVIsQUFEQSw0RUFBb0QsK0RBQzRCO1lBSWhGLDJCQUM0RjtZQUM5RixpQkFBTTs7WUFYa0IseUdBQTZFO1lBQzVGLGNBQVk7WUFBWiw4QkFBWTtZQUNTLGNBQXFCO1lBQXJCLDBDQUFxQjtZQUV4QixjQUF5QjtZQUF6Qiw4Q0FBeUI7WUFDckIsY0FBaUQ7WUFBakQsMEVBQWlEO1lBSXhDLGNBQStFO1lBQ3ZELEFBQTdELEFBRHFDLDBHQUErRSxnQkFDekcsa0NBQStFOzs7aUZERmhGLHlCQUF5QjtjQUpyQyxTQUFTOzJCQUNFLHdCQUF3Qjs7a0ZBR3ZCLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLW51bWJlci1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1udW1iZXItZmllbGQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVOdW1iZXJGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIG51bWJlckNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm51bWJlckNvbnRyb2wgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUNvbnRyb2wodGhpcy5jYXNlRmllbGQudmFsdWUpKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiAhbnVtYmVyQ29udHJvbC52YWxpZCAmJiBudW1iZXJDb250cm9sLmRpcnR5fVwiPlxuICA8bGFiZWwgW2Zvcl09XCJpZCgpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgKm5nSWY9XCJjYXNlRmllbGQubGFiZWxcIj57e2Nhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWx9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbiAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHQgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJudW1iZXJDb250cm9sLmVycm9ycyAmJiBudW1iZXJDb250cm9sLmRpcnR5XCI+XG4gICAge3tudW1iZXJDb250cm9sLmVycm9ycyB8IGNjZEZpcnN0RXJyb3I6Y2FzZUZpZWxkLmxhYmVsfX1cbiAgPC9zcGFuPlxuXG4gIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBib3R0b20tMzBcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IG51bWJlckNvbnRyb2wuZXJyb3JzICYmIG51bWJlckNvbnRyb2wuZGlydHl9XCJcbiAgIFtpZF09XCJpZCgpXCIgdHlwZT1cInRleHRcIiBpbnB1dG1vZGU9XCJudW1lcmljXCIgcGF0dGVybj1cIlswLTldKlwiIFtmb3JtQ29udHJvbF09XCJudW1iZXJDb250cm9sXCI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -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,17 +107,20 @@ export class DocumentManagementService {
|
|
|
134
107
|
return documentBinaryUrl.replace(remoteDocumentManagementPattern, this.getDocStoreUrl());
|
|
135
108
|
}
|
|
136
109
|
getDocStoreUrl() {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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;
|
|
143
119
|
}
|
|
144
|
-
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)); };
|
|
145
121
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DocumentManagementService, factory: DocumentManagementService.ɵfac });
|
|
146
122
|
}
|
|
147
123
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DocumentManagementService, [{
|
|
148
124
|
type: Injectable
|
|
149
|
-
}], () => [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }, { type: i3.CaseNotifier }
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50L2RvY3VtZW50LW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQWtCLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7QUFHdkYsTUFBTSxPQUFPLHlCQUF5QjtJQXFCakI7SUFDQTtJQUNBO0lBQ0E7SUF2QlgsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLElBQUksR0FBRyxNQUFNLENBQUM7SUFDOUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLFVBQVUsR0FBRyxZQUFZLENBQUM7SUFDMUMsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFFcEMsc0hBQXNIO0lB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eUI7Y0FEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIG1hcCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IERvY3VtZW50RGF0YSB9IGZyb20gJy4uLy4uL2RvbWFpbi9kb2N1bWVudC9kb2N1bWVudC1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cCc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2Uubm90aWZpZXInO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2p1cmlzZGljdGlvbi9qdXJpc2RpY3Rpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUERGID0gJ3BkZic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IElNQUdFID0gJ2ltYWdlJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV09SRCA9ICd3b3JkJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhDRUwgPSAnZXhjZWwnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQT1dFUlBPSU5UID0gJ3Bvd2VycG9pbnQnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBUWFQgPSAndHh0JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUlRGID0gJ3J0Zic7XG5cbiAgLy8gVGhpcyBkZWxheSBoYXMgYmVlbiBhZGRlZCB0byBnaXZlIGVub3VnaCB0aW1lIHRvIHRoZSB1c2VyIG9uIHRoZSBVSSB0byBzZWUgdGhlIGluZm8gbWVzc2FnZXMgb24gdGhlIGRvY3VtZW50IHVwbG9hZFxuICAvLyBmaWVsZCBmb3IgY2FzZXMgd2hlbiB1cGxvYWRzIGFyZSB2ZXJ5IGZhc3QuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJFU1BPTlNFX0RFTEFZID0gMTAwMDtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBpbWFnZXNMaXN0OiBzdHJpbmdbXSA9IFsnR0lGJywgJ0pQRycsICdKUEVHJywgJ1BORycsICdnaWYnLCAnanBnJywgJ2pwZWcnLCAncG5nJ107XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHdvcmRMaXN0OiBzdHJpbmdbXSA9IFsnRE9DJywgJ0RPQ1gnLCAnZG9jJywgJ2RvY3gnXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZXhjZWxMaXN0OiBzdHJpbmdbXSA9IFsnWExTJywgJ1hMU1gnLCAneGxzJywgJ3hsc3gnXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgcG93ZXJwb2ludExpc3Q6IHN0cmluZ1tdID0gWydQUFQnLCAnUFBUWCcsICdwcHQnLCAncHB0eCddO1xuXG4gIHByaXZhdGUgY2FzZVR5cGVJZDogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXJTZXJ2aWNlOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBqdXJpc2RpY3Rpb25TZXJ2aWNlOiBKdXJpc2RpY3Rpb25TZXJ2aWNlXG4gICkge1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jYXNlTm90aWZpZXJTZXJ2aWNlLmNhc2VWaWV3LnBpcGUodGFrZSgxKSksXG4gICAgICB0aGlzLmp1cmlzZGljdGlvblNlcnZpY2UuZ2V0U2VsZWN0ZWRKdXJpc2RpY3Rpb24oKVxuICAgIF0pLnN1YnNjcmliZSgoW2Nhc2VEZXRhaWxzLCBqdXJpc2RpY3Rpb25dKSA9PiB7XG4gICAgICBpZiAoY2FzZURldGFpbHMpIHtcbiAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0gY2FzZURldGFpbHM/LmNhc2VfdHlwZT8uaWQ7XG4gICAgICB9XG4gICAgICBpZiAoanVyaXNkaWN0aW9uKSB7XG4gICAgICAgIGlmIChqdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlKSB7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0ganVyaXNkaWN0aW9uLmN1cnJlbnRDYXNlVHlwZS5pZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy9pZiB0aGUgdXNlciByZWZyZXNoZXMgb24gdGhlIGNhc2UgY3JlYXRpb24gcGFnZSB0aGUgYWJvdmUgbG9naWMgd2lsbCBub3Qgd29yaywgd2UgY2FuIGdldCB0aGUgY2FzZVR5cGVJZCBmcm9tIHRoZSBVUkxcbiAgICAgIGlmICghdGhpcy5jYXNlVHlwZUlkKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCcvY2FzZS1jcmVhdGUvJykgPiAtMSkge1xuICAgICAgICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJyk7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0gcGFydHNbcGFydHMuaW5kZXhPZignY2FzZS1jcmVhdGUnKSArIDJdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBsb2FkRmlsZShmb3JtRGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0RG9jU3RvcmVVcmwoKTtcbiAgICAvLyBEbyBub3Qgc2V0IGFueSBoZWFkZXJzLCBzdWNoIGFzIFwiQWNjZXB0XCIgb3IgXCJDb250ZW50LVR5cGVcIiwgd2l0aCBudWxsIHZhbHVlczsgdGhpcyBpcyBub3QgcGVybWl0dGVkIHdpdGggdGhlXG4gICAgLy8gQW5ndWxhciBIdHRwQ2xpZW50IGluIEBhbmd1bGFyL2NvbW1vbi9odHRwLiBKdXN0IGNyZWF0ZSBhbmQgcGFzcyBhIG5ldyBIdHRwSGVhZGVycyBvYmplY3QuIEFuZ3VsYXIgd2lsbCBhZGQgdGhlXG4gICAgLy8gY29ycmVjdCBoZWFkZXJzIGFuZCB2YWx1ZXMgYXV0b21hdGljYWxseVxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGZvcm1EYXRhLCB7aGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknfSlcbiAgICAgIC5waXBlKGRlbGF5KERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUkVTUE9OU0VfREVMQVkpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZWRpYVZpZXdlckluZm8oZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1lZGlhVmlld2VySW5mbyA9IHtcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IHRoaXMudHJhbnNmb3JtRG9jdW1lbnRVcmwoZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2JpbmFyeV91cmwpLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSxcbiAgICAgIGNvbnRlbnRfdHlwZTogdGhpcy5nZXRDb250ZW50VHlwZShkb2N1bWVudEZpZWxkVmFsdWUpLFxuICAgICAgYW5ub3RhdGlvbl9hcGlfdXJsOiB0aGlzLmFwcENvbmZpZy5nZXRBbm5vdGF0aW9uQXBpVXJsKCksXG4gICAgICBjYXNlX2lkOiBkb2N1bWVudEZpZWxkVmFsdWUuaWQsXG4gICAgICBjYXNlX2p1cmlzZGljdGlvbjogZG9jdW1lbnRGaWVsZFZhbHVlLmp1cmlzZGljdGlvblxuICAgIH07XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG1lZGlhVmlld2VySW5mbyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udGVudFR5cGUoZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBmaWxlRXh0ZW5zaW9uID0gJzx1bmtub3duPic7XG4gICAgaWYgKGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKTtcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lLmxlbmd0aCkge1xuICAgICAgICBmaWxlRXh0ZW5zaW9uID0gJyc7XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID49IDApIHtcbiAgICAgICAgZmlsZUV4dGVuc2lvbiA9IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZS5zbGljZShwb3NpdGlvbiArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ltYWdlKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5JTUFHRTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXb3JkKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5XT1JEO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0V4Y2VsKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5FWENFTDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNQb3dlcnBvaW50KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5QT1dFUlBPSU5UO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAndHh0Jykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuVFhUO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncnRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUlRGO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncGRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUERGO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmlsZUV4dGVuc2lvbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNJbWFnZShpbWFnZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLmltYWdlc0xpc3QuZmluZChlID0+IGUgPT09IGltYWdlVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc1dvcmQod29yZFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLndvcmRMaXN0LmZpbmQoZSA9PiBlID09PSB3b3JkVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc0V4Y2VsKGV4Y2VsVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuZXhjZWxMaXN0LmZpbmQoZSA9PiBlID09PSBleGNlbFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNQb3dlcnBvaW50KHBvd2VycG9pbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5wb3dlcnBvaW50TGlzdC5maW5kKGUgPT4gZSA9PT0gcG93ZXJwb2ludFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybURvY3VtZW50VXJsKGRvY3VtZW50QmluYXJ5VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlbW90ZUhyc1BhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZUhyc1VybCgpKTtcbiAgICBkb2N1bWVudEJpbmFyeVVybCA9IGRvY3VtZW50QmluYXJ5VXJsLnJlcGxhY2UocmVtb3RlSHJzUGF0dGVybiwgdGhpcy5hcHBDb25maWcuZ2V0SHJzVXJsKCkpO1xuICAgIGNvbnN0IHJlbW90ZURvY3VtZW50TWFuYWdlbWVudFBhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZURvY3VtZW50TWFuYWdlbWVudFVybCgpKTtcbiAgICByZXR1cm4gZG9jdW1lbnRCaW5hcnlVcmwucmVwbGFjZShyZW1vdGVEb2N1bWVudE1hbmFnZW1lbnRQYXR0ZXJuLCB0aGlzLmdldERvY1N0b3JlVXJsKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb2NTdG9yZVVybCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRvY3VtZW50U2VjdXJlTW9kZUNhc2VUeXBlRXhjbHVzaW9ucyA9IHRoaXMuYXBwQ29uZmlnLmdldENkYW1FeGNsdXNpb25MaXN0KCk/LnNwbGl0KCcsJyk7XG4gICAgY29uc3QgaXNEb2N1bWVudE9uRXhjbHVzaW9uTGlzdCA9IGRvY3VtZW50U2VjdXJlTW9kZUNhc2VUeXBlRXhjbHVzaW9ucz8uaW5jbHVkZXModGhpcy5jYXNlVHlwZUlkKTtcbiAgICBjb25zdCBkb2N1bWVudFNlY3VyZU1vZGVFbmFibGVkID0gdGhpcy5hcHBDb25maWcuZ2V0RG9jdW1lbnRTZWN1cmVNb2RlKCk7XG4gICAgcmV0dXJuIChkb2N1bWVudFNlY3VyZU1vZGVFbmFibGVkICYmICFpc0RvY3VtZW50T25FeGNsdXNpb25MaXN0KVxuICAgICAgPyB0aGlzLmFwcENvbmZpZy5nZXREb2N1bWVudE1hbmFnZW1lbnRVcmxWMigpXG4gICAgICA6IHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50TWFuYWdlbWVudFVybCgpO1xuICB9XG59XG4iXX0=
|
|
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==
|
|
@@ -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, of,
|
|
11
|
+
import { BehaviorSubject, throwError, Subject, EMPTY, Observable, of, timer, forkJoin, fromEvent, Subscription, combineLatest } from 'rxjs';
|
|
12
12
|
import * as i1$2 from '@angular/common/http';
|
|
13
13
|
import { HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
|
|
14
|
-
import { distinctUntilChanged, catchError, map, publish, refCount, switchMap, debounceTime,
|
|
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';
|
|
@@ -661,7 +661,7 @@ class DateInputComponent {
|
|
|
661
661
|
useExisting: forwardRef(() => DateInputComponent),
|
|
662
662
|
multi: true
|
|
663
663
|
}
|
|
664
|
-
])], decls: 22, vars: 36, consts: [["dayInput", ""], ["monthInput", ""], ["yearInput", ""], ["hourInput", ""], ["minuteInput", ""], ["secondInput", ""], [1, "form-date"], [1, "form-group", "form-group-day"], [1, "form-label"], ["type", "text", "pattern", "[0-9]*", "inputmode", "numeric", 1, "form-control", 3, "change", "keyup", "focus", "id", "name", "value", "ngClass"], [1, "form-group", "form-group-month"], [1, "form-group", "form-group-year"], ["class", "form-group form-group-hour", 4, "ngIf"], ["class", "form-group form-group-minute", 4, "ngIf"], ["class", "form-group form-group-second", 4, "ngIf"], [1, "form-group", "form-group-hour"], ["type", "
|
|
664
|
+
])], decls: 22, vars: 36, consts: [["dayInput", ""], ["monthInput", ""], ["yearInput", ""], ["hourInput", ""], ["minuteInput", ""], ["secondInput", ""], [1, "form-date"], [1, "form-group", "form-group-day"], [1, "form-label"], ["type", "text", "pattern", "[0-9]*", "inputmode", "numeric", 1, "form-control", 3, "change", "keyup", "focus", "id", "name", "value", "ngClass"], [1, "form-group", "form-group-month"], [1, "form-group", "form-group-year"], ["class", "form-group form-group-hour", 4, "ngIf"], ["class", "form-group form-group-minute", 4, "ngIf"], ["class", "form-group form-group-second", 4, "ngIf"], [1, "form-group", "form-group-hour"], ["type", "text", "pattern", "[0-9]*", "inputmode", "numeric", 1, "form-control", 3, "input", "keyup", "focus", "id", "name", "value", "ngClass"], [1, "form-group", "form-group-minute"], [1, "form-group", "form-group-second"]], template: function DateInputComponent_Template(rf, ctx) { if (rf & 1) {
|
|
665
665
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
666
666
|
i0.ɵɵelementStart(0, "div", 6)(1, "div", 7)(2, "span", 8);
|
|
667
667
|
i0.ɵɵtext(3);
|
|
@@ -729,7 +729,7 @@ class DateInputComponent {
|
|
|
729
729
|
useExisting: forwardRef(() => DateInputComponent),
|
|
730
730
|
multi: true
|
|
731
731
|
}
|
|
732
|
-
], template: "<div class=\"form-date\">\n <div class=\"form-group form-group-day\">\n <span class=\"form-label\" [attr.id]=\"'day-label-'+dayId()\">{{'Day' | rpxTranslate}}</span>\n <input #dayInput\n class=\"form-control\"\n [id]=\"dayId()\"\n [name]=\"dayId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [attr.aria-labelledby]=\"'day-label-'+dayId()\"\n [value]=\"displayDay\"\n (change)=\"dayChange(dayInput.value)\"\n (keyup)=\"dayChange(dayInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-month\">\n <span class=\"form-label\" [attr.id]=\"'month-label-'+ monthId()\">{{'Month' | rpxTranslate}}</span>\n <input #monthInput\n class=\"form-control\"\n [id]=\"monthId()\"\n [name]=\"monthId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [attr.aria-labelledby]=\"'month-label-'+ monthId()\"\n [value]=\"displayMonth\"\n (change)=\"monthChange(monthInput.value)\"\n (keyup)=\"monthChange(monthInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-year\">\n <span class=\"form-label\" [attr.id]=\"'year-label-'+ yearId()\">{{'Year' | rpxTranslate}}</span>\n <input #yearInput\n class=\"form-control\"\n [id]=\"yearId()\"\n [name]=\"yearId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [attr.aria-labelledby]=\"'year-label-'+ yearId()\"\n [value]=\"displayYear\"\n (change)=\"yearChange(yearInput.value)\"\n (keyup)=\"yearChange(yearInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-hour\" *ngIf=\"isDateTime\">\n <span class=\"form-label\" [attr.id]=\"'hour-label-'+ hourId()\">{{'Hour' | rpxTranslate}}</span>\n <input #hourInput\n class=\"form-control\"\n [id]=\"hourId()\"\n [name]=\"hourId()\"\n type=\"
|
|
732
|
+
], template: "<div class=\"form-date\">\n <div class=\"form-group form-group-day\">\n <span class=\"form-label\" [attr.id]=\"'day-label-'+dayId()\">{{'Day' | rpxTranslate}}</span>\n <input #dayInput\n class=\"form-control\"\n [id]=\"dayId()\"\n [name]=\"dayId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [attr.aria-labelledby]=\"'day-label-'+dayId()\"\n [value]=\"displayDay\"\n (change)=\"dayChange(dayInput.value)\"\n (keyup)=\"dayChange(dayInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-month\">\n <span class=\"form-label\" [attr.id]=\"'month-label-'+ monthId()\">{{'Month' | rpxTranslate}}</span>\n <input #monthInput\n class=\"form-control\"\n [id]=\"monthId()\"\n [name]=\"monthId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [attr.aria-labelledby]=\"'month-label-'+ monthId()\"\n [value]=\"displayMonth\"\n (change)=\"monthChange(monthInput.value)\"\n (keyup)=\"monthChange(monthInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-year\">\n <span class=\"form-label\" [attr.id]=\"'year-label-'+ yearId()\">{{'Year' | rpxTranslate}}</span>\n <input #yearInput\n class=\"form-control\"\n [id]=\"yearId()\"\n [name]=\"yearId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [attr.aria-labelledby]=\"'year-label-'+ yearId()\"\n [value]=\"displayYear\"\n (change)=\"yearChange(yearInput.value)\"\n (keyup)=\"yearChange(yearInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-hour\" *ngIf=\"isDateTime\">\n <span class=\"form-label\" [attr.id]=\"'hour-label-'+ hourId()\">{{'Hour' | rpxTranslate}}</span>\n <input #hourInput\n class=\"form-control\"\n [id]=\"hourId()\"\n [name]=\"hourId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [attr.aria-labelledby]=\"'hour-label-'+ hourId()\"\n [value]=\"displayHour\"\n (input)=\"hourChange(hourInput.value)\"\n (keyup)=\"hourChange(hourInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-minute\" *ngIf=\"isDateTime\">\n <span class=\"form-label\" [attr.id]=\"'minute-label-'+ hourId()\">{{'Minute' | rpxTranslate}}</span>\n <input #minuteInput\n class=\"form-control\"\n [id]=\"minuteId()\"\n [name]=\"minuteId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [attr.aria-labelledby]=\"'minute-label-'+ minuteId()\"\n [value]=\"displayMinute\"\n (input)=\"minuteChange(minuteInput.value)\"\n (keyup)=\"minuteChange(minuteInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-second\" *ngIf=\"isDateTime\">\n <span class=\"form-label\" [attr.id]=\"'second-label-'+ secondId()\">{{'Second' | rpxTranslate}}</span>\n <input #secondInput\n class=\"form-control\"\n [id]=\"secondId()\"\n [name]=\"secondId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [attr.aria-labelledby]=\"'second-label-'+ secondId()\"\n [value]=\"displaySecond\"\n (input)=\"secondChange(secondInput.value)\"\n (keyup)=\"secondChange(secondInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n</div>\n" }]
|
|
733
733
|
}], null, { id: [{
|
|
734
734
|
type: Input
|
|
735
735
|
}], mandatory: [{
|
|
@@ -1280,7 +1280,7 @@ class CaseEditorConfig {
|
|
|
1280
1280
|
document_management_url_v2;
|
|
1281
1281
|
hrs_url;
|
|
1282
1282
|
document_management_secure_enabled;
|
|
1283
|
-
|
|
1283
|
+
documentSecureModeCaseTypeExclusions;
|
|
1284
1284
|
login_url;
|
|
1285
1285
|
oauth2_client_id;
|
|
1286
1286
|
postcode_lookup_url;
|
|
@@ -7112,44 +7112,10 @@ class CaseNotifier {
|
|
|
7112
7112
|
type: Injectable
|
|
7113
7113
|
}], () => [{ type: CasesService }], null); })();
|
|
7114
7114
|
|
|
7115
|
-
class JurisdictionService {
|
|
7116
|
-
httpService;
|
|
7117
|
-
// We retain the Subject observable because subscribing code couldn't happen a null value
|
|
7118
|
-
selectedJurisdictionSource = new Subject();
|
|
7119
|
-
_selectedJurisdictionBS = new BehaviorSubject(null);
|
|
7120
|
-
selectedJurisdiction;
|
|
7121
|
-
constructor(httpService) {
|
|
7122
|
-
this.httpService = httpService;
|
|
7123
|
-
this.selectedJurisdiction = this.selectedJurisdictionSource.asObservable();
|
|
7124
|
-
}
|
|
7125
|
-
getJurisdictions() {
|
|
7126
|
-
return this.httpService.get('/aggregated/caseworkers/:uid/jurisdictions?access=read');
|
|
7127
|
-
}
|
|
7128
|
-
announceSelectedJurisdiction(jurisdiction) {
|
|
7129
|
-
this.selectedJurisdictionSource.next(jurisdiction);
|
|
7130
|
-
this._selectedJurisdictionBS.next(jurisdiction);
|
|
7131
|
-
}
|
|
7132
|
-
getSelectedJurisdiction() {
|
|
7133
|
-
return this._selectedJurisdictionBS;
|
|
7134
|
-
}
|
|
7135
|
-
searchJudicialUsers(searchTerm, serviceId) {
|
|
7136
|
-
return this.httpService.post('api/prd/judicial/getJudicialUsersSearch', { searchString: searchTerm, serviceCode: serviceId });
|
|
7137
|
-
}
|
|
7138
|
-
searchJudicialUsersByPersonalCodes(personalCodes) {
|
|
7139
|
-
return this.httpService.post('api/prd/judicial/searchJudicialUserByPersonalCodes', { personal_code: personalCodes });
|
|
7140
|
-
}
|
|
7141
|
-
static ɵfac = function JurisdictionService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || JurisdictionService)(i0.ɵɵinject(HttpService)); };
|
|
7142
|
-
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: JurisdictionService, factory: JurisdictionService.ɵfac });
|
|
7143
|
-
}
|
|
7144
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JurisdictionService, [{
|
|
7145
|
-
type: Injectable
|
|
7146
|
-
}], () => [{ type: HttpService }], null); })();
|
|
7147
|
-
|
|
7148
7115
|
class DocumentManagementService {
|
|
7149
7116
|
http;
|
|
7150
7117
|
appConfig;
|
|
7151
7118
|
caseNotifierService;
|
|
7152
|
-
jurisdictionService;
|
|
7153
7119
|
static PDF = 'pdf';
|
|
7154
7120
|
static IMAGE = 'image';
|
|
7155
7121
|
static WORD = 'word';
|
|
@@ -7164,33 +7130,10 @@ class DocumentManagementService {
|
|
|
7164
7130
|
static wordList = ['DOC', 'DOCX', 'doc', 'docx'];
|
|
7165
7131
|
static excelList = ['XLS', 'XLSX', 'xls', 'xlsx'];
|
|
7166
7132
|
static powerpointList = ['PPT', 'PPTX', 'ppt', 'pptx'];
|
|
7167
|
-
|
|
7168
|
-
constructor(http, appConfig, caseNotifierService, jurisdictionService) {
|
|
7133
|
+
constructor(http, appConfig, caseNotifierService) {
|
|
7169
7134
|
this.http = http;
|
|
7170
7135
|
this.appConfig = appConfig;
|
|
7171
7136
|
this.caseNotifierService = caseNotifierService;
|
|
7172
|
-
this.jurisdictionService = jurisdictionService;
|
|
7173
|
-
combineLatest([
|
|
7174
|
-
this.caseNotifierService.caseView.pipe(take(1)),
|
|
7175
|
-
this.jurisdictionService.getSelectedJurisdiction()
|
|
7176
|
-
]).subscribe(([caseDetails, jurisdiction]) => {
|
|
7177
|
-
if (caseDetails) {
|
|
7178
|
-
this.caseTypeId = caseDetails?.case_type?.id;
|
|
7179
|
-
}
|
|
7180
|
-
if (jurisdiction) {
|
|
7181
|
-
if (jurisdiction.currentCaseType) {
|
|
7182
|
-
this.caseTypeId = jurisdiction.currentCaseType.id;
|
|
7183
|
-
}
|
|
7184
|
-
}
|
|
7185
|
-
//if the user refreshes on the case creation page the above logic will not work, we can get the caseTypeId from the URL
|
|
7186
|
-
if (!this.caseTypeId) {
|
|
7187
|
-
const url = window.location.pathname;
|
|
7188
|
-
if (url.indexOf('/case-create/') > -1) {
|
|
7189
|
-
const parts = url.split('/');
|
|
7190
|
-
this.caseTypeId = parts[parts.indexOf('case-create') + 2];
|
|
7191
|
-
}
|
|
7192
|
-
}
|
|
7193
|
-
});
|
|
7194
7137
|
}
|
|
7195
7138
|
uploadFile(formData) {
|
|
7196
7139
|
const url = this.getDocStoreUrl();
|
|
@@ -7268,19 +7211,22 @@ class DocumentManagementService {
|
|
|
7268
7211
|
return documentBinaryUrl.replace(remoteDocumentManagementPattern, this.getDocStoreUrl());
|
|
7269
7212
|
}
|
|
7270
7213
|
getDocStoreUrl() {
|
|
7271
|
-
|
|
7272
|
-
|
|
7273
|
-
|
|
7274
|
-
|
|
7275
|
-
|
|
7276
|
-
|
|
7277
|
-
|
|
7278
|
-
|
|
7214
|
+
let docStoreUrl = '';
|
|
7215
|
+
this.caseNotifierService.caseView.subscribe((caseDetails) => {
|
|
7216
|
+
const caseType = caseDetails?.case_type?.id;
|
|
7217
|
+
const documentSecureModeCaseTypeExclusions = this.appConfig.getDocumentSecureModeCaseTypeExclusions()?.split(',');
|
|
7218
|
+
const isDocumentOnExclusionList = documentSecureModeCaseTypeExclusions?.includes(caseType);
|
|
7219
|
+
const documentSecureModeEnabled = this.appConfig.getDocumentSecureMode();
|
|
7220
|
+
docStoreUrl = (documentSecureModeEnabled && !isDocumentOnExclusionList) ? this.appConfig.getDocumentManagementUrlV2() : this.appConfig.getDocumentManagementUrl();
|
|
7221
|
+
}).unsubscribe();
|
|
7222
|
+
return docStoreUrl;
|
|
7223
|
+
}
|
|
7224
|
+
static ɵfac = function DocumentManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DocumentManagementService)(i0.ɵɵinject(HttpService), i0.ɵɵinject(AbstractAppConfig), i0.ɵɵinject(CaseNotifier)); };
|
|
7279
7225
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DocumentManagementService, factory: DocumentManagementService.ɵfac });
|
|
7280
7226
|
}
|
|
7281
7227
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DocumentManagementService, [{
|
|
7282
7228
|
type: Injectable
|
|
7283
|
-
}], () => [{ type: HttpService }, { type: AbstractAppConfig }, { type: CaseNotifier }
|
|
7229
|
+
}], () => [{ type: HttpService }, { type: AbstractAppConfig }, { type: CaseNotifier }], null); })();
|
|
7284
7230
|
|
|
7285
7231
|
class ErrorNotifierService {
|
|
7286
7232
|
errorSource = new BehaviorSubject(null);
|
|
@@ -7472,6 +7418,39 @@ class MultipageComponentStateService {
|
|
|
7472
7418
|
}]
|
|
7473
7419
|
}], null, null); })();
|
|
7474
7420
|
|
|
7421
|
+
class JurisdictionService {
|
|
7422
|
+
httpService;
|
|
7423
|
+
// We retain the Subject observable because subscribing code couldn't happen a null value
|
|
7424
|
+
selectedJurisdictionSource = new Subject();
|
|
7425
|
+
_selectedJurisdictionBS = new BehaviorSubject(null);
|
|
7426
|
+
selectedJurisdiction;
|
|
7427
|
+
constructor(httpService) {
|
|
7428
|
+
this.httpService = httpService;
|
|
7429
|
+
this.selectedJurisdiction = this.selectedJurisdictionSource.asObservable();
|
|
7430
|
+
}
|
|
7431
|
+
getJurisdictions() {
|
|
7432
|
+
return this.httpService.get('/aggregated/caseworkers/:uid/jurisdictions?access=read');
|
|
7433
|
+
}
|
|
7434
|
+
announceSelectedJurisdiction(jurisdiction) {
|
|
7435
|
+
this.selectedJurisdictionSource.next(jurisdiction);
|
|
7436
|
+
this._selectedJurisdictionBS.next(jurisdiction);
|
|
7437
|
+
}
|
|
7438
|
+
getSelectedJurisdiction() {
|
|
7439
|
+
return this._selectedJurisdictionBS;
|
|
7440
|
+
}
|
|
7441
|
+
searchJudicialUsers(searchTerm, serviceId) {
|
|
7442
|
+
return this.httpService.post('api/prd/judicial/getJudicialUsersSearch', { searchString: searchTerm, serviceCode: serviceId });
|
|
7443
|
+
}
|
|
7444
|
+
searchJudicialUsersByPersonalCodes(personalCodes) {
|
|
7445
|
+
return this.httpService.post('api/prd/judicial/searchJudicialUserByPersonalCodes', { personal_code: personalCodes });
|
|
7446
|
+
}
|
|
7447
|
+
static ɵfac = function JurisdictionService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || JurisdictionService)(i0.ɵɵinject(HttpService)); };
|
|
7448
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: JurisdictionService, factory: JurisdictionService.ɵfac });
|
|
7449
|
+
}
|
|
7450
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JurisdictionService, [{
|
|
7451
|
+
type: Injectable
|
|
7452
|
+
}], () => [{ type: HttpService }], null); })();
|
|
7453
|
+
|
|
7475
7454
|
class BannersService {
|
|
7476
7455
|
httpService;
|
|
7477
7456
|
appConfig;
|
|
@@ -15135,8 +15114,6 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15135
15114
|
secureModeOn;
|
|
15136
15115
|
jurisdictionId;
|
|
15137
15116
|
caseTypeId;
|
|
15138
|
-
caseTypeExclusions;
|
|
15139
|
-
fileSecureModeOn = true;
|
|
15140
15117
|
constructor(appConfig, caseNotifier, documentManagement, dialog, fileUploadStateService, jurisdictionService) {
|
|
15141
15118
|
super();
|
|
15142
15119
|
this.appConfig = appConfig;
|
|
@@ -15148,44 +15125,21 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15148
15125
|
}
|
|
15149
15126
|
ngOnInit() {
|
|
15150
15127
|
this.secureModeOn = this.appConfig.getDocumentSecureMode();
|
|
15151
|
-
|
|
15152
|
-
|
|
15153
|
-
|
|
15154
|
-
|
|
15155
|
-
|
|
15156
|
-
|
|
15157
|
-
|
|
15158
|
-
|
|
15159
|
-
|
|
15160
|
-
|
|
15161
|
-
|
|
15162
|
-
|
|
15163
|
-
|
|
15164
|
-
|
|
15165
|
-
|
|
15166
|
-
}
|
|
15167
|
-
//if we havent set the value of caseTypeId yet, we can check if its in the url. e.g. case-creation
|
|
15168
|
-
if (!this.caseTypeId) {
|
|
15169
|
-
const url = window.location.pathname;
|
|
15170
|
-
if (url.indexOf('/case-create/') > -1) {
|
|
15171
|
-
const parts = url.split('/');
|
|
15172
|
-
this.jurisdictionId = parts[parts.indexOf('case-create') + 1];
|
|
15173
|
-
this.caseTypeId = parts[parts.indexOf('case-create') + 2];
|
|
15174
|
-
}
|
|
15175
|
-
}
|
|
15176
|
-
if (this.secureModeOn && this.caseTypeExclusions.split(',').includes(this.caseTypeId)) {
|
|
15177
|
-
this.fileSecureModeOn = false;
|
|
15178
|
-
}
|
|
15179
|
-
this.dialogConfig = initDialog();
|
|
15180
|
-
let document = this.caseField.value || { document_url: null, document_binary_url: null, document_filename: null };
|
|
15181
|
-
document = this.fileSecureModeOn && !document.document_hash ? { ...document, document_hash: null } : document;
|
|
15182
|
-
if (this.isAMandatoryComponent()) {
|
|
15183
|
-
this.createDocumentFormWithValidator(document);
|
|
15184
|
-
}
|
|
15185
|
-
else {
|
|
15186
|
-
this.createDocumentForm(document);
|
|
15187
|
-
}
|
|
15188
|
-
});
|
|
15128
|
+
if (this.secureModeOn) {
|
|
15129
|
+
this.subscribeToCaseDetails();
|
|
15130
|
+
}
|
|
15131
|
+
this.dialogConfig = initDialog();
|
|
15132
|
+
// EUI-3403. The field was not being registered when there was no value and the field
|
|
15133
|
+
// itself was not mandatory, which meant that show_conditions would not be evaluated.
|
|
15134
|
+
// I've cleaned up the logic and it's now always registered.
|
|
15135
|
+
let document = this.caseField.value || { document_url: null, document_binary_url: null, document_filename: null };
|
|
15136
|
+
document = this.secureModeOn && !document.document_hash ? { ...document, document_hash: null } : document;
|
|
15137
|
+
if (this.isAMandatoryComponent()) {
|
|
15138
|
+
this.createDocumentFormWithValidator(document);
|
|
15139
|
+
}
|
|
15140
|
+
else {
|
|
15141
|
+
this.createDocumentForm(document);
|
|
15142
|
+
}
|
|
15189
15143
|
}
|
|
15190
15144
|
ngOnDestroy() {
|
|
15191
15145
|
if (this.fileUploadSubscription) {
|
|
@@ -15298,6 +15252,29 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15298
15252
|
this.triggerReplace();
|
|
15299
15253
|
});
|
|
15300
15254
|
}
|
|
15255
|
+
// Depending on the context, we can get the case type and jurisdiction from different sources
|
|
15256
|
+
// If we are running an event, the caseNotifier will have the current case
|
|
15257
|
+
// If we are creating a case, the case doesn't exist yet, so the caseNotifier can't help
|
|
15258
|
+
// Instead we can use the eventTrigger to get the case type, and the jurisdiction service to
|
|
15259
|
+
// get the currently selected jurisdiction
|
|
15260
|
+
subscribeToCaseDetails() {
|
|
15261
|
+
this.caseNotifierSubscription = this.caseNotifier.caseView.subscribe({
|
|
15262
|
+
next: (caseDetails) => {
|
|
15263
|
+
this.caseTypeId = caseDetails?.case_type.id;
|
|
15264
|
+
this.jurisdictionId = caseDetails?.case_type?.jurisdiction?.id;
|
|
15265
|
+
}
|
|
15266
|
+
});
|
|
15267
|
+
this.jurisdictionSubs = this.jurisdictionService.getSelectedJurisdiction().subscribe({
|
|
15268
|
+
next: (jurisdiction) => {
|
|
15269
|
+
if (jurisdiction) {
|
|
15270
|
+
this.jurisdictionId = jurisdiction.id;
|
|
15271
|
+
if (jurisdiction.currentCaseType) {
|
|
15272
|
+
this.caseTypeId = jurisdiction.currentCaseType.id;
|
|
15273
|
+
}
|
|
15274
|
+
}
|
|
15275
|
+
}
|
|
15276
|
+
});
|
|
15277
|
+
}
|
|
15301
15278
|
isAMandatoryComponent() {
|
|
15302
15279
|
return this.caseField.display_context && this.caseField.display_context === Constants.MANDATORY;
|
|
15303
15280
|
}
|
|
@@ -15315,7 +15292,7 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15315
15292
|
let validation = !this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_URL).valid &&
|
|
15316
15293
|
!this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_BINARY_URL).valid &&
|
|
15317
15294
|
!this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_FILENAME).valid;
|
|
15318
|
-
if (this.
|
|
15295
|
+
if (this.secureModeOn) {
|
|
15319
15296
|
validation = validation && !this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_HASH).valid;
|
|
15320
15297
|
}
|
|
15321
15298
|
return validation;
|
|
@@ -15343,7 +15320,7 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15343
15320
|
...{ upload_timestamp: new FormControl(document.upload_timestamp) }
|
|
15344
15321
|
};
|
|
15345
15322
|
}
|
|
15346
|
-
documentFormGroup = this.
|
|
15323
|
+
documentFormGroup = this.secureModeOn ? {
|
|
15347
15324
|
...documentFormGroup,
|
|
15348
15325
|
...{ document_hash: new FormControl(document.document_hash) }
|
|
15349
15326
|
} : documentFormGroup;
|
|
@@ -15361,7 +15338,7 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15361
15338
|
...{ upload_timestamp: new FormControl(document.upload_timestamp) }
|
|
15362
15339
|
};
|
|
15363
15340
|
}
|
|
15364
|
-
documentFormGroup = this.
|
|
15341
|
+
documentFormGroup = this.secureModeOn ? {
|
|
15365
15342
|
...documentFormGroup,
|
|
15366
15343
|
...{ document_hash: new FormControl(document.document_hash) }
|
|
15367
15344
|
} : documentFormGroup;
|
|
@@ -15409,15 +15386,15 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15409
15386
|
}
|
|
15410
15387
|
handleDocumentUploadResult(result) {
|
|
15411
15388
|
if (!this.uploadedDocument) {
|
|
15412
|
-
if (this.
|
|
15389
|
+
if (this.secureModeOn) {
|
|
15413
15390
|
this.createDocumentForm({ document_url: null, document_binary_url: null, document_filename: null, document_hash: null });
|
|
15414
15391
|
}
|
|
15415
15392
|
else {
|
|
15416
15393
|
this.createDocumentForm({ document_url: null, document_binary_url: null, document_filename: null });
|
|
15417
15394
|
}
|
|
15418
15395
|
}
|
|
15419
|
-
const document = this.
|
|
15420
|
-
if (this.
|
|
15396
|
+
const document = this.secureModeOn ? result.documents[0] : result._embedded.documents[0];
|
|
15397
|
+
if (this.secureModeOn) {
|
|
15421
15398
|
this.updateDocumentForm(document._links.self.href, document._links.binary.href, document.originalDocumentName, document.hashToken);
|
|
15422
15399
|
}
|
|
15423
15400
|
else {
|
|
@@ -15430,7 +15407,7 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15430
15407
|
this.caseField.value.document_binary_url = document._links.binary.href;
|
|
15431
15408
|
this.caseField.value.document_filename = document.originalDocumentName;
|
|
15432
15409
|
this.caseField.value.document_url = document._links.self.href;
|
|
15433
|
-
if (this.
|
|
15410
|
+
if (this.secureModeOn) {
|
|
15434
15411
|
this.caseField.value.document_hash = document.hashToken;
|
|
15435
15412
|
}
|
|
15436
15413
|
}
|
|
@@ -15506,7 +15483,7 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15506
15483
|
type: ViewChild,
|
|
15507
15484
|
args: ['fileInput', { static: false }]
|
|
15508
15485
|
}] }); })();
|
|
15509
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteDocumentFieldComponent, { className: "WriteDocumentFieldComponent", filePath: "lib/shared/components/palette/document/write-document-field.component.ts", lineNumber:
|
|
15486
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteDocumentFieldComponent, { className: "WriteDocumentFieldComponent", filePath: "lib/shared/components/palette/document/write-document-field.component.ts", lineNumber: 23 }); })();
|
|
15510
15487
|
|
|
15511
15488
|
class DynamicListPipe {
|
|
15512
15489
|
static EMPTY = '';
|
|
@@ -19611,7 +19588,7 @@ class WriteNumberFieldComponent extends AbstractFieldWriteComponent {
|
|
|
19611
19588
|
this.numberControl = this.registerControl(new FormControl(this.caseField.value));
|
|
19612
19589
|
}
|
|
19613
19590
|
static ɵfac = /*@__PURE__*/ (() => { let ɵWriteNumberFieldComponent_BaseFactory; return function WriteNumberFieldComponent_Factory(__ngFactoryType__) { return (ɵWriteNumberFieldComponent_BaseFactory || (ɵWriteNumberFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(WriteNumberFieldComponent)))(__ngFactoryType__ || WriteNumberFieldComponent); }; })();
|
|
19614
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteNumberFieldComponent, selectors: [["ccd-write-number-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 12, consts: [[1, "form-group", 3, "ngClass"], [3, "for"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], ["type", "
|
|
19591
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteNumberFieldComponent, selectors: [["ccd-write-number-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 12, consts: [[1, "form-group", 3, "ngClass"], [3, "for"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], ["type", "text", "inputmode", "numeric", "pattern", "[0-9]*", 1, "form-control", "bottom-30", 3, "ngClass", "id", "formControl"], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function WriteNumberFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
19615
19592
|
i0.ɵɵelementStart(0, "div", 0)(1, "label", 1);
|
|
19616
19593
|
i0.ɵɵtemplate(2, WriteNumberFieldComponent_span_2_Template, 3, 3, "span", 2);
|
|
19617
19594
|
i0.ɵɵelementEnd();
|
|
@@ -19630,11 +19607,11 @@ class WriteNumberFieldComponent extends AbstractFieldWriteComponent {
|
|
|
19630
19607
|
i0.ɵɵproperty("ngIf", ctx.numberControl.errors && ctx.numberControl.dirty);
|
|
19631
19608
|
i0.ɵɵadvance();
|
|
19632
19609
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$f, ctx.numberControl.errors && ctx.numberControl.dirty))("id", ctx.id())("formControl", ctx.numberControl);
|
|
19633
|
-
} }, dependencies: [i5.NgClass, i5.NgIf, i4.DefaultValueAccessor, i4.
|
|
19610
|
+
} }, dependencies: [i5.NgClass, i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.PatternValidator, i4.FormControlDirective, FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe], encapsulation: 2 });
|
|
19634
19611
|
}
|
|
19635
19612
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteNumberFieldComponent, [{
|
|
19636
19613
|
type: Component,
|
|
19637
|
-
args: [{ selector: 'ccd-write-number-field', template: "<div class=\"form-group\" [ngClass]=\"{'form-group-error': !numberControl.valid && numberControl.dirty}\">\n <label [for]=\"id()\">\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n </label>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"numberControl.errors && numberControl.dirty\">\n {{numberControl.errors | ccdFirstError:caseField.label}}\n </span>\n\n <input class=\"form-control bottom-30\" [ngClass]=\"{'govuk-input--error': numberControl.errors && numberControl.dirty}\"\n [id]=\"id()\" type=\"
|
|
19614
|
+
args: [{ selector: 'ccd-write-number-field', template: "<div class=\"form-group\" [ngClass]=\"{'form-group-error': !numberControl.valid && numberControl.dirty}\">\n <label [for]=\"id()\">\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n </label>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"numberControl.errors && numberControl.dirty\">\n {{numberControl.errors | ccdFirstError:caseField.label}}\n </span>\n\n <input class=\"form-control bottom-30\" [ngClass]=\"{'govuk-input--error': numberControl.errors && numberControl.dirty}\"\n [id]=\"id()\" type=\"text\" inputmode=\"numeric\" pattern=\"[0-9]*\" [formControl]=\"numberControl\">\n</div>\n" }]
|
|
19638
19615
|
}], null, null); })();
|
|
19639
19616
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteNumberFieldComponent, { className: "WriteNumberFieldComponent", filePath: "lib/shared/components/palette/number/write-number-field.component.ts", lineNumber: 9 }); })();
|
|
19640
19617
|
|