@hmcts/ccd-case-ui-toolkit 6.14.0 → 6.14.4-eui-4157

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 (60) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +584 -387
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +1 -1
  6. package/esm2015/lib/shared/components/case-editor/services/cases.service.js +4 -7
  7. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +2 -2
  8. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +2 -2
  9. package/esm2015/lib/shared/components/palette/base-field/payment-field.component.js +1 -4
  10. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field.component.js +12 -5
  11. package/esm2015/lib/shared/components/palette/case-file-view/index.js +1 -2
  12. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +13 -2
  13. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/index.js +3 -0
  14. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.js +47 -0
  15. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +153 -0
  16. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +5 -6
  17. package/esm2015/lib/shared/components/palette/index.js +2 -1
  18. package/esm2015/lib/shared/components/palette/palette.module.js +30 -7
  19. package/esm2015/lib/shared/components/palette/palette.service.js +5 -3
  20. package/esm2015/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.js +3 -3
  21. package/esm2015/lib/shared/components/palette/waystopay/waystopay-field.component.js +4 -4
  22. package/esm2015/lib/shared/domain/definition/case-field.model.js +6 -3
  23. package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
  24. package/esm2015/lib/shared/services/form/field-type-sanitiser.js +16 -1
  25. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +556 -381
  26. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  27. package/lib/app.config.d.ts +0 -2
  28. package/lib/app.config.d.ts.map +1 -1
  29. package/lib/shared/components/case-editor/services/cases.service.d.ts +1 -3
  30. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  31. package/lib/shared/components/palette/base-field/payment-field.component.d.ts +0 -1
  32. package/lib/shared/components/palette/base-field/payment-field.component.d.ts.map +1 -1
  33. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts +5 -2
  34. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts.map +1 -1
  35. package/lib/shared/components/palette/case-file-view/index.d.ts +0 -1
  36. package/lib/shared/components/palette/case-file-view/index.d.ts.map +1 -1
  37. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +1 -0
  38. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  39. package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts +3 -0
  40. package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts.map +1 -0
  41. package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts +9 -0
  42. package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts.map +1 -0
  43. package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts +17 -0
  44. package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts.map +1 -0
  45. package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts +1 -1
  46. package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts.map +1 -1
  47. package/lib/shared/components/palette/index.d.ts +1 -0
  48. package/lib/shared/components/palette/index.d.ts.map +1 -1
  49. package/lib/shared/components/palette/palette.module.d.ts +60 -59
  50. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  51. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  52. package/lib/shared/domain/definition/case-field.model.d.ts.map +1 -1
  53. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  54. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  55. package/lib/shared/services/form/field-type-sanitiser.d.ts +2 -0
  56. package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -1
  57. package/package.json +2 -2
  58. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.js +0 -72
  59. package/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.d.ts +0 -8
  60. package/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.d.ts.map +0 -1
@@ -116,13 +116,13 @@ function FooterComponent_div_3_Template(rf, ctx) { if (rf & 1) {
116
116
  i0.ɵɵadvance(3);
117
117
  i0.ɵɵtextInterpolate(ctx_r1.workhours);
118
118
  } }
119
- const _c0$_ = [[["", "footerSolsNavLinks", ""]], [["", "footerCaseWorkerNavLinks", ""]]];
119
+ const _c0$$ = [[["", "footerSolsNavLinks", ""]], [["", "footerCaseWorkerNavLinks", ""]]];
120
120
  const _c1$s = ["[footerSolsNavLinks]", "[footerCaseWorkerNavLinks]"];
121
121
  class FooterComponent {
122
122
  }
123
123
  FooterComponent.ɵfac = function FooterComponent_Factory(t) { return new (t || FooterComponent)(); };
124
124
  FooterComponent.ɵcmp = i0.ɵɵdefineComponent({ type: FooterComponent, selectors: [["cut-footer-bar"]], inputs: { email: "email", isSolicitor: "isSolicitor", phone: "phone", workhours: "workhours" }, ngContentSelectors: _c1$s, 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) {
125
- i0.ɵɵprojectionDef(_c0$_);
125
+ i0.ɵɵprojectionDef(_c0$$);
126
126
  i0.ɵɵelementStart(0, "footer", 0);
127
127
  i0.ɵɵelementStart(1, "div", 1);
128
128
  i0.ɵɵtemplate(2, FooterComponent_div_2_Template, 15, 0, "div", 2);
@@ -189,7 +189,7 @@ function HeaderBarComponent_div_9_Template(rf, ctx) { if (rf & 1) {
189
189
  i0.ɵɵadvance(3);
190
190
  i0.ɵɵtextInterpolate(ctx_r2.title);
191
191
  } }
192
- const _c0$Z = [[["", "headerNavigation", ""]]];
192
+ const _c0$_ = [[["", "headerNavigation", ""]]];
193
193
  const _c1$r = ["[headerNavigation]"];
194
194
  class HeaderBarComponent {
195
195
  constructor() {
@@ -201,7 +201,7 @@ class HeaderBarComponent {
201
201
  }
202
202
  HeaderBarComponent.ɵfac = function HeaderBarComponent_Factory(t) { return new (t || HeaderBarComponent)(); };
203
203
  HeaderBarComponent.ɵcmp = i0.ɵɵdefineComponent({ type: HeaderBarComponent, selectors: [["cut-header-bar"]], inputs: { title: "title", isSolicitor: "isSolicitor", username: "username" }, outputs: { signOutRequest: "signOutRequest" }, ngContentSelectors: _c1$r, decls: 15, vars: 8, 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) {
204
- i0.ɵɵprojectionDef(_c0$Z);
204
+ i0.ɵɵprojectionDef(_c0$_);
205
205
  i0.ɵɵelementStart(0, "header", 0);
206
206
  i0.ɵɵelementStart(1, "div", 1);
207
207
  i0.ɵɵelementStart(2, "div", 2);
@@ -258,13 +258,13 @@ HeaderBarComponent.ɵcmp = i0.ɵɵdefineComponent({ type: HeaderBarComponent, se
258
258
  type: Output
259
259
  }] }); })();
260
260
 
261
- const _c0$Y = [[["", "leftNavLinks", ""]], [["", "rightNavLinks", ""]]];
261
+ const _c0$Z = [[["", "leftNavLinks", ""]], [["", "rightNavLinks", ""]]];
262
262
  const _c1$q = ["[leftNavLinks]", "[rightNavLinks]"];
263
263
  class NavigationComponent {
264
264
  }
265
265
  NavigationComponent.ɵfac = function NavigationComponent_Factory(t) { return new (t || NavigationComponent)(); };
266
266
  NavigationComponent.ɵcmp = i0.ɵɵdefineComponent({ type: NavigationComponent, selectors: [["cut-nav-bar"]], inputs: { isSolicitor: "isSolicitor" }, ngContentSelectors: _c1$q, decls: 4, vars: 2, consts: [[1, "cut-nav-bar"]], template: function NavigationComponent_Template(rf, ctx) { if (rf & 1) {
267
- i0.ɵɵprojectionDef(_c0$Y);
267
+ i0.ɵɵprojectionDef(_c0$Z);
268
268
  i0.ɵɵelementStart(0, "div");
269
269
  i0.ɵɵelementStart(1, "nav", 0);
270
270
  i0.ɵɵprojection(2);
@@ -381,13 +381,13 @@ HeadersModule.ɵinj = i0.ɵɵdefineInjector({ imports: [[CommonModule, RouterMod
381
381
  }]
382
382
  }], null, null); })();
383
383
 
384
- const _c0$X = [[["", "topBody", ""]], [["", "leftBody", ""]], [["", "rightBody", ""]]];
384
+ const _c0$Y = [[["", "topBody", ""]], [["", "leftBody", ""]], [["", "rightBody", ""]]];
385
385
  const _c1$p = ["[topBody]", "[leftBody]", "[rightBody]"];
386
386
  class BodyComponent {
387
387
  }
388
388
  BodyComponent.ɵfac = function BodyComponent_Factory(t) { return new (t || BodyComponent)(); };
389
389
  BodyComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BodyComponent, selectors: [["cut-body"]], ngContentSelectors: _c1$p, decls: 4, vars: 0, consts: [[1, "global-display"]], template: function BodyComponent_Template(rf, ctx) { if (rf & 1) {
390
- i0.ɵɵprojectionDef(_c0$X);
390
+ i0.ɵɵprojectionDef(_c0$Y);
391
391
  i0.ɵɵelementStart(0, "div", 0);
392
392
  i0.ɵɵprojection(1);
393
393
  i0.ɵɵprojection(2, 1);
@@ -404,7 +404,7 @@ BodyComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BodyComponent, selectors: [
404
404
  }]
405
405
  }], null, null); })();
406
406
 
407
- const _c0$W = function (a0) { return { "govuk-input--error": a0 }; };
407
+ const _c0$X = function (a0) { return { "govuk-input--error": a0 }; };
408
408
  function DateInputComponent_div_16_Template(rf, ctx) { if (rf & 1) {
409
409
  const _r8 = i0.ɵɵgetCurrentView();
410
410
  i0.ɵɵelementStart(0, "div", 12);
@@ -420,7 +420,7 @@ function DateInputComponent_div_16_Template(rf, ctx) { if (rf & 1) {
420
420
  i0.ɵɵadvance(1);
421
421
  i0.ɵɵproperty("for", ctx_r3.hourId());
422
422
  i0.ɵɵadvance(2);
423
- i0.ɵɵproperty("id", ctx_r3.hourId())("name", ctx_r3.hourId())("value", ctx_r3.displayHour)("ngClass", i0.ɵɵpureFunction1(5, _c0$W, ctx_r3.isInvalid));
423
+ i0.ɵɵproperty("id", ctx_r3.hourId())("name", ctx_r3.hourId())("value", ctx_r3.displayHour)("ngClass", i0.ɵɵpureFunction1(5, _c0$X, ctx_r3.isInvalid));
424
424
  } }
425
425
  function DateInputComponent_div_17_Template(rf, ctx) { if (rf & 1) {
426
426
  const _r13 = i0.ɵɵgetCurrentView();
@@ -437,7 +437,7 @@ function DateInputComponent_div_17_Template(rf, ctx) { if (rf & 1) {
437
437
  i0.ɵɵadvance(1);
438
438
  i0.ɵɵproperty("for", ctx_r4.minuteId());
439
439
  i0.ɵɵadvance(2);
440
- i0.ɵɵproperty("id", ctx_r4.minuteId())("name", ctx_r4.minuteId())("value", ctx_r4.displayMinute)("ngClass", i0.ɵɵpureFunction1(5, _c0$W, ctx_r4.isInvalid));
440
+ i0.ɵɵproperty("id", ctx_r4.minuteId())("name", ctx_r4.minuteId())("value", ctx_r4.displayMinute)("ngClass", i0.ɵɵpureFunction1(5, _c0$X, ctx_r4.isInvalid));
441
441
  } }
442
442
  function DateInputComponent_div_18_Template(rf, ctx) { if (rf & 1) {
443
443
  const _r18 = i0.ɵɵgetCurrentView();
@@ -454,7 +454,7 @@ function DateInputComponent_div_18_Template(rf, ctx) { if (rf & 1) {
454
454
  i0.ɵɵadvance(1);
455
455
  i0.ɵɵproperty("for", ctx_r5.secondId());
456
456
  i0.ɵɵadvance(2);
457
- i0.ɵɵproperty("id", ctx_r5.secondId())("name", ctx_r5.secondId())("value", ctx_r5.displaySecond)("ngClass", i0.ɵɵpureFunction1(5, _c0$W, ctx_r5.isInvalid));
457
+ i0.ɵɵproperty("id", ctx_r5.secondId())("name", ctx_r5.secondId())("value", ctx_r5.displaySecond)("ngClass", i0.ɵɵpureFunction1(5, _c0$X, ctx_r5.isInvalid));
458
458
  } }
459
459
  class DateInputComponent {
460
460
  constructor() {
@@ -683,15 +683,15 @@ DateInputComponent.ɵcmp = i0.ɵɵdefineComponent({ type: DateInputComponent, se
683
683
  i0.ɵɵadvance(2);
684
684
  i0.ɵɵproperty("for", ctx.dayId());
685
685
  i0.ɵɵadvance(2);
686
- i0.ɵɵproperty("id", ctx.dayId())("name", ctx.dayId())("value", ctx.displayDay)("ngClass", i0.ɵɵpureFunction1(18, _c0$W, ctx.isInvalid));
686
+ i0.ɵɵproperty("id", ctx.dayId())("name", ctx.dayId())("value", ctx.displayDay)("ngClass", i0.ɵɵpureFunction1(18, _c0$X, ctx.isInvalid));
687
687
  i0.ɵɵadvance(3);
688
688
  i0.ɵɵproperty("for", ctx.monthId());
689
689
  i0.ɵɵadvance(2);
690
- i0.ɵɵproperty("id", ctx.monthId())("name", ctx.monthId())("value", ctx.displayMonth)("ngClass", i0.ɵɵpureFunction1(20, _c0$W, ctx.isInvalid));
690
+ i0.ɵɵproperty("id", ctx.monthId())("name", ctx.monthId())("value", ctx.displayMonth)("ngClass", i0.ɵɵpureFunction1(20, _c0$X, ctx.isInvalid));
691
691
  i0.ɵɵadvance(3);
692
692
  i0.ɵɵproperty("for", ctx.yearId());
693
693
  i0.ɵɵadvance(2);
694
- i0.ɵɵproperty("id", ctx.yearId())("name", ctx.yearId())("value", ctx.displayYear)("ngClass", i0.ɵɵpureFunction1(22, _c0$W, ctx.isInvalid));
694
+ i0.ɵɵproperty("id", ctx.yearId())("name", ctx.yearId())("value", ctx.displayYear)("ngClass", i0.ɵɵpureFunction1(22, _c0$X, ctx.isInvalid));
695
695
  i0.ɵɵadvance(2);
696
696
  i0.ɵɵproperty("ngIf", ctx.isDateTime);
697
697
  i0.ɵɵadvance(1);
@@ -761,7 +761,7 @@ function AlertComponent_ng_container_5_Template(rf, ctx) { if (rf & 1) {
761
761
  i0.ɵɵelementEnd();
762
762
  i0.ɵɵelementContainerEnd();
763
763
  } }
764
- const _c0$V = ["*"];
764
+ const _c0$W = ["*"];
765
765
  var AlertMessageType;
766
766
  (function (AlertMessageType) {
767
767
  AlertMessageType["WARNING"] = "warning";
@@ -781,7 +781,7 @@ AlertComponent.TYPE_SUCCESS = 'success';
781
781
  AlertComponent.TYPE_ERROR = 'error';
782
782
  AlertComponent.TYPE_INFORMATION = 'information';
783
783
  AlertComponent.ɵfac = function AlertComponent_Factory(t) { return new (t || AlertComponent)(); };
784
- AlertComponent.ɵcmp = i0.ɵɵdefineComponent({ type: AlertComponent, selectors: [["cut-alert"]], inputs: { type: "type", showIcon: "showIcon" }, ngContentSelectors: _c0$V, decls: 10, vars: 10, consts: [[1, "hmcts-banner"], [3, "ngSwitch"], [4, "ngSwitchCase"], [1, "hmcts-banner__message"], [1, "hmcts-banner__assistive"], ["fill", "currentColor", "role", "presentation", "focusable", "false", "xmlns", "http://www.w3.org/2000/svg", "viewBox", "0 0 25 25", "height", "25", "width", "25", 1, "hmcts-banner__icon"], ["d", "M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z"], ["d", "M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z"], ["d", "M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z"]], template: function AlertComponent_Template(rf, ctx) { if (rf & 1) {
784
+ AlertComponent.ɵcmp = i0.ɵɵdefineComponent({ type: AlertComponent, selectors: [["cut-alert"]], inputs: { type: "type", showIcon: "showIcon" }, ngContentSelectors: _c0$W, decls: 10, vars: 10, consts: [[1, "hmcts-banner"], [3, "ngSwitch"], [4, "ngSwitchCase"], [1, "hmcts-banner__message"], [1, "hmcts-banner__assistive"], ["fill", "currentColor", "role", "presentation", "focusable", "false", "xmlns", "http://www.w3.org/2000/svg", "viewBox", "0 0 25 25", "height", "25", "width", "25", 1, "hmcts-banner__icon"], ["d", "M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z"], ["d", "M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z"], ["d", "M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z"]], template: function AlertComponent_Template(rf, ctx) { if (rf & 1) {
785
785
  i0.ɵɵprojectionDef();
786
786
  i0.ɵɵelementStart(0, "div", 0);
787
787
  i0.ɵɵelementContainerStart(1, 1);
@@ -1012,7 +1012,7 @@ NotificationBannerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: NotificationB
1012
1012
  type: Output
1013
1013
  }] }); })();
1014
1014
 
1015
- const _c0$U = function (a0) { return { "js-hidden": a0 }; };
1015
+ const _c0$V = function (a0) { return { "js-hidden": a0 }; };
1016
1016
  const _c1$o = ["*"];
1017
1017
  class TabComponent {
1018
1018
  }
@@ -1023,7 +1023,7 @@ TabComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TabComponent, selectors: [["
1023
1023
  i0.ɵɵprojection(1);
1024
1024
  i0.ɵɵelementEnd();
1025
1025
  } if (rf & 2) {
1026
- i0.ɵɵproperty("id", ctx.id)("ngClass", i0.ɵɵpureFunction1(3, _c0$U, !ctx.selected));
1026
+ i0.ɵɵproperty("id", ctx.id)("ngClass", i0.ɵɵpureFunction1(3, _c0$V, !ctx.selected));
1027
1027
  i0.ɵɵattribute("aria-hidden", !ctx.selected);
1028
1028
  } }, directives: [i1.NgClass], styles: [".tabs-toggle[_ngcontent-%COMP%]{display:block;padding:10px 15px 3px;margin-bottom:8px}.tabs-toggle[aria-selected=true][_ngcontent-%COMP%]{color:#0b0c0c;text-decoration:none;border-bottom:none}.tabs-toggle[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#005ea5}@media (max-width:640px){.tabs-list[_ngcontent-%COMP%]{border-bottom:1px solid #bfc1c3;margin-left:-15px;margin-right:-15px}.tabs-toggle[_ngcontent-%COMP%]{border-top:1px solid #bfc1c3}.tabs-toggle[_ngcontent-%COMP%]:focus{color:#0b0c0c;outline:none}}@media (min-width:641px){.tabs-panel[_ngcontent-%COMP%]{border-top:1px solid #bfc1c3;clear:both;overflow:hidden}.tabs-list[_ngcontent-%COMP%]{float:left}.tabs-list-item[_ngcontent-%COMP%]{float:left;position:relative;bottom:-1px;padding-top:10px}.tabs-toggle[_ngcontent-%COMP%]{background-color:#dee0e2;border:1px solid transparent;float:left;margin:0 6px 0 0;text-decoration:none}.tabs-toggle[_ngcontent-%COMP%]:visited{color:#005ea5}.tabs-toggle-selected[_ngcontent-%COMP%], .tabs-toggle[aria-selected=true][_ngcontent-%COMP%]{background-color:#fff;border-bottom:0;border-color:#bfc1c3;padding-bottom:11px;margin-bottom:0;color:#0b0c0c}}"] });
1029
1029
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TabComponent, [{
@@ -1043,7 +1043,7 @@ TabComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TabComponent, selectors: [["
1043
1043
  type: Input
1044
1044
  }] }); })();
1045
1045
 
1046
- const _c0$T = ["tab"];
1046
+ const _c0$U = ["tab"];
1047
1047
  const _c1$n = function () { return ["."]; };
1048
1048
  const _c2$3 = function (a0) { return { "tabs-toggle-selected": a0 }; };
1049
1049
  function TabsComponent_li_2_Template(rf, ctx) { if (rf & 1) {
@@ -1088,7 +1088,7 @@ TabsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TabsComponent, selectors: [
1088
1088
  let _t;
1089
1089
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panels = _t);
1090
1090
  } }, viewQuery: function TabsComponent_Query(rf, ctx) { if (rf & 1) {
1091
- i0.ɵɵviewQuery(_c0$T, 1);
1091
+ i0.ɵɵviewQuery(_c0$U, 1);
1092
1092
  } if (rf & 2) {
1093
1093
  let _t;
1094
1094
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabs = _t);
@@ -1153,7 +1153,7 @@ TabsModule.ɵinj = i0.ɵɵdefineInjector({ imports: [[
1153
1153
  }]
1154
1154
  }], null, null); })();
1155
1155
 
1156
- const _c0$S = function (a0, a1) { return { caseLocked: a0, someoneViewing: a1 }; };
1156
+ const _c0$T = function (a0, a1) { return { caseLocked: a0, someoneViewing: a1 }; };
1157
1157
  class ActivityBannerComponent {
1158
1158
  constructor() { }
1159
1159
  ngOnInit() {
@@ -1170,7 +1170,7 @@ ActivityBannerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ActivityBannerCom
1170
1170
  i0.ɵɵelementEnd();
1171
1171
  i0.ɵɵelementEnd();
1172
1172
  } if (rf & 2) {
1173
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c0$S, ctx.bannerType === "editor", ctx.bannerType === "viewer"));
1173
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c0$T, ctx.bannerType === "editor", ctx.bannerType === "viewer"));
1174
1174
  i0.ɵɵadvance(2);
1175
1175
  i0.ɵɵpropertyInterpolate("alt", ctx.description);
1176
1176
  i0.ɵɵpropertyInterpolate("src", ctx.imageLink, i0.ɵɵsanitizeUrl);
@@ -2821,9 +2821,12 @@ class CaseField {
2821
2821
  this._list_items = [];
2822
2822
  }
2823
2823
  get value() {
2824
- if (this.isDynamic()) {
2824
+ if (this.field_type && (this.field_type.type === 'DynamicList' || this.field_type.type === 'DynamicRadioList')) {
2825
2825
  return this._value && this._value.value ? this._value.value.code : this._value;
2826
2826
  }
2827
+ else if (this.field_type && this.field_type.type === 'DynamicMultiSelectList') {
2828
+ return this._value && this._value.value ? this._value.value : this._value;
2829
+ }
2827
2830
  else {
2828
2831
  return this._value;
2829
2832
  }
@@ -2897,7 +2900,7 @@ class CaseField {
2897
2900
  return this.field_type && this.field_type.type === 'Complex';
2898
2901
  }
2899
2902
  isDynamic() {
2900
- const dynamicFieldTypes = ['DynamicList', 'DynamicRadioList'];
2903
+ const dynamicFieldTypes = ['DynamicList', 'DynamicRadioList', 'DynamicMultiSelectList'];
2901
2904
  if (!this.field_type) {
2902
2905
  return false;
2903
2906
  }
@@ -4968,6 +4971,9 @@ class FieldTypeSanitiser {
4968
4971
  }
4969
4972
  caseFields.forEach(caseField => {
4970
4973
  switch (caseField.field_type.type) {
4974
+ case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_MULTISELECT_LIST:
4975
+ this.convertArrayToDynamicListOutput(caseField, data);
4976
+ break;
4971
4977
  case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_RADIO_LIST:
4972
4978
  case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_LIST:
4973
4979
  this.convertStringToDynamicListOutput(caseField, data);
@@ -4985,6 +4991,17 @@ class FieldTypeSanitiser {
4985
4991
  }
4986
4992
  });
4987
4993
  }
4994
+ convertArrayToDynamicListOutput(field, data) {
4995
+ const values = data[field.id];
4996
+ if (Array.isArray(values)) {
4997
+ const listItems = this.getListItems(field);
4998
+ const matches = listItems.filter(item => values.map(v => v.code).indexOf(item.code) !== -1);
4999
+ data[field.id] = {
5000
+ value: matches,
5001
+ list_items: listItems
5002
+ };
5003
+ }
5004
+ }
4988
5005
  convertStringToDynamicListOutput(field, data) {
4989
5006
  const stringValue = data[field.id];
4990
5007
  if (typeof stringValue === 'string') {
@@ -5014,6 +5031,7 @@ FieldTypeSanitiser.FIELD_TYPE_COMPLEX = 'Complex';
5014
5031
  FieldTypeSanitiser.FIELD_TYPE_COLLECTION = 'Collection';
5015
5032
  FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_LIST = 'DynamicList';
5016
5033
  FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_RADIO_LIST = 'DynamicRadioList';
5034
+ FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_MULTISELECT_LIST = 'DynamicMultiSelectList';
5017
5035
  FieldTypeSanitiser.ɵfac = function FieldTypeSanitiser_Factory(t) { return new (t || FieldTypeSanitiser)(); };
5018
5036
  FieldTypeSanitiser.ɵprov = i0.ɵɵdefineInjectable({ token: FieldTypeSanitiser, factory: FieldTypeSanitiser.ɵfac });
5019
5037
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldTypeSanitiser, [{
@@ -7192,215 +7210,13 @@ WizardPageFieldToCaseFieldMapper.ɵprov = i0.ɵɵdefineInjectable({ token: Wizar
7192
7210
  }]
7193
7211
  }], null, null); })();
7194
7212
 
7195
- const MULTIPLE_TASKS_FOUND = 'More than one task found!';
7196
- class WorkAllocationService {
7197
- constructor(http, appConfig, errorService, alertService, sessionStorageService) {
7198
- this.http = http;
7199
- this.appConfig = appConfig;
7200
- this.errorService = errorService;
7201
- this.alertService = alertService;
7202
- this.sessionStorageService = sessionStorageService;
7203
- // Check to see if work allocation is enabled
7204
- }
7205
- /**
7206
- * Call the API to get tasks matching the search criteria.
7207
- * @param searchRequest The search parameters that specify which tasks to match.
7208
- */
7209
- searchTasks(searchRequest) {
7210
- // Do not need to check if WA enabled as parent method will do that
7211
- const url = `${this.appConfig.getWorkAllocationApiUrl()}/searchForCompletable`;
7212
- return this.http
7213
- .post(url, { searchRequest }, null, false)
7214
- .pipe(map(response => response), catchError(error => {
7215
- this.errorService.setError(error);
7216
- // explicitly eat away 401 error and 400 error
7217
- if (error && error.status && (error.status === 401 || error.status === 400)) {
7218
- // do nothing
7219
- console.log('error status 401 or 400', error);
7220
- }
7221
- else {
7222
- return throwError(error);
7223
- }
7224
- }));
7225
- }
7226
- isWAEnabled(jurisdiction, caseType) {
7227
- this.features = this.appConfig.getWAServiceConfig();
7228
- let enabled = false;
7229
- if (!jurisdiction || !caseType) {
7230
- const caseInfo = JSON.parse(this.sessionStorageService.getItem('caseInfo'));
7231
- jurisdiction = caseInfo.jurisdiction;
7232
- caseType = caseInfo.caseType;
7233
- }
7234
- if (!this.features || !this.features.configurations) {
7235
- return false;
7236
- }
7237
- this.features.configurations.forEach(serviceConfig => {
7238
- if (serviceConfig.serviceName === jurisdiction && (serviceConfig.caseTypes.indexOf(caseType) !== -1)) {
7239
- enabled = true;
7240
- }
7241
- });
7242
- return enabled;
7243
- }
7244
- /**
7245
- * Call the API to assign a task.
7246
- * @param taskId specifies which task should be assigned.
7247
- * @param userId specifies the user the task should be assigned to.
7248
- */
7249
- assignTask(taskId, userId) {
7250
- if (!this.isWAEnabled()) {
7251
- return of(null);
7252
- }
7253
- const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/assign`;
7254
- return this.http
7255
- .post(url, { userId })
7256
- .pipe(catchError(error => {
7257
- this.errorService.setError(error);
7258
- return throwError(error);
7259
- }));
7260
- }
7261
- /**
7262
- * Call the API to complete a task.
7263
- * @param taskId specifies which task should be completed.
7264
- */
7265
- completeTask(taskId) {
7266
- if (!this.isWAEnabled()) {
7267
- return of(null);
7268
- }
7269
- const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;
7270
- return this.http
7271
- .post(url, {})
7272
- .pipe(catchError(error => {
7273
- this.errorService.setError(error);
7274
- // this will subscribe to get the user details and decide whether to display an error message
7275
- this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
7276
- this.handleTaskCompletionError(response);
7277
- });
7278
- return throwError(error);
7279
- }));
7280
- }
7281
- /**
7282
- * Call the API to assign and complete a task.
7283
- * @param taskId specifies which task should be completed.
7284
- */
7285
- assignAndCompleteTask(taskId) {
7286
- if (!this.isWAEnabled()) {
7287
- return of(null);
7288
- }
7289
- const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;
7290
- return this.http
7291
- .post(url, {
7292
- completion_options: {
7293
- assign_and_complete: true
7294
- }
7295
- })
7296
- .pipe(catchError(error => {
7297
- this.errorService.setError(error);
7298
- // this will subscribe to get the user details and decide whether to display an error message
7299
- this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
7300
- this.handleTaskCompletionError(response);
7301
- });
7302
- return throwError(error);
7303
- }));
7304
- }
7305
- /**
7306
- * Handles the response from the observable to get the user details when task is completed.
7307
- * @param response is the response given from the observable which contains the user detaild.
7308
- */
7309
- handleTaskCompletionError(response) {
7310
- const userDetails = response;
7311
- if (this.userIsCaseworker(userDetails.userInfo.roles)) {
7312
- // when submitting the completion of task if not yet rendered cases/case confirm then preserve the alert for re-rendering
7313
- this.alertService.setPreserveAlerts(true, ['cases/case', 'submit']);
7314
- this.alertService.warning('A task could not be completed successfully. Please complete the task associated with the case manually.');
7315
- }
7316
- }
7317
- /**
7318
- * Returns true if the user's role is equivalent to a caseworker.
7319
- * @param roles is the list of roles found from the current user.
7320
- */
7321
- userIsCaseworker(roles) {
7322
- const lowerCaseRoles = roles.map(role => role.toLowerCase());
7323
- // When/if lib & target permanently change to es2016, replace indexOf with includes
7324
- return (lowerCaseRoles.indexOf(WorkAllocationService.iACCaseOfficer) !== -1)
7325
- || (lowerCaseRoles.indexOf(WorkAllocationService.iACAdmOfficer) !== -1);
7326
- }
7327
- /**
7328
- * Look for open tasks for a case and event combination. There are 5 possible scenarios:
7329
- * 1. No tasks found => Success.
7330
- * 2. One task found => Mark as done => Success.
7331
- * 3. One task found => Mark as done throws error => Failure.
7332
- * 4. More than one task found => Failure.
7333
- * 5. Search call throws an error => Failure.
7334
- * @param ccdId The ID of the case to find tasks for.
7335
- * @param eventId The ID of the event to find tasks for.
7336
- */
7337
- completeAppropriateTask(ccdId, eventId, jurisdiction, caseTypeId) {
7338
- if (!this.isWAEnabled(jurisdiction, caseTypeId)) {
7339
- return of(null);
7340
- }
7341
- const taskSearchParameter = {
7342
- ccdId,
7343
- eventId,
7344
- jurisdiction,
7345
- caseTypeId
7346
- };
7347
- return this.searchTasks(taskSearchParameter)
7348
- .pipe(map((response) => {
7349
- const tasks = response.tasks;
7350
- if (tasks && tasks.length > 0) {
7351
- if (tasks.length === 1) {
7352
- this.completeTask(tasks[0].id).subscribe();
7353
- }
7354
- else {
7355
- // This is a problem. Throw an appropriate error.
7356
- throw new Error(MULTIPLE_TASKS_FOUND);
7357
- }
7358
- }
7359
- return true; // All good. Nothing to see here.
7360
- }), catchError(error => {
7361
- // Simply rethrow it.
7362
- return throwError(error);
7363
- }));
7364
- }
7365
- /**
7366
- * Return tasks for case and event.
7367
- */
7368
- getTasksByCaseIdAndEventId(eventId, caseId, caseType, jurisdiction) {
7369
- const defaultPayload = {
7370
- task_required_for_event: false,
7371
- tasks: []
7372
- };
7373
- if (!this.isWAEnabled()) {
7374
- return of(defaultPayload);
7375
- }
7376
- return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/case/tasks/${caseId}/event/${eventId}/caseType/${caseType}/jurisdiction/${jurisdiction}`);
7377
- }
7378
- /**
7379
- * Call the API to get a task
7380
- */
7381
- getTask(taskId) {
7382
- if (!this.isWAEnabled()) {
7383
- return of({ task: null });
7384
- }
7385
- return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}`);
7386
- }
7387
- }
7388
- WorkAllocationService.iACCaseOfficer = 'caseworker-ia-caseofficer';
7389
- WorkAllocationService.iACAdmOfficer = 'caseworker-ia-admofficer';
7390
- WorkAllocationService.ɵfac = function WorkAllocationService_Factory(t) { return new (t || WorkAllocationService)(i0.ɵɵinject(HttpService), i0.ɵɵinject(AbstractAppConfig), i0.ɵɵinject(HttpErrorService), i0.ɵɵinject(AlertService), i0.ɵɵinject(SessionStorageService)); };
7391
- WorkAllocationService.ɵprov = i0.ɵɵdefineInjectable({ token: WorkAllocationService, factory: WorkAllocationService.ɵfac });
7392
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkAllocationService, [{
7393
- type: Injectable
7394
- }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: HttpErrorService }, { type: AlertService }, { type: SessionStorageService }]; }, null); })();
7395
-
7396
7213
  class CasesService {
7397
- constructor(http, appConfig, orderService, errorService, wizardPageFieldToCaseFieldMapper, workAllocationService, loadingService, sessionStorageService) {
7214
+ constructor(http, appConfig, orderService, errorService, wizardPageFieldToCaseFieldMapper, loadingService, sessionStorageService) {
7398
7215
  this.http = http;
7399
7216
  this.appConfig = appConfig;
7400
7217
  this.orderService = orderService;
7401
7218
  this.errorService = errorService;
7402
7219
  this.wizardPageFieldToCaseFieldMapper = wizardPageFieldToCaseFieldMapper;
7403
- this.workAllocationService = workAllocationService;
7404
7220
  this.loadingService = loadingService;
7405
7221
  this.sessionStorageService = sessionStorageService;
7406
7222
  this.get = this.getCaseView;
@@ -7626,11 +7442,11 @@ CasesService.V2_MEDIATYPE_CASE_DATA_VALIDATE = 'application/vnd.uk.gov.hmcts.ccd
7626
7442
  CasesService.V2_MEDIATYPE_CREATE_EVENT = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-event.v2+json;charset=UTF-8';
7627
7443
  CasesService.V2_MEDIATYPE_CREATE_CASE = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-case.v2+json;charset=UTF-8';
7628
7444
  CasesService.PUI_CASE_MANAGER = 'pui-case-manager';
7629
- CasesService.ɵfac = function CasesService_Factory(t) { return new (t || CasesService)(i0.ɵɵinject(HttpService), i0.ɵɵinject(AbstractAppConfig), i0.ɵɵinject(OrderService), i0.ɵɵinject(HttpErrorService), i0.ɵɵinject(WizardPageFieldToCaseFieldMapper), i0.ɵɵinject(WorkAllocationService), i0.ɵɵinject(LoadingService), i0.ɵɵinject(SessionStorageService)); };
7445
+ CasesService.ɵfac = function CasesService_Factory(t) { return new (t || CasesService)(i0.ɵɵinject(HttpService), i0.ɵɵinject(AbstractAppConfig), i0.ɵɵinject(OrderService), i0.ɵɵinject(HttpErrorService), i0.ɵɵinject(WizardPageFieldToCaseFieldMapper), i0.ɵɵinject(LoadingService), i0.ɵɵinject(SessionStorageService)); };
7630
7446
  CasesService.ɵprov = i0.ɵɵdefineInjectable({ token: CasesService, factory: CasesService.ɵfac });
7631
7447
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CasesService, [{
7632
7448
  type: Injectable
7633
- }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: OrderService }, { type: HttpErrorService }, { type: WizardPageFieldToCaseFieldMapper }, { type: WorkAllocationService }, { type: LoadingService }, { type: SessionStorageService }]; }, null); })();
7449
+ }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: OrderService }, { type: HttpErrorService }, { type: WizardPageFieldToCaseFieldMapper }, { type: LoadingService }, { type: SessionStorageService }]; }, null); })();
7634
7450
 
7635
7451
  class EventTriggerService {
7636
7452
  constructor() {
@@ -8209,29 +8025,230 @@ class PageValidationService {
8209
8025
  }
8210
8026
  return !condition.match(formFields.data, path);
8211
8027
  }
8212
- checkDocumentField(caseField, theControl) {
8213
- if (caseField.field_type.id !== 'Document') {
8214
- return true;
8028
+ checkDocumentField(caseField, theControl) {
8029
+ if (caseField.field_type.id !== 'Document') {
8030
+ return true;
8031
+ }
8032
+ return !(this.checkMandatoryField(caseField, theControl));
8033
+ }
8034
+ checkOptionalField(caseField, theControl) {
8035
+ if (!theControl) {
8036
+ return this.caseFieldService.isOptional(caseField);
8037
+ }
8038
+ else {
8039
+ return theControl.valid || theControl.disabled;
8040
+ }
8041
+ }
8042
+ checkMandatoryField(caseField, theControl) {
8043
+ return this.caseFieldService.isMandatory(caseField) && theControl === null;
8044
+ }
8045
+ }
8046
+ PageValidationService.ɵfac = function PageValidationService_Factory(t) { return new (t || PageValidationService)(i0.ɵɵinject(CaseFieldService)); };
8047
+ PageValidationService.ɵprov = i0.ɵɵdefineInjectable({ token: PageValidationService, factory: PageValidationService.ɵfac });
8048
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageValidationService, [{
8049
+ type: Injectable
8050
+ }], function () { return [{ type: CaseFieldService }]; }, null); })();
8051
+
8052
+ const MULTIPLE_TASKS_FOUND = 'More than one task found!';
8053
+ class WorkAllocationService {
8054
+ constructor(http, appConfig, errorService, alertService, sessionStorageService) {
8055
+ this.http = http;
8056
+ this.appConfig = appConfig;
8057
+ this.errorService = errorService;
8058
+ this.alertService = alertService;
8059
+ this.sessionStorageService = sessionStorageService;
8060
+ // Check to see if work allocation is enabled
8061
+ }
8062
+ /**
8063
+ * Call the API to get tasks matching the search criteria.
8064
+ * @param searchRequest The search parameters that specify which tasks to match.
8065
+ */
8066
+ searchTasks(searchRequest) {
8067
+ // Do not need to check if WA enabled as parent method will do that
8068
+ const url = `${this.appConfig.getWorkAllocationApiUrl()}/searchForCompletable`;
8069
+ return this.http
8070
+ .post(url, { searchRequest }, null, false)
8071
+ .pipe(map(response => response), catchError(error => {
8072
+ this.errorService.setError(error);
8073
+ // explicitly eat away 401 error and 400 error
8074
+ if (error && error.status && (error.status === 401 || error.status === 400)) {
8075
+ // do nothing
8076
+ console.log('error status 401 or 400', error);
8077
+ }
8078
+ else {
8079
+ return throwError(error);
8080
+ }
8081
+ }));
8082
+ }
8083
+ isWAEnabled(jurisdiction, caseType) {
8084
+ this.features = this.appConfig.getWAServiceConfig();
8085
+ let enabled = false;
8086
+ if (!jurisdiction || !caseType) {
8087
+ const caseInfo = JSON.parse(this.sessionStorageService.getItem('caseInfo'));
8088
+ jurisdiction = caseInfo.jurisdiction;
8089
+ caseType = caseInfo.caseType;
8090
+ }
8091
+ if (!this.features || !this.features.configurations) {
8092
+ return false;
8093
+ }
8094
+ this.features.configurations.forEach(serviceConfig => {
8095
+ if (serviceConfig.serviceName === jurisdiction && (serviceConfig.caseTypes.indexOf(caseType) !== -1)) {
8096
+ enabled = true;
8097
+ }
8098
+ });
8099
+ return enabled;
8100
+ }
8101
+ /**
8102
+ * Call the API to assign a task.
8103
+ * @param taskId specifies which task should be assigned.
8104
+ * @param userId specifies the user the task should be assigned to.
8105
+ */
8106
+ assignTask(taskId, userId) {
8107
+ if (!this.isWAEnabled()) {
8108
+ return of(null);
8109
+ }
8110
+ const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/assign`;
8111
+ return this.http
8112
+ .post(url, { userId })
8113
+ .pipe(catchError(error => {
8114
+ this.errorService.setError(error);
8115
+ return throwError(error);
8116
+ }));
8117
+ }
8118
+ /**
8119
+ * Call the API to complete a task.
8120
+ * @param taskId specifies which task should be completed.
8121
+ */
8122
+ completeTask(taskId) {
8123
+ if (!this.isWAEnabled()) {
8124
+ return of(null);
8125
+ }
8126
+ const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;
8127
+ return this.http
8128
+ .post(url, {})
8129
+ .pipe(catchError(error => {
8130
+ this.errorService.setError(error);
8131
+ // this will subscribe to get the user details and decide whether to display an error message
8132
+ this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
8133
+ this.handleTaskCompletionError(response);
8134
+ });
8135
+ return throwError(error);
8136
+ }));
8137
+ }
8138
+ /**
8139
+ * Call the API to assign and complete a task.
8140
+ * @param taskId specifies which task should be completed.
8141
+ */
8142
+ assignAndCompleteTask(taskId) {
8143
+ if (!this.isWAEnabled()) {
8144
+ return of(null);
8145
+ }
8146
+ const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;
8147
+ return this.http
8148
+ .post(url, {
8149
+ completion_options: {
8150
+ assign_and_complete: true
8151
+ }
8152
+ })
8153
+ .pipe(catchError(error => {
8154
+ this.errorService.setError(error);
8155
+ // this will subscribe to get the user details and decide whether to display an error message
8156
+ this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
8157
+ this.handleTaskCompletionError(response);
8158
+ });
8159
+ return throwError(error);
8160
+ }));
8161
+ }
8162
+ /**
8163
+ * Handles the response from the observable to get the user details when task is completed.
8164
+ * @param response is the response given from the observable which contains the user detaild.
8165
+ */
8166
+ handleTaskCompletionError(response) {
8167
+ const userDetails = response;
8168
+ if (this.userIsCaseworker(userDetails.userInfo.roles)) {
8169
+ // when submitting the completion of task if not yet rendered cases/case confirm then preserve the alert for re-rendering
8170
+ this.alertService.setPreserveAlerts(true, ['cases/case', 'submit']);
8171
+ this.alertService.warning('A task could not be completed successfully. Please complete the task associated with the case manually.');
8172
+ }
8173
+ }
8174
+ /**
8175
+ * Returns true if the user's role is equivalent to a caseworker.
8176
+ * @param roles is the list of roles found from the current user.
8177
+ */
8178
+ userIsCaseworker(roles) {
8179
+ const lowerCaseRoles = roles.map(role => role.toLowerCase());
8180
+ // When/if lib & target permanently change to es2016, replace indexOf with includes
8181
+ return (lowerCaseRoles.indexOf(WorkAllocationService.iACCaseOfficer) !== -1)
8182
+ || (lowerCaseRoles.indexOf(WorkAllocationService.iACAdmOfficer) !== -1);
8183
+ }
8184
+ /**
8185
+ * Look for open tasks for a case and event combination. There are 5 possible scenarios:
8186
+ * 1. No tasks found => Success.
8187
+ * 2. One task found => Mark as done => Success.
8188
+ * 3. One task found => Mark as done throws error => Failure.
8189
+ * 4. More than one task found => Failure.
8190
+ * 5. Search call throws an error => Failure.
8191
+ * @param ccdId The ID of the case to find tasks for.
8192
+ * @param eventId The ID of the event to find tasks for.
8193
+ */
8194
+ completeAppropriateTask(ccdId, eventId, jurisdiction, caseTypeId) {
8195
+ if (!this.isWAEnabled(jurisdiction, caseTypeId)) {
8196
+ return of(null);
8197
+ }
8198
+ const taskSearchParameter = {
8199
+ ccdId,
8200
+ eventId,
8201
+ jurisdiction,
8202
+ caseTypeId
8203
+ };
8204
+ return this.searchTasks(taskSearchParameter)
8205
+ .pipe(map((response) => {
8206
+ const tasks = response.tasks;
8207
+ if (tasks && tasks.length > 0) {
8208
+ if (tasks.length === 1) {
8209
+ this.completeTask(tasks[0].id).subscribe();
8210
+ }
8211
+ else {
8212
+ // This is a problem. Throw an appropriate error.
8213
+ throw new Error(MULTIPLE_TASKS_FOUND);
8214
+ }
8215
+ }
8216
+ return true; // All good. Nothing to see here.
8217
+ }), catchError(error => {
8218
+ // Simply rethrow it.
8219
+ return throwError(error);
8220
+ }));
8221
+ }
8222
+ /**
8223
+ * Return tasks for case and event.
8224
+ */
8225
+ getTasksByCaseIdAndEventId(eventId, caseId, caseType, jurisdiction) {
8226
+ const defaultPayload = {
8227
+ task_required_for_event: false,
8228
+ tasks: []
8229
+ };
8230
+ if (!this.isWAEnabled()) {
8231
+ return of(defaultPayload);
8215
8232
  }
8216
- return !(this.checkMandatoryField(caseField, theControl));
8233
+ return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/case/tasks/${caseId}/event/${eventId}/caseType/${caseType}/jurisdiction/${jurisdiction}`);
8217
8234
  }
8218
- checkOptionalField(caseField, theControl) {
8219
- if (!theControl) {
8220
- return this.caseFieldService.isOptional(caseField);
8221
- }
8222
- else {
8223
- return theControl.valid || theControl.disabled;
8235
+ /**
8236
+ * Call the API to get a task
8237
+ */
8238
+ getTask(taskId) {
8239
+ if (!this.isWAEnabled()) {
8240
+ return of({ task: null });
8224
8241
  }
8225
- }
8226
- checkMandatoryField(caseField, theControl) {
8227
- return this.caseFieldService.isMandatory(caseField) && theControl === null;
8242
+ return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}`);
8228
8243
  }
8229
8244
  }
8230
- PageValidationService.ɵfac = function PageValidationService_Factory(t) { return new (t || PageValidationService)(i0.ɵɵinject(CaseFieldService)); };
8231
- PageValidationService.ɵprov = i0.ɵɵdefineInjectable({ token: PageValidationService, factory: PageValidationService.ɵfac });
8232
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageValidationService, [{
8245
+ WorkAllocationService.iACCaseOfficer = 'caseworker-ia-caseofficer';
8246
+ WorkAllocationService.iACAdmOfficer = 'caseworker-ia-admofficer';
8247
+ WorkAllocationService.ɵfac = function WorkAllocationService_Factory(t) { return new (t || WorkAllocationService)(i0.ɵɵinject(HttpService), i0.ɵɵinject(AbstractAppConfig), i0.ɵɵinject(HttpErrorService), i0.ɵɵinject(AlertService), i0.ɵɵinject(SessionStorageService)); };
8248
+ WorkAllocationService.ɵprov = i0.ɵɵdefineInjectable({ token: WorkAllocationService, factory: WorkAllocationService.ɵfac });
8249
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkAllocationService, [{
8233
8250
  type: Injectable
8234
- }], function () { return [{ type: CaseFieldService }]; }, null); })();
8251
+ }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: HttpErrorService }, { type: AlertService }, { type: SessionStorageService }]; }, null); })();
8235
8252
 
8236
8253
  class CaseEditComponent {
8237
8254
  constructor(fb, router, route, fieldsUtils, fieldsPurger, registrarService, wizardFactory, sessionStorageService, windowsService) {
@@ -9830,7 +9847,7 @@ WriteComplexFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteComplexFi
9830
9847
  type: Input
9831
9848
  }] }); })();
9832
9849
 
9833
- const _c0$R = ["writeComplexFieldComponent"];
9850
+ const _c0$S = ["writeComplexFieldComponent"];
9834
9851
  function WriteAddressFieldComponent_div_1_div_4_span_4_Template(rf, ctx) { if (rf & 1) {
9835
9852
  i0.ɵɵelementStart(0, "span", 14);
9836
9853
  i0.ɵɵtext(1, "Enter the Postcode");
@@ -10023,7 +10040,7 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
10023
10040
  }
10024
10041
  WriteAddressFieldComponent.ɵfac = function WriteAddressFieldComponent_Factory(t) { return new (t || WriteAddressFieldComponent)(i0.ɵɵdirectiveInject(AddressesService), i0.ɵɵdirectiveInject(IsCompoundPipe)); };
10025
10042
  WriteAddressFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteAddressFieldComponent, selectors: [["ccd-write-address-field"]], viewQuery: function WriteAddressFieldComponent_Query(rf, ctx) { if (rf & 1) {
10026
- i0.ɵɵviewQuery(_c0$R, 1);
10043
+ i0.ɵɵviewQuery(_c0$S, 1);
10027
10044
  i0.ɵɵviewQuery(FocusElementDirective, 1);
10028
10045
  } if (rf & 2) {
10029
10046
  let _t;
@@ -10149,12 +10166,13 @@ function CaseFileViewFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10149
10166
  i0.ɵɵproperty("ngIf", ctx_r1.currentDocument);
10150
10167
  } }
10151
10168
  class CaseFileViewFieldComponent {
10152
- constructor(elementRef, route, caseFileViewService, documentManagementService, loadingService) {
10169
+ constructor(elementRef, route, caseFileViewService, documentManagementService, loadingService, sessionStorageService) {
10153
10170
  this.elementRef = elementRef;
10154
10171
  this.route = route;
10155
10172
  this.caseFileViewService = caseFileViewService;
10156
10173
  this.documentManagementService = documentManagementService;
10157
10174
  this.loadingService = loadingService;
10175
+ this.sessionStorageService = sessionStorageService;
10158
10176
  this.allowMoving = true;
10159
10177
  this.getCategoriesAndDocumentsError = false;
10160
10178
  }
@@ -10167,6 +10185,12 @@ class CaseFileViewFieldComponent {
10167
10185
  },
10168
10186
  error: _ => this.getCategoriesAndDocumentsError = true
10169
10187
  });
10188
+ // EXUI-8000
10189
+ const userInfo = JSON.parse(this.sessionStorageService.getItem('userDetails'));
10190
+ // Get acls that intersects from acl roles and user roles
10191
+ const acls = this.caseField.acls.filter(acl => userInfo.roles.includes(acl.role));
10192
+ // As there can be more than one intersecting role, if any acls are update: true
10193
+ this.allowMoving = acls.some(acl => acl.update);
10170
10194
  }
10171
10195
  ngAfterViewInit() {
10172
10196
  const slider = this.elementRef.nativeElement.querySelector('.slider');
@@ -10212,7 +10236,7 @@ class CaseFileViewFieldComponent {
10212
10236
  }
10213
10237
  }
10214
10238
  CaseFileViewFieldComponent.PARAM_CASE_ID = 'cid';
10215
- CaseFileViewFieldComponent.ɵfac = function CaseFileViewFieldComponent_Factory(t) { return new (t || CaseFileViewFieldComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseFileViewService), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(LoadingService)); };
10239
+ CaseFileViewFieldComponent.ɵfac = function CaseFileViewFieldComponent_Factory(t) { return new (t || CaseFileViewFieldComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseFileViewService), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(SessionStorageService)); };
10216
10240
  CaseFileViewFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewFieldComponent, selectors: [["ccd-case-file-view-field"]], decls: 2, vars: 2, consts: [["class", "govuk-grid-column-two-thirds", 4, "ngIf"], [4, "ngIf"], [1, "govuk-grid-column-two-thirds"], [1, "govuk-heading-xl"], [1, "govuk-body"], [1, "govuk-heading-l"], ["id", "case-file-view", 1, "govuk-form-group"], [1, "document-tree-container"], [1, "document-tree-container__tree", 3, "categoriesAndDocuments", "allowMoving", "clickedDocument", "moveDocument"], [1, "slider"], [1, "media-viewer-container"], [3, "url", "downloadFileName", "showToolbar", "contentType", "enableAnnotations", "enableRedactions", "height"]], template: function CaseFileViewFieldComponent_Template(rf, ctx) { if (rf & 1) {
10217
10241
  i0.ɵɵtemplate(0, CaseFileViewFieldComponent_div_0_Template, 5, 0, "div", 0);
10218
10242
  i0.ɵɵtemplate(1, CaseFileViewFieldComponent_div_1_Template, 9, 3, "div", 1);
@@ -10228,76 +10252,7 @@ CaseFileViewFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewFi
10228
10252
  templateUrl: './case-file-view-field.component.html',
10229
10253
  styleUrls: ['./case-file-view-field.component.scss'],
10230
10254
  }]
10231
- }], function () { return [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }]; }, null); })();
10232
-
10233
- function CaseFileViewFieldReadComponent_div_0_Template(rf, ctx) { if (rf & 1) {
10234
- i0.ɵɵelementStart(0, "div", 2);
10235
- i0.ɵɵelementStart(1, "h1", 3);
10236
- i0.ɵɵtext(2, "Sorry, there is a problem with the service");
10237
- i0.ɵɵelementEnd();
10238
- i0.ɵɵelementStart(3, "p", 4);
10239
- i0.ɵɵtext(4, "Try again later.");
10240
- i0.ɵɵelementEnd();
10241
- i0.ɵɵelementEnd();
10242
- } }
10243
- function CaseFileViewFieldReadComponent_div_1_ng_container_8_Template(rf, ctx) { if (rf & 1) {
10244
- i0.ɵɵelementContainerStart(0);
10245
- i0.ɵɵelement(1, "mv-media-viewer", 11);
10246
- i0.ɵɵelementContainerEnd();
10247
- } if (rf & 2) {
10248
- const ctx_r2 = i0.ɵɵnextContext(2);
10249
- i0.ɵɵadvance(1);
10250
- i0.ɵɵproperty("url", ctx_r2.currentDocument.document_binary_url)("downloadFileName", ctx_r2.currentDocument.document_filename)("showToolbar", true)("contentType", ctx_r2.currentDocument.content_type)("enableAnnotations", true)("enableRedactions", true)("height", "94.5vh");
10251
- } }
10252
- function CaseFileViewFieldReadComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10253
- const _r4 = i0.ɵɵgetCurrentView();
10254
- i0.ɵɵelementStart(0, "div");
10255
- i0.ɵɵelementStart(1, "h2", 5);
10256
- i0.ɵɵtext(2, "Case file");
10257
- i0.ɵɵelementEnd();
10258
- i0.ɵɵelementStart(3, "div", 6);
10259
- i0.ɵɵelementStart(4, "div", 7);
10260
- i0.ɵɵelementStart(5, "ccd-case-file-view-folder", 8);
10261
- i0.ɵɵlistener("clickedDocument", function CaseFileViewFieldReadComponent_div_1_Template_ccd_case_file_view_folder_clickedDocument_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.setMediaViewerFile($event); })("moveDocument", function CaseFileViewFieldReadComponent_div_1_Template_ccd_case_file_view_folder_moveDocument_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.moveDocument($event); });
10262
- i0.ɵɵelementEnd();
10263
- i0.ɵɵelementEnd();
10264
- i0.ɵɵelement(6, "div", 9);
10265
- i0.ɵɵelementStart(7, "div", 10);
10266
- i0.ɵɵtemplate(8, CaseFileViewFieldReadComponent_div_1_ng_container_8_Template, 2, 7, "ng-container", 1);
10267
- i0.ɵɵelementEnd();
10268
- i0.ɵɵelementEnd();
10269
- i0.ɵɵelementEnd();
10270
- } if (rf & 2) {
10271
- const ctx_r1 = i0.ɵɵnextContext();
10272
- i0.ɵɵadvance(5);
10273
- i0.ɵɵproperty("categoriesAndDocuments", ctx_r1.categoriesAndDocuments$)("allowMoving", ctx_r1.allowMoving);
10274
- i0.ɵɵadvance(3);
10275
- i0.ɵɵproperty("ngIf", ctx_r1.currentDocument);
10276
- } }
10277
- class CaseFileViewFieldReadComponent extends CaseFileViewFieldComponent {
10278
- constructor() {
10279
- super(...arguments);
10280
- this.allowMoving = false;
10281
- }
10282
- }
10283
- CaseFileViewFieldReadComponent.ɵfac = function CaseFileViewFieldReadComponent_Factory(t) { return ɵCaseFileViewFieldReadComponent_BaseFactory(t || CaseFileViewFieldReadComponent); };
10284
- CaseFileViewFieldReadComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewFieldReadComponent, selectors: [["ccd-case-file-view-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [["class", "govuk-grid-column-two-thirds", 4, "ngIf"], [4, "ngIf"], [1, "govuk-grid-column-two-thirds"], [1, "govuk-heading-xl"], [1, "govuk-body"], [1, "govuk-heading-l"], ["id", "case-file-view", 1, "govuk-form-group"], [1, "document-tree-container"], [1, "document-tree-container__tree", 3, "categoriesAndDocuments", "allowMoving", "clickedDocument", "moveDocument"], [1, "slider"], [1, "media-viewer-container"], [3, "url", "downloadFileName", "showToolbar", "contentType", "enableAnnotations", "enableRedactions", "height"]], template: function CaseFileViewFieldReadComponent_Template(rf, ctx) { if (rf & 1) {
10285
- i0.ɵɵtemplate(0, CaseFileViewFieldReadComponent_div_0_Template, 5, 0, "div", 0);
10286
- i0.ɵɵtemplate(1, CaseFileViewFieldReadComponent_div_1_Template, 9, 3, "div", 1);
10287
- } if (rf & 2) {
10288
- i0.ɵɵproperty("ngIf", ctx.getCategoriesAndDocumentsError);
10289
- i0.ɵɵadvance(1);
10290
- i0.ɵɵproperty("ngIf", !ctx.getCategoriesAndDocumentsError);
10291
- } }, styles: ["#case-file-view[_ngcontent-%COMP%]{display:flex;border:2px solid #c9c9c9;height:100vh;position:relative}#case-file-view[_ngcontent-%COMP%] .document-tree-container[_ngcontent-%COMP%]{background-color:#faf8f8;width:30%;min-height:400px;min-width:10%}#case-file-view[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]{width:.2%;background-color:#6b6b6b}#case-file-view[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:focus, #case-file-view[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:hover{cursor:col-resize}#case-file-view[_ngcontent-%COMP%] .media-viewer-container[_ngcontent-%COMP%]{background-color:#dee0e2;flex:1 1 0;overflow:hidden}"] });
10292
- const ɵCaseFileViewFieldReadComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(CaseFileViewFieldReadComponent);
10293
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFieldReadComponent, [{
10294
- type: Component,
10295
- args: [{
10296
- selector: 'ccd-case-file-view-field',
10297
- templateUrl: './case-file-view-field.component.html',
10298
- styleUrls: ['./case-file-view-field.component.scss'],
10299
- }]
10300
- }], null, null); })();
10255
+ }], function () { return [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }, { type: SessionStorageService }]; }, null); })();
10301
10256
 
10302
10257
  var AddCommentsErrorMessage;
10303
10258
  (function (AddCommentsErrorMessage) {
@@ -10609,7 +10564,7 @@ function WriteCaseFlagFieldComponent_div_1_ng_container_7_Template(rf, ctx) { if
10609
10564
  i0.ɵɵadvance(1);
10610
10565
  i0.ɵɵproperty("formGroup", ctx_r10.caseFlagParentFormGroup)("optional", ctx_r10.flagCommentsOptional);
10611
10566
  } }
10612
- const _c0$Q = function (a0) { return { "form-group-error": a0 }; };
10567
+ const _c0$R = function (a0) { return { "form-group-error": a0 }; };
10613
10568
  function WriteCaseFlagFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10614
10569
  i0.ɵɵelementStart(0, "div", 8);
10615
10570
  i0.ɵɵelementStart(1, "div", 9);
@@ -10628,7 +10583,7 @@ function WriteCaseFlagFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10628
10583
  i0.ɵɵadvance(1);
10629
10584
  i0.ɵɵproperty("ngSwitch", ctx_r1.fieldState);
10630
10585
  i0.ɵɵadvance(1);
10631
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$Q, ctx_r1.errorMessages.length > 0));
10586
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$R, ctx_r1.errorMessages.length > 0));
10632
10587
  i0.ɵɵadvance(1);
10633
10588
  i0.ɵɵtextInterpolate1(" ", ctx_r1.createFlagCaption, " ");
10634
10589
  i0.ɵɵadvance(1);
@@ -11065,7 +11020,7 @@ const ɵReadCaseLinkFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInherit
11065
11020
  }]
11066
11021
  }], null, null); })();
11067
11022
 
11068
- const _c0$P = ["writeComplexFieldComponent"];
11023
+ const _c0$Q = ["writeComplexFieldComponent"];
11069
11024
  function WriteCaseLinkFieldComponent_span_2_Template(rf, ctx) { if (rf & 1) {
11070
11025
  i0.ɵɵelementStart(0, "span", 6);
11071
11026
  i0.ɵɵtext(1);
@@ -11143,7 +11098,7 @@ class WriteCaseLinkFieldComponent extends AbstractFieldWriteComponent {
11143
11098
  }
11144
11099
  WriteCaseLinkFieldComponent.ɵfac = function WriteCaseLinkFieldComponent_Factory(t) { return ɵWriteCaseLinkFieldComponent_BaseFactory(t || WriteCaseLinkFieldComponent); };
11145
11100
  WriteCaseLinkFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCaseLinkFieldComponent, selectors: [["ccd-write-case-link-field"]], viewQuery: function WriteCaseLinkFieldComponent_Query(rf, ctx) { if (rf & 1) {
11146
- i0.ɵɵviewQuery(_c0$P, 1);
11101
+ i0.ɵɵviewQuery(_c0$Q, 1);
11147
11102
  } if (rf & 2) {
11148
11103
  let _t;
11149
11104
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.writeComplexFieldComponent = _t.first);
@@ -11181,7 +11136,7 @@ const ɵWriteCaseLinkFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheri
11181
11136
  args: ['writeComplexFieldComponent']
11182
11137
  }] }); })();
11183
11138
 
11184
- const _c0$O = function (a0, a1, a2, a3, a4, a5) { return { id: a0, label: a1, field_type: a2, display_context_parameter: a3, value: a4, hidden: a5 }; };
11139
+ const _c0$P = function (a0, a1, a2, a3, a4, a5) { return { id: a0, label: a1, field_type: a2, display_context_parameter: a3, value: a4, hidden: a5 }; };
11185
11140
  function ReadCollectionFieldComponent_table_0_tbody_2_Template(rf, ctx) { if (rf & 1) {
11186
11141
  i0.ɵɵelementStart(0, "tbody");
11187
11142
  i0.ɵɵelementStart(1, "tr");
@@ -11194,7 +11149,7 @@ function ReadCollectionFieldComponent_table_0_tbody_2_Template(rf, ctx) { if (rf
11194
11149
  } if (rf & 2) {
11195
11150
  const ctx_r1 = i0.ɵɵnextContext(2);
11196
11151
  i0.ɵɵadvance(4);
11197
- i0.ɵɵproperty("caseField", i0.ɵɵpureFunction6(3, _c0$O, 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);
11152
+ i0.ɵɵproperty("caseField", i0.ɵɵpureFunction6(3, _c0$P, 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);
11198
11153
  } }
11199
11154
  const _c1$k = function (a0, a1, a2, a3, a4) { return { id: a0, label: a1, field_type: a2, value: a3, hidden: a4 }; };
11200
11155
  function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { if (rf & 1) {
@@ -11322,7 +11277,7 @@ RemoveDialogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RemoveDialogCompone
11322
11277
  }]
11323
11278
  }], function () { return [{ type: i1$3.MatDialogRef }]; }, null); })();
11324
11279
 
11325
- const _c0$N = ["collectionItem"];
11280
+ const _c0$O = ["collectionItem"];
11326
11281
  function WriteCollectionFieldComponent_h2_7_span_1_Template(rf, ctx) { if (rf & 1) {
11327
11282
  i0.ɵɵelementStart(0, "span", 9);
11328
11283
  i0.ɵɵtext(1);
@@ -11529,7 +11484,12 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
11529
11484
  addItem(doScroll) {
11530
11485
  // Manually resetting errors is required to prevent `ExpressionChangedAfterItHasBeenCheckedError`
11531
11486
  this.formArray.setErrors(null);
11532
- const item = { value: null };
11487
+ let item = { value: null };
11488
+ if (this.isCollectionDynamic()) {
11489
+ item = Object.assign({}, this.caseField.value[this.caseField.value.length - 1]);
11490
+ const key = Number(item['id'][item['id'].length - 1]) + 1;
11491
+ item.id = item['id'].replace(/.$/, key.toString());
11492
+ }
11533
11493
  this.caseField.value.push(item);
11534
11494
  const index = this.caseField.value.length - 1;
11535
11495
  const caseField = this.buildCaseField(item, index, true);
@@ -11552,6 +11512,12 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
11552
11512
  setTimeout(() => this.focusLastItem());
11553
11513
  }
11554
11514
  }
11515
+ isCollectionDynamic() {
11516
+ if (!this.caseField.field_type || !this.caseField.field_type.collection_field_type) {
11517
+ return false;
11518
+ }
11519
+ return this.caseField.field_type.collection_field_type.id === 'DynamicRadioList';
11520
+ }
11555
11521
  newCaseField(id, item, index, isNew = false) {
11556
11522
  const isNotAuthorisedToUpdate = !isNew && this.isNotAuthorisedToUpdate(index);
11557
11523
  const fieldType = plainToClassFromExist(new FieldType(), this.caseField.field_type.collection_field_type);
@@ -11696,7 +11662,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
11696
11662
  }
11697
11663
  WriteCollectionFieldComponent.ɵfac = function WriteCollectionFieldComponent_Factory(t) { return new (t || WriteCollectionFieldComponent)(i0.ɵɵdirectiveInject(i1$3.MatDialog), i0.ɵɵdirectiveInject(i2$1.ScrollToService), i0.ɵɵdirectiveInject(ProfileNotifier)); };
11698
11664
  WriteCollectionFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCollectionFieldComponent, selectors: [["ccd-write-collection-field"]], viewQuery: function WriteCollectionFieldComponent_Query(rf, ctx) { if (rf & 1) {
11699
- i0.ɵɵviewQuery(_c0$N, 1);
11665
+ i0.ɵɵviewQuery(_c0$O, 1);
11700
11666
  } if (rf & 2) {
11701
11667
  let _t;
11702
11668
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);
@@ -12016,7 +11982,7 @@ FileUploadStateService.ɵprov = i0.ɵɵdefineInjectable({ token: FileUploadState
12016
11982
  type: Injectable
12017
11983
  }], null, null); })();
12018
11984
 
12019
- const _c0$M = ["fileInput"];
11985
+ const _c0$N = ["fileInput"];
12020
11986
  function WriteDocumentFieldComponent_span_6_Template(rf, ctx) { if (rf & 1) {
12021
11987
  i0.ɵɵelementStart(0, "span", 12);
12022
11988
  i0.ɵɵtext(1);
@@ -12294,7 +12260,7 @@ WriteDocumentFieldComponent.UPLOAD_ERROR_NOT_AVAILABLE = 'Document upload facili
12294
12260
  WriteDocumentFieldComponent.UPLOAD_WAITING_FILE_STATUS = 'Uploading...';
12295
12261
  WriteDocumentFieldComponent.ɵfac = function WriteDocumentFieldComponent_Factory(t) { return new (t || WriteDocumentFieldComponent)(i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(i1$3.MatDialog), i0.ɵɵdirectiveInject(FileUploadStateService)); };
12296
12262
  WriteDocumentFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteDocumentFieldComponent, selectors: [["ccd-write-document-field"]], viewQuery: function WriteDocumentFieldComponent_Query(rf, ctx) { if (rf & 1) {
12297
- i0.ɵɵviewQuery(_c0$M, 1);
12263
+ i0.ɵɵviewQuery(_c0$N, 1);
12298
12264
  } if (rf & 2) {
12299
12265
  let _t;
12300
12266
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileInput = _t.first);
@@ -12456,7 +12422,7 @@ function WriteDynamicListFieldComponent_option_9_Template(rf, ctx) { if (rf & 1)
12456
12422
  i0.ɵɵadvance(1);
12457
12423
  i0.ɵɵtextInterpolate(type_r5.label);
12458
12424
  } }
12459
- const _c0$L = function (a0) { return { "form-group-error": a0 }; };
12425
+ const _c0$M = function (a0) { return { "form-group-error": a0 }; };
12460
12426
  class WriteDynamicListFieldComponent extends AbstractFieldWriteComponent {
12461
12427
  ngOnInit() {
12462
12428
  /**
@@ -12498,7 +12464,7 @@ WriteDynamicListFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteDynam
12498
12464
  i0.ɵɵelementEnd();
12499
12465
  i0.ɵɵelementEnd();
12500
12466
  } if (rf & 2) {
12501
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$L, !ctx.dynamicListFormControl.valid && (ctx.dynamicListFormControl.dirty || ctx.dynamicListFormControl.touched)));
12467
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$M, !ctx.dynamicListFormControl.valid && (ctx.dynamicListFormControl.dirty || ctx.dynamicListFormControl.touched)));
12502
12468
  i0.ɵɵadvance(1);
12503
12469
  i0.ɵɵproperty("for", ctx.id());
12504
12470
  i0.ɵɵadvance(1);
@@ -12619,7 +12585,7 @@ function WriteDynamicRadioListFieldComponent_span_7_Template(rf, ctx) { if (rf &
12619
12585
  i0.ɵɵadvance(1);
12620
12586
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r3.dynamicRadioListControl.errors));
12621
12587
  } }
12622
- const _c0$K = function (a0) { return { selected: a0 }; };
12588
+ const _c0$L = function (a0) { return { selected: a0 }; };
12623
12589
  function WriteDynamicRadioListFieldComponent_div_9_Template(rf, ctx) { if (rf & 1) {
12624
12590
  i0.ɵɵelementStart(0, "div", 10);
12625
12591
  i0.ɵɵelement(1, "input", 11);
@@ -12630,12 +12596,11 @@ function WriteDynamicRadioListFieldComponent_div_9_Template(rf, ctx) { if (rf &
12630
12596
  } if (rf & 2) {
12631
12597
  const radioButton_r5 = ctx.$implicit;
12632
12598
  const ctx_r4 = i0.ɵɵnextContext();
12633
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0$K, ctx_r4.dynamicRadioListControl.value === radioButton_r5.code));
12599
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0$L, ctx_r4.dynamicRadioListControl.value === radioButton_r5.code));
12634
12600
  i0.ɵɵadvance(1);
12635
- i0.ɵɵpropertyInterpolate("name", ctx_r4.id());
12636
- i0.ɵɵproperty("id", ctx_r4.buildElementId(radioButton_r5.code))("formControl", ctx_r4.dynamicRadioListControl)("value", radioButton_r5.code);
12601
+ i0.ɵɵproperty("id", ctx_r4.createElementId(radioButton_r5.code))("name", ctx_r4.createElementId(radioButton_r5.code))("formControl", ctx_r4.dynamicRadioListControl)("value", radioButton_r5.code);
12637
12602
  i0.ɵɵadvance(1);
12638
- i0.ɵɵproperty("for", ctx_r4.buildElementId(radioButton_r5.code));
12603
+ i0.ɵɵproperty("for", ctx_r4.createElementId(radioButton_r5.code));
12639
12604
  i0.ɵɵadvance(1);
12640
12605
  i0.ɵɵtextInterpolate(radioButton_r5.label);
12641
12606
  } }
@@ -12659,8 +12624,8 @@ class WriteDynamicRadioListFieldComponent extends AbstractFieldWriteComponent {
12659
12624
  this.dynamicRadioListControl = this.registerControl(new FormControl(this.caseField.value));
12660
12625
  this.dynamicRadioListControl.setValue(this.caseField.value);
12661
12626
  }
12662
- buildElementId(name) {
12663
- return `${this.id()}-${name}`;
12627
+ createElementId(name) {
12628
+ return this.parent && this.parent.value ? this.parent.value.id + this.parent.value.value : super.createElementId(name);
12664
12629
  }
12665
12630
  }
12666
12631
  WriteDynamicRadioListFieldComponent.ɵfac = function WriteDynamicRadioListFieldComponent_Factory(t) { return ɵWriteDynamicRadioListFieldComponent_BaseFactory(t || WriteDynamicRadioListFieldComponent); };
@@ -12764,7 +12729,7 @@ function WriteEmailFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
12764
12729
  i0.ɵɵadvance(1);
12765
12730
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.emailControl.errors, ctx_r2.caseField.label));
12766
12731
  } }
12767
- const _c0$J = function (a0) { return { "form-group-error": a0 }; };
12732
+ const _c0$K = function (a0) { return { "form-group-error": a0 }; };
12768
12733
  const _c1$h = function (a0) { return { "govuk-input--error": a0 }; };
12769
12734
  class WriteEmailFieldComponent extends AbstractFieldWriteComponent {
12770
12735
  ngOnInit() {
@@ -12782,7 +12747,7 @@ WriteEmailFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteEmailFieldC
12782
12747
  i0.ɵɵelement(5, "input", 5);
12783
12748
  i0.ɵɵelementEnd();
12784
12749
  } if (rf & 2) {
12785
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$J, !ctx.emailControl.valid && (ctx.emailControl.dirty || ctx.emailControl.touched)));
12750
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$K, !ctx.emailControl.valid && (ctx.emailControl.dirty || ctx.emailControl.touched)));
12786
12751
  i0.ɵɵadvance(1);
12787
12752
  i0.ɵɵproperty("for", ctx.id());
12788
12753
  i0.ɵɵadvance(1);
@@ -12884,7 +12849,7 @@ function WriteFixedListFieldComponent_option_8_Template(rf, ctx) { if (rf & 1) {
12884
12849
  i0.ɵɵadvance(1);
12885
12850
  i0.ɵɵtextInterpolate(type_r4.label);
12886
12851
  } }
12887
- const _c0$I = function (a0) { return { "form-group-error": a0 }; };
12852
+ const _c0$J = function (a0) { return { "form-group-error": a0 }; };
12888
12853
  class WriteFixedListFieldComponent extends AbstractFieldWriteComponent {
12889
12854
  get listItems() {
12890
12855
  if (this.caseField) {
@@ -12922,7 +12887,7 @@ WriteFixedListFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteFixedLi
12922
12887
  i0.ɵɵelementEnd();
12923
12888
  i0.ɵɵelementEnd();
12924
12889
  } if (rf & 2) {
12925
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0$I, !ctx.fixedListFormControl.valid && (ctx.fixedListFormControl.dirty || ctx.fixedListFormControl.touched)));
12890
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0$J, !ctx.fixedListFormControl.valid && (ctx.fixedListFormControl.dirty || ctx.fixedListFormControl.touched)));
12926
12891
  i0.ɵɵadvance(1);
12927
12892
  i0.ɵɵproperty("for", ctx.id());
12928
12893
  i0.ɵɵadvance(1);
@@ -13013,7 +12978,7 @@ function WriteFixedRadioListFieldComponent_span_6_Template(rf, ctx) { if (rf & 1
13013
12978
  i0.ɵɵadvance(1);
13014
12979
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.fixedRadioListControl.errors, ctx_r2.caseField.label));
13015
12980
  } }
13016
- const _c0$H = function (a0) { return { selected: a0 }; };
12981
+ const _c0$I = function (a0) { return { selected: a0 }; };
13017
12982
  function WriteFixedRadioListFieldComponent_div_8_Template(rf, ctx) { if (rf & 1) {
13018
12983
  i0.ɵɵelementStart(0, "div", 9);
13019
12984
  i0.ɵɵelement(1, "input", 10);
@@ -13024,7 +12989,7 @@ function WriteFixedRadioListFieldComponent_div_8_Template(rf, ctx) { if (rf & 1)
13024
12989
  } if (rf & 2) {
13025
12990
  const radioButton_r4 = ctx.$implicit;
13026
12991
  const ctx_r3 = i0.ɵɵnextContext();
13027
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0$H, ctx_r3.fixedRadioListControl.value === radioButton_r4.code));
12992
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0$I, ctx_r3.fixedRadioListControl.value === radioButton_r4.code));
13028
12993
  i0.ɵɵadvance(1);
13029
12994
  i0.ɵɵproperty("id", ctx_r3.id() + "-" + radioButton_r4.code)("name", ctx_r3.id())("formControl", ctx_r3.fixedRadioListControl)("value", radioButton_r4.code);
13030
12995
  i0.ɵɵadvance(1);
@@ -13155,7 +13120,7 @@ function WriteJudicialUserFieldComponent_span_3_Template(rf, ctx) { if (rf & 1)
13155
13120
  i0.ɵɵadvance(1);
13156
13121
  i0.ɵɵtextInterpolate1(" ", ctx_r1.caseField.hint_text, " ");
13157
13122
  } }
13158
- const _c0$G = function (a0) { return { "hide-autocomplete": a0 }; };
13123
+ const _c0$H = function (a0) { return { "hide-autocomplete": a0 }; };
13159
13124
  function WriteJudicialUserFieldComponent_mat_option_7_Template(rf, ctx) { if (rf & 1) {
13160
13125
  const _r7 = i0.ɵɵgetCurrentView();
13161
13126
  i0.ɵɵelementStart(0, "mat-option", 11);
@@ -13165,7 +13130,7 @@ function WriteJudicialUserFieldComponent_mat_option_7_Template(rf, ctx) { if (rf
13165
13130
  } if (rf & 2) {
13166
13131
  const judicialUser_r5 = ctx.$implicit;
13167
13132
  const ctx_r3 = i0.ɵɵnextContext();
13168
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$G, !ctx_r3.showAutocomplete))("value", judicialUser_r5.idamId);
13133
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$H, !ctx_r3.showAutocomplete))("value", judicialUser_r5.idamId);
13169
13134
  i0.ɵɵadvance(1);
13170
13135
  i0.ɵɵtextInterpolate2(" ", judicialUser_r5.fullName, " (", judicialUser_r5.emailId, ") ");
13171
13136
  } }
@@ -13861,7 +13826,7 @@ function LinkCasesComponent_div_8_div_14_span_3_Template(rf, ctx) { if (rf & 1)
13861
13826
  i0.ɵɵadvance(3);
13862
13827
  i0.ɵɵtextInterpolate1(" ", ctx_r13.caseReasonCommentsError, " ");
13863
13828
  } }
13864
- const _c0$F = function (a0) { return { "govuk-form-group--error": a0 }; };
13829
+ const _c0$G = function (a0) { return { "govuk-form-group--error": a0 }; };
13865
13830
  function LinkCasesComponent_div_8_div_14_Template(rf, ctx) { if (rf & 1) {
13866
13831
  i0.ɵɵelementStart(0, "div", 35);
13867
13832
  i0.ɵɵelementStart(1, "h3", 22);
@@ -13877,7 +13842,7 @@ function LinkCasesComponent_div_8_div_14_Template(rf, ctx) { if (rf & 1) {
13877
13842
  i0.ɵɵelementEnd();
13878
13843
  } if (rf & 2) {
13879
13844
  const ctx_r7 = i0.ɵɵnextContext(2);
13880
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c0$F, !!ctx_r7.caseReasonCommentsError));
13845
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c0$G, !!ctx_r7.caseReasonCommentsError));
13881
13846
  i0.ɵɵadvance(3);
13882
13847
  i0.ɵɵproperty("ngIf", ctx_r7.caseReasonCommentsError);
13883
13848
  } }
@@ -13928,11 +13893,11 @@ function LinkCasesComponent_div_8_Template(rf, ctx) { if (rf & 1) {
13928
13893
  const ctx_r0 = i0.ɵɵnextContext();
13929
13894
  i0.ɵɵproperty("formGroup", ctx_r0.linkCaseForm);
13930
13895
  i0.ɵɵadvance(1);
13931
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$F, !!ctx_r0.caseNumberError));
13896
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$G, !!ctx_r0.caseNumberError));
13932
13897
  i0.ɵɵadvance(3);
13933
13898
  i0.ɵɵproperty("ngIf", ctx_r0.caseNumberError);
13934
13899
  i0.ɵɵadvance(2);
13935
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$F, !!ctx_r0.caseReasonError));
13900
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$G, !!ctx_r0.caseReasonError));
13936
13901
  i0.ɵɵadvance(5);
13937
13902
  i0.ɵɵproperty("ngIf", ctx_r0.caseReasonError);
13938
13903
  i0.ɵɵadvance(2);
@@ -14343,7 +14308,7 @@ LinkCasesComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LinkCasesComponent, se
14343
14308
  i0.ɵɵadvance(4);
14344
14309
  i0.ɵɵproperty("ngIf", ctx.linkCaseForm);
14345
14310
  i0.ɵɵadvance(4);
14346
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0$F, !!ctx.noSelectedCaseError));
14311
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0$G, !!ctx.noSelectedCaseError));
14347
14312
  i0.ɵɵadvance(1);
14348
14313
  i0.ɵɵproperty("ngIf", ctx.noSelectedCaseError);
14349
14314
  i0.ɵɵadvance(18);
@@ -14952,7 +14917,7 @@ function UnLinkCasesComponent_div_0_div_4_div_3_Template(rf, ctx) { if (rf & 1)
14952
14917
  i0.ɵɵadvance(1);
14953
14918
  i0.ɵɵtextInterpolate2(" ", case_r4.caseName, " ", i0.ɵɵpipeBind1(4, 6, case_r4.caseReference), " ");
14954
14919
  } }
14955
- const _c0$E = function (a0) { return { "govuk-form-group--error": a0 }; };
14920
+ const _c0$F = function (a0) { return { "govuk-form-group--error": a0 }; };
14956
14921
  function UnLinkCasesComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
14957
14922
  i0.ɵɵelementStart(0, "div", 7);
14958
14923
  i0.ɵɵtemplate(1, UnLinkCasesComponent_div_0_div_4_p_1_Template, 4, 1, "p", 8);
@@ -14962,7 +14927,7 @@ function UnLinkCasesComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
14962
14927
  i0.ɵɵelementEnd();
14963
14928
  } if (rf & 2) {
14964
14929
  const ctx_r1 = i0.ɵɵnextContext(2);
14965
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$E, ctx_r1.unlinkErrorMessage))("formGroup", ctx_r1.unlinkCaseForm);
14930
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$F, ctx_r1.unlinkErrorMessage))("formGroup", ctx_r1.unlinkCaseForm);
14966
14931
  i0.ɵɵadvance(1);
14967
14932
  i0.ɵɵproperty("ngIf", ctx_r1.unlinkErrorMessage);
14968
14933
  i0.ɵɵadvance(2);
@@ -15781,7 +15746,7 @@ function WriteMoneyGbpFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
15781
15746
  i0.ɵɵadvance(1);
15782
15747
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.moneyGbpControl.errors, ctx_r2.caseField.label));
15783
15748
  } }
15784
- const _c0$D = function (a0) { return { "form-group-error": a0 }; };
15749
+ const _c0$E = function (a0) { return { "form-group-error": a0 }; };
15785
15750
  class WriteMoneyGbpFieldComponent extends AbstractFieldWriteComponent {
15786
15751
  ngOnInit() {
15787
15752
  this.moneyGbpControl = this.registerControl(new FormControl(this.caseField.value));
@@ -15804,7 +15769,7 @@ WriteMoneyGbpFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteMoneyGbp
15804
15769
  i0.ɵɵelementEnd();
15805
15770
  i0.ɵɵelementEnd();
15806
15771
  } if (rf & 2) {
15807
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c0$D, !ctx.moneyGbpControl.valid && (ctx.moneyGbpControl.dirty || ctx.moneyGbpControl.touched)));
15772
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c0$E, !ctx.moneyGbpControl.valid && (ctx.moneyGbpControl.dirty || ctx.moneyGbpControl.touched)));
15808
15773
  i0.ɵɵadvance(1);
15809
15774
  i0.ɵɵproperty("for", ctx.id());
15810
15775
  i0.ɵɵadvance(1);
@@ -15921,7 +15886,7 @@ function WriteMultiSelectListFieldComponent_ng_container_6_Template(rf, ctx) { i
15921
15886
  i0.ɵɵadvance(1);
15922
15887
  i0.ɵɵtextInterpolate(checkbox_r4.label);
15923
15888
  } }
15924
- const _c0$C = function (a0) { return { "error": a0 }; };
15889
+ const _c0$D = function (a0) { return { "error": a0 }; };
15925
15890
  class WriteMultiSelectListFieldComponent extends AbstractFieldWriteComponent {
15926
15891
  ngOnInit() {
15927
15892
  this.checkboxes = new FormArray([]);
@@ -15976,7 +15941,7 @@ WriteMultiSelectListFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteM
15976
15941
  i0.ɵɵelementEnd();
15977
15942
  i0.ɵɵelementEnd();
15978
15943
  } if (rf & 2) {
15979
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0$C, !ctx.checkboxes.valid && (ctx.checkboxes.dirty || ctx.checkboxes.touched)))("id", ctx.id());
15944
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0$D, !ctx.checkboxes.valid && (ctx.checkboxes.dirty || ctx.checkboxes.touched)))("id", ctx.id());
15980
15945
  i0.ɵɵadvance(3);
15981
15946
  i0.ɵɵproperty("ngIf", ctx.caseField.label);
15982
15947
  i0.ɵɵadvance(1);
@@ -16045,7 +16010,7 @@ function WriteNumberFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
16045
16010
  i0.ɵɵadvance(1);
16046
16011
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.numberControl.errors, ctx_r2.caseField.label));
16047
16012
  } }
16048
- const _c0$B = function (a0) { return { "form-group-error": a0 }; };
16013
+ const _c0$C = function (a0) { return { "form-group-error": a0 }; };
16049
16014
  const _c1$e = function (a0) { return { "govuk-input--error": a0 }; };
16050
16015
  class WriteNumberFieldComponent extends AbstractFieldWriteComponent {
16051
16016
  ngOnInit() {
@@ -16063,7 +16028,7 @@ WriteNumberFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteNumberFiel
16063
16028
  i0.ɵɵelement(5, "input", 5);
16064
16029
  i0.ɵɵelementEnd();
16065
16030
  } if (rf & 2) {
16066
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$B, !ctx.numberControl.valid && ctx.numberControl.dirty));
16031
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$C, !ctx.numberControl.valid && ctx.numberControl.dirty));
16067
16032
  i0.ɵɵadvance(1);
16068
16033
  i0.ɵɵproperty("for", ctx.id());
16069
16034
  i0.ɵɵadvance(1);
@@ -16313,7 +16278,7 @@ function WriteOrganisationFieldComponent_fieldset_3_div_14_div_4_Template(rf, ct
16313
16278
  i0.ɵɵelementEnd();
16314
16279
  i0.ɵɵelementEnd();
16315
16280
  } }
16316
- const _c0$A = function (a0) { return { "scroll-container ": a0 }; };
16281
+ const _c0$B = function (a0) { return { "scroll-container ": a0 }; };
16317
16282
  function WriteOrganisationFieldComponent_fieldset_3_div_14_Template(rf, ctx) { if (rf & 1) {
16318
16283
  i0.ɵɵelementStart(0, "div", 26);
16319
16284
  i0.ɵɵpipe(1, "async");
@@ -16327,7 +16292,7 @@ function WriteOrganisationFieldComponent_fieldset_3_div_14_Template(rf, ctx) { i
16327
16292
  const ctx_r2 = i0.ɵɵnextContext(2);
16328
16293
  let tmp_0_0 = null;
16329
16294
  let tmp_2_0 = null;
16330
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c0$A, ((tmp_0_0 = i0.ɵɵpipeBind1(1, 3, ctx_r2.simpleOrganisations$)) == null ? null : tmp_0_0.length) > 10));
16295
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c0$B, ((tmp_0_0 = i0.ɵɵpipeBind1(1, 3, ctx_r2.simpleOrganisations$)) == null ? null : tmp_0_0.length) > 10));
16331
16296
  i0.ɵɵadvance(2);
16332
16297
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(3, 5, ctx_r2.simpleOrganisations$));
16333
16298
  i0.ɵɵadvance(2);
@@ -16642,9 +16607,6 @@ class PaymentField extends AbstractFieldReadComponent {
16642
16607
  getRefundsUrl() {
16643
16608
  return this.appConfig.getRefundsUrl();
16644
16609
  }
16645
- getNotificationUrl() {
16646
- return this.appConfig.getNotificationUrl();
16647
- }
16648
16610
  getUserRoles() {
16649
16611
  const userDetails = JSON.parse(this.sessionStorage.getItem('userDetails') || null);
16650
16612
  if (!userDetails || !userDetails.hasOwnProperty('roles')) {
@@ -16667,10 +16629,10 @@ class CasePaymentHistoryViewerFieldComponent extends PaymentField {
16667
16629
  }
16668
16630
  }
16669
16631
  CasePaymentHistoryViewerFieldComponent.ɵfac = function CasePaymentHistoryViewerFieldComponent_Factory(t) { return new (t || CasePaymentHistoryViewerFieldComponent)(i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(SessionStorageService)); };
16670
- CasePaymentHistoryViewerFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CasePaymentHistoryViewerFieldComponent, selectors: [["ccd-case-payment-history-viewer-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 16, consts: [[3, "API_ROOT", "CCD_CASE_NUMBER", "BULKSCAN_API_ROOT", "SELECTED_OPTION", "ISBSENABLE", "LOGGEDINUSEREMAIL", "LOGGEDINUSERROLES", "REFUNDS_API_ROOT", "NOTIFICATION_API_ROOT", "VIEW", "TAKEPAYMENT", "SERVICEREQUEST", "PAYMENT_GROUP_REF", "EXC_REFERENCE", "DCN_NUMBER", "ISPAYMENTSTATUSENABLED"]], template: function CasePaymentHistoryViewerFieldComponent_Template(rf, ctx) { if (rf & 1) {
16632
+ CasePaymentHistoryViewerFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CasePaymentHistoryViewerFieldComponent, selectors: [["ccd-case-payment-history-viewer-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 15, consts: [[3, "API_ROOT", "CCD_CASE_NUMBER", "BULKSCAN_API_ROOT", "SELECTED_OPTION", "ISBSENABLE", "LOGGEDINUSEREMAIL", "LOGGEDINUSERROLES", "REFUNDS_API_ROOT", "VIEW", "TAKEPAYMENT", "SERVICEREQUEST", "PAYMENT_GROUP_REF", "EXC_REFERENCE", "DCN_NUMBER", "ISPAYMENTSTATUSENABLED"]], template: function CasePaymentHistoryViewerFieldComponent_Template(rf, ctx) { if (rf & 1) {
16671
16633
  i0.ɵɵelement(0, "ccpay-payment-lib", 0);
16672
16634
  } if (rf & 2) {
16673
- i0.ɵɵproperty("API_ROOT", ctx.getBaseURL())("CCD_CASE_NUMBER", ctx.caseReference)("BULKSCAN_API_ROOT", ctx.getPayBulkScanBaseURL())("SELECTED_OPTION", "CCDorException")("ISBSENABLE", "true")("LOGGEDINUSEREMAIL", ctx.getUserEmail())("LOGGEDINUSERROLES", ctx.getUserRoles())("REFUNDS_API_ROOT", ctx.getRefundsUrl())("NOTIFICATION_API_ROOT", ctx.getNotificationUrl())("VIEW", "case-transactions")("TAKEPAYMENT", false)("SERVICEREQUEST", false)("PAYMENT_GROUP_REF", null)("EXC_REFERENCE", ctx.caseReference)("DCN_NUMBER", null)("ISPAYMENTSTATUSENABLED", "Enable");
16635
+ i0.ɵɵproperty("API_ROOT", ctx.getBaseURL())("CCD_CASE_NUMBER", ctx.caseReference)("BULKSCAN_API_ROOT", ctx.getPayBulkScanBaseURL())("SELECTED_OPTION", "CCDorException")("ISBSENABLE", "true")("LOGGEDINUSEREMAIL", ctx.getUserEmail())("LOGGEDINUSERROLES", ctx.getUserRoles())("REFUNDS_API_ROOT", ctx.getRefundsUrl())("VIEW", "case-transactions")("TAKEPAYMENT", false)("SERVICEREQUEST", false)("PAYMENT_GROUP_REF", null)("EXC_REFERENCE", ctx.caseReference)("DCN_NUMBER", null)("ISPAYMENTSTATUSENABLED", "Enable");
16674
16636
  } }, directives: [i3.PaymentLibComponent], encapsulation: 2 });
16675
16637
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CasePaymentHistoryViewerFieldComponent, [{
16676
16638
  type: Component,
@@ -16680,6 +16642,194 @@ CasePaymentHistoryViewerFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: Ca
16680
16642
  }]
16681
16643
  }], function () { return [{ type: AbstractAppConfig }, { type: SessionStorageService }]; }, null); })();
16682
16644
 
16645
+ function ReadDynamicMultiSelectListFieldComponent_div_0_Template(rf, ctx) { if (rf & 1) {
16646
+ i0.ɵɵelementStart(0, "div");
16647
+ i0.ɵɵtext(1);
16648
+ i0.ɵɵpipe(2, "ccdFixedList");
16649
+ i0.ɵɵelementEnd();
16650
+ } if (rf & 2) {
16651
+ const value_r1 = ctx.$implicit;
16652
+ const ctx_r0 = i0.ɵɵnextContext();
16653
+ i0.ɵɵadvance(1);
16654
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, value_r1.code, ctx_r0.caseField.list_items), "\n");
16655
+ } }
16656
+ class ReadDynamicMultiSelectListFieldComponent extends AbstractFieldReadComponent {
16657
+ ngOnInit() {
16658
+ /**
16659
+ *
16660
+ * Reassigning list_items from formatted_list when list_items is empty
16661
+ */
16662
+ if (!this.caseField.list_items && this.caseField.formatted_value && this.caseField.formatted_value.list_items) {
16663
+ this.caseField.list_items = this.caseField.formatted_value.list_items;
16664
+ }
16665
+ if (!this.caseField.value && this.caseField.formatted_value && this.caseField.formatted_value.value) {
16666
+ this.caseField.value = this.caseField.formatted_value.value;
16667
+ }
16668
+ super.ngOnInit();
16669
+ }
16670
+ }
16671
+ ReadDynamicMultiSelectListFieldComponent.ɵfac = function ReadDynamicMultiSelectListFieldComponent_Factory(t) { return ɵReadDynamicMultiSelectListFieldComponent_BaseFactory(t || ReadDynamicMultiSelectListFieldComponent); };
16672
+ ReadDynamicMultiSelectListFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ReadDynamicMultiSelectListFieldComponent, selectors: [["ccd-read-dynamic-multi-select-list-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[4, "ngFor", "ngForOf"]], template: function ReadDynamicMultiSelectListFieldComponent_Template(rf, ctx) { if (rf & 1) {
16673
+ i0.ɵɵtemplate(0, ReadDynamicMultiSelectListFieldComponent_div_0_Template, 3, 4, "div", 0);
16674
+ } if (rf & 2) {
16675
+ i0.ɵɵproperty("ngForOf", ctx.caseField.value);
16676
+ } }, directives: [i1.NgForOf], pipes: [FixedListPipe], styles: [".multi-select-list-field-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] > td[_ngcontent-%COMP%]{padding:5px 0}.multi-select-list-field-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child > td[_ngcontent-%COMP%]{border-bottom:none}.multi-select-list-field-table[_ngcontent-%COMP%] td.collection-actions[_ngcontent-%COMP%]{width:1px;white-space:nowrap}"] });
16677
+ const ɵReadDynamicMultiSelectListFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(ReadDynamicMultiSelectListFieldComponent);
16678
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadDynamicMultiSelectListFieldComponent, [{
16679
+ type: Component,
16680
+ args: [{
16681
+ selector: 'ccd-read-dynamic-multi-select-list-field',
16682
+ templateUrl: './read-dynamic-multi-select-list-field.html',
16683
+ styleUrls: ['./read-dynamic-multi-select-list-field.component.scss']
16684
+ }]
16685
+ }], null, null); })();
16686
+
16687
+ function WriteDynamicMultiSelectListFieldComponent_span_3_Template(rf, ctx) { if (rf & 1) {
16688
+ i0.ɵɵelementStart(0, "span", 5);
16689
+ i0.ɵɵtext(1);
16690
+ i0.ɵɵpipe(2, "ccdFieldLabel");
16691
+ i0.ɵɵelementEnd();
16692
+ } if (rf & 2) {
16693
+ const ctx_r0 = i0.ɵɵnextContext();
16694
+ i0.ɵɵadvance(1);
16695
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r0.caseField));
16696
+ } }
16697
+ function WriteDynamicMultiSelectListFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
16698
+ i0.ɵɵelementStart(0, "span", 6);
16699
+ i0.ɵɵtext(1);
16700
+ i0.ɵɵelementEnd();
16701
+ } if (rf & 2) {
16702
+ const ctx_r1 = i0.ɵɵnextContext();
16703
+ i0.ɵɵadvance(1);
16704
+ i0.ɵɵtextInterpolate(ctx_r1.caseField.hint_text);
16705
+ } }
16706
+ function WriteDynamicMultiSelectListFieldComponent_span_5_Template(rf, ctx) { if (rf & 1) {
16707
+ i0.ɵɵelementStart(0, "span", 7);
16708
+ i0.ɵɵtext(1);
16709
+ i0.ɵɵpipe(2, "ccdFirstError");
16710
+ i0.ɵɵelementEnd();
16711
+ } if (rf & 2) {
16712
+ const ctx_r2 = i0.ɵɵnextContext();
16713
+ i0.ɵɵadvance(1);
16714
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r2.checkboxes.errors));
16715
+ } }
16716
+ function WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template(rf, ctx) { if (rf & 1) {
16717
+ const _r6 = i0.ɵɵgetCurrentView();
16718
+ i0.ɵɵelementContainerStart(0);
16719
+ i0.ɵɵelementStart(1, "div", 8);
16720
+ i0.ɵɵelementStart(2, "input", 9);
16721
+ i0.ɵɵlistener("change", function WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template_input_change_2_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.onCheckChange($event); });
16722
+ i0.ɵɵelementEnd();
16723
+ i0.ɵɵelementStart(3, "label", 10);
16724
+ i0.ɵɵtext(4);
16725
+ i0.ɵɵelementEnd();
16726
+ i0.ɵɵelementEnd();
16727
+ i0.ɵɵelementContainerEnd();
16728
+ } if (rf & 2) {
16729
+ const checkbox_r4 = ctx.$implicit;
16730
+ const ctx_r3 = i0.ɵɵnextContext();
16731
+ i0.ɵɵadvance(2);
16732
+ i0.ɵɵpropertyInterpolate("id", ctx_r3.createElementId(checkbox_r4.code));
16733
+ i0.ɵɵpropertyInterpolate("name", ctx_r3.id());
16734
+ i0.ɵɵproperty("value", checkbox_r4.code)("checked", ctx_r3.isSelected(checkbox_r4.code));
16735
+ i0.ɵɵadvance(1);
16736
+ i0.ɵɵpropertyInterpolate("for", ctx_r3.createElementId(checkbox_r4.code));
16737
+ i0.ɵɵadvance(1);
16738
+ i0.ɵɵtextInterpolate(checkbox_r4.label);
16739
+ } }
16740
+ const _c0$A = function (a0) { return { "error": a0 }; };
16741
+ class WriteDynamicMultiSelectListFieldComponent extends AbstractFieldWriteComponent {
16742
+ ngOnInit() {
16743
+ this.checkboxes = new FormArray([]);
16744
+ this.setInitialCaseList();
16745
+ this.setInitialCaseFieldValue();
16746
+ // Initialise array with existing values
16747
+ if (this.caseField.value && Array.isArray(this.caseField.value)) {
16748
+ const values = this.caseField.value;
16749
+ values.forEach(value => {
16750
+ this.checkboxes.push(new FormControl(value));
16751
+ });
16752
+ }
16753
+ this.dynamicListFormControl = this.registerControl(new FormControl(this.checkboxes.value));
16754
+ this.dynamicListFormControl.setValue(this.checkboxes.value);
16755
+ }
16756
+ onCheckChange(event) {
16757
+ const target = event.target;
16758
+ if (!target || !target.value) {
16759
+ return;
16760
+ }
16761
+ const selectedListItem = this.getValueListItem(target.value);
16762
+ if (!this.isSelected(target.value)) {
16763
+ // Add a new control in the FormArray
16764
+ this.checkboxes.push(new FormControl(selectedListItem));
16765
+ }
16766
+ else {
16767
+ // Remove the control from the FormArray
16768
+ this.checkboxes.controls.forEach((ctrl, i) => {
16769
+ if (ctrl.value.code === target.value) {
16770
+ this.checkboxes.removeAt(i);
16771
+ }
16772
+ });
16773
+ }
16774
+ this.dynamicListFormControl.setValue(this.checkboxes.value);
16775
+ }
16776
+ isSelected(code) {
16777
+ if (this.checkboxes && this.checkboxes.controls) {
16778
+ return this.checkboxes.controls.find(control => control.value.code === code);
16779
+ }
16780
+ }
16781
+ getValueListItem(value) {
16782
+ return this.caseField.list_items.find(i => i.code === value);
16783
+ }
16784
+ setInitialCaseList() {
16785
+ const hasListItems = this.caseField.list_items && this.caseField.list_items.length > 0;
16786
+ const hasFormattedListItems = this.caseField.formatted_value && this.caseField.formatted_value.list_items.length > 0;
16787
+ if (!hasListItems && hasFormattedListItems) {
16788
+ this.caseField.list_items = this.caseField.formatted_value.list_items;
16789
+ }
16790
+ }
16791
+ setInitialCaseFieldValue() {
16792
+ if (!this.caseField.value && this.caseField.formatted_value && this.caseField.formatted_value.value) {
16793
+ this.caseField.value = this.caseField.formatted_value.value;
16794
+ }
16795
+ const isNull = this.caseField.value === undefined || this.caseField.value === '';
16796
+ if (isNull || !Array.isArray(this.caseField.value)) {
16797
+ this.caseField.value = [];
16798
+ }
16799
+ }
16800
+ }
16801
+ WriteDynamicMultiSelectListFieldComponent.ɵfac = function WriteDynamicMultiSelectListFieldComponent_Factory(t) { return ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory(t || WriteDynamicMultiSelectListFieldComponent); };
16802
+ WriteDynamicMultiSelectListFieldComponent.ɵcmp = 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"]], template: function WriteDynamicMultiSelectListFieldComponent_Template(rf, ctx) { if (rf & 1) {
16803
+ i0.ɵɵelementStart(0, "div", 0);
16804
+ i0.ɵɵelementStart(1, "fieldset");
16805
+ i0.ɵɵelementStart(2, "legend");
16806
+ i0.ɵɵtemplate(3, WriteDynamicMultiSelectListFieldComponent_span_3_Template, 3, 3, "span", 1);
16807
+ i0.ɵɵtemplate(4, WriteDynamicMultiSelectListFieldComponent_span_4_Template, 2, 1, "span", 2);
16808
+ i0.ɵɵtemplate(5, WriteDynamicMultiSelectListFieldComponent_span_5_Template, 3, 3, "span", 3);
16809
+ i0.ɵɵelementEnd();
16810
+ i0.ɵɵtemplate(6, WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template, 5, 6, "ng-container", 4);
16811
+ i0.ɵɵelementEnd();
16812
+ i0.ɵɵelementEnd();
16813
+ } if (rf & 2) {
16814
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0$A, !ctx.checkboxes.valid && ctx.checkboxes.touched))("id", ctx.id());
16815
+ i0.ɵɵadvance(3);
16816
+ i0.ɵɵproperty("ngIf", ctx.caseField.label);
16817
+ i0.ɵɵadvance(1);
16818
+ i0.ɵɵproperty("ngIf", ctx.caseField.hint_text);
16819
+ i0.ɵɵadvance(1);
16820
+ i0.ɵɵproperty("ngIf", ctx.checkboxes.errors && ctx.checkboxes.touched);
16821
+ i0.ɵɵadvance(1);
16822
+ i0.ɵɵproperty("ngForOf", ctx.caseField.list_items);
16823
+ } }, directives: [i1.NgClass, i1.NgIf, i1.NgForOf], pipes: [FieldLabelPipe, FirstErrorPipe], encapsulation: 2 });
16824
+ const ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(WriteDynamicMultiSelectListFieldComponent);
16825
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteDynamicMultiSelectListFieldComponent, [{
16826
+ type: Component,
16827
+ args: [{
16828
+ selector: 'ccd-write-dynamic-multi-select-list-field',
16829
+ templateUrl: './write-dynamic-multi-select-list-field.html'
16830
+ }]
16831
+ }], null, null); })();
16832
+
16683
16833
  class ReadPhoneUKFieldComponent extends AbstractFieldReadComponent {
16684
16834
  }
16685
16835
  ReadPhoneUKFieldComponent.ɵfac = function ReadPhoneUKFieldComponent_Factory(t) { return ɵReadPhoneUKFieldComponent_BaseFactory(t || ReadPhoneUKFieldComponent); };
@@ -16981,7 +17131,7 @@ function WaysToPayFieldComponent_ccpay_payment_lib_0_Template(rf, ctx) { if (rf
16981
17131
  i0.ɵɵelement(0, "ccpay-payment-lib", 1);
16982
17132
  } if (rf & 2) {
16983
17133
  const ctx_r0 = i0.ɵɵnextContext();
16984
- i0.ɵɵproperty("API_ROOT", ctx_r0.getBaseURL())("BULKSCAN_API_ROOT", ctx_r0.getPayBulkScanBaseURL())("REFUNDS_API_ROOT", ctx_r0.getRefundsUrl())("NOTIFICATION_API_ROOT", ctx_r0.getNotificationUrl())("CCD_CASE_NUMBER", ctx_r0.caseReference)("VIEW", "case-transactions")("TAKEPAYMENT", false)("SERVICEREQUEST", true)("PAYMENT_GROUP_REF", null)("EXC_REFERENCE", ctx_r0.caseReference)("DCN_NUMBER", null)("SELECTED_OPTION", "CCDorException")("LOGGEDINUSERROLES", ctx_r0.getUserRoles())("CARDPAYMENTRETURNURL", ctx_r0.getCardPaymentReturnUrl())("ISPAYMENTSTATUSENABLED", "Enable");
17134
+ i0.ɵɵproperty("API_ROOT", ctx_r0.getBaseURL())("BULKSCAN_API_ROOT", ctx_r0.getPayBulkScanBaseURL())("REFUNDS_API_ROOT", ctx_r0.getRefundsUrl())("CCD_CASE_NUMBER", ctx_r0.caseReference)("VIEW", "case-transactions")("TAKEPAYMENT", false)("SERVICEREQUEST", true)("PAYMENT_GROUP_REF", null)("EXC_REFERENCE", ctx_r0.caseReference)("DCN_NUMBER", null)("SELECTED_OPTION", "CCDorException")("LOGGEDINUSERROLES", ctx_r0.getUserRoles())("CARDPAYMENTRETURNURL", ctx_r0.getCardPaymentReturnUrl())("ISPAYMENTSTATUSENABLED", "Enable");
16985
17135
  } }
16986
17136
  class WaysToPayFieldComponent extends PaymentField {
16987
17137
  constructor(appConfig, sessionStorage) {
@@ -16992,8 +17142,8 @@ class WaysToPayFieldComponent extends PaymentField {
16992
17142
  }
16993
17143
  }
16994
17144
  WaysToPayFieldComponent.ɵfac = function WaysToPayFieldComponent_Factory(t) { return new (t || WaysToPayFieldComponent)(i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(SessionStorageService)); };
16995
- WaysToPayFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WaysToPayFieldComponent, selectors: [["ccd-ways-to-pay-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "API_ROOT", "BULKSCAN_API_ROOT", "REFUNDS_API_ROOT", "NOTIFICATION_API_ROOT", "CCD_CASE_NUMBER", "VIEW", "TAKEPAYMENT", "SERVICEREQUEST", "PAYMENT_GROUP_REF", "EXC_REFERENCE", "DCN_NUMBER", "SELECTED_OPTION", "LOGGEDINUSERROLES", "CARDPAYMENTRETURNURL", "ISPAYMENTSTATUSENABLED", 4, "ngIf"], [3, "API_ROOT", "BULKSCAN_API_ROOT", "REFUNDS_API_ROOT", "NOTIFICATION_API_ROOT", "CCD_CASE_NUMBER", "VIEW", "TAKEPAYMENT", "SERVICEREQUEST", "PAYMENT_GROUP_REF", "EXC_REFERENCE", "DCN_NUMBER", "SELECTED_OPTION", "LOGGEDINUSERROLES", "CARDPAYMENTRETURNURL", "ISPAYMENTSTATUSENABLED"]], template: function WaysToPayFieldComponent_Template(rf, ctx) { if (rf & 1) {
16996
- i0.ɵɵtemplate(0, WaysToPayFieldComponent_ccpay_payment_lib_0_Template, 1, 15, "ccpay-payment-lib", 0);
17145
+ WaysToPayFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WaysToPayFieldComponent, selectors: [["ccd-ways-to-pay-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "API_ROOT", "BULKSCAN_API_ROOT", "REFUNDS_API_ROOT", "CCD_CASE_NUMBER", "VIEW", "TAKEPAYMENT", "SERVICEREQUEST", "PAYMENT_GROUP_REF", "EXC_REFERENCE", "DCN_NUMBER", "SELECTED_OPTION", "LOGGEDINUSERROLES", "CARDPAYMENTRETURNURL", "ISPAYMENTSTATUSENABLED", 4, "ngIf"], [3, "API_ROOT", "BULKSCAN_API_ROOT", "REFUNDS_API_ROOT", "CCD_CASE_NUMBER", "VIEW", "TAKEPAYMENT", "SERVICEREQUEST", "PAYMENT_GROUP_REF", "EXC_REFERENCE", "DCN_NUMBER", "SELECTED_OPTION", "LOGGEDINUSERROLES", "CARDPAYMENTRETURNURL", "ISPAYMENTSTATUSENABLED"]], template: function WaysToPayFieldComponent_Template(rf, ctx) { if (rf & 1) {
17146
+ i0.ɵɵtemplate(0, WaysToPayFieldComponent_ccpay_payment_lib_0_Template, 1, 14, "ccpay-payment-lib", 0);
16997
17147
  } if (rf & 2) {
16998
17148
  i0.ɵɵproperty("ngIf", ctx.getUserRoles().length > 0);
16999
17149
  } }, directives: [i1.NgIf, i3.PaymentLibComponent], encapsulation: 2 });
@@ -17176,7 +17326,7 @@ WriteYesNoFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteYesNoFieldC
17176
17326
  class PaletteService {
17177
17327
  constructor() {
17178
17328
  this.componentLauncherRegistry = {
17179
- [DisplayContextCustomParameter.CaseFileView]: [CaseFileViewFieldComponent, CaseFileViewFieldReadComponent],
17329
+ [DisplayContextCustomParameter.CaseFileView]: [CaseFileViewFieldComponent, CaseFileViewFieldComponent],
17180
17330
  [DisplayContextCustomParameter.LinkedCases]: [WriteLinkedCasesFieldComponent, ReadLinkedCasesFieldComponent]
17181
17331
  };
17182
17332
  }
@@ -17206,6 +17356,8 @@ class PaletteService {
17206
17356
  return write ? WriteFixedListFieldComponent : ReadFixedListFieldComponent;
17207
17357
  case 'DynamicRadioList':
17208
17358
  return write ? WriteDynamicRadioListFieldComponent : ReadDynamicRadioListFieldComponent;
17359
+ case 'DynamicMultiSelectList':
17360
+ return write ? WriteDynamicMultiSelectListFieldComponent : ReadDynamicMultiSelectListFieldComponent;
17209
17361
  case 'FixedRadioList':
17210
17362
  return write ? WriteFixedRadioListFieldComponent : ReadFixedRadioListFieldComponent;
17211
17363
  case 'Complex':
@@ -17272,7 +17424,7 @@ PaletteService.ɵprov = i0.ɵɵdefineInjectable({ token: PaletteService, factory
17272
17424
  }], null, null); })();
17273
17425
 
17274
17426
  const _c0$v = ["fieldContainer"];
17275
- const FIX_CASEFIELD_FOR$1 = ['FixedList', 'DynamicList'];
17427
+ const FIX_CASEFIELD_FOR$1 = ['FixedList', 'DynamicList', 'DynamicMultiSelectList'];
17276
17428
  class FieldReadComponent extends AbstractFieldReadComponent {
17277
17429
  constructor(resolver, paletteService) {
17278
17430
  super();
@@ -17350,7 +17502,7 @@ FieldReadComponent.ɵcmp = i0.ɵɵdefineComponent({ type: FieldReadComponent, se
17350
17502
  }] }); })();
17351
17503
 
17352
17504
  const _c0$u = ["fieldContainer"];
17353
- const FIX_CASEFIELD_FOR = ['FixedList', 'DynamicList'];
17505
+ const FIX_CASEFIELD_FOR = ['FixedList', 'DynamicList', 'DynamicMultiSelectList'];
17354
17506
  class FieldWriteComponent extends AbstractFieldWriteComponent {
17355
17507
  constructor(resolver, paletteService) {
17356
17508
  super();
@@ -22084,6 +22236,8 @@ const PALETTE_COMPONENTS = [
22084
22236
  WriteDocumentFieldComponent,
22085
22237
  WriteDynamicListFieldComponent,
22086
22238
  WriteDynamicRadioListFieldComponent,
22239
+ WriteDynamicMultiSelectListFieldComponent,
22240
+ ReadDynamicMultiSelectListFieldComponent,
22087
22241
  WriteTextFieldComponent,
22088
22242
  WriteDateContainerFieldComponent,
22089
22243
  WriteTextAreaFieldComponent,
@@ -22107,12 +22261,18 @@ const PALETTE_COMPONENTS = [
22107
22261
  WriteCollectionFieldComponent,
22108
22262
  // ComponentLauncher web components
22109
22263
  CaseFileViewFieldComponent,
22110
- CaseFileViewFieldReadComponent,
22111
22264
  CaseFileViewFolderComponent,
22112
22265
  CaseFileViewFolderSortComponent,
22113
22266
  CaseFileViewOverlayMenuComponent,
22114
22267
  CaseFileViewFolderDocumentActionsComponent,
22115
22268
  CaseFileViewFolderSelectorComponent,
22269
+ // component for dynamic list
22270
+ WriteDynamicMultiSelectListFieldComponent,
22271
+ WriteDynamicRadioListFieldComponent,
22272
+ WriteDynamicListFieldComponent,
22273
+ ReadDynamicMultiSelectListFieldComponent,
22274
+ ReadDynamicListFieldComponent,
22275
+ ReadDynamicRadioListFieldComponent,
22116
22276
  LinkedCasesToTableComponent,
22117
22277
  LinkedCasesFromTableComponent,
22118
22278
  BeforeYouStartComponent,
@@ -22239,6 +22399,8 @@ PaletteModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
22239
22399
  WriteDocumentFieldComponent,
22240
22400
  WriteDynamicListFieldComponent,
22241
22401
  WriteDynamicRadioListFieldComponent,
22402
+ WriteDynamicMultiSelectListFieldComponent,
22403
+ ReadDynamicMultiSelectListFieldComponent,
22242
22404
  WriteTextFieldComponent,
22243
22405
  WriteDateContainerFieldComponent,
22244
22406
  WriteTextAreaFieldComponent,
@@ -22262,12 +22424,18 @@ PaletteModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
22262
22424
  WriteCollectionFieldComponent,
22263
22425
  // ComponentLauncher web components
22264
22426
  CaseFileViewFieldComponent,
22265
- CaseFileViewFieldReadComponent,
22266
22427
  CaseFileViewFolderComponent,
22267
22428
  CaseFileViewFolderSortComponent,
22268
22429
  CaseFileViewOverlayMenuComponent,
22269
22430
  CaseFileViewFolderDocumentActionsComponent,
22270
22431
  CaseFileViewFolderSelectorComponent,
22432
+ // component for dynamic list
22433
+ WriteDynamicMultiSelectListFieldComponent,
22434
+ WriteDynamicRadioListFieldComponent,
22435
+ WriteDynamicListFieldComponent,
22436
+ ReadDynamicMultiSelectListFieldComponent,
22437
+ ReadDynamicListFieldComponent,
22438
+ ReadDynamicRadioListFieldComponent,
22271
22439
  LinkedCasesToTableComponent,
22272
22440
  LinkedCasesFromTableComponent,
22273
22441
  BeforeYouStartComponent,
@@ -22357,6 +22525,8 @@ PaletteModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
22357
22525
  WriteDocumentFieldComponent,
22358
22526
  WriteDynamicListFieldComponent,
22359
22527
  WriteDynamicRadioListFieldComponent,
22528
+ WriteDynamicMultiSelectListFieldComponent,
22529
+ ReadDynamicMultiSelectListFieldComponent,
22360
22530
  WriteTextFieldComponent,
22361
22531
  WriteDateContainerFieldComponent,
22362
22532
  WriteTextAreaFieldComponent,
@@ -22380,12 +22550,18 @@ PaletteModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
22380
22550
  WriteCollectionFieldComponent,
22381
22551
  // ComponentLauncher web components
22382
22552
  CaseFileViewFieldComponent,
22383
- CaseFileViewFieldReadComponent,
22384
22553
  CaseFileViewFolderComponent,
22385
22554
  CaseFileViewFolderSortComponent,
22386
22555
  CaseFileViewOverlayMenuComponent,
22387
22556
  CaseFileViewFolderDocumentActionsComponent,
22388
22557
  CaseFileViewFolderSelectorComponent,
22558
+ // component for dynamic list
22559
+ WriteDynamicMultiSelectListFieldComponent,
22560
+ WriteDynamicRadioListFieldComponent,
22561
+ WriteDynamicListFieldComponent,
22562
+ ReadDynamicMultiSelectListFieldComponent,
22563
+ ReadDynamicListFieldComponent,
22564
+ ReadDynamicRadioListFieldComponent,
22389
22565
  LinkedCasesToTableComponent,
22390
22566
  LinkedCasesFromTableComponent,
22391
22567
  BeforeYouStartComponent,
@@ -22510,8 +22686,7 @@ i0.ɵɵsetComponentScope(WriteDateContainerFieldComponent, [i1.NgIf, DatetimePic
22510
22686
  i0.ɵɵsetComponentScope(WriteCollectionFieldComponent, [i1.NgIf, i1.NgForOf, FieldWriteComponent, i2.NgControlStatusGroup, i2.FormGroupDirective], [FieldLabelPipe, FirstErrorPipe]);
22511
22687
  i0.ɵɵsetComponentScope(
22512
22688
  // ComponentLauncher web components
22513
- CaseFileViewFieldComponent, [i1.NgIf, CaseFileViewFolderComponent, i11.ɵcs], []);
22514
- i0.ɵɵsetComponentScope(CaseFileViewFieldReadComponent, [i1.NgIf, CaseFileViewFolderComponent, i11.ɵcs], []);
22689
+ CaseFileViewFieldComponent, [i1.NgIf, CaseFileViewFolderComponent, i11.MediaViewerComponent], []);
22515
22690
  i0.ɵɵsetComponentScope(LinkedCasesToTableComponent, [i1.NgIf, i1.NgForOf], [CaseReferencePipe, LinkCasesReasonValuePipe]);
22516
22691
  i0.ɵɵsetComponentScope(LinkedCasesFromTableComponent, [i1.NgIf, i1.NgForOf], [CaseReferencePipe, LinkCasesFromReasonValuePipe]);
22517
22692
  i0.ɵɵsetComponentScope(LinkCasesComponent, [i1.NgIf, i2.NgControlStatusGroup, i2.FormGroupDirective, i1.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.FormControlName, i2.FormArrayName, i1.NgForOf, i2.FormGroupName, i2.CheckboxControlValueAccessor], [CaseReferencePipe, LinkCasesReasonValuePipe]);
@@ -31204,5 +31379,5 @@ class TestRouteSnapshotBuilder {
31204
31379
  * Generated bundle index. Do not edit.
31205
31380
  */
31206
31381
 
31207
- export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFieldReadComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagFieldState, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagText, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FocusElementDirective, FocusElementModule, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HasLoadingState, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, MarkdownComponent, MoneyGbpInputComponent, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RouterHelperService, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, textFieldType, viewerRouting };
31382
+ export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagFieldState, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagText, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FocusElementDirective, FocusElementModule, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HasLoadingState, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, MarkdownComponent, MoneyGbpInputComponent, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicMultiSelectListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RouterHelperService, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicMultiSelectListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, textFieldType, viewerRouting };
31208
31383
  //# sourceMappingURL=hmcts-ccd-case-ui-toolkit.js.map