@hmcts/ccd-case-ui-toolkit 7.0.64-ungrey-back-button → 7.0.64-ungrey-back-button-3

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 (16) hide show
  1. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +3 -3
  2. package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +61 -19
  3. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +13 -1
  4. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +2 -2
  5. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +1 -3
  6. package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +2 -1
  7. package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -2
  8. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +77 -24
  9. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  10. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +7 -2
  11. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  12. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +1 -0
  13. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  14. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -1
  15. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -1
  16. package/package.json +1 -1
@@ -41,6 +41,7 @@ import { OverlayModule } from '@angular/cdk/overlay';
41
41
  import * as i7 from '@angular/cdk/tree';
42
42
  import { NestedTreeControl, CdkTreeModule } from '@angular/cdk/tree';
43
43
  import moment$1 from 'moment/moment';
44
+ import { cloneDeep } from 'lodash';
44
45
  import * as i4$1 from '@angular-material-components/datetime-picker';
45
46
  import { NGX_MAT_DATE_FORMATS, NgxMatDateAdapter, NgxMatDatetimePickerModule, NgxMatTimepickerModule, NgxMatNativeDateModule } from '@angular-material-components/datetime-picker';
46
47
  import { NgxMatMomentAdapter, NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular-material-components/moment-adapter';
@@ -10286,6 +10287,7 @@ class LinkedCasesService {
10286
10287
  }),
10287
10288
  };
10288
10289
  });
10290
+ this.initialCaseLinks = this.linkedCases;
10289
10291
  this.serverLinkedApiError = null;
10290
10292
  }, err => {
10291
10293
  this.serverLinkedApiError = {
@@ -13150,7 +13152,7 @@ class WriteCaseFlagFieldComponent extends AbstractFieldWriteJourneyComponent {
13150
13152
  if (this.navigatedTo) {
13151
13153
  const pageNo = this.fieldState === CaseFlagFieldState.FLAG_STATUS ? this.fieldState - 1 : this.fieldState;
13152
13154
  this.journeyPageNumber = pageNo;
13153
- this.journeyPreviousPageNumber = pageNo;
13155
+ this.journeyPreviousPageNumber = pageNo + 1;
13154
13156
  }
13155
13157
  // Provided we have some stored state, i.e. when going backwards, we want
13156
13158
  // to get the last visited page, etc.
@@ -16902,7 +16904,6 @@ class LinkCasesComponent extends AbstractJourneyComponent {
16902
16904
  this.initForm();
16903
16905
  if (!this.linkedCasesService.hasNavigatedInJourney) {
16904
16906
  this.linkedCasesService.linkedCases = [];
16905
- this.linkedCasesService.caseFieldValue = [];
16906
16907
  }
16907
16908
  if (this.linkedCasesService.editMode || this.linkedCasesService.linkedCases.length) {
16908
16909
  // this may have includes the currently added one but yet to be submitted.
@@ -17054,7 +17055,6 @@ class LinkCasesComponent extends AbstractJourneyComponent {
17054
17055
  CreatedDateTime: moment(new Date()).format(this.ISO_FORMAT),
17055
17056
  ReasonForLink: this.getSelectedCCDTypeCaseReason()
17056
17057
  };
17057
- this.linkedCasesService.caseFieldValue = [];
17058
17058
  this.linkedCasesService.caseFieldValue.push({ id: caseView.case_id.toString(), value: ccdApiCaseLinkData });
17059
17059
  this.selectedCases.push(caseLink);
17060
17060
  this.linkCaseReasons.forEach(reason => reason.selected = false);
@@ -23549,7 +23549,7 @@ function CaseFlagSummaryListComponent_dl_0_Template(rf, ctx) { if (rf & 1) {
23549
23549
  i0.ɵɵtext(20);
23550
23550
  i0.ɵɵelementEnd();
23551
23551
  i0.ɵɵelementStart(21, "dd", 5)(22, "a", 6);
23552
- i0.ɵɵlistener("click", function CaseFlagSummaryListComponent_dl_0_Template_a_click_22_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeButtonEmitter.emit(ctx_r1.summaryListDisplayMode === ctx_r1.displayMode.MANAGE ? ctx_r1.caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : ctx_r1.caseFlagFieldState.FLAG_TYPE)); });
23552
+ i0.ɵɵlistener("click", function CaseFlagSummaryListComponent_dl_0_Template_a_click_22_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeButtonEmitter.emit(ctx_r1.summaryListDisplayMode === ctx_r1.displayMode.MANAGE ? ctx_r1.caseFlagFieldState.FLAG_UPDATE : ctx_r1.caseFlagFieldState.FLAG_TYPE)); });
23553
23553
  i0.ɵɵtext(23);
23554
23554
  i0.ɵɵpipe(24, "rpxTranslate");
23555
23555
  i0.ɵɵelementStart(25, "span", 7);
@@ -23708,7 +23708,7 @@ class CaseFlagSummaryListComponent {
23708
23708
  }
23709
23709
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFlagSummaryListComponent, [{
23710
23710
  type: Component,
23711
- args: [{ selector: 'ccd-case-flag-summary-list', template: "<dl class=\"govuk-summary-list\" *ngIf=\"flagForSummaryDisplay\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{addUpdateFlagHeaderText | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagForSummaryDisplay.partyName || caseFlagCheckYourAnswersPageStep.CASE_LEVEL_LOCATION | rpxTranslate}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : caseFlagFieldState.FLAG_LOCATION)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'party name' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{flagTypeHeaderText | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagDescription}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : caseFlagFieldState.FLAG_TYPE)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'flag type' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagDescriptionWelsh?.length > 0 && !externalUserUpdate\">\n <dt class=\"govuk-summary-list__key\">\n {{'Other description (Welsh)' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagDescriptionWelsh}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_TYPE)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'other description (Welsh)' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagComments?.length > 0\">\n <dt class=\"govuk-summary-list__key\">\n {{'Comments' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{externalUserUpdate ? flagUpdateComments : flagComments}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_COMMENTS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagCommentsWelsh?.length > 0 && !externalUserUpdate\">\n <dt class=\"govuk-summary-list__key\">\n {{'Comments (Welsh)' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagCommentsWelsh}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_COMMENTS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments (Welsh)' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{'Status' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagStatus | rpxTranslate}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a *ngIf=\"is2Point1Enabled\" class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_STATUS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'status' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n</dl>\n" }]
23711
+ args: [{ selector: 'ccd-case-flag-summary-list', template: "<dl class=\"govuk-summary-list\" *ngIf=\"flagForSummaryDisplay\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{addUpdateFlagHeaderText | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagForSummaryDisplay.partyName || caseFlagCheckYourAnswersPageStep.CASE_LEVEL_LOCATION | rpxTranslate}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : caseFlagFieldState.FLAG_LOCATION)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'party name' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{flagTypeHeaderText | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagDescription}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_TYPE)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'flag type' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagDescriptionWelsh?.length > 0 && !externalUserUpdate\">\n <dt class=\"govuk-summary-list__key\">\n {{'Other description (Welsh)' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagDescriptionWelsh}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_TYPE)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'other description (Welsh)' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagComments?.length > 0\">\n <dt class=\"govuk-summary-list__key\">\n {{'Comments' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{externalUserUpdate ? flagUpdateComments : flagComments}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_COMMENTS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagCommentsWelsh?.length > 0 && !externalUserUpdate\">\n <dt class=\"govuk-summary-list__key\">\n {{'Comments (Welsh)' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagCommentsWelsh}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_COMMENTS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments (Welsh)' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{'Status' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagStatus | rpxTranslate}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a *ngIf=\"is2Point1Enabled\" class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_STATUS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'status' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n</dl>\n" }]
23712
23712
  }], () => [{ type: i1.RpxTranslationService }], { flagForSummaryDisplay: [{
23713
23713
  type: Input
23714
23714
  }], displayContextParameter: [{
@@ -23938,20 +23938,23 @@ function ManageCaseFlagsComponent_div_7_Template(rf, ctx) { if (rf & 1) {
23938
23938
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r0.manageCaseFlagSelectedErrorMessage), " ");
23939
23939
  } }
23940
23940
  function ManageCaseFlagsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
23941
- i0.ɵɵelementStart(0, "div", 10);
23942
- i0.ɵɵelement(1, "input", 11)(2, "label", 12);
23941
+ const _r2 = i0.ɵɵgetCurrentView();
23942
+ i0.ɵɵelementStart(0, "div", 10)(1, "input", 11);
23943
+ i0.ɵɵlistener("change", function ManageCaseFlagsComponent_div_9_Template_input_change_1_listener() { const flagDisplay_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onFlagSelectionChange(flagDisplay_r3)); });
23944
+ i0.ɵɵelementEnd();
23945
+ i0.ɵɵelement(2, "label", 12);
23943
23946
  i0.ɵɵpipe(3, "manageCaseFlagsLabelDisplay");
23944
23947
  i0.ɵɵelementEnd();
23945
23948
  } if (rf & 2) {
23946
- const flagDisplay_r2 = ctx.$implicit;
23947
- const i_r3 = ctx.index;
23949
+ const flagDisplay_r3 = ctx.$implicit;
23950
+ const i_r4 = ctx.index;
23948
23951
  const ctx_r0 = i0.ɵɵnextContext();
23949
23952
  i0.ɵɵadvance();
23950
- i0.ɵɵpropertyInterpolate1("id", "flag-selection-", i_r3, "");
23951
- i0.ɵɵproperty("name", ctx_r0.selectedControlName)("value", flagDisplay_r2)("formControlName", ctx_r0.selectedControlName);
23953
+ i0.ɵɵpropertyInterpolate1("id", "flag-selection-", i_r4, "");
23954
+ i0.ɵɵproperty("checked", ctx_r0.isSelected(flagDisplay_r3));
23952
23955
  i0.ɵɵadvance();
23953
- i0.ɵɵpropertyInterpolate1("for", "flag-selection-", i_r3, "");
23954
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 8, flagDisplay_r2), i0.ɵɵsanitizeHtml);
23956
+ i0.ɵɵpropertyInterpolate1("for", "flag-selection-", i_r4, "");
23957
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 6, flagDisplay_r3), i0.ɵɵsanitizeHtml);
23955
23958
  } }
23956
23959
  class ManageCaseFlagsComponent extends AbstractJourneyComponent {
23957
23960
  formGroup;
@@ -23967,13 +23970,22 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
23967
23970
  noFlagsError = false;
23968
23971
  selectedControlName = 'selectedManageCaseLocation';
23969
23972
  excludedFlagStatuses = [CaseFlagStatus.INACTIVE, CaseFlagStatus.NOT_APPROVED];
23973
+ cachedControls;
23970
23974
  ngOnInit() {
23971
23975
  this.manageCaseFlagTitle = this.setManageCaseFlagTitle(this.displayContextParameter);
23972
23976
  let originalStatus;
23977
+ let originalPathToFlag;
23973
23978
  // if the user has progressed to CYA and then navigated away, the flag they selected will be set as inactive, we need to reset this
23974
- if (this.formGroup.get('selectedManageCaseLocation')) {
23975
- const locationControl = this.formGroup.get('selectedManageCaseLocation');
23976
- originalStatus = locationControl.value?.originalStatus;
23979
+ const locationControl = this.formGroup.get(this.selectedControlName);
23980
+ if (locationControl) {
23981
+ originalStatus = locationControl?.value?.originalStatus;
23982
+ originalPathToFlag = locationControl?.value?.pathToFlagsFormGroup;
23983
+ this.cachedControls = cloneDeep(this.formGroup.controls);
23984
+ Object.keys(this.formGroup.controls).forEach((controlName) => {
23985
+ if (controlName !== this.selectedControlName) {
23986
+ this.formGroup.removeControl(controlName);
23987
+ }
23988
+ });
23977
23989
  }
23978
23990
  // Map flags instances to objects for display, filtering out any where the original status is either "Inactive" or
23979
23991
  // "Not approved"
@@ -23984,7 +23996,7 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
23984
23996
  if (flagsInstance.flags.details && flagsInstance.flags.details.length > 0) {
23985
23997
  displayData = [
23986
23998
  ...displayData,
23987
- ...flagsInstance.flags.details.map((detail) => this.mapFlagDetailForDisplay(detail, flagsInstance, originalStatus))
23999
+ ...flagsInstance.flags.details.map((detail) => this.mapFlagDetailForDisplay(detail, flagsInstance, originalStatus, originalPathToFlag))
23988
24000
  ];
23989
24001
  }
23990
24002
  return displayData;
@@ -24000,7 +24012,17 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
24000
24012
  this.onNoFlagsError();
24001
24013
  }
24002
24014
  }
24003
- mapFlagDetailForDisplay(flagDetail, flagsInstance, originalStatusFromFG) {
24015
+ onFlagSelectionChange(selectedFlag) {
24016
+ this.formGroup.get(this.selectedControlName).setValue(selectedFlag);
24017
+ }
24018
+ isSelected(flagDisplay) {
24019
+ const selectedFlag = this.formGroup.get(this.selectedControlName)?.value;
24020
+ return selectedFlag && this.getFlagID(selectedFlag) === this.getFlagID(flagDisplay);
24021
+ }
24022
+ getFlagID(flag) {
24023
+ return flag?.flagDetailDisplay?.flagDetail?.id || '';
24024
+ }
24025
+ mapFlagDetailForDisplay(flagDetail, flagsInstance, originalStatusFromFG, originalPathToFlag) {
24004
24026
  // Reset the flag status with the original persisted status. This is needed because ngOnInit() needs to filter
24005
24027
  // out any "Inactive" or "Not approved" flags based on their status *before* modification. If the user changes a
24006
24028
  // flag's status then decides to return to the start of the flag update journey, the flag's status would no
@@ -24023,7 +24045,13 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
24023
24045
  }
24024
24046
  if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
24025
24047
  const originalFlagDetail = formattedValue.details?.find((detail) => detail.id === flagDetail.id);
24026
- const statusToUse = originalStatusFromFG ? (originalStatusFromFG === originalFlagDetail.value?.status ? originalFlagDetail.value?.status : originalStatusFromFG) : originalFlagDetail.value?.status;
24048
+ let statusToUse;
24049
+ if (flagsInstance.pathToFlagsFormGroup === originalPathToFlag) {
24050
+ statusToUse = originalStatusFromFG ? (originalStatusFromFG === originalFlagDetail.value?.status ? originalFlagDetail.value?.status : originalStatusFromFG) : originalFlagDetail.value?.status;
24051
+ }
24052
+ else {
24053
+ statusToUse = originalFlagDetail.value?.status;
24054
+ }
24027
24055
  if (originalFlagDetail) {
24028
24056
  originalStatus = statusToUse;
24029
24057
  flagDetail.flagComment = originalFlagDetail.value?.flagComment;
@@ -24096,12 +24124,25 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
24096
24124
  }
24097
24125
  next() {
24098
24126
  this.onNext();
24127
+ const cachedControl = this.cachedControls?.[this.selectedControlName];
24128
+ if (cachedControl && this.getFlagID(cachedControl.value) === this.getFlagID(this.formGroup.value[this.selectedControlName])) {
24129
+ this.reapplyCachedControls();
24130
+ }
24099
24131
  if (this.errorMessages.length === 0) {
24100
24132
  super.next();
24101
24133
  }
24102
24134
  }
24135
+ reapplyCachedControls() {
24136
+ if (this.cachedControls) {
24137
+ Object.keys(this.cachedControls).forEach((controlName) => {
24138
+ if (!this.formGroup.contains(controlName)) {
24139
+ this.formGroup.addControl(controlName, this.cachedControls[controlName]);
24140
+ }
24141
+ });
24142
+ }
24143
+ }
24103
24144
  static ɵfac = /*@__PURE__*/ (() => { let ɵManageCaseFlagsComponent_BaseFactory; return function ManageCaseFlagsComponent_Factory(t) { return (ɵManageCaseFlagsComponent_BaseFactory || (ɵManageCaseFlagsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ManageCaseFlagsComponent)))(t || ManageCaseFlagsComponent); }; })();
24104
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle", displayContextParameter: "displayContextParameter" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 9, consts: [[3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "manage-case-flag-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--m"], ["id", "manage-case-flag-heading", 1, "govuk-fieldset__heading"], ["id", "manage-case-flag-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["id", "manage-case-flag-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "value", "formControlName"], [1, "govuk-label", "govuk-radios__label", 3, "for", "innerHtml"]], template: function ManageCaseFlagsComponent_Template(rf, ctx) { if (rf & 1) {
24145
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle", displayContextParameter: "displayContextParameter" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 9, consts: [[3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "manage-case-flag-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--m"], ["id", "manage-case-flag-heading", 1, "govuk-fieldset__heading"], ["id", "manage-case-flag-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["id", "manage-case-flag-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "change", "id", "checked"], [1, "govuk-label", "govuk-radios__label", 3, "for", "innerHtml"]], template: function ManageCaseFlagsComponent_Template(rf, ctx) { if (rf & 1) {
24105
24146
  i0.ɵɵelementContainerStart(0, 0);
24106
24147
  i0.ɵɵelementStart(1, "div", 1)(2, "fieldset", 2)(3, "legend", 3)(4, "h1", 4);
24107
24148
  i0.ɵɵtext(5);
@@ -24109,7 +24150,7 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
24109
24150
  i0.ɵɵelementEnd()();
24110
24151
  i0.ɵɵtemplate(7, ManageCaseFlagsComponent_div_7_Template, 6, 6, "div", 5);
24111
24152
  i0.ɵɵelementStart(8, "div", 6);
24112
- i0.ɵɵtemplate(9, ManageCaseFlagsComponent_div_9_Template, 4, 10, "div", 7);
24153
+ i0.ɵɵtemplate(9, ManageCaseFlagsComponent_div_9_Template, 4, 8, "div", 7);
24113
24154
  i0.ɵɵelementEnd()()();
24114
24155
  i0.ɵɵelementContainerEnd();
24115
24156
  } if (rf & 2) {
@@ -24126,7 +24167,7 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
24126
24167
  }
24127
24168
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ManageCaseFlagsComponent, [{
24128
24169
  type: Component,
24129
- args: [{ selector: 'ccd-manage-case-flags', encapsulation: ViewEncapsulation.None, template: "<ng-container [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"manage-case-flag-heading\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 id=\"manage-case-flag-heading\" class=\"govuk-fieldset__heading\">\n {{manageCaseFlagTitle | rpxTranslate}}\n </h1>\n </legend>\n <div id=\"manage-case-flag-not-selected-error-message\" class=\"govuk-error-message\"\n *ngIf=\"manageCaseFlagSelectedErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{manageCaseFlagSelectedErrorMessage | rpxTranslate}}\n </div>\n <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n <div class=\"govuk-radios__item\" *ngFor=\"let flagDisplay of flagsDisplayData; index as i\">\n <input class=\"govuk-radios__input\" id=\"flag-selection-{{i}}\" [name]=\"selectedControlName\"\n type=\"radio\" [value]=\"flagDisplay\" [formControlName]=\"selectedControlName\"/>\n <label class=\"govuk-label govuk-radios__label\" for=\"flag-selection-{{i}}\" [innerHtml]=\"flagDisplay | manageCaseFlagsLabelDisplay\"></label>\n </div>\n </div>\n </fieldset>\n </div>\n</ng-container>", styles: [".flag-name-and-description{font-weight:700}\n"] }]
24170
+ args: [{ selector: 'ccd-manage-case-flags', encapsulation: ViewEncapsulation.None, template: "<ng-container [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"manage-case-flag-heading\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 id=\"manage-case-flag-heading\" class=\"govuk-fieldset__heading\">\n {{manageCaseFlagTitle | rpxTranslate}}\n </h1>\n </legend>\n <div id=\"manage-case-flag-not-selected-error-message\" class=\"govuk-error-message\"\n *ngIf=\"manageCaseFlagSelectedErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{manageCaseFlagSelectedErrorMessage | rpxTranslate}}\n </div>\n <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n <div class=\"govuk-radios__item\" *ngFor=\"let flagDisplay of flagsDisplayData; index as i\">\n <input class=\"govuk-radios__input\" id=\"flag-selection-{{i}}\"\n type=\"radio\"\n [checked]=\"isSelected(flagDisplay)\"\n (change)=\"onFlagSelectionChange(flagDisplay)\"/>\n <label class=\"govuk-label govuk-radios__label\" for=\"flag-selection-{{i}}\" [innerHtml]=\"flagDisplay | manageCaseFlagsLabelDisplay\"></label>\n </div>\n </div>\n </fieldset>\n </div>\n</ng-container>", styles: [".flag-name-and-description{font-weight:700}\n"] }]
24130
24171
  }], null, { formGroup: [{
24131
24172
  type: Input
24132
24173
  }], flagsData: [{
@@ -24138,7 +24179,7 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
24138
24179
  }], caseFlagStateEmitter: [{
24139
24180
  type: Output
24140
24181
  }] }); })();
24141
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ManageCaseFlagsComponent, { className: "ManageCaseFlagsComponent", filePath: "lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.ts", lineNumber: 15 }); })();
24182
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ManageCaseFlagsComponent, { className: "ManageCaseFlagsComponent", filePath: "lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.ts", lineNumber: 16 }); })();
24142
24183
 
24143
24184
  // tslint:disable:variable-name
24144
24185
  /**
@@ -24584,7 +24625,11 @@ class SelectFlagLocationComponent extends AbstractJourneyComponent {
24584
24625
  selectedLocationControlName = 'selectedLocation';
24585
24626
  caseLevelFlagLabel = 'Case level';
24586
24627
  caseLevelCaseFlagsFieldId = 'caseFlags';
24628
+ cachedLocation;
24587
24629
  ngOnInit() {
24630
+ if (this.formGroup.get(this.selectedLocationControlName)) {
24631
+ this.cachedLocation = this.formGroup.get(this.selectedLocationControlName).value?.pathToFlagsFormGroup;
24632
+ }
24588
24633
  this.flagLocationTitle = this.isDisplayContextParameterExternal ?
24589
24634
  CaseFlagWizardStepTitle.SELECT_FLAG_LOCATION_EXTERNAL : CaseFlagWizardStepTitle.SELECT_FLAG_LOCATION;
24590
24635
  // Filter out any flags instances that don't have a party name, unless the instance is for case-level flags (this
@@ -24619,6 +24664,14 @@ class SelectFlagLocationComponent extends AbstractJourneyComponent {
24619
24664
  onNext() {
24620
24665
  // Validate flag location selection
24621
24666
  this.validateSelection();
24667
+ //check if the user has changed their location selection
24668
+ if (this.cachedLocation !== this.formGroup.get(this.selectedLocationControlName).value?.pathToFlagsFormGroup) {
24669
+ Object.keys(this.formGroup.controls).forEach((controlName) => {
24670
+ if (controlName !== this.selectedLocationControlName) {
24671
+ this.formGroup.removeControl(controlName);
24672
+ }
24673
+ });
24674
+ }
24622
24675
  // Return case flag field state, error messages, and selected FlagsWithFormGroupPath instance (i.e. flag location) to
24623
24676
  // the parent
24624
24677
  this.caseFlagStateEmitter.emit({
@@ -29051,7 +29104,7 @@ CaseFlagTableComponent, function () { return [i5.NgForOf, i5.NgIf]; }, function
29051
29104
  i0.ɵɵsetComponentScope(SelectFlagTypeComponent, function () { return [i5.NgClass, i5.NgForOf, i5.NgIf, i4.DefaultValueAccessor, i4.CheckboxControlValueAccessor, i4.RadioControlValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName]; }, function () { return [i1.RpxTranslatePipe, FlagFieldDisplayPipe]; });
29052
29105
  i0.ɵɵsetComponentScope(SearchLanguageInterpreterComponent, function () { return [i5.NgClass, i5.NgForOf, i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName, i15.MatLegacyInput, i5$1.MatLegacyAutocomplete, i5$1.MatLegacyAutocompleteTrigger, i6.MatLegacyOption]; }, function () { return [i5.AsyncPipe, i1.RpxTranslatePipe, FlagFieldDisplayPipe,
29053
29106
  LanguageInterpreterDisplayPipe]; });
29054
- i0.ɵɵsetComponentScope(ManageCaseFlagsComponent, function () { return [i5.NgClass, i5.NgForOf, i5.NgIf, i4.DefaultValueAccessor, i4.RadioControlValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName]; }, function () { return [i1.RpxTranslatePipe, ManageCaseFlagsLabelDisplayPipe]; });
29107
+ i0.ɵɵsetComponentScope(ManageCaseFlagsComponent, function () { return [i5.NgClass, i5.NgForOf, i5.NgIf, i4.NgControlStatusGroup, i4.FormGroupDirective]; }, function () { return [i1.RpxTranslatePipe, ManageCaseFlagsLabelDisplayPipe]; });
29055
29108
  i0.ɵɵsetComponentScope(UpdateFlagComponent, function () { return [i5.NgClass, i5.NgForOf, i5.NgIf, i5.NgTemplateOutlet, i4.DefaultValueAccessor, i4.CheckboxControlValueAccessor, i4.RadioControlValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName]; }, function () { return [i1.RpxTranslatePipe, UpdateFlagTitleDisplayPipe]; });
29056
29109
  i0.ɵɵsetComponentScope(
29057
29110
  // Components for linked cases