@hmcts/ccd-case-ui-toolkit 7.0.14-address-field-check → 7.0.14-caseview-ordering

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.
Files changed (27) hide show
  1. package/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +6 -15
  2. package/esm2020/lib/shared/components/palette/address/write-address-field.component.mjs +18 -55
  3. package/esm2020/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +1 -5
  4. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +3 -2
  5. package/esm2020/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +1 -1
  6. package/esm2020/lib/shared/domain/http/http-error.model.mjs +2 -8
  7. package/esm2020/lib/shared/services/addresses/addresses.service.mjs +1 -9
  8. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +24 -102
  9. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  10. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +24 -96
  11. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  12. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +2 -3
  13. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  14. package/lib/shared/components/palette/address/write-address-field.component.d.ts +0 -5
  15. package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -1
  16. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
  17. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts.map +1 -1
  18. package/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.d.ts +1 -0
  19. package/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.d.ts.map +1 -1
  20. package/lib/shared/domain/http/http-error.model.d.ts +0 -1
  21. package/lib/shared/domain/http/http-error.model.d.ts.map +1 -1
  22. package/lib/shared/services/addresses/addresses.service.d.ts +0 -3
  23. package/lib/shared/services/addresses/addresses.service.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/esm2020/lib/shared/commons/address-validation-constants.mjs +0 -13
  26. package/lib/shared/commons/address-validation-constants.d.ts +0 -7
  27. 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, BehaviorSubject, of, timer, fromEvent, forkJoin, Subscription, combineLatest } from 'rxjs';
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((key) => {
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
  }
@@ -9633,7 +9616,7 @@ function CaseEditPageComponent_ccd_case_event_completion_11_Template(rf, ctx) {
9633
9616
  i0.ɵɵproperty("eventCompletionParams", ctx_r8.caseEdit.eventCompletionParams);
9634
9617
  } }
9635
9618
  class CaseEditPageComponent {
9636
- constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService, addressService) {
9619
+ constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService) {
9637
9620
  this.caseEdit = caseEdit;
9638
9621
  this.route = route;
9639
9622
  this.formValueService = formValueService;
@@ -9645,7 +9628,6 @@ class CaseEditPageComponent {
9645
9628
  this.caseEditDataService = caseEditDataService;
9646
9629
  this.loadingService = loadingService;
9647
9630
  this.validPageListCaseFieldsService = validPageListCaseFieldsService;
9648
- this.addressService = addressService;
9649
9631
  this.triggerTextStart = CaseEditPageComponent.TRIGGER_TEXT_START;
9650
9632
  this.triggerTextIgnoreWarnings = CaseEditPageComponent.TRIGGER_TEXT_CONTINUE;
9651
9633
  this.formValuesChanged = false;
@@ -9768,14 +9750,7 @@ class CaseEditPageComponent {
9768
9750
  }
9769
9751
  }
9770
9752
  if (fieldElement.hasError('required')) {
9771
- if (casefield.id === 'AddressLine1') {
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
- }
9753
+ this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is required`, label });
9779
9754
  fieldElement.markAsDirty();
9780
9755
  // For the JudicialUser field type, an error needs to be set on the component so that an error message
9781
9756
  // can be displayed at field level
@@ -9850,7 +9825,6 @@ class CaseEditPageComponent {
9850
9825
  }
9851
9826
  }
9852
9827
  if (!this.caseEdit.isSubmitting && !this.currentPageIsNotValid()) {
9853
- this.addressService.setMandatoryError(false);
9854
9828
  console.log('Case Edit Error', this.caseEdit.error);
9855
9829
  if (this.caseEdit.validPageList.findIndex(page => page.id === this.currentPage.id) === -1) {
9856
9830
  this.caseEdit.validPageList.push(this.currentPage);
@@ -10150,7 +10124,7 @@ CaseEditPageComponent.RESUMED_FORM_SAVE = 'RESUMED_FORM_SAVE';
10150
10124
  CaseEditPageComponent.TRIGGER_TEXT_START = 'Continue';
10151
10125
  CaseEditPageComponent.TRIGGER_TEXT_SAVE = 'Save and continue';
10152
10126
  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), i0.ɵɵdirectiveInject(AddressesService)); };
10127
+ 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
10128
  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
10129
  i0.ɵɵtemplate(0, CaseEditPageComponent_ng_container_0_Template, 3, 2, "ng-container", 0);
10156
10130
  i0.ɵɵtemplate(1, CaseEditPageComponent_div_1_Template, 1, 0, "div", 1);
@@ -10185,7 +10159,7 @@ CaseEditPageComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseE
10185
10159
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditPageComponent, [{
10186
10160
  type: Component,
10187
10161
  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 }, { type: AddressesService }]; }, null); })();
10162
+ }], 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
10163
 
10190
10164
  class CallbackErrorsContext {
10191
10165
  }
@@ -10632,17 +10606,6 @@ class AddressOption {
10632
10606
  }
10633
10607
  }
10634
10608
 
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
10609
  class FieldsFilterPipe {
10647
10610
  /**
10648
10611
  * Complex type should have at least on simple field descendant with a value.
@@ -10909,9 +10872,8 @@ function WriteAddressFieldComponent_div_1_div_4_span_5_Template(rf, ctx) { if (r
10909
10872
  i0.ɵɵpipe(2, "rpxTranslate");
10910
10873
  i0.ɵɵelementEnd();
10911
10874
  } if (rf & 2) {
10912
- const ctx_r5 = i0.ɵɵnextContext(3);
10913
10875
  i0.ɵɵadvance(1);
10914
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r5.errorMessage));
10876
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Enter the Postcode"));
10915
10877
  } }
10916
10878
  const _c1$n = function (a0) { return { "form-group-error": a0 }; };
10917
10879
  const _c2$2 = function (a0) { return { "govuk-input--error": a0 }; };
@@ -10942,56 +10904,42 @@ function WriteAddressFieldComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1)
10942
10904
  i0.ɵɵadvance(2);
10943
10905
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 11, "Find address"));
10944
10906
  } }
10945
- function WriteAddressFieldComponent_div_1_div_5_span_5_Template(rf, ctx) { if (rf & 1) {
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) {
10907
+ function WriteAddressFieldComponent_div_1_div_5_option_6_Template(rf, ctx) { if (rf & 1) {
10956
10908
  i0.ɵɵelementStart(0, "option", 18);
10957
10909
  i0.ɵɵtext(1);
10958
10910
  i0.ɵɵpipe(2, "rpxTranslate");
10959
10911
  i0.ɵɵelementEnd();
10960
10912
  } if (rf & 2) {
10961
- const addressOption_r10 = ctx.$implicit;
10962
- i0.ɵɵproperty("ngValue", addressOption_r10.value);
10913
+ const addressOption_r9 = ctx.$implicit;
10914
+ i0.ɵɵproperty("ngValue", addressOption_r9.value);
10963
10915
  i0.ɵɵadvance(1);
10964
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, addressOption_r10.description), " ");
10916
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, addressOption_r9.description), " ");
10965
10917
  } }
10966
10918
  function WriteAddressFieldComponent_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
10967
- const _r12 = i0.ɵɵgetCurrentView();
10919
+ const _r11 = i0.ɵɵgetCurrentView();
10968
10920
  i0.ɵɵelementStart(0, "div", 15)(1, "label", 9)(2, "span", 10);
10969
10921
  i0.ɵɵtext(3);
10970
10922
  i0.ɵɵpipe(4, "rpxTranslate");
10971
10923
  i0.ɵɵelementEnd()();
10972
- i0.ɵɵtemplate(5, WriteAddressFieldComponent_div_1_div_5_span_5_Template, 3, 3, "span", 11);
10973
- i0.ɵɵelementStart(6, "select", 16);
10974
- i0.ɵɵlistener("change", function WriteAddressFieldComponent_div_1_div_5_Template_select_change_6_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r11.addressSelected()); });
10975
- i0.ɵɵtemplate(7, WriteAddressFieldComponent_div_1_div_5_option_7_Template, 3, 4, "option", 17);
10924
+ i0.ɵɵelementStart(5, "select", 16);
10925
+ 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()); });
10926
+ i0.ɵɵtemplate(6, WriteAddressFieldComponent_div_1_div_5_option_6_Template, 3, 4, "option", 17);
10976
10927
  i0.ɵɵelementEnd()();
10977
10928
  } if (rf & 2) {
10978
10929
  const ctx_r3 = i0.ɵɵnextContext(2);
10979
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c1$n, ctx_r3.noAddressSelected));
10980
10930
  i0.ɵɵadvance(1);
10981
10931
  i0.ɵɵproperty("for", ctx_r3.createElementId("addressList"));
10982
10932
  i0.ɵɵadvance(2);
10983
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 7, "Select an address"));
10933
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 5, "Select an address"));
10984
10934
  i0.ɵɵadvance(2);
10985
- i0.ɵɵproperty("ngIf", ctx_r3.noAddressSelected);
10986
- i0.ɵɵadvance(1);
10987
10935
  i0.ɵɵproperty("id", ctx_r3.createElementId("addressList"))("formControl", ctx_r3.addressList);
10988
10936
  i0.ɵɵadvance(1);
10989
10937
  i0.ɵɵproperty("ngForOf", ctx_r3.addressOptions);
10990
10938
  } }
10991
10939
  function WriteAddressFieldComponent_div_1_a_6_Template(rf, ctx) { if (rf & 1) {
10992
- const _r14 = i0.ɵɵgetCurrentView();
10940
+ const _r13 = i0.ɵɵgetCurrentView();
10993
10941
  i0.ɵɵelementStart(0, "a", 19);
10994
- i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_1_a_6_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r13.blankAddress()); });
10942
+ 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
10943
  i0.ɵɵtext(1);
10996
10944
  i0.ɵɵpipe(2, "rpxTranslate");
10997
10945
  i0.ɵɵelementEnd();
@@ -11005,7 +10953,7 @@ function WriteAddressFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
11005
10953
  i0.ɵɵpipe(3, "ccdFieldLabel");
11006
10954
  i0.ɵɵelementEnd();
11007
10955
  i0.ɵɵtemplate(4, WriteAddressFieldComponent_div_1_div_4_Template, 10, 17, "div", 5);
11008
- i0.ɵɵtemplate(5, WriteAddressFieldComponent_div_1_div_5_Template, 8, 11, "div", 6);
10956
+ i0.ɵɵtemplate(5, WriteAddressFieldComponent_div_1_div_5_Template, 7, 7, "div", 6);
11009
10957
  i0.ɵɵtemplate(6, WriteAddressFieldComponent_div_1_a_6_Template, 3, 3, "a", 7);
11010
10958
  i0.ɵɵelementEnd();
11011
10959
  } if (rf & 2) {
@@ -11024,30 +10972,19 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
11024
10972
  super();
11025
10973
  this.isCompoundPipe = isCompoundPipe;
11026
10974
  this.addressFormGroup = new FormGroup({});
11027
- this.errorMessage = WriteAddressFieldComponent.REQUIRED_ERROR_MESSAGE;
11028
10975
  this.missingPostcode = false;
11029
- this.noAddressSelected = false;
11030
10976
  this.addressesService = addressesService;
11031
10977
  }
11032
10978
  ngOnInit() {
11033
10979
  if (!this.isComplexWithHiddenFields()) {
11034
- this.postcode = new FormControl('', [Validators.required]);
10980
+ this.postcode = new FormControl('');
11035
10981
  this.addressFormGroup.addControl('postcode', this.postcode);
11036
10982
  this.addressList = new FormControl('');
11037
10983
  this.addressFormGroup.addControl('address', this.addressList);
11038
10984
  }
11039
- this.addressesService.getMandatoryError().subscribe((value) => {
11040
- this.updateErrorsOnContinue(value);
11041
- });
11042
10985
  }
11043
10986
  findAddress() {
11044
- this.noAddressSelected = false;
11045
10987
  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
10988
  this.missingPostcode = true;
11052
10989
  }
11053
10990
  else {
@@ -11076,8 +11013,6 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
11076
11013
  blankAddress() {
11077
11014
  this.caseField.value = new AddressModel();
11078
11015
  this.setFormValue();
11079
- this.missingPostcode = false;
11080
- this.noAddressSelected = false;
11081
11016
  }
11082
11017
  isComplexWithHiddenFields() {
11083
11018
  if (this.caseField.isComplex() && this.caseField.field_type.complex_fields
@@ -11109,7 +11044,6 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
11109
11044
  addressSelected() {
11110
11045
  this.caseField.value = this.addressList.value;
11111
11046
  this.setFormValue();
11112
- this.noAddressSelected = false;
11113
11047
  }
11114
11048
  ngOnChanges(changes) {
11115
11049
  super.ngOnChanges(changes);
@@ -11130,14 +11064,7 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
11130
11064
  this.writeComplexFieldComponent.complexGroup.setValue(this.caseField.value);
11131
11065
  }
11132
11066
  }
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
11067
  }
11139
- WriteAddressFieldComponent.REQUIRED_ERROR_MESSAGE = 'Enter a Postcode';
11140
- WriteAddressFieldComponent.INVALID_ERROR_MESSAGE = 'Enter a valid Postcode';
11141
11068
  WriteAddressFieldComponent.ɵfac = function WriteAddressFieldComponent_Factory(t) { return new (t || WriteAddressFieldComponent)(i0.ɵɵdirectiveInject(AddressesService), i0.ɵɵdirectiveInject(IsCompoundPipe)); };
11142
11069
  WriteAddressFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteAddressFieldComponent, selectors: [["ccd-write-address-field"]], viewQuery: function WriteAddressFieldComponent_Query(rf, ctx) { if (rf & 1) {
11143
11070
  i0.ɵɵviewQuery(_c0$U, 5);
@@ -11146,7 +11073,7 @@ WriteAddressFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
11146
11073
  let _t;
11147
11074
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.writeComplexFieldComponent = _t.first);
11148
11075
  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", 3, "ngClass", 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", 3, "ngClass"], ["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) {
11076
+ } }, 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
11077
  i0.ɵɵelementStart(0, "div", 0);
11151
11078
  i0.ɵɵtemplate(1, WriteAddressFieldComponent_div_1_Template, 7, 6, "div", 1);
11152
11079
  i0.ɵɵelement(2, "ccd-write-complex-type-field", 2, 3);
@@ -11160,7 +11087,7 @@ WriteAddressFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
11160
11087
  } }, styles: [".manual-link[_ngcontent-%COMP%]{cursor:pointer;display:block;text-decoration:underline}"] });
11161
11088
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteAddressFieldComponent, [{
11162
11089
  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\">{{errorMessage | 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\" [ngClass]=\"{'form-group-error': noAddressSelected}\">\n <label [for]=\"createElementId('addressList')\">\n <span class=\"form-label\">{{'Select an address' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"noAddressSelected\">{{errorMessage | rpxTranslate}}</span>\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"] }]
11090
+ 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
11091
  }], function () { return [{ type: AddressesService }, { type: IsCompoundPipe }]; }, { writeComplexFieldComponent: [{
11165
11092
  type: ViewChild,
11166
11093
  args: ['writeComplexFieldComponent', { static: false }]
@@ -21401,10 +21328,11 @@ class CaseFileViewFolderComponent {
21401
21328
  newDocumentTreeNode.name = node.category_name;
21402
21329
  newDocumentTreeNode.type = DocumentTreeNodeType.FOLDER;
21403
21330
  newDocumentTreeNode.children = [...this.generateTreeData(node.sub_categories), ...this.getDocuments(node.documents)];
21331
+ newDocumentTreeNode.category_order = node.category_order;
21404
21332
  return [
21405
21333
  ...tree,
21406
21334
  newDocumentTreeNode,
21407
- ];
21335
+ ].sort((a, b) => a.category_order - b.category_order);
21408
21336
  }, []);
21409
21337
  }
21410
21338
  getDocuments(documents) {