@hmcts/ccd-case-ui-toolkit 7.0.22-upload-timestamp → 7.0.23-pre-release-markdown

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +35 -7
  2. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +83 -38
  3. package/esm2020/lib/shared/components/case-editor/case-editor.module.mjs +6 -5
  4. package/esm2020/lib/shared/components/case-editor/services/page-validation.service.mjs +10 -5
  5. package/esm2020/lib/shared/components/case-history/case-history.component.mjs +13 -13
  6. package/esm2020/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +3 -3
  7. package/esm2020/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +1 -1
  8. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +12 -11
  9. package/esm2020/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.mjs +12 -12
  10. package/esm2020/lib/shared/components/palette/complex/read-complex-field.component.mjs +14 -12
  11. package/esm2020/lib/shared/components/palette/document/write-document-field.component.mjs +25 -16
  12. package/esm2020/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +2 -2
  13. package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +5 -5
  14. package/esm2020/lib/shared/components/palette/markdown/markdown.component.mjs +26 -3
  15. package/esm2020/lib/shared/components/palette/text/write-text-field.component.mjs +1 -1
  16. package/esm2020/lib/shared/components/palette/utils/first-error.pipe.mjs +4 -1
  17. package/esm2020/lib/shared/domain/document/document-data.model.mjs +1 -1
  18. package/esm2020/lib/shared/domain/http/http-error.model.mjs +7 -1
  19. package/esm2020/lib/shared/services/fields/fields.purger.mjs +4 -3
  20. package/esm2020/lib/shared/services/form/form-validators.service.mjs +27 -2
  21. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +324 -167
  22. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  23. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +313 -165
  24. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  25. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +2 -1
  26. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  27. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +8 -3
  28. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  29. package/lib/shared/components/case-editor/services/page-validation.service.d.ts +1 -1
  30. package/lib/shared/components/case-editor/services/page-validation.service.d.ts.map +1 -1
  31. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
  32. package/lib/shared/components/palette/complex/read-complex-field.component.d.ts.map +1 -1
  33. package/lib/shared/components/palette/document/write-document-field.component.d.ts +1 -0
  34. package/lib/shared/components/palette/document/write-document-field.component.d.ts.map +1 -1
  35. package/lib/shared/components/palette/markdown/markdown.component.d.ts +4 -1
  36. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  37. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  38. package/lib/shared/domain/document/document-data.model.d.ts +1 -1
  39. package/lib/shared/domain/document/document-data.model.d.ts.map +1 -1
  40. package/lib/shared/domain/http/http-error.model.d.ts +1 -0
  41. package/lib/shared/domain/http/http-error.model.d.ts.map +1 -1
  42. package/lib/shared/services/fields/fields.purger.d.ts.map +1 -1
  43. package/lib/shared/services/form/form-validators.service.d.ts +4 -0
  44. package/lib/shared/services/form/form-validators.service.d.ts.map +1 -1
  45. package/package.json +1 -1
@@ -27,6 +27,7 @@ import { MatDialogConfig } from '@angular/material/dialog';
27
27
  import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
28
28
  import * as i2 from '@nicky-lenaers/ngx-scroll-to';
29
29
  import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to';
30
+ import * as marked from 'marked';
30
31
  import * as i1$4 from 'ngx-md';
31
32
  import { NgxMdModule } from 'ngx-md';
32
33
  import * as i5 from '@angular/material/legacy-autocomplete';
@@ -127,11 +128,11 @@ function FooterComponent_div_3_Template(rf, ctx) { if (rf & 1) {
127
128
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(18, 13, ctx_r1.workhours));
128
129
  } }
129
130
  const _c0$13 = [[["", "footerSolsNavLinks", ""]], [["", "footerCaseWorkerNavLinks", ""]]];
130
- const _c1$t = ["[footerSolsNavLinks]", "[footerCaseWorkerNavLinks]"];
131
+ const _c1$u = ["[footerSolsNavLinks]", "[footerCaseWorkerNavLinks]"];
131
132
  class FooterComponent {
132
133
  }
133
134
  FooterComponent.ɵfac = function FooterComponent_Factory(t) { return new (t || FooterComponent)(); };
134
- FooterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FooterComponent, selectors: [["cut-footer-bar"]], inputs: { email: "email", isSolicitor: "isSolicitor", phone: "phone", workhours: "workhours" }, ngContentSelectors: _c1$t, decls: 4, vars: 4, consts: [["id", "footer", "role", "footer", 1, "group", "js-footer"], [1, "footer-wrapper"], ["class", "footer-meta", 4, "ngIf"], [1, "footer-meta"], [1, "footer-meta-inner"], [1, "open-government-licence"], [1, "logo"], ["href", "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/", "rel", "license"], [1, "copyright"], ["href", "https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/"], [1, "title"], [1, "footer-text"], [1, "email"], [3, "href"], [1, "phone"], [1, "work-hours"]], template: function FooterComponent_Template(rf, ctx) { if (rf & 1) {
135
+ FooterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FooterComponent, selectors: [["cut-footer-bar"]], inputs: { email: "email", isSolicitor: "isSolicitor", phone: "phone", workhours: "workhours" }, ngContentSelectors: _c1$u, decls: 4, vars: 4, consts: [["id", "footer", "role", "footer", 1, "group", "js-footer"], [1, "footer-wrapper"], ["class", "footer-meta", 4, "ngIf"], [1, "footer-meta"], [1, "footer-meta-inner"], [1, "open-government-licence"], [1, "logo"], ["href", "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/", "rel", "license"], [1, "copyright"], ["href", "https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/"], [1, "title"], [1, "footer-text"], [1, "email"], [3, "href"], [1, "phone"], [1, "work-hours"]], template: function FooterComponent_Template(rf, ctx) { if (rf & 1) {
135
136
  i0.ɵɵprojectionDef(_c0$13);
136
137
  i0.ɵɵelementStart(0, "footer", 0)(1, "div", 1);
137
138
  i0.ɵɵtemplate(2, FooterComponent_div_2_Template, 20, 15, "div", 2);
@@ -191,7 +192,7 @@ function HeaderBarComponent_div_10_Template(rf, ctx) { if (rf & 1) {
191
192
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, ctx_r2.title));
192
193
  } }
193
194
  const _c0$12 = [[["", "headerNavigation", ""]]];
194
- const _c1$s = ["[headerNavigation]"];
195
+ const _c1$t = ["[headerNavigation]"];
195
196
  class HeaderBarComponent {
196
197
  constructor() {
197
198
  this.signOutRequest = new EventEmitter();
@@ -201,7 +202,7 @@ class HeaderBarComponent {
201
202
  }
202
203
  }
203
204
  HeaderBarComponent.ɵfac = function HeaderBarComponent_Factory(t) { return new (t || HeaderBarComponent)(); };
204
- HeaderBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderBarComponent, selectors: [["cut-header-bar"]], inputs: { title: "title", isSolicitor: "isSolicitor", username: "username" }, outputs: { signOutRequest: "signOutRequest" }, ngContentSelectors: _c1$s, decls: 17, vars: 14, consts: [["role", "banner", "id", "global-header", 1, "with-proposition"], [1, "header-wrapper"], [1, "header-global"], [4, "ngIf"], ["class", "global-header", 4, "ngIf"], [1, "header-proposition"], [1, "content"], ["href", "#proposition-links", 1, "js-header-toggle", "menu"], ["id", "proposition-menu", 4, "ngIf"], [1, "proposition-right"], ["id", "user-name"], ["id", "sign-out", "href", "javascript:void(0)", 3, "click"], ["href", "https://www.gov.uk", "title", "Go to the GOV.UK homepage", "id", "logo", 1, "content", 2, "margin-left", "0px"], ["src", "/img/gov.uk_logotype_crown_invert_trans.png?0.23.0", "width", "36", "height", "32", "alt", ""], [1, "global-header"], [1, "title"], ["id", "proposition-menu"], [1, "title-solicitor"], ["id", "proposition-name"]], template: function HeaderBarComponent_Template(rf, ctx) { if (rf & 1) {
205
+ HeaderBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderBarComponent, selectors: [["cut-header-bar"]], inputs: { title: "title", isSolicitor: "isSolicitor", username: "username" }, outputs: { signOutRequest: "signOutRequest" }, ngContentSelectors: _c1$t, decls: 17, vars: 14, consts: [["role", "banner", "id", "global-header", 1, "with-proposition"], [1, "header-wrapper"], [1, "header-global"], [4, "ngIf"], ["class", "global-header", 4, "ngIf"], [1, "header-proposition"], [1, "content"], ["href", "#proposition-links", 1, "js-header-toggle", "menu"], ["id", "proposition-menu", 4, "ngIf"], [1, "proposition-right"], ["id", "user-name"], ["id", "sign-out", "href", "javascript:void(0)", 3, "click"], ["href", "https://www.gov.uk", "title", "Go to the GOV.UK homepage", "id", "logo", 1, "content", 2, "margin-left", "0px"], ["src", "/img/gov.uk_logotype_crown_invert_trans.png?0.23.0", "width", "36", "height", "32", "alt", ""], [1, "global-header"], [1, "title"], ["id", "proposition-menu"], [1, "title-solicitor"], ["id", "proposition-name"]], template: function HeaderBarComponent_Template(rf, ctx) { if (rf & 1) {
205
206
  i0.ɵɵprojectionDef(_c0$12);
206
207
  i0.ɵɵelementStart(0, "header", 0)(1, "div", 1)(2, "div", 2);
207
208
  i0.ɵɵtemplate(3, HeaderBarComponent_div_3_Template, 5, 3, "div", 3);
@@ -252,11 +253,11 @@ HeaderBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderBa
252
253
  }] }); })();
253
254
 
254
255
  const _c0$11 = [[["", "leftNavLinks", ""]], [["", "rightNavLinks", ""]]];
255
- const _c1$r = ["[leftNavLinks]", "[rightNavLinks]"];
256
+ const _c1$s = ["[leftNavLinks]", "[rightNavLinks]"];
256
257
  class NavigationComponent {
257
258
  }
258
259
  NavigationComponent.ɵfac = function NavigationComponent_Factory(t) { return new (t || NavigationComponent)(); };
259
- NavigationComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavigationComponent, selectors: [["cut-nav-bar"]], inputs: { isSolicitor: "isSolicitor" }, ngContentSelectors: _c1$r, decls: 4, vars: 2, consts: [[1, "cut-nav-bar"]], template: function NavigationComponent_Template(rf, ctx) { if (rf & 1) {
260
+ NavigationComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavigationComponent, selectors: [["cut-nav-bar"]], inputs: { isSolicitor: "isSolicitor" }, ngContentSelectors: _c1$s, decls: 4, vars: 2, consts: [[1, "cut-nav-bar"]], template: function NavigationComponent_Template(rf, ctx) { if (rf & 1) {
260
261
  i0.ɵɵprojectionDef(_c0$11);
261
262
  i0.ɵɵelementStart(0, "div")(1, "nav", 0);
262
263
  i0.ɵɵprojection(2);
@@ -367,11 +368,11 @@ HeadersModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModu
367
368
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(HeadersModule, { declarations: [PhaseComponent, HeaderBarComponent, NavigationComponent, NavigationItemComponent], imports: [CommonModule, RouterModule, i1.RpxTranslationModule], exports: [PhaseComponent, HeaderBarComponent, NavigationComponent, NavigationItemComponent] }); })();
368
369
 
369
370
  const _c0$10 = [[["", "topBody", ""]], [["", "leftBody", ""]], [["", "rightBody", ""]]];
370
- const _c1$q = ["[topBody]", "[leftBody]", "[rightBody]"];
371
+ const _c1$r = ["[topBody]", "[leftBody]", "[rightBody]"];
371
372
  class BodyComponent {
372
373
  }
373
374
  BodyComponent.ɵfac = function BodyComponent_Factory(t) { return new (t || BodyComponent)(); };
374
- BodyComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BodyComponent, selectors: [["cut-body"]], ngContentSelectors: _c1$q, decls: 4, vars: 0, consts: [[1, "global-display"]], template: function BodyComponent_Template(rf, ctx) { if (rf & 1) {
375
+ BodyComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BodyComponent, selectors: [["cut-body"]], ngContentSelectors: _c1$r, decls: 4, vars: 0, consts: [[1, "global-display"]], template: function BodyComponent_Template(rf, ctx) { if (rf & 1) {
375
376
  i0.ɵɵprojectionDef(_c0$10);
376
377
  i0.ɵɵelementStart(0, "div", 0);
377
378
  i0.ɵɵprojection(1);
@@ -981,11 +982,11 @@ NotificationBannerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
981
982
  }] }); })();
982
983
 
983
984
  const _c0$Z = function (a0) { return { "js-hidden": a0 }; };
984
- const _c1$p = ["*"];
985
+ const _c1$q = ["*"];
985
986
  class TabComponent {
986
987
  }
987
988
  TabComponent.ɵfac = function TabComponent_Factory(t) { return new (t || TabComponent)(); };
988
- TabComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabComponent, selectors: [["cut-tab"]], inputs: { id: "id", title: "title", selected: "selected" }, ngContentSelectors: _c1$p, decls: 2, vars: 5, consts: [["role", "tabpanel", 1, "tabs-panel", 3, "id", "ngClass"]], template: function TabComponent_Template(rf, ctx) { if (rf & 1) {
989
+ TabComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabComponent, selectors: [["cut-tab"]], inputs: { id: "id", title: "title", selected: "selected" }, ngContentSelectors: _c1$q, decls: 2, vars: 5, consts: [["role", "tabpanel", 1, "tabs-panel", 3, "id", "ngClass"]], template: function TabComponent_Template(rf, ctx) { if (rf & 1) {
989
990
  i0.ɵɵprojectionDef();
990
991
  i0.ɵɵelementStart(0, "div", 0);
991
992
  i0.ɵɵprojection(1);
@@ -1006,8 +1007,8 @@ TabComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabComponent,
1006
1007
  }] }); })();
1007
1008
 
1008
1009
  const _c0$Y = ["tab"];
1009
- const _c1$o = function () { return ["."]; };
1010
- const _c2$3 = function (a0) { return { "tabs-toggle-selected": a0 }; };
1010
+ const _c1$p = function () { return ["."]; };
1011
+ const _c2$4 = function (a0) { return { "tabs-toggle-selected": a0 }; };
1011
1012
  function TabsComponent_li_2_Template(rf, ctx) { if (rf & 1) {
1012
1013
  const _r4 = i0.ɵɵgetCurrentView();
1013
1014
  i0.ɵɵelementStart(0, "li", 4)(1, "a", 5, 6);
@@ -1018,7 +1019,7 @@ function TabsComponent_li_2_Template(rf, ctx) { if (rf & 1) {
1018
1019
  } if (rf & 2) {
1019
1020
  const panel_r1 = ctx.$implicit;
1020
1021
  i0.ɵɵadvance(1);
1021
- i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction0(8, _c1$o))("fragment", panel_r1.id)("ngClass", i0.ɵɵpureFunction1(9, _c2$3, panel_r1.selected));
1022
+ i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction0(8, _c1$p))("fragment", panel_r1.id)("ngClass", i0.ɵɵpureFunction1(9, _c2$4, panel_r1.selected));
1022
1023
  i0.ɵɵattribute("aria-controls", panel_r1.id)("aria-selected", panel_r1.selected);
1023
1024
  i0.ɵɵadvance(2);
1024
1025
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 6, panel_r1.title));
@@ -1241,6 +1242,11 @@ class HttpError {
1241
1242
  }
1242
1243
  static from(response) {
1243
1244
  const error = new HttpError();
1245
+ if (response?.status === 429) {
1246
+ error.error = HttpError.MESSAGE_ERROR_429;
1247
+ error.status = response.status;
1248
+ error.message = response.message;
1249
+ }
1244
1250
  // Check that the HttpErrorResponse contains an "error" object before mapping the error properties
1245
1251
  if (!!(response && response.error)) {
1246
1252
  Object.keys(error).forEach((key) => {
@@ -1260,6 +1266,7 @@ class HttpError {
1260
1266
  HttpError.DEFAULT_ERROR = 'Unknown error';
1261
1267
  HttpError.DEFAULT_MESSAGE = 'Something unexpected happened, our technical staff have been automatically notified';
1262
1268
  HttpError.DEFAULT_STATUS = 500;
1269
+ HttpError.MESSAGE_ERROR_429 = 'Your request was rate limited. Please wait a few seconds before retrying your document upload';
1263
1270
 
1264
1271
  /**
1265
1272
  * `Oauth2Service` and `AuthService` cannot be merged as it creates a cyclic dependency on `AuthService` through `HttpErrorService`.
@@ -2730,6 +2737,9 @@ class FirstErrorPipe {
2730
2737
  else if (keys[0] === 'pattern') {
2731
2738
  errorMessage = 'The data entered is not valid for %FIELDLABEL%';
2732
2739
  }
2740
+ else if (keys[0] === 'markDownPattern') {
2741
+ errorMessage = 'The data entered is not valid for %FIELDLABEL%. Link mark up characters are not allowed in this field';
2742
+ }
2733
2743
  else if (keys[0] === 'minlength') {
2734
2744
  errorMessage = '%FIELDLABEL% is below the minimum length';
2735
2745
  }
@@ -4547,6 +4557,7 @@ class FormValidatorsService {
4547
4557
  FormValidatorsService.CUSTOM_VALIDATED_TYPES.indexOf(caseField.field_type.type) === -1) {
4548
4558
  const validators = [Validators.required];
4549
4559
  if (caseField.field_type.type === 'Text') {
4560
+ validators.push(this.markDownPatternValidator());
4550
4561
  if (caseField.field_type.regular_expression) {
4551
4562
  validators.push(Validators.pattern(caseField.field_type.regular_expression));
4552
4563
  }
@@ -4560,22 +4571,36 @@ class FormValidatorsService {
4560
4571
  validators.push(Validators.maxLength(caseField.field_type.max));
4561
4572
  }
4562
4573
  }
4574
+ if (caseField.field_type.type === 'TextArea') {
4575
+ validators.push(this.emptyValidator());
4576
+ validators.push(this.markDownPatternValidator());
4577
+ }
4563
4578
  if (control.validator) {
4564
4579
  validators.push(control.validator);
4565
4580
  }
4566
4581
  control.setValidators(validators);
4567
4582
  }
4583
+ else if (caseField.display_context === 'OPTIONAL' && (caseField.field_type.type === 'Text' || caseField.field_type.type === 'TextArea')) {
4584
+ control.setValidators(this.markDownPatternValidator());
4585
+ }
4568
4586
  return control;
4569
4587
  }
4570
4588
  static emptyValidator() {
4571
4589
  const validator = (control) => {
4572
- if (control && control.value && control.value.toString().trim().length === 0) {
4590
+ if (control?.value?.toString().trim().length === 0) {
4573
4591
  return { required: {} };
4574
4592
  }
4575
4593
  return null;
4576
4594
  };
4577
4595
  return validator;
4578
4596
  }
4597
+ static markDownPatternValidator() {
4598
+ const pattern = /(\[[^\]]{0,500}\]\([^)]{0,500}\)|!\[[^\]]{0,500}\]\([^)]{0,500}\)|<img[^>]{0,500}>|<a[^>]{0,500}>.*?<\/a>)/;
4599
+ return (control) => {
4600
+ const value = control?.value?.toString().trim();
4601
+ return (value && pattern.test(value)) ? { markDownPattern: {} } : null;
4602
+ };
4603
+ }
4579
4604
  // TODO: Strip this out as it's only here for the moment because
4580
4605
  // the service is being injected all over the place but it doesn't
4581
4606
  // need to be as FormValidatorsService.addValidators is perfectly
@@ -4583,10 +4608,20 @@ class FormValidatorsService {
4583
4608
  addValidators(caseField, control) {
4584
4609
  return FormValidatorsService.addValidators(caseField, control);
4585
4610
  }
4611
+ addMarkDownValidators(formGroup, controlPath) {
4612
+ const control = formGroup.get(controlPath);
4613
+ if (control) {
4614
+ control.setValidators(FormValidatorsService.markDownPatternValidator());
4615
+ control.updateValueAndValidity();
4616
+ }
4617
+ return control;
4618
+ }
4586
4619
  }
4587
4620
  FormValidatorsService.CUSTOM_VALIDATED_TYPES = [
4588
4621
  'Date', 'MoneyGBP', 'Label', 'JudicialUser'
4589
4622
  ];
4623
+ FormValidatorsService.DEFAULT_INPUT_TEXT = 'text';
4624
+ FormValidatorsService.DEFAULT_INPUT_TEXTAREA = 'textAreas';
4590
4625
  FormValidatorsService.ɵfac = function FormValidatorsService_Factory(t) { return new (t || FormValidatorsService)(); };
4591
4626
  FormValidatorsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FormValidatorsService, factory: FormValidatorsService.ɵfac });
4592
4627
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormValidatorsService, [{
@@ -5026,8 +5061,9 @@ class FieldsPurger {
5026
5061
  }
5027
5062
  }
5028
5063
  else {
5029
- // Delete the field value
5030
- this.deleteFieldValue(form.get('data'), field);
5064
+ // Delete the field from formGroup
5065
+ const dataGroup = form.get('data');
5066
+ dataGroup.removeControl(field.id);
5031
5067
  }
5032
5068
  }
5033
5069
  resetPage(form, wizardPage) {
@@ -8385,16 +8421,21 @@ class PageValidationService {
8385
8421
  constructor(caseFieldService) {
8386
8422
  this.caseFieldService = caseFieldService;
8387
8423
  }
8388
- isPageValid(page, editForm) {
8389
- return page.case_fields
8424
+ getInvalidFields(page, editForm) {
8425
+ const failingCaseFields = [];
8426
+ page.case_fields
8390
8427
  .filter(caseField => !this.caseFieldService.isReadOnly(caseField))
8391
8428
  .filter(caseField => !this.isHidden(caseField, editForm))
8392
- .every(caseField => {
8429
+ .map(caseField => {
8393
8430
  const theControl = FieldsUtils.isCaseFieldOfType(caseField, ['JudicialUser'])
8394
8431
  ? editForm.controls['data'].get(`${caseField.id}_judicialUserControl`)
8395
8432
  : editForm.controls['data'].get(caseField.id);
8396
- return this.checkDocumentField(caseField, theControl) && this.checkOptionalField(caseField, theControl);
8433
+ if (!(this.checkDocumentField(caseField, theControl) && this.checkOptionalField(caseField, theControl))) {
8434
+ failingCaseFields.push(caseField);
8435
+ }
8436
+ ;
8397
8437
  });
8438
+ return failingCaseFields;
8398
8439
  }
8399
8440
  isHidden(caseField, editForm, path) {
8400
8441
  const formFields = editForm.getRawValue();
@@ -9719,7 +9760,8 @@ class CaseEditPageComponent {
9719
9760
  return this.caseEdit.first();
9720
9761
  }
9721
9762
  currentPageIsNotValid() {
9722
- return !this.pageValidationService.isPageValid(this.currentPage, this.editForm) ||
9763
+ this.failingCaseFields = this.pageValidationService.getInvalidFields(this.currentPage, this.editForm);
9764
+ return this.failingCaseFields.length > 0 ||
9723
9765
  (this.isLinkedCasesJourney() && !this.isLinkedCasesJourneyAtFinalStep);
9724
9766
  }
9725
9767
  isLinkedCasesJourney() {
@@ -9741,9 +9783,15 @@ class CaseEditPageComponent {
9741
9783
  // Adding validation message to show it as Error Summary
9742
9784
  generateErrorMessage(fields, container, path) {
9743
9785
  const group = container || this.editForm.controls['data'];
9744
- fields.filter(casefield => !this.caseFieldService.isReadOnly(casefield))
9745
- .filter(casefield => !this.pageValidationService.isHidden(casefield, this.editForm, path))
9786
+ let validErrorFieldFound = false;
9787
+ let validationErrorAmount = this.validationErrors.length;
9788
+ const failingFields = fields.filter(casefield => !this.caseFieldService.isReadOnly(casefield))
9789
+ .filter(casefield => !this.pageValidationService.isHidden(casefield, this.editForm, path));
9790
+ // note that thougn these checks are on getinvalidfields they are needed for sub field checks
9791
+ failingFields
9746
9792
  .forEach(casefield => {
9793
+ let errorPresent = true;
9794
+ validErrorFieldFound = true;
9747
9795
  const fieldElement = FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])
9748
9796
  ? group.get(`${casefield.id}_judicialUserControl`)
9749
9797
  : group.get(casefield.id);
@@ -9788,7 +9836,7 @@ class CaseEditPageComponent {
9788
9836
  }
9789
9837
  else if (fieldElement.invalid) {
9790
9838
  if (casefield.isComplex()) {
9791
- this.generateErrorMessage(casefield.field_type.complex_fields, fieldElement, id);
9839
+ errorPresent = this.generateErrorMessage(casefield.field_type.complex_fields, fieldElement, id);
9792
9840
  }
9793
9841
  else if (casefield.isCollection() && casefield.field_type.collection_field_type.type === 'Complex') {
9794
9842
  const fieldArray = fieldElement;
@@ -9796,7 +9844,7 @@ class CaseEditPageComponent {
9796
9844
  id = `${fieldArray['component']['collItems'][0].prefix}`;
9797
9845
  }
9798
9846
  fieldArray.controls.forEach((c) => {
9799
- this.generateErrorMessage(casefield.field_type.collection_field_type.complex_fields, c.get('value'), id);
9847
+ errorPresent = this.generateErrorMessage(casefield.field_type.collection_field_type.complex_fields, c.get('value'), id);
9800
9848
  });
9801
9849
  }
9802
9850
  else if (FieldsUtils.isCaseFieldOfType(casefield, ['FlagLauncher'])) {
@@ -9811,8 +9859,29 @@ class CaseEditPageComponent {
9811
9859
  }
9812
9860
  }
9813
9861
  }
9862
+ else {
9863
+ validErrorFieldFound = false;
9864
+ }
9865
+ if (!errorPresent && this.validationErrors.length === validationErrorAmount) {
9866
+ // if no error messages have been added in internal field despite parent field failing
9867
+ this.validationErrors.push({ id: casefield.id, message: `A field that is causing an error is ${casefield.id} but it is not producing a valid error message. Please ensure all details are correct` });
9868
+ }
9814
9869
  });
9870
+ if (!validErrorFieldFound) {
9871
+ path ? this.validationErrors.push({ id: path, message: `There is an internal issue with ${path} fields. The field that is causing the error cannot be determined but there is an error present` })
9872
+ : this.validationErrors.push({ id: null, message: `The field that is causing the error cannot be determined but there is an error present` });
9873
+ }
9874
+ else if (this.validationErrors.length === validationErrorAmount) {
9875
+ // if no error messages have been generated
9876
+ if (path) {
9877
+ return false;
9878
+ }
9879
+ else {
9880
+ this.validationErrors.push({ id: null, message: `The field that is causing the error cannot be determined but there is an error present. Please fill in more of the form` });
9881
+ }
9882
+ }
9815
9883
  CaseEditPageComponent.scrollToTop();
9884
+ return true;
9816
9885
  }
9817
9886
  navigateToErrorElement(elementId) {
9818
9887
  /* istanbul ignore else */
@@ -9837,7 +9906,7 @@ class CaseEditPageComponent {
9837
9906
  CaseEditPageComponent.scrollToTop();
9838
9907
  }
9839
9908
  else {
9840
- this.generateErrorMessage(this.currentPage.case_fields);
9909
+ this.generateErrorMessage(this.failingCaseFields);
9841
9910
  }
9842
9911
  }
9843
9912
  if (!this.caseEdit.isSubmitting && !this.currentPageIsNotValid()) {
@@ -10904,8 +10973,8 @@ function WriteAddressFieldComponent_div_1_div_4_span_5_Template(rf, ctx) { if (r
10904
10973
  i0.ɵɵadvance(1);
10905
10974
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r5.errorMessage));
10906
10975
  } }
10907
- const _c1$n = function (a0) { return { "form-group-error": a0 }; };
10908
- const _c2$2 = function (a0) { return { "govuk-input--error": a0 }; };
10976
+ const _c1$o = function (a0) { return { "form-group-error": a0 }; };
10977
+ const _c2$3 = function (a0) { return { "govuk-input--error": a0 }; };
10909
10978
  function WriteAddressFieldComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
10910
10979
  const _r7 = i0.ɵɵgetCurrentView();
10911
10980
  i0.ɵɵelementStart(0, "div", 8)(1, "label", 9)(2, "span", 10);
@@ -10921,7 +10990,7 @@ function WriteAddressFieldComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1)
10921
10990
  i0.ɵɵelementEnd()();
10922
10991
  } if (rf & 2) {
10923
10992
  const ctx_r2 = i0.ɵɵnextContext(2);
10924
- i0.ɵɵproperty("id", ctx_r2.createElementId("postcodeLookup"))("ngClass", i0.ɵɵpureFunction1(13, _c1$n, ctx_r2.missingPostcode));
10993
+ i0.ɵɵproperty("id", ctx_r2.createElementId("postcodeLookup"))("ngClass", i0.ɵɵpureFunction1(13, _c1$o, ctx_r2.missingPostcode));
10925
10994
  i0.ɵɵadvance(1);
10926
10995
  i0.ɵɵproperty("for", ctx_r2.createElementId("postcodeInput"));
10927
10996
  i0.ɵɵadvance(2);
@@ -10929,7 +10998,7 @@ function WriteAddressFieldComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1)
10929
10998
  i0.ɵɵadvance(2);
10930
10999
  i0.ɵɵproperty("ngIf", ctx_r2.missingPostcode);
10931
11000
  i0.ɵɵadvance(1);
10932
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c2$2, ctx_r2.missingPostcode))("id", ctx_r2.createElementId("postcodeInput"))("formControl", ctx_r2.postcode);
11001
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c2$3, ctx_r2.missingPostcode))("id", ctx_r2.createElementId("postcodeInput"))("formControl", ctx_r2.postcode);
10933
11002
  i0.ɵɵadvance(2);
10934
11003
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 11, "Find address"));
10935
11004
  } }
@@ -10967,7 +11036,7 @@ function WriteAddressFieldComponent_div_1_div_5_Template(rf, ctx) { if (rf & 1)
10967
11036
  i0.ɵɵelementEnd()();
10968
11037
  } if (rf & 2) {
10969
11038
  const ctx_r3 = i0.ɵɵnextContext(2);
10970
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c1$n, ctx_r3.noAddressSelected));
11039
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c1$o, ctx_r3.noAddressSelected));
10971
11040
  i0.ɵɵadvance(1);
10972
11041
  i0.ɵɵproperty("for", ctx_r3.createElementId("addressList"));
10973
11042
  i0.ɵɵadvance(2);
@@ -12384,7 +12453,7 @@ function WriteCaseLinkFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
12384
12453
  i0.ɵɵadvance(1);
12385
12454
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r2.caseReferenceControl.errors, ctx_r2.caseField.label), " ");
12386
12455
  } }
12387
- const _c1$m = function (a0) { return { "form-group-error": a0 }; };
12456
+ const _c1$n = function (a0) { return { "form-group-error": a0 }; };
12388
12457
  class WriteCaseLinkFieldComponent extends AbstractFieldWriteComponent {
12389
12458
  ngOnInit() {
12390
12459
  if (this.caseField.value) {
@@ -12445,7 +12514,7 @@ WriteCaseLinkFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
12445
12514
  i0.ɵɵelement(5, "input", 5);
12446
12515
  i0.ɵɵelementEnd();
12447
12516
  } if (rf & 2) {
12448
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c1$m, !ctx.caseReferenceControl.valid && (ctx.caseReferenceControl.dirty || ctx.caseReferenceControl.touched)));
12517
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c1$n, !ctx.caseReferenceControl.valid && (ctx.caseReferenceControl.dirty || ctx.caseReferenceControl.touched)));
12449
12518
  i0.ɵɵadvance(1);
12450
12519
  i0.ɵɵproperty("for", ctx.id());
12451
12520
  i0.ɵɵadvance(1);
@@ -12477,7 +12546,7 @@ function ReadCollectionFieldComponent_table_0_tbody_2_Template(rf, ctx) { if (rf
12477
12546
  i0.ɵɵadvance(4);
12478
12547
  i0.ɵɵproperty("caseField", i0.ɵɵpureFunction6(3, _c0$S, ctx_r1.caseField.label, ctx_r1.caseField.label, ctx_r1.caseField.field_type.collection_field_type, ctx_r1.caseField.display_context_parameter, ctx_r1.caseField.value, ctx_r1.caseField.hidden))("context", ctx_r1.context)("topLevelFormGroup", ctx_r1.topLevelFormGroup);
12479
12548
  } }
12480
- const _c1$l = function (a0, a1, a2, a3, a4) { return { id: a0, label: a1, field_type: a2, value: a3, hidden: a4 }; };
12549
+ const _c1$m = function (a0, a1, a2, a3, a4) { return { id: a0, label: a1, field_type: a2, value: a3, hidden: a4 }; };
12481
12550
  function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { if (rf & 1) {
12482
12551
  i0.ɵɵelementStart(0, "tr")(1, "td");
12483
12552
  i0.ɵɵelement(2, "ccd-field-read", 7);
@@ -12487,7 +12556,7 @@ function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { i
12487
12556
  const i_r5 = ctx.index;
12488
12557
  const ctx_r3 = i0.ɵɵnextContext(3);
12489
12558
  i0.ɵɵadvance(2);
12490
- i0.ɵɵproperty("caseField", i0.ɵɵpureFunction5(4, _c1$l, i_r5, ctx_r3.caseField.label + " " + (i_r5 + 1), ctx_r3.caseField.field_type.collection_field_type, item_r4.value, ctx_r3.caseField.hidden))("context", ctx_r3.context)("topLevelFormGroup", ctx_r3.topLevelFormGroup)("idPrefix", ctx_r3.buildIdPrefix(i_r5));
12559
+ i0.ɵɵproperty("caseField", i0.ɵɵpureFunction5(4, _c1$m, i_r5, ctx_r3.caseField.label + " " + (i_r5 + 1), ctx_r3.caseField.field_type.collection_field_type, item_r4.value, ctx_r3.caseField.hidden))("context", ctx_r3.context)("topLevelFormGroup", ctx_r3.topLevelFormGroup)("idPrefix", ctx_r3.buildIdPrefix(i_r5));
12491
12560
  } }
12492
12561
  function ReadCollectionFieldComponent_table_0_tbody_3_Template(rf, ctx) { if (rf & 1) {
12493
12562
  i0.ɵɵelementStart(0, "tbody");
@@ -13056,17 +13125,19 @@ class ReadComplexFieldComponent extends AbstractFieldReadComponent {
13056
13125
  this.context = PaletteContext.DEFAULT;
13057
13126
  }
13058
13127
  }
13059
- this.caseField?.field_type?.complex_fields?.forEach((field) => {
13060
- if (field?.isDynamic()) {
13061
- field.list_items = this.caseField.value[field.id]?.list_items;
13062
- field.value = {
13063
- list_items: field.list_items,
13064
- value: this.caseField.value[field.id]?.value && this.caseField.value[field.id].value.code ?
13065
- this.caseField.value[field.id].value.code :
13066
- this.caseField.value[field.id]?.value
13067
- };
13068
- }
13069
- });
13128
+ if (this.caseField?.field_type && this.caseField.field_type.complex_fields) {
13129
+ this.caseField?.field_type?.complex_fields?.forEach((field) => {
13130
+ if (field?.isDynamic()) {
13131
+ field.list_items = this.caseField.value[field.id]?.list_items;
13132
+ field.value = {
13133
+ list_items: field.list_items,
13134
+ value: this.caseField.value[field.id]?.value && this.caseField.value[field.id].value.code ?
13135
+ this.caseField.value[field.id].value.code :
13136
+ this.caseField.value[field.id]?.value
13137
+ };
13138
+ }
13139
+ });
13140
+ }
13070
13141
  }
13071
13142
  }
13072
13143
  ReadComplexFieldComponent.ɵfac = /*@__PURE__*/ function () { let ɵReadComplexFieldComponent_BaseFactory; return function ReadComplexFieldComponent_Factory(t) { return (ɵReadComplexFieldComponent_BaseFactory || (ɵReadComplexFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadComplexFieldComponent)))(t || ReadComplexFieldComponent); }; }();
@@ -13308,7 +13379,7 @@ function WriteDocumentFieldComponent_ccd_read_document_field_9_Template(rf, ctx)
13308
13379
  const ctx_r2 = i0.ɵɵnextContext();
13309
13380
  i0.ɵɵproperty("caseField", ctx_r2.caseField);
13310
13381
  } }
13311
- const _c1$k = function (a0) { return { "form-group-error bottom-30": a0 }; };
13382
+ const _c1$l = function (a0) { return { "form-group-error bottom-30": a0 }; };
13312
13383
  class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
13313
13384
  constructor(appConfig, caseNotifier, documentManagement, dialog, fileUploadStateService, jurisdictionService) {
13314
13385
  super();
@@ -13529,23 +13600,31 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
13529
13600
  this.uploadedDocument = this.registerControl(new FormGroup(documentFormGroup), true);
13530
13601
  }
13531
13602
  getErrorMessage(error) {
13532
- // Document Management unavailable
13533
- if (0 === error.status || 502 === error.status) {
13534
- return WriteDocumentFieldComponent.UPLOAD_ERROR_NOT_AVAILABLE;
13535
- }
13536
- let errorMsg = 'Error uploading file';
13537
- if (error?.error) {
13538
- const fullError = error.error;
13539
- const start = fullError.indexOf('{');
13540
- if (start >= 0) {
13541
- const json = fullError.substring(start, fullError.length - 1).split('<EOL>').join('');
13542
- const obj = JSON.parse(json);
13543
- if (obj?.error) {
13544
- errorMsg = obj.error;
13603
+ switch (error.status) {
13604
+ case 0:
13605
+ case 502:
13606
+ return WriteDocumentFieldComponent.UPLOAD_ERROR_NOT_AVAILABLE;
13607
+ case 422:
13608
+ {
13609
+ let errorMsg = WriteDocumentFieldComponent.ERROR_UPLOADING_FILE;
13610
+ if (error?.error) {
13611
+ const fullError = error.error;
13612
+ const start = fullError.indexOf('{');
13613
+ if (start >= 0) {
13614
+ const json = fullError.substring(start, fullError.length - 1).split('<EOL>').join('');
13615
+ const obj = JSON.parse(json);
13616
+ if (obj?.error) {
13617
+ errorMsg = obj.error;
13618
+ }
13619
+ }
13620
+ }
13621
+ return errorMsg;
13545
13622
  }
13546
- }
13623
+ case 429:
13624
+ return error?.error;
13625
+ default:
13626
+ return WriteDocumentFieldComponent.ERROR_UPLOADING_FILE;
13547
13627
  }
13548
- return errorMsg;
13549
13628
  }
13550
13629
  buildDocumentUploadData(selectedFile) {
13551
13630
  const documentUpload = new FormData();
@@ -13601,6 +13680,7 @@ WriteDocumentFieldComponent.UPLOAD_TIMESTAMP = 'upload_timestamp';
13601
13680
  WriteDocumentFieldComponent.UPLOAD_ERROR_FILE_REQUIRED = 'File required';
13602
13681
  WriteDocumentFieldComponent.UPLOAD_ERROR_NOT_AVAILABLE = 'Document upload facility is not available at the moment';
13603
13682
  WriteDocumentFieldComponent.UPLOAD_WAITING_FILE_STATUS = 'Uploading...';
13683
+ WriteDocumentFieldComponent.ERROR_UPLOADING_FILE = 'Error Uploading File';
13604
13684
  WriteDocumentFieldComponent.ɵfac = function WriteDocumentFieldComponent_Factory(t) { return new (t || WriteDocumentFieldComponent)(i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(FileUploadStateService), i0.ɵɵdirectiveInject(JurisdictionService)); };
13605
13685
  WriteDocumentFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDocumentFieldComponent, selectors: [["ccd-write-document-field"]], viewQuery: function WriteDocumentFieldComponent_Query(rf, ctx) { if (rf & 1) {
13606
13686
  i0.ɵɵviewQuery(_c0$Q, 5);
@@ -13630,7 +13710,7 @@ WriteDocumentFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
13630
13710
  i0.ɵɵpipe(17, "rpxTranslate");
13631
13711
  i0.ɵɵelementEnd()();
13632
13712
  } if (rf & 2) {
13633
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(18, _c1$k, !ctx.valid));
13713
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(18, _c1$l, !ctx.valid));
13634
13714
  i0.ɵɵadvance(1);
13635
13715
  i0.ɵɵproperty("for", ctx.id());
13636
13716
  i0.ɵɵadvance(1);
@@ -13663,7 +13743,7 @@ WriteDocumentFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
13663
13743
 
13664
13744
  class DynamicListPipe {
13665
13745
  transform(value, items) {
13666
- const item = items.find(i => i.code === value);
13746
+ const item = items?.find(i => i.code === value);
13667
13747
  return item ? item.label : DynamicListPipe.EMPTY;
13668
13748
  }
13669
13749
  }
@@ -13824,9 +13904,14 @@ WriteDynamicListFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ ty
13824
13904
  }], null, null); })();
13825
13905
 
13826
13906
  class MarkdownComponent {
13827
- constructor() { }
13907
+ constructor() {
13908
+ this.renderUrlToTextFeature = true;
13909
+ }
13828
13910
  ngOnInit() {
13829
13911
  this.content = this.content.replace(/ \n/g, '<br>');
13912
+ if (this.renderUrlToTextFeature) {
13913
+ this.renderUrlToText();
13914
+ }
13830
13915
  }
13831
13916
  onMarkdownClick(event) {
13832
13917
  // If we don't have an anchor tag, we don't need to do anything.
@@ -13835,11 +13920,26 @@ class MarkdownComponent {
13835
13920
  }
13836
13921
  return true;
13837
13922
  }
13923
+ renderUrlToText() {
13924
+ const renderer = new marked.Renderer();
13925
+ renderer.link = (href, title, text) => {
13926
+ // Return the text without turning it into a link if it's not an internal link
13927
+ return this.isAllowedUrl(href) ? `<a href="${href}">${text}</a>` : text;
13928
+ };
13929
+ marked.setOptions({
13930
+ renderer: renderer
13931
+ });
13932
+ }
13933
+ isAllowedUrl(url) {
13934
+ const currentOrigin = window.location.origin;
13935
+ const urlOrigin = new URL(url, window.location.href).origin;
13936
+ return urlOrigin === currentOrigin || url.startsWith('/'); // Check if same origin or relative
13937
+ }
13838
13938
  }
13839
13939
  MarkdownComponent.ɵfac = function MarkdownComponent_Factory(t) { return new (t || MarkdownComponent)(); };
13840
13940
  MarkdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MarkdownComponent, selectors: [["ccd-markdown"]], hostBindings: function MarkdownComponent_HostBindings(rf, ctx) { if (rf & 1) {
13841
13941
  i0.ɵɵlistener("click", function MarkdownComponent_click_HostBindingHandler($event) { return ctx.onMarkdownClick($event); });
13842
- } }, inputs: { content: "content", markdownUseHrefAsRouterLink: "markdownUseHrefAsRouterLink" }, decls: 4, vars: 5, consts: [[1, "markdown", 3, "data"]], template: function MarkdownComponent_Template(rf, ctx) { if (rf & 1) {
13942
+ } }, inputs: { content: "content", markdownUseHrefAsRouterLink: "markdownUseHrefAsRouterLink", renderUrlToTextFeature: "renderUrlToTextFeature" }, decls: 4, vars: 5, consts: [[1, "markdown", 3, "data"]], template: function MarkdownComponent_Template(rf, ctx) { if (rf & 1) {
13843
13943
  i0.ɵɵelementStart(0, "div");
13844
13944
  i0.ɵɵelement(1, "markdown", 0);
13845
13945
  i0.ɵɵpipe(2, "rpxTranslate");
@@ -13856,6 +13956,8 @@ MarkdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MarkdownC
13856
13956
  type: Input
13857
13957
  }], markdownUseHrefAsRouterLink: [{
13858
13958
  type: Input
13959
+ }], renderUrlToTextFeature: [{
13960
+ type: Input
13859
13961
  }], onMarkdownClick: [{
13860
13962
  type: HostListener,
13861
13963
  args: ['click', ['$event']]
@@ -13968,7 +14070,7 @@ function WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template(rf, c
13968
14070
  i0.ɵɵadvance(1);
13969
14071
  i0.ɵɵpropertyInterpolate("for", ctx_r3.createElementId(checkbox_r4.code));
13970
14072
  i0.ɵɵadvance(1);
13971
- i0.ɵɵproperty("content", checkbox_r4.label);
14073
+ i0.ɵɵproperty("content", checkbox_r4.label)("renderUrlToTextFeature", false);
13972
14074
  } }
13973
14075
  const _c0$O = function (a0) { return { "error": a0 }; };
13974
14076
  class WriteDynamicMultiSelectListFieldComponent extends AbstractFieldWriteComponent {
@@ -14032,13 +14134,13 @@ class WriteDynamicMultiSelectListFieldComponent extends AbstractFieldWriteCompon
14032
14134
  }
14033
14135
  }
14034
14136
  WriteDynamicMultiSelectListFieldComponent.ɵfac = /*@__PURE__*/ function () { let ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory; return function WriteDynamicMultiSelectListFieldComponent_Factory(t) { return (ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory || (ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(WriteDynamicMultiSelectListFieldComponent)))(t || WriteDynamicMultiSelectListFieldComponent); }; }();
14035
- WriteDynamicMultiSelectListFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDynamicMultiSelectListFieldComponent, selectors: [["ccd-write-dynamic-multi-select-list-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 8, consts: [[1, "form-group", "bottom-30", 3, "ngClass", "id"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "form-label"], [1, "form-hint"], [1, "error-message"], [1, "multiple-choice"], ["type", "checkbox", 1, "form-control", 3, "id", "name", "value", "checked", "change"], [1, "form-label", 3, "for"], [3, "content"]], template: function WriteDynamicMultiSelectListFieldComponent_Template(rf, ctx) { if (rf & 1) {
14137
+ WriteDynamicMultiSelectListFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDynamicMultiSelectListFieldComponent, selectors: [["ccd-write-dynamic-multi-select-list-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 8, consts: [[1, "form-group", "bottom-30", 3, "ngClass", "id"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "form-label"], [1, "form-hint"], [1, "error-message"], [1, "multiple-choice"], ["type", "checkbox", 1, "form-control", 3, "id", "name", "value", "checked", "change"], [1, "form-label", 3, "for"], [3, "content", "renderUrlToTextFeature"]], template: function WriteDynamicMultiSelectListFieldComponent_Template(rf, ctx) { if (rf & 1) {
14036
14138
  i0.ɵɵelementStart(0, "div", 0)(1, "fieldset")(2, "legend");
14037
14139
  i0.ɵɵtemplate(3, WriteDynamicMultiSelectListFieldComponent_span_3_Template, 3, 3, "span", 1);
14038
14140
  i0.ɵɵtemplate(4, WriteDynamicMultiSelectListFieldComponent_span_4_Template, 2, 1, "span", 2);
14039
14141
  i0.ɵɵtemplate(5, WriteDynamicMultiSelectListFieldComponent_span_5_Template, 3, 3, "span", 3);
14040
14142
  i0.ɵɵelementEnd();
14041
- i0.ɵɵtemplate(6, WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template, 5, 6, "ng-container", 4);
14143
+ i0.ɵɵtemplate(6, WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template, 5, 7, "ng-container", 4);
14042
14144
  i0.ɵɵelementEnd()();
14043
14145
  } if (rf & 2) {
14044
14146
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0$O, !ctx.checkboxes.valid && ctx.checkboxes.touched))("id", ctx.id());
@@ -14053,7 +14155,7 @@ WriteDynamicMultiSelectListFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineCom
14053
14155
  } }, dependencies: [i4.NgClass, i4.NgForOf, i4.NgIf, MarkdownComponent, FieldLabelPipe, FirstErrorPipe], styles: ["ccd-markdown[_ngcontent-%COMP%]{display:inline-block}"] });
14054
14156
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteDynamicMultiSelectListFieldComponent, [{
14055
14157
  type: Component,
14056
- args: [{ selector: 'ccd-write-dynamic-multi-select-list-field', template: "<div class=\"form-group bottom-30\" [ngClass]=\"{'error': !checkboxes.valid && checkboxes.touched}\" [id]=\"id()\">\n\n <fieldset>\n\n <legend>\n <span *ngIf=\"caseField.label\" class=\"form-label\">{{caseField | ccdFieldLabel}}</span>\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">{{caseField.hint_text}}</span>\n <span *ngIf=\"checkboxes.errors && checkboxes.touched\" class=\"error-message\">{{checkboxes.errors |\n ccdFirstError}}</span>\n </legend>\n\n <ng-container *ngFor=\"let checkbox of caseField.list_items\">\n\n <div class=\"multiple-choice\">\n <input class=\"form-control\" id=\"{{ createElementId(checkbox.code) }}\" name=\"{{ id() }}\" type=\"checkbox\"\n [value]=\"checkbox.code\" [checked]=\"isSelected(checkbox.code)\" (change)=\"onCheckChange($event)\">\n <label class=\"form-label\" for=\"{{ createElementId(checkbox.code) }}\">\n <ccd-markdown [content]=\"checkbox.label\"></ccd-markdown>\n </label>\n </div>\n\n </ng-container>\n\n </fieldset>\n\n</div>\n", styles: ["ccd-markdown{display:inline-block}\n"] }]
14158
+ args: [{ selector: 'ccd-write-dynamic-multi-select-list-field', template: "<div class=\"form-group bottom-30\" [ngClass]=\"{'error': !checkboxes.valid && checkboxes.touched}\" [id]=\"id()\">\n\n <fieldset>\n\n <legend>\n <span *ngIf=\"caseField.label\" class=\"form-label\">{{caseField | ccdFieldLabel}}</span>\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">{{caseField.hint_text}}</span>\n <span *ngIf=\"checkboxes.errors && checkboxes.touched\" class=\"error-message\">{{checkboxes.errors |\n ccdFirstError}}</span>\n </legend>\n\n <ng-container *ngFor=\"let checkbox of caseField.list_items\">\n\n <div class=\"multiple-choice\">\n <input class=\"form-control\" id=\"{{ createElementId(checkbox.code) }}\" name=\"{{ id() }}\" type=\"checkbox\"\n [value]=\"checkbox.code\" [checked]=\"isSelected(checkbox.code)\" (change)=\"onCheckChange($event)\">\n <label class=\"form-label\" for=\"{{ createElementId(checkbox.code) }}\">\n <ccd-markdown [content]=\"checkbox.label\" [renderUrlToTextFeature]=\"false\"></ccd-markdown>\n </label>\n </div>\n\n </ng-container>\n\n </fieldset>\n\n</div>\n", styles: ["ccd-markdown{display:inline-block}\n"] }]
14057
14159
  }], null, null); })();
14058
14160
 
14059
14161
  class DynamicRadioListPipe {
@@ -14174,7 +14276,7 @@ function WriteDynamicRadioListFieldComponent_div_9_Template(rf, ctx) { if (rf &
14174
14276
  i0.ɵɵadvance(1);
14175
14277
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 7, radioButton_r5.label));
14176
14278
  } }
14177
- const _c1$j = function (a0) { return { "form-group-error": a0 }; };
14279
+ const _c1$k = function (a0) { return { "form-group-error": a0 }; };
14178
14280
  class WriteDynamicRadioListFieldComponent extends AbstractFieldWriteComponent {
14179
14281
  ngOnInit() {
14180
14282
  /**
@@ -14212,7 +14314,7 @@ WriteDynamicRadioListFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent
14212
14314
  i0.ɵɵelementContainerEnd();
14213
14315
  i0.ɵɵelementEnd()();
14214
14316
  } if (rf & 2) {
14215
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c1$j, !ctx.dynamicRadioListControl.valid && ctx.dynamicRadioListControl.dirty))("id", ctx.id());
14317
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c1$k, !ctx.dynamicRadioListControl.valid && ctx.dynamicRadioListControl.dirty))("id", ctx.id());
14216
14318
  i0.ɵɵadvance(3);
14217
14319
  i0.ɵɵproperty("for", ctx.id());
14218
14320
  i0.ɵɵadvance(1);
@@ -14293,7 +14395,7 @@ function WriteEmailFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
14293
14395
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.emailControl.errors, ctx_r2.caseField.label));
14294
14396
  } }
14295
14397
  const _c0$M = function (a0) { return { "form-group-error": a0 }; };
14296
- const _c1$i = function (a0) { return { "govuk-input--error": a0 }; };
14398
+ const _c1$j = function (a0) { return { "govuk-input--error": a0 }; };
14297
14399
  class WriteEmailFieldComponent extends AbstractFieldWriteComponent {
14298
14400
  ngOnInit() {
14299
14401
  this.emailControl = this.registerControl(new FormControl(this.caseField.value));
@@ -14319,7 +14421,7 @@ WriteEmailFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Wr
14319
14421
  i0.ɵɵadvance(1);
14320
14422
  i0.ɵɵproperty("ngIf", ctx.emailControl.errors && (ctx.emailControl.dirty || ctx.emailControl.touched));
14321
14423
  i0.ɵɵadvance(1);
14322
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$i, ctx.emailControl.errors && (ctx.emailControl.dirty || ctx.emailControl.touched)))("id", ctx.id())("formControl", ctx.emailControl);
14424
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$j, ctx.emailControl.errors && (ctx.emailControl.dirty || ctx.emailControl.touched)))("id", ctx.id())("formControl", ctx.emailControl);
14323
14425
  } }, dependencies: [i4.NgClass, i4.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlDirective, FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe], encapsulation: 2 });
14324
14426
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteEmailFieldComponent, [{
14325
14427
  type: Component,
@@ -14530,7 +14632,7 @@ function WriteFixedRadioListFieldComponent_div_8_Template(rf, ctx) { if (rf & 1)
14530
14632
  i0.ɵɵadvance(1);
14531
14633
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 7, radioButton_r4.label));
14532
14634
  } }
14533
- const _c1$h = function (a0) { return { "form-group-error": a0 }; };
14635
+ const _c1$i = function (a0) { return { "form-group-error": a0 }; };
14534
14636
  class WriteFixedRadioListFieldComponent extends AbstractFieldWriteComponent {
14535
14637
  ngOnInit() {
14536
14638
  const notEmpty = this.caseField.value !== null && this.caseField.value !== undefined;
@@ -14550,7 +14652,7 @@ WriteFixedRadioListFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({
14550
14652
  i0.ɵɵelementContainerEnd();
14551
14653
  i0.ɵɵelementEnd()();
14552
14654
  } if (rf & 2) {
14553
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c1$h, !ctx.fixedRadioListControl.valid && (ctx.fixedRadioListControl.dirty || ctx.fixedRadioListControl.touched)))("id", ctx.id());
14655
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c1$i, !ctx.fixedRadioListControl.valid && (ctx.fixedRadioListControl.dirty || ctx.fixedRadioListControl.touched)))("id", ctx.id());
14554
14656
  i0.ɵɵadvance(3);
14555
14657
  i0.ɵɵproperty("for", ctx.id());
14556
14658
  i0.ɵɵadvance(1);
@@ -14672,7 +14774,7 @@ function WriteJudicialUserFieldComponent_mat_option_11_Template(rf, ctx) { if (r
14672
14774
  i0.ɵɵtext(1, " Invalid search term ");
14673
14775
  i0.ɵɵelementEnd();
14674
14776
  } }
14675
- const _c1$g = function (a0) { return { "form-group-error": a0 }; };
14777
+ const _c1$h = function (a0) { return { "form-group-error": a0 }; };
14676
14778
  class WriteJudicialUserFieldComponent extends WriteComplexFieldComponent {
14677
14779
  constructor(jurisdictionService, sessionStorageService, caseFlagRefDataService, compoundPipe, validatorsService) {
14678
14780
  super(compoundPipe, validatorsService);
@@ -14819,7 +14921,7 @@ WriteJudicialUserFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ t
14819
14921
  i0.ɵɵelementEnd()();
14820
14922
  } if (rf & 2) {
14821
14923
  const _r3 = i0.ɵɵreference(7);
14822
- i0.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0.ɵɵpureFunction1(15, _c1$g, !!ctx.judicialUserControl && ctx.errors));
14924
+ i0.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0.ɵɵpureFunction1(15, _c1$h, !!ctx.judicialUserControl && ctx.errors));
14823
14925
  i0.ɵɵadvance(1);
14824
14926
  i0.ɵɵproperty("for", ctx.id());
14825
14927
  i0.ɵɵadvance(1);
@@ -15509,7 +15611,7 @@ function LinkCasesComponent_tr_31_span_15_Template(rf, ctx) { if (rf & 1) {
15509
15611
  i0.ɵɵadvance(1);
15510
15612
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, reason_r19));
15511
15613
  } }
15512
- const _c1$f = function (a0) { return { "table-group-error": a0 }; };
15614
+ const _c1$g = function (a0) { return { "table-group-error": a0 }; };
15513
15615
  function LinkCasesComponent_tr_31_Template(rf, ctx) { if (rf & 1) {
15514
15616
  const _r21 = i0.ɵɵgetCurrentView();
15515
15617
  i0.ɵɵelementStart(0, "tr", 10)(1, "td", 38);
@@ -15540,7 +15642,7 @@ function LinkCasesComponent_tr_31_Template(rf, ctx) { if (rf & 1) {
15540
15642
  const case_r16 = ctx.$implicit;
15541
15643
  const ctx_r2 = i0.ɵɵnextContext();
15542
15644
  i0.ɵɵadvance(2);
15543
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(12, _c1$f, ctx_r2.caseSelectionError && case_r16.caseReference === ctx_r2.linkCaseForm.value.caseNumber));
15645
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(12, _c1$g, ctx_r2.caseSelectionError && case_r16.caseReference === ctx_r2.linkCaseForm.value.caseNumber));
15544
15646
  i0.ɵɵadvance(2);
15545
15647
  i0.ɵɵtextInterpolate1("", case_r16.caseName, " ");
15546
15648
  i0.ɵɵadvance(2);
@@ -17440,7 +17542,7 @@ function WriteNumberFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
17440
17542
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r2.numberControl.errors, ctx_r2.caseField.label), " ");
17441
17543
  } }
17442
17544
  const _c0$E = function (a0) { return { "form-group-error": a0 }; };
17443
- const _c1$e = function (a0) { return { "govuk-input--error": a0 }; };
17545
+ const _c1$f = function (a0) { return { "govuk-input--error": a0 }; };
17444
17546
  class WriteNumberFieldComponent extends AbstractFieldWriteComponent {
17445
17547
  ngOnInit() {
17446
17548
  this.numberControl = this.registerControl(new FormControl(this.caseField.value));
@@ -17466,7 +17568,7 @@ WriteNumberFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: W
17466
17568
  i0.ɵɵadvance(1);
17467
17569
  i0.ɵɵproperty("ngIf", ctx.numberControl.errors && ctx.numberControl.dirty);
17468
17570
  i0.ɵɵadvance(1);
17469
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$e, ctx.numberControl.errors && ctx.numberControl.dirty))("id", ctx.id())("formControl", ctx.numberControl);
17571
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$f, ctx.numberControl.errors && ctx.numberControl.dirty))("id", ctx.id())("formControl", ctx.numberControl);
17470
17572
  } }, dependencies: [i4.NgClass, i4.NgIf, i3.DefaultValueAccessor, i3.NumberValueAccessor, i3.NgControlStatus, i3.FormControlDirective, FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe], encapsulation: 2 });
17471
17573
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteNumberFieldComponent, [{
17472
17574
  type: Component,
@@ -18107,7 +18209,7 @@ function WritePhoneUKFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
18107
18209
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r2.phoneUkControl.errors, ctx_r2.caseField.label), " ");
18108
18210
  } }
18109
18211
  const _c0$C = function (a0) { return { "form-group-error": a0 }; };
18110
- const _c1$d = function (a0) { return { "govuk-input--error": a0 }; };
18212
+ const _c1$e = function (a0) { return { "govuk-input--error": a0 }; };
18111
18213
  class WritePhoneUKFieldComponent extends AbstractFieldWriteComponent {
18112
18214
  ngOnInit() {
18113
18215
  this.phoneUkControl = this.registerControl(new FormControl(this.caseField.value));
@@ -18133,7 +18235,7 @@ WritePhoneUKFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
18133
18235
  i0.ɵɵadvance(1);
18134
18236
  i0.ɵɵproperty("ngIf", ctx.phoneUkControl.errors && (ctx.phoneUkControl.dirty || ctx.phoneUkControl.touched));
18135
18237
  i0.ɵɵadvance(1);
18136
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$d, ctx.phoneUkControl.errors && ctx.phoneUkControl.dirty))("id", ctx.id())("formControl", ctx.phoneUkControl);
18238
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$e, ctx.phoneUkControl.errors && ctx.phoneUkControl.dirty))("id", ctx.id())("formControl", ctx.phoneUkControl);
18137
18239
  } }, dependencies: [i4.NgClass, i4.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlDirective, FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe], encapsulation: 2 });
18138
18240
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WritePhoneUKFieldComponent, [{
18139
18241
  type: Component,
@@ -20149,7 +20251,7 @@ function WriteTextAreaFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
20149
20251
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r2.textareaControl.errors, ctx_r2.caseField.label), " ");
20150
20252
  } }
20151
20253
  const _c0$z = function (a0) { return { "form-group-error": a0 }; };
20152
- const _c1$c = function (a0) { return { "govuk-textarea--error": a0 }; };
20254
+ const _c1$d = function (a0) { return { "govuk-textarea--error": a0 }; };
20153
20255
  class WriteTextAreaFieldComponent extends AbstractFieldWriteComponent {
20154
20256
  constructor(browserService) {
20155
20257
  super();
@@ -20187,7 +20289,7 @@ WriteTextAreaFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
20187
20289
  i0.ɵɵadvance(1);
20188
20290
  i0.ɵɵproperty("ngIf", ctx.textareaControl.errors && (ctx.textareaControl.dirty || ctx.textareaControl.touched));
20189
20291
  i0.ɵɵadvance(1);
20190
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$c, ctx.textareaControl.errors && (ctx.textareaControl.dirty || ctx.textareaControl.touched)))("id", ctx.id())("formControl", ctx.textareaControl);
20292
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$d, ctx.textareaControl.errors && (ctx.textareaControl.dirty || ctx.textareaControl.touched)))("id", ctx.id())("formControl", ctx.textareaControl);
20191
20293
  } }, dependencies: [i4.NgClass, i4.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlDirective, FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe], encapsulation: 2 });
20192
20294
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteTextAreaFieldComponent, [{
20193
20295
  type: Component,
@@ -20245,7 +20347,7 @@ function WriteTextFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
20245
20347
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r2.textControl.errors, ctx_r2.caseField.label), " ");
20246
20348
  } }
20247
20349
  const _c0$y = function (a0) { return { "form-group-error": a0 }; };
20248
- const _c1$b = function (a0) { return { "govuk-input--error": a0 }; };
20350
+ const _c1$c = function (a0) { return { "govuk-input--error": a0 }; };
20249
20351
  class WriteTextFieldComponent extends AbstractFieldWriteComponent {
20250
20352
  ngOnInit() {
20251
20353
  this.textControl = this.registerControl(new FormControl(this.caseField.value));
@@ -20275,7 +20377,7 @@ WriteTextFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Wri
20275
20377
  i0.ɵɵadvance(1);
20276
20378
  i0.ɵɵproperty("ngIf", (ctx.textControl == null ? null : ctx.textControl.errors) && (ctx.textControl.dirty || ctx.textControl.touched));
20277
20379
  i0.ɵɵadvance(1);
20278
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$b, (ctx.textControl == null ? null : ctx.textControl.errors) && (ctx.textControl.dirty || ctx.textControl.touched)))("id", ctx.id())("formControl", ctx.textControl);
20380
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$c, (ctx.textControl == null ? null : ctx.textControl.errors) && (ctx.textControl.dirty || ctx.textControl.touched)))("id", ctx.id())("formControl", ctx.textControl);
20279
20381
  } }, dependencies: [i4.NgClass, i4.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlDirective, FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe], encapsulation: 2 });
20280
20382
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteTextFieldComponent, [{
20281
20383
  type: Component,
@@ -20448,7 +20550,7 @@ function WriteYesNoFieldComponent_div_7_Template(rf, ctx) { if (rf & 1) {
20448
20550
  i0.ɵɵadvance(1);
20449
20551
  i0.ɵɵtextInterpolate(ctx_r3.caseField.label ? i0.ɵɵpipeBind3(4, 8, ctx_r3.caseField.label, null, value_r4) : value_r4);
20450
20552
  } }
20451
- const _c1$a = function (a0) { return { "form-group-error": a0 }; };
20553
+ const _c1$b = function (a0) { return { "form-group-error": a0 }; };
20452
20554
  class WriteYesNoFieldComponent extends AbstractFieldWriteComponent {
20453
20555
  constructor(yesNoService) {
20454
20556
  super();
@@ -20470,7 +20572,7 @@ WriteYesNoFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Wr
20470
20572
  i0.ɵɵtemplate(7, WriteYesNoFieldComponent_div_7_Template, 5, 14, "div", 6);
20471
20573
  i0.ɵɵelementEnd()()();
20472
20574
  } if (rf & 2) {
20473
- i0.ɵɵproperty("id", ctx.id())("ngClass", i0.ɵɵpureFunction1(7, _c1$a, !ctx.yesNoControl.valid && (ctx.yesNoControl.dirty || ctx.yesNoControl.touched)));
20575
+ i0.ɵɵproperty("id", ctx.id())("ngClass", i0.ɵɵpureFunction1(7, _c1$b, !ctx.yesNoControl.valid && (ctx.yesNoControl.dirty || ctx.yesNoControl.touched)));
20474
20576
  i0.ɵɵadvance(3);
20475
20577
  i0.ɵɵproperty("ngIf", ctx.caseField.label);
20476
20578
  i0.ɵɵadvance(1);
@@ -20827,7 +20929,7 @@ function CaseFileViewFolderSelectorComponent_ng_container_6_Template(rf, ctx) {
20827
20929
  function CaseFileViewFolderSelectorComponent_ng_template_12_ng_container_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
20828
20930
  i0.ɵɵelementContainer(0);
20829
20931
  } }
20830
- const _c1$9 = function (a0, a1) { return { cat: a0, level: a1 }; };
20932
+ const _c1$a = function (a0, a1) { return { cat: a0, level: a1 }; };
20831
20933
  function CaseFileViewFolderSelectorComponent_ng_template_12_ng_container_5_Template(rf, ctx) { if (rf & 1) {
20832
20934
  i0.ɵɵelementContainerStart(0);
20833
20935
  i0.ɵɵtemplate(1, CaseFileViewFolderSelectorComponent_ng_template_12_ng_container_5_ng_container_1_Template, 1, 0, "ng-container", 8);
@@ -20838,7 +20940,7 @@ function CaseFileViewFolderSelectorComponent_ng_template_12_ng_container_5_Templ
20838
20940
  i0.ɵɵnextContext();
20839
20941
  const _r1 = i0.ɵɵreference(13);
20840
20942
  i0.ɵɵadvance(1);
20841
- i0.ɵɵproperty("ngTemplateOutlet", _r1)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1$9, subcat_r8, level_r6 + 1));
20943
+ i0.ɵɵproperty("ngTemplateOutlet", _r1)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1$a, subcat_r8, level_r6 + 1));
20842
20944
  } }
20843
20945
  function CaseFileViewFolderSelectorComponent_ng_template_12_Template(rf, ctx) { if (rf & 1) {
20844
20946
  const _r12 = i0.ɵɵgetCurrentView();
@@ -21006,7 +21108,7 @@ function CaseFileViewOverlayMenuComponent_ng_template_4_Template(rf, ctx) { if (
21006
21108
  i0.ɵɵproperty("ngForOf", ctx_r1.menuItems);
21007
21109
  } }
21008
21110
  const _c0$s = [[["", "trigger", ""]]];
21009
- const _c1$8 = ["[trigger]"];
21111
+ const _c1$9 = ["[trigger]"];
21010
21112
  class CaseFileViewOverlayMenuComponent {
21011
21113
  constructor() {
21012
21114
  this.title = '';
@@ -21020,7 +21122,7 @@ class CaseFileViewOverlayMenuComponent {
21020
21122
  }
21021
21123
  }
21022
21124
  CaseFileViewOverlayMenuComponent.ɵfac = function CaseFileViewOverlayMenuComponent_Factory(t) { return new (t || CaseFileViewOverlayMenuComponent)(); };
21023
- CaseFileViewOverlayMenuComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewOverlayMenuComponent, selectors: [["ccd-case-file-view-overlay-menu"]], inputs: { title: "title", menuItems: "menuItems", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, ngContentSelectors: _c1$8, decls: 5, vars: 4, consts: [["type", "button", "cdkOverlayOrigin", "", 1, "overlay-toggle", 3, "click"], ["trigger", "cdkOverlayOrigin"], ["cdkConnectedOverlay", "", 3, "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayBackdropClass", "backdropClick"], [1, "overlay-menu"], [4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "overlay-menu__title"], [1, "overlay-menu__item", 3, "click"], ["class", "overlay-menu__itemIcon", 3, "src", "alt", 4, "ngIf"], [1, "overlay-menu__actionText"], [1, "overlay-menu__itemIcon", 3, "src", "alt"]], template: function CaseFileViewOverlayMenuComponent_Template(rf, ctx) { if (rf & 1) {
21125
+ CaseFileViewOverlayMenuComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewOverlayMenuComponent, selectors: [["ccd-case-file-view-overlay-menu"]], inputs: { title: "title", menuItems: "menuItems", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, ngContentSelectors: _c1$9, decls: 5, vars: 4, consts: [["type", "button", "cdkOverlayOrigin", "", 1, "overlay-toggle", 3, "click"], ["trigger", "cdkOverlayOrigin"], ["cdkConnectedOverlay", "", 3, "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayBackdropClass", "backdropClick"], [1, "overlay-menu"], [4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "overlay-menu__title"], [1, "overlay-menu__item", 3, "click"], ["class", "overlay-menu__itemIcon", 3, "src", "alt", 4, "ngIf"], [1, "overlay-menu__actionText"], [1, "overlay-menu__itemIcon", 3, "src", "alt"]], template: function CaseFileViewOverlayMenuComponent_Template(rf, ctx) { if (rf & 1) {
21024
21126
  i0.ɵɵprojectionDef(_c0$s);
21025
21127
  i0.ɵɵelementStart(0, "div")(1, "button", 0, 1);
21026
21128
  i0.ɵɵlistener("click", function CaseFileViewOverlayMenuComponent_Template_button_click_1_listener($event) { $event.stopPropagation(); return ctx.isOpen = !ctx.isOpen; });
@@ -21288,9 +21390,10 @@ function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template(rf, c
21288
21390
  i0.ɵɵelement(6, "br");
21289
21391
  i0.ɵɵelementStart(7, "span", 17);
21290
21392
  i0.ɵɵtext(8);
21393
+ i0.ɵɵpipe(9, "date");
21291
21394
  i0.ɵɵelementEnd()();
21292
- i0.ɵɵelementStart(9, "div", 18)(10, "ccd-case-file-view-folder-document-actions", 19);
21293
- i0.ɵɵlistener("changeFolderAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_changeFolderAction_10_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const node_r4 = restoredCtx.$implicit; const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.triggerDocumentAction("changeFolder", node_r4)); })("openInANewTabAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_openInANewTabAction_10_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const node_r4 = restoredCtx.$implicit; const ctx_r8 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r8.triggerDocumentAction("openInANewTab", node_r4)); })("downloadAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_downloadAction_10_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const node_r4 = restoredCtx.$implicit; const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.triggerDocumentAction("download", node_r4)); })("printAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_printAction_10_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const node_r4 = restoredCtx.$implicit; const ctx_r10 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r10.triggerDocumentAction("print", node_r4)); });
21395
+ i0.ɵɵelementStart(10, "div", 18)(11, "ccd-case-file-view-folder-document-actions", 19);
21396
+ i0.ɵɵlistener("changeFolderAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_changeFolderAction_11_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const node_r4 = restoredCtx.$implicit; const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.triggerDocumentAction("changeFolder", node_r4)); })("openInANewTabAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_openInANewTabAction_11_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const node_r4 = restoredCtx.$implicit; const ctx_r8 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r8.triggerDocumentAction("openInANewTab", node_r4)); })("downloadAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_downloadAction_11_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const node_r4 = restoredCtx.$implicit; const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.triggerDocumentAction("download", node_r4)); })("printAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_printAction_11_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const node_r4 = restoredCtx.$implicit; const ctx_r10 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r10.triggerDocumentAction("print", node_r4)); });
21294
21397
  i0.ɵɵelementEnd()()()();
21295
21398
  } if (rf & 2) {
21296
21399
  const node_r4 = ctx.$implicit;
@@ -21300,8 +21403,8 @@ function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template(rf, c
21300
21403
  i0.ɵɵadvance(4);
21301
21404
  i0.ɵɵtextInterpolate1(" ", node_r4.name, " ");
21302
21405
  i0.ɵɵadvance(3);
21303
- i0.ɵɵtextInterpolate(node_r4.upload_timestamp);
21304
- i0.ɵɵadvance(2);
21406
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(9, 5, node_r4.upload_timestamp, "dd MMM YYYY"));
21407
+ i0.ɵɵadvance(3);
21305
21408
  i0.ɵɵproperty("allowMoving", ctx_r2.allowMoving);
21306
21409
  } }
21307
21410
  function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_5_Template(rf, ctx) { if (rf & 1) {
@@ -21334,7 +21437,7 @@ function CaseFileViewFolderComponent_div_8_Template(rf, ctx) { if (rf & 1) {
21334
21437
  i0.ɵɵelementStart(0, "div", 7);
21335
21438
  i0.ɵɵtemplate(1, CaseFileViewFolderComponent_div_8_div_1_Template, 2, 0, "div", 8);
21336
21439
  i0.ɵɵelementStart(2, "div")(3, "cdk-tree", 9);
21337
- i0.ɵɵtemplate(4, CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template, 11, 5, "cdk-nested-tree-node", 10);
21440
+ i0.ɵɵtemplate(4, CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template, 12, 8, "cdk-nested-tree-node", 10);
21338
21441
  i0.ɵɵtemplate(5, CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_5_Template, 10, 6, "cdk-nested-tree-node", 11);
21339
21442
  i0.ɵɵelementEnd()()();
21340
21443
  } if (rf & 2) {
@@ -21421,7 +21524,7 @@ class CaseFileViewFolderComponent {
21421
21524
  documentTreeNode.document_binary_url = document.document_binary_url;
21422
21525
  documentTreeNode.attribute_path = document.attribute_path;
21423
21526
  documentTreeNode.upload_timestamp = this.appConfig.getEnableCaseFileViewVersion1_1()
21424
- && document.upload_timestamp ? moment$1(document.upload_timestamp).format('DD MMM YYYY') : '';
21527
+ && document.upload_timestamp ? moment$1(document.upload_timestamp).format('DD MMM YYYY HH:mm:ss') : '';
21425
21528
  documentsToReturn.push(documentTreeNode);
21426
21529
  });
21427
21530
  return documentsToReturn;
@@ -21436,7 +21539,7 @@ class CaseFileViewFolderComponent {
21436
21539
  documentTreeNode.document_binary_url = document.document_binary_url;
21437
21540
  documentTreeNode.attribute_path = document.attribute_path;
21438
21541
  documentTreeNode.upload_timestamp = this.appConfig.getEnableCaseFileViewVersion1_1()
21439
- && document.upload_timestamp ? moment$1(document.upload_timestamp).format('DD MMM YYYY') : '';
21542
+ && document.upload_timestamp ? moment$1(document.upload_timestamp).format('DD MMM YYYY HH:mm:ss') : '';
21440
21543
  documents.push(documentTreeNode);
21441
21544
  });
21442
21545
  const uncategorisedNode = new DocumentTreeNode();
@@ -21556,7 +21659,7 @@ CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE = 'Uncategorised docum
21556
21659
  CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME = 'documentSearchFormControl';
21557
21660
  CaseFileViewFolderComponent.MINIMUM_SEARCH_CHARACTERS = 1;
21558
21661
  CaseFileViewFolderComponent.ɵfac = function CaseFileViewFolderComponent_Factory(t) { return new (t || CaseFileViewFolderComponent)(i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(AbstractAppConfig)); };
21559
- CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments", allowMoving: "allowMoving" }, outputs: { clickedDocument: "clickedDocument", moveDocument: "moveDocument" }, decls: 9, vars: 3, consts: [[1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", 1, "form-control", "document-search"], [1, "document-folders-header"], [1, "document-folders-header__title"], [3, "sortAscending", "sortDescending"], ["class", "document-tree-container", 4, "ngIf"], [1, "document-tree-container"], [4, "ngIf"], [3, "dataSource", "treeControl"], ["class", "document-tree-container__node document-tree-container__node--document", 4, "cdkTreeNodeDef"], ["class", "document-tree-container__node document-tree-container__folder", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-container__node", "document-tree-container__node--document"], [1, "node", 3, "click"], ["disabled", "", 1, "node__icon"], ["src", "/assets/img/case-file-view/case-file-view-document.svg", "alt", "Document icon", 1, "node__iconImg"], [1, "node__name", "node-name-document"], [1, "node__document-upload-timestamp"], [1, "node__document-options"], [3, "allowMoving", "changeFolderAction", "openInANewTabAction", "downloadAction", "printAction"], [1, "document-tree-container__node", "document-tree-container__folder"], ["cdkTreeNodeToggle", "", 1, "node"], [1, "node__icon"], ["alt", "Folder icon", 1, "node__iconImg", 3, "src"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
21662
+ CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments", allowMoving: "allowMoving" }, outputs: { clickedDocument: "clickedDocument", moveDocument: "moveDocument" }, decls: 9, vars: 3, consts: [[1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", "aria-label", "Search by document name", 1, "form-control", "document-search"], [1, "document-folders-header"], [1, "document-folders-header__title"], [3, "sortAscending", "sortDescending"], ["class", "document-tree-container", 4, "ngIf"], [1, "document-tree-container"], [4, "ngIf"], [3, "dataSource", "treeControl"], ["class", "document-tree-container__node document-tree-container__node--document", 4, "cdkTreeNodeDef"], ["class", "document-tree-container__node document-tree-container__folder", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-container__node", "document-tree-container__node--document"], [1, "node", 3, "click"], ["disabled", "", 1, "node__icon"], ["src", "/assets/img/case-file-view/case-file-view-document.svg", "alt", "Document icon", 1, "node__iconImg"], [1, "node__name", "node-name-document"], [1, "node__document-upload-timestamp"], [1, "node__document-options"], [3, "allowMoving", "changeFolderAction", "openInANewTabAction", "downloadAction", "printAction"], [1, "document-tree-container__node", "document-tree-container__folder"], ["cdkTreeNodeToggle", "", 1, "node"], [1, "node__icon"], ["alt", "Folder icon", 1, "node__iconImg", 3, "src"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
21560
21663
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
21561
21664
  i0.ɵɵelement(2, "input", 2);
21562
21665
  i0.ɵɵelementEnd()();
@@ -21574,10 +21677,10 @@ CaseFileViewFolderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
21574
21677
  i0.ɵɵtextInterpolate1("Documents (", ctx.documentCount, ")");
21575
21678
  i0.ɵɵadvance(3);
21576
21679
  i0.ɵɵproperty("ngIf", ctx.documentTreeData);
21577
- } }, dependencies: [i4.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.FormGroupDirective, i3.FormControlName, i7.CdkNestedTreeNode, i7.CdkTreeNodeDef, i7.CdkTreeNodeToggle, i7.CdkTree, i7.CdkTreeNodeOutlet, CaseFileViewFolderSortComponent, CaseFileViewFolderDocumentActionsComponent], styles: ["[_nghost-%COMP%]{display:flex;height:100%;flex-direction:column}[_nghost-%COMP%] .document-tree-container[_ngcontent-%COMP%]{flex:1 0}.document-filter-container[_ngcontent-%COMP%]{border-bottom:2px solid #C9C9C9}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%]{padding:10px}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%] .document-search[_ngcontent-%COMP%]{background:url(/assets/images/icon-search-black.svg) no-repeat right #FFF;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container[_ngcontent-%COMP%] .documents-title[_ngcontent-%COMP%]{height:30%;margin-left:8px;font-weight:700}.document-tree-container[_ngcontent-%COMP%]{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node[_ngcontent-%COMP%]{display:block}.document-tree-container__node[_ngcontent-%COMP%] .document-tree-container__node[_ngcontent-%COMP%]{padding-left:40px}.document-tree-container[_ngcontent-%COMP%] .document-tree-invisible[_ngcontent-%COMP%]{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:7px}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-button{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-track-piece{background:#EEE}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#CCC}.document-folders-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title[_ngcontent-%COMP%]{font-weight:700}.node[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected[_ngcontent-%COMP%]{background:#fff2cc}.node__icon[_ngcontent-%COMP%]{position:relative;display:inline-block}.node__count[_ngcontent-%COMP%]{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg[_ngcontent-%COMP%]{display:block;height:30px;width:30px}.node__name[_ngcontent-%COMP%]{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options[_ngcontent-%COMP%]{margin-left:auto;margin-right:0}.node__document-upload-timestamp[_ngcontent-%COMP%]{font-size:.8rem;float:left;padding-left:10px}"] });
21680
+ } }, dependencies: [i4.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.FormGroupDirective, i3.FormControlName, i7.CdkNestedTreeNode, i7.CdkTreeNodeDef, i7.CdkTreeNodeToggle, i7.CdkTree, i7.CdkTreeNodeOutlet, CaseFileViewFolderSortComponent, CaseFileViewFolderDocumentActionsComponent, i4.DatePipe], styles: ["[_nghost-%COMP%]{display:flex;height:100%;flex-direction:column}[_nghost-%COMP%] .document-tree-container[_ngcontent-%COMP%]{flex:1 0}.document-filter-container[_ngcontent-%COMP%]{border-bottom:2px solid #C9C9C9}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%]{padding:10px}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%] .document-search[_ngcontent-%COMP%]{background:url(/assets/images/icon-search-black.svg) no-repeat right #FFF;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container[_ngcontent-%COMP%] .documents-title[_ngcontent-%COMP%]{height:30%;margin-left:8px;font-weight:700}.document-tree-container[_ngcontent-%COMP%]{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node[_ngcontent-%COMP%]{display:block}.document-tree-container__node[_ngcontent-%COMP%] .document-tree-container__node[_ngcontent-%COMP%]{padding-left:40px}.document-tree-container[_ngcontent-%COMP%] .document-tree-invisible[_ngcontent-%COMP%]{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:7px}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-button{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-track-piece{background:#EEE}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#CCC}.document-folders-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title[_ngcontent-%COMP%]{font-weight:700}.node[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected[_ngcontent-%COMP%]{background:#fff2cc}.node__icon[_ngcontent-%COMP%]{position:relative;display:inline-block}.node__count[_ngcontent-%COMP%]{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg[_ngcontent-%COMP%]{display:block;height:30px;width:30px}.node__name[_ngcontent-%COMP%]{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options[_ngcontent-%COMP%]{margin-left:auto;margin-right:0}.node__document-upload-timestamp[_ngcontent-%COMP%]{font-size:.8rem;float:left;padding-left:10px}"] });
21578
21681
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFolderComponent, [{
21579
21682
  type: Component,
21580
- args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <div class=\"document-folders-header__title\">Documents ({{ documentCount }})</div>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp}}</span>\n </span>\n <div class=\"node__document-options\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </button>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #FFF;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#EEE}.document-tree-container::-webkit-scrollbar-thumb{background:#CCC}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}\n"] }]
21683
+ args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\"\n aria-label=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <div class=\"document-folders-header__title\">Documents ({{ documentCount }})</div>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp | date:\"dd MMM YYYY\"}}</span>\n </span>\n <div class=\"node__document-options\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </button>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #FFF;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#EEE}.document-tree-container::-webkit-scrollbar-thumb{background:#CCC}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}\n"] }]
21581
21684
  }], function () { return [{ type: WindowService }, { type: i1$1.Router }, { type: DocumentManagementService }, { type: i1$3.MatLegacyDialog }, { type: AbstractAppConfig }]; }, { categoriesAndDocuments: [{
21582
21685
  type: Input
21583
21686
  }], allowMoving: [{
@@ -23087,7 +23190,7 @@ function SelectFlagTypeComponent_ng_container_0_div_11_div_8_Template(rf, ctx) {
23087
23190
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 3, "This flag should only be visible to HMCTS Staff"), " ");
23088
23191
  } }
23089
23192
  const _c0$n = function (a0) { return { "form-group-error": a0 }; };
23090
- const _c1$7 = function (a0) { return { "govuk-input--error": a0 }; };
23193
+ const _c1$8 = function (a0) { return { "govuk-input--error": a0 }; };
23091
23194
  function SelectFlagTypeComponent_ng_container_0_div_11_Template(rf, ctx) { if (rf & 1) {
23092
23195
  i0.ɵɵelementStart(0, "div", 18)(1, "div", 3)(2, "label", 19);
23093
23196
  i0.ɵɵtext(3);
@@ -23107,7 +23210,7 @@ function SelectFlagTypeComponent_ng_container_0_div_11_Template(rf, ctx) { if (r
23107
23210
  i0.ɵɵadvance(3);
23108
23211
  i0.ɵɵproperty("ngIf", ctx_r7.flagTypeErrorMessage.length > 0);
23109
23212
  i0.ɵɵadvance(1);
23110
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(13, _c1$7, ctx_r7.flagTypeErrorMessage.length > 0))("name", ctx_r7.caseFlagFormField.OTHER_FLAG_DESCRIPTION)("formControlName", ctx_r7.caseFlagFormField.OTHER_FLAG_DESCRIPTION);
23213
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(13, _c1$8, ctx_r7.flagTypeErrorMessage.length > 0))("name", ctx_r7.caseFlagFormField.OTHER_FLAG_DESCRIPTION)("formControlName", ctx_r7.caseFlagFormField.OTHER_FLAG_DESCRIPTION);
23111
23214
  i0.ɵɵadvance(1);
23112
23215
  i0.ɵɵproperty("ngIf", !ctx_r7.isDisplayContextParameterExternal && !ctx_r7.isCaseLevelFlag && ctx_r7.isDisplayContextParameter2Point1Enabled);
23113
23216
  } }
@@ -23607,7 +23710,7 @@ function UpdateFlagComponent_div_22_Template(rf, ctx) { if (rf & 1) {
23607
23710
  i0.ɵɵadvance(3);
23608
23711
  i0.ɵɵproperty("ngIf", ctx_r9.selectedFlag.flagDetailDisplay.flagDetail.status === "Active");
23609
23712
  } }
23610
- const _c1$6 = function (a0) { return { "form-group-error": a0 }; };
23713
+ const _c1$7 = function (a0) { return { "form-group-error": a0 }; };
23611
23714
  class UpdateFlagComponent {
23612
23715
  constructor(rpxTranslationService) {
23613
23716
  this.rpxTranslationService = rpxTranslationService;
@@ -23809,7 +23912,7 @@ UpdateFlagComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UpdateF
23809
23912
  const _r3 = i0.ɵɵreference(17);
23810
23913
  i0.ɵɵproperty("formGroup", ctx.formGroup);
23811
23914
  i0.ɵɵadvance(2);
23812
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(23, _c1$6, ctx.errorMessages.length > 0));
23915
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(23, _c1$7, ctx.errorMessages.length > 0));
23813
23916
  i0.ɵɵadvance(3);
23814
23917
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 13, ctx.updateFlagTitle), " ");
23815
23918
  i0.ɵɵadvance(2);
@@ -25079,7 +25182,7 @@ const CUSTOM_MOMENT_FORMATS = {
25079
25182
  };
25080
25183
 
25081
25184
  const _c0$g = ["picker"];
25082
- const _c1$5 = ["input"];
25185
+ const _c1$6 = ["input"];
25083
25186
  function DatetimePickerComponent_span_3_Template(rf, ctx) { if (rf & 1) {
25084
25187
  i0.ɵɵelementStart(0, "span", 11);
25085
25188
  i0.ɵɵtext(1);
@@ -25128,7 +25231,7 @@ function DatetimePickerComponent_span_7_Template(rf, ctx) { if (rf & 1) {
25128
25231
  i0.ɵɵadvance(1);
25129
25232
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "This date is later than the maximum date allowed"));
25130
25233
  } }
25131
- const _c2$1 = function (a0) { return { "form-group-error": a0 }; };
25234
+ const _c2$2 = function (a0) { return { "form-group-error": a0 }; };
25132
25235
  class DatetimePickerComponent extends AbstractFormFieldComponent {
25133
25236
  constructor(formatTranslationService, ngxMatDateFormats) {
25134
25237
  super();
@@ -25293,7 +25396,7 @@ class DatetimePickerComponent extends AbstractFormFieldComponent {
25293
25396
  DatetimePickerComponent.ɵfac = function DatetimePickerComponent_Factory(t) { return new (t || DatetimePickerComponent)(i0.ɵɵdirectiveInject(FormatTranslatorService), i0.ɵɵdirectiveInject(NGX_MAT_DATE_FORMATS)); };
25294
25397
  DatetimePickerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DatetimePickerComponent, selectors: [["ccd-datetime-picker"]], viewQuery: function DatetimePickerComponent_Query(rf, ctx) { if (rf & 1) {
25295
25398
  i0.ɵɵviewQuery(_c0$g, 5);
25296
- i0.ɵɵviewQuery(_c1$5, 5);
25399
+ i0.ɵɵviewQuery(_c1$6, 5);
25297
25400
  } if (rf & 2) {
25298
25401
  let _t;
25299
25402
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.datetimePicker = _t.first);
@@ -25325,7 +25428,7 @@ DatetimePickerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Dat
25325
25428
  i0.ɵɵelementEnd()()()()()();
25326
25429
  } if (rf & 2) {
25327
25430
  const _r6 = i0.ɵɵreference(13);
25328
- i0.ɵɵproperty("id", ctx.caseField.id)("ngClass", i0.ɵɵpureFunction1(24, _c2$1, ctx.dateControl && !ctx.dateControl.valid && ctx.dateControl.dirty));
25431
+ i0.ɵɵproperty("id", ctx.caseField.id)("ngClass", i0.ɵɵpureFunction1(24, _c2$2, ctx.dateControl && !ctx.dateControl.valid && ctx.dateControl.dirty));
25329
25432
  i0.ɵɵadvance(3);
25330
25433
  i0.ɵɵproperty("ngIf", ctx.caseField.label);
25331
25434
  i0.ɵɵadvance(1);
@@ -25549,7 +25652,7 @@ function EventLogTableComponent_tr_20_div_6_Template(rf, ctx) { if (rf & 1) {
25549
25652
  i0.ɵɵadvance(3);
25550
25653
  i0.ɵɵtextInterpolate(ctx_r5.getSignificantItemDesc(event_r1));
25551
25654
  } }
25552
- const _c1$4 = function (a0) { return { "EventLogTable-Selected": a0 }; };
25655
+ const _c1$5 = function (a0) { return { "EventLogTable-Selected": a0 }; };
25553
25656
  function EventLogTableComponent_tr_20_Template(rf, ctx) { if (rf & 1) {
25554
25657
  const _r18 = i0.ɵɵgetCurrentView();
25555
25658
  i0.ɵɵelementStart(0, "tr", 4);
@@ -25580,7 +25683,7 @@ function EventLogTableComponent_tr_20_Template(rf, ctx) { if (rf & 1) {
25580
25683
  } if (rf & 2) {
25581
25684
  const event_r1 = ctx.$implicit;
25582
25685
  const ctx_r0 = i0.ɵɵnextContext();
25583
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(25, _c1$4, ctx_r0.selected === event_r1));
25686
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(25, _c1$5, ctx_r0.selected === event_r1));
25584
25687
  i0.ɵɵattribute("aria-label", ctx_r0.getAriaLabelforRow(event_r1));
25585
25688
  i0.ɵɵadvance(2);
25586
25689
  i0.ɵɵproperty("ngSwitch", ctx_r0.isPartOfCaseTimeline);
@@ -27468,6 +27571,30 @@ function CaseEditSubmitComponent_div_0_ng_container_13_Template(rf, ctx) { if (r
27468
27571
  i0.ɵɵadvance(3);
27469
27572
  i0.ɵɵproperty("ngForOf", ctx_r8.showSummaryFields);
27470
27573
  } }
27574
+ function CaseEditSubmitComponent_div_0_ng_container_14_span_8_Template(rf, ctx) { if (rf & 1) {
27575
+ i0.ɵɵelementStart(0, "span", 48);
27576
+ i0.ɵɵtext(1);
27577
+ i0.ɵɵpipe(2, "rpxTranslate");
27578
+ i0.ɵɵpipe(3, "ccdFirstError");
27579
+ i0.ɵɵelementEnd();
27580
+ } if (rf & 2) {
27581
+ const ctx_r36 = i0.ɵɵnextContext(3);
27582
+ i0.ɵɵadvance(1);
27583
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBind2(3, 3, ctx_r36.summary.errors, ctx_r36.eventSummaryLabel)), " ");
27584
+ } }
27585
+ function CaseEditSubmitComponent_div_0_ng_container_14_span_13_Template(rf, ctx) { if (rf & 1) {
27586
+ i0.ɵɵelementStart(0, "span", 48);
27587
+ i0.ɵɵtext(1);
27588
+ i0.ɵɵpipe(2, "rpxTranslate");
27589
+ i0.ɵɵpipe(3, "ccdFirstError");
27590
+ i0.ɵɵelementEnd();
27591
+ } if (rf & 2) {
27592
+ const ctx_r37 = i0.ɵɵnextContext(3);
27593
+ i0.ɵɵadvance(1);
27594
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBind2(3, 3, ctx_r37.description.errors, ctx_r37.eventDescriptionLabel)), " ");
27595
+ } }
27596
+ const _c1$4 = function (a0) { return { "form-group-error": a0 }; };
27597
+ const _c2$1 = function (a0) { return { "govuk-input--error": a0 }; };
27471
27598
  function CaseEditSubmitComponent_div_0_ng_container_14_Template(rf, ctx) { if (rf & 1) {
27472
27599
  i0.ɵɵelementContainerStart(0);
27473
27600
  i0.ɵɵelementStart(1, "fieldset", 39);
@@ -27477,19 +27604,35 @@ function CaseEditSubmitComponent_div_0_ng_container_14_Template(rf, ctx) { if (r
27477
27604
  i0.ɵɵelementStart(6, "span", 43);
27478
27605
  i0.ɵɵtext(7, "A few words describing the purpose of the event.");
27479
27606
  i0.ɵɵelementEnd()();
27480
- i0.ɵɵelement(8, "input", 44);
27607
+ i0.ɵɵtemplate(8, CaseEditSubmitComponent_div_0_ng_container_14_span_8_Template, 4, 6, "span", 44);
27608
+ i0.ɵɵelement(9, "input", 45);
27481
27609
  i0.ɵɵelementEnd();
27482
- i0.ɵɵelementStart(9, "div", 41)(10, "label", 45);
27483
- i0.ɵɵtext(11, "Event description (optional)");
27610
+ i0.ɵɵelementStart(10, "div", 41)(11, "label", 46);
27611
+ i0.ɵɵtext(12, "Event description (optional)");
27484
27612
  i0.ɵɵelementEnd();
27485
- i0.ɵɵelement(12, "textarea", 46);
27613
+ i0.ɵɵtemplate(13, CaseEditSubmitComponent_div_0_ng_container_14_span_13_Template, 4, 6, "span", 44);
27614
+ i0.ɵɵelement(14, "textarea", 47);
27486
27615
  i0.ɵɵelementEnd()();
27487
27616
  i0.ɵɵelementContainerEnd();
27617
+ } if (rf & 2) {
27618
+ const ctx_r9 = i0.ɵɵnextContext(2);
27619
+ i0.ɵɵadvance(3);
27620
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c1$4, !!ctx_r9.summary && !ctx_r9.summary.valid && (ctx_r9.summary.dirty || ctx_r9.summary.touched)));
27621
+ i0.ɵɵadvance(5);
27622
+ i0.ɵɵproperty("ngIf", (ctx_r9.summary == null ? null : ctx_r9.summary.errors) && (ctx_r9.summary.dirty || ctx_r9.summary.touched));
27623
+ i0.ɵɵadvance(1);
27624
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c2$1, (ctx_r9.summary == null ? null : ctx_r9.summary.errors) && (ctx_r9.summary.dirty || ctx_r9.summary.touched)));
27625
+ i0.ɵɵadvance(1);
27626
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1$4, !!ctx_r9.description && !ctx_r9.description.valid && (ctx_r9.description.dirty || ctx_r9.description.touched)));
27627
+ i0.ɵɵadvance(3);
27628
+ i0.ɵɵproperty("ngIf", (ctx_r9.description == null ? null : ctx_r9.description.errors) && (ctx_r9.description.dirty || ctx_r9.description.touched));
27629
+ i0.ɵɵadvance(1);
27630
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(12, _c2$1, (ctx_r9.description == null ? null : ctx_r9.description.errors) && (ctx_r9.description.dirty || ctx_r9.description.touched)));
27488
27631
  } }
27489
27632
  function CaseEditSubmitComponent_div_0_button_16_Template(rf, ctx) { if (rf & 1) {
27490
- const _r37 = i0.ɵɵgetCurrentView();
27491
- i0.ɵɵelementStart(0, "button", 47);
27492
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r37); const ctx_r36 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r36.previous()); });
27633
+ const _r39 = i0.ɵɵgetCurrentView();
27634
+ i0.ɵɵelementStart(0, "button", 49);
27635
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r39); const ctx_r38 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r38.previous()); });
27493
27636
  i0.ɵɵtext(1);
27494
27637
  i0.ɵɵpipe(2, "rpxTranslate");
27495
27638
  i0.ɵɵelementEnd();
@@ -27500,7 +27643,7 @@ function CaseEditSubmitComponent_div_0_button_16_Template(rf, ctx) { if (rf & 1)
27500
27643
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "Previous"), " ");
27501
27644
  } }
27502
27645
  function CaseEditSubmitComponent_div_0_Template(rf, ctx) { if (rf & 1) {
27503
- const _r39 = i0.ɵɵgetCurrentView();
27646
+ const _r41 = i0.ɵɵgetCurrentView();
27504
27647
  i0.ɵɵelementStart(0, "div")(1, "h1", 2);
27505
27648
  i0.ɵɵtext(2);
27506
27649
  i0.ɵɵpipe(3, "rpxTranslate");
@@ -27510,13 +27653,13 @@ function CaseEditSubmitComponent_div_0_Template(rf, ctx) { if (rf & 1) {
27510
27653
  i0.ɵɵtemplate(7, CaseEditSubmitComponent_div_0_ng_template_7_Template, 1, 1, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
27511
27654
  i0.ɵɵelement(9, "ccd-case-edit-generic-errors", 6);
27512
27655
  i0.ɵɵelementStart(10, "ccd-callback-errors", 7);
27513
- i0.ɵɵlistener("callbackErrorsContext", function CaseEditSubmitComponent_div_0_Template_ccd_callback_errors_callbackErrorsContext_10_listener($event) { i0.ɵɵrestoreView(_r39); const ctx_r38 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r38.callbackErrorsNotify($event)); });
27656
+ i0.ɵɵlistener("callbackErrorsContext", function CaseEditSubmitComponent_div_0_Template_ccd_callback_errors_callbackErrorsContext_10_listener($event) { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r40.callbackErrorsNotify($event)); });
27514
27657
  i0.ɵɵelementEnd();
27515
27658
  i0.ɵɵelementStart(11, "form", 8);
27516
- i0.ɵɵlistener("submit", function CaseEditSubmitComponent_div_0_Template_form_submit_11_listener() { i0.ɵɵrestoreView(_r39); const ctx_r40 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r40.submit()); });
27659
+ i0.ɵɵlistener("submit", function CaseEditSubmitComponent_div_0_Template_form_submit_11_listener() { i0.ɵɵrestoreView(_r41); const ctx_r42 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r42.submit()); });
27517
27660
  i0.ɵɵtemplate(12, CaseEditSubmitComponent_div_0_ng_container_12_Template, 8, 5, "ng-container", 0);
27518
27661
  i0.ɵɵtemplate(13, CaseEditSubmitComponent_div_0_ng_container_13_Template, 4, 1, "ng-container", 0);
27519
- i0.ɵɵtemplate(14, CaseEditSubmitComponent_div_0_ng_container_14_Template, 13, 0, "ng-container", 0);
27662
+ i0.ɵɵtemplate(14, CaseEditSubmitComponent_div_0_ng_container_14_Template, 15, 14, "ng-container", 0);
27520
27663
  i0.ɵɵelementStart(15, "div", 9);
27521
27664
  i0.ɵɵtemplate(16, CaseEditSubmitComponent_div_0_button_16_Template, 3, 4, "button", 10);
27522
27665
  i0.ɵɵelementStart(17, "button", 11);
@@ -27524,7 +27667,7 @@ function CaseEditSubmitComponent_div_0_Template(rf, ctx) { if (rf & 1) {
27524
27667
  i0.ɵɵpipe(19, "rpxTranslate");
27525
27668
  i0.ɵɵelementEnd()();
27526
27669
  i0.ɵɵelementStart(20, "p", 12)(21, "a", 13);
27527
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_Template_a_click_21_listener() { i0.ɵɵrestoreView(_r39); const ctx_r41 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r41.cancel()); });
27670
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_Template_a_click_21_listener() { i0.ɵɵrestoreView(_r41); const ctx_r43 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r43.cancel()); });
27528
27671
  i0.ɵɵtext(22);
27529
27672
  i0.ɵɵpipe(23, "rpxTranslate");
27530
27673
  i0.ɵɵelementEnd()()()();
@@ -27560,9 +27703,9 @@ function CaseEditSubmitComponent_div_0_Template(rf, ctx) { if (rf & 1) {
27560
27703
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(23, 20, ctx_r0.getCancelText()));
27561
27704
  } }
27562
27705
  function CaseEditSubmitComponent_ccd_case_event_completion_1_Template(rf, ctx) { if (rf & 1) {
27563
- const _r43 = i0.ɵɵgetCurrentView();
27564
- i0.ɵɵelementStart(0, "ccd-case-event-completion", 48);
27565
- i0.ɵɵlistener("eventCanBeCompleted", function CaseEditSubmitComponent_ccd_case_event_completion_1_Template_ccd_case_event_completion_eventCanBeCompleted_0_listener($event) { i0.ɵɵrestoreView(_r43); const ctx_r42 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r42.onEventCanBeCompleted($event)); });
27706
+ const _r45 = i0.ɵɵgetCurrentView();
27707
+ i0.ɵɵelementStart(0, "ccd-case-event-completion", 50);
27708
+ i0.ɵɵlistener("eventCanBeCompleted", function CaseEditSubmitComponent_ccd_case_event_completion_1_Template_ccd_case_event_completion_eventCanBeCompleted_0_listener($event) { i0.ɵɵrestoreView(_r45); const ctx_r44 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r44.onEventCanBeCompleted($event)); });
27566
27709
  i0.ɵɵelementEnd();
27567
27710
  } if (rf & 2) {
27568
27711
  const ctx_r1 = i0.ɵɵnextContext();
@@ -27570,14 +27713,17 @@ function CaseEditSubmitComponent_ccd_case_event_completion_1_Template(rf, ctx) {
27570
27713
  } }
27571
27714
  // @dynamic
27572
27715
  class CaseEditSubmitComponent {
27573
- constructor(caseEdit, fieldsUtils, caseFieldService, route, orderService, profileNotifier) {
27716
+ constructor(caseEdit, fieldsUtils, caseFieldService, route, orderService, profileNotifier, formValidatorsService) {
27574
27717
  this.caseEdit = caseEdit;
27575
27718
  this.fieldsUtils = fieldsUtils;
27576
27719
  this.caseFieldService = caseFieldService;
27577
27720
  this.route = route;
27578
27721
  this.orderService = orderService;
27579
27722
  this.profileNotifier = profileNotifier;
27723
+ this.formValidatorsService = formValidatorsService;
27580
27724
  this.paletteContext = PaletteContext.CHECK_YOUR_ANSWER;
27725
+ this.eventSummaryLabel = 'Event summary';
27726
+ this.eventDescriptionLabel = 'Event description';
27581
27727
  }
27582
27728
  get isDisabled() {
27583
27729
  // EUI-3452.
@@ -27587,7 +27733,7 @@ class CaseEditSubmitComponent {
27587
27733
  return this.caseEdit.isSubmitting || this.hasErrors;
27588
27734
  }
27589
27735
  ngOnInit() {
27590
- this.profileSubscription = this.profileNotifier.profile.subscribe(_ => this.profile = _);
27736
+ this.profileSubscription = this.profileNotifier.profile.subscribe((_) => this.profile = _);
27591
27737
  this.eventTrigger = this.caseEdit.eventTrigger;
27592
27738
  this.triggerText = this.eventTrigger.end_button_label || CallbackErrorsComponent.TRIGGER_TEXT_SUBMIT;
27593
27739
  this.editForm = this.caseEdit.form;
@@ -27601,10 +27747,12 @@ class CaseEditSubmitComponent {
27601
27747
  // Indicates if the submission is for a Case Flag, as opposed to a "regular" form submission, by the presence of
27602
27748
  // a FlagLauncher field in the event trigger
27603
27749
  this.caseEdit.isCaseFlagSubmission =
27604
- this.eventTrigger.case_fields.some(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']));
27750
+ this.eventTrigger.case_fields.some((caseField) => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']));
27605
27751
  this.caseEdit.isLinkedCasesSubmission =
27606
27752
  this.eventTrigger.case_fields.some(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['ComponentLauncher']));
27607
27753
  this.pageTitle = this.getPageTitle();
27754
+ this.summary = this.formValidatorsService.addMarkDownValidators(this.editForm, 'event.summary');
27755
+ this.description = this.formValidatorsService.addMarkDownValidators(this.editForm, 'event.description');
27608
27756
  }
27609
27757
  ngOnDestroy() {
27610
27758
  /* istanbul ignore else */
@@ -27613,12 +27761,14 @@ class CaseEditSubmitComponent {
27613
27761
  }
27614
27762
  }
27615
27763
  submit() {
27616
- this.caseEdit.submitForm({
27617
- eventTrigger: this.eventTrigger,
27618
- form: this.editForm,
27619
- submit: this.caseEdit.submit,
27620
- caseDetails: this.caseEdit.caseDetails,
27621
- });
27764
+ if (this.summary.valid && this.description.valid) {
27765
+ this.caseEdit.submitForm({
27766
+ eventTrigger: this.eventTrigger,
27767
+ form: this.editForm,
27768
+ submit: this.caseEdit.submit,
27769
+ caseDetails: this.caseEdit.caseDetails
27770
+ });
27771
+ }
27622
27772
  }
27623
27773
  onEventCanBeCompleted(eventCanBeCompleted) {
27624
27774
  this.caseEdit.onEventCanBeCompleted({
@@ -27626,7 +27776,7 @@ class CaseEditSubmitComponent {
27626
27776
  eventCanBeCompleted,
27627
27777
  caseDetails: this.caseEdit.caseDetails,
27628
27778
  form: this.editForm,
27629
- submit: this.caseEdit.submit,
27779
+ submit: this.caseEdit.submit
27630
27780
  });
27631
27781
  }
27632
27782
  getPageTitle() {
@@ -27701,7 +27851,7 @@ class CaseEditSubmitComponent {
27701
27851
  }
27702
27852
  }
27703
27853
  readOnlySummaryFieldsToDisplayExists() {
27704
- return this.eventTrigger.case_fields.some(field => field.show_summary_content_option >= 0);
27854
+ return this.eventTrigger.case_fields.some((field) => field.show_summary_content_option >= 0);
27705
27855
  }
27706
27856
  showEventNotes() {
27707
27857
  // Display event notes related controls only if the following conditions are met
@@ -27716,7 +27866,7 @@ class CaseEditSubmitComponent {
27716
27866
  }
27717
27867
  getLastPageShown() {
27718
27868
  let lastPage;
27719
- this.wizard.reverse().forEach(page => {
27869
+ this.wizard.reverse().forEach((page) => {
27720
27870
  if (!lastPage && this.isShown(page)) {
27721
27871
  lastPage = page;
27722
27872
  }
@@ -27735,7 +27885,7 @@ class CaseEditSubmitComponent {
27735
27885
  }
27736
27886
  isShown(page) {
27737
27887
  const fields = this.fieldsUtils
27738
- .mergeCaseFieldsAndFormFields(this.eventTrigger.case_fields, this.editForm.controls['data'].value);
27888
+ .mergeCaseFieldsAndFormFields(this.eventTrigger.case_fields, this.editForm.controls.data.value);
27739
27889
  return page.parsedShowCondition.match(fields);
27740
27890
  }
27741
27891
  canShowFieldInCYA(field) {
@@ -27744,7 +27894,7 @@ class CaseEditSubmitComponent {
27744
27894
  sortFieldsByShowSummaryContent(fields) {
27745
27895
  return this.orderService
27746
27896
  .sort(fields, CaseEditSubmitComponent.SHOW_SUMMARY_CONTENT_COMPARE_FUNCTION)
27747
- .filter(cf => cf.show_summary_content_option);
27897
+ .filter((cf) => cf.show_summary_content_option);
27748
27898
  }
27749
27899
  getCaseFields() {
27750
27900
  if (this.caseEdit.caseDetails) {
@@ -27763,9 +27913,7 @@ class CaseEditSubmitComponent {
27763
27913
  if (this.eventTrigger.can_save_draft) {
27764
27914
  return 'Return to case list';
27765
27915
  }
27766
- else {
27767
- return 'Cancel';
27768
- }
27916
+ return 'Cancel';
27769
27917
  }
27770
27918
  }
27771
27919
  CaseEditSubmitComponent.SHOW_SUMMARY_CONTENT_COMPARE_FUNCTION = (a, b) => {
@@ -27779,8 +27927,8 @@ CaseEditSubmitComponent.SHOW_SUMMARY_CONTENT_COMPARE_FUNCTION = (a, b) => {
27779
27927
  }
27780
27928
  return a.show_summary_content_option - b.show_summary_content_option;
27781
27929
  };
27782
- CaseEditSubmitComponent.ɵfac = function CaseEditSubmitComponent_Factory(t) { return new (t || CaseEditSubmitComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(OrderService), i0.ɵɵdirectiveInject(ProfileNotifier)); };
27783
- CaseEditSubmitComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], [3, "error"], [3, "callbackErrorsSubject", "callbackErrorsContext"], [1, "check-your-answers", 3, "formGroup", "submit"], [1, "form-group", "form-group-related"], ["class", "button button-secondary", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 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"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "case-field-label"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "javascript:void(0)", 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"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], [3, "eventCompletionParams", "eventCanBeCompleted"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
27930
+ CaseEditSubmitComponent.ɵfac = function CaseEditSubmitComponent_Factory(t) { return new (t || CaseEditSubmitComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(OrderService), i0.ɵɵdirectiveInject(ProfileNotifier), i0.ɵɵdirectiveInject(FormValidatorsService)); };
27931
+ CaseEditSubmitComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], [3, "error"], [3, "callbackErrorsSubject", "callbackErrorsContext"], [1, "check-your-answers", 3, "formGroup", "submit"], [1, "form-group", "form-group-related"], ["class", "button button-secondary", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 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"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "case-field-label"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "javascript:void(0)", 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"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], [3, "eventCompletionParams", "eventCanBeCompleted"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
27784
27932
  i0.ɵɵtemplate(0, CaseEditSubmitComponent_div_0_Template, 24, 22, "div", 0);
27785
27933
  i0.ɵɵtemplate(1, CaseEditSubmitComponent_ccd_case_event_completion_1_Template, 1, 1, "ccd-case-event-completion", 1);
27786
27934
  } if (rf & 2) {
@@ -27790,8 +27938,8 @@ CaseEditSubmitComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Cas
27790
27938
  } }, styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:0px}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
27791
27939
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditSubmitComponent, [{
27792
27940
  type: Component,
27793
- args: [{ selector: 'ccd-case-edit-submit', template: "<div *ngIf=\"!caseEdit.isEventCompletionChecksRequired\">\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']\"></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 <ng-container *ngIf=\"checkYourAnswerFieldsToDisplayExists()\">\n\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\" [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)\"\n href=\"javascript:void(0)\">\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\">\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 <input type=\"text\" id=\"field-trigger-summary\" class=\"form-control bottom-30 width-50\" formControlName=\"summary\" maxlength=\"1024\">\n </div>\n <div class=\"form-group\">\n <label for=\"field-trigger-description\" class=\"form-label\">Event description (optional)</label>\n <textarea id=\"field-trigger-description\" class=\"form-control bottom-30 width-50\" formControlName=\"description\"\n maxlength=\"65536\"></textarea>\n </div>\n </fieldset>\n </ng-container>\n <div class=\"form-group form-group-related\">\n <button *ngIf=\"!caseEdit.isCaseFlagSubmission\" 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()\" href=\"javascript:void(0)\" [class.disabled]=\"caseEdit.isSubmitting\">{{getCancelText() | rpxTranslate}}</a>\n </p>\n </form>\n</div>\n<ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n</ccd-case-event-completion>\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%}\n"] }]
27794
- }], function () { return [{ type: CaseEditComponent }, { type: FieldsUtils }, { type: CaseFieldService }, { type: i1$1.ActivatedRoute }, { type: OrderService }, { type: ProfileNotifier }]; }, null); })();
27941
+ args: [{ selector: 'ccd-case-edit-submit', template: "<div *ngIf=\"!caseEdit.isEventCompletionChecksRequired\">\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']\"></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 <ng-container *ngIf=\"checkYourAnswerFieldsToDisplayExists()\">\n\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\" [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)\"\n href=\"javascript:void(0)\">\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 class=\"form-group form-group-related\">\n <button *ngIf=\"!caseEdit.isCaseFlagSubmission\" 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()\" href=\"javascript:void(0)\" [class.disabled]=\"caseEdit.isSubmitting\">{{getCancelText() | rpxTranslate}}</a>\n </p>\n </form>\n</div>\n<ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n</ccd-case-event-completion>\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%}\n"] }]
27942
+ }], function () { return [{ type: CaseEditComponent }, { type: FieldsUtils }, { type: CaseFieldService }, { type: i1$1.ActivatedRoute }, { type: OrderService }, { type: ProfileNotifier }, { type: FormValidatorsService }]; }, null); })();
27795
27943
 
27796
27944
  function CaseProgressComponent_div_0_Template(rf, ctx) { if (rf & 1) {
27797
27945
  const _r2 = i0.ɵɵgetCurrentView();
@@ -28147,7 +28295,7 @@ i0.ɵɵsetComponentScope(CaseEditConfirmComponent, function () { return [i4.NgIf
28147
28295
  i0.ɵɵsetComponentScope(CaseEditPageComponent, function () { return [i4.NgForOf, i4.NgIf, i3.ɵNgNoValidate, i3.NgControlStatusGroup, i3.FormGroupDirective, CallbackErrorsComponent, MarkdownComponent, CaseEventCompletionComponent, CaseEditFormComponent,
28148
28296
  CaseEditGenericErrorsComponent]; }, function () { return [i4.AsyncPipe, CaseReferencePipe, CcdCaseTitlePipe, i1.RpxTranslatePipe]; });
28149
28297
  i0.ɵɵsetComponentScope(CaseEditFormComponent, function () { return [i4.NgForOf, i4.NgIf, i4.NgSwitch, i4.NgSwitchCase, i3.NgControlStatusGroup, i3.FormGroupDirective, LabelSubstitutorDirective, ConditionalShowFormDirective, FieldReadComponent, FieldWriteComponent]; }, function () { return [IsCompoundPipe, IsReadOnlyAndNotCollectionPipe]; });
28150
- i0.ɵɵsetComponentScope(CaseEditSubmitComponent, function () { return [i4.NgForOf, i4.NgIf, i4.NgSwitch, i4.NgSwitchCase, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.MaxLengthValidator, i3.FormGroupDirective, i3.FormControlName, i3.FormGroupName, LabelSubstitutorDirective, CallbackErrorsComponent, MarkdownComponent, FieldReadComponent, CaseEventCompletionComponent, CaseEditGenericErrorsComponent]; }, function () { return [IsCompoundPipe, CaseReferencePipe, CcdCaseTitlePipe, CcdCYAPageLabelFilterPipe, ReadFieldsFilterPipe, CcdPageFieldsPipe, i1.RpxTranslatePipe]; });
28298
+ i0.ɵɵsetComponentScope(CaseEditSubmitComponent, function () { return [i4.NgClass, i4.NgForOf, i4.NgIf, i4.NgSwitch, i4.NgSwitchCase, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.MaxLengthValidator, i3.FormGroupDirective, i3.FormControlName, i3.FormGroupName, LabelSubstitutorDirective, CallbackErrorsComponent, MarkdownComponent, FieldReadComponent, CaseEventCompletionComponent, CaseEditGenericErrorsComponent]; }, function () { return [FirstErrorPipe, IsCompoundPipe, CaseReferencePipe, CcdCaseTitlePipe, CcdCYAPageLabelFilterPipe, ReadFieldsFilterPipe, CcdPageFieldsPipe, i1.RpxTranslatePipe]; });
28151
28299
  i0.ɵɵsetComponentScope(CaseCreateComponent, function () { return [i4.NgIf, CaseEditComponent]; }, []);
28152
28300
  i0.ɵɵsetComponentScope(CaseProgressComponent, function () { return [i4.NgIf, CaseEditComponent]; }, []);
28153
28301
 
@@ -29733,29 +29881,29 @@ function CaseHistoryComponent_div_0_Template(rf, ctx) { if (rf & 1) {
29733
29881
  i0.ɵɵadvance(6);
29734
29882
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 19, "Date"));
29735
29883
  i0.ɵɵadvance(3);
29736
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(18, 21, ctx_r0.caseHistory.event.timestamp));
29884
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(18, 21, ctx_r0.caseHistory.event.timestamp, "local"));
29737
29885
  i0.ɵɵadvance(4);
29738
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(22, 23, "Author"));
29886
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(22, 24, "Author"));
29739
29887
  i0.ɵɵadvance(3);
29740
- i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(25, 25, ctx_r0.caseHistory.event.user_first_name), " ", i0.ɵɵpipeBind1(26, 27, ctx_r0.caseHistory.event.user_last_name), "");
29888
+ i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(25, 26, ctx_r0.caseHistory.event.user_first_name), " ", i0.ɵɵpipeBind1(26, 28, ctx_r0.caseHistory.event.user_last_name), "");
29741
29889
  i0.ɵɵadvance(5);
29742
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(30, 29, "End state"));
29890
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(30, 30, "End state"));
29743
29891
  i0.ɵɵadvance(3);
29744
29892
  i0.ɵɵtextInterpolate(ctx_r0.caseHistory.event.state_name);
29745
29893
  i0.ɵɵadvance(3);
29746
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(36, 31, "Event"));
29894
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(36, 32, "Event"));
29747
29895
  i0.ɵɵadvance(3);
29748
29896
  i0.ɵɵtextInterpolate(ctx_r0.caseHistory.event.event_name);
29749
29897
  i0.ɵɵadvance(3);
29750
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(42, 33, "Summary"));
29898
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(42, 34, "Summary"));
29751
29899
  i0.ɵɵadvance(3);
29752
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 35, ctx_r0.caseHistory.event.summary));
29900
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 36, ctx_r0.caseHistory.event.summary));
29753
29901
  i0.ɵɵadvance(4);
29754
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(49, 37, "Comment"));
29902
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(49, 38, "Comment"));
29755
29903
  i0.ɵɵadvance(3);
29756
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(52, 39, ctx_r0.caseHistory.event.comment));
29904
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(52, 40, ctx_r0.caseHistory.event.comment));
29757
29905
  i0.ɵɵadvance(4);
29758
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(56, 41, "Case Details"));
29906
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(56, 42, "Case Details"));
29759
29907
  i0.ɵɵadvance(2);
29760
29908
  i0.ɵɵproperty("ngForOf", ctx_r0.tabs);
29761
29909
  } }
@@ -29809,13 +29957,13 @@ CaseHistoryComponent.PARAM_EVENT_ID = 'eid';
29809
29957
  CaseHistoryComponent.ERROR_MESSAGE = 'No case history to show';
29810
29958
  CaseHistoryComponent.ɵfac = function CaseHistoryComponent_Factory(t) { return new (t || CaseHistoryComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(AlertService), i0.ɵɵdirectiveInject(OrderService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(CaseHistoryService)); };
29811
29959
  CaseHistoryComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseHistoryComponent, selectors: [["ccd-case-history"]], inputs: { event: "event" }, decls: 1, vars: 1, consts: [[4, "ngIf"], [1, "grid-row"], [1, "column-full"], [3, "caseDetails"], [1, "heading-h2"], ["aria-describedby", "event details table", 1, "EventDetails"], [4, "ngFor", "ngForOf"], [1, "caseHistorySection"], [1, "heading-h3"], [1, "CaseHistory", 3, "id"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "hidden"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["class", "compound-field", 4, "ngSwitchCase"], ["id", "case-viewer-label-header"], [1, "case-viewer-label"], [3, "caseField", "caseReference"], [1, "compound-field"], ["colspan", "2"]], template: function CaseHistoryComponent_Template(rf, ctx) { if (rf & 1) {
29812
- i0.ɵɵtemplate(0, CaseHistoryComponent_div_0_Template, 58, 43, "div", 0);
29960
+ i0.ɵɵtemplate(0, CaseHistoryComponent_div_0_Template, 58, 44, "div", 0);
29813
29961
  } if (rf & 2) {
29814
29962
  i0.ɵɵproperty("ngIf", ctx.isDataLoaded());
29815
29963
  } }, styles: [".CaseHistory[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .CaseHistory[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:none}.caseHistorySection[_ngcontent-%COMP%]{margin-top:40px}.EventDetails[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .EventDetails[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:none}th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}.case-viewer-controls[_ngcontent-%COMP%]{margin-top:47px;margin-bottom:20px}ccd-case-header[_ngcontent-%COMP%]{float:left;margin-right:10px}ccd-event-trigger[_ngcontent-%COMP%]{float:right}.case-viewer-label[_ngcontent-%COMP%]{min-width:300px;white-space:normal}"] });
29816
29964
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseHistoryComponent, [{
29817
29965
  type: Component,
29818
- args: [{ selector: 'ccd-case-history', template: "<div *ngIf=\"isDataLoaded()\">\n <div class=\"grid-row\">\n <div class=\"column-full\">\n <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n </div>\n </div>\n <div class=\"grid-row\">\n <div class=\"column-full\">\n <div>\n <h2 class=\"heading-h2\">{{'Event Details' | rpxTranslate}}</h2>\n <table class=\"EventDetails\" aria-describedby=\"event details table\">\n <tbody>\n <tr>\n <th>{{'Date' | rpxTranslate}}</th>\n <td>{{caseHistory.event.timestamp | ccdDate}}</td>\n </tr>\n <tr>\n <th>{{'Author' | rpxTranslate}}</th>\n <td>{{caseHistory.event.user_first_name | titlecase}} {{caseHistory.event.user_last_name | uppercase}}</td>\n </tr>\n <tr>\n <th>{{'End state' | rpxTranslate}}</th>\n <td>{{caseHistory.event.state_name}}</td>\n </tr>\n <tr>\n <th>{{'Event' | rpxTranslate}}</th>\n <td>{{caseHistory.event.event_name}}</td>\n </tr>\n <tr>\n <th>{{'Summary' | rpxTranslate}}</th>\n <td>{{caseHistory.event.summary | ccdDash}}</td>\n </tr>\n <tr>\n <th>{{'Comment' | rpxTranslate}}</th>\n <td>{{caseHistory.event.comment | ccdDash}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n <div>\n <h2 class=\"heading-h2\">{{'Case Details' | rpxTranslate}}</h2>\n <ng-container *ngFor=\"let tab of tabs\">\n <div class=\"caseHistorySection\">\n <h3 class=\"heading-h3\">{{tab.label}}</h3>\n <table class=\"CaseHistory\" id=\"{{tab.id}}\" [attr.aria-describedby]=\"'case history table' | rpxTranslate\">\n <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true\">\n <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"tab.fields\" [hidden]=\"field.hidden\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\">\n <th id=\"case-viewer-label-header\">\n <div class=\"case-viewer-label\">{{field.label}}</div>\n </th>\n <td>\n <ccd-field-read [caseField]=\"field\" [caseReference]=\"caseHistory.case_id\"></ccd-field-read>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n <td colspan=\"2\">\n <ccd-field-read [caseField]=\"field\" [caseReference]=\"caseHistory.case_id\"></ccd-field-read>\n </td>\n </tr>\n </ng-container>\n </div>\n </ng-container>\n </table>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".CaseHistory th,.CaseHistory td{border-bottom:none}.caseHistorySection{margin-top:40px}.EventDetails th,.EventDetails td{border-bottom:none}th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}.case-viewer-controls{margin-top:47px;margin-bottom:20px}ccd-case-header{float:left;margin-right:10px}ccd-event-trigger{float:right}.case-viewer-label{min-width:300px;white-space:normal}\n"] }]
29966
+ args: [{ selector: 'ccd-case-history', template: "<div *ngIf=\"isDataLoaded()\">\n <div class=\"grid-row\">\n <div class=\"column-full\">\n <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n </div>\n </div>\n <div class=\"grid-row\">\n <div class=\"column-full\">\n <div>\n <h2 class=\"heading-h2\">{{'Event Details' | rpxTranslate}}</h2>\n <table class=\"EventDetails\" aria-describedby=\"event details table\">\n <tbody>\n <tr>\n <th>{{'Date' | rpxTranslate}}</th>\n <td>{{caseHistory.event.timestamp | ccdDate : 'local'}}</td>\n </tr>\n <tr>\n <th>{{'Author' | rpxTranslate}}</th>\n <td>{{caseHistory.event.user_first_name | titlecase}} {{caseHistory.event.user_last_name | uppercase}}</td>\n </tr>\n <tr>\n <th>{{'End state' | rpxTranslate}}</th>\n <td>{{caseHistory.event.state_name}}</td>\n </tr>\n <tr>\n <th>{{'Event' | rpxTranslate}}</th>\n <td>{{caseHistory.event.event_name}}</td>\n </tr>\n <tr>\n <th>{{'Summary' | rpxTranslate}}</th>\n <td>{{caseHistory.event.summary | ccdDash}}</td>\n </tr>\n <tr>\n <th>{{'Comment' | rpxTranslate}}</th>\n <td>{{caseHistory.event.comment | ccdDash}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n <div>\n <h2 class=\"heading-h2\">{{'Case Details' | rpxTranslate}}</h2>\n <ng-container *ngFor=\"let tab of tabs\">\n <div class=\"caseHistorySection\">\n <h3 class=\"heading-h3\">{{tab.label}}</h3>\n <table class=\"CaseHistory\" id=\"{{tab.id}}\" [attr.aria-describedby]=\"'case history table' | rpxTranslate\">\n <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true\">\n <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"tab.fields\" [hidden]=\"field.hidden\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\">\n <th id=\"case-viewer-label-header\">\n <div class=\"case-viewer-label\">{{field.label}}</div>\n </th>\n <td>\n <ccd-field-read [caseField]=\"field\" [caseReference]=\"caseHistory.case_id\"></ccd-field-read>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n <td colspan=\"2\">\n <ccd-field-read [caseField]=\"field\" [caseReference]=\"caseHistory.case_id\"></ccd-field-read>\n </td>\n </tr>\n </ng-container>\n </div>\n </ng-container>\n </table>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".CaseHistory th,.CaseHistory td{border-bottom:none}.caseHistorySection{margin-top:40px}.EventDetails th,.EventDetails td{border-bottom:none}th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}.case-viewer-controls{margin-top:47px;margin-bottom:20px}ccd-case-header{float:left;margin-right:10px}ccd-event-trigger{float:right}.case-viewer-label{min-width:300px;white-space:normal}\n"] }]
29819
29967
  }], function () { return [{ type: i1$1.ActivatedRoute }, { type: AlertService }, { type: OrderService }, { type: CaseNotifier }, { type: CaseHistoryService }]; }, { event: [{
29820
29968
  type: Input
29821
29969
  }] }); })();
@@ -30889,7 +31037,7 @@ function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_2_Tem
30889
31037
  const tab_r20 = i0.ɵɵnextContext().$implicit;
30890
31038
  const ctx_r22 = i0.ɵɵnextContext(2);
30891
31039
  i0.ɵɵclassMap(tab_r20.id);
30892
- i0.ɵɵattribute("aria-describedby", i0.ɵɵpipeBind1(1, 4, "case viewer table"));
31040
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(1, 4, "case viewer table"));
30893
31041
  i0.ɵɵadvance(3);
30894
31042
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBindV(4, 6, i0.ɵɵpureFunction2(14, _c1$3, i0.ɵɵpipeBind1(5, 12, tab_r20), ctx_r22.formGroup.controls["data"])));
30895
31043
  } }
@@ -31354,7 +31502,7 @@ CaseFullAccessViewComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
31354
31502
  } }, styles: ["th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding:0}.case-viewer-controls[_ngcontent-%COMP%]{margin-top:47px;margin-bottom:20px}ccd-case-header[_ngcontent-%COMP%]{float:left;margin-right:10px}ccd-event-trigger[_ngcontent-%COMP%]{float:right}.case-viewer-label[_ngcontent-%COMP%]{min-width:300px;white-space:normal}.markdown[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin-bottom:0}"] });
31355
31503
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFullAccessViewComponent, [{
31356
31504
  type: Component,
31357
- args: [{ selector: 'ccd-case-full-access-view', template: "<!-- Generic error heading and error message to be displayed only if there are no specific callback errors or warnings, or no error details -->\n<div *ngIf=\"error && !(error.callbackErrors || error.callbackWarnings || error.details)\" class=\"error-summary\"\n role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h1 class=\"heading-h1 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'Something went wrong' | rpxTranslate}}\n </h1>\n <div class=\"govuk-error-summary__body\" id=\"edit-case-event_error-summary-body\">\n <p>{{\"We're working to fix the problem. Try again shortly.\" | rpxTranslate}}</p>\n <p>\n <a href=\"get-help\" target=\"_blank\">\n {{\"Contact us\" | rpxTranslate}}</a> {{\"if you're still having problems.\" | rpxTranslate}}\n </p>\n </div>\n</div>\n<!-- Callback error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"group\"\n aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-h2 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'The callback data failed validation' | rpxTranslate}}\n </h2>\n <p>{{error.message | rpxTranslate}}</p>\n <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n <li *ngFor=\"let fieldError of error.details.field_errors\">\n {{fieldError.message | rpxTranslate}}\n </li>\n </ul>\n</div>\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n<div class=\"grid-row\">\n <div class=\"column-one-half\">\n <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n <div class=\"case-viewer-controls\" *ngIf=\"hasPrint && !isDraft() && isPrintEnabled()\">\n <a id=\"case-viewer-control-print\" routerLink=\"print\" class=\"button button-secondary\">{{'Print' | rpxTranslate}}</a>\n </div>\n </div>\n <div *ngIf=\"hasEventSelector\" class=\"column-one-half\">\n <ccd-event-trigger [isDisabled]=\"isTriggerButtonDisabled()\" [triggers]=\"caseDetails.triggers\"\n [triggerText]=\"triggerText\" (onTriggerChange)=\"clearErrorsAndWarnings()\"\n (onTriggerSubmit)=\"applyTrigger($event)\"></ccd-event-trigger>\n </div>\n</div>\n<div class=\"grid-row\" *ngIf=\"activeCaseFlags && !caseFlagsExternalUser\">\n <div class=\"column-full\">\n <ccd-notification-banner [notificationBannerConfig]=\"notificationBannerConfig\" (linkClicked)=\"onLinkClicked($event)\">\n </ccd-notification-banner>\n </div>\n</div>\n<div class=\"grid-row\">\n <div class=\"column-full\">\n <ng-container *ngIf=\"hasTabsPresent()\">\n <mat-tab-group #tabGroup animationDuration=\"0ms\" (selectedIndexChange)=\"tabChanged($event)\" [disableRipple]=\"true\"\n [selectedIndex]=\"selectedTabIndex\">\n <mat-tab *ngFor=\"let tab of prependedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n <mat-tab *ngFor=\"let tab of sortedTabs; let curIdx=index\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n <ng-template matTabContent>\n <table [class]=\"tab.id\" [attr.aria-describedby]=\"'case viewer table' | rpxTranslate\">\n <tbody>\n <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true : formGroup.controls['data']\">\n <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"caseFields\" [hidden]=\"field.hidden\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\">\n <th id=\"case-viewer-field-label\" *ngIf=\"!isFieldToHaveNoLabel(field)\">\n <div class=\"case-viewer-label text-16\">\n {{field.label | rpxTranslate}}</div>\n </th>\n <td [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n <th [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </th>\n </tr>\n </ng-container>\n </div>\n </ng-container>\n </tbody>\n </table>\n </ng-template>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of appendedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n </mat-tab-group>\n <router-outlet *ngIf=\"(prependedTabs && prependedTabs.length) || (appendedTabs && appendedTabs.length)\"></router-outlet>\n </ng-container>\n </div>\n</div>\n", styles: ["th{width:1%;white-space:nowrap;vertical-align:top}.compound-field th{padding:0}.case-viewer-controls{margin-top:47px;margin-bottom:20px}ccd-case-header{float:left;margin-right:10px}ccd-event-trigger{float:right}.case-viewer-label{min-width:300px;white-space:normal}.markdown h3{margin-bottom:0}\n"] }]
31505
+ args: [{ selector: 'ccd-case-full-access-view', template: "<!-- Generic error heading and error message to be displayed only if there are no specific callback errors or warnings, or no error details -->\n<div *ngIf=\"error && !(error.callbackErrors || error.callbackWarnings || error.details)\" class=\"error-summary\"\n role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h1 class=\"heading-h1 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'Something went wrong' | rpxTranslate}}\n </h1>\n <div class=\"govuk-error-summary__body\" id=\"edit-case-event_error-summary-body\">\n <p>{{\"We're working to fix the problem. Try again shortly.\" | rpxTranslate}}</p>\n <p>\n <a href=\"get-help\" target=\"_blank\">\n {{\"Contact us\" | rpxTranslate}}</a> {{\"if you're still having problems.\" | rpxTranslate}}\n </p>\n </div>\n</div>\n<!-- Callback error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"group\"\n aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-h2 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'The callback data failed validation' | rpxTranslate}}\n </h2>\n <p>{{error.message | rpxTranslate}}</p>\n <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n <li *ngFor=\"let fieldError of error.details.field_errors\">\n {{fieldError.message | rpxTranslate}}\n </li>\n </ul>\n</div>\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n<div class=\"grid-row\">\n <div class=\"column-one-half\">\n <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n <div class=\"case-viewer-controls\" *ngIf=\"hasPrint && !isDraft() && isPrintEnabled()\">\n <a id=\"case-viewer-control-print\" routerLink=\"print\" class=\"button button-secondary\">{{'Print' | rpxTranslate}}</a>\n </div>\n </div>\n <div *ngIf=\"hasEventSelector\" class=\"column-one-half\">\n <ccd-event-trigger [isDisabled]=\"isTriggerButtonDisabled()\" [triggers]=\"caseDetails.triggers\"\n [triggerText]=\"triggerText\" (onTriggerChange)=\"clearErrorsAndWarnings()\"\n (onTriggerSubmit)=\"applyTrigger($event)\"></ccd-event-trigger>\n </div>\n</div>\n<div class=\"grid-row\" *ngIf=\"activeCaseFlags && !caseFlagsExternalUser\">\n <div class=\"column-full\">\n <ccd-notification-banner [notificationBannerConfig]=\"notificationBannerConfig\" (linkClicked)=\"onLinkClicked($event)\">\n </ccd-notification-banner>\n </div>\n</div>\n<div class=\"grid-row\">\n <div class=\"column-full\">\n <ng-container *ngIf=\"hasTabsPresent()\">\n <mat-tab-group #tabGroup animationDuration=\"0ms\" (selectedIndexChange)=\"tabChanged($event)\" [disableRipple]=\"true\"\n [selectedIndex]=\"selectedTabIndex\">\n <mat-tab *ngFor=\"let tab of prependedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n <mat-tab *ngFor=\"let tab of sortedTabs; let curIdx=index\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n <ng-template matTabContent>\n <table [class]=\"tab.id\" [attr.aria-label]=\"'case viewer table' | rpxTranslate\">\n <tbody>\n <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true : formGroup.controls['data']\">\n <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"caseFields\" [hidden]=\"field.hidden\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\">\n <th id=\"case-viewer-field-label\" *ngIf=\"!isFieldToHaveNoLabel(field)\">\n <div class=\"case-viewer-label text-16\">\n {{field.label | rpxTranslate}}</div>\n </th>\n <td [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n <th [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </th>\n </tr>\n </ng-container>\n </div>\n </ng-container>\n </tbody>\n </table>\n </ng-template>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of appendedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n </mat-tab-group>\n <router-outlet *ngIf=\"(prependedTabs && prependedTabs.length) || (appendedTabs && appendedTabs.length)\"></router-outlet>\n </ng-container>\n </div>\n</div>\n", styles: ["th{width:1%;white-space:nowrap;vertical-align:top}.compound-field th{padding:0}.case-viewer-controls{margin-top:47px;margin-bottom:20px}ccd-case-header{float:left;margin-right:10px}ccd-event-trigger{float:right}.case-viewer-label{min-width:300px;white-space:normal}.markdown h3{margin-bottom:0}\n"] }]
31358
31506
  }], function () { return [{ type: i0.NgZone }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: NavigationNotifierService }, { type: OrderService }, { type: ActivityPollingService }, { type: i1$3.MatLegacyDialog }, { type: AlertService }, { type: DraftService }, { type: ErrorNotifierService }, { type: ConvertHrefToRouterService }, { type: i4.Location }, { type: i0.ChangeDetectorRef }, { type: SessionStorageService }, { type: i1.RpxTranslatePipe }]; }, { hasPrint: [{
31359
31507
  type: Input
31360
31508
  }], hasEventSelector: [{