@hmcts/ccd-case-ui-toolkit 7.0.14 → 7.0.15-ccd-field-error-handling
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/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +40 -21
- package/esm2020/lib/shared/components/case-editor/services/page-validation.service.mjs +10 -5
- package/esm2020/lib/shared/components/palette/address/write-address-field.component.mjs +20 -57
- package/esm2020/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +1 -5
- package/esm2020/lib/shared/components/palette/document/write-document-field.component.mjs +2 -2
- package/esm2020/lib/shared/domain/http/http-error.model.mjs +2 -8
- package/esm2020/lib/shared/services/addresses/addresses.service.mjs +1 -9
- package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +68 -114
- package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +68 -108
- package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +4 -4
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/services/page-validation.service.d.ts +1 -1
- package/lib/shared/components/case-editor/services/page-validation.service.d.ts.map +1 -1
- package/lib/shared/components/palette/address/write-address-field.component.d.ts +0 -5
- package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
- package/lib/shared/domain/http/http-error.model.d.ts +0 -1
- package/lib/shared/domain/http/http-error.model.d.ts.map +1 -1
- package/lib/shared/services/addresses/addresses.service.d.ts +0 -3
- package/lib/shared/services/addresses/addresses.service.d.ts.map +1 -1
- package/package.json +1 -1
- package/esm2020/lib/shared/commons/address-validation-constants.mjs +0 -13
- package/lib/shared/commons/address-validation-constants.d.ts +0 -7
- package/lib/shared/commons/address-validation-constants.d.ts.map +0 -1
|
@@ -8,7 +8,7 @@ import * as i1$1 from '@angular/router';
|
|
|
8
8
|
import { RouterModule, NavigationStart, NavigationEnd } from '@angular/router';
|
|
9
9
|
import * as i3 from '@angular/forms';
|
|
10
10
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormArray, FormGroup, FormControl, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
11
|
-
import { throwError, Subject, EMPTY, Observable,
|
|
11
|
+
import { throwError, Subject, EMPTY, Observable, of, BehaviorSubject, timer, fromEvent, forkJoin, 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
14
|
import { catchError, map, publish, refCount, switchMap, debounceTime, delay, distinctUntilChanged, finalize, timeout, mergeMap, retryWhen, tap, delayWhen, publishReplay, take, first, takeUntil, filter } from 'rxjs/operators';
|
|
@@ -1241,14 +1241,9 @@ class HttpError {
|
|
|
1241
1241
|
}
|
|
1242
1242
|
static from(response) {
|
|
1243
1243
|
const error = new HttpError();
|
|
1244
|
-
if (response?.status === 429) {
|
|
1245
|
-
error.error = HttpError.MESSAGE_ERROR_429;
|
|
1246
|
-
error.status = response.status;
|
|
1247
|
-
error.message = response.message;
|
|
1248
|
-
}
|
|
1249
1244
|
// Check that the HttpErrorResponse contains an "error" object before mapping the error properties
|
|
1250
1245
|
if (!!(response && response.error)) {
|
|
1251
|
-
Object.keys(error).forEach(
|
|
1246
|
+
Object.keys(error).forEach(key => {
|
|
1252
1247
|
error[key] = response.error.hasOwnProperty(key) && response.error[key] ? response.error[key] : error[key];
|
|
1253
1248
|
});
|
|
1254
1249
|
}
|
|
@@ -1265,7 +1260,6 @@ class HttpError {
|
|
|
1265
1260
|
HttpError.DEFAULT_ERROR = 'Unknown error';
|
|
1266
1261
|
HttpError.DEFAULT_MESSAGE = 'Something unexpected happened, our technical staff have been automatically notified';
|
|
1267
1262
|
HttpError.DEFAULT_STATUS = 500;
|
|
1268
|
-
HttpError.MESSAGE_ERROR_429 = 'Your request was rate limited. Please wait a few seconds before retrying your document upload';
|
|
1269
1263
|
|
|
1270
1264
|
/**
|
|
1271
1265
|
* `Oauth2Service` and `AuthService` cannot be merged as it creates a cyclic dependency on `AuthService` through `HttpErrorService`.
|
|
@@ -4612,11 +4606,7 @@ class AbstractFormFieldComponent {
|
|
|
4612
4606
|
return control;
|
|
4613
4607
|
}
|
|
4614
4608
|
const existing = container.controls[this.caseField.id];
|
|
4615
|
-
// update the field value which has been set in mid-event call back
|
|
4616
4609
|
if (existing) {
|
|
4617
|
-
if (existing.value === null && this.caseField?.value) {
|
|
4618
|
-
existing.value = this.caseField.value;
|
|
4619
|
-
}
|
|
4620
4610
|
if (replace) {
|
|
4621
4611
|
// Set the validators on the replacement with what already exists.
|
|
4622
4612
|
control.setValidators(existing.validator);
|
|
@@ -6263,7 +6253,6 @@ class AddressesService {
|
|
|
6263
6253
|
constructor(http, appConfig) {
|
|
6264
6254
|
this.http = http;
|
|
6265
6255
|
this.appConfig = appConfig;
|
|
6266
|
-
this.mandatoryError = new BehaviorSubject(false);
|
|
6267
6256
|
}
|
|
6268
6257
|
getAddressesForPostcode(postcode) {
|
|
6269
6258
|
return this.http
|
|
@@ -6272,12 +6261,6 @@ class AddressesService {
|
|
|
6272
6261
|
.pipe(map(res => res.results))
|
|
6273
6262
|
.pipe(map(output => output.map(addresses => this.format(new AddressParser().parse(addresses[AddressType.DPA])))));
|
|
6274
6263
|
}
|
|
6275
|
-
getMandatoryError() {
|
|
6276
|
-
return this.mandatoryError.asObservable();
|
|
6277
|
-
}
|
|
6278
|
-
setMandatoryError(value) {
|
|
6279
|
-
this.mandatoryError.next(value);
|
|
6280
|
-
}
|
|
6281
6264
|
format(addressModel) {
|
|
6282
6265
|
return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));
|
|
6283
6266
|
}
|
|
@@ -8394,16 +8377,21 @@ class PageValidationService {
|
|
|
8394
8377
|
constructor(caseFieldService) {
|
|
8395
8378
|
this.caseFieldService = caseFieldService;
|
|
8396
8379
|
}
|
|
8397
|
-
|
|
8398
|
-
|
|
8380
|
+
getInvalidFields(page, editForm) {
|
|
8381
|
+
const failingCaseFields = [];
|
|
8382
|
+
page.case_fields
|
|
8399
8383
|
.filter(caseField => !this.caseFieldService.isReadOnly(caseField))
|
|
8400
8384
|
.filter(caseField => !this.isHidden(caseField, editForm))
|
|
8401
|
-
.
|
|
8385
|
+
.map(caseField => {
|
|
8402
8386
|
const theControl = FieldsUtils.isCaseFieldOfType(caseField, ['JudicialUser'])
|
|
8403
8387
|
? editForm.controls['data'].get(`${caseField.id}_judicialUserControl`)
|
|
8404
8388
|
: editForm.controls['data'].get(caseField.id);
|
|
8405
|
-
|
|
8389
|
+
if (!(this.checkDocumentField(caseField, theControl) && this.checkOptionalField(caseField, theControl))) {
|
|
8390
|
+
failingCaseFields.push(caseField);
|
|
8391
|
+
}
|
|
8392
|
+
;
|
|
8406
8393
|
});
|
|
8394
|
+
return failingCaseFields;
|
|
8407
8395
|
}
|
|
8408
8396
|
isHidden(caseField, editForm, path) {
|
|
8409
8397
|
const formFields = editForm.getRawValue();
|
|
@@ -9633,7 +9621,7 @@ function CaseEditPageComponent_ccd_case_event_completion_11_Template(rf, ctx) {
|
|
|
9633
9621
|
i0.ɵɵproperty("eventCompletionParams", ctx_r8.caseEdit.eventCompletionParams);
|
|
9634
9622
|
} }
|
|
9635
9623
|
class CaseEditPageComponent {
|
|
9636
|
-
constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService
|
|
9624
|
+
constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService) {
|
|
9637
9625
|
this.caseEdit = caseEdit;
|
|
9638
9626
|
this.route = route;
|
|
9639
9627
|
this.formValueService = formValueService;
|
|
@@ -9645,7 +9633,6 @@ class CaseEditPageComponent {
|
|
|
9645
9633
|
this.caseEditDataService = caseEditDataService;
|
|
9646
9634
|
this.loadingService = loadingService;
|
|
9647
9635
|
this.validPageListCaseFieldsService = validPageListCaseFieldsService;
|
|
9648
|
-
this.addressService = addressService;
|
|
9649
9636
|
this.triggerTextStart = CaseEditPageComponent.TRIGGER_TEXT_START;
|
|
9650
9637
|
this.triggerTextIgnoreWarnings = CaseEditPageComponent.TRIGGER_TEXT_CONTINUE;
|
|
9651
9638
|
this.formValuesChanged = false;
|
|
@@ -9728,7 +9715,8 @@ class CaseEditPageComponent {
|
|
|
9728
9715
|
return this.caseEdit.first();
|
|
9729
9716
|
}
|
|
9730
9717
|
currentPageIsNotValid() {
|
|
9731
|
-
|
|
9718
|
+
this.failingCaseFields = this.pageValidationService.getInvalidFields(this.currentPage, this.editForm);
|
|
9719
|
+
return this.failingCaseFields.length > 0 ||
|
|
9732
9720
|
(this.isLinkedCasesJourney() && !this.isLinkedCasesJourneyAtFinalStep);
|
|
9733
9721
|
}
|
|
9734
9722
|
isLinkedCasesJourney() {
|
|
@@ -9750,9 +9738,15 @@ class CaseEditPageComponent {
|
|
|
9750
9738
|
// Adding validation message to show it as Error Summary
|
|
9751
9739
|
generateErrorMessage(fields, container, path) {
|
|
9752
9740
|
const group = container || this.editForm.controls['data'];
|
|
9753
|
-
|
|
9754
|
-
|
|
9741
|
+
let validErrorFieldFound = false;
|
|
9742
|
+
let validationErrorAmount = this.validationErrors.length;
|
|
9743
|
+
const failingFields = fields.filter(casefield => !this.caseFieldService.isReadOnly(casefield))
|
|
9744
|
+
.filter(casefield => !this.pageValidationService.isHidden(casefield, this.editForm, path));
|
|
9745
|
+
// note that thougn these checks are on getinvalidfields they are needed for sub field checks
|
|
9746
|
+
failingFields
|
|
9755
9747
|
.forEach(casefield => {
|
|
9748
|
+
let errorPresent = true;
|
|
9749
|
+
validErrorFieldFound = true;
|
|
9756
9750
|
const fieldElement = FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])
|
|
9757
9751
|
? group.get(`${casefield.id}_judicialUserControl`)
|
|
9758
9752
|
: group.get(casefield.id);
|
|
@@ -9768,14 +9762,7 @@ class CaseEditPageComponent {
|
|
|
9768
9762
|
}
|
|
9769
9763
|
}
|
|
9770
9764
|
if (fieldElement.hasError('required')) {
|
|
9771
|
-
|
|
9772
|
-
// EUI-1067 - Display more relevant error message to user and correctly navigate to the field
|
|
9773
|
-
this.addressService.setMandatoryError(true);
|
|
9774
|
-
this.caseEditDataService.addFormValidationError({ id: `${path}_${path}`, message: `An address is required` });
|
|
9775
|
-
}
|
|
9776
|
-
else {
|
|
9777
|
-
this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is required`, label });
|
|
9778
|
-
}
|
|
9765
|
+
this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is required`, label });
|
|
9779
9766
|
fieldElement.markAsDirty();
|
|
9780
9767
|
// For the JudicialUser field type, an error needs to be set on the component so that an error message
|
|
9781
9768
|
// can be displayed at field level
|
|
@@ -9797,7 +9784,7 @@ class CaseEditPageComponent {
|
|
|
9797
9784
|
}
|
|
9798
9785
|
else if (fieldElement.invalid) {
|
|
9799
9786
|
if (casefield.isComplex()) {
|
|
9800
|
-
this.generateErrorMessage(casefield.field_type.complex_fields, fieldElement, id);
|
|
9787
|
+
errorPresent = this.generateErrorMessage(casefield.field_type.complex_fields, fieldElement, id);
|
|
9801
9788
|
}
|
|
9802
9789
|
else if (casefield.isCollection() && casefield.field_type.collection_field_type.type === 'Complex') {
|
|
9803
9790
|
const fieldArray = fieldElement;
|
|
@@ -9805,7 +9792,7 @@ class CaseEditPageComponent {
|
|
|
9805
9792
|
id = `${fieldArray['component']['collItems'][0].prefix}`;
|
|
9806
9793
|
}
|
|
9807
9794
|
fieldArray.controls.forEach((c) => {
|
|
9808
|
-
this.generateErrorMessage(casefield.field_type.collection_field_type.complex_fields, c.get('value'), id);
|
|
9795
|
+
errorPresent = this.generateErrorMessage(casefield.field_type.collection_field_type.complex_fields, c.get('value'), id);
|
|
9809
9796
|
});
|
|
9810
9797
|
}
|
|
9811
9798
|
else if (FieldsUtils.isCaseFieldOfType(casefield, ['FlagLauncher'])) {
|
|
@@ -9820,8 +9807,29 @@ class CaseEditPageComponent {
|
|
|
9820
9807
|
}
|
|
9821
9808
|
}
|
|
9822
9809
|
}
|
|
9810
|
+
else {
|
|
9811
|
+
validErrorFieldFound = false;
|
|
9812
|
+
}
|
|
9813
|
+
if (!errorPresent && this.validationErrors.length === validationErrorAmount) {
|
|
9814
|
+
// if no error messages have been added in internal field despite parent field failing
|
|
9815
|
+
this.validationErrors.push({ id: casefield.id, message: `A field that is causing an error is ${casefield.id} but it is not producing a valid error message. Please ensure all details are correct` });
|
|
9816
|
+
}
|
|
9823
9817
|
});
|
|
9818
|
+
if (!validErrorFieldFound) {
|
|
9819
|
+
path ? this.validationErrors.push({ id: path, message: `There is an internal issue with ${path} fields. The field that is causing the error cannot be determined but there is an error present` })
|
|
9820
|
+
: this.validationErrors.push({ id: null, message: `The field that is causing the error cannot be determined but there is an error present` });
|
|
9821
|
+
}
|
|
9822
|
+
else if (this.validationErrors.length === validationErrorAmount) {
|
|
9823
|
+
// if no error messages have been generated
|
|
9824
|
+
if (path) {
|
|
9825
|
+
return false;
|
|
9826
|
+
}
|
|
9827
|
+
else {
|
|
9828
|
+
this.validationErrors.push({ id: null, message: `The field that is causing the error cannot be determined but there is an error present. Please fill in more of the form` });
|
|
9829
|
+
}
|
|
9830
|
+
}
|
|
9824
9831
|
CaseEditPageComponent.scrollToTop();
|
|
9832
|
+
return true;
|
|
9825
9833
|
}
|
|
9826
9834
|
navigateToErrorElement(elementId) {
|
|
9827
9835
|
/* istanbul ignore else */
|
|
@@ -9846,11 +9854,10 @@ class CaseEditPageComponent {
|
|
|
9846
9854
|
CaseEditPageComponent.scrollToTop();
|
|
9847
9855
|
}
|
|
9848
9856
|
else {
|
|
9849
|
-
this.generateErrorMessage(this.
|
|
9857
|
+
this.generateErrorMessage(this.failingCaseFields);
|
|
9850
9858
|
}
|
|
9851
9859
|
}
|
|
9852
9860
|
if (!this.caseEdit.isSubmitting && !this.currentPageIsNotValid()) {
|
|
9853
|
-
this.addressService.setMandatoryError(false);
|
|
9854
9861
|
console.log('Case Edit Error', this.caseEdit.error);
|
|
9855
9862
|
if (this.caseEdit.validPageList.findIndex(page => page.id === this.currentPage.id) === -1) {
|
|
9856
9863
|
this.caseEdit.validPageList.push(this.currentPage);
|
|
@@ -10150,7 +10157,7 @@ CaseEditPageComponent.RESUMED_FORM_SAVE = 'RESUMED_FORM_SAVE';
|
|
|
10150
10157
|
CaseEditPageComponent.TRIGGER_TEXT_START = 'Continue';
|
|
10151
10158
|
CaseEditPageComponent.TRIGGER_TEXT_SAVE = 'Save and continue';
|
|
10152
10159
|
CaseEditPageComponent.TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Continue';
|
|
10153
|
-
CaseEditPageComponent.ɵfac = function CaseEditPageComponent_Factory(t) { return new (t || CaseEditPageComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PageValidationService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(CaseEditDataService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService)
|
|
10160
|
+
CaseEditPageComponent.ɵfac = function CaseEditPageComponent_Factory(t) { return new (t || CaseEditPageComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PageValidationService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(CaseEditDataService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService)); };
|
|
10154
10161
|
CaseEditPageComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditPageComponent, selectors: [["ccd-case-edit-page"]], decls: 12, vars: 11, consts: [[4, "ngIf"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], [3, "error"], [3, "triggerTextContinue", "triggerTextIgnore", "callbackErrorsSubject", "callbackErrorsContext"], [1, "width-50"], ["class", "form", 3, "formGroup", "submit", 4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], ["class", "govuk-heading-l", 4, "ngIf"], [1, "govuk-heading-l"], [1, "govuk-caption-l"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], ["class", "govuk-error-summary__body", 4, "ngFor", "ngForOf"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [1, "validation-error", 3, "click"], [1, "form", 3, "formGroup", "submit"], ["id", "fieldset-case-data"], [2, "display", "none"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged", 4, "ngIf"], ["class", "grid-row", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged"], [1, "grid-row"], [1, "column-two-thirds", "rightBorderSeparator"], ["id", "caseEditForm1", 3, "fields", "formGroup", "caseFields"], [1, "column-one-third"], ["id", "caseEditForm2", 3, "fields", "formGroup", "caseFields"], [3, "eventCompletionParams", "eventCanBeCompleted"]], template: function CaseEditPageComponent_Template(rf, ctx) { if (rf & 1) {
|
|
10155
10162
|
i0.ɵɵtemplate(0, CaseEditPageComponent_ng_container_0_Template, 3, 2, "ng-container", 0);
|
|
10156
10163
|
i0.ɵɵtemplate(1, CaseEditPageComponent_div_1_Template, 1, 0, "div", 1);
|
|
@@ -10185,7 +10192,7 @@ CaseEditPageComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseE
|
|
|
10185
10192
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditPageComponent, [{
|
|
10186
10193
|
type: Component,
|
|
10187
10194
|
args: [{ selector: 'ccd-case-edit-page', template: "<ng-container *ngIf=\"currentPage\">\n <h1 *ngIf=\"!currentPage.label\" class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n <ng-container *ngIf=\"currentPage.label\">\n <span class=\"govuk-caption-l\">{{ eventTrigger.name | rpxTranslate}}</span>\n <h1 class=\"govuk-heading-l\">{{currentPage.label | rpxTranslate}}</h1>\n </ng-container>\n</ng-container>\n\n<!--Case ID or Title -->\n<div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n<ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: caseFields : editForm.controls['data']\"></ccd-markdown>\n</ng-template>\n<ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n</ng-template>\n\n<!-- Error message summary -->\n<div *ngIf=\"validationErrors.length > 0\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"govuk-error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{'There is a problem' | rpxTranslate}}\n </h2>\n <div *ngFor=\"let validationError of validationErrors\" class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a (click)=\"navigateToErrorElement(validationError.id)\" class=\"validation-error\">\n {{ validationError.message | rpxTranslate: getRpxTranslatePipeArgs(validationError.label | rpxTranslate): null }}\n </a>\n </li>\n </ul>\n </div>\n</div>\n\n<ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<div class=\"width-50\">\n <form *ngIf=\"currentPage\" class=\"form\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <fieldset id=\"fieldset-case-data\">\n <legend style=\"display: none;\"></legend>\n <!-- single column -->\n <ccd-case-edit-form id='caseEditForm' *ngIf=\"!currentPage.isMultiColumn()\" [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"\n [pageChangeSubject]=\"pageChangeSubject\"\n (valuesChanged)=\"applyValuesChanged($event)\"></ccd-case-edit-form>\n <!-- two columns -->\n <div *ngIf=\"currentPage.isMultiColumn()\" class=\"grid-row\">\n <div class=\"column-two-thirds rightBorderSeparator\">\n <ccd-case-edit-form id='caseEditForm1' [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n <div class=\"column-one-third\">\n <ccd-case-edit-form id='caseEditForm2' [fields]=\"currentPage.getCol2Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n </div>\n </fieldset>\n\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!(hasPreviousPage$ | async)\" (click)=\"toPreviousPage()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button class=\"button\" type=\"submit\" [disabled]=\"submitting()\">{{triggerText | rpxTranslate}}</button>\n </div>\n\n <p class=\"cancel\"><a (click)=\"cancel()\" href=\"javascript:void(0)\">{{getCancelText() | rpxTranslate}}</a></p>\n </form>\n</div>\n\n<ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n</ccd-case-event-completion>\n", styles: [".rightBorderSeparator{border-right-width:4px;border-right-color:#ffcc02;border-right-style:solid}.validation-error{cursor:pointer;text-decoration:underline;color:#d4351c}\n"] }]
|
|
10188
|
-
}], function () { return [{ type: CaseEditComponent }, { type: i1$1.ActivatedRoute }, { type: FormValueService }, { type: FormErrorService }, { type: i0.ChangeDetectorRef }, { type: PageValidationService }, { type: i1$3.MatLegacyDialog }, { type: CaseFieldService }, { type: CaseEditDataService }, { type: LoadingService }, { type: ValidPageListCaseFieldsService }
|
|
10195
|
+
}], function () { return [{ type: CaseEditComponent }, { type: i1$1.ActivatedRoute }, { type: FormValueService }, { type: FormErrorService }, { type: i0.ChangeDetectorRef }, { type: PageValidationService }, { type: i1$3.MatLegacyDialog }, { type: CaseFieldService }, { type: CaseEditDataService }, { type: LoadingService }, { type: ValidPageListCaseFieldsService }]; }, null); })();
|
|
10189
10196
|
|
|
10190
10197
|
class CallbackErrorsContext {
|
|
10191
10198
|
}
|
|
@@ -10632,17 +10639,6 @@ class AddressOption {
|
|
|
10632
10639
|
}
|
|
10633
10640
|
}
|
|
10634
10641
|
|
|
10635
|
-
class AddressValidationConstants {
|
|
10636
|
-
}
|
|
10637
|
-
// allow alpha-numeric characters and spaces possibly between a connecting - character
|
|
10638
|
-
// this applies validation while allowing partial postcodes
|
|
10639
|
-
AddressValidationConstants.REGEX_POSTCODE = /^([A-Za-z0-9]-*| )+$/;
|
|
10640
|
-
AddressValidationConstants.ɵfac = function AddressValidationConstants_Factory(t) { return new (t || AddressValidationConstants)(); };
|
|
10641
|
-
AddressValidationConstants.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AddressValidationConstants, factory: AddressValidationConstants.ɵfac });
|
|
10642
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddressValidationConstants, [{
|
|
10643
|
-
type: Injectable
|
|
10644
|
-
}], null, null); })();
|
|
10645
|
-
|
|
10646
10642
|
class FieldsFilterPipe {
|
|
10647
10643
|
/**
|
|
10648
10644
|
* Complex type should have at least on simple field descendant with a value.
|
|
@@ -10909,9 +10905,8 @@ function WriteAddressFieldComponent_div_1_div_4_span_5_Template(rf, ctx) { if (r
|
|
|
10909
10905
|
i0.ɵɵpipe(2, "rpxTranslate");
|
|
10910
10906
|
i0.ɵɵelementEnd();
|
|
10911
10907
|
} if (rf & 2) {
|
|
10912
|
-
const ctx_r5 = i0.ɵɵnextContext(3);
|
|
10913
10908
|
i0.ɵɵadvance(1);
|
|
10914
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1,
|
|
10909
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Enter the Postcode"));
|
|
10915
10910
|
} }
|
|
10916
10911
|
const _c1$n = function (a0) { return { "form-group-error": a0 }; };
|
|
10917
10912
|
const _c2$2 = function (a0) { return { "govuk-input--error": a0 }; };
|
|
@@ -10942,56 +10937,42 @@ function WriteAddressFieldComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1)
|
|
|
10942
10937
|
i0.ɵɵadvance(2);
|
|
10943
10938
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 11, "Find address"));
|
|
10944
10939
|
} }
|
|
10945
|
-
function
|
|
10946
|
-
i0.ɵɵelementStart(0, "span", 14);
|
|
10947
|
-
i0.ɵɵtext(1);
|
|
10948
|
-
i0.ɵɵpipe(2, "rpxTranslate");
|
|
10949
|
-
i0.ɵɵelementEnd();
|
|
10950
|
-
} if (rf & 2) {
|
|
10951
|
-
const ctx_r8 = i0.ɵɵnextContext(3);
|
|
10952
|
-
i0.ɵɵadvance(1);
|
|
10953
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r8.errorMessage));
|
|
10954
|
-
} }
|
|
10955
|
-
function WriteAddressFieldComponent_div_1_div_5_option_7_Template(rf, ctx) { if (rf & 1) {
|
|
10940
|
+
function WriteAddressFieldComponent_div_1_div_5_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
10956
10941
|
i0.ɵɵelementStart(0, "option", 18);
|
|
10957
10942
|
i0.ɵɵtext(1);
|
|
10958
10943
|
i0.ɵɵpipe(2, "rpxTranslate");
|
|
10959
10944
|
i0.ɵɵelementEnd();
|
|
10960
10945
|
} if (rf & 2) {
|
|
10961
|
-
const
|
|
10962
|
-
i0.ɵɵproperty("ngValue",
|
|
10946
|
+
const addressOption_r9 = ctx.$implicit;
|
|
10947
|
+
i0.ɵɵproperty("ngValue", addressOption_r9.value);
|
|
10963
10948
|
i0.ɵɵadvance(1);
|
|
10964
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2,
|
|
10949
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, addressOption_r9.description), " ");
|
|
10965
10950
|
} }
|
|
10966
10951
|
function WriteAddressFieldComponent_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
10967
|
-
const
|
|
10952
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
10968
10953
|
i0.ɵɵelementStart(0, "div", 15)(1, "label", 9)(2, "span", 10);
|
|
10969
10954
|
i0.ɵɵtext(3);
|
|
10970
10955
|
i0.ɵɵpipe(4, "rpxTranslate");
|
|
10971
10956
|
i0.ɵɵelementEnd()();
|
|
10972
|
-
i0.ɵɵ
|
|
10973
|
-
i0.ɵɵ
|
|
10974
|
-
i0.ɵɵ
|
|
10975
|
-
i0.ɵɵtemplate(7, WriteAddressFieldComponent_div_1_div_5_option_7_Template, 3, 4, "option", 17);
|
|
10957
|
+
i0.ɵɵelementStart(5, "select", 16);
|
|
10958
|
+
i0.ɵɵlistener("change", function WriteAddressFieldComponent_div_1_div_5_Template_select_change_5_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r10.addressSelected()); });
|
|
10959
|
+
i0.ɵɵtemplate(6, WriteAddressFieldComponent_div_1_div_5_option_6_Template, 3, 4, "option", 17);
|
|
10976
10960
|
i0.ɵɵelementEnd()();
|
|
10977
10961
|
} if (rf & 2) {
|
|
10978
10962
|
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
10979
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c1$n, ctx_r3.noAddressSelected));
|
|
10980
10963
|
i0.ɵɵadvance(1);
|
|
10981
10964
|
i0.ɵɵproperty("for", ctx_r3.createElementId("addressList"));
|
|
10982
10965
|
i0.ɵɵadvance(2);
|
|
10983
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4,
|
|
10966
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 5, "Select an address"));
|
|
10984
10967
|
i0.ɵɵadvance(2);
|
|
10985
|
-
i0.ɵɵproperty("ngIf", ctx_r3.noAddressSelected);
|
|
10986
|
-
i0.ɵɵadvance(1);
|
|
10987
10968
|
i0.ɵɵproperty("id", ctx_r3.createElementId("addressList"))("formControl", ctx_r3.addressList);
|
|
10988
10969
|
i0.ɵɵadvance(1);
|
|
10989
10970
|
i0.ɵɵproperty("ngForOf", ctx_r3.addressOptions);
|
|
10990
10971
|
} }
|
|
10991
10972
|
function WriteAddressFieldComponent_div_1_a_6_Template(rf, ctx) { if (rf & 1) {
|
|
10992
|
-
const
|
|
10973
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
10993
10974
|
i0.ɵɵelementStart(0, "a", 19);
|
|
10994
|
-
i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_1_a_6_Template_a_click_0_listener() { i0.ɵɵrestoreView(
|
|
10975
|
+
i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_1_a_6_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.blankAddress()); });
|
|
10995
10976
|
i0.ɵɵtext(1);
|
|
10996
10977
|
i0.ɵɵpipe(2, "rpxTranslate");
|
|
10997
10978
|
i0.ɵɵelementEnd();
|
|
@@ -11005,7 +10986,7 @@ function WriteAddressFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
11005
10986
|
i0.ɵɵpipe(3, "ccdFieldLabel");
|
|
11006
10987
|
i0.ɵɵelementEnd();
|
|
11007
10988
|
i0.ɵɵtemplate(4, WriteAddressFieldComponent_div_1_div_4_Template, 10, 17, "div", 5);
|
|
11008
|
-
i0.ɵɵtemplate(5, WriteAddressFieldComponent_div_1_div_5_Template,
|
|
10989
|
+
i0.ɵɵtemplate(5, WriteAddressFieldComponent_div_1_div_5_Template, 7, 7, "div", 6);
|
|
11009
10990
|
i0.ɵɵtemplate(6, WriteAddressFieldComponent_div_1_a_6_Template, 3, 3, "a", 7);
|
|
11010
10991
|
i0.ɵɵelementEnd();
|
|
11011
10992
|
} if (rf & 2) {
|
|
@@ -11024,30 +11005,19 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
|
|
|
11024
11005
|
super();
|
|
11025
11006
|
this.isCompoundPipe = isCompoundPipe;
|
|
11026
11007
|
this.addressFormGroup = new FormGroup({});
|
|
11027
|
-
this.errorMessage = WriteAddressFieldComponent.REQUIRED_ERROR_MESSAGE;
|
|
11028
11008
|
this.missingPostcode = false;
|
|
11029
|
-
this.noAddressSelected = false;
|
|
11030
11009
|
this.addressesService = addressesService;
|
|
11031
11010
|
}
|
|
11032
11011
|
ngOnInit() {
|
|
11033
11012
|
if (!this.isComplexWithHiddenFields()) {
|
|
11034
|
-
this.postcode = new FormControl(''
|
|
11035
|
-
this.
|
|
11013
|
+
this.postcode = new FormControl('');
|
|
11014
|
+
this.addressFormGroup.addControl('postcode', this.postcode);
|
|
11036
11015
|
this.addressList = new FormControl('');
|
|
11037
|
-
this.
|
|
11016
|
+
this.addressFormGroup.addControl('address', this.addressList);
|
|
11038
11017
|
}
|
|
11039
|
-
this.addressesService.getMandatoryError().subscribe((value) => {
|
|
11040
|
-
this.updateErrorsOnContinue(value);
|
|
11041
|
-
});
|
|
11042
11018
|
}
|
|
11043
11019
|
findAddress() {
|
|
11044
|
-
this.noAddressSelected = false;
|
|
11045
11020
|
if (!this.postcode.value) {
|
|
11046
|
-
this.errorMessage = WriteAddressFieldComponent.REQUIRED_ERROR_MESSAGE;
|
|
11047
|
-
this.missingPostcode = true;
|
|
11048
|
-
}
|
|
11049
|
-
else if (!this.postcode.value.trim().match(AddressValidationConstants.REGEX_POSTCODE)) {
|
|
11050
|
-
this.errorMessage = WriteAddressFieldComponent.INVALID_ERROR_MESSAGE;
|
|
11051
11021
|
this.missingPostcode = true;
|
|
11052
11022
|
}
|
|
11053
11023
|
else {
|
|
@@ -11076,8 +11046,6 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
|
|
|
11076
11046
|
blankAddress() {
|
|
11077
11047
|
this.caseField.value = new AddressModel();
|
|
11078
11048
|
this.setFormValue();
|
|
11079
|
-
this.missingPostcode = false;
|
|
11080
|
-
this.noAddressSelected = false;
|
|
11081
11049
|
}
|
|
11082
11050
|
isComplexWithHiddenFields() {
|
|
11083
11051
|
if (this.caseField.isComplex() && this.caseField.field_type.complex_fields
|
|
@@ -11109,7 +11077,6 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
|
|
|
11109
11077
|
addressSelected() {
|
|
11110
11078
|
this.caseField.value = this.addressList.value;
|
|
11111
11079
|
this.setFormValue();
|
|
11112
|
-
this.noAddressSelected = false;
|
|
11113
11080
|
}
|
|
11114
11081
|
ngOnChanges(changes) {
|
|
11115
11082
|
super.ngOnChanges(changes);
|
|
@@ -11130,14 +11097,7 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
|
|
|
11130
11097
|
this.writeComplexFieldComponent.complexGroup.setValue(this.caseField.value);
|
|
11131
11098
|
}
|
|
11132
11099
|
}
|
|
11133
|
-
updateErrorsOnContinue(value) {
|
|
11134
|
-
this.missingPostcode = value && !this.shouldShowDetailFields() && !this.addressOptions;
|
|
11135
|
-
this.noAddressSelected = value && !this.shouldShowDetailFields() && !!this.addressOptions;
|
|
11136
|
-
this.errorMessage = this.noAddressSelected ? 'Select an address' : this.errorMessage;
|
|
11137
|
-
}
|
|
11138
11100
|
}
|
|
11139
|
-
WriteAddressFieldComponent.REQUIRED_ERROR_MESSAGE = 'Enter a Postcode';
|
|
11140
|
-
WriteAddressFieldComponent.INVALID_ERROR_MESSAGE = 'Enter a valid Postcode';
|
|
11141
11101
|
WriteAddressFieldComponent.ɵfac = function WriteAddressFieldComponent_Factory(t) { return new (t || WriteAddressFieldComponent)(i0.ɵɵdirectiveInject(AddressesService), i0.ɵɵdirectiveInject(IsCompoundPipe)); };
|
|
11142
11102
|
WriteAddressFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteAddressFieldComponent, selectors: [["ccd-write-address-field"]], viewQuery: function WriteAddressFieldComponent_Query(rf, ctx) { if (rf & 1) {
|
|
11143
11103
|
i0.ɵɵviewQuery(_c0$U, 5);
|
|
@@ -11146,7 +11106,7 @@ WriteAddressFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
11146
11106
|
let _t;
|
|
11147
11107
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.writeComplexFieldComponent = _t.first);
|
|
11148
11108
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.focusElementDirectives = _t);
|
|
11149
|
-
} }, inputs: { formGroup: "formGroup" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [[1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], ["writeComplexFieldComponent", ""], [1, "heading-h2"], ["class", "form-group bottom-30 postcodeLookup", 3, "id", "ngClass", 4, "ngIf"], ["class", "form-group", "id", "selectAddress",
|
|
11109
|
+
} }, inputs: { formGroup: "formGroup" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [[1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], ["writeComplexFieldComponent", ""], [1, "heading-h2"], ["class", "form-group bottom-30 postcodeLookup", 3, "id", "ngClass", 4, "ngIf"], ["class", "form-group", "id", "selectAddress", 4, "ngIf"], ["class", "manual-link bottom-30", "href", "javascript:void(0)", 3, "click", 4, "ngIf"], [1, "form-group", "bottom-30", "postcodeLookup", 3, "id", "ngClass"], [3, "for"], [1, "form-label"], ["class", "error-message", 4, "ngIf"], ["type", "text", "name", "postcode", 1, "form-control", "postcodeinput", "inline-block", 3, "ngClass", "id", "formControl"], ["type", "button", 1, "button", "button-30", 3, "click"], [1, "error-message"], ["id", "selectAddress", 1, "form-group"], ["name", "address", "focusElement", "", 1, "form-control", "ccd-dropdown", "addressList", 3, "id", "formControl", "change"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "javascript:void(0)", 1, "manual-link", "bottom-30", 3, "click"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
11150
11110
|
i0.ɵɵelementStart(0, "div", 0);
|
|
11151
11111
|
i0.ɵɵtemplate(1, WriteAddressFieldComponent_div_1_Template, 7, 6, "div", 1);
|
|
11152
11112
|
i0.ɵɵelement(2, "ccd-write-complex-type-field", 2, 3);
|
|
@@ -11160,7 +11120,7 @@ WriteAddressFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
11160
11120
|
} }, styles: [".manual-link[_ngcontent-%COMP%]{cursor:pointer;display:block;text-decoration:underline}"] });
|
|
11161
11121
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteAddressFieldComponent, [{
|
|
11162
11122
|
type: Component,
|
|
11163
|
-
args: [{ selector: 'ccd-write-address-field', template: "<div class=\"form-group\" [id]=\"id()\">\n <div *ngIf=\"!isComplexWithHiddenFields()\">\n <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n\n <div class=\"form-group bottom-30 postcodeLookup\" [id]=\"createElementId('postcodeLookup')\" [ngClass]=\"{'form-group-error': missingPostcode}\" *ngIf=\"!isExpanded\">\n <label [for]=\"createElementId('postcodeInput')\">\n <span class=\"form-label\">{{'Enter a UK postcode' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"missingPostcode\">{{
|
|
11123
|
+
args: [{ selector: 'ccd-write-address-field', template: "<div class=\"form-group\" [id]=\"id()\">\n <div *ngIf=\"!isComplexWithHiddenFields()\">\n <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n\n <div class=\"form-group bottom-30 postcodeLookup\" [id]=\"createElementId('postcodeLookup')\" [ngClass]=\"{'form-group-error': missingPostcode}\" *ngIf=\"!isExpanded\">\n <label [for]=\"createElementId('postcodeInput')\">\n <span class=\"form-label\">{{'Enter a UK postcode' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"missingPostcode\">{{'Enter the Postcode' | rpxTranslate}}</span>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\"\n [id]=\"createElementId('postcodeInput')\" name=\"postcode\" class=\"form-control postcodeinput inline-block\" [formControl]=\"postcode\">\n <button type=\"button\" class=\"button button-30\" (click)=\"findAddress()\">{{'Find address' | rpxTranslate}}</button>\n </div>\n\n <div class=\"form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\">\n <label [for]=\"createElementId('addressList')\">\n <span class=\"form-label\">{{'Select an address' | rpxTranslate}}</span>\n </label>\n\n <select class=\"form-control ccd-dropdown addressList\" [id]=\"createElementId('addressList')\" name=\"address\" [formControl]=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description | rpxTranslate}}\n </option>\n </select>\n </div>\n\n <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress()\" href=\"javascript:void(0)\">\n {{\"I can't enter a UK postcode\" | rpxTranslate}}\n </a>\n </div>\n\n <ccd-write-complex-type-field\n [hidden]=\"!shouldShowDetailFields()\"\n [caseField]=\"caseField\"\n [renderLabel]=\"false\"\n [parent]=\"parent\"\n [formGroup]=\"formGroup\"\n [ignoreMandatory]=\"true\"\n [idPrefix]=\"buildIdPrefix('detail')\"\n #writeComplexFieldComponent>\n </ccd-write-complex-type-field>\n</div>\n", styles: [".manual-link{cursor:pointer;display:block;text-decoration:underline}\n"] }]
|
|
11164
11124
|
}], function () { return [{ type: AddressesService }, { type: IsCompoundPipe }]; }, { writeComplexFieldComponent: [{
|
|
11165
11125
|
type: ViewChild,
|
|
11166
11126
|
args: ['writeComplexFieldComponent', { static: false }]
|
|
@@ -13453,7 +13413,7 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
13453
13413
|
subscribeToCaseDetails() {
|
|
13454
13414
|
this.caseNotifierSubscription = this.caseNotifier.caseView.subscribe({
|
|
13455
13415
|
next: (caseDetails) => {
|
|
13456
|
-
this.caseTypeId = caseDetails?.
|
|
13416
|
+
this.caseTypeId = caseDetails?.case_type.id;
|
|
13457
13417
|
this.jurisdictionId = caseDetails?.case_type?.jurisdiction?.id;
|
|
13458
13418
|
}
|
|
13459
13419
|
});
|