@hmcts/ccd-case-ui-toolkit 7.3.99-innerhtml-security-update → 7.4.1-exui-3003-3005-3066-1

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, EventEmitter, Output, NgModule, ViewEncapsulation, forwardRef, Pipe, ContentChildren, ViewChildren, Injectable, DOCUMENT, Inject, InjectionToken, Optional, ChangeDetectorRef, Directive, ViewChild, ChangeDetectionStrategy, Injector, ViewContainerRef, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
2
+ import { Component, Input, EventEmitter, Output, NgModule, ViewEncapsulation, forwardRef, Pipe, ContentChildren, ViewChildren, Injectable, DOCUMENT, Inject, InjectionToken, Optional, ChangeDetectorRef, Directive, ViewChild, ChangeDetectionStrategy, SecurityContext, Injector, ViewContainerRef, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
3
  import * as i5 from '@angular/common';
4
4
  import { CommonModule, AsyncPipe, CurrencyPipe, formatDate } from '@angular/common';
5
5
  import * as i1 from 'rpx-xui-translation';
@@ -31,7 +31,7 @@ import { MAT_LEGACY_DATE_LOCALE } from '@angular/material/legacy-core';
31
31
  import * as i3 from '@hmcts/ccpay-web-component';
32
32
  import { PaymentLibModule } from '@hmcts/ccpay-web-component';
33
33
  import { v4 } from 'uuid';
34
- import DOMPurify from 'dompurify';
34
+ import * as i1$5 from '@angular/platform-browser';
35
35
  import * as i3$1 from 'ngx-editor';
36
36
  import { Editor, NgxEditorModule } from 'ngx-editor';
37
37
  import { nodes, marks } from 'ngx-editor/schema';
@@ -3581,6 +3581,7 @@ class CaseField {
3581
3581
  acls;
3582
3582
  metadata;
3583
3583
  formatted_value;
3584
+ hmctsServiceId;
3584
3585
  retain_hidden_value;
3585
3586
  wizardProps;
3586
3587
  _value;
@@ -3977,6 +3978,7 @@ class CaseView {
3977
3978
  events;
3978
3979
  metadataFields;
3979
3980
  basicFields;
3981
+ hmctsServiceId;
3980
3982
  case_flag;
3981
3983
  }
3982
3984
  __decorate([
@@ -4117,6 +4119,7 @@ class Field {
4117
4119
  class SearchResultViewColumn {
4118
4120
  case_field_id;
4119
4121
  case_field_type;
4122
+ metadata;
4120
4123
  display_context;
4121
4124
  display_context_parameter;
4122
4125
  label;
@@ -6308,7 +6311,7 @@ class FormValidatorsService {
6308
6311
  // Matches: [text](url), ![alt](url), <img ...>, <a ...>...</a>
6309
6312
  const inlineMarkdownPattern = /(?:!?\[[^\]]{0,500}\]\([^)]{0,500}\)|<(?:img\b[^>]{0,500}>|a\b[^>]{0,500}>[\s\S]*?<\/a>))/i;
6310
6313
  // Matches: [text][id], ![alt][id], and the collapsed form [text][]
6311
- const referenceBoxPattern = /(!)?\[((?:[^[\]\\]|\\.){0,500})\]\s*\[([^\]]{0,100})\]/;
6314
+ const referenceBoxPattern = /(!)?\[((?:[^[\]\\]|\\.){0,500})\]\[([^\]]{0,100})\](?!\s*\/)/;
6312
6315
  // Matches: autolinks such as <http://example.com>
6313
6316
  const autolinkPattern = /<(?:[A-Za-z][A-Za-z0-9+.-]*:[^ <>\n]*|[A-Za-z0-9.!#$%&'*+/=?^_`{|}~-]+@[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)+)>/;
6314
6317
  // Matches: bare www.example.com autolinks
@@ -10152,19 +10155,22 @@ class CaseworkerService {
10152
10155
 
10153
10156
  class CaseNotifier {
10154
10157
  casesService;
10158
+ caseFlagRefdataService;
10155
10159
  static CASE_NAME = 'caseNameHmctsInternal';
10156
10160
  static CASE_LOCATION = 'caseManagementLocation';
10157
10161
  caseViewSource = new BehaviorSubject(new CaseView());
10162
+ hmctsServiceIdByCaseType = new Map();
10158
10163
  caseView = this.caseViewSource.asObservable();
10159
10164
  cachedCaseView;
10160
- constructor(casesService) {
10165
+ constructor(casesService, caseFlagRefdataService) {
10161
10166
  this.casesService = casesService;
10167
+ this.caseFlagRefdataService = caseFlagRefdataService;
10162
10168
  }
10163
10169
  removeCachedCase() {
10164
10170
  this.cachedCaseView = null;
10165
10171
  }
10166
10172
  announceCase(c) {
10167
- this.caseViewSource.next(c);
10173
+ this.resolveHmctsServiceId(c).subscribe(caseView => this.caseViewSource.next(caseView));
10168
10174
  }
10169
10175
  fetchAndRefresh(cid) {
10170
10176
  return this.casesService
@@ -10172,8 +10178,10 @@ class CaseNotifier {
10172
10178
  .pipe(map(caseView => {
10173
10179
  this.cachedCaseView = plainToClassFromExist(new CaseView(), caseView);
10174
10180
  this.setBasicFields(this.cachedCaseView.tabs);
10175
- this.announceCase(this.cachedCaseView);
10176
10181
  return this.cachedCaseView;
10182
+ }), switchMap(caseView => this.resolveHmctsServiceId(caseView)), map(caseView => {
10183
+ this.announceCase(caseView);
10184
+ return caseView;
10177
10185
  }));
10178
10186
  }
10179
10187
  setBasicFields(tabs) {
@@ -10188,12 +10196,32 @@ class CaseNotifier {
10188
10196
  }
10189
10197
  });
10190
10198
  }
10191
- static ɵfac = function CaseNotifier_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseNotifier)(i0.ɵɵinject(CasesService)); };
10199
+ resolveHmctsServiceId(caseView) {
10200
+ const caseTypeId = caseView?.case_type?.id;
10201
+ if (!caseTypeId || !this.caseFlagRefdataService) {
10202
+ return of(caseView);
10203
+ }
10204
+ if (this.hmctsServiceIdByCaseType.has(caseTypeId)) {
10205
+ caseView.hmctsServiceId = this.hmctsServiceIdByCaseType.get(caseTypeId);
10206
+ return of(caseView);
10207
+ }
10208
+ return this.caseFlagRefdataService.getHmctsServiceDetailsByCaseType(caseTypeId).pipe(map((serviceDetails) => {
10209
+ const hmctsServiceId = serviceDetails?.find((serviceDetail) => !!serviceDetail.service_code)?.service_code;
10210
+ if (hmctsServiceId) {
10211
+ this.hmctsServiceIdByCaseType.set(caseTypeId, hmctsServiceId);
10212
+ caseView.hmctsServiceId = hmctsServiceId;
10213
+ }
10214
+ return caseView;
10215
+ }), catchError(() => of(caseView)));
10216
+ }
10217
+ static ɵfac = function CaseNotifier_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseNotifier)(i0.ɵɵinject(CasesService), i0.ɵɵinject(CaseFlagRefdataService, 8)); };
10192
10218
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseNotifier, factory: CaseNotifier.ɵfac });
10193
10219
  }
10194
10220
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseNotifier, [{
10195
10221
  type: Injectable
10196
- }], () => [{ type: CasesService }], null); })();
10222
+ }], () => [{ type: CasesService }, { type: CaseFlagRefdataService, decorators: [{
10223
+ type: Optional
10224
+ }] }], null); })();
10197
10225
 
10198
10226
  var Permissions;
10199
10227
  (function (Permissions) {
@@ -14132,57 +14160,67 @@ class WriteComplexFieldComponent extends AbstractFieldWriteComponent {
14132
14160
  const _c0$$ = ["writeComplexFieldComponent"];
14133
14161
  const _c1$q = a0 => ({ "form-group-error": a0 });
14134
14162
  const _c2$4 = a0 => ({ "govuk-input--error": a0 });
14135
- function WriteAddressFieldComponent_div_1_div_4_span_5_Template(rf, ctx) { if (rf & 1) {
14136
- i0.ɵɵelementStart(0, "span", 14);
14163
+ function WriteAddressFieldComponent_div_1_span_4_Template(rf, ctx) { if (rf & 1) {
14164
+ i0.ɵɵelementStart(0, "span", 9);
14165
+ i0.ɵɵelement(1, "ccd-markdown", 10);
14166
+ i0.ɵɵpipe(2, "rpxTranslate");
14167
+ i0.ɵɵelementEnd();
14168
+ } if (rf & 2) {
14169
+ const ctx_r0 = i0.ɵɵnextContext(2);
14170
+ i0.ɵɵadvance();
14171
+ i0.ɵɵproperty("content", i0.ɵɵpipeBind1(2, 1, ctx_r0.caseField.hint_text));
14172
+ } }
14173
+ function WriteAddressFieldComponent_div_1_div_5_span_5_Template(rf, ctx) { if (rf & 1) {
14174
+ i0.ɵɵelementStart(0, "span", 17);
14137
14175
  i0.ɵɵtext(1);
14138
14176
  i0.ɵɵpipe(2, "rpxTranslate");
14139
14177
  i0.ɵɵelementEnd();
14140
14178
  } if (rf & 2) {
14141
- const ctx_r1 = i0.ɵɵnextContext(3);
14179
+ const ctx_r0 = i0.ɵɵnextContext(3);
14142
14180
  i0.ɵɵadvance();
14143
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r1.errorMessage));
14181
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r0.errorMessage));
14144
14182
  } }
14145
- function WriteAddressFieldComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
14146
- const _r1 = i0.ɵɵgetCurrentView();
14147
- i0.ɵɵelementStart(0, "div", 8)(1, "label", 9)(2, "span", 10);
14183
+ function WriteAddressFieldComponent_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
14184
+ const _r2 = i0.ɵɵgetCurrentView();
14185
+ i0.ɵɵelementStart(0, "div", 11)(1, "label", 12)(2, "span", 13);
14148
14186
  i0.ɵɵtext(3);
14149
14187
  i0.ɵɵpipe(4, "rpxTranslate");
14150
14188
  i0.ɵɵelementEnd()();
14151
- i0.ɵɵtemplate(5, WriteAddressFieldComponent_div_1_div_4_span_5_Template, 3, 3, "span", 11);
14152
- i0.ɵɵelement(6, "input", 12);
14153
- i0.ɵɵelementStart(7, "button", 13);
14154
- i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_1_div_4_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.findAddress()); });
14189
+ i0.ɵɵtemplate(5, WriteAddressFieldComponent_div_1_div_5_span_5_Template, 3, 3, "span", 14);
14190
+ i0.ɵɵelement(6, "input", 15);
14191
+ i0.ɵɵelementStart(7, "button", 16);
14192
+ i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_1_div_5_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.findAddress()); });
14155
14193
  i0.ɵɵtext(8);
14156
14194
  i0.ɵɵpipe(9, "rpxTranslate");
14157
14195
  i0.ɵɵelementEnd()();
14158
14196
  } if (rf & 2) {
14159
- const ctx_r1 = i0.ɵɵnextContext(2);
14160
- i0.ɵɵproperty("id", ctx_r1.createElementId("postcodeLookup"))("ngClass", i0.ɵɵpureFunction1(14, _c1$q, ctx_r1.missingPostcode));
14197
+ const ctx_r0 = i0.ɵɵnextContext(2);
14198
+ i0.ɵɵproperty("id", ctx_r0.createElementId("postcodeLookup"))("ngClass", i0.ɵɵpureFunction1(14, _c1$q, ctx_r0.missingPostcode));
14161
14199
  i0.ɵɵadvance();
14162
- i0.ɵɵproperty("for", ctx_r1.createElementId("postcodeInput"));
14200
+ i0.ɵɵproperty("for", ctx_r0.createElementId("postcodeInput"));
14163
14201
  i0.ɵɵadvance(2);
14164
14202
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 10, "Enter a UK postcode"));
14165
14203
  i0.ɵɵadvance(2);
14166
- i0.ɵɵproperty("ngIf", ctx_r1.missingPostcode);
14204
+ i0.ɵɵproperty("ngIf", ctx_r0.missingPostcode);
14167
14205
  i0.ɵɵadvance();
14168
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c2$4, ctx_r1.missingPostcode))("id", ctx_r1.createElementId("postcodeInput"))("formControl", ctx_r1.postcode);
14206
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c2$4, ctx_r0.missingPostcode))("id", ctx_r0.createElementId("postcodeInput"))("formControl", ctx_r0.postcode);
14169
14207
  i0.ɵɵadvance();
14170
- i0.ɵɵproperty("disabled", ctx_r1.loadingAddresses);
14208
+ i0.ɵɵproperty("disabled", ctx_r0.loadingAddresses);
14171
14209
  i0.ɵɵadvance();
14172
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 12, ctx_r1.loadingAddresses ? "Finding addresses..." : "Find address"), " ");
14210
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 12, ctx_r0.loadingAddresses ? "Finding addresses..." : "Find address"), " ");
14173
14211
  } }
14174
- function WriteAddressFieldComponent_div_1_div_5_span_5_Template(rf, ctx) { if (rf & 1) {
14175
- i0.ɵɵelementStart(0, "span", 14);
14212
+ function WriteAddressFieldComponent_div_1_div_6_span_5_Template(rf, ctx) { if (rf & 1) {
14213
+ i0.ɵɵelementStart(0, "span", 17);
14176
14214
  i0.ɵɵtext(1);
14177
14215
  i0.ɵɵpipe(2, "rpxTranslate");
14178
14216
  i0.ɵɵelementEnd();
14179
14217
  } if (rf & 2) {
14180
- const ctx_r1 = i0.ɵɵnextContext(3);
14218
+ const ctx_r0 = i0.ɵɵnextContext(3);
14181
14219
  i0.ɵɵadvance();
14182
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r1.errorMessage));
14220
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r0.errorMessage));
14183
14221
  } }
14184
- function WriteAddressFieldComponent_div_1_div_5_option_7_Template(rf, ctx) { if (rf & 1) {
14185
- i0.ɵɵelementStart(0, "option", 19);
14222
+ function WriteAddressFieldComponent_div_1_div_6_option_7_Template(rf, ctx) { if (rf & 1) {
14223
+ i0.ɵɵelementStart(0, "option", 22);
14186
14224
  i0.ɵɵtext(1);
14187
14225
  i0.ɵɵpipe(2, "rpxTranslate");
14188
14226
  i0.ɵɵelementEnd();
@@ -14191,19 +14229,19 @@ function WriteAddressFieldComponent_div_1_div_5_option_7_Template(rf, ctx) { if
14191
14229
  i0.ɵɵadvance();
14192
14230
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "No address found"), " ");
14193
14231
  } }
14194
- function WriteAddressFieldComponent_div_1_div_5_option_8_Template(rf, ctx) { if (rf & 1) {
14195
- i0.ɵɵelementStart(0, "option", 19);
14232
+ function WriteAddressFieldComponent_div_1_div_6_option_8_Template(rf, ctx) { if (rf & 1) {
14233
+ i0.ɵɵelementStart(0, "option", 22);
14196
14234
  i0.ɵɵtext(1);
14197
14235
  i0.ɵɵpipe(2, "rpxTranslate");
14198
14236
  i0.ɵɵelementEnd();
14199
14237
  } if (rf & 2) {
14200
- const ctx_r1 = i0.ɵɵnextContext(3);
14238
+ const ctx_r0 = i0.ɵɵnextContext(3);
14201
14239
  i0.ɵɵproperty("ngValue", undefined);
14202
14240
  i0.ɵɵadvance();
14203
- i0.ɵɵtextInterpolate2(" ", ctx_r1.addressOptions.length, " ", i0.ɵɵpipeBind1(2, 3, ctx_r1.addressOptions.length === 1 ? "address found" : "addresses found"), " ");
14241
+ i0.ɵɵtextInterpolate2(" ", ctx_r0.addressOptions.length, " ", i0.ɵɵpipeBind1(2, 3, ctx_r0.addressOptions.length === 1 ? "address found" : "addresses found"), " ");
14204
14242
  } }
14205
- function WriteAddressFieldComponent_div_1_div_5_option_9_Template(rf, ctx) { if (rf & 1) {
14206
- i0.ɵɵelementStart(0, "option", 19);
14243
+ function WriteAddressFieldComponent_div_1_div_6_option_9_Template(rf, ctx) { if (rf & 1) {
14244
+ i0.ɵɵelementStart(0, "option", 22);
14207
14245
  i0.ɵɵtext(1);
14208
14246
  i0.ɵɵelementEnd();
14209
14247
  } if (rf & 2) {
@@ -14212,39 +14250,39 @@ function WriteAddressFieldComponent_div_1_div_5_option_9_Template(rf, ctx) { if
14212
14250
  i0.ɵɵadvance();
14213
14251
  i0.ɵɵtextInterpolate1(" ", addressOption_r4.description, " ");
14214
14252
  } }
14215
- function WriteAddressFieldComponent_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
14253
+ function WriteAddressFieldComponent_div_1_div_6_Template(rf, ctx) { if (rf & 1) {
14216
14254
  const _r3 = i0.ɵɵgetCurrentView();
14217
- i0.ɵɵelementStart(0, "div", 15)(1, "label", 9)(2, "span", 10);
14255
+ i0.ɵɵelementStart(0, "div", 18)(1, "label", 12)(2, "span", 13);
14218
14256
  i0.ɵɵtext(3);
14219
14257
  i0.ɵɵpipe(4, "rpxTranslate");
14220
14258
  i0.ɵɵelementEnd()();
14221
- i0.ɵɵtemplate(5, WriteAddressFieldComponent_div_1_div_5_span_5_Template, 3, 3, "span", 11);
14222
- i0.ɵɵelementStart(6, "select", 16);
14223
- i0.ɵɵlistener("change", function WriteAddressFieldComponent_div_1_div_5_Template_select_change_6_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.addressSelected()); });
14224
- i0.ɵɵtemplate(7, WriteAddressFieldComponent_div_1_div_5_option_7_Template, 3, 4, "option", 17)(8, WriteAddressFieldComponent_div_1_div_5_option_8_Template, 3, 5, "option", 17)(9, WriteAddressFieldComponent_div_1_div_5_option_9_Template, 2, 2, "option", 18);
14259
+ i0.ɵɵtemplate(5, WriteAddressFieldComponent_div_1_div_6_span_5_Template, 3, 3, "span", 14);
14260
+ i0.ɵɵelementStart(6, "select", 19);
14261
+ i0.ɵɵlistener("change", function WriteAddressFieldComponent_div_1_div_6_Template_select_change_6_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.addressSelected()); });
14262
+ i0.ɵɵtemplate(7, WriteAddressFieldComponent_div_1_div_6_option_7_Template, 3, 4, "option", 20)(8, WriteAddressFieldComponent_div_1_div_6_option_8_Template, 3, 5, "option", 20)(9, WriteAddressFieldComponent_div_1_div_6_option_9_Template, 2, 2, "option", 21);
14225
14263
  i0.ɵɵelementEnd()();
14226
14264
  } if (rf & 2) {
14227
- const ctx_r1 = i0.ɵɵnextContext(2);
14228
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c1$q, ctx_r1.noAddressSelected));
14265
+ const ctx_r0 = i0.ɵɵnextContext(2);
14266
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c1$q, ctx_r0.noAddressSelected));
14229
14267
  i0.ɵɵadvance();
14230
- i0.ɵɵproperty("for", ctx_r1.createElementId("addressList"));
14268
+ i0.ɵɵproperty("for", ctx_r0.createElementId("addressList"));
14231
14269
  i0.ɵɵadvance(2);
14232
14270
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 9, "Select an address"));
14233
14271
  i0.ɵɵadvance(2);
14234
- i0.ɵɵproperty("ngIf", ctx_r1.noAddressSelected);
14272
+ i0.ɵɵproperty("ngIf", ctx_r0.noAddressSelected);
14235
14273
  i0.ɵɵadvance();
14236
- i0.ɵɵproperty("id", ctx_r1.createElementId("addressList"))("formControl", ctx_r1.addressList);
14274
+ i0.ɵɵproperty("id", ctx_r0.createElementId("addressList"))("formControl", ctx_r0.addressList);
14237
14275
  i0.ɵɵadvance();
14238
- i0.ɵɵproperty("ngIf", ctx_r1.addressOptions.length === 0);
14276
+ i0.ɵɵproperty("ngIf", ctx_r0.addressOptions.length === 0);
14239
14277
  i0.ɵɵadvance();
14240
- i0.ɵɵproperty("ngIf", ctx_r1.addressOptions.length > 0);
14278
+ i0.ɵɵproperty("ngIf", ctx_r0.addressOptions.length > 0);
14241
14279
  i0.ɵɵadvance();
14242
- i0.ɵɵproperty("ngForOf", ctx_r1.addressOptions);
14280
+ i0.ɵɵproperty("ngForOf", ctx_r0.addressOptions);
14243
14281
  } }
14244
- function WriteAddressFieldComponent_div_1_a_6_Template(rf, ctx) { if (rf & 1) {
14282
+ function WriteAddressFieldComponent_div_1_a_7_Template(rf, ctx) { if (rf & 1) {
14245
14283
  const _r5 = i0.ɵɵgetCurrentView();
14246
- i0.ɵɵelementStart(0, "a", 20);
14247
- i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_1_a_6_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.blankAddress(); return i0.ɵɵresetView($event.preventDefault()); });
14284
+ i0.ɵɵelementStart(0, "a", 23);
14285
+ i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_1_a_7_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); ctx_r0.blankAddress(); return i0.ɵɵresetView($event.preventDefault()); });
14248
14286
  i0.ɵɵtext(1);
14249
14287
  i0.ɵɵpipe(2, "rpxTranslate");
14250
14288
  i0.ɵɵelementEnd();
@@ -14257,18 +14295,20 @@ function WriteAddressFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
14257
14295
  i0.ɵɵtext(2);
14258
14296
  i0.ɵɵpipe(3, "ccdFieldLabel");
14259
14297
  i0.ɵɵelementEnd();
14260
- i0.ɵɵtemplate(4, WriteAddressFieldComponent_div_1_div_4_Template, 10, 18, "div", 5)(5, WriteAddressFieldComponent_div_1_div_5_Template, 10, 13, "div", 6)(6, WriteAddressFieldComponent_div_1_a_6_Template, 3, 3, "a", 7);
14298
+ i0.ɵɵtemplate(4, WriteAddressFieldComponent_div_1_span_4_Template, 3, 3, "span", 5)(5, WriteAddressFieldComponent_div_1_div_5_Template, 10, 18, "div", 6)(6, WriteAddressFieldComponent_div_1_div_6_Template, 10, 13, "div", 7)(7, WriteAddressFieldComponent_div_1_a_7_Template, 3, 3, "a", 8);
14261
14299
  i0.ɵɵelementEnd();
14262
14300
  } if (rf & 2) {
14263
- const ctx_r1 = i0.ɵɵnextContext();
14301
+ const ctx_r0 = i0.ɵɵnextContext();
14264
14302
  i0.ɵɵadvance(2);
14265
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 4, ctx_r1.caseField));
14303
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 5, ctx_r0.caseField));
14266
14304
  i0.ɵɵadvance(2);
14267
- i0.ɵɵproperty("ngIf", !ctx_r1.isExpanded);
14305
+ i0.ɵɵproperty("ngIf", ctx_r0.caseField.hint_text);
14268
14306
  i0.ɵɵadvance();
14269
- i0.ɵɵproperty("ngIf", ctx_r1.addressOptions);
14307
+ i0.ɵɵproperty("ngIf", !ctx_r0.isExpanded);
14270
14308
  i0.ɵɵadvance();
14271
- i0.ɵɵproperty("ngIf", !ctx_r1.shouldShowDetailFields());
14309
+ i0.ɵɵproperty("ngIf", ctx_r0.addressOptions);
14310
+ i0.ɵɵadvance();
14311
+ i0.ɵɵproperty("ngIf", !ctx_r0.shouldShowDetailFields());
14272
14312
  } }
14273
14313
  class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
14274
14314
  isCompoundPipe;
@@ -14402,9 +14442,9 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
14402
14442
  let _t;
14403
14443
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.writeComplexFieldComponent = _t.first);
14404
14444
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.focusElementDirectives = _t);
14405
- } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [["writeComplexFieldComponent", ""], [1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], [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", "#", 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", "disabled"], [1, "error-message"], ["id", "selectAddress", 1, "form-group", 3, "ngClass"], ["name", "address", "focusElement", "", 1, "form-control", "ccd-dropdown", "addressList", 3, "change", "id", "formControl"], [3, "ngValue", 4, "ngIf"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "#", 1, "manual-link", "bottom-30", 3, "click"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
14445
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [["writeComplexFieldComponent", ""], [1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], [1, "heading-h2"], ["class", "form-hint", 4, "ngIf"], ["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", "#", 3, "click", 4, "ngIf"], [1, "form-hint"], [3, "content"], [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", "disabled"], [1, "error-message"], ["id", "selectAddress", 1, "form-group", 3, "ngClass"], ["name", "address", "focusElement", "", 1, "form-control", "ccd-dropdown", "addressList", 3, "change", "id", "formControl"], [3, "ngValue", 4, "ngIf"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "#", 1, "manual-link", "bottom-30", 3, "click"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
14406
14446
  i0.ɵɵelementStart(0, "div", 1);
14407
- i0.ɵɵtemplate(1, WriteAddressFieldComponent_div_1_Template, 7, 6, "div", 2);
14447
+ i0.ɵɵtemplate(1, WriteAddressFieldComponent_div_1_Template, 8, 7, "div", 2);
14408
14448
  i0.ɵɵelement(2, "ccd-write-complex-type-field", 3, 0);
14409
14449
  i0.ɵɵelementEnd();
14410
14450
  } if (rf & 2) {
@@ -14417,7 +14457,7 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
14417
14457
  }
14418
14458
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteAddressFieldComponent, [{
14419
14459
  type: Component,
14420
- args: [{ selector: 'ccd-write-address-field', standalone: false, 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()\" [disabled]=\"loadingAddresses\">\n {{(loadingAddresses ? 'Finding addresses...' : 'Find address') | rpxTranslate}}\n </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 *ngIf=\"addressOptions.length === 0\" [ngValue]=\"undefined\">\n {{'No address found' | rpxTranslate}}\n </option>\n <option *ngIf=\"addressOptions.length > 0\" [ngValue]=\"undefined\">\n {{addressOptions.length}} {{(addressOptions.length === 1 ? 'address found' : 'addresses found') | rpxTranslate}}\n </option>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n\n <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">\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"] }]
14460
+ args: [{ selector: 'ccd-write-address-field', standalone: false, template: "<div class=\"form-group\" [id]=\"id()\">\n <div *ngIf=\"!isComplexWithHiddenFields()\">\n <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">\n <ccd-markdown [content]=\"caseField.hint_text | rpxTranslate\"></ccd-markdown>\n </span>\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()\" [disabled]=\"loadingAddresses\">\n {{(loadingAddresses ? 'Finding addresses...' : 'Find address') | rpxTranslate}}\n </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 *ngIf=\"addressOptions.length === 0\" [ngValue]=\"undefined\">\n {{'No address found' | rpxTranslate}}\n </option>\n <option *ngIf=\"addressOptions.length > 0\" [ngValue]=\"undefined\">\n {{addressOptions.length}} {{(addressOptions.length === 1 ? 'address found' : 'addresses found') | rpxTranslate}}\n </option>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n\n <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">\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"] }]
14421
14461
  }], () => [{ type: AddressesService }, { type: IsCompoundPipe }], { writeComplexFieldComponent: [{
14422
14462
  type: ViewChild,
14423
14463
  args: ['writeComplexFieldComponent', { static: false }]
@@ -14434,6 +14474,14 @@ var PaletteContext;
14434
14474
  PaletteContext["TABLE_VIEW"] = "TABLE_VIEW";
14435
14475
  })(PaletteContext || (PaletteContext = {}));
14436
14476
 
14477
+ // Identifies whether a read palette value came from persisted case data or the current edit form.
14478
+ // Form-origin DateTime values on Check Your Answers must not be service-local adjusted before submit.
14479
+ var PaletteValueOrigin;
14480
+ (function (PaletteValueOrigin) {
14481
+ PaletteValueOrigin["BACKEND"] = "BACKEND";
14482
+ PaletteValueOrigin["FORM"] = "FORM";
14483
+ })(PaletteValueOrigin || (PaletteValueOrigin = {}));
14484
+
14437
14485
  class AbstractFieldReadComponent extends AbstractFormFieldComponent {
14438
14486
  caseReference;
14439
14487
  topLevelFormGroup;
@@ -14441,13 +14489,14 @@ class AbstractFieldReadComponent extends AbstractFormFieldComponent {
14441
14489
  * Optional. Enable context-aware rendering of fields.
14442
14490
  */
14443
14491
  context = PaletteContext.DEFAULT;
14492
+ valueOrigin = PaletteValueOrigin.BACKEND;
14444
14493
  ngOnInit() {
14445
14494
  if (!this.caseField.metadata) {
14446
14495
  this.registerControl(new FormControl(this.caseField.value));
14447
14496
  }
14448
14497
  }
14449
14498
  static ɵfac = /*@__PURE__*/ (() => { let ɵAbstractFieldReadComponent_BaseFactory; return function AbstractFieldReadComponent_Factory(__ngFactoryType__) { return (ɵAbstractFieldReadComponent_BaseFactory || (ɵAbstractFieldReadComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AbstractFieldReadComponent)))(__ngFactoryType__ || AbstractFieldReadComponent); }; })();
14450
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AbstractFieldReadComponent, inputs: { caseReference: "caseReference", topLevelFormGroup: "topLevelFormGroup", context: "context" }, features: [i0.ɵɵInheritDefinitionFeature] });
14499
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AbstractFieldReadComponent, inputs: { caseReference: "caseReference", topLevelFormGroup: "topLevelFormGroup", context: "context", valueOrigin: "valueOrigin" }, features: [i0.ɵɵInheritDefinitionFeature] });
14451
14500
  }
14452
14501
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AbstractFieldReadComponent, [{
14453
14502
  type: Directive
@@ -14457,6 +14506,8 @@ class AbstractFieldReadComponent extends AbstractFormFieldComponent {
14457
14506
  type: Input
14458
14507
  }], context: [{
14459
14508
  type: Input
14509
+ }], valueOrigin: [{
14510
+ type: Input
14460
14511
  }] }); })();
14461
14512
 
14462
14513
  const _c0$_ = ["journeyChild"];
@@ -16219,7 +16270,7 @@ function ReadCollectionFieldComponent_table_0_tbody_2_Template(rf, ctx) { if (rf
16219
16270
  } if (rf & 2) {
16220
16271
  const ctx_r0 = i0.ɵɵnextContext(2);
16221
16272
  i0.ɵɵadvance(4);
16222
- i0.ɵɵproperty("caseField", i0.ɵɵpureFunction7(4, _c0$X, ctx_r0.caseField.label, ctx_r0.caseField.label, ctx_r0.caseField.field_type.collection_field_type, ctx_r0.caseField.display_context_parameter, ctx_r0.caseField.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("caseFields", ctx_r0.caseFields)("topLevelFormGroup", ctx_r0.topLevelFormGroup);
16273
+ i0.ɵɵproperty("caseField", i0.ɵɵpureFunction7(5, _c0$X, ctx_r0.caseField.label, ctx_r0.caseField.label, ctx_r0.caseField.field_type.collection_field_type, ctx_r0.caseField.display_context_parameter, ctx_r0.caseField.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("caseFields", ctx_r0.caseFields)("topLevelFormGroup", ctx_r0.topLevelFormGroup);
16223
16274
  } }
16224
16275
  function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { if (rf & 1) {
16225
16276
  i0.ɵɵelementStart(0, "tr")(1, "td");
@@ -16230,11 +16281,11 @@ function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { i
16230
16281
  const i_r3 = ctx.index;
16231
16282
  const ctx_r0 = i0.ɵɵnextContext(3);
16232
16283
  i0.ɵɵadvance(2);
16233
- i0.ɵɵproperty("caseField", i0.ɵɵpureFunction6(5, _c1$o, i_r3 + "", ctx_r0.caseField.label + " " + (i_r3 + 1), ctx_r0.caseField.field_type.collection_field_type, item_r2.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("caseFields", ctx_r0.caseFields)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.buildIdPrefix(i_r3));
16284
+ i0.ɵɵproperty("caseField", i0.ɵɵpureFunction6(6, _c1$o, i_r3 + "", ctx_r0.caseField.label + " " + (i_r3 + 1), ctx_r0.caseField.field_type.collection_field_type, item_r2.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("caseFields", ctx_r0.caseFields)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.buildIdPrefix(i_r3));
16234
16285
  } }
16235
16286
  function ReadCollectionFieldComponent_table_0_tbody_3_Template(rf, ctx) { if (rf & 1) {
16236
16287
  i0.ɵɵelementStart(0, "tbody");
16237
- i0.ɵɵtemplate(1, ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template, 3, 12, "tr", 6);
16288
+ i0.ɵɵtemplate(1, ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template, 3, 13, "tr", 6);
16238
16289
  i0.ɵɵelementEnd();
16239
16290
  } if (rf & 2) {
16240
16291
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -16244,7 +16295,7 @@ function ReadCollectionFieldComponent_table_0_tbody_3_Template(rf, ctx) { if (rf
16244
16295
  function ReadCollectionFieldComponent_table_0_Template(rf, ctx) { if (rf & 1) {
16245
16296
  i0.ɵɵelementStart(0, "table", 1);
16246
16297
  i0.ɵɵelementContainerStart(1, 2);
16247
- i0.ɵɵtemplate(2, ReadCollectionFieldComponent_table_0_tbody_2_Template, 5, 12, "tbody", 3)(3, ReadCollectionFieldComponent_table_0_tbody_3_Template, 2, 1, "tbody", 3);
16298
+ i0.ɵɵtemplate(2, ReadCollectionFieldComponent_table_0_tbody_2_Template, 5, 13, "tbody", 3)(3, ReadCollectionFieldComponent_table_0_tbody_3_Template, 2, 1, "tbody", 3);
16248
16299
  i0.ɵɵelementContainerEnd();
16249
16300
  i0.ɵɵelementEnd();
16250
16301
  } if (rf & 2) {
@@ -16272,7 +16323,7 @@ class ReadCollectionFieldComponent extends AbstractFieldReadComponent {
16272
16323
  return prefix;
16273
16324
  }
16274
16325
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadCollectionFieldComponent_BaseFactory; return function ReadCollectionFieldComponent_Factory(__ngFactoryType__) { return (ɵReadCollectionFieldComponent_BaseFactory || (ɵReadCollectionFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadCollectionFieldComponent)))(__ngFactoryType__ || ReadCollectionFieldComponent); }; })();
16275
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadCollectionFieldComponent, selectors: [["ccd-read-collection-field"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["class", "collection-field-table", "aria-describedby", "collection table", 4, "ngIf"], ["aria-describedby", "collection table", 1, "collection-field-table"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["id", "hiddenHeader", 2, "display", "none"], [3, "caseField", "context", "caseFields", "topLevelFormGroup"], [4, "ngFor", "ngForOf"], [3, "caseField", "context", "caseFields", "topLevelFormGroup", "idPrefix"]], template: function ReadCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
16326
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadCollectionFieldComponent, selectors: [["ccd-read-collection-field"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["class", "collection-field-table", "aria-describedby", "collection table", 4, "ngIf"], ["aria-describedby", "collection table", 1, "collection-field-table"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["id", "hiddenHeader", 2, "display", "none"], [3, "caseField", "context", "valueOrigin", "caseFields", "topLevelFormGroup"], [4, "ngFor", "ngForOf"], [3, "caseField", "context", "valueOrigin", "caseFields", "topLevelFormGroup", "idPrefix"]], template: function ReadCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
16276
16327
  i0.ɵɵtemplate(0, ReadCollectionFieldComponent_table_0_Template, 4, 3, "table", 0);
16277
16328
  } if (rf & 2) {
16278
16329
  i0.ɵɵproperty("ngIf", ctx.caseField.value && ctx.caseField.value.length);
@@ -16280,7 +16331,7 @@ class ReadCollectionFieldComponent extends AbstractFieldReadComponent {
16280
16331
  }
16281
16332
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadCollectionFieldComponent, [{
16282
16333
  type: Component,
16283
- args: [{ selector: 'ccd-read-collection-field', standalone: false, template: "<table *ngIf=\"caseField.value && caseField.value.length \" class=\"collection-field-table\" aria-describedby=\"collection table\">\n <ng-container [ngSwitch]=\"isDisplayContextParameterAvailable\">\n <tbody *ngSwitchCase=\"true\">\n <tr>\n <th id=\"hiddenHeader\" style=\"display: none;\"></th>\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: caseField.label,\n label: caseField.label,\n field_type: caseField.field_type.collection_field_type,\n display_context_parameter: caseField.display_context_parameter,\n value: caseField.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [caseFields]=\"caseFields\"\n [topLevelFormGroup]=\"topLevelFormGroup\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n <tbody *ngSwitchCase=\"false\">\n <tr *ngFor=\"let item of caseField.value; let i = index\">\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: i + '',\n label: caseField.label + ' ' + (i + 1),\n field_type: caseField.field_type.collection_field_type,\n value: item.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [caseFields]=\"caseFields\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"buildIdPrefix(i)\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n </ng-container>\n</table>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
16334
+ args: [{ selector: 'ccd-read-collection-field', standalone: false, template: "<table *ngIf=\"caseField.value && caseField.value.length \" class=\"collection-field-table\" aria-describedby=\"collection table\">\n <ng-container [ngSwitch]=\"isDisplayContextParameterAvailable\">\n <tbody *ngSwitchCase=\"true\">\n <tr>\n <th id=\"hiddenHeader\" style=\"display: none;\"></th>\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: caseField.label,\n label: caseField.label,\n field_type: caseField.field_type.collection_field_type,\n display_context_parameter: caseField.display_context_parameter,\n value: caseField.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [caseFields]=\"caseFields\"\n [topLevelFormGroup]=\"topLevelFormGroup\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n <tbody *ngSwitchCase=\"false\">\n <tr *ngFor=\"let item of caseField.value; let i = index\">\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: i + '',\n label: caseField.label + ' ' + (i + 1),\n field_type: caseField.field_type.collection_field_type,\n value: item.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [caseFields]=\"caseFields\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"buildIdPrefix(i)\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n </ng-container>\n</table>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
16284
16335
  }], null, { caseFields: [{
16285
16336
  type: Input
16286
16337
  }] }); })();
@@ -16807,19 +16858,19 @@ function ReadComplexFieldComponent_ccd_read_complex_field_raw_1_Template(rf, ctx
16807
16858
  i0.ɵɵelement(0, "ccd-read-complex-field-raw", 4);
16808
16859
  } if (rf & 2) {
16809
16860
  const ctx_r0 = i0.ɵɵnextContext();
16810
- i0.ɵɵproperty("caseField", ctx_r0.caseField)("caseFields", ctx_r0.caseFields)("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
16861
+ i0.ɵɵproperty("caseField", ctx_r0.caseField)("caseFields", ctx_r0.caseFields)("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
16811
16862
  } }
16812
16863
  function ReadComplexFieldComponent_ccd_read_complex_field_collection_table_2_Template(rf, ctx) { if (rf & 1) {
16813
16864
  i0.ɵɵelement(0, "ccd-read-complex-field-collection-table", 5);
16814
16865
  } if (rf & 2) {
16815
16866
  const ctx_r0 = i0.ɵɵnextContext();
16816
- i0.ɵɵproperty("caseField", ctx_r0.caseField)("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
16867
+ i0.ɵɵproperty("caseField", ctx_r0.caseField)("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
16817
16868
  } }
16818
16869
  function ReadComplexFieldComponent_ccd_read_complex_field_table_3_Template(rf, ctx) { if (rf & 1) {
16819
16870
  i0.ɵɵelement(0, "ccd-read-complex-field-table", 4);
16820
16871
  } if (rf & 2) {
16821
16872
  const ctx_r0 = i0.ɵɵnextContext();
16822
- i0.ɵɵproperty("caseField", ctx_r0.caseField)("caseFields", ctx_r0.caseFields)("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
16873
+ i0.ɵɵproperty("caseField", ctx_r0.caseField)("caseFields", ctx_r0.caseFields)("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
16823
16874
  } }
16824
16875
  class ReadComplexFieldComponent extends AbstractFieldReadComponent {
16825
16876
  caseFields = [];
@@ -16853,9 +16904,9 @@ class ReadComplexFieldComponent extends AbstractFieldReadComponent {
16853
16904
  }
16854
16905
  }
16855
16906
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadComplexFieldComponent_BaseFactory; return function ReadComplexFieldComponent_Factory(__ngFactoryType__) { return (ɵReadComplexFieldComponent_BaseFactory || (ɵReadComplexFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadComplexFieldComponent)))(__ngFactoryType__ || ReadComplexFieldComponent); }; })();
16856
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldComponent, selectors: [["ccd-read-complex-field"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 3, consts: [[3, "ngSwitch"], [3, "caseField", "caseFields", "context", "topLevelFormGroup", "idPrefix", 4, "ngSwitchCase"], [3, "caseField", "context", "topLevelFormGroup", "idPrefix", 4, "ngSwitchCase"], [3, "caseField", "caseFields", "context", "topLevelFormGroup", "idPrefix", 4, "ngSwitchDefault"], [3, "caseField", "caseFields", "context", "topLevelFormGroup", "idPrefix"], [3, "caseField", "context", "topLevelFormGroup", "idPrefix"]], template: function ReadComplexFieldComponent_Template(rf, ctx) { if (rf & 1) {
16907
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldComponent, selectors: [["ccd-read-complex-field"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 3, consts: [[3, "ngSwitch"], [3, "caseField", "caseFields", "context", "valueOrigin", "topLevelFormGroup", "idPrefix", 4, "ngSwitchCase"], [3, "caseField", "context", "valueOrigin", "topLevelFormGroup", "idPrefix", 4, "ngSwitchCase"], [3, "caseField", "caseFields", "context", "valueOrigin", "topLevelFormGroup", "idPrefix", 4, "ngSwitchDefault"], [3, "caseField", "caseFields", "context", "valueOrigin", "topLevelFormGroup", "idPrefix"], [3, "caseField", "context", "valueOrigin", "topLevelFormGroup", "idPrefix"]], template: function ReadComplexFieldComponent_Template(rf, ctx) { if (rf & 1) {
16857
16908
  i0.ɵɵelementContainerStart(0, 0);
16858
- i0.ɵɵtemplate(1, ReadComplexFieldComponent_ccd_read_complex_field_raw_1_Template, 1, 5, "ccd-read-complex-field-raw", 1)(2, ReadComplexFieldComponent_ccd_read_complex_field_collection_table_2_Template, 1, 4, "ccd-read-complex-field-collection-table", 2)(3, ReadComplexFieldComponent_ccd_read_complex_field_table_3_Template, 1, 5, "ccd-read-complex-field-table", 3);
16909
+ i0.ɵɵtemplate(1, ReadComplexFieldComponent_ccd_read_complex_field_raw_1_Template, 1, 6, "ccd-read-complex-field-raw", 1)(2, ReadComplexFieldComponent_ccd_read_complex_field_collection_table_2_Template, 1, 5, "ccd-read-complex-field-collection-table", 2)(3, ReadComplexFieldComponent_ccd_read_complex_field_table_3_Template, 1, 6, "ccd-read-complex-field-table", 3);
16859
16910
  i0.ɵɵelementContainerEnd();
16860
16911
  } if (rf & 2) {
16861
16912
  i0.ɵɵproperty("ngSwitch", ctx.context);
@@ -16867,15 +16918,54 @@ class ReadComplexFieldComponent extends AbstractFieldReadComponent {
16867
16918
  }
16868
16919
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadComplexFieldComponent, [{
16869
16920
  type: Component,
16870
- args: [{ selector: 'ccd-read-complex-field', standalone: false, template: "<ng-container [ngSwitch]=\"context\">\n <ccd-read-complex-field-raw\n *ngSwitchCase=\"paletteContext.CHECK_YOUR_ANSWER\"\n [caseField]=\"caseField\"\n [caseFields]=\"caseFields\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-raw>\n <ccd-read-complex-field-collection-table\n *ngSwitchCase=\"paletteContext.TABLE_VIEW\"\n [caseField]=\"caseField\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-collection-table>\n <ccd-read-complex-field-table\n *ngSwitchDefault\n [caseField]=\"caseField\"\n [caseFields]=\"caseFields\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-table>\n</ng-container>\n" }]
16921
+ args: [{ selector: 'ccd-read-complex-field', standalone: false, template: "<ng-container [ngSwitch]=\"context\">\n <ccd-read-complex-field-raw\n *ngSwitchCase=\"paletteContext.CHECK_YOUR_ANSWER\"\n [caseField]=\"caseField\"\n [caseFields]=\"caseFields\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-raw>\n <ccd-read-complex-field-collection-table\n *ngSwitchCase=\"paletteContext.TABLE_VIEW\"\n [caseField]=\"caseField\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-collection-table>\n <ccd-read-complex-field-table\n *ngSwitchDefault\n [caseField]=\"caseField\"\n [caseFields]=\"caseFields\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-table>\n</ng-container>\n" }]
16871
16922
  }], null, { caseFields: [{
16872
16923
  type: Input
16873
16924
  }] }); })();
16874
16925
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadComplexFieldComponent, { className: "ReadComplexFieldComponent", filePath: "lib/shared/components/palette/complex/read-complex-field.component.ts", lineNumber: 11 }); })();
16875
16926
 
16876
16927
  class ReadDateFieldComponent extends AbstractFieldReadComponent {
16877
- timeZone = 'utc';
16878
- static ɵfac = /*@__PURE__*/ (() => { let ɵReadDateFieldComponent_BaseFactory; return function ReadDateFieldComponent_Factory(__ngFactoryType__) { return (ɵReadDateFieldComponent_BaseFactory || (ɵReadDateFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadDateFieldComponent)))(__ngFactoryType__ || ReadDateFieldComponent); }; })();
16928
+ caseNotifier;
16929
+ static SERVICES_RENDERED_IN_LOCAL_TIME = ['ABA1', 'ABA2', 'ABA6', 'BBA3', 'AAA6', 'BBA2']; // [DIVORCE, FR, PROBATE, SSCS, MONEY CLAIMS (CIVIL), SPETRIBS]
16930
+ caseSubscription;
16931
+ caseHmctsServiceId;
16932
+ constructor(caseNotifier) {
16933
+ super();
16934
+ this.caseNotifier = caseNotifier;
16935
+ }
16936
+ ngOnInit() {
16937
+ super.ngOnInit();
16938
+ this.caseSubscription = this.caseNotifier?.caseView.subscribe((caseDetails) => {
16939
+ this.caseHmctsServiceId = caseDetails?.hmctsServiceId;
16940
+ });
16941
+ }
16942
+ ngOnDestroy() {
16943
+ if (this.caseSubscription) {
16944
+ this.caseSubscription.unsubscribe();
16945
+ }
16946
+ }
16947
+ // Most services display DateTime values as received from CCD; only the services listed in SERVICES_RENDERED_IN_LOCAL_TIME need converting to local time.
16948
+ get timeZone() {
16949
+ return this.shouldRenderInLocalTime() ? 'local' : 'utc';
16950
+ }
16951
+ shouldRenderInLocalTime() {
16952
+ return !this.isFormOriginField() &&
16953
+ this.isCcdMetadataField() &&
16954
+ ReadDateFieldComponent.SERVICES_RENDERED_IN_LOCAL_TIME.includes(this.getHmctsServiceId());
16955
+ }
16956
+ isCcdMetadataField() {
16957
+ return this.caseField?.metadata !== false;
16958
+ }
16959
+ isFormOriginField() {
16960
+ return this.valueOrigin === PaletteValueOrigin.FORM;
16961
+ }
16962
+ getHmctsServiceId() {
16963
+ if (typeof this.caseField?.hmctsServiceId === 'string') {
16964
+ return this.caseField.hmctsServiceId;
16965
+ }
16966
+ return this.caseHmctsServiceId;
16967
+ }
16968
+ static ɵfac = function ReadDateFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadDateFieldComponent)(i0.ɵɵdirectiveInject(CaseNotifier, 8)); };
16879
16969
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadDateFieldComponent, selectors: [["ccd-read-date-field"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 5, consts: [[1, "text-16"]], template: function ReadDateFieldComponent_Template(rf, ctx) { if (rf & 1) {
16880
16970
  i0.ɵɵelementStart(0, "span", 0);
16881
16971
  i0.ɵɵtext(1);
@@ -16883,18 +16973,20 @@ class ReadDateFieldComponent extends AbstractFieldReadComponent {
16883
16973
  i0.ɵɵelementEnd();
16884
16974
  } if (rf & 2) {
16885
16975
  i0.ɵɵadvance();
16886
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind3(2, 1, ctx.caseField.value, "utc", ctx.caseField.dateTimeDisplayFormat));
16976
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind3(2, 1, ctx.caseField.value, ctx.timeZone, ctx.caseField.dateTimeDisplayFormat));
16887
16977
  } }, dependencies: [DatePipe], encapsulation: 2 });
16888
16978
  }
16889
16979
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadDateFieldComponent, [{
16890
16980
  type: Component,
16891
16981
  args: [{
16892
16982
  selector: 'ccd-read-date-field',
16893
- template: `<span class="text-16">{{caseField.value | ccdDate:'utc':caseField.dateTimeDisplayFormat}}</span>`,
16983
+ template: `<span class="text-16">{{caseField.value | ccdDate:timeZone:caseField.dateTimeDisplayFormat}}</span>`,
16894
16984
  standalone: false
16895
16985
  }]
16896
- }], null, null); })();
16897
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadDateFieldComponent, { className: "ReadDateFieldComponent", filePath: "lib/shared/components/palette/date/read-date-field.component.ts", lineNumber: 9 }); })();
16986
+ }], () => [{ type: CaseNotifier, decorators: [{
16987
+ type: Optional
16988
+ }] }], null); })();
16989
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadDateFieldComponent, { className: "ReadDateFieldComponent", filePath: "lib/shared/components/palette/date/read-date-field.component.ts", lineNumber: 13 }); })();
16898
16990
 
16899
16991
  function WriteDateContainerFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
16900
16992
  i0.ɵɵelementContainerStart(0);
@@ -26378,8 +26470,10 @@ function sanitiseRichTextHtml(value) {
26378
26470
  }
26379
26471
 
26380
26472
  class ReadRichTextAreaFieldComponent extends AbstractFieldReadComponent {
26381
- constructor() {
26473
+ sanitizer;
26474
+ constructor(sanitizer) {
26382
26475
  super();
26476
+ this.sanitizer = sanitizer;
26383
26477
  }
26384
26478
  sanitisedValue() {
26385
26479
  const supportedHtml = sanitiseRichTextHtml(this.caseField.value || '');
@@ -26390,12 +26484,9 @@ class ReadRichTextAreaFieldComponent extends AbstractFieldReadComponent {
26390
26484
  delete element.dataset.indent;
26391
26485
  element.classList.add(`ccd-rich-text-indent-${indent}`);
26392
26486
  });
26393
- return DOMPurify.sanitize(documentElement.body.innerHTML, {
26394
- ALLOWED_ATTR: ['align', 'class', 'start', 'type'],
26395
- ALLOWED_TAGS: ['b', 'blockquote', 'br', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'li', 'ol', 'p', 'strong', 'u', 'ul']
26396
- });
26487
+ return this.sanitizer.sanitize(SecurityContext.HTML, documentElement.body.innerHTML) || '';
26397
26488
  }
26398
- static ɵfac = function ReadRichTextAreaFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadRichTextAreaFieldComponent)(); };
26489
+ static ɵfac = function ReadRichTextAreaFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadRichTextAreaFieldComponent)(i0.ɵɵdirectiveInject(i1$5.DomSanitizer)); };
26399
26490
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadRichTextAreaFieldComponent, selectors: [["ccd-read-rich-text-area-field"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[1, "ccd-rich-text-area-read", 3, "innerHTML"]], template: function ReadRichTextAreaFieldComponent_Template(rf, ctx) { if (rf & 1) {
26400
26491
  i0.ɵɵelement(0, "div", 0);
26401
26492
  } if (rf & 2) {
@@ -26404,8 +26495,8 @@ class ReadRichTextAreaFieldComponent extends AbstractFieldReadComponent {
26404
26495
  }
26405
26496
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadRichTextAreaFieldComponent, [{
26406
26497
  type: Component,
26407
- args: [{ selector: 'ccd-read-rich-text-area-field', template: '<div class="ccd-rich-text-area-read" [innerHTML]="sanitisedValue()"></div>', encapsulation: ViewEncapsulation.None, standalone: false, styles: ["@charset \"UTF-8\";.ccd-rich-text-area-read{font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap;word-break:normal}.ccd-rich-text-area-read strong,.ccd-rich-text-area-read strong *,.ccd-rich-text-area-read b,.ccd-rich-text-area-read b *{font-weight:700}.ccd-rich-text-area-read strong u,.ccd-rich-text-area-read u strong,.ccd-rich-text-area-read b u,.ccd-rich-text-area-read u b{font-weight:700!important;text-decoration:underline}.ccd-rich-text-area-read p,.ccd-rich-text-area-read ul,.ccd-rich-text-area-read ol,.ccd-rich-text-area-read li{font-size:14px;margin-top:0;overflow-wrap:anywhere;word-break:normal}.ccd-rich-text-area-read p:empty:before{content:\"\\a0\"}.ccd-rich-text-area-read ul{list-style:disc outside;padding-left:25px}.ccd-rich-text-area-read ol{list-style:decimal outside;padding-left:25px}.ccd-rich-text-area-read ol[type=a]{list-style-type:lower-alpha}.ccd-rich-text-area-read ol[type=i]{list-style-type:lower-roman}.ccd-rich-text-area-read ol[type=i]>li::marker{content:\"(\" counter(list-item,lower-roman) \") \"}.ccd-rich-text-area-read li{display:list-item;margin-bottom:5px}.ccd-rich-text-area-read li>p{margin:0}.ccd-rich-text-area-read li>ul,.ccd-rich-text-area-read li>ol{margin-top:5px}.ccd-rich-text-area-read h1{font-size:20px;font-weight:700}.ccd-rich-text-area-read h2{font-size:18px;font-weight:700}.ccd-rich-text-area-read h3{font-size:16px;font-weight:700}.ccd-rich-text-area-read .ccd-rich-text-indent-1{margin-left:40px}.ccd-rich-text-area-read .ccd-rich-text-indent-2{margin-left:80px}.ccd-rich-text-area-read .ccd-rich-text-indent-3{margin-left:120px}.ccd-rich-text-area-read .ccd-rich-text-indent-4{margin-left:160px}.ccd-rich-text-area-read .ccd-rich-text-indent-5{margin-left:200px}.ccd-rich-text-area-read .ccd-rich-text-indent-6{margin-left:240px}\n"] }]
26408
- }], () => [], null); })();
26498
+ args: [{ selector: 'ccd-read-rich-text-area-field', template: `<div class="ccd-rich-text-area-read" [innerHTML]="sanitisedValue()"></div>`, encapsulation: ViewEncapsulation.None, standalone: false, styles: ["@charset \"UTF-8\";.ccd-rich-text-area-read{font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap;word-break:normal}.ccd-rich-text-area-read strong,.ccd-rich-text-area-read strong *,.ccd-rich-text-area-read b,.ccd-rich-text-area-read b *{font-weight:700}.ccd-rich-text-area-read strong u,.ccd-rich-text-area-read u strong,.ccd-rich-text-area-read b u,.ccd-rich-text-area-read u b{font-weight:700!important;text-decoration:underline}.ccd-rich-text-area-read p,.ccd-rich-text-area-read ul,.ccd-rich-text-area-read ol,.ccd-rich-text-area-read li{font-size:14px;margin-top:0;overflow-wrap:anywhere;word-break:normal}.ccd-rich-text-area-read p:empty:before{content:\"\\a0\"}.ccd-rich-text-area-read ul{list-style:disc outside;padding-left:25px}.ccd-rich-text-area-read ol{list-style:decimal outside;padding-left:25px}.ccd-rich-text-area-read ol[type=a]{list-style-type:lower-alpha}.ccd-rich-text-area-read ol[type=i]{list-style-type:lower-roman}.ccd-rich-text-area-read ol[type=i]>li::marker{content:\"(\" counter(list-item,lower-roman) \") \"}.ccd-rich-text-area-read li{display:list-item;margin-bottom:5px}.ccd-rich-text-area-read li>p{margin:0}.ccd-rich-text-area-read li>ul,.ccd-rich-text-area-read li>ol{margin-top:5px}.ccd-rich-text-area-read h1{font-size:20px;font-weight:700}.ccd-rich-text-area-read h2{font-size:18px;font-weight:700}.ccd-rich-text-area-read h3{font-size:16px;font-weight:700}.ccd-rich-text-area-read .ccd-rich-text-indent-1{margin-left:40px}.ccd-rich-text-area-read .ccd-rich-text-indent-2{margin-left:80px}.ccd-rich-text-area-read .ccd-rich-text-indent-3{margin-left:120px}.ccd-rich-text-area-read .ccd-rich-text-indent-4{margin-left:160px}.ccd-rich-text-area-read .ccd-rich-text-indent-5{margin-left:200px}.ccd-rich-text-area-read .ccd-rich-text-indent-6{margin-left:240px}\n"] }]
26499
+ }], () => [{ type: i1$5.DomSanitizer }], null); })();
26409
26500
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadRichTextAreaFieldComponent, { className: "ReadRichTextAreaFieldComponent", filePath: "lib/shared/components/palette/rich-text-area/read-rich-text-area-field.component.ts", lineNumber: 13 }); })();
26410
26501
 
26411
26502
  const _c0$D = ["editorHost"];
@@ -26579,6 +26670,7 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
26579
26670
  },
26580
26671
  plugins: [
26581
26672
  new Plugin({
26673
+ appendTransaction: (transactions, oldState, newState) => this.renumberContinuedOrderedLists(transactions, oldState, newState),
26582
26674
  props: {
26583
26675
  handlePaste: (_view, event) => this.handleEditorPaste(event),
26584
26676
  handleDOMEvents: {
@@ -27062,6 +27154,71 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
27062
27154
  ? candidateOrder === adjacentOrder + adjacentList.childCount
27063
27155
  : candidateOrder + candidateList.childCount === adjacentOrder;
27064
27156
  }
27157
+ renumberContinuedOrderedLists(transactions, oldState, newState) {
27158
+ if (!transactions.some((transaction) => transaction.docChanged)) {
27159
+ return null;
27160
+ }
27161
+ const oldChildren = [];
27162
+ let oldPosition = 0;
27163
+ oldState.doc.forEach((node) => {
27164
+ oldChildren.push({ node, position: oldPosition });
27165
+ oldPosition += node.nodeSize;
27166
+ });
27167
+ const mapPosition = (position) => transactions.reduce((mappedPosition, transaction) => transaction.mapping.map(mappedPosition, 1), position);
27168
+ const effectiveOrders = new Map();
27169
+ let result = null;
27170
+ oldChildren.forEach(({ node: candidate, position: candidatePosition }, candidateIndex) => {
27171
+ if (candidate.type.name !== 'ordered_list') {
27172
+ return;
27173
+ }
27174
+ let previousIndex = candidateIndex - 1;
27175
+ while (previousIndex >= 0 &&
27176
+ this.isOrderedListContinuationSeparator(oldChildren[previousIndex].node, candidate)) {
27177
+ previousIndex--;
27178
+ }
27179
+ if (previousIndex < 0) {
27180
+ return;
27181
+ }
27182
+ const previous = oldChildren[previousIndex].node;
27183
+ const previousPosition = oldChildren[previousIndex].position;
27184
+ if (previous.type.name !== 'ordered_list' ||
27185
+ !this.hasMatchingListType(candidate, previous) ||
27186
+ candidate.attrs.indent !== previous.attrs.indent ||
27187
+ !this.isSequentialList(candidate, previous, 1)) {
27188
+ return;
27189
+ }
27190
+ const mappedPreviousPosition = mapPosition(previousPosition);
27191
+ const mappedCandidatePosition = mapPosition(candidatePosition);
27192
+ const newPrevious = newState.doc.nodeAt(mappedPreviousPosition);
27193
+ const newCandidate = newState.doc.nodeAt(mappedCandidatePosition);
27194
+ if (!newPrevious || !newCandidate ||
27195
+ newPrevious.type.name !== 'ordered_list' || newCandidate.type.name !== 'ordered_list' ||
27196
+ newPrevious.firstChild?.textContent !== previous.firstChild?.textContent ||
27197
+ newCandidate.firstChild?.textContent !== candidate.firstChild?.textContent ||
27198
+ !this.hasMatchingListType(newCandidate, newPrevious) ||
27199
+ newCandidate.attrs.indent !== newPrevious.attrs.indent) {
27200
+ return;
27201
+ }
27202
+ const previousOrder = effectiveOrders.get(previousPosition) ?? (Number(newPrevious.attrs.order) || 1);
27203
+ const expectedOrder = previousOrder + newPrevious.childCount;
27204
+ effectiveOrders.set(candidatePosition, expectedOrder);
27205
+ if (Number(newCandidate.attrs.order) === expectedOrder) {
27206
+ return;
27207
+ }
27208
+ result = (result || newState.tr).setNodeMarkup(mappedCandidatePosition, newCandidate.type, {
27209
+ ...newCandidate.attrs,
27210
+ order: expectedOrder
27211
+ });
27212
+ });
27213
+ return result;
27214
+ }
27215
+ isOrderedListContinuationSeparator(node, candidate) {
27216
+ if (this.isEmptyParagraph(node) || this.isListSectionHeading(node)) {
27217
+ return true;
27218
+ }
27219
+ return this.isList(node) &&
27220
+ (Number(node.attrs.indent) || 0) > (Number(candidate.attrs.indent) || 0);
27221
+ }
27065
27222
  hasListContinuation(list) {
27066
27223
  return list.type.name === 'ordered_list' || Boolean(list.attrs.continuationOrder);
27067
27224
  }
@@ -27327,7 +27484,10 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
27327
27484
  this.removeUnsupportedMarkup(documentElement);
27328
27485
  this.normaliseDateRangeSpacing(documentElement);
27329
27486
  this.removeUnsupportedAttributes(documentElement);
27330
- return this.normalisePlainTextValue(sanitiseRichTextDocument(documentElement));
27487
+ const sanitisedValue = sanitiseRichTextDocument(documentElement);
27488
+ return this.hasMeaningfulRichTextContent(documentElement)
27489
+ ? this.normalisePlainTextValue(sanitisedValue)
27490
+ : '';
27331
27491
  }
27332
27492
  normaliseRichTextValue(value) {
27333
27493
  if (!value) {
@@ -27345,7 +27505,15 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
27345
27505
  this.removeUnsupportedMarkup(documentElement);
27346
27506
  this.normaliseDateRangeSpacing(documentElement);
27347
27507
  this.removeUnsupportedAttributes(documentElement);
27348
- return this.normalisePlainTextValue(sanitiseRichTextDocument(documentElement));
27508
+ const sanitisedValue = sanitiseRichTextDocument(documentElement);
27509
+ return this.hasMeaningfulRichTextContent(documentElement)
27510
+ ? this.normalisePlainTextValue(sanitisedValue)
27511
+ : '';
27512
+ }
27513
+ hasMeaningfulRichTextContent(documentElement) {
27514
+ const visibleText = (documentElement.body.textContent || '')
27515
+ .replace(/[\s\u00a0\u200b-\u200d\ufeff]/g, '');
27516
+ return visibleText.length > 0 || Boolean(documentElement.body.querySelector('hr'));
27349
27517
  }
27350
27518
  syncAccessibilityLater() {
27351
27519
  setTimeout(() => this.syncAccessibilityState());
@@ -27458,13 +27626,31 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
27458
27626
  }
27459
27627
  this.isNormalisingValue = true;
27460
27628
  try {
27461
- this.richTextAreaControl.setValue(normalisedValue, { emitEvent: false });
27462
- this.editor.setContent(normalisedValue || '');
27629
+ this.richTextAreaControl.setValue(normalisedValue, {
27630
+ emitEvent: false,
27631
+ emitModelToViewChange: false
27632
+ });
27633
+ if (normalisedValue || this.editorHasMeaningfulRichTextContent()) {
27634
+ this.editor.setContent(normalisedValue || '');
27635
+ }
27463
27636
  }
27464
27637
  finally {
27465
27638
  this.isNormalisingValue = false;
27466
27639
  }
27467
27640
  }
27641
+ editorHasMeaningfulRichTextContent() {
27642
+ const documentNode = this.editor.view.state.doc;
27643
+ const visibleText = documentNode.textContent.replace(/[\s\u00a0\u200b-\u200d\ufeff]/g, '');
27644
+ let hasHorizontalRule = false;
27645
+ documentNode.descendants((node) => {
27646
+ if (node.type.name === 'horizontal_rule') {
27647
+ hasHorizontalRule = true;
27648
+ return false;
27649
+ }
27650
+ return !hasHorizontalRule;
27651
+ });
27652
+ return visibleText.length > 0 || hasHorizontalRule;
27653
+ }
27468
27654
  richTextRequiredValidator() {
27469
27655
  return (control) => {
27470
27656
  const textValue = this.htmlToText(control.value);
@@ -27478,8 +27664,9 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
27478
27664
  };
27479
27665
  }
27480
27666
  htmlToText(value) {
27481
- const documentElement = new DOMParser().parseFromString(value || '', 'text/html');
27482
- return (documentElement.body.textContent || '').replaceAll('\u00a0', ' ').trim();
27667
+ const container = document.createElement('div');
27668
+ container.innerHTML = value || '';
27669
+ return (container.textContent || '').replaceAll('\u00a0', ' ').trim();
27483
27670
  }
27484
27671
  isWordHtml(html) {
27485
27672
  return /(class="?Mso|mso-|urn:schemas-microsoft-com:office:word|xmlns:o)/i.test(html);
@@ -28114,7 +28301,7 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
28114
28301
  }
28115
28302
  return value
28116
28303
  .replace(/!?\[([^\]]{0,500})\]\(([^)]{0,500})\)/g, (_match, text, url) => text || url)
28117
- .replace(/!?\[((?:[^[\]\\]|\\.){0,500})\]\s*\[[^\]]{0,100}\]/g, '$1');
28304
+ .replace(/!?\[((?:[^[\]\\]|\\.){0,500})\]\[[^\]]{0,100}\](?!\s*\/)/g, '$1');
28118
28305
  }
28119
28306
  unwrapElement(element) {
28120
28307
  const parentNode = element.parentNode;
@@ -28133,6 +28320,8 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
28133
28320
  const state = {
28134
28321
  listStack: [],
28135
28322
  listParents: [],
28323
+ listRunDeclaredLevel: null,
28324
+ listRunVisualLevel: null,
28136
28325
  resetListLevels: new Map(),
28137
28326
  previousListId: null
28138
28327
  };
@@ -28161,12 +28350,19 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
28161
28350
  resetWordListConversionState(state) {
28162
28351
  state.listStack.length = 0;
28163
28352
  state.listParents.length = 0;
28353
+ state.listRunDeclaredLevel = null;
28354
+ state.listRunVisualLevel = null;
28164
28355
  state.resetListLevels.clear();
28165
28356
  state.previousListId = null;
28166
28357
  }
28167
28358
  wordListRequestedLevel(paragraph, listId, wordListIndents, state) {
28168
28359
  const declaredLevel = this.wordListDeclaredLevel(paragraph);
28169
- let requestedLevel = this.wordListLevel(paragraph, wordListIndents);
28360
+ const visualLevel = this.wordListVisualLevel(paragraph, wordListIndents);
28361
+ if (state.listRunDeclaredLevel === null || state.listRunVisualLevel === null) {
28362
+ state.listRunDeclaredLevel = declaredLevel;
28363
+ state.listRunVisualLevel = visualLevel;
28364
+ }
28365
+ let requestedLevel = Math.max(1, declaredLevel - state.listRunDeclaredLevel + 1, visualLevel - state.listRunVisualLevel + 1);
28170
28366
  const rememberedResetLevel = declaredLevel === 1 ? state.resetListLevels.get(listId) : null;
28171
28367
  if (rememberedResetLevel) {
28172
28368
  return Math.max(requestedLevel, rememberedResetLevel);
@@ -28187,7 +28383,8 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
28187
28383
  let currentList = state.listStack[stackIndex];
28188
28384
  if (currentList?.tagName.toLowerCase() !== listType || currentList?.getAttribute('type') !== orderedListType ||
28189
28385
  state.listParents[stackIndex] !== listParent) {
28190
- currentList = this.createWordList(documentElement, paragraph, listType, orderedListType, parentListItem);
28386
+ const rootIndent = level === 1 ? state.listRunVisualLevel - 1 : 0;
28387
+ currentList = this.createWordList(documentElement, paragraph, listType, orderedListType, parentListItem, rootIndent);
28191
28388
  state.listStack[stackIndex] = currentList;
28192
28389
  state.listParents[stackIndex] = listParent;
28193
28390
  }
@@ -28195,15 +28392,18 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
28195
28392
  state.listParents.length = level;
28196
28393
  return currentList;
28197
28394
  }
28198
- createWordList(documentElement, paragraph, listType, orderedListType, parentListItem) {
28395
+ createWordList(documentElement, paragraph, listType, orderedListType, parentListItem, rootIndent) {
28199
28396
  const list = documentElement.createElement(listType);
28200
- const listStart = this.wordListStart(paragraph);
28397
+ const listStart = this.wordListStart(paragraph, orderedListType);
28201
28398
  if (listType === 'ol' && listStart > 1) {
28202
28399
  list.setAttribute('start', listStart.toString());
28203
28400
  }
28204
28401
  if (orderedListType) {
28205
28402
  list.setAttribute('type', orderedListType);
28206
28403
  }
28404
+ if (rootIndent > 0) {
28405
+ list.dataset.indent = Math.min(6, rootIndent).toString();
28406
+ }
28207
28407
  if (parentListItem) {
28208
28408
  parentListItem.appendChild(list);
28209
28409
  }
@@ -28262,11 +28462,10 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
28262
28462
  .find((element) => /mso-list:\s*Ignore/i.test(element.getAttribute('style') || ''));
28263
28463
  return (markerElement ? markerElement.textContent : paragraph.textContent).trim();
28264
28464
  }
28265
- wordListLevel(paragraph, wordListIndents) {
28266
- const declaredLevel = this.wordListDeclaredLevel(paragraph);
28465
+ wordListVisualLevel(paragraph, wordListIndents) {
28267
28466
  const indent = this.wordListIndent(paragraph);
28268
28467
  const visualLevel = wordListIndents.indexOf(indent) + 1;
28269
- return Math.max(declaredLevel, visualLevel || 1);
28468
+ return visualLevel || 1;
28270
28469
  }
28271
28470
  wordListDeclaredLevel(paragraph) {
28272
28471
  const match = (paragraph.getAttribute('style') || '').match(/mso-list:[^;]*\blevel(\d+)/i);
@@ -28287,9 +28486,18 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
28287
28486
  const indent = Math.max(this.cssLengthToPixels(this.cssStyleLength(style, 'margin-left')), this.cssLengthToPixels(this.cssStyleLength(style, 'margin-inline-start')), this.cssLengthToPixels(this.cssStyleLength(style, 'mso-para-margin-left')), this.cssLengthToPixels(this.cssStyleLength(style, 'mso-margin-left-alt')), this.cssLengthToPixels(this.cssMarginLeftLength(style)));
28288
28487
  return Math.round(indent);
28289
28488
  }
28290
- wordListStart(paragraph) {
28291
- const match = /^(\d+)[.)]/.exec(this.wordListMarker(paragraph));
28292
- return match ? Number(match[1]) : 1;
28489
+ wordListStart(paragraph, orderedListType) {
28490
+ const match = /^\(?([a-z]+|\d+)[.)]/i.exec(this.wordListMarker(paragraph));
28491
+ if (!match) {
28492
+ return 1;
28493
+ }
28494
+ if (/^\d+$/.test(match[1])) {
28495
+ return Number(match[1]);
28496
+ }
28497
+ if (orderedListType === 'a') {
28498
+ return match[1].toLowerCase().split('').reduce((start, character) => (start * 26) + character.charCodeAt(0) - 96, 0);
28499
+ }
28500
+ return 1;
28293
28501
  }
28294
28502
  copyListItemContents(documentElement, paragraph, listItem) {
28295
28503
  Array.prototype.slice.call(paragraph.childNodes).forEach((childNode) => {
@@ -29008,7 +29216,7 @@ class WriteRichTextAreaFieldComponent extends AbstractFieldWriteComponent {
29008
29216
  type: ViewChild,
29009
29217
  args: ['editorHost']
29010
29218
  }] }); })();
29011
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteRichTextAreaFieldComponent, { className: "WriteRichTextAreaFieldComponent", filePath: "lib/shared/components/palette/rich-text-area/write-rich-text-area-field.component.ts", lineNumber: 137 }); })();
29219
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteRichTextAreaFieldComponent, { className: "WriteRichTextAreaFieldComponent", filePath: "lib/shared/components/palette/rich-text-area/write-rich-text-area-field.component.ts", lineNumber: 139 }); })();
29012
29220
 
29013
29221
  class ReadTextFieldComponent extends AbstractFieldReadComponent {
29014
29222
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadTextFieldComponent_BaseFactory; return function ReadTextFieldComponent_Factory(__ngFactoryType__) { return (ɵReadTextFieldComponent_BaseFactory || (ɵReadTextFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadTextFieldComponent)))(__ngFactoryType__ || ReadTextFieldComponent); }; })();
@@ -29562,6 +29770,7 @@ class FieldReadComponent extends AbstractFieldReadComponent {
29562
29770
  component.instance['parent'] = this.parent;
29563
29771
  component.instance['caseReference'] = this.caseReference;
29564
29772
  component.instance['context'] = this.context;
29773
+ component.instance['valueOrigin'] = this.valueOrigin;
29565
29774
  component.instance['labelCanBeTranslated'] = this.labelCanBeTranslated(this.caseField);
29566
29775
  this.fieldContainer?.insert(component.hostView);
29567
29776
  });
@@ -31438,6 +31647,7 @@ function ManageCaseFlagsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
31438
31647
  i0.ɵɵproperty("for", i0.ɵɵinterpolate1("flag-selection-", i_r4))("innerHTML", ctx_r0.sanitizeHtml(i0.ɵɵpipeBind1(3, 6, flagDisplay_r3)), i0.ɵɵsanitizeHtml);
31439
31648
  } }
31440
31649
  class ManageCaseFlagsComponent extends AbstractJourneyComponent {
31650
+ sanitizer;
31441
31651
  formGroup;
31442
31652
  flagsData;
31443
31653
  caseTitle;
@@ -31452,8 +31662,9 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
31452
31662
  selectedControlName = 'selectedManageCaseLocation';
31453
31663
  excludedFlagStatuses = [CaseFlagStatus.INACTIVE, CaseFlagStatus.NOT_APPROVED];
31454
31664
  cachedControls;
31455
- constructor(multipageComponentStateService) {
31665
+ constructor(multipageComponentStateService, sanitizer) {
31456
31666
  super(multipageComponentStateService);
31667
+ this.sanitizer = sanitizer;
31457
31668
  }
31458
31669
  ngOnInit() {
31459
31670
  this.manageCaseFlagTitle = this.setManageCaseFlagTitle(this.displayContextParameter);
@@ -31703,9 +31914,9 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
31703
31914
  }
31704
31915
  // Ensure there is no dangerous HTML in the flag name or description that could lead to XSS vulnerabilities
31705
31916
  sanitizeHtml(content) {
31706
- return DOMPurify.sanitize(content ?? '');
31917
+ return this.sanitizer.sanitize(SecurityContext.HTML, content ?? '') ?? '';
31707
31918
  }
31708
- static ɵfac = function ManageCaseFlagsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ManageCaseFlagsComponent)(i0.ɵɵdirectiveInject(MultipageComponentStateService)); };
31919
+ static ɵfac = function ManageCaseFlagsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ManageCaseFlagsComponent)(i0.ɵɵdirectiveInject(MultipageComponentStateService), i0.ɵɵdirectiveInject(i1$5.DomSanitizer)); };
31709
31920
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle", displayContextParameter: "displayContextParameter" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, standalone: false, 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) {
31710
31921
  i0.ɵɵelementContainerStart(0, 0);
31711
31922
  i0.ɵɵelementStart(1, "div", 1)(2, "fieldset", 2)(3, "legend", 3)(4, "h1", 4);
@@ -31732,7 +31943,7 @@ class ManageCaseFlagsComponent extends AbstractJourneyComponent {
31732
31943
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ManageCaseFlagsComponent, [{
31733
31944
  type: Component,
31734
31945
  args: [{ selector: 'ccd-manage-case-flags', encapsulation: ViewEncapsulation.None, standalone: false, 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]=\"sanitizeHtml(flagDisplay | manageCaseFlagsLabelDisplay)\"></label>\n </div>\n </div>\n </fieldset>\n </div>\n</ng-container>", styles: [".flag-name-and-description{font-weight:700}\n"] }]
31735
- }], () => [{ type: MultipageComponentStateService }], { formGroup: [{
31946
+ }], () => [{ type: MultipageComponentStateService }, { type: i1$5.DomSanitizer }], { formGroup: [{
31736
31947
  type: Input
31737
31948
  }], flagsData: [{
31738
31949
  type: Input
@@ -33975,11 +34186,11 @@ function ReadComplexFieldRawComponent_ng_container_1_Template(rf, ctx) { if (rf
33975
34186
  i0.ɵɵadvance();
33976
34187
  i0.ɵɵproperty("hidden", field_r1.hidden || field_r1.field_type.type === "Label");
33977
34188
  i0.ɵɵadvance(2);
33978
- i0.ɵɵtextInterpolate(ctx_r1.isTranslatable(field_r1) ? i0.ɵɵpipeBind1(5, 11, field_r1.label) : field_r1.label);
34189
+ i0.ɵɵtextInterpolate(ctx_r1.isTranslatable(field_r1) ? i0.ɵɵpipeBind1(5, 12, field_r1.label) : field_r1.label);
33979
34190
  i0.ɵɵadvance(2);
33980
34191
  i0.ɵɵproperty("hidden", field_r1.hidden);
33981
34192
  i0.ɵɵadvance();
33982
- i0.ɵɵproperty("caseField", field_r1)("context", ctx_r1.context)("caseFields", ctx_r1.caseFields)("topLevelFormGroup", ctx_r1.topLevelFormGroup)("idPrefix", ctx_r1.idPrefix);
34193
+ i0.ɵɵproperty("caseField", field_r1)("context", ctx_r1.context)("caseFields", ctx_r1.caseFields)("valueOrigin", ctx_r1.valueOrigin)("topLevelFormGroup", ctx_r1.topLevelFormGroup)("idPrefix", ctx_r1.idPrefix);
33983
34194
  } }
33984
34195
  /**
33985
34196
  * Display a complex type fields as a list of values without labels.
@@ -33988,9 +34199,9 @@ function ReadComplexFieldRawComponent_ng_container_1_Template(rf, ctx) { if (rf
33988
34199
  class ReadComplexFieldRawComponent extends AbstractFieldReadComponent {
33989
34200
  caseFields = [];
33990
34201
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadComplexFieldRawComponent_BaseFactory; return function ReadComplexFieldRawComponent_Factory(__ngFactoryType__) { return (ɵReadComplexFieldRawComponent_BaseFactory || (ɵReadComplexFieldRawComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadComplexFieldRawComponent)))(__ngFactoryType__ || ReadComplexFieldRawComponent); }; })();
33991
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldRawComponent, selectors: [["ccd-read-complex-field-raw"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 12, consts: [[1, "complex-raw"], [4, "ngFor", "ngForOf"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], [3, "hidden"], [1, "text-16"], [3, "caseField", "context", "caseFields", "topLevelFormGroup", "idPrefix"]], template: function ReadComplexFieldRawComponent_Template(rf, ctx) { if (rf & 1) {
34202
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldRawComponent, selectors: [["ccd-read-complex-field-raw"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 12, consts: [[1, "complex-raw"], [4, "ngFor", "ngForOf"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], [3, "hidden"], [1, "text-16"], [3, "caseField", "context", "caseFields", "valueOrigin", "topLevelFormGroup", "idPrefix"]], template: function ReadComplexFieldRawComponent_Template(rf, ctx) { if (rf & 1) {
33992
34203
  i0.ɵɵelementStart(0, "dl", 0);
33993
- i0.ɵɵtemplate(1, ReadComplexFieldRawComponent_ng_container_1_Template, 8, 13, "ng-container", 1);
34204
+ i0.ɵɵtemplate(1, ReadComplexFieldRawComponent_ng_container_1_Template, 8, 14, "ng-container", 1);
33994
34205
  i0.ɵɵpipe(2, "ccdReadFieldsFilter");
33995
34206
  i0.ɵɵelementEnd();
33996
34207
  } if (rf & 2) {
@@ -34000,7 +34211,7 @@ class ReadComplexFieldRawComponent extends AbstractFieldReadComponent {
34000
34211
  }
34001
34212
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadComplexFieldRawComponent, [{
34002
34213
  type: Component,
34003
- args: [{ selector: 'ccd-read-complex-field-raw', standalone: false, template: "<dl class=\"complex-raw\">\n <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :id()\">\n <ng-container ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"topLevelFormGroup\" [contextFields]=\"caseFields\">\n <dt [hidden]=\"field.hidden || field.field_type.type === 'Label'\"><span class=\"text-16\">{{isTranslatable(field) ? (field.label | rpxTranslate) : field.label}}</span></dt>\n <dd [hidden]=\"field.hidden\">\n <ccd-field-read [caseField]=\"field\" [context]=\"context\" [caseFields]=\"caseFields\" [topLevelFormGroup]=\"topLevelFormGroup\" [idPrefix]=\"idPrefix\"></ccd-field-read>\n </dd>\n </ng-container>\n </ng-container>\n</dl>\n", styles: ["dl.complex-raw{list-style-type:none;margin:5px 0 10px}dl.complex-raw dl.complex-raw{padding-left:2ch}dl.complex-raw dt{font-weight:700}\n"] }]
34214
+ args: [{ selector: 'ccd-read-complex-field-raw', standalone: false, template: "<dl class=\"complex-raw\">\n <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :id()\">\n <ng-container ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"topLevelFormGroup\" [contextFields]=\"caseFields\">\n <dt [hidden]=\"field.hidden || field.field_type.type === 'Label'\"><span class=\"text-16\">{{isTranslatable(field) ? (field.label | rpxTranslate) : field.label}}</span></dt>\n <dd [hidden]=\"field.hidden\">\n <ccd-field-read [caseField]=\"field\" [context]=\"context\" [caseFields]=\"caseFields\" [valueOrigin]=\"valueOrigin\" [topLevelFormGroup]=\"topLevelFormGroup\" [idPrefix]=\"idPrefix\"></ccd-field-read>\n </dd>\n </ng-container>\n </ng-container>\n</dl>\n", styles: ["dl.complex-raw{list-style-type:none;margin:5px 0 10px}dl.complex-raw dl.complex-raw{padding-left:2ch}dl.complex-raw dt{font-weight:700}\n"] }]
34004
34215
  }], null, { caseFields: [{
34005
34216
  type: Input
34006
34217
  }] }); })();
@@ -34019,7 +34230,7 @@ function ReadComplexFieldTableComponent_ng_container_9_ng_container_2_Template(r
34019
34230
  i0.ɵɵadvance();
34020
34231
  i0.ɵɵproperty("hidden", field_r1.hidden);
34021
34232
  i0.ɵɵadvance(3);
34022
- i0.ɵɵproperty("topLevelFormGroup", ctx_r1.topLevelFormGroup)("caseFields", ctx_r1.caseFields)("caseField", field_r1)("context", ctx_r1.context);
34233
+ i0.ɵɵproperty("topLevelFormGroup", ctx_r1.topLevelFormGroup)("caseFields", ctx_r1.caseFields)("caseField", field_r1)("context", ctx_r1.context)("valueOrigin", ctx_r1.valueOrigin);
34023
34234
  } }
34024
34235
  function ReadComplexFieldTableComponent_ng_container_9_ng_template_4_Template(rf, ctx) { if (rf & 1) {
34025
34236
  i0.ɵɵelementStart(0, "tr", 11)(1, "th", 12)(2, "span", 3);
@@ -34034,15 +34245,15 @@ function ReadComplexFieldTableComponent_ng_container_9_ng_template_4_Template(rf
34034
34245
  const ctx_r1 = i0.ɵɵnextContext();
34035
34246
  i0.ɵɵproperty("hidden", field_r1.hidden);
34036
34247
  i0.ɵɵadvance(3);
34037
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 6, field_r1.label));
34248
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 7, field_r1.label));
34038
34249
  i0.ɵɵadvance(4);
34039
- i0.ɵɵproperty("topLevelFormGroup", ctx_r1.topLevelFormGroup)("caseFields", ctx_r1.caseFields)("caseField", field_r1)("context", ctx_r1.context);
34250
+ i0.ɵɵproperty("topLevelFormGroup", ctx_r1.topLevelFormGroup)("caseFields", ctx_r1.caseFields)("caseField", field_r1)("context", ctx_r1.context)("valueOrigin", ctx_r1.valueOrigin);
34040
34251
  } }
34041
34252
  function ReadComplexFieldTableComponent_ng_container_9_Template(rf, ctx) { if (rf & 1) {
34042
34253
  i0.ɵɵelementContainerStart(0)(1, 6);
34043
- i0.ɵɵtemplate(2, ReadComplexFieldTableComponent_ng_container_9_ng_container_2_Template, 5, 5, "ng-container", 7);
34254
+ i0.ɵɵtemplate(2, ReadComplexFieldTableComponent_ng_container_9_ng_container_2_Template, 5, 6, "ng-container", 7);
34044
34255
  i0.ɵɵpipe(3, "ccdIsCompound");
34045
- i0.ɵɵtemplate(4, ReadComplexFieldTableComponent_ng_container_9_ng_template_4_Template, 8, 8, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
34256
+ i0.ɵɵtemplate(4, ReadComplexFieldTableComponent_ng_container_9_ng_template_4_Template, 8, 9, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
34046
34257
  i0.ɵɵelementContainerEnd()();
34047
34258
  } if (rf & 2) {
34048
34259
  const field_r1 = ctx.$implicit;
@@ -34072,7 +34283,7 @@ class ReadComplexFieldTableComponent extends AbstractFieldReadComponent {
34072
34283
  this.path = ReadComplexFieldTableComponent.DUMMY_STRING_PRE + this.idPrefix + ReadComplexFieldTableComponent.DUMMY_STRING_POST;
34073
34284
  }
34074
34285
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadComplexFieldTableComponent_BaseFactory; return function ReadComplexFieldTableComponent_Factory(__ngFactoryType__) { return (ɵReadComplexFieldTableComponent_BaseFactory || (ɵReadComplexFieldTableComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadComplexFieldTableComponent)))(__ngFactoryType__ || ReadComplexFieldTableComponent); }; })();
34075
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldTableComponent, selectors: [["ccd-read-complex-field-table"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 17, consts: [["SimpleRow", ""], [1, "complex-panel"], [1, "complex-panel-title"], [1, "text-16"], ["aria-describedby", "complex field table", 1, "complex-panel-table"], [4, "ngFor", "ngForOf"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], [4, "ngIf", "ngIfElse"], [1, "complex-panel-compound-field", 3, "hidden"], ["colspan", "2"], [3, "topLevelFormGroup", "caseFields", "caseField", "context"], [1, "complex-panel-simple-field", 3, "hidden"], ["id", "complex-panel-simple-field-label"]], template: function ReadComplexFieldTableComponent_Template(rf, ctx) { if (rf & 1) {
34286
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldTableComponent, selectors: [["ccd-read-complex-field-table"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 17, consts: [["SimpleRow", ""], [1, "complex-panel"], [1, "complex-panel-title"], [1, "text-16"], ["aria-describedby", "complex field table", 1, "complex-panel-table"], [4, "ngFor", "ngForOf"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], [4, "ngIf", "ngIfElse"], [1, "complex-panel-compound-field", 3, "hidden"], ["colspan", "2"], [3, "topLevelFormGroup", "caseFields", "caseField", "context", "valueOrigin"], [1, "complex-panel-simple-field", 3, "hidden"], ["id", "complex-panel-simple-field-label"]], template: function ReadComplexFieldTableComponent_Template(rf, ctx) { if (rf & 1) {
34076
34287
  i0.ɵɵelementStart(0, "div", 1)(1, "dl", 2)(2, "dt")(3, "span", 3);
34077
34288
  i0.ɵɵtext(4);
34078
34289
  i0.ɵɵpipe(5, "rpxTranslate");
@@ -34092,7 +34303,7 @@ class ReadComplexFieldTableComponent extends AbstractFieldReadComponent {
34092
34303
  }
34093
34304
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadComplexFieldTableComponent, [{
34094
34305
  type: Component,
34095
- args: [{ selector: 'ccd-read-complex-field-table', standalone: false, template: "<div class=\"complex-panel\">\n <dl class=\"complex-panel-title\"><dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt><dd></dd></dl>\n <table class=\"complex-panel-table\" aria-describedby=\"complex field table\">\n <tbody>\n <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :path :idPrefix\">\n <ng-container ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"topLevelFormGroup\" [contextFields]=\"caseFields\">\n <ng-container *ngIf=\"(field | ccdIsCompound); else SimpleRow\">\n <tr class=\"complex-panel-compound-field\" [hidden]=\"field.hidden\">\n <td colspan=\"2\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n [caseField]=\"field\" [context]=\"context\"></ccd-field-read>\n </span>\n </td>\n </tr>\n </ng-container>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-simple-field\" [hidden]=\"field.hidden\">\n <th id=\"complex-panel-simple-field-label\"><span class=\"text-16\">{{field.label | rpxTranslate}}</span></th>\n <td>\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n [caseField]=\"field\" [context]=\"context\"></ccd-field-read>\n </span>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n", styles: [".complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}\n"] }]
34306
+ args: [{ selector: 'ccd-read-complex-field-table', standalone: false, template: "<div class=\"complex-panel\">\n <dl class=\"complex-panel-title\"><dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt><dd></dd></dl>\n <table class=\"complex-panel-table\" aria-describedby=\"complex field table\">\n <tbody>\n <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :path :idPrefix\">\n <ng-container ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"topLevelFormGroup\" [contextFields]=\"caseFields\">\n <ng-container *ngIf=\"(field | ccdIsCompound); else SimpleRow\">\n <tr class=\"complex-panel-compound-field\" [hidden]=\"field.hidden\">\n <td colspan=\"2\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n [caseField]=\"field\" [context]=\"context\" [valueOrigin]=\"valueOrigin\"></ccd-field-read>\n </span>\n </td>\n </tr>\n </ng-container>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-simple-field\" [hidden]=\"field.hidden\">\n <th id=\"complex-panel-simple-field-label\"><span class=\"text-16\">{{field.label | rpxTranslate}}</span></th>\n <td>\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n [caseField]=\"field\" [context]=\"context\" [valueOrigin]=\"valueOrigin\"></ccd-field-read>\n </span>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n", styles: [".complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}\n"] }]
34096
34307
  }], null, { caseFields: [{
34097
34308
  type: Input
34098
34309
  }] }); })();
@@ -34107,7 +34318,6 @@ function ReadComplexFieldCollectionTableComponent_th_10_Template(rf, ctx) { if (
34107
34318
  i0.ɵɵelementStart(4, "a", 9);
34108
34319
  i0.ɵɵpipe(5, "rpxTranslate");
34109
34320
  i0.ɵɵlistener("click", function ReadComplexFieldCollectionTableComponent_th_10_Template_a_click_4_listener($event) { const heading_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.sortRowsByColumns(heading_r2); return i0.ɵɵresetView($event.preventDefault()); })("keyup.enter", function ReadComplexFieldCollectionTableComponent_th_10_Template_a_keyup_enter_4_listener() { const heading_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.sortRowsByColumns(heading_r2)); });
34110
- i0.ɵɵtext(6);
34111
34321
  i0.ɵɵelementEnd()();
34112
34322
  } if (rf & 2) {
34113
34323
  const heading_r2 = ctx.$implicit;
@@ -34115,9 +34325,8 @@ function ReadComplexFieldCollectionTableComponent_th_10_Template(rf, ctx) { if (
34115
34325
  i0.ɵɵadvance(2);
34116
34326
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, ctx_r2.columnsAllLabels[heading_r2].label));
34117
34327
  i0.ɵɵadvance(2);
34328
+ i0.ɵɵproperty("innerHTML", ctx_r2.sortWidget(ctx_r2.columnsAllLabels[heading_r2]), i0.ɵɵsanitizeHtml);
34118
34329
  i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(5, 5, "Sort " + ctx_r2.columnsAllLabels[heading_r2].label));
34119
- i0.ɵɵadvance(2);
34120
- i0.ɵɵtextInterpolate(ctx_r2.sortWidget(ctx_r2.columnsAllLabels[heading_r2]));
34121
34330
  } }
34122
34331
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_div_2_Template(rf, ctx) { if (rf & 1) {
34123
34332
  i0.ɵɵelementStart(0, "div");
@@ -34128,7 +34337,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2
34128
34337
  const item_r7 = i0.ɵɵnextContext().$implicit;
34129
34338
  const ctx_r2 = i0.ɵɵnextContext();
34130
34339
  i0.ɵɵadvance();
34131
- i0.ɵɵproperty("caseField", ctx_r2.toCaseField(heading_r6, item_r7[heading_r6].label, ctx_r2.columnsHorizontalLabel[heading_r6].type, item_r7[heading_r6]))("context", ctx_r2.context);
34340
+ i0.ɵɵproperty("caseField", ctx_r2.toCaseField(heading_r6, item_r7[heading_r6].label, ctx_r2.columnsHorizontalLabel[heading_r6].type, item_r7[heading_r6]))("context", ctx_r2.context)("valueOrigin", ctx_r2.valueOrigin);
34132
34341
  } }
34133
34342
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_ng_template_3_Template(rf, ctx) { if (rf & 1) {
34134
34343
  i0.ɵɵelementStart(0, "div");
@@ -34138,7 +34347,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2
34138
34347
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_Template(rf, ctx) { if (rf & 1) {
34139
34348
  i0.ɵɵelementContainerStart(0);
34140
34349
  i0.ɵɵelementStart(1, "td", 4);
34141
- i0.ɵɵtemplate(2, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_div_2_Template, 2, 2, "div", 17)(3, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_ng_template_3_Template, 2, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
34350
+ i0.ɵɵtemplate(2, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_div_2_Template, 2, 3, "div", 17)(3, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_ng_template_3_Template, 2, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
34142
34351
  i0.ɵɵelementEnd();
34143
34352
  i0.ɵɵelementContainerEnd();
34144
34353
  } if (rf & 2) {
@@ -34157,14 +34366,14 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
34157
34366
  const item_r7 = i0.ɵɵnextContext().$implicit;
34158
34367
  const ctx_r2 = i0.ɵɵnextContext();
34159
34368
  i0.ɵɵadvance();
34160
- i0.ɵɵproperty("caseField", ctx_r2.toCaseField("", vLabel_r9.label, vLabel_r9.field_type, item_r7[vLabel_r9.id]))("context", ctx_r2.context);
34369
+ i0.ɵɵproperty("caseField", ctx_r2.toCaseField("", vLabel_r9.label, vLabel_r9.field_type, item_r7[vLabel_r9.id]))("context", ctx_r2.context)("valueOrigin", ctx_r2.valueOrigin);
34161
34370
  } }
34162
34371
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_1_Template(rf, ctx) { if (rf & 1) {
34163
34372
  i0.ɵɵelementStart(0, "tr", 21)(1, "th", 8)(2, "span", 4);
34164
34373
  i0.ɵɵtext(3);
34165
34374
  i0.ɵɵpipe(4, "rpxTranslate");
34166
34375
  i0.ɵɵelementEnd()();
34167
- i0.ɵɵtemplate(5, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_1_td_5_Template, 2, 2, "td", 22);
34376
+ i0.ɵɵtemplate(5, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_1_td_5_Template, 2, 3, "td", 22);
34168
34377
  i0.ɵɵelementEnd();
34169
34378
  } if (rf & 2) {
34170
34379
  const vLabel_r9 = i0.ɵɵnextContext().$implicit;
@@ -34183,7 +34392,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
34183
34392
  const ctx_r2 = i0.ɵɵnextContext(4);
34184
34393
  i0.ɵɵproperty("hidden", caseField_r10);
34185
34394
  i0.ɵɵadvance(3);
34186
- i0.ɵɵproperty("caseField", caseField_r10)("context", ctx_r2.context);
34395
+ i0.ɵɵproperty("caseField", caseField_r10)("context", ctx_r2.context)("valueOrigin", ctx_r2.valueOrigin);
34187
34396
  } }
34188
34397
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_5_Template(rf, ctx) { if (rf & 1) {
34189
34398
  i0.ɵɵelementStart(0, "td")(1, "span", 4);
@@ -34193,11 +34402,11 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
34193
34402
  const caseField_r10 = i0.ɵɵnextContext(2).$implicit;
34194
34403
  const ctx_r2 = i0.ɵɵnextContext(4);
34195
34404
  i0.ɵɵadvance(2);
34196
- i0.ɵɵproperty("caseField", caseField_r10)("context", ctx_r2.context);
34405
+ i0.ɵɵproperty("caseField", caseField_r10)("context", ctx_r2.context)("valueOrigin", ctx_r2.valueOrigin);
34197
34406
  } }
34198
34407
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_6_Template(rf, ctx) { if (rf & 1) {
34199
34408
  i0.ɵɵelementStart(0, "td");
34200
- i0.ɵɵelement(1, "ccd-read-case-link-field", 18);
34409
+ i0.ɵɵelement(1, "ccd-read-case-link-field", 28);
34201
34410
  i0.ɵɵelementEnd();
34202
34411
  } if (rf & 2) {
34203
34412
  const caseField_r10 = i0.ɵɵnextContext(2).$implicit;
@@ -34212,7 +34421,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
34212
34421
  i0.ɵɵtext(3);
34213
34422
  i0.ɵɵpipe(4, "rpxTranslate");
34214
34423
  i0.ɵɵelementEnd()();
34215
- i0.ɵɵtemplate(5, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_5_Template, 3, 2, "td", 27)(6, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_6_Template, 2, 2, "td", 27);
34424
+ i0.ɵɵtemplate(5, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_5_Template, 3, 3, "td", 27)(6, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_6_Template, 2, 2, "td", 27);
34216
34425
  i0.ɵɵelementEnd();
34217
34426
  } if (rf & 2) {
34218
34427
  const caseField_r10 = i0.ɵɵnextContext().$implicit;
@@ -34228,7 +34437,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
34228
34437
  } }
34229
34438
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {
34230
34439
  i0.ɵɵelementContainerStart(0);
34231
- i0.ɵɵtemplate(1, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_tr_1_Template, 4, 3, "tr", 24);
34440
+ i0.ɵɵtemplate(1, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_tr_1_Template, 4, 4, "tr", 24);
34232
34441
  i0.ɵɵpipe(2, "ccdIsCompound");
34233
34442
  i0.ɵɵtemplate(3, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_Template, 7, 6, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
34234
34443
  i0.ɵɵelementContainerEnd();
@@ -34327,11 +34536,15 @@ class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadComponen
34327
34536
  if (this.isHidden[row]) {
34328
34537
  return 'assets/img/accordion-plus.png';
34329
34538
  }
34330
- if (this.isVerticleDataNotEmpty(row)) {
34331
- return 'assets/img/accordion-minus.png';
34539
+ else {
34540
+ if (this.isVerticleDataNotEmpty(row)) {
34541
+ return 'assets/img/accordion-minus.png';
34542
+ }
34543
+ else {
34544
+ this.isHidden[row] = true;
34545
+ return 'assets/img/accordion-plus.png';
34546
+ }
34332
34547
  }
34333
- this.isHidden[row] = true;
34334
- return 'assets/img/accordion-plus.png';
34335
34548
  }
34336
34549
  /**
34337
34550
  * Needs to be called before 'ccdFieldsFilter' pipe is used, as it needs a caseField value.
@@ -34356,7 +34569,7 @@ class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadComponen
34356
34569
  field_type: fieldType
34357
34570
  });
34358
34571
  }
34359
- keepOriginalOrder = (a) => a.key;
34572
+ keepOriginalOrder = (a, b) => a.key;
34360
34573
  sortRowsByColumns(column) {
34361
34574
  const shouldSortInAscendingOrder = this.columnsHorizontalLabel[column].sortOrder === SortOrder$1.UNSORTED
34362
34575
  || this.columnsHorizontalLabel[column].sortOrder === SortOrder$1.DESCENDING;
@@ -34399,7 +34612,7 @@ class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadComponen
34399
34612
  }
34400
34613
  }
34401
34614
  sortWidget(column) {
34402
- return String.fromCharCode(ReadComplexFieldCollectionTableComponent.isSortAscending(column) ? 9660 : 9650);
34615
+ return ReadComplexFieldCollectionTableComponent.isSortAscending(column) ? '&#9660;' : '&#9650;';
34403
34616
  }
34404
34617
  populateHorizontalLabels(labelsHorizontal, allLabels, labelsVertical) {
34405
34618
  for (const id of this.columns) {
@@ -34443,7 +34656,7 @@ class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadComponen
34443
34656
  return result;
34444
34657
  }
34445
34658
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadComplexFieldCollectionTableComponent_BaseFactory; return function ReadComplexFieldCollectionTableComponent_Factory(__ngFactoryType__) { return (ɵReadComplexFieldCollectionTableComponent_BaseFactory || (ɵReadComplexFieldCollectionTableComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadComplexFieldCollectionTableComponent)))(__ngFactoryType__ || ReadComplexFieldCollectionTableComponent); }; })();
34446
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldCollectionTableComponent, selectors: [["ccd-read-complex-field-collection-table"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 6, consts: [["showEmptyTd", ""], ["SimpleRow", ""], [1, "complex-panel", 3, "hidden"], [1, "complex-panel-title"], [1, "text-16"], ["aria-describedby", "complex panel table", 1, "complex-panel-table"], ["scope", "col", 4, "ngFor", "ngForOf"], [4, "ngFor", "ngForOf"], ["scope", "col"], ["href", "#", 1, "sort-widget", 3, "click", "keyup.enter"], [1, "new-table-row", "accordion-heading", 3, "keyup", "click"], [2, "float", "right"], ["href", "#", 3, "click"], ["alt", "accordion-img", 1, "accordion-image", 3, "src"], [3, "hidden"], [3, "colSpan"], ["aria-describedby", "complex panel table expanded", 1, "complex-panel-table"], [4, "ngIf", "ngIfElse"], [3, "caseField", "context"], ["class", "complex-panel-simple-field accordion-body", 3, "hidden", 4, "ngIf"], [3, "hidden", 4, "ngIf"], [1, "complex-panel-simple-field", "accordion-body", 3, "hidden"], ["class", "text-16", 4, "ngIf"], ["colspan", "2"], ["class", "complex-panel-compound-field", 3, "hidden", 4, "ngIf", "ngIfElse"], [1, "complex-panel-compound-field", 3, "hidden"], [1, "complex-panel-nested-field", 3, "hidden"], [4, "ngIf"]], template: function ReadComplexFieldCollectionTableComponent_Template(rf, ctx) { if (rf & 1) {
34659
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldCollectionTableComponent, selectors: [["ccd-read-complex-field-collection-table"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 6, consts: [["showEmptyTd", ""], ["SimpleRow", ""], [1, "complex-panel", 3, "hidden"], [1, "complex-panel-title"], [1, "text-16"], ["aria-describedby", "complex panel table", 1, "complex-panel-table"], ["scope", "col", 4, "ngFor", "ngForOf"], [4, "ngFor", "ngForOf"], ["scope", "col"], ["href", "#", 1, "sort-widget", 3, "click", "keyup.enter", "innerHTML"], [1, "new-table-row", "accordion-heading", 3, "keyup", "click"], [2, "float", "right"], ["href", "#", 3, "click"], ["alt", "accordion-img", 1, "accordion-image", 3, "src"], [3, "hidden"], [3, "colSpan"], ["aria-describedby", "complex panel table expanded", 1, "complex-panel-table"], [4, "ngIf", "ngIfElse"], [3, "caseField", "context", "valueOrigin"], ["class", "complex-panel-simple-field accordion-body", 3, "hidden", 4, "ngIf"], [3, "hidden", 4, "ngIf"], [1, "complex-panel-simple-field", "accordion-body", 3, "hidden"], ["class", "text-16", 4, "ngIf"], ["colspan", "2"], ["class", "complex-panel-compound-field", 3, "hidden", 4, "ngIf", "ngIfElse"], [1, "complex-panel-compound-field", 3, "hidden"], [1, "complex-panel-nested-field", 3, "hidden"], [4, "ngIf"], [3, "caseField", "context"]], template: function ReadComplexFieldCollectionTableComponent_Template(rf, ctx) { if (rf & 1) {
34447
34660
  i0.ɵɵelementStart(0, "div", 2)(1, "dl", 3)(2, "dt")(3, "span", 4);
34448
34661
  i0.ɵɵtext(4);
34449
34662
  i0.ɵɵpipe(5, "rpxTranslate");
@@ -34451,7 +34664,7 @@ class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadComponen
34451
34664
  i0.ɵɵelement(6, "dd");
34452
34665
  i0.ɵɵelementEnd();
34453
34666
  i0.ɵɵelementStart(7, "table", 5)(8, "tbody")(9, "tr");
34454
- i0.ɵɵtemplate(10, ReadComplexFieldCollectionTableComponent_th_10_Template, 7, 7, "th", 6);
34667
+ i0.ɵɵtemplate(10, ReadComplexFieldCollectionTableComponent_th_10_Template, 6, 7, "th", 6);
34455
34668
  i0.ɵɵelement(11, "th");
34456
34669
  i0.ɵɵelementEnd();
34457
34670
  i0.ɵɵtemplate(12, ReadComplexFieldCollectionTableComponent_ng_container_12_Template, 15, 20, "ng-container", 7);
@@ -34468,7 +34681,7 @@ class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadComponen
34468
34681
  }
34469
34682
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadComplexFieldCollectionTableComponent, [{
34470
34683
  type: Component,
34471
- args: [{ selector: 'ccd-read-complex-field-collection-table', standalone: false, template: "<div class=\"complex-panel\" [hidden]=\"caseField.hidden\">\n <dl class=\"complex-panel-title\">\n <dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt>\n <dd></dd>\n </dl>\n <table class=\"complex-panel-table\" aria-describedby=\"complex panel table\">\n <tbody>\n <!-- <COMPLEX table field header>-->\n <tr>\n <th *ngFor=\"let heading of columns\" scope=\"col\">\n <span class=\"text-16\">{{columnsAllLabels[heading].label | rpxTranslate}}</span>\n <a href=\"#\"\n (click)=\"sortRowsByColumns(heading); $event.preventDefault()\"\n (keyup.enter)=\"sortRowsByColumns(heading)\"\n class=\"sort-widget\"\n [attr.aria-label]=\"'Sort ' + columnsAllLabels[heading].label | rpxTranslate\"\n >{{ sortWidget(columnsAllLabels[heading]) }}</a>\n </th>\n <th></th>\n </tr>\n <!-- </COMPLEX table field header>-->\n <ng-container *ngFor=\"let item of rows; let i = index;\">\n <!-- <COMPLEX table collapsed view>-->\n <tr class=\"new-table-row accordion-heading\" (keyup)=\"$event.key === 'Enter' ? (isHidden[i] = !isHidden[i]) : null\" (click)=\"isHidden[i] = !isHidden[i]\"\n [class.last-accordion]=\"isHidden[i]\">\n <ng-container *ngFor=\"let heading of columns\">\n <td class=\"text-16\">\n <div *ngIf=\"item[heading]; else showEmptyTd\">\n <ccd-field-read\n [caseField]=\"toCaseField(heading, item[heading].label, columnsHorizontalLabel[heading].type, item[heading])\"\n [context]=\"context\"></ccd-field-read>\n </div>\n <ng-template #showEmptyTd>\n <div>&nbsp;</div>\n </ng-template>\n </td>\n </ng-container>\n <td>\n <div style=\"float: right;\">\n <a href=\"#\" (click)=\"$event.preventDefault()\"> <img src=\"{{ getImage(i) }}\" alt=\"accordion-img\" class=\"accordion-image\"/></a>\n </div>\n </td>\n </tr>\n <!-- </COMPLEX table collapsed view>-->\n <!-- <COMPLEX table expanded view>-->\n <tr [hidden]=\"isHidden[i]\">\n <td [colSpan]=\"columns.length + 1\">\n <table class=\"complex-panel-table\" aria-describedby=\"complex panel table expanded\">\n <tbody>\n <ng-container\n *ngFor=\"let vLabel of columnsVerticalLabel | keyvalue: keepOriginalOrder | ccdCollectionTableCaseFieldsFilter: caseField: rows[i] | ccdReadFieldsFilter:true :undefined :true\">\n <!-- <COMPLEX table expandable body simple field>-->\n <tr class=\"complex-panel-simple-field accordion-body\" *ngIf=\"item[vLabel.id]\" [hidden]=\"vLabel.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{ vLabel.label | rpxTranslate }}</span></th>\n <td *ngIf=\"vLabel['type'] !== 'Complex'\" class=\"text-16\">\n <ccd-field-read [caseField]=\"toCaseField('', vLabel.label, vLabel.field_type, item[vLabel.id])\"\n [context]=\"context\"></ccd-field-read>\n </td>\n </tr>\n <!-- </COMPLEX table expandable body simple field>-->\n\n <!-- <COMPLEX table expandable body complex field>-->\n <tr *ngIf=\"vLabel['type'] === 'Complex' && addCaseFieldValue(vLabel, item[vLabel.id])\" [hidden]=\"vLabel.hidden\">\n <td colspan=\"2\">\n <ng-container *ngFor=\"let caseField of vLabel | ccdReadFieldsFilter:true :undefined :true\">\n <tr class=\"complex-panel-compound-field\" *ngIf=\"(caseField | ccdIsCompound); else SimpleRow\" [hidden]=\"caseField\">\n <td colspan=\"2\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\"></ccd-field-read></span>\n </td>\n </tr>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-nested-field\" [hidden]=\"caseField.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></th>\n <td *ngIf=\"!item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\"></ccd-field-read></span>\n </td>\n <td *ngIf=\"item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n <ccd-read-case-link-field [caseField]=\"addCaseReferenceValue(caseField, item[vLabel.id].CaseReference)\" [context]=\"context\"></ccd-read-case-link-field>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </td>\n </tr>\n <!-- <COMPLEX table expandable body complex field>-->\n </ng-container>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- </COMPLEX table expanded view>-->\n </ng-container>\n </tbody>\n </table>\n</div>\n", styles: [".complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th{border-bottom:none}.complex-panel .complex-panel-table th{padding-left:5px;font-weight:700;border-bottom:none}.complex-panel .complex-panel-table td{padding-left:5px;padding-top:0;padding-bottom:0;border-bottom:none}.complex-panel .new-table-row{border-top:1px solid #bfc1c3}.complex-panel .complex-panel-simple-field th{padding-left:5px;padding-top:0;padding-bottom:0;width:295px}.complex-panel .complex-panel-nested-field th{padding-left:33px;padding-top:0;padding-bottom:0;width:200px}.complex-panel .complex-panel-compound-field td{padding:5px;border-bottom:none}.sort-widget{cursor:pointer;text-decoration:none;color:#0b0c0c}.accordion-wrapper{margin-bottom:20px}.accordion-wrapper .heading-medium{margin:0}.accordion-wrapper .accordion-heading{border-top:1px solid #bfc1c3;padding-top:20px;padding-bottom:10px;height:20px;cursor:pointer}.accordion-wrapper .accordion-heading .accordion-image{width:25px;margin-right:20px}.accordion-wrapper .accordion-body{margin-top:20px;margin-right:20px}.accordion-wrapper .last-accordion{border-bottom:1px solid #bfc1c3;padding-bottom:30px}\n"] }]
34684
+ args: [{ selector: 'ccd-read-complex-field-collection-table', standalone: false, template: "<div class=\"complex-panel\" [hidden]=\"caseField.hidden\">\n <dl class=\"complex-panel-title\">\n <dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt>\n <dd></dd>\n </dl>\n <table class=\"complex-panel-table\" aria-describedby=\"complex panel table\">\n <tbody>\n <!-- <COMPLEX table field header>-->\n <tr>\n <th *ngFor=\"let heading of columns\" scope=\"col\">\n <span class=\"text-16\">{{columnsAllLabels[heading].label | rpxTranslate}}</span>\n <a href=\"#\"\n (click)=\"sortRowsByColumns(heading); $event.preventDefault()\"\n (keyup.enter)=\"sortRowsByColumns(heading)\"\n class=\"sort-widget\"\n [attr.aria-label]=\"'Sort ' + columnsAllLabels[heading].label | rpxTranslate\"\n [innerHTML]=\"sortWidget(columnsAllLabels[heading])\"></a>\n </th>\n <th></th>\n </tr>\n <!-- </COMPLEX table field header>-->\n <ng-container *ngFor=\"let item of rows; let i = index;\">\n <!-- <COMPLEX table collapsed view>-->\n <tr class=\"new-table-row accordion-heading\" (keyup)=\"$event.key === 'Enter' ? (isHidden[i] = !isHidden[i]) : null\" (click)=\"isHidden[i] = !isHidden[i]\"\n [class.last-accordion]=\"isHidden[i]\">\n <ng-container *ngFor=\"let heading of columns\">\n <td class=\"text-16\">\n <div *ngIf=\"item[heading]; else showEmptyTd\">\n <ccd-field-read\n [caseField]=\"toCaseField(heading, item[heading].label, columnsHorizontalLabel[heading].type, item[heading])\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"></ccd-field-read>\n </div>\n <ng-template #showEmptyTd>\n <div>&nbsp;</div>\n </ng-template>\n </td>\n </ng-container>\n <td>\n <div style=\"float: right;\">\n <a href=\"#\" (click)=\"$event.preventDefault()\"> <img src=\"{{ getImage(i) }}\" alt=\"accordion-img\" class=\"accordion-image\"/></a>\n </div>\n </td>\n </tr>\n <!-- </COMPLEX table collapsed view>-->\n <!-- <COMPLEX table expanded view>-->\n <tr [hidden]=\"isHidden[i]\">\n <td [colSpan]=\"columns.length + 1\">\n <table class=\"complex-panel-table\" aria-describedby=\"complex panel table expanded\">\n <tbody>\n <ng-container\n *ngFor=\"let vLabel of columnsVerticalLabel | keyvalue: keepOriginalOrder | ccdCollectionTableCaseFieldsFilter: caseField: rows[i] | ccdReadFieldsFilter:true :undefined :true\">\n <!-- <COMPLEX table expandable body simple field>-->\n <tr class=\"complex-panel-simple-field accordion-body\" *ngIf=\"item[vLabel.id]\" [hidden]=\"vLabel.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{ vLabel.label | rpxTranslate }}</span></th>\n <td *ngIf=\"vLabel['type'] !== 'Complex'\" class=\"text-16\">\n <ccd-field-read [caseField]=\"toCaseField('', vLabel.label, vLabel.field_type, item[vLabel.id])\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"></ccd-field-read>\n </td>\n </tr>\n <!-- </COMPLEX table expandable body simple field>-->\n\n <!-- <COMPLEX table expandable body complex field>-->\n <tr *ngIf=\"vLabel['type'] === 'Complex' && addCaseFieldValue(vLabel, item[vLabel.id])\" [hidden]=\"vLabel.hidden\">\n <td colspan=\"2\">\n <ng-container *ngFor=\"let caseField of vLabel | ccdReadFieldsFilter:true :undefined :true\">\n <tr class=\"complex-panel-compound-field\" *ngIf=\"(caseField | ccdIsCompound); else SimpleRow\" [hidden]=\"caseField\">\n <td colspan=\"2\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\" [valueOrigin]=\"valueOrigin\"></ccd-field-read></span>\n </td>\n </tr>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-nested-field\" [hidden]=\"caseField.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></th>\n <td *ngIf=\"!item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\" [valueOrigin]=\"valueOrigin\"></ccd-field-read></span>\n </td>\n <td *ngIf=\"item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n <ccd-read-case-link-field [caseField]=\"addCaseReferenceValue(caseField, item[vLabel.id].CaseReference)\" [context]=\"context\"></ccd-read-case-link-field>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </td>\n </tr>\n <!-- <COMPLEX table expandable body complex field>-->\n </ng-container>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- </COMPLEX table expanded view>-->\n </ng-container>\n </tbody>\n </table>\n</div>\n", styles: [".complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th{border-bottom:none}.complex-panel .complex-panel-table th{padding-left:5px;font-weight:700;border-bottom:none}.complex-panel .complex-panel-table td{padding-left:5px;padding-top:0;padding-bottom:0;border-bottom:none}.complex-panel .new-table-row{border-top:1px solid #bfc1c3}.complex-panel .complex-panel-simple-field th{padding-left:5px;padding-top:0;padding-bottom:0;width:295px}.complex-panel .complex-panel-nested-field th{padding-left:33px;padding-top:0;padding-bottom:0;width:200px}.complex-panel .complex-panel-compound-field td{padding:5px;border-bottom:none}.sort-widget{cursor:pointer;text-decoration:none;color:#0b0c0c}.accordion-wrapper{margin-bottom:20px}.accordion-wrapper .heading-medium{margin:0}.accordion-wrapper .accordion-heading{border-top:1px solid #bfc1c3;padding-top:20px;padding-bottom:10px;height:20px;cursor:pointer}.accordion-wrapper .accordion-heading .accordion-image{width:25px;margin-right:20px}.accordion-wrapper .accordion-body{margin-top:20px;margin-right:20px}.accordion-wrapper .last-accordion{border-bottom:1px solid #bfc1c3;padding-bottom:30px}\n"] }]
34472
34685
  }], null, null); })();
34473
34686
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadComplexFieldCollectionTableComponent, { className: "ReadComplexFieldCollectionTableComponent", filePath: "lib/shared/components/palette/complex/read-complex-field-collection-table.component.ts", lineNumber: 13 }); })();
34474
34687
 
@@ -36921,7 +37134,7 @@ i0.ɵɵsetComponentScope(ReadLinkedCasesFieldComponent, function () { return [i5
36921
37134
  // Components for linked cases
36922
37135
  LinkedCasesToTableComponent,
36923
37136
  LinkedCasesFromTableComponent]; }, []);
36924
- i0.ɵɵsetComponentScope(WriteAddressFieldComponent, function () { return [i5.NgClass, i5.NgForOf, i5.NgIf, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormControlDirective, i4.FormGroupDirective, WriteComplexFieldComponent]; }, function () { return [FieldLabelPipe, i1.RpxTranslatePipe]; });
37137
+ i0.ɵɵsetComponentScope(WriteAddressFieldComponent, function () { return [i5.NgClass, i5.NgForOf, i5.NgIf, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormControlDirective, i4.FormGroupDirective, MarkdownComponent, WriteComplexFieldComponent]; }, function () { return [FieldLabelPipe, i1.RpxTranslatePipe]; });
36925
37138
  i0.ɵɵsetComponentScope(WriteComplexFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i5.NgSwitch, i5.NgSwitchCase, i4.NgControlStatusGroup, i4.FormGroupDirective, LabelSubstitutorDirective, FieldReadComponent,
36926
37139
  FieldWriteComponent]; }, function () { return [FieldLabelPipe, IsReadOnlyPipe]; });
36927
37140
  i0.ɵɵsetComponentScope(WriteDocumentFieldComponent, function () { return [i5.NgClass, i5.NgIf, i1$4.MarkdownComponent, ReadDocumentFieldComponent]; }, function () { return [FieldLabelPipe, i1.RpxTranslatePipe]; });
@@ -37090,13 +37303,13 @@ function CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_contain
37090
37303
  i0.ɵɵadvance();
37091
37304
  i0.ɵɵattribute("colspan", ctx_r1.isLabel(field_r3) ? "2" : "1");
37092
37305
  i0.ɵɵadvance();
37093
- i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("topLevelFormGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r3))("context", ctx_r1.paletteContext)("caseFields", ctx_r1.contextFields);
37306
+ i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("topLevelFormGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r3))("context", ctx_r1.paletteContext)("valueOrigin", ctx_r1.paletteValueOrigin.FORM)("caseFields", ctx_r1.contextFields);
37094
37307
  i0.ɵɵadvance();
37095
37308
  i0.ɵɵproperty("ngIf", !ctx_r1.caseEdit.isCaseFlagSubmission);
37096
37309
  } }
37097
37310
  function CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
37098
37311
  i0.ɵɵelementContainerStart(0);
37099
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_container_1_ng_container_1_ng_container_1_Template, 6, 12, "ng-container", 7);
37312
+ i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_container_1_ng_container_1_ng_container_1_Template, 6, 13, "ng-container", 7);
37100
37313
  i0.ɵɵelementContainerEnd();
37101
37314
  } if (rf & 2) {
37102
37315
  const field_r3 = ctx.$implicit;
@@ -37161,7 +37374,7 @@ function CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_3_Templ
37161
37374
  i0.ɵɵadvance(2);
37162
37375
  i0.ɵɵtextInterpolate(field_r6.label);
37163
37376
  i0.ɵɵadvance(2);
37164
- i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r6));
37377
+ i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r6))("valueOrigin", ctx_r1.paletteValueOrigin.FORM);
37165
37378
  } }
37166
37379
  function CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_4_Template(rf, ctx) { if (rf & 1) {
37167
37380
  i0.ɵɵelementStart(0, "tr", 36)(1, "td", 37);
@@ -37172,12 +37385,12 @@ function CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_4_Templ
37172
37385
  const ctx_r1 = i0.ɵɵnextContext(3);
37173
37386
  i0.ɵɵproperty("caseField", field_r6)("formGroup", ctx_r1.editForm.controls["data"])("contextFields", ctx_r1.contextFields);
37174
37387
  i0.ɵɵadvance(2);
37175
- i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r6))("caseFields", ctx_r1.contextFields);
37388
+ i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r6))("valueOrigin", ctx_r1.paletteValueOrigin.FORM)("caseFields", ctx_r1.contextFields);
37176
37389
  } }
37177
37390
  function CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
37178
37391
  i0.ɵɵelementContainerStart(0)(1, 29);
37179
37392
  i0.ɵɵpipe(2, "ccdIsCompound");
37180
- i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_3_Template, 5, 6, "tr", 30)(4, CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_4_Template, 3, 6, "tr", 31);
37393
+ i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_3_Template, 5, 7, "tr", 30)(4, CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_4_Template, 3, 7, "tr", 31);
37181
37394
  i0.ɵɵelementContainerEnd()();
37182
37395
  } if (rf & 2) {
37183
37396
  const field_r6 = ctx.$implicit;
@@ -37297,6 +37510,7 @@ class CaseEditSubmitComponent {
37297
37510
  profile;
37298
37511
  showSummaryFields;
37299
37512
  paletteContext = PaletteContext.CHECK_YOUR_ANSWER;
37513
+ paletteValueOrigin = PaletteValueOrigin;
37300
37514
  profileSubscription;
37301
37515
  contextFields;
37302
37516
  task;
@@ -37596,7 +37810,7 @@ class CaseEditSubmitComponent {
37596
37810
  return this.placeholderService.resolvePlaceholders(fields, stringToResolve);
37597
37811
  }
37598
37812
  static ɵfac = function CaseEditSubmitComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseEditSubmitComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(OrderService), i0.ɵɵdirectiveInject(ProfileNotifier), i0.ɵɵdirectiveInject(MultipageComponentStateService), i0.ɵɵdirectiveInject(FormValidatorsService), i0.ɵɵdirectiveInject(CaseFlagStateService), i0.ɵɵdirectiveInject(LinkedCasesService), i0.ɵɵdirectiveInject(PlaceholderService)); };
37599
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], standalone: false, decls: 25, vars: 24, consts: [["titleBlock", ""], ["idBlock", ""], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], [3, "error"], [3, "callbackErrorsContext", "callbackErrorsSubject"], [1, "check-your-answers", 3, "submit", "formGroup"], [4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "#", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content", "text-16"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "case-field-label"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "#", 3, "click", 4, "ngIf"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "caseFields"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group", 3, "ngClass"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["class", "error-message", 4, "ngIf"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], [1, "error-message"], [3, "eventCanBeCompleted", "eventCompletionParams"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
37813
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], standalone: false, decls: 25, vars: 24, consts: [["titleBlock", ""], ["idBlock", ""], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], [3, "error"], [3, "callbackErrorsContext", "callbackErrorsSubject"], [1, "check-your-answers", 3, "submit", "formGroup"], [4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "#", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content", "text-16"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "valueOrigin", "caseFields"], [1, "valign-top", "case-field-label"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "#", 3, "click", 4, "ngIf"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField", "valueOrigin"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "valueOrigin", "caseFields"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group", 3, "ngClass"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["class", "error-message", 4, "ngIf"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], [1, "error-message"], [3, "eventCanBeCompleted", "eventCompletionParams"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
37600
37814
  const _r1 = i0.ɵɵgetCurrentView();
37601
37815
  i0.ɵɵelementStart(0, "div")(1, "h1", 2);
37602
37816
  i0.ɵɵtext(2);
@@ -37657,7 +37871,7 @@ class CaseEditSubmitComponent {
37657
37871
  }
37658
37872
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditSubmitComponent, [{
37659
37873
  type: Component,
37660
- args: [{ selector: 'ccd-case-edit-submit', standalone: false, template: "<div>\n <!-- Event trigger name -->\n <h1 class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\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: contextFields : editForm.controls['data'] | rpxTranslate\"></ccd-markdown>\n </ng-template>\n <ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n </ng-template>\n\n <ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n <ccd-callback-errors [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\"></ccd-callback-errors>\n\n <form class=\"check-your-answers\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <div *ngIf=\"!caseEdit.isEventCompletionChecksRequired\">\n <ng-container *ngIf=\"checkYourAnswerFieldsToDisplayExists()\">\n <h2 class=\"heading-h2\">{{pageTitle | rpxTranslate }}</h2>\n <span class=\"text-16\" *ngIf=\"!caseEdit.isCaseFlagSubmission\">{{'Check the information below carefully.' | rpxTranslate}}</span>\n\n <table class=\"form-table\" aria-describedby=\"check your answers table\">\n <tbody>\n <ng-container *ngFor=\"let page of wizard.pages\">\n <ng-container *ngIf=\"isShown(page)\">\n <ng-container *ngFor=\"let field of page\n | ccdPageFields: editForm\n | ccdReadFieldsFilter: false :undefined :true :allFieldsValues\n | ccdCYAPageLabelFilter\">\n <ng-container *ngIf=\"canShowFieldInCYA(field)\">\n <tr ccdLabelSubstitutor [caseField]=\"field\" [hidden]=\"field.hidden\"\n [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th *ngIf=\"!isLabel(field) && !caseEdit.isCaseFlagSubmission\" class=\"valign-top case-field-label\">\n <span class=\"text-16\">{{field.label | rpxTranslate}}</span>\n </th>\n <td class=\"form-cell case-field-content text-16\" [attr.colspan]=\"isLabel(field) ? '2' : '1'\">\n <ccd-field-read\n [formGroup]=\"editForm.controls['data']\" [topLevelFormGroup]=\"editForm.controls['data']\"\n [caseField]=\"summaryCaseField(field)\" [context]=\"paletteContext\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n <ng-container *ngIf=\"!caseEdit.isCaseFlagSubmission\">\n <td class=\"valign-top check-your-answers__change case-field-change\">\n <a *ngIf=\"isChangeAllowed(field)\" (click)=\"navigateToPage(page.id); $event.preventDefault()\"\n href=\"#\">\n <span class=\"text-16\" attr.aria-label=\"{{'Change' | rpxTranslate}} {{ field.label | rpxTranslate }}\">\n {{'Change' | rpxTranslate}}\n </span>\n </a>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"readOnlySummaryFieldsToDisplayExists()\">\n\n <table class=\"summary-fields\" aria-describedby=\"summary fields table\">\n <tbody>\n <ng-container *ngFor=\"let field of showSummaryFields\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th id=\"summary-field-label\">{{field.label}}</th>\n <td class=\"form-cell\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\"></ccd-field-read>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <td colspan=\"2\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"showEventNotes()\">\n <fieldset id=\"fieldset-event\" formGroupName=\"event\">\n <legend style=\"display: none;\"></legend>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!summary && !summary.valid && (summary.dirty || summary.touched)}\">\n <label for=\"field-trigger-summary\" class=\"form-label\">\n Event summary (optional)\n <span class=\"form-hint\">A few words describing the purpose of the event.</span>\n </label>\n <span class=\"error-message\" *ngIf=\"summary?.errors && (summary.dirty || summary.touched)\">\n {{summary.errors | ccdFirstError: eventSummaryLabel | rpxTranslate}}\n </span>\n <input type=\"text\" id=\"field-trigger-summary\" class=\"form-control bottom-30 width-50\"\n [ngClass]=\"{'govuk-input--error': summary?.errors && (summary.dirty || summary.touched)}\" formControlName=\"summary\" maxlength=\"1024\">\n </div>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!description && !description.valid && (description.dirty || description.touched)}\">\n <label for=\"field-trigger-description\" class=\"form-label\">Event description (optional)</label>\n <span class=\"error-message\" *ngIf=\"description?.errors && (description.dirty || description.touched)\">\n {{description.errors | ccdFirstError: eventDescriptionLabel | rpxTranslate}}\n </span>\n <textarea id=\"field-trigger-description\" class=\"form-control bottom-30 width-50\" formControlName=\"description\"\n [ngClass]=\"{'govuk-input--error': description?.errors && (description.dirty || description.touched)}\" maxlength=\"65536\"></textarea>\n </div>\n </fieldset>\n </ng-container>\n </div>\n <ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n </ccd-case-event-completion>\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!hasPrevious() || caseEdit.isSubmitting\" (click)=\"previous()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button type=\"submit\" [disabled]=\"isDisabled\" class=\"button\">\n {{triggerText | rpxTranslate}}\n </button>\n </div>\n <p class=\"cancel\">\n <a (click)=\"cancel(); $event.preventDefault()\" href=\"#\" [class.disabled]=\"caseEdit.isSubmitting\">{{getCancelText() | rpxTranslate}}</a>\n </p>\n </form>\n</div>\n\n", styles: ["#fieldset-case-data{margin-bottom:30px}#fieldset-case-data th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}#confirmation-header{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body{width:630px;background-color:#fff}.valign-top{vertical-align:top}.summary-fields{margin-bottom:30px}.summary-fields tbody tr th,.summary-fields tbody tr td{border-bottom:0px}a.disabled{pointer-events:none;cursor:default}.case-field-label{width:45%}.case-field-content{width:50%}.no-bottom-border{border-bottom:none}.case-field-change{width:5%}.refresh-modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.refresh-modal{background:#fff;padding:24px;max-width:520px;width:90%;box-shadow:0 8px 24px #0003;border-radius:4px;text-align:center}.refresh-modal .button{margin-top:12px}\n"] }]
37874
+ args: [{ selector: 'ccd-case-edit-submit', standalone: false, template: "<div>\n <!-- Event trigger name -->\n <h1 class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\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: contextFields : editForm.controls['data'] | rpxTranslate\"></ccd-markdown>\n </ng-template>\n <ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n </ng-template>\n\n <ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n <ccd-callback-errors [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\"></ccd-callback-errors>\n\n <form class=\"check-your-answers\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <div *ngIf=\"!caseEdit.isEventCompletionChecksRequired\">\n <ng-container *ngIf=\"checkYourAnswerFieldsToDisplayExists()\">\n <h2 class=\"heading-h2\">{{pageTitle | rpxTranslate }}</h2>\n <span class=\"text-16\" *ngIf=\"!caseEdit.isCaseFlagSubmission\">{{'Check the information below carefully.' | rpxTranslate}}</span>\n\n <table class=\"form-table\" aria-describedby=\"check your answers table\">\n <tbody>\n <ng-container *ngFor=\"let page of wizard.pages\">\n <ng-container *ngIf=\"isShown(page)\">\n <ng-container *ngFor=\"let field of page\n | ccdPageFields: editForm\n | ccdReadFieldsFilter: false :undefined :true :allFieldsValues\n | ccdCYAPageLabelFilter\">\n <ng-container *ngIf=\"canShowFieldInCYA(field)\">\n <tr ccdLabelSubstitutor [caseField]=\"field\" [hidden]=\"field.hidden\"\n [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th *ngIf=\"!isLabel(field) && !caseEdit.isCaseFlagSubmission\" class=\"valign-top case-field-label\">\n <span class=\"text-16\">{{field.label | rpxTranslate}}</span>\n </th>\n <td class=\"form-cell case-field-content text-16\" [attr.colspan]=\"isLabel(field) ? '2' : '1'\">\n <ccd-field-read\n [formGroup]=\"editForm.controls['data']\" [topLevelFormGroup]=\"editForm.controls['data']\"\n [caseField]=\"summaryCaseField(field)\" [context]=\"paletteContext\" [valueOrigin]=\"paletteValueOrigin.FORM\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n <ng-container *ngIf=\"!caseEdit.isCaseFlagSubmission\">\n <td class=\"valign-top check-your-answers__change case-field-change\">\n <a *ngIf=\"isChangeAllowed(field)\" (click)=\"navigateToPage(page.id); $event.preventDefault()\"\n href=\"#\">\n <span class=\"text-16\" attr.aria-label=\"{{'Change' | rpxTranslate}} {{ field.label | rpxTranslate }}\">\n {{'Change' | rpxTranslate}}\n </span>\n </a>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"readOnlySummaryFieldsToDisplayExists()\">\n\n <table class=\"summary-fields\" aria-describedby=\"summary fields table\">\n <tbody>\n <ng-container *ngFor=\"let field of showSummaryFields\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th id=\"summary-field-label\">{{field.label}}</th>\n <td class=\"form-cell\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\" [valueOrigin]=\"paletteValueOrigin.FORM\"></ccd-field-read>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <td colspan=\"2\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\" [valueOrigin]=\"paletteValueOrigin.FORM\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"showEventNotes()\">\n <fieldset id=\"fieldset-event\" formGroupName=\"event\">\n <legend style=\"display: none;\"></legend>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!summary && !summary.valid && (summary.dirty || summary.touched)}\">\n <label for=\"field-trigger-summary\" class=\"form-label\">\n Event summary (optional)\n <span class=\"form-hint\">A few words describing the purpose of the event.</span>\n </label>\n <span class=\"error-message\" *ngIf=\"summary?.errors && (summary.dirty || summary.touched)\">\n {{summary.errors | ccdFirstError: eventSummaryLabel | rpxTranslate}}\n </span>\n <input type=\"text\" id=\"field-trigger-summary\" class=\"form-control bottom-30 width-50\"\n [ngClass]=\"{'govuk-input--error': summary?.errors && (summary.dirty || summary.touched)}\" formControlName=\"summary\" maxlength=\"1024\">\n </div>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!description && !description.valid && (description.dirty || description.touched)}\">\n <label for=\"field-trigger-description\" class=\"form-label\">Event description (optional)</label>\n <span class=\"error-message\" *ngIf=\"description?.errors && (description.dirty || description.touched)\">\n {{description.errors | ccdFirstError: eventDescriptionLabel | rpxTranslate}}\n </span>\n <textarea id=\"field-trigger-description\" class=\"form-control bottom-30 width-50\" formControlName=\"description\"\n [ngClass]=\"{'govuk-input--error': description?.errors && (description.dirty || description.touched)}\" maxlength=\"65536\"></textarea>\n </div>\n </fieldset>\n </ng-container>\n </div>\n <ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n </ccd-case-event-completion>\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!hasPrevious() || caseEdit.isSubmitting\" (click)=\"previous()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button type=\"submit\" [disabled]=\"isDisabled\" class=\"button\">\n {{triggerText | rpxTranslate}}\n </button>\n </div>\n <p class=\"cancel\">\n <a (click)=\"cancel(); $event.preventDefault()\" href=\"#\" [class.disabled]=\"caseEdit.isSubmitting\">{{getCancelText() | rpxTranslate}}</a>\n </p>\n </form>\n</div>\n", styles: ["#fieldset-case-data{margin-bottom:30px}#fieldset-case-data th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}#confirmation-header{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body{width:630px;background-color:#fff}.valign-top{vertical-align:top}.summary-fields{margin-bottom:30px}.summary-fields tbody tr th,.summary-fields tbody tr td{border-bottom:0px}a.disabled{pointer-events:none;cursor:default}.case-field-label{width:45%}.case-field-content{width:50%}.no-bottom-border{border-bottom:none}.case-field-change{width:5%}.refresh-modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.refresh-modal{background:#fff;padding:24px;max-width:520px;width:90%;box-shadow:0 8px 24px #0003;border-radius:4px;text-align:center}.refresh-modal .button{margin-top:12px}\n"] }]
37661
37875
  }], () => [{ type: CaseEditComponent }, { type: FieldsUtils }, { type: CaseFieldService }, { type: i1$1.ActivatedRoute }, { type: OrderService }, { type: ProfileNotifier }, { type: MultipageComponentStateService }, { type: FormValidatorsService }, { type: CaseFlagStateService }, { type: LinkedCasesService }, { type: PlaceholderService }], null); })();
37662
37876
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditSubmitComponent, { className: "CaseEditSubmitComponent", filePath: "lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.ts", lineNumber: 32 }); })();
37663
37877
 
@@ -45172,15 +45386,13 @@ function SearchResultComponent_table_0_th_11_div_5_Template(rf, ctx) { if (rf &
45172
45386
  i0.ɵɵelementStart(0, "div", 28)(1, "a", 29);
45173
45387
  i0.ɵɵpipe(2, "rpxTranslate");
45174
45388
  i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_11_div_5_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r6); const col_r5 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(2); ctx_r0.sort(col_r5); return i0.ɵɵresetView($event.preventDefault()); })("keyup.enter", function SearchResultComponent_table_0_th_11_div_5_Template_a_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r6); const col_r5 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.sort(col_r5)); });
45175
- i0.ɵɵtext(3);
45176
45389
  i0.ɵɵelementEnd()();
45177
45390
  } if (rf & 2) {
45178
45391
  const col_r5 = i0.ɵɵnextContext().$implicit;
45179
45392
  const ctx_r0 = i0.ɵɵnextContext(2);
45180
45393
  i0.ɵɵadvance();
45394
+ i0.ɵɵproperty("innerHTML", ctx_r0.sortWidget(col_r5), i0.ɵɵsanitizeHtml);
45181
45395
  i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(2, 2, "Sort " + col_r5.label));
45182
- i0.ɵɵadvance(2);
45183
- i0.ɵɵtextInterpolate(ctx_r0.sortWidget(col_r5));
45184
45396
  } }
45185
45397
  function SearchResultComponent_table_0_th_11_Template(rf, ctx) { if (rf & 1) {
45186
45398
  const _r4 = i0.ɵɵgetCurrentView();
@@ -45189,7 +45401,7 @@ function SearchResultComponent_table_0_th_11_Template(rf, ctx) { if (rf & 1) {
45189
45401
  i0.ɵɵtext(3);
45190
45402
  i0.ɵɵpipe(4, "rpxTranslate");
45191
45403
  i0.ɵɵelementEnd();
45192
- i0.ɵɵtemplate(5, SearchResultComponent_table_0_th_11_div_5_Template, 4, 4, "div", 27);
45404
+ i0.ɵɵtemplate(5, SearchResultComponent_table_0_th_11_div_5_Template, 3, 4, "div", 27);
45193
45405
  i0.ɵɵelementEnd()();
45194
45406
  } if (rf & 2) {
45195
45407
  const col_r5 = ctx.$implicit;
@@ -45494,6 +45706,7 @@ class SearchResultComponent {
45494
45706
  placeholderService;
45495
45707
  browserService;
45496
45708
  sessionStorageService;
45709
+ caseFlagRefdataService;
45497
45710
  static PARAM_JURISDICTION = 'jurisdiction';
45498
45711
  static PARAM_CASE_TYPE = 'case-type';
45499
45712
  static PARAM_CASE_STATE = 'case-state';
@@ -45525,12 +45738,15 @@ class SearchResultComponent {
45525
45738
  draftsCount;
45526
45739
  consumerSortParameters = { column: null, order: null, type: null };
45527
45740
  selectedCases = [];
45528
- constructor(searchResultViewItemComparatorFactory, appConfig, activityService, caseReferencePipe, placeholderService, browserService, sessionStorageService) {
45741
+ hmctsServiceIdByCaseType = new Map();
45742
+ pendingHmctsServiceIdCaseTypes = new Set();
45743
+ constructor(searchResultViewItemComparatorFactory, appConfig, activityService, caseReferencePipe, placeholderService, browserService, sessionStorageService, caseFlagRefdataService) {
45529
45744
  this.activityService = activityService;
45530
45745
  this.caseReferencePipe = caseReferencePipe;
45531
45746
  this.placeholderService = placeholderService;
45532
45747
  this.browserService = browserService;
45533
45748
  this.sessionStorageService = sessionStorageService;
45749
+ this.caseFlagRefdataService = caseFlagRefdataService;
45534
45750
  this.searchResultViewItemComparatorFactory = searchResultViewItemComparatorFactory;
45535
45751
  this.paginationPageSize = appConfig.getPaginationPageSize();
45536
45752
  this.hideRows = false;
@@ -45538,7 +45754,7 @@ class SearchResultComponent {
45538
45754
  ngOnInit() {
45539
45755
  if (this.preSelectedCases) {
45540
45756
  for (const preSelectedCase of this.preSelectedCases) {
45541
- if (this.selectedCases && !this.selectedCases.some((aCase) => aCase.case_id === preSelectedCase.case_id)) {
45757
+ if (this.selectedCases && !this.selectedCases.some(aCase => aCase.case_id === preSelectedCase.case_id)) {
45542
45758
  this.selectedCases.push(preSelectedCase);
45543
45759
  }
45544
45760
  }
@@ -45547,7 +45763,7 @@ class SearchResultComponent {
45547
45763
  this.selection.emit(this.selectedCases);
45548
45764
  }
45549
45765
  ngOnChanges(changes) {
45550
- if (changes.resultView) {
45766
+ if (changes['resultView']) {
45551
45767
  this.hideRows = false;
45552
45768
  this.sortParameters = undefined;
45553
45769
  // Clone `resultView` to prevent sorting the external variable
@@ -45560,10 +45776,11 @@ class SearchResultComponent {
45560
45776
  return a.order - b.order;
45561
45777
  });
45562
45778
  this.hydrateResultView();
45779
+ this.resolveHmctsServiceIdsForResults();
45563
45780
  this.draftsCount = this.draftsCount ? this.draftsCount : this.numberOfDrafts();
45564
45781
  }
45565
- if (changes.page) {
45566
- this.selected.page = (changes.page).currentValue;
45782
+ if (changes['page']) {
45783
+ this.selected.page = (changes['page']).currentValue;
45567
45784
  }
45568
45785
  }
45569
45786
  isTranslatable(col) {
@@ -45593,7 +45810,7 @@ class SearchResultComponent {
45593
45810
  selectAll() {
45594
45811
  if (this.allOnPageSelected()) {
45595
45812
  // all cases already selected, so unselect all on this page
45596
- this.resultView.results.forEach((c) => {
45813
+ this.resultView.results.forEach(c => {
45597
45814
  this.selectedCases.forEach((s, i) => {
45598
45815
  if (c.case_id === s.case_id) {
45599
45816
  this.selectedCases.splice(i, 1);
@@ -45602,7 +45819,7 @@ class SearchResultComponent {
45602
45819
  });
45603
45820
  }
45604
45821
  else {
45605
- this.resultView.results.forEach((c) => {
45822
+ this.resultView.results.forEach(c => {
45606
45823
  if (!this.isSelected(c) && this.canBeShared(c)) {
45607
45824
  this.selectedCases.push(c);
45608
45825
  }
@@ -45654,21 +45871,21 @@ class SearchResultComponent {
45654
45871
  */
45655
45872
  // A longer term resolution is to move this piece of logic to the backend
45656
45873
  hydrateResultView() {
45657
- this.resultView.results.forEach((result) => {
45874
+ this.resultView.results.forEach(result => {
45658
45875
  const caseFields = [];
45659
- Object.keys(result.case_fields).forEach((fieldId) => {
45876
+ Object.keys(result.case_fields).forEach(fieldId => {
45660
45877
  const field = result.case_fields[fieldId];
45661
45878
  caseFields.push(Object.assign(new CaseField(), {
45662
45879
  id: fieldId,
45663
45880
  label: null,
45664
45881
  field_type: {},
45665
45882
  value: field,
45666
- display_context: null
45883
+ display_context: null,
45667
45884
  }));
45668
45885
  });
45669
45886
  result.hydrated_case_fields = caseFields;
45670
45887
  result.columns = {};
45671
- this.resultView.columns.forEach((col) => {
45888
+ this.resultView.columns.forEach(col => {
45672
45889
  result.columns[col.case_field_id] = this.buildCaseField(col, result);
45673
45890
  });
45674
45891
  });
@@ -45705,10 +45922,62 @@ class SearchResultComponent {
45705
45922
  label: col.label,
45706
45923
  field_type: col.case_field_type,
45707
45924
  value: result.case_fields[col.case_field_id],
45925
+ metadata: col.metadata,
45708
45926
  display_context_parameter: col.display_context_parameter,
45709
- display_context: col.display_context
45927
+ display_context: col.display_context,
45928
+ hmctsServiceId: this.hmctsServiceIdByCaseType.get(this.getCaseTypeId(result)) || ''
45710
45929
  });
45711
45930
  }
45931
+ resolveHmctsServiceIdsForResults() {
45932
+ this.resultView.results.forEach((result) => {
45933
+ const caseTypeId = this.getCaseTypeId(result);
45934
+ if (!caseTypeId || !this.caseFlagRefdataService) {
45935
+ return;
45936
+ }
45937
+ if (this.hmctsServiceIdByCaseType.has(caseTypeId)) {
45938
+ this.applyHmctsServiceIdToResultFields(caseTypeId, this.hmctsServiceIdByCaseType.get(caseTypeId));
45939
+ return;
45940
+ }
45941
+ if (this.pendingHmctsServiceIdCaseTypes.has(caseTypeId)) {
45942
+ return;
45943
+ }
45944
+ this.pendingHmctsServiceIdCaseTypes.add(caseTypeId);
45945
+ this.getHmctsServiceDetails(result, caseTypeId).subscribe({
45946
+ next: (serviceDetails) => {
45947
+ const hmctsServiceId = serviceDetails?.find((serviceDetail) => !!serviceDetail.service_code)?.service_code;
45948
+ if (hmctsServiceId) {
45949
+ this.hmctsServiceIdByCaseType.set(caseTypeId, hmctsServiceId);
45950
+ this.applyHmctsServiceIdToResultFields(caseTypeId, hmctsServiceId);
45951
+ }
45952
+ },
45953
+ error: () => this.pendingHmctsServiceIdCaseTypes.delete(caseTypeId),
45954
+ complete: () => this.pendingHmctsServiceIdCaseTypes.delete(caseTypeId)
45955
+ });
45956
+ });
45957
+ }
45958
+ getHmctsServiceDetails(result, caseTypeId) {
45959
+ return this.caseFlagRefdataService.getHmctsServiceDetailsByCaseType(caseTypeId).pipe(catchError(() => of([])), switchMap((serviceDetails) => {
45960
+ if (serviceDetails?.some((serviceDetail) => !!serviceDetail.service_code)) {
45961
+ return of(serviceDetails);
45962
+ }
45963
+ const jurisdictionId = result?.case_fields?.['[JURISDICTION]'];
45964
+ return jurisdictionId
45965
+ ? this.caseFlagRefdataService.getHmctsServiceDetailsByServiceName(jurisdictionId).pipe(catchError(() => of([])))
45966
+ : of(serviceDetails);
45967
+ }));
45968
+ }
45969
+ applyHmctsServiceIdToResultFields(caseTypeId, hmctsServiceId) {
45970
+ this.resultView.results
45971
+ .filter((result) => this.getCaseTypeId(result) === caseTypeId)
45972
+ .forEach((result) => {
45973
+ Object.keys(result.columns || {}).forEach((columnId) => {
45974
+ result.columns[columnId].hmctsServiceId = hmctsServiceId;
45975
+ });
45976
+ });
45977
+ }
45978
+ getCaseTypeId(result) {
45979
+ return result?.case_fields?.['[CASE_TYPE]'] || this.caseType?.id;
45980
+ }
45712
45981
  getColumnsWithPrefix(col, result) {
45713
45982
  col.value = this.draftPrefixOrGet(col, result);
45714
45983
  col.value = this.placeholderService.resolvePlaceholders(result.case_fields, col.value);
@@ -45759,7 +46028,7 @@ class SearchResultComponent {
45759
46028
  else {
45760
46029
  condition = this.isSortAscending(column);
45761
46030
  }
45762
- return String.fromCodePoint(condition ? 9660 : 9650);
46031
+ return condition ? '&#9660;' : '&#9650;';
45763
46032
  }
45764
46033
  activityEnabled() {
45765
46034
  return this.activityService.isEnabled;
@@ -45768,13 +46037,19 @@ class SearchResultComponent {
45768
46037
  if (col.case_field_id === '[CASE_REFERENCE]') {
45769
46038
  return this.caseReferencePipe.transform(result.case_fields[col.case_field_id]);
45770
46039
  }
45771
- if (col.id) {
45772
- if (col.id === '[CASE_REFERENCE]') {
45773
- return this.caseReferencePipe.transform(result.case_fields[col.id]);
46040
+ else {
46041
+ if (col.id) {
46042
+ if (col.id === '[CASE_REFERENCE]') {
46043
+ return this.caseReferencePipe.transform(result.case_fields[col.id]);
46044
+ }
46045
+ else {
46046
+ return result.case_fields[col.id];
46047
+ }
46048
+ }
46049
+ else {
46050
+ return result.case_fields[col.case_field_id];
45774
46051
  }
45775
- return result.case_fields[col.id];
45776
46052
  }
45777
- return result.case_fields[col.case_field_id];
45778
46053
  }
45779
46054
  draftPrefixOrGet(col, result) {
45780
46055
  return result.case_id.startsWith(DRAFT_PREFIX) ? DRAFT_PREFIX : this.hyphenateIfCaseReferenceOrGet(col, result);
@@ -45809,7 +46084,7 @@ class SearchResultComponent {
45809
46084
  return currentPage > 1 ? this.draftsCount : 0;
45810
46085
  }
45811
46086
  numberOfDrafts() {
45812
- return this.resultView.results.filter((_) => _.case_id.startsWith(DRAFT_PREFIX)).length;
46087
+ return this.resultView.results.filter(_ => _.case_id.startsWith(DRAFT_PREFIX)).length;
45813
46088
  }
45814
46089
  goToCase(caseId) {
45815
46090
  this.clickCase.emit({
@@ -45825,8 +46100,8 @@ class SearchResultComponent {
45825
46100
  }
45826
46101
  // eslint-disable-next-line @typescript-eslint/no-empty-function
45827
46102
  noop() { }
45828
- static ɵfac = function SearchResultComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultComponent)(i0.ɵɵdirectiveInject(SearchResultViewItemComparatorFactory), i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(ActivityService), i0.ɵɵdirectiveInject(CaseReferencePipe), i0.ɵɵdirectiveInject(PlaceholderService), i0.ɵɵdirectiveInject(BrowserService), i0.ɵɵdirectiveInject(SessionStorageService)); };
45829
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultComponent, selectors: [["ccd-search-result"]], inputs: { caseLinkUrlTemplate: "caseLinkUrlTemplate", jurisdiction: "jurisdiction", caseType: "caseType", caseState: "caseState", caseFilterFG: "caseFilterFG", resultView: "resultView", page: "page", paginationMetadata: "paginationMetadata", metadataFields: "metadataFields", selectionEnabled: "selectionEnabled", showOnlySelected: "showOnlySelected", preSelectedCases: "preSelectedCases", consumerSortingEnabled: "consumerSortingEnabled" }, outputs: { selection: "selection", changePage: "changePage", clickCase: "clickCase", sortHandler: "sortHandler" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [["case_reference", ""], [4, "ngIf"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange", 4, "ngIf"], ["class", "notification", 4, "ngIf"], ["id", "search-result-heading__text", "tabindex", "-1", 1, "heading-h2"], ["class", "govuk-warning-text pagination-limit-warning", 4, "ngIf"], ["class", "pagination-top", 4, "ngIf"], ["class", "reset-selection", 4, "ngIf"], ["scope", "row"], ["class", "govuk-table__checkbox", 4, "ngIf"], ["class", "search-result-column-header", "scope", "col", 4, "ngFor", "ngForOf"], ["style", "width: 110px;", "scope", "col", 4, "ngIf"], [1, "govuk-warning-text", "pagination-limit-warning"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], [1, "pagination-top"], ["id", "search-result-summary__text", 1, "text-16"], [1, "govuk-!-font-weight-bold"], [1, "reset-selection"], ["href", "#", 1, "search-result-reset-link", 3, "click"], [1, "govuk-table__checkbox"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "checked", "disabled"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], ["scope", "col", 1, "search-result-column-header"], [1, "search-result-column-label", 3, "click", "keyup"], ["class", "search-result-column-sort", 4, "ngIf"], [1, "search-result-column-sort"], ["href", "#", 1, "sort-widget", 3, "click", "keyup.enter"], ["scope", "col", 2, "width", "110px"], [4, "ngFor", "ngForOf"], ["class", "govuk-table__checkbox", "scope", "col", 4, "ngIf"], ["class", "search-result-column-cell", "scope", "row", 4, "ngFor", "ngForOf"], ["scope", "col", 1, "govuk-table__checkbox"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "id", "name", "checked", "disabled"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["scope", "row", 1, "search-result-column-cell"], ["class", "govuk-link", 3, "routerLink", 4, "ngIf"], ["class", "text-16", 3, "visibility", 4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["class", "text-16", 4, "ngIf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute", 4, "ngIf", "ngIfElse"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute"], [3, "caseId", "displayMode"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "keyup", "id", "name", "checked", "disabled"], [3, "pageChange", "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], [1, "notification"]], template: function SearchResultComponent_Template(rf, ctx) { if (rf & 1) {
46103
+ static ɵfac = function SearchResultComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultComponent)(i0.ɵɵdirectiveInject(SearchResultViewItemComparatorFactory), i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(ActivityService), i0.ɵɵdirectiveInject(CaseReferencePipe), i0.ɵɵdirectiveInject(PlaceholderService), i0.ɵɵdirectiveInject(BrowserService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseFlagRefdataService, 8)); };
46104
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultComponent, selectors: [["ccd-search-result"]], inputs: { caseLinkUrlTemplate: "caseLinkUrlTemplate", jurisdiction: "jurisdiction", caseType: "caseType", caseState: "caseState", caseFilterFG: "caseFilterFG", resultView: "resultView", page: "page", paginationMetadata: "paginationMetadata", metadataFields: "metadataFields", selectionEnabled: "selectionEnabled", showOnlySelected: "showOnlySelected", preSelectedCases: "preSelectedCases", consumerSortingEnabled: "consumerSortingEnabled" }, outputs: { selection: "selection", changePage: "changePage", clickCase: "clickCase", sortHandler: "sortHandler" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [["case_reference", ""], [4, "ngIf"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange", 4, "ngIf"], ["class", "notification", 4, "ngIf"], ["id", "search-result-heading__text", "tabindex", "-1", 1, "heading-h2"], ["class", "govuk-warning-text pagination-limit-warning", 4, "ngIf"], ["class", "pagination-top", 4, "ngIf"], ["class", "reset-selection", 4, "ngIf"], ["scope", "row"], ["class", "govuk-table__checkbox", 4, "ngIf"], ["class", "search-result-column-header", "scope", "col", 4, "ngFor", "ngForOf"], ["style", "width: 110px;", "scope", "col", 4, "ngIf"], [1, "govuk-warning-text", "pagination-limit-warning"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], [1, "pagination-top"], ["id", "search-result-summary__text", 1, "text-16"], [1, "govuk-!-font-weight-bold"], [1, "reset-selection"], ["href", "#", 1, "search-result-reset-link", 3, "click"], [1, "govuk-table__checkbox"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "checked", "disabled"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], ["scope", "col", 1, "search-result-column-header"], [1, "search-result-column-label", 3, "click", "keyup"], ["class", "search-result-column-sort", 4, "ngIf"], [1, "search-result-column-sort"], ["href", "#", 1, "sort-widget", 3, "click", "keyup.enter", "innerHTML"], ["scope", "col", 2, "width", "110px"], [4, "ngFor", "ngForOf"], ["class", "govuk-table__checkbox", "scope", "col", 4, "ngIf"], ["class", "search-result-column-cell", "scope", "row", 4, "ngFor", "ngForOf"], ["scope", "col", 1, "govuk-table__checkbox"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "id", "name", "checked", "disabled"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["scope", "row", 1, "search-result-column-cell"], ["class", "govuk-link", 3, "routerLink", 4, "ngIf"], ["class", "text-16", 3, "visibility", 4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["class", "text-16", 4, "ngIf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute", 4, "ngIf", "ngIfElse"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute"], [3, "caseId", "displayMode"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "keyup", "id", "name", "checked", "disabled"], [3, "pageChange", "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], [1, "notification"]], template: function SearchResultComponent_Template(rf, ctx) { if (rf & 1) {
45830
46105
  i0.ɵɵtemplate(0, SearchResultComponent_table_0_Template, 16, 11, "table", 1)(1, SearchResultComponent_ccd_pagination_1_Template, 1, 6, "ccd-pagination", 2)(2, SearchResultComponent_div_2_Template, 4, 6, "div", 3);
45831
46106
  } if (rf & 2) {
45832
46107
  i0.ɵɵproperty("ngIf", ctx.hasResults() || ctx.hasDrafts());
@@ -45838,8 +46113,10 @@ class SearchResultComponent {
45838
46113
  }
45839
46114
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultComponent, [{
45840
46115
  type: Component,
45841
- args: [{ selector: 'ccd-search-result', standalone: false, template: "<table *ngIf=\"hasResults() || hasDrafts()\">\n <caption>\n <h2 class=\"heading-h2\" id=\"search-result-heading__text\" tabindex=\"-1\">{{ (caseState ? 'Your cases' : 'Search result') | rpxTranslate}}</h2>\n\n <div class=\"govuk-warning-text pagination-limit-warning\" *ngIf=\"paginationLimitEnforced\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n {{'The total size of the result set is' | rpxTranslate}} {{paginationMetadata.totalResultsCount | number}}. {{'Only the first 10,000 records are available for display.' | rpxTranslate}}\n </strong>\n </div>\n\n <div *ngIf=\"(hasResults() || hasDrafts())\" class=\"pagination-top\">\n <output [attr.aria-label]=\"getTotalResults() + ' ' + ('results have been found' | rpxTranslate)\"></output>\n <span class=\"text-16\" id=\"search-result-summary__text\">{{'Showing' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getFirstResult() }}</span>\n {{'to' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getLastResult() }}</span>\n {{'of' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getTotalResults() }}</span> {{'results' | rpxTranslate}}</span>\n </div>\n <div *ngIf=\"(hasResults() || hasDrafts()) && selectionEnabled\" class=\"reset-selection\"\n [attr.aria-label]=\"'Reset selection' | rpxTranslate\">\n <span><a class=\"search-result-reset-link\" href=\"#\" (click)=\"clearSelection(); $event.preventDefault()\">{{'Reset case selection' | rpxTranslate}}</a></span>\n </div>\n </caption>\n <thead>\n <tr scope=\"row\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-all\" name=\"select-all\" type=\"checkbox\" (change)=\"selectAll()\" [checked]=\"allOnPageSelected()\" [disabled]=\"!canAnyBeShared()\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-all\" [attr.aria-labelledby]=\"'select-all'\">\n </label>\n </div>\n </td>\n <th *ngFor=\"let col of resultView.columns\" class=\"search-result-column-header\"\n [attr.aria-sort]=\"isSortAscending(col) === null ? null : (isSortAscending(col) ? 'ascending' : 'descending')\" scope=\"col\">\n <div>\n <div class=\"search-result-column-label\" (click)=\"sort(col)\" (keyup)=\"noop()\">\n {{ isTranslatable(col) ? (col.label | rpxTranslate) : col.label }}\n </div>\n <div *ngIf=\"comparator(col)\" class=\"search-result-column-sort\">\n <a (click)=\"sort(col); $event.preventDefault()\" (keyup.enter)=\"sort(col)\" class=\"sort-widget\" [attr.aria-label]=\"'Sort ' + col.label | rpxTranslate\" href=\"#\">{{ sortWidget(col) }}</a>\n </div>\n </div>\n </th>\n <th *ngIf=\"activityEnabled()\" style=\"width: 110px;\" scope=\"col\">&ZeroWidthSpace;</th>\n </tr>\n </thead>\n\n <tbody>\n <!-- sorted by consumer -->\n <ng-container *ngIf=\"consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n <!-- sorted by toolkit -->\n <ng-container *ngIf=\"!consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | ccdSortSearchResult : sortParameters | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" (keyup)=\"onKeyUp($event, result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n\n </tbody>\n</table>\n\n<ccd-pagination\n *ngIf=\"hasResults()\"\n (pageChange)=\"goToPage($event)\"\n [visibilityLabel]=\"hideRows ? 'hidden' : 'visible'\"\n [autoHide]=\"true\"\n [maxSize]=\"8\"\n [screenReaderPaginationLabel]=\"'Pagination'\"\n [screenReaderPageLabel]=\"page\"\n [screenReaderCurrentLabel]=\"'You\\'re on page'\"></ccd-pagination>\n\n<div *ngIf=\"!(hasResults() || hasDrafts())\" class=\"notification\"\n[attr.aria-describedby]=\"'No cases found. Try using different filters.' | rpxTranslate\">\n{{'No cases found. Try using different filters.' | rpxTranslate}}\n</div>\n", styles: ["table thead tr th{vertical-align:top}table tbody tr td{font-size:16px;word-wrap:break-word}table tbody tr td a{float:left}table .caseid-col{white-space:nowrap}.notification{text-align:center;padding:30px 0;margin-top:75px}a:hover{color:#005ea5}.search-result-reset-link{padding-right:15px;padding-left:15px}.search-result-column-header{width:unset;table-layout:normal}.search-result-column-header div{display:table-cell;width:auto}@media screen and (max-width:379px){.search-result-column-header div{display:block;float:right}}.search-result-column-label{font-size:16px;font-weight:700;word-wrap:break-word;cursor:pointer;padding-right:15px}.search-result-column-sort{font-size:16px}.sort-widget{cursor:pointer;text-decoration:none;color:#231f20}span.heading-medium{margin-top:-20px}.govuk-table__checkbox{vertical-align:middle;padding-left:3px}#search-result-heading__text:focus{outline:none}\n"] }]
45842
- }], () => [{ type: SearchResultViewItemComparatorFactory }, { type: AbstractAppConfig }, { type: ActivityService }, { type: CaseReferencePipe }, { type: PlaceholderService }, { type: BrowserService }, { type: SessionStorageService }], { caseLinkUrlTemplate: [{
46116
+ args: [{ selector: 'ccd-search-result', standalone: false, template: "<table *ngIf=\"hasResults() || hasDrafts()\">\n <caption>\n <h2 class=\"heading-h2\" id=\"search-result-heading__text\" tabindex=\"-1\">{{ (caseState ? 'Your cases' : 'Search result') | rpxTranslate}}</h2>\n\n <div class=\"govuk-warning-text pagination-limit-warning\" *ngIf=\"paginationLimitEnforced\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n {{'The total size of the result set is' | rpxTranslate}} {{paginationMetadata.totalResultsCount | number}}. {{'Only the first 10,000 records are available for display.' | rpxTranslate}}\n </strong>\n </div>\n\n <div *ngIf=\"(hasResults() || hasDrafts())\" class=\"pagination-top\">\n <output [attr.aria-label]=\"getTotalResults() + ' ' + ('results have been found' | rpxTranslate)\"></output>\n <span class=\"text-16\" id=\"search-result-summary__text\">{{'Showing' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getFirstResult() }}</span>\n {{'to' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getLastResult() }}</span>\n {{'of' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getTotalResults() }}</span> {{'results' | rpxTranslate}}</span>\n </div>\n <div *ngIf=\"(hasResults() || hasDrafts()) && selectionEnabled\" class=\"reset-selection\"\n [attr.aria-label]=\"'Reset selection' | rpxTranslate\">\n <span><a class=\"search-result-reset-link\" href=\"#\" (click)=\"clearSelection(); $event.preventDefault()\">{{'Reset case selection' | rpxTranslate}}</a></span>\n </div>\n </caption>\n <thead>\n <tr scope=\"row\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-all\" name=\"select-all\" type=\"checkbox\" (change)=\"selectAll()\" [checked]=\"allOnPageSelected()\" [disabled]=\"!canAnyBeShared()\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-all\" [attr.aria-labelledby]=\"'select-all'\">\n </label>\n </div>\n </td>\n <th *ngFor=\"let col of resultView.columns\" class=\"search-result-column-header\"\n [attr.aria-sort]=\"isSortAscending(col) === null ? null : (isSortAscending(col) ? 'ascending' : 'descending')\" scope=\"col\">\n <div>\n <div class=\"search-result-column-label\" (click)=\"sort(col)\" (keyup)=\"noop()\">\n {{ isTranslatable(col) ? (col.label | rpxTranslate) : col.label }}\n </div>\n <div *ngIf=\"comparator(col)\" class=\"search-result-column-sort\">\n <a (click)=\"sort(col); $event.preventDefault()\" (keyup.enter)=\"sort(col)\" class=\"sort-widget\" [innerHTML]=\"sortWidget(col)\" [attr.aria-label]=\"'Sort ' + col.label | rpxTranslate\" href=\"#\"></a>\n </div>\n </div>\n </th>\n <th *ngIf=\"activityEnabled()\" style=\"width: 110px;\" scope=\"col\">&ZeroWidthSpace;</th>\n </tr>\n </thead>\n\n <tbody>\n <!-- sorted by consumer -->\n <ng-container *ngIf=\"consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n <!-- sorted by toolkit -->\n <ng-container *ngIf=\"!consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | ccdSortSearchResult : sortParameters | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" (keyup)=\"onKeyUp($event, result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n\n </tbody>\n</table>\n\n<ccd-pagination\n *ngIf=\"hasResults()\"\n (pageChange)=\"goToPage($event)\"\n [visibilityLabel]=\"hideRows ? 'hidden' : 'visible'\"\n [autoHide]=\"true\"\n [maxSize]=\"8\"\n [screenReaderPaginationLabel]=\"'Pagination'\"\n [screenReaderPageLabel]=\"page\"\n [screenReaderCurrentLabel]=\"'You\\'re on page'\"></ccd-pagination>\n\n<div *ngIf=\"!(hasResults() || hasDrafts())\" class=\"notification\"\n[attr.aria-describedby]=\"'No cases found. Try using different filters.' | rpxTranslate\">\n{{'No cases found. Try using different filters.' | rpxTranslate}}\n</div>\n", styles: ["table thead tr th{vertical-align:top}table tbody tr td{font-size:16px;word-wrap:break-word}table tbody tr td a{float:left}table .caseid-col{white-space:nowrap}.notification{text-align:center;padding:30px 0;margin-top:75px}a:hover{color:#005ea5}.search-result-reset-link{padding-right:15px;padding-left:15px}.search-result-column-header{width:unset;table-layout:normal}.search-result-column-header div{display:table-cell;width:auto}@media screen and (max-width:379px){.search-result-column-header div{display:block;float:right}}.search-result-column-label{font-size:16px;font-weight:700;word-wrap:break-word;cursor:pointer;padding-right:15px}.search-result-column-sort{font-size:16px}.sort-widget{cursor:pointer;text-decoration:none;color:#231f20}span.heading-medium{margin-top:-20px}.govuk-table__checkbox{vertical-align:middle;padding-left:3px}#search-result-heading__text:focus{outline:none}\n"] }]
46117
+ }], () => [{ type: SearchResultViewItemComparatorFactory }, { type: AbstractAppConfig }, { type: ActivityService }, { type: CaseReferencePipe }, { type: PlaceholderService }, { type: BrowserService }, { type: SessionStorageService }, { type: CaseFlagRefdataService, decorators: [{
46118
+ type: Optional
46119
+ }] }], { caseLinkUrlTemplate: [{
45843
46120
  type: Input
45844
46121
  }], jurisdiction: [{
45845
46122
  type: Input
@@ -45874,7 +46151,7 @@ class SearchResultComponent {
45874
46151
  }], sortHandler: [{
45875
46152
  type: Output
45876
46153
  }] }); })();
45877
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultComponent, { className: "SearchResultComponent", filePath: "lib/shared/components/search-result/search-result.component.ts", lineNumber: 19 }); })();
46154
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultComponent, { className: "SearchResultComponent", filePath: "lib/shared/components/search-result/search-result.component.ts", lineNumber: 23 }); })();
45878
46155
 
45879
46156
  class SearchResultModule {
45880
46157
  static ɵfac = function SearchResultModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultModule)(); };
@@ -46175,5 +46452,5 @@ class TestRouteSnapshotBuilder {
46175
46452
  * Generated bundle index. Do not edit.
46176
46453
  */
46177
46454
 
46178
- export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, AbstractFieldWriteJourneyComponent, AbstractJourneyComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, COMPONENT_PORTAL_INJECTION_TOKEN, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewFolderToggleComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagCheckYourAnswersPageStep, CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, CloseQueryComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, ConfirmFlagStatusComponent, ConfirmStatusErrorMessage, ConfirmStatusStep, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, EnumDisplayDescriptionPipe, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FlagFieldDisplayPipe, FocusElementDirective, FocusElementModule, FocusService, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LanguageInterpreterDisplayPipe, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, ManageCaseFlagsLabelDisplayPipe, MarkdownComponent, MarkdownComponentModule, MoneyGbpInputComponent, MultipageComponentStateService, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, QualifyingQuestionDetailComponent, QualifyingQuestionOptionsComponent, QualifyingQuestionService, QualifyingQuestionsErrorMessage, QueryAttachmentsReadComponent, QueryCaseDetailsHeaderComponent, QueryCheckYourAnswersComponent, QueryConfirmationComponent, QueryCreateContext, QueryDetailsComponent, QueryEventCompletionComponent, QueryItemResponseStatus, QueryListComponent, QueryListData, QueryListItem, QueryManagementService, QueryWriteAddDocumentsComponent, QueryWriteDateInputComponent, QueryWriteRaiseQueryComponent, QueryWriteRespondToQueryComponent, RaiseQueryErrorMessage, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadCookieService, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicMultiSelectListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadQueryManagementFieldComponent, ReadRichTextAreaFieldComponent, ReadStaffUserFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RespondToQueryErrorMessages, RetryUtil, RouterHelperService, RouterLinkComponent, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionErrorPageComponent, SessionErrorRoute, SessionJsonErrorLogger, SessionStorageGuard, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, StructuredLoggerService, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, TranslatedMarkdownDirective, TranslatedMarkdownModule, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagAddTranslationErrorMessage, UpdateFlagAddTranslationFormComponent, UpdateFlagAddTranslationStep, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, UpdateFlagTitleDisplayPipe, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicMultiSelectListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteRichTextAreaFieldComponent, WriteStaffUserFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, caseMessagesMockData, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, parseStaffUserSearchConfiguration, safeJsonParse, textFieldType, viewerRouting };
46455
+ export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, AbstractFieldWriteJourneyComponent, AbstractJourneyComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, COMPONENT_PORTAL_INJECTION_TOKEN, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewFolderToggleComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagCheckYourAnswersPageStep, CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, CloseQueryComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, ConfirmFlagStatusComponent, ConfirmStatusErrorMessage, ConfirmStatusStep, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, EnumDisplayDescriptionPipe, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FlagFieldDisplayPipe, FocusElementDirective, FocusElementModule, FocusService, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LanguageInterpreterDisplayPipe, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, ManageCaseFlagsLabelDisplayPipe, MarkdownComponent, MarkdownComponentModule, MoneyGbpInputComponent, MultipageComponentStateService, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, PaletteValueOrigin, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, QualifyingQuestionDetailComponent, QualifyingQuestionOptionsComponent, QualifyingQuestionService, QualifyingQuestionsErrorMessage, QueryAttachmentsReadComponent, QueryCaseDetailsHeaderComponent, QueryCheckYourAnswersComponent, QueryConfirmationComponent, QueryCreateContext, QueryDetailsComponent, QueryEventCompletionComponent, QueryItemResponseStatus, QueryListComponent, QueryListData, QueryListItem, QueryManagementService, QueryWriteAddDocumentsComponent, QueryWriteDateInputComponent, QueryWriteRaiseQueryComponent, QueryWriteRespondToQueryComponent, RaiseQueryErrorMessage, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadCookieService, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicMultiSelectListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadQueryManagementFieldComponent, ReadRichTextAreaFieldComponent, ReadStaffUserFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RespondToQueryErrorMessages, RetryUtil, RouterHelperService, RouterLinkComponent, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionErrorPageComponent, SessionErrorRoute, SessionJsonErrorLogger, SessionStorageGuard, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, StructuredLoggerService, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, TranslatedMarkdownDirective, TranslatedMarkdownModule, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagAddTranslationErrorMessage, UpdateFlagAddTranslationFormComponent, UpdateFlagAddTranslationStep, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, UpdateFlagTitleDisplayPipe, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicMultiSelectListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteRichTextAreaFieldComponent, WriteStaffUserFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, caseMessagesMockData, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, parseStaffUserSearchConfiguration, safeJsonParse, textFieldType, viewerRouting };
46179
46456
  //# sourceMappingURL=hmcts-ccd-case-ui-toolkit.mjs.map