@hmcts/ccd-case-ui-toolkit 6.13.10-eui-4157 → 6.13.10-f

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 (54) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +592 -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/shared/components/case-editor/services/cases.service.js +7 -4
  6. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +2 -2
  7. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +2 -2
  8. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field.component.js +12 -5
  9. package/esm2015/lib/shared/components/palette/case-file-view/index.js +1 -2
  10. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +13 -2
  11. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/index.js +3 -0
  12. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.js +47 -0
  13. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +153 -0
  14. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +5 -6
  15. package/esm2015/lib/shared/components/palette/index.js +2 -1
  16. package/esm2015/lib/shared/components/palette/palette.module.js +29 -6
  17. package/esm2015/lib/shared/components/palette/palette.service.js +5 -3
  18. package/esm2015/lib/shared/domain/definition/case-field.model.js +6 -3
  19. package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
  20. package/esm2015/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.js +14 -11
  21. package/esm2015/lib/shared/services/form/field-type-sanitiser.js +16 -1
  22. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +564 -381
  23. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  24. package/lib/shared/components/case-editor/services/cases.service.d.ts +3 -1
  25. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  26. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts +5 -2
  27. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts.map +1 -1
  28. package/lib/shared/components/palette/case-file-view/index.d.ts +0 -1
  29. package/lib/shared/components/palette/case-file-view/index.d.ts.map +1 -1
  30. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +1 -0
  31. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  32. package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts +3 -0
  33. package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts.map +1 -0
  34. package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts +9 -0
  35. package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts.map +1 -0
  36. package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts +17 -0
  37. package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts.map +1 -0
  38. package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts +1 -1
  39. package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts.map +1 -1
  40. package/lib/shared/components/palette/index.d.ts +1 -0
  41. package/lib/shared/components/palette/index.d.ts.map +1 -1
  42. package/lib/shared/components/palette/palette.module.d.ts +60 -59
  43. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  44. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  45. package/lib/shared/domain/definition/case-field.model.d.ts.map +1 -1
  46. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  47. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  48. package/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.d.ts.map +1 -1
  49. package/lib/shared/services/form/field-type-sanitiser.d.ts +2 -0
  50. package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.js +0 -72
  53. package/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.d.ts +0 -8
  54. 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,13 +7210,215 @@ WizardPageFieldToCaseFieldMapper.ɵprov = i0.ɵɵdefineInjectable({ token: Wizar
7192
7210
  }]
7193
7211
  }], null, null); })();
7194
7212
 
7213
+ const MULTIPLE_TASKS_FOUND = 'More than one task found!';
7214
+ class WorkAllocationService {
7215
+ constructor(http, appConfig, errorService, alertService, sessionStorageService) {
7216
+ this.http = http;
7217
+ this.appConfig = appConfig;
7218
+ this.errorService = errorService;
7219
+ this.alertService = alertService;
7220
+ this.sessionStorageService = sessionStorageService;
7221
+ // Check to see if work allocation is enabled
7222
+ }
7223
+ /**
7224
+ * Call the API to get tasks matching the search criteria.
7225
+ * @param searchRequest The search parameters that specify which tasks to match.
7226
+ */
7227
+ searchTasks(searchRequest) {
7228
+ // Do not need to check if WA enabled as parent method will do that
7229
+ const url = `${this.appConfig.getWorkAllocationApiUrl()}/searchForCompletable`;
7230
+ return this.http
7231
+ .post(url, { searchRequest }, null, false)
7232
+ .pipe(map(response => response), catchError(error => {
7233
+ this.errorService.setError(error);
7234
+ // explicitly eat away 401 error and 400 error
7235
+ if (error && error.status && (error.status === 401 || error.status === 400)) {
7236
+ // do nothing
7237
+ console.log('error status 401 or 400', error);
7238
+ }
7239
+ else {
7240
+ return throwError(error);
7241
+ }
7242
+ }));
7243
+ }
7244
+ isWAEnabled(jurisdiction, caseType) {
7245
+ this.features = this.appConfig.getWAServiceConfig();
7246
+ let enabled = false;
7247
+ if (!jurisdiction || !caseType) {
7248
+ const caseInfo = JSON.parse(this.sessionStorageService.getItem('caseInfo'));
7249
+ jurisdiction = caseInfo.jurisdiction;
7250
+ caseType = caseInfo.caseType;
7251
+ }
7252
+ if (!this.features || !this.features.configurations) {
7253
+ return false;
7254
+ }
7255
+ this.features.configurations.forEach(serviceConfig => {
7256
+ if (serviceConfig.serviceName === jurisdiction && (serviceConfig.caseTypes.indexOf(caseType) !== -1)) {
7257
+ enabled = true;
7258
+ }
7259
+ });
7260
+ return enabled;
7261
+ }
7262
+ /**
7263
+ * Call the API to assign a task.
7264
+ * @param taskId specifies which task should be assigned.
7265
+ * @param userId specifies the user the task should be assigned to.
7266
+ */
7267
+ assignTask(taskId, userId) {
7268
+ if (!this.isWAEnabled()) {
7269
+ return of(null);
7270
+ }
7271
+ const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/assign`;
7272
+ return this.http
7273
+ .post(url, { userId })
7274
+ .pipe(catchError(error => {
7275
+ this.errorService.setError(error);
7276
+ return throwError(error);
7277
+ }));
7278
+ }
7279
+ /**
7280
+ * Call the API to complete a task.
7281
+ * @param taskId specifies which task should be completed.
7282
+ */
7283
+ completeTask(taskId) {
7284
+ if (!this.isWAEnabled()) {
7285
+ return of(null);
7286
+ }
7287
+ const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;
7288
+ return this.http
7289
+ .post(url, {})
7290
+ .pipe(catchError(error => {
7291
+ this.errorService.setError(error);
7292
+ // this will subscribe to get the user details and decide whether to display an error message
7293
+ this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
7294
+ this.handleTaskCompletionError(response);
7295
+ });
7296
+ return throwError(error);
7297
+ }));
7298
+ }
7299
+ /**
7300
+ * Call the API to assign and complete a task.
7301
+ * @param taskId specifies which task should be completed.
7302
+ */
7303
+ assignAndCompleteTask(taskId) {
7304
+ if (!this.isWAEnabled()) {
7305
+ return of(null);
7306
+ }
7307
+ const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;
7308
+ return this.http
7309
+ .post(url, {
7310
+ completion_options: {
7311
+ assign_and_complete: true
7312
+ }
7313
+ })
7314
+ .pipe(catchError(error => {
7315
+ this.errorService.setError(error);
7316
+ // this will subscribe to get the user details and decide whether to display an error message
7317
+ this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
7318
+ this.handleTaskCompletionError(response);
7319
+ });
7320
+ return throwError(error);
7321
+ }));
7322
+ }
7323
+ /**
7324
+ * Handles the response from the observable to get the user details when task is completed.
7325
+ * @param response is the response given from the observable which contains the user detaild.
7326
+ */
7327
+ handleTaskCompletionError(response) {
7328
+ const userDetails = response;
7329
+ if (this.userIsCaseworker(userDetails.userInfo.roles)) {
7330
+ // when submitting the completion of task if not yet rendered cases/case confirm then preserve the alert for re-rendering
7331
+ this.alertService.setPreserveAlerts(true, ['cases/case', 'submit']);
7332
+ this.alertService.warning('A task could not be completed successfully. Please complete the task associated with the case manually.');
7333
+ }
7334
+ }
7335
+ /**
7336
+ * Returns true if the user's role is equivalent to a caseworker.
7337
+ * @param roles is the list of roles found from the current user.
7338
+ */
7339
+ userIsCaseworker(roles) {
7340
+ const lowerCaseRoles = roles.map(role => role.toLowerCase());
7341
+ // When/if lib & target permanently change to es2016, replace indexOf with includes
7342
+ return (lowerCaseRoles.indexOf(WorkAllocationService.iACCaseOfficer) !== -1)
7343
+ || (lowerCaseRoles.indexOf(WorkAllocationService.iACAdmOfficer) !== -1);
7344
+ }
7345
+ /**
7346
+ * Look for open tasks for a case and event combination. There are 5 possible scenarios:
7347
+ * 1. No tasks found => Success.
7348
+ * 2. One task found => Mark as done => Success.
7349
+ * 3. One task found => Mark as done throws error => Failure.
7350
+ * 4. More than one task found => Failure.
7351
+ * 5. Search call throws an error => Failure.
7352
+ * @param ccdId The ID of the case to find tasks for.
7353
+ * @param eventId The ID of the event to find tasks for.
7354
+ */
7355
+ completeAppropriateTask(ccdId, eventId, jurisdiction, caseTypeId) {
7356
+ if (!this.isWAEnabled(jurisdiction, caseTypeId)) {
7357
+ return of(null);
7358
+ }
7359
+ const taskSearchParameter = {
7360
+ ccdId,
7361
+ eventId,
7362
+ jurisdiction,
7363
+ caseTypeId
7364
+ };
7365
+ return this.searchTasks(taskSearchParameter)
7366
+ .pipe(map((response) => {
7367
+ const tasks = response.tasks;
7368
+ if (tasks && tasks.length > 0) {
7369
+ if (tasks.length === 1) {
7370
+ this.completeTask(tasks[0].id).subscribe();
7371
+ }
7372
+ else {
7373
+ // This is a problem. Throw an appropriate error.
7374
+ throw new Error(MULTIPLE_TASKS_FOUND);
7375
+ }
7376
+ }
7377
+ return true; // All good. Nothing to see here.
7378
+ }), catchError(error => {
7379
+ // Simply rethrow it.
7380
+ return throwError(error);
7381
+ }));
7382
+ }
7383
+ /**
7384
+ * Return tasks for case and event.
7385
+ */
7386
+ getTasksByCaseIdAndEventId(eventId, caseId, caseType, jurisdiction) {
7387
+ const defaultPayload = {
7388
+ task_required_for_event: false,
7389
+ tasks: []
7390
+ };
7391
+ if (!this.isWAEnabled()) {
7392
+ return of(defaultPayload);
7393
+ }
7394
+ return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/case/tasks/${caseId}/event/${eventId}/caseType/${caseType}/jurisdiction/${jurisdiction}`);
7395
+ }
7396
+ /**
7397
+ * Call the API to get a task
7398
+ */
7399
+ getTask(taskId) {
7400
+ if (!this.isWAEnabled()) {
7401
+ return of({ task: null });
7402
+ }
7403
+ return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}`);
7404
+ }
7405
+ }
7406
+ WorkAllocationService.iACCaseOfficer = 'caseworker-ia-caseofficer';
7407
+ WorkAllocationService.iACAdmOfficer = 'caseworker-ia-admofficer';
7408
+ 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)); };
7409
+ WorkAllocationService.ɵprov = i0.ɵɵdefineInjectable({ token: WorkAllocationService, factory: WorkAllocationService.ɵfac });
7410
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkAllocationService, [{
7411
+ type: Injectable
7412
+ }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: HttpErrorService }, { type: AlertService }, { type: SessionStorageService }]; }, null); })();
7413
+
7195
7414
  class CasesService {
7196
- constructor(http, appConfig, orderService, errorService, wizardPageFieldToCaseFieldMapper, loadingService, sessionStorageService) {
7415
+ constructor(http, appConfig, orderService, errorService, wizardPageFieldToCaseFieldMapper, workAllocationService, loadingService, sessionStorageService) {
7197
7416
  this.http = http;
7198
7417
  this.appConfig = appConfig;
7199
7418
  this.orderService = orderService;
7200
7419
  this.errorService = errorService;
7201
7420
  this.wizardPageFieldToCaseFieldMapper = wizardPageFieldToCaseFieldMapper;
7421
+ this.workAllocationService = workAllocationService;
7202
7422
  this.loadingService = loadingService;
7203
7423
  this.sessionStorageService = sessionStorageService;
7204
7424
  this.get = this.getCaseView;
@@ -7424,11 +7644,11 @@ CasesService.V2_MEDIATYPE_CASE_DATA_VALIDATE = 'application/vnd.uk.gov.hmcts.ccd
7424
7644
  CasesService.V2_MEDIATYPE_CREATE_EVENT = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-event.v2+json;charset=UTF-8';
7425
7645
  CasesService.V2_MEDIATYPE_CREATE_CASE = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-case.v2+json;charset=UTF-8';
7426
7646
  CasesService.PUI_CASE_MANAGER = 'pui-case-manager';
7427
- 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)); };
7647
+ 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)); };
7428
7648
  CasesService.ɵprov = i0.ɵɵdefineInjectable({ token: CasesService, factory: CasesService.ɵfac });
7429
7649
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CasesService, [{
7430
7650
  type: Injectable
7431
- }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: OrderService }, { type: HttpErrorService }, { type: WizardPageFieldToCaseFieldMapper }, { type: LoadingService }, { type: SessionStorageService }]; }, null); })();
7651
+ }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: OrderService }, { type: HttpErrorService }, { type: WizardPageFieldToCaseFieldMapper }, { type: WorkAllocationService }, { type: LoadingService }, { type: SessionStorageService }]; }, null); })();
7432
7652
 
7433
7653
  class EventTriggerService {
7434
7654
  constructor() {
@@ -8007,230 +8227,29 @@ class PageValidationService {
8007
8227
  }
8008
8228
  return !condition.match(formFields.data, path);
8009
8229
  }
8010
- checkDocumentField(caseField, theControl) {
8011
- if (caseField.field_type.id !== 'Document') {
8012
- return true;
8013
- }
8014
- return !(this.checkMandatoryField(caseField, theControl));
8015
- }
8016
- checkOptionalField(caseField, theControl) {
8017
- if (!theControl) {
8018
- return this.caseFieldService.isOptional(caseField);
8019
- }
8020
- else {
8021
- return theControl.valid || theControl.disabled;
8022
- }
8023
- }
8024
- checkMandatoryField(caseField, theControl) {
8025
- return this.caseFieldService.isMandatory(caseField) && theControl === null;
8026
- }
8027
- }
8028
- PageValidationService.ɵfac = function PageValidationService_Factory(t) { return new (t || PageValidationService)(i0.ɵɵinject(CaseFieldService)); };
8029
- PageValidationService.ɵprov = i0.ɵɵdefineInjectable({ token: PageValidationService, factory: PageValidationService.ɵfac });
8030
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageValidationService, [{
8031
- type: Injectable
8032
- }], function () { return [{ type: CaseFieldService }]; }, null); })();
8033
-
8034
- const MULTIPLE_TASKS_FOUND = 'More than one task found!';
8035
- class WorkAllocationService {
8036
- constructor(http, appConfig, errorService, alertService, sessionStorageService) {
8037
- this.http = http;
8038
- this.appConfig = appConfig;
8039
- this.errorService = errorService;
8040
- this.alertService = alertService;
8041
- this.sessionStorageService = sessionStorageService;
8042
- // Check to see if work allocation is enabled
8043
- }
8044
- /**
8045
- * Call the API to get tasks matching the search criteria.
8046
- * @param searchRequest The search parameters that specify which tasks to match.
8047
- */
8048
- searchTasks(searchRequest) {
8049
- // Do not need to check if WA enabled as parent method will do that
8050
- const url = `${this.appConfig.getWorkAllocationApiUrl()}/searchForCompletable`;
8051
- return this.http
8052
- .post(url, { searchRequest }, null, false)
8053
- .pipe(map(response => response), catchError(error => {
8054
- this.errorService.setError(error);
8055
- // explicitly eat away 401 error and 400 error
8056
- if (error && error.status && (error.status === 401 || error.status === 400)) {
8057
- // do nothing
8058
- console.log('error status 401 or 400', error);
8059
- }
8060
- else {
8061
- return throwError(error);
8062
- }
8063
- }));
8064
- }
8065
- isWAEnabled(jurisdiction, caseType) {
8066
- this.features = this.appConfig.getWAServiceConfig();
8067
- let enabled = false;
8068
- if (!jurisdiction || !caseType) {
8069
- const caseInfo = JSON.parse(this.sessionStorageService.getItem('caseInfo'));
8070
- jurisdiction = caseInfo.jurisdiction;
8071
- caseType = caseInfo.caseType;
8072
- }
8073
- if (!this.features || !this.features.configurations) {
8074
- return false;
8075
- }
8076
- this.features.configurations.forEach(serviceConfig => {
8077
- if (serviceConfig.serviceName === jurisdiction && (serviceConfig.caseTypes.indexOf(caseType) !== -1)) {
8078
- enabled = true;
8079
- }
8080
- });
8081
- return enabled;
8082
- }
8083
- /**
8084
- * Call the API to assign a task.
8085
- * @param taskId specifies which task should be assigned.
8086
- * @param userId specifies the user the task should be assigned to.
8087
- */
8088
- assignTask(taskId, userId) {
8089
- if (!this.isWAEnabled()) {
8090
- return of(null);
8091
- }
8092
- const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/assign`;
8093
- return this.http
8094
- .post(url, { userId })
8095
- .pipe(catchError(error => {
8096
- this.errorService.setError(error);
8097
- return throwError(error);
8098
- }));
8099
- }
8100
- /**
8101
- * Call the API to complete a task.
8102
- * @param taskId specifies which task should be completed.
8103
- */
8104
- completeTask(taskId) {
8105
- if (!this.isWAEnabled()) {
8106
- return of(null);
8107
- }
8108
- const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;
8109
- return this.http
8110
- .post(url, {})
8111
- .pipe(catchError(error => {
8112
- this.errorService.setError(error);
8113
- // this will subscribe to get the user details and decide whether to display an error message
8114
- this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
8115
- this.handleTaskCompletionError(response);
8116
- });
8117
- return throwError(error);
8118
- }));
8119
- }
8120
- /**
8121
- * Call the API to assign and complete a task.
8122
- * @param taskId specifies which task should be completed.
8123
- */
8124
- assignAndCompleteTask(taskId) {
8125
- if (!this.isWAEnabled()) {
8126
- return of(null);
8127
- }
8128
- const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;
8129
- return this.http
8130
- .post(url, {
8131
- completion_options: {
8132
- assign_and_complete: true
8133
- }
8134
- })
8135
- .pipe(catchError(error => {
8136
- this.errorService.setError(error);
8137
- // this will subscribe to get the user details and decide whether to display an error message
8138
- this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
8139
- this.handleTaskCompletionError(response);
8140
- });
8141
- return throwError(error);
8142
- }));
8143
- }
8144
- /**
8145
- * Handles the response from the observable to get the user details when task is completed.
8146
- * @param response is the response given from the observable which contains the user detaild.
8147
- */
8148
- handleTaskCompletionError(response) {
8149
- const userDetails = response;
8150
- if (this.userIsCaseworker(userDetails.userInfo.roles)) {
8151
- // when submitting the completion of task if not yet rendered cases/case confirm then preserve the alert for re-rendering
8152
- this.alertService.setPreserveAlerts(true, ['cases/case', 'submit']);
8153
- this.alertService.warning('A task could not be completed successfully. Please complete the task associated with the case manually.');
8154
- }
8155
- }
8156
- /**
8157
- * Returns true if the user's role is equivalent to a caseworker.
8158
- * @param roles is the list of roles found from the current user.
8159
- */
8160
- userIsCaseworker(roles) {
8161
- const lowerCaseRoles = roles.map(role => role.toLowerCase());
8162
- // When/if lib & target permanently change to es2016, replace indexOf with includes
8163
- return (lowerCaseRoles.indexOf(WorkAllocationService.iACCaseOfficer) !== -1)
8164
- || (lowerCaseRoles.indexOf(WorkAllocationService.iACAdmOfficer) !== -1);
8165
- }
8166
- /**
8167
- * Look for open tasks for a case and event combination. There are 5 possible scenarios:
8168
- * 1. No tasks found => Success.
8169
- * 2. One task found => Mark as done => Success.
8170
- * 3. One task found => Mark as done throws error => Failure.
8171
- * 4. More than one task found => Failure.
8172
- * 5. Search call throws an error => Failure.
8173
- * @param ccdId The ID of the case to find tasks for.
8174
- * @param eventId The ID of the event to find tasks for.
8175
- */
8176
- completeAppropriateTask(ccdId, eventId, jurisdiction, caseTypeId) {
8177
- if (!this.isWAEnabled(jurisdiction, caseTypeId)) {
8178
- return of(null);
8179
- }
8180
- const taskSearchParameter = {
8181
- ccdId,
8182
- eventId,
8183
- jurisdiction,
8184
- caseTypeId
8185
- };
8186
- return this.searchTasks(taskSearchParameter)
8187
- .pipe(map((response) => {
8188
- const tasks = response.tasks;
8189
- if (tasks && tasks.length > 0) {
8190
- if (tasks.length === 1) {
8191
- this.completeTask(tasks[0].id).subscribe();
8192
- }
8193
- else {
8194
- // This is a problem. Throw an appropriate error.
8195
- throw new Error(MULTIPLE_TASKS_FOUND);
8196
- }
8197
- }
8198
- return true; // All good. Nothing to see here.
8199
- }), catchError(error => {
8200
- // Simply rethrow it.
8201
- return throwError(error);
8202
- }));
8203
- }
8204
- /**
8205
- * Return tasks for case and event.
8206
- */
8207
- getTasksByCaseIdAndEventId(eventId, caseId, caseType, jurisdiction) {
8208
- const defaultPayload = {
8209
- task_required_for_event: false,
8210
- tasks: []
8211
- };
8212
- if (!this.isWAEnabled()) {
8213
- return of(defaultPayload);
8230
+ checkDocumentField(caseField, theControl) {
8231
+ if (caseField.field_type.id !== 'Document') {
8232
+ return true;
8214
8233
  }
8215
- return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/case/tasks/${caseId}/event/${eventId}/caseType/${caseType}/jurisdiction/${jurisdiction}`);
8234
+ return !(this.checkMandatoryField(caseField, theControl));
8216
8235
  }
8217
- /**
8218
- * Call the API to get a task
8219
- */
8220
- getTask(taskId) {
8221
- if (!this.isWAEnabled()) {
8222
- return of({ task: null });
8236
+ checkOptionalField(caseField, theControl) {
8237
+ if (!theControl) {
8238
+ return this.caseFieldService.isOptional(caseField);
8239
+ }
8240
+ else {
8241
+ return theControl.valid || theControl.disabled;
8223
8242
  }
8224
- return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}`);
8243
+ }
8244
+ checkMandatoryField(caseField, theControl) {
8245
+ return this.caseFieldService.isMandatory(caseField) && theControl === null;
8225
8246
  }
8226
8247
  }
8227
- WorkAllocationService.iACCaseOfficer = 'caseworker-ia-caseofficer';
8228
- WorkAllocationService.iACAdmOfficer = 'caseworker-ia-admofficer';
8229
- 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)); };
8230
- WorkAllocationService.ɵprov = i0.ɵɵdefineInjectable({ token: WorkAllocationService, factory: WorkAllocationService.ɵfac });
8231
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkAllocationService, [{
8248
+ PageValidationService.ɵfac = function PageValidationService_Factory(t) { return new (t || PageValidationService)(i0.ɵɵinject(CaseFieldService)); };
8249
+ PageValidationService.ɵprov = i0.ɵɵdefineInjectable({ token: PageValidationService, factory: PageValidationService.ɵfac });
8250
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageValidationService, [{
8232
8251
  type: Injectable
8233
- }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: HttpErrorService }, { type: AlertService }, { type: SessionStorageService }]; }, null); })();
8252
+ }], function () { return [{ type: CaseFieldService }]; }, null); })();
8234
8253
 
8235
8254
  class CaseEditComponent {
8236
8255
  constructor(fb, router, route, fieldsUtils, fieldsPurger, registrarService, wizardFactory, sessionStorageService, windowsService) {
@@ -9829,7 +9848,7 @@ WriteComplexFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteComplexFi
9829
9848
  type: Input
9830
9849
  }] }); })();
9831
9850
 
9832
- const _c0$R = ["writeComplexFieldComponent"];
9851
+ const _c0$S = ["writeComplexFieldComponent"];
9833
9852
  function WriteAddressFieldComponent_div_1_div_4_span_4_Template(rf, ctx) { if (rf & 1) {
9834
9853
  i0.ɵɵelementStart(0, "span", 14);
9835
9854
  i0.ɵɵtext(1, "Enter the Postcode");
@@ -10022,7 +10041,7 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
10022
10041
  }
10023
10042
  WriteAddressFieldComponent.ɵfac = function WriteAddressFieldComponent_Factory(t) { return new (t || WriteAddressFieldComponent)(i0.ɵɵdirectiveInject(AddressesService), i0.ɵɵdirectiveInject(IsCompoundPipe)); };
10024
10043
  WriteAddressFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteAddressFieldComponent, selectors: [["ccd-write-address-field"]], viewQuery: function WriteAddressFieldComponent_Query(rf, ctx) { if (rf & 1) {
10025
- i0.ɵɵviewQuery(_c0$R, 1);
10044
+ i0.ɵɵviewQuery(_c0$S, 1);
10026
10045
  i0.ɵɵviewQuery(FocusElementDirective, 1);
10027
10046
  } if (rf & 2) {
10028
10047
  let _t;
@@ -10148,12 +10167,13 @@ function CaseFileViewFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10148
10167
  i0.ɵɵproperty("ngIf", ctx_r1.currentDocument);
10149
10168
  } }
10150
10169
  class CaseFileViewFieldComponent {
10151
- constructor(elementRef, route, caseFileViewService, documentManagementService, loadingService) {
10170
+ constructor(elementRef, route, caseFileViewService, documentManagementService, loadingService, sessionStorageService) {
10152
10171
  this.elementRef = elementRef;
10153
10172
  this.route = route;
10154
10173
  this.caseFileViewService = caseFileViewService;
10155
10174
  this.documentManagementService = documentManagementService;
10156
10175
  this.loadingService = loadingService;
10176
+ this.sessionStorageService = sessionStorageService;
10157
10177
  this.allowMoving = true;
10158
10178
  this.getCategoriesAndDocumentsError = false;
10159
10179
  }
@@ -10166,6 +10186,12 @@ class CaseFileViewFieldComponent {
10166
10186
  },
10167
10187
  error: _ => this.getCategoriesAndDocumentsError = true
10168
10188
  });
10189
+ // EXUI-8000
10190
+ const userInfo = JSON.parse(this.sessionStorageService.getItem('userDetails'));
10191
+ // Get acls that intersects from acl roles and user roles
10192
+ const acls = this.caseField.acls.filter(acl => userInfo.roles.includes(acl.role));
10193
+ // As there can be more than one intersecting role, if any acls are update: true
10194
+ this.allowMoving = acls.some(acl => acl.update);
10169
10195
  }
10170
10196
  ngAfterViewInit() {
10171
10197
  const slider = this.elementRef.nativeElement.querySelector('.slider');
@@ -10211,7 +10237,7 @@ class CaseFileViewFieldComponent {
10211
10237
  }
10212
10238
  }
10213
10239
  CaseFileViewFieldComponent.PARAM_CASE_ID = 'cid';
10214
- 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)); };
10240
+ 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)); };
10215
10241
  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) {
10216
10242
  i0.ɵɵtemplate(0, CaseFileViewFieldComponent_div_0_Template, 5, 0, "div", 0);
10217
10243
  i0.ɵɵtemplate(1, CaseFileViewFieldComponent_div_1_Template, 9, 3, "div", 1);
@@ -10227,76 +10253,7 @@ CaseFileViewFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewFi
10227
10253
  templateUrl: './case-file-view-field.component.html',
10228
10254
  styleUrls: ['./case-file-view-field.component.scss'],
10229
10255
  }]
10230
- }], function () { return [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }]; }, null); })();
10231
-
10232
- function CaseFileViewFieldReadComponent_div_0_Template(rf, ctx) { if (rf & 1) {
10233
- i0.ɵɵelementStart(0, "div", 2);
10234
- i0.ɵɵelementStart(1, "h1", 3);
10235
- i0.ɵɵtext(2, "Sorry, there is a problem with the service");
10236
- i0.ɵɵelementEnd();
10237
- i0.ɵɵelementStart(3, "p", 4);
10238
- i0.ɵɵtext(4, "Try again later.");
10239
- i0.ɵɵelementEnd();
10240
- i0.ɵɵelementEnd();
10241
- } }
10242
- function CaseFileViewFieldReadComponent_div_1_ng_container_8_Template(rf, ctx) { if (rf & 1) {
10243
- i0.ɵɵelementContainerStart(0);
10244
- i0.ɵɵelement(1, "mv-media-viewer", 11);
10245
- i0.ɵɵelementContainerEnd();
10246
- } if (rf & 2) {
10247
- const ctx_r2 = i0.ɵɵnextContext(2);
10248
- i0.ɵɵadvance(1);
10249
- 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");
10250
- } }
10251
- function CaseFileViewFieldReadComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10252
- const _r4 = i0.ɵɵgetCurrentView();
10253
- i0.ɵɵelementStart(0, "div");
10254
- i0.ɵɵelementStart(1, "h2", 5);
10255
- i0.ɵɵtext(2, "Case file");
10256
- i0.ɵɵelementEnd();
10257
- i0.ɵɵelementStart(3, "div", 6);
10258
- i0.ɵɵelementStart(4, "div", 7);
10259
- i0.ɵɵelementStart(5, "ccd-case-file-view-folder", 8);
10260
- 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); });
10261
- i0.ɵɵelementEnd();
10262
- i0.ɵɵelementEnd();
10263
- i0.ɵɵelement(6, "div", 9);
10264
- i0.ɵɵelementStart(7, "div", 10);
10265
- i0.ɵɵtemplate(8, CaseFileViewFieldReadComponent_div_1_ng_container_8_Template, 2, 7, "ng-container", 1);
10266
- i0.ɵɵelementEnd();
10267
- i0.ɵɵelementEnd();
10268
- i0.ɵɵelementEnd();
10269
- } if (rf & 2) {
10270
- const ctx_r1 = i0.ɵɵnextContext();
10271
- i0.ɵɵadvance(5);
10272
- i0.ɵɵproperty("categoriesAndDocuments", ctx_r1.categoriesAndDocuments$)("allowMoving", ctx_r1.allowMoving);
10273
- i0.ɵɵadvance(3);
10274
- i0.ɵɵproperty("ngIf", ctx_r1.currentDocument);
10275
- } }
10276
- class CaseFileViewFieldReadComponent extends CaseFileViewFieldComponent {
10277
- constructor() {
10278
- super(...arguments);
10279
- this.allowMoving = false;
10280
- }
10281
- }
10282
- CaseFileViewFieldReadComponent.ɵfac = function CaseFileViewFieldReadComponent_Factory(t) { return ɵCaseFileViewFieldReadComponent_BaseFactory(t || CaseFileViewFieldReadComponent); };
10283
- 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) {
10284
- i0.ɵɵtemplate(0, CaseFileViewFieldReadComponent_div_0_Template, 5, 0, "div", 0);
10285
- i0.ɵɵtemplate(1, CaseFileViewFieldReadComponent_div_1_Template, 9, 3, "div", 1);
10286
- } if (rf & 2) {
10287
- i0.ɵɵproperty("ngIf", ctx.getCategoriesAndDocumentsError);
10288
- i0.ɵɵadvance(1);
10289
- i0.ɵɵproperty("ngIf", !ctx.getCategoriesAndDocumentsError);
10290
- } }, 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}"] });
10291
- const ɵCaseFileViewFieldReadComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(CaseFileViewFieldReadComponent);
10292
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFieldReadComponent, [{
10293
- type: Component,
10294
- args: [{
10295
- selector: 'ccd-case-file-view-field',
10296
- templateUrl: './case-file-view-field.component.html',
10297
- styleUrls: ['./case-file-view-field.component.scss'],
10298
- }]
10299
- }], null, null); })();
10256
+ }], function () { return [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }, { type: SessionStorageService }]; }, null); })();
10300
10257
 
10301
10258
  var AddCommentsErrorMessage;
10302
10259
  (function (AddCommentsErrorMessage) {
@@ -10608,7 +10565,7 @@ function WriteCaseFlagFieldComponent_div_1_ng_container_7_Template(rf, ctx) { if
10608
10565
  i0.ɵɵadvance(1);
10609
10566
  i0.ɵɵproperty("formGroup", ctx_r10.caseFlagParentFormGroup)("optional", ctx_r10.flagCommentsOptional);
10610
10567
  } }
10611
- const _c0$Q = function (a0) { return { "form-group-error": a0 }; };
10568
+ const _c0$R = function (a0) { return { "form-group-error": a0 }; };
10612
10569
  function WriteCaseFlagFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10613
10570
  i0.ɵɵelementStart(0, "div", 8);
10614
10571
  i0.ɵɵelementStart(1, "div", 9);
@@ -10627,7 +10584,7 @@ function WriteCaseFlagFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10627
10584
  i0.ɵɵadvance(1);
10628
10585
  i0.ɵɵproperty("ngSwitch", ctx_r1.fieldState);
10629
10586
  i0.ɵɵadvance(1);
10630
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$Q, ctx_r1.errorMessages.length > 0));
10587
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$R, ctx_r1.errorMessages.length > 0));
10631
10588
  i0.ɵɵadvance(1);
10632
10589
  i0.ɵɵtextInterpolate1(" ", ctx_r1.createFlagCaption, " ");
10633
10590
  i0.ɵɵadvance(1);
@@ -11064,7 +11021,7 @@ const ɵReadCaseLinkFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInherit
11064
11021
  }]
11065
11022
  }], null, null); })();
11066
11023
 
11067
- const _c0$P = ["writeComplexFieldComponent"];
11024
+ const _c0$Q = ["writeComplexFieldComponent"];
11068
11025
  function WriteCaseLinkFieldComponent_span_2_Template(rf, ctx) { if (rf & 1) {
11069
11026
  i0.ɵɵelementStart(0, "span", 6);
11070
11027
  i0.ɵɵtext(1);
@@ -11142,7 +11099,7 @@ class WriteCaseLinkFieldComponent extends AbstractFieldWriteComponent {
11142
11099
  }
11143
11100
  WriteCaseLinkFieldComponent.ɵfac = function WriteCaseLinkFieldComponent_Factory(t) { return ɵWriteCaseLinkFieldComponent_BaseFactory(t || WriteCaseLinkFieldComponent); };
11144
11101
  WriteCaseLinkFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCaseLinkFieldComponent, selectors: [["ccd-write-case-link-field"]], viewQuery: function WriteCaseLinkFieldComponent_Query(rf, ctx) { if (rf & 1) {
11145
- i0.ɵɵviewQuery(_c0$P, 1);
11102
+ i0.ɵɵviewQuery(_c0$Q, 1);
11146
11103
  } if (rf & 2) {
11147
11104
  let _t;
11148
11105
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.writeComplexFieldComponent = _t.first);
@@ -11180,7 +11137,7 @@ const ɵWriteCaseLinkFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheri
11180
11137
  args: ['writeComplexFieldComponent']
11181
11138
  }] }); })();
11182
11139
 
11183
- 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 }; };
11140
+ 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 }; };
11184
11141
  function ReadCollectionFieldComponent_table_0_tbody_2_Template(rf, ctx) { if (rf & 1) {
11185
11142
  i0.ɵɵelementStart(0, "tbody");
11186
11143
  i0.ɵɵelementStart(1, "tr");
@@ -11193,7 +11150,7 @@ function ReadCollectionFieldComponent_table_0_tbody_2_Template(rf, ctx) { if (rf
11193
11150
  } if (rf & 2) {
11194
11151
  const ctx_r1 = i0.ɵɵnextContext(2);
11195
11152
  i0.ɵɵadvance(4);
11196
- 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);
11153
+ 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);
11197
11154
  } }
11198
11155
  const _c1$k = function (a0, a1, a2, a3, a4) { return { id: a0, label: a1, field_type: a2, value: a3, hidden: a4 }; };
11199
11156
  function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { if (rf & 1) {
@@ -11321,7 +11278,7 @@ RemoveDialogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RemoveDialogCompone
11321
11278
  }]
11322
11279
  }], function () { return [{ type: i1$3.MatDialogRef }]; }, null); })();
11323
11280
 
11324
- const _c0$N = ["collectionItem"];
11281
+ const _c0$O = ["collectionItem"];
11325
11282
  function WriteCollectionFieldComponent_h2_7_span_1_Template(rf, ctx) { if (rf & 1) {
11326
11283
  i0.ɵɵelementStart(0, "span", 9);
11327
11284
  i0.ɵɵtext(1);
@@ -11528,7 +11485,12 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
11528
11485
  addItem(doScroll) {
11529
11486
  // Manually resetting errors is required to prevent `ExpressionChangedAfterItHasBeenCheckedError`
11530
11487
  this.formArray.setErrors(null);
11531
- const item = { value: null };
11488
+ let item = { value: null };
11489
+ if (this.isCollectionDynamic()) {
11490
+ item = Object.assign({}, this.caseField.value[this.caseField.value.length - 1]);
11491
+ const key = Number(item['id'][item['id'].length - 1]) + 1;
11492
+ item.id = item['id'].replace(/.$/, key.toString());
11493
+ }
11532
11494
  this.caseField.value.push(item);
11533
11495
  const index = this.caseField.value.length - 1;
11534
11496
  const caseField = this.buildCaseField(item, index, true);
@@ -11551,6 +11513,12 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
11551
11513
  setTimeout(() => this.focusLastItem());
11552
11514
  }
11553
11515
  }
11516
+ isCollectionDynamic() {
11517
+ if (!this.caseField.field_type || !this.caseField.field_type.collection_field_type) {
11518
+ return false;
11519
+ }
11520
+ return this.caseField.field_type.collection_field_type.id === 'DynamicRadioList';
11521
+ }
11554
11522
  newCaseField(id, item, index, isNew = false) {
11555
11523
  const isNotAuthorisedToUpdate = !isNew && this.isNotAuthorisedToUpdate(index);
11556
11524
  const fieldType = plainToClassFromExist(new FieldType(), this.caseField.field_type.collection_field_type);
@@ -11695,7 +11663,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
11695
11663
  }
11696
11664
  WriteCollectionFieldComponent.ɵfac = function WriteCollectionFieldComponent_Factory(t) { return new (t || WriteCollectionFieldComponent)(i0.ɵɵdirectiveInject(i1$3.MatDialog), i0.ɵɵdirectiveInject(i2$1.ScrollToService), i0.ɵɵdirectiveInject(ProfileNotifier)); };
11697
11665
  WriteCollectionFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCollectionFieldComponent, selectors: [["ccd-write-collection-field"]], viewQuery: function WriteCollectionFieldComponent_Query(rf, ctx) { if (rf & 1) {
11698
- i0.ɵɵviewQuery(_c0$N, 1);
11666
+ i0.ɵɵviewQuery(_c0$O, 1);
11699
11667
  } if (rf & 2) {
11700
11668
  let _t;
11701
11669
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);
@@ -12015,7 +11983,7 @@ FileUploadStateService.ɵprov = i0.ɵɵdefineInjectable({ token: FileUploadState
12015
11983
  type: Injectable
12016
11984
  }], null, null); })();
12017
11985
 
12018
- const _c0$M = ["fileInput"];
11986
+ const _c0$N = ["fileInput"];
12019
11987
  function WriteDocumentFieldComponent_span_6_Template(rf, ctx) { if (rf & 1) {
12020
11988
  i0.ɵɵelementStart(0, "span", 12);
12021
11989
  i0.ɵɵtext(1);
@@ -12293,7 +12261,7 @@ WriteDocumentFieldComponent.UPLOAD_ERROR_NOT_AVAILABLE = 'Document upload facili
12293
12261
  WriteDocumentFieldComponent.UPLOAD_WAITING_FILE_STATUS = 'Uploading...';
12294
12262
  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)); };
12295
12263
  WriteDocumentFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteDocumentFieldComponent, selectors: [["ccd-write-document-field"]], viewQuery: function WriteDocumentFieldComponent_Query(rf, ctx) { if (rf & 1) {
12296
- i0.ɵɵviewQuery(_c0$M, 1);
12264
+ i0.ɵɵviewQuery(_c0$N, 1);
12297
12265
  } if (rf & 2) {
12298
12266
  let _t;
12299
12267
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileInput = _t.first);
@@ -12455,7 +12423,7 @@ function WriteDynamicListFieldComponent_option_9_Template(rf, ctx) { if (rf & 1)
12455
12423
  i0.ɵɵadvance(1);
12456
12424
  i0.ɵɵtextInterpolate(type_r5.label);
12457
12425
  } }
12458
- const _c0$L = function (a0) { return { "form-group-error": a0 }; };
12426
+ const _c0$M = function (a0) { return { "form-group-error": a0 }; };
12459
12427
  class WriteDynamicListFieldComponent extends AbstractFieldWriteComponent {
12460
12428
  ngOnInit() {
12461
12429
  /**
@@ -12497,7 +12465,7 @@ WriteDynamicListFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteDynam
12497
12465
  i0.ɵɵelementEnd();
12498
12466
  i0.ɵɵelementEnd();
12499
12467
  } if (rf & 2) {
12500
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$L, !ctx.dynamicListFormControl.valid && (ctx.dynamicListFormControl.dirty || ctx.dynamicListFormControl.touched)));
12468
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$M, !ctx.dynamicListFormControl.valid && (ctx.dynamicListFormControl.dirty || ctx.dynamicListFormControl.touched)));
12501
12469
  i0.ɵɵadvance(1);
12502
12470
  i0.ɵɵproperty("for", ctx.id());
12503
12471
  i0.ɵɵadvance(1);
@@ -12618,7 +12586,7 @@ function WriteDynamicRadioListFieldComponent_span_7_Template(rf, ctx) { if (rf &
12618
12586
  i0.ɵɵadvance(1);
12619
12587
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r3.dynamicRadioListControl.errors));
12620
12588
  } }
12621
- const _c0$K = function (a0) { return { selected: a0 }; };
12589
+ const _c0$L = function (a0) { return { selected: a0 }; };
12622
12590
  function WriteDynamicRadioListFieldComponent_div_9_Template(rf, ctx) { if (rf & 1) {
12623
12591
  i0.ɵɵelementStart(0, "div", 10);
12624
12592
  i0.ɵɵelement(1, "input", 11);
@@ -12629,12 +12597,11 @@ function WriteDynamicRadioListFieldComponent_div_9_Template(rf, ctx) { if (rf &
12629
12597
  } if (rf & 2) {
12630
12598
  const radioButton_r5 = ctx.$implicit;
12631
12599
  const ctx_r4 = i0.ɵɵnextContext();
12632
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0$K, ctx_r4.dynamicRadioListControl.value === radioButton_r5.code));
12600
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0$L, ctx_r4.dynamicRadioListControl.value === radioButton_r5.code));
12633
12601
  i0.ɵɵadvance(1);
12634
- i0.ɵɵpropertyInterpolate("name", ctx_r4.id());
12635
- i0.ɵɵproperty("id", ctx_r4.buildElementId(radioButton_r5.code))("formControl", ctx_r4.dynamicRadioListControl)("value", radioButton_r5.code);
12602
+ i0.ɵɵproperty("id", ctx_r4.createElementId(radioButton_r5.code))("name", ctx_r4.createElementId(radioButton_r5.code))("formControl", ctx_r4.dynamicRadioListControl)("value", radioButton_r5.code);
12636
12603
  i0.ɵɵadvance(1);
12637
- i0.ɵɵproperty("for", ctx_r4.buildElementId(radioButton_r5.code));
12604
+ i0.ɵɵproperty("for", ctx_r4.createElementId(radioButton_r5.code));
12638
12605
  i0.ɵɵadvance(1);
12639
12606
  i0.ɵɵtextInterpolate(radioButton_r5.label);
12640
12607
  } }
@@ -12658,8 +12625,8 @@ class WriteDynamicRadioListFieldComponent extends AbstractFieldWriteComponent {
12658
12625
  this.dynamicRadioListControl = this.registerControl(new FormControl(this.caseField.value));
12659
12626
  this.dynamicRadioListControl.setValue(this.caseField.value);
12660
12627
  }
12661
- buildElementId(name) {
12662
- return `${this.id()}-${name}`;
12628
+ createElementId(name) {
12629
+ return this.parent && this.parent.value ? this.parent.value.id + this.parent.value.value : super.createElementId(name);
12663
12630
  }
12664
12631
  }
12665
12632
  WriteDynamicRadioListFieldComponent.ɵfac = function WriteDynamicRadioListFieldComponent_Factory(t) { return ɵWriteDynamicRadioListFieldComponent_BaseFactory(t || WriteDynamicRadioListFieldComponent); };
@@ -12763,7 +12730,7 @@ function WriteEmailFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
12763
12730
  i0.ɵɵadvance(1);
12764
12731
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.emailControl.errors, ctx_r2.caseField.label));
12765
12732
  } }
12766
- const _c0$J = function (a0) { return { "form-group-error": a0 }; };
12733
+ const _c0$K = function (a0) { return { "form-group-error": a0 }; };
12767
12734
  const _c1$h = function (a0) { return { "govuk-input--error": a0 }; };
12768
12735
  class WriteEmailFieldComponent extends AbstractFieldWriteComponent {
12769
12736
  ngOnInit() {
@@ -12781,7 +12748,7 @@ WriteEmailFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteEmailFieldC
12781
12748
  i0.ɵɵelement(5, "input", 5);
12782
12749
  i0.ɵɵelementEnd();
12783
12750
  } if (rf & 2) {
12784
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$J, !ctx.emailControl.valid && (ctx.emailControl.dirty || ctx.emailControl.touched)));
12751
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$K, !ctx.emailControl.valid && (ctx.emailControl.dirty || ctx.emailControl.touched)));
12785
12752
  i0.ɵɵadvance(1);
12786
12753
  i0.ɵɵproperty("for", ctx.id());
12787
12754
  i0.ɵɵadvance(1);
@@ -12883,7 +12850,7 @@ function WriteFixedListFieldComponent_option_8_Template(rf, ctx) { if (rf & 1) {
12883
12850
  i0.ɵɵadvance(1);
12884
12851
  i0.ɵɵtextInterpolate(type_r4.label);
12885
12852
  } }
12886
- const _c0$I = function (a0) { return { "form-group-error": a0 }; };
12853
+ const _c0$J = function (a0) { return { "form-group-error": a0 }; };
12887
12854
  class WriteFixedListFieldComponent extends AbstractFieldWriteComponent {
12888
12855
  get listItems() {
12889
12856
  if (this.caseField) {
@@ -12921,7 +12888,7 @@ WriteFixedListFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteFixedLi
12921
12888
  i0.ɵɵelementEnd();
12922
12889
  i0.ɵɵelementEnd();
12923
12890
  } if (rf & 2) {
12924
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0$I, !ctx.fixedListFormControl.valid && (ctx.fixedListFormControl.dirty || ctx.fixedListFormControl.touched)));
12891
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0$J, !ctx.fixedListFormControl.valid && (ctx.fixedListFormControl.dirty || ctx.fixedListFormControl.touched)));
12925
12892
  i0.ɵɵadvance(1);
12926
12893
  i0.ɵɵproperty("for", ctx.id());
12927
12894
  i0.ɵɵadvance(1);
@@ -13012,7 +12979,7 @@ function WriteFixedRadioListFieldComponent_span_6_Template(rf, ctx) { if (rf & 1
13012
12979
  i0.ɵɵadvance(1);
13013
12980
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.fixedRadioListControl.errors, ctx_r2.caseField.label));
13014
12981
  } }
13015
- const _c0$H = function (a0) { return { selected: a0 }; };
12982
+ const _c0$I = function (a0) { return { selected: a0 }; };
13016
12983
  function WriteFixedRadioListFieldComponent_div_8_Template(rf, ctx) { if (rf & 1) {
13017
12984
  i0.ɵɵelementStart(0, "div", 9);
13018
12985
  i0.ɵɵelement(1, "input", 10);
@@ -13023,7 +12990,7 @@ function WriteFixedRadioListFieldComponent_div_8_Template(rf, ctx) { if (rf & 1)
13023
12990
  } if (rf & 2) {
13024
12991
  const radioButton_r4 = ctx.$implicit;
13025
12992
  const ctx_r3 = i0.ɵɵnextContext();
13026
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0$H, ctx_r3.fixedRadioListControl.value === radioButton_r4.code));
12993
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0$I, ctx_r3.fixedRadioListControl.value === radioButton_r4.code));
13027
12994
  i0.ɵɵadvance(1);
13028
12995
  i0.ɵɵproperty("id", ctx_r3.id() + "-" + radioButton_r4.code)("name", ctx_r3.id())("formControl", ctx_r3.fixedRadioListControl)("value", radioButton_r4.code);
13029
12996
  i0.ɵɵadvance(1);
@@ -13154,7 +13121,7 @@ function WriteJudicialUserFieldComponent_span_3_Template(rf, ctx) { if (rf & 1)
13154
13121
  i0.ɵɵadvance(1);
13155
13122
  i0.ɵɵtextInterpolate1(" ", ctx_r1.caseField.hint_text, " ");
13156
13123
  } }
13157
- const _c0$G = function (a0) { return { "hide-autocomplete": a0 }; };
13124
+ const _c0$H = function (a0) { return { "hide-autocomplete": a0 }; };
13158
13125
  function WriteJudicialUserFieldComponent_mat_option_7_Template(rf, ctx) { if (rf & 1) {
13159
13126
  const _r7 = i0.ɵɵgetCurrentView();
13160
13127
  i0.ɵɵelementStart(0, "mat-option", 11);
@@ -13164,7 +13131,7 @@ function WriteJudicialUserFieldComponent_mat_option_7_Template(rf, ctx) { if (rf
13164
13131
  } if (rf & 2) {
13165
13132
  const judicialUser_r5 = ctx.$implicit;
13166
13133
  const ctx_r3 = i0.ɵɵnextContext();
13167
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$G, !ctx_r3.showAutocomplete))("value", judicialUser_r5.idamId);
13134
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$H, !ctx_r3.showAutocomplete))("value", judicialUser_r5.idamId);
13168
13135
  i0.ɵɵadvance(1);
13169
13136
  i0.ɵɵtextInterpolate2(" ", judicialUser_r5.fullName, " (", judicialUser_r5.emailId, ") ");
13170
13137
  } }
@@ -13860,7 +13827,7 @@ function LinkCasesComponent_div_8_div_14_span_3_Template(rf, ctx) { if (rf & 1)
13860
13827
  i0.ɵɵadvance(3);
13861
13828
  i0.ɵɵtextInterpolate1(" ", ctx_r13.caseReasonCommentsError, " ");
13862
13829
  } }
13863
- const _c0$F = function (a0) { return { "govuk-form-group--error": a0 }; };
13830
+ const _c0$G = function (a0) { return { "govuk-form-group--error": a0 }; };
13864
13831
  function LinkCasesComponent_div_8_div_14_Template(rf, ctx) { if (rf & 1) {
13865
13832
  i0.ɵɵelementStart(0, "div", 35);
13866
13833
  i0.ɵɵelementStart(1, "h3", 22);
@@ -13876,7 +13843,7 @@ function LinkCasesComponent_div_8_div_14_Template(rf, ctx) { if (rf & 1) {
13876
13843
  i0.ɵɵelementEnd();
13877
13844
  } if (rf & 2) {
13878
13845
  const ctx_r7 = i0.ɵɵnextContext(2);
13879
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c0$F, !!ctx_r7.caseReasonCommentsError));
13846
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c0$G, !!ctx_r7.caseReasonCommentsError));
13880
13847
  i0.ɵɵadvance(3);
13881
13848
  i0.ɵɵproperty("ngIf", ctx_r7.caseReasonCommentsError);
13882
13849
  } }
@@ -13927,11 +13894,11 @@ function LinkCasesComponent_div_8_Template(rf, ctx) { if (rf & 1) {
13927
13894
  const ctx_r0 = i0.ɵɵnextContext();
13928
13895
  i0.ɵɵproperty("formGroup", ctx_r0.linkCaseForm);
13929
13896
  i0.ɵɵadvance(1);
13930
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$F, !!ctx_r0.caseNumberError));
13897
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$G, !!ctx_r0.caseNumberError));
13931
13898
  i0.ɵɵadvance(3);
13932
13899
  i0.ɵɵproperty("ngIf", ctx_r0.caseNumberError);
13933
13900
  i0.ɵɵadvance(2);
13934
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$F, !!ctx_r0.caseReasonError));
13901
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$G, !!ctx_r0.caseReasonError));
13935
13902
  i0.ɵɵadvance(5);
13936
13903
  i0.ɵɵproperty("ngIf", ctx_r0.caseReasonError);
13937
13904
  i0.ɵɵadvance(2);
@@ -14342,7 +14309,7 @@ LinkCasesComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LinkCasesComponent, se
14342
14309
  i0.ɵɵadvance(4);
14343
14310
  i0.ɵɵproperty("ngIf", ctx.linkCaseForm);
14344
14311
  i0.ɵɵadvance(4);
14345
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0$F, !!ctx.noSelectedCaseError));
14312
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0$G, !!ctx.noSelectedCaseError));
14346
14313
  i0.ɵɵadvance(1);
14347
14314
  i0.ɵɵproperty("ngIf", ctx.noSelectedCaseError);
14348
14315
  i0.ɵɵadvance(18);
@@ -14951,7 +14918,7 @@ function UnLinkCasesComponent_div_0_div_4_div_3_Template(rf, ctx) { if (rf & 1)
14951
14918
  i0.ɵɵadvance(1);
14952
14919
  i0.ɵɵtextInterpolate2(" ", case_r4.caseName, " ", i0.ɵɵpipeBind1(4, 6, case_r4.caseReference), " ");
14953
14920
  } }
14954
- const _c0$E = function (a0) { return { "govuk-form-group--error": a0 }; };
14921
+ const _c0$F = function (a0) { return { "govuk-form-group--error": a0 }; };
14955
14922
  function UnLinkCasesComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
14956
14923
  i0.ɵɵelementStart(0, "div", 7);
14957
14924
  i0.ɵɵtemplate(1, UnLinkCasesComponent_div_0_div_4_p_1_Template, 4, 1, "p", 8);
@@ -14961,7 +14928,7 @@ function UnLinkCasesComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
14961
14928
  i0.ɵɵelementEnd();
14962
14929
  } if (rf & 2) {
14963
14930
  const ctx_r1 = i0.ɵɵnextContext(2);
14964
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$E, ctx_r1.unlinkErrorMessage))("formGroup", ctx_r1.unlinkCaseForm);
14931
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$F, ctx_r1.unlinkErrorMessage))("formGroup", ctx_r1.unlinkCaseForm);
14965
14932
  i0.ɵɵadvance(1);
14966
14933
  i0.ɵɵproperty("ngIf", ctx_r1.unlinkErrorMessage);
14967
14934
  i0.ɵɵadvance(2);
@@ -15780,7 +15747,7 @@ function WriteMoneyGbpFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
15780
15747
  i0.ɵɵadvance(1);
15781
15748
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.moneyGbpControl.errors, ctx_r2.caseField.label));
15782
15749
  } }
15783
- const _c0$D = function (a0) { return { "form-group-error": a0 }; };
15750
+ const _c0$E = function (a0) { return { "form-group-error": a0 }; };
15784
15751
  class WriteMoneyGbpFieldComponent extends AbstractFieldWriteComponent {
15785
15752
  ngOnInit() {
15786
15753
  this.moneyGbpControl = this.registerControl(new FormControl(this.caseField.value));
@@ -15803,7 +15770,7 @@ WriteMoneyGbpFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteMoneyGbp
15803
15770
  i0.ɵɵelementEnd();
15804
15771
  i0.ɵɵelementEnd();
15805
15772
  } if (rf & 2) {
15806
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c0$D, !ctx.moneyGbpControl.valid && (ctx.moneyGbpControl.dirty || ctx.moneyGbpControl.touched)));
15773
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c0$E, !ctx.moneyGbpControl.valid && (ctx.moneyGbpControl.dirty || ctx.moneyGbpControl.touched)));
15807
15774
  i0.ɵɵadvance(1);
15808
15775
  i0.ɵɵproperty("for", ctx.id());
15809
15776
  i0.ɵɵadvance(1);
@@ -15920,7 +15887,7 @@ function WriteMultiSelectListFieldComponent_ng_container_6_Template(rf, ctx) { i
15920
15887
  i0.ɵɵadvance(1);
15921
15888
  i0.ɵɵtextInterpolate(checkbox_r4.label);
15922
15889
  } }
15923
- const _c0$C = function (a0) { return { "error": a0 }; };
15890
+ const _c0$D = function (a0) { return { "error": a0 }; };
15924
15891
  class WriteMultiSelectListFieldComponent extends AbstractFieldWriteComponent {
15925
15892
  ngOnInit() {
15926
15893
  this.checkboxes = new FormArray([]);
@@ -15975,7 +15942,7 @@ WriteMultiSelectListFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteM
15975
15942
  i0.ɵɵelementEnd();
15976
15943
  i0.ɵɵelementEnd();
15977
15944
  } if (rf & 2) {
15978
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0$C, !ctx.checkboxes.valid && (ctx.checkboxes.dirty || ctx.checkboxes.touched)))("id", ctx.id());
15945
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0$D, !ctx.checkboxes.valid && (ctx.checkboxes.dirty || ctx.checkboxes.touched)))("id", ctx.id());
15979
15946
  i0.ɵɵadvance(3);
15980
15947
  i0.ɵɵproperty("ngIf", ctx.caseField.label);
15981
15948
  i0.ɵɵadvance(1);
@@ -16044,7 +16011,7 @@ function WriteNumberFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
16044
16011
  i0.ɵɵadvance(1);
16045
16012
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.numberControl.errors, ctx_r2.caseField.label));
16046
16013
  } }
16047
- const _c0$B = function (a0) { return { "form-group-error": a0 }; };
16014
+ const _c0$C = function (a0) { return { "form-group-error": a0 }; };
16048
16015
  const _c1$e = function (a0) { return { "govuk-input--error": a0 }; };
16049
16016
  class WriteNumberFieldComponent extends AbstractFieldWriteComponent {
16050
16017
  ngOnInit() {
@@ -16062,7 +16029,7 @@ WriteNumberFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteNumberFiel
16062
16029
  i0.ɵɵelement(5, "input", 5);
16063
16030
  i0.ɵɵelementEnd();
16064
16031
  } if (rf & 2) {
16065
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$B, !ctx.numberControl.valid && ctx.numberControl.dirty));
16032
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$C, !ctx.numberControl.valid && ctx.numberControl.dirty));
16066
16033
  i0.ɵɵadvance(1);
16067
16034
  i0.ɵɵproperty("for", ctx.id());
16068
16035
  i0.ɵɵadvance(1);
@@ -16312,7 +16279,7 @@ function WriteOrganisationFieldComponent_fieldset_3_div_14_div_4_Template(rf, ct
16312
16279
  i0.ɵɵelementEnd();
16313
16280
  i0.ɵɵelementEnd();
16314
16281
  } }
16315
- const _c0$A = function (a0) { return { "scroll-container ": a0 }; };
16282
+ const _c0$B = function (a0) { return { "scroll-container ": a0 }; };
16316
16283
  function WriteOrganisationFieldComponent_fieldset_3_div_14_Template(rf, ctx) { if (rf & 1) {
16317
16284
  i0.ɵɵelementStart(0, "div", 26);
16318
16285
  i0.ɵɵpipe(1, "async");
@@ -16326,7 +16293,7 @@ function WriteOrganisationFieldComponent_fieldset_3_div_14_Template(rf, ctx) { i
16326
16293
  const ctx_r2 = i0.ɵɵnextContext(2);
16327
16294
  let tmp_0_0 = null;
16328
16295
  let tmp_2_0 = null;
16329
- 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));
16296
+ 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));
16330
16297
  i0.ɵɵadvance(2);
16331
16298
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(3, 5, ctx_r2.simpleOrganisations$));
16332
16299
  i0.ɵɵadvance(2);
@@ -16676,6 +16643,194 @@ CasePaymentHistoryViewerFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: Ca
16676
16643
  }]
16677
16644
  }], function () { return [{ type: AbstractAppConfig }, { type: SessionStorageService }]; }, null); })();
16678
16645
 
16646
+ function ReadDynamicMultiSelectListFieldComponent_div_0_Template(rf, ctx) { if (rf & 1) {
16647
+ i0.ɵɵelementStart(0, "div");
16648
+ i0.ɵɵtext(1);
16649
+ i0.ɵɵpipe(2, "ccdFixedList");
16650
+ i0.ɵɵelementEnd();
16651
+ } if (rf & 2) {
16652
+ const value_r1 = ctx.$implicit;
16653
+ const ctx_r0 = i0.ɵɵnextContext();
16654
+ i0.ɵɵadvance(1);
16655
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, value_r1.code, ctx_r0.caseField.list_items), "\n");
16656
+ } }
16657
+ class ReadDynamicMultiSelectListFieldComponent extends AbstractFieldReadComponent {
16658
+ ngOnInit() {
16659
+ /**
16660
+ *
16661
+ * Reassigning list_items from formatted_list when list_items is empty
16662
+ */
16663
+ if (!this.caseField.list_items && this.caseField.formatted_value && this.caseField.formatted_value.list_items) {
16664
+ this.caseField.list_items = this.caseField.formatted_value.list_items;
16665
+ }
16666
+ if (!this.caseField.value && this.caseField.formatted_value && this.caseField.formatted_value.value) {
16667
+ this.caseField.value = this.caseField.formatted_value.value;
16668
+ }
16669
+ super.ngOnInit();
16670
+ }
16671
+ }
16672
+ ReadDynamicMultiSelectListFieldComponent.ɵfac = function ReadDynamicMultiSelectListFieldComponent_Factory(t) { return ɵReadDynamicMultiSelectListFieldComponent_BaseFactory(t || ReadDynamicMultiSelectListFieldComponent); };
16673
+ 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) {
16674
+ i0.ɵɵtemplate(0, ReadDynamicMultiSelectListFieldComponent_div_0_Template, 3, 4, "div", 0);
16675
+ } if (rf & 2) {
16676
+ i0.ɵɵproperty("ngForOf", ctx.caseField.value);
16677
+ } }, 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}"] });
16678
+ const ɵReadDynamicMultiSelectListFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(ReadDynamicMultiSelectListFieldComponent);
16679
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadDynamicMultiSelectListFieldComponent, [{
16680
+ type: Component,
16681
+ args: [{
16682
+ selector: 'ccd-read-dynamic-multi-select-list-field',
16683
+ templateUrl: './read-dynamic-multi-select-list-field.html',
16684
+ styleUrls: ['./read-dynamic-multi-select-list-field.component.scss']
16685
+ }]
16686
+ }], null, null); })();
16687
+
16688
+ function WriteDynamicMultiSelectListFieldComponent_span_3_Template(rf, ctx) { if (rf & 1) {
16689
+ i0.ɵɵelementStart(0, "span", 5);
16690
+ i0.ɵɵtext(1);
16691
+ i0.ɵɵpipe(2, "ccdFieldLabel");
16692
+ i0.ɵɵelementEnd();
16693
+ } if (rf & 2) {
16694
+ const ctx_r0 = i0.ɵɵnextContext();
16695
+ i0.ɵɵadvance(1);
16696
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r0.caseField));
16697
+ } }
16698
+ function WriteDynamicMultiSelectListFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
16699
+ i0.ɵɵelementStart(0, "span", 6);
16700
+ i0.ɵɵtext(1);
16701
+ i0.ɵɵelementEnd();
16702
+ } if (rf & 2) {
16703
+ const ctx_r1 = i0.ɵɵnextContext();
16704
+ i0.ɵɵadvance(1);
16705
+ i0.ɵɵtextInterpolate(ctx_r1.caseField.hint_text);
16706
+ } }
16707
+ function WriteDynamicMultiSelectListFieldComponent_span_5_Template(rf, ctx) { if (rf & 1) {
16708
+ i0.ɵɵelementStart(0, "span", 7);
16709
+ i0.ɵɵtext(1);
16710
+ i0.ɵɵpipe(2, "ccdFirstError");
16711
+ i0.ɵɵelementEnd();
16712
+ } if (rf & 2) {
16713
+ const ctx_r2 = i0.ɵɵnextContext();
16714
+ i0.ɵɵadvance(1);
16715
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r2.checkboxes.errors));
16716
+ } }
16717
+ function WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template(rf, ctx) { if (rf & 1) {
16718
+ const _r6 = i0.ɵɵgetCurrentView();
16719
+ i0.ɵɵelementContainerStart(0);
16720
+ i0.ɵɵelementStart(1, "div", 8);
16721
+ i0.ɵɵelementStart(2, "input", 9);
16722
+ 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); });
16723
+ i0.ɵɵelementEnd();
16724
+ i0.ɵɵelementStart(3, "label", 10);
16725
+ i0.ɵɵtext(4);
16726
+ i0.ɵɵelementEnd();
16727
+ i0.ɵɵelementEnd();
16728
+ i0.ɵɵelementContainerEnd();
16729
+ } if (rf & 2) {
16730
+ const checkbox_r4 = ctx.$implicit;
16731
+ const ctx_r3 = i0.ɵɵnextContext();
16732
+ i0.ɵɵadvance(2);
16733
+ i0.ɵɵpropertyInterpolate("id", ctx_r3.createElementId(checkbox_r4.code));
16734
+ i0.ɵɵpropertyInterpolate("name", ctx_r3.id());
16735
+ i0.ɵɵproperty("value", checkbox_r4.code)("checked", ctx_r3.isSelected(checkbox_r4.code));
16736
+ i0.ɵɵadvance(1);
16737
+ i0.ɵɵpropertyInterpolate("for", ctx_r3.createElementId(checkbox_r4.code));
16738
+ i0.ɵɵadvance(1);
16739
+ i0.ɵɵtextInterpolate(checkbox_r4.label);
16740
+ } }
16741
+ const _c0$A = function (a0) { return { "error": a0 }; };
16742
+ class WriteDynamicMultiSelectListFieldComponent extends AbstractFieldWriteComponent {
16743
+ ngOnInit() {
16744
+ this.checkboxes = new FormArray([]);
16745
+ this.setInitialCaseList();
16746
+ this.setInitialCaseFieldValue();
16747
+ // Initialise array with existing values
16748
+ if (this.caseField.value && Array.isArray(this.caseField.value)) {
16749
+ const values = this.caseField.value;
16750
+ values.forEach(value => {
16751
+ this.checkboxes.push(new FormControl(value));
16752
+ });
16753
+ }
16754
+ this.dynamicListFormControl = this.registerControl(new FormControl(this.checkboxes.value));
16755
+ this.dynamicListFormControl.setValue(this.checkboxes.value);
16756
+ }
16757
+ onCheckChange(event) {
16758
+ const target = event.target;
16759
+ if (!target || !target.value) {
16760
+ return;
16761
+ }
16762
+ const selectedListItem = this.getValueListItem(target.value);
16763
+ if (!this.isSelected(target.value)) {
16764
+ // Add a new control in the FormArray
16765
+ this.checkboxes.push(new FormControl(selectedListItem));
16766
+ }
16767
+ else {
16768
+ // Remove the control from the FormArray
16769
+ this.checkboxes.controls.forEach((ctrl, i) => {
16770
+ if (ctrl.value.code === target.value) {
16771
+ this.checkboxes.removeAt(i);
16772
+ }
16773
+ });
16774
+ }
16775
+ this.dynamicListFormControl.setValue(this.checkboxes.value);
16776
+ }
16777
+ isSelected(code) {
16778
+ if (this.checkboxes && this.checkboxes.controls) {
16779
+ return this.checkboxes.controls.find(control => control.value.code === code);
16780
+ }
16781
+ }
16782
+ getValueListItem(value) {
16783
+ return this.caseField.list_items.find(i => i.code === value);
16784
+ }
16785
+ setInitialCaseList() {
16786
+ const hasListItems = this.caseField.list_items && this.caseField.list_items.length > 0;
16787
+ const hasFormattedListItems = this.caseField.formatted_value && this.caseField.formatted_value.list_items.length > 0;
16788
+ if (!hasListItems && hasFormattedListItems) {
16789
+ this.caseField.list_items = this.caseField.formatted_value.list_items;
16790
+ }
16791
+ }
16792
+ setInitialCaseFieldValue() {
16793
+ if (!this.caseField.value && this.caseField.formatted_value && this.caseField.formatted_value.value) {
16794
+ this.caseField.value = this.caseField.formatted_value.value;
16795
+ }
16796
+ const isNull = this.caseField.value === undefined || this.caseField.value === '';
16797
+ if (isNull || !Array.isArray(this.caseField.value)) {
16798
+ this.caseField.value = [];
16799
+ }
16800
+ }
16801
+ }
16802
+ WriteDynamicMultiSelectListFieldComponent.ɵfac = function WriteDynamicMultiSelectListFieldComponent_Factory(t) { return ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory(t || WriteDynamicMultiSelectListFieldComponent); };
16803
+ 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) {
16804
+ i0.ɵɵelementStart(0, "div", 0);
16805
+ i0.ɵɵelementStart(1, "fieldset");
16806
+ i0.ɵɵelementStart(2, "legend");
16807
+ i0.ɵɵtemplate(3, WriteDynamicMultiSelectListFieldComponent_span_3_Template, 3, 3, "span", 1);
16808
+ i0.ɵɵtemplate(4, WriteDynamicMultiSelectListFieldComponent_span_4_Template, 2, 1, "span", 2);
16809
+ i0.ɵɵtemplate(5, WriteDynamicMultiSelectListFieldComponent_span_5_Template, 3, 3, "span", 3);
16810
+ i0.ɵɵelementEnd();
16811
+ i0.ɵɵtemplate(6, WriteDynamicMultiSelectListFieldComponent_ng_container_6_Template, 5, 6, "ng-container", 4);
16812
+ i0.ɵɵelementEnd();
16813
+ i0.ɵɵelementEnd();
16814
+ } if (rf & 2) {
16815
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0$A, !ctx.checkboxes.valid && ctx.checkboxes.touched))("id", ctx.id());
16816
+ i0.ɵɵadvance(3);
16817
+ i0.ɵɵproperty("ngIf", ctx.caseField.label);
16818
+ i0.ɵɵadvance(1);
16819
+ i0.ɵɵproperty("ngIf", ctx.caseField.hint_text);
16820
+ i0.ɵɵadvance(1);
16821
+ i0.ɵɵproperty("ngIf", ctx.checkboxes.errors && ctx.checkboxes.touched);
16822
+ i0.ɵɵadvance(1);
16823
+ i0.ɵɵproperty("ngForOf", ctx.caseField.list_items);
16824
+ } }, directives: [i1.NgClass, i1.NgIf, i1.NgForOf], pipes: [FieldLabelPipe, FirstErrorPipe], encapsulation: 2 });
16825
+ const ɵWriteDynamicMultiSelectListFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(WriteDynamicMultiSelectListFieldComponent);
16826
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteDynamicMultiSelectListFieldComponent, [{
16827
+ type: Component,
16828
+ args: [{
16829
+ selector: 'ccd-write-dynamic-multi-select-list-field',
16830
+ templateUrl: './write-dynamic-multi-select-list-field.html'
16831
+ }]
16832
+ }], null, null); })();
16833
+
16679
16834
  class ReadPhoneUKFieldComponent extends AbstractFieldReadComponent {
16680
16835
  }
16681
16836
  ReadPhoneUKFieldComponent.ɵfac = function ReadPhoneUKFieldComponent_Factory(t) { return ɵReadPhoneUKFieldComponent_BaseFactory(t || ReadPhoneUKFieldComponent); };
@@ -17172,7 +17327,7 @@ WriteYesNoFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteYesNoFieldC
17172
17327
  class PaletteService {
17173
17328
  constructor() {
17174
17329
  this.componentLauncherRegistry = {
17175
- [DisplayContextCustomParameter.CaseFileView]: [CaseFileViewFieldComponent, CaseFileViewFieldReadComponent],
17330
+ [DisplayContextCustomParameter.CaseFileView]: [CaseFileViewFieldComponent, CaseFileViewFieldComponent],
17176
17331
  [DisplayContextCustomParameter.LinkedCases]: [WriteLinkedCasesFieldComponent, ReadLinkedCasesFieldComponent]
17177
17332
  };
17178
17333
  }
@@ -17202,6 +17357,8 @@ class PaletteService {
17202
17357
  return write ? WriteFixedListFieldComponent : ReadFixedListFieldComponent;
17203
17358
  case 'DynamicRadioList':
17204
17359
  return write ? WriteDynamicRadioListFieldComponent : ReadDynamicRadioListFieldComponent;
17360
+ case 'DynamicMultiSelectList':
17361
+ return write ? WriteDynamicMultiSelectListFieldComponent : ReadDynamicMultiSelectListFieldComponent;
17205
17362
  case 'FixedRadioList':
17206
17363
  return write ? WriteFixedRadioListFieldComponent : ReadFixedRadioListFieldComponent;
17207
17364
  case 'Complex':
@@ -17268,7 +17425,7 @@ PaletteService.ɵprov = i0.ɵɵdefineInjectable({ token: PaletteService, factory
17268
17425
  }], null, null); })();
17269
17426
 
17270
17427
  const _c0$v = ["fieldContainer"];
17271
- const FIX_CASEFIELD_FOR$1 = ['FixedList', 'DynamicList'];
17428
+ const FIX_CASEFIELD_FOR$1 = ['FixedList', 'DynamicList', 'DynamicMultiSelectList'];
17272
17429
  class FieldReadComponent extends AbstractFieldReadComponent {
17273
17430
  constructor(resolver, paletteService) {
17274
17431
  super();
@@ -17346,7 +17503,7 @@ FieldReadComponent.ɵcmp = i0.ɵɵdefineComponent({ type: FieldReadComponent, se
17346
17503
  }] }); })();
17347
17504
 
17348
17505
  const _c0$u = ["fieldContainer"];
17349
- const FIX_CASEFIELD_FOR = ['FixedList', 'DynamicList'];
17506
+ const FIX_CASEFIELD_FOR = ['FixedList', 'DynamicList', 'DynamicMultiSelectList'];
17350
17507
  class FieldWriteComponent extends AbstractFieldWriteComponent {
17351
17508
  constructor(resolver, paletteService) {
17352
17509
  super();
@@ -21691,23 +21848,26 @@ class ReadFieldsFilterPipe {
21691
21848
  || !ReadFieldsFilterPipe.isEmpty(value[field.id]);
21692
21849
  }
21693
21850
  static getValue(field, values, index) {
21694
- let value;
21695
- if (index >= 0) {
21696
- value = values[index].value[field.id];
21697
- }
21698
- else {
21699
- value = values[field.id];
21851
+ if (ReadFieldsFilterPipe.isEmpty(field.value)) {
21852
+ let value;
21853
+ if (index >= 0) {
21854
+ value = values[index].value[field.id];
21855
+ }
21856
+ else {
21857
+ value = values[field.id];
21858
+ }
21859
+ return value;
21700
21860
  }
21701
- return ReadFieldsFilterPipe.isEmpty(field.value) ? value : field.value;
21861
+ return field.value;
21702
21862
  }
21703
- static evaluateConditionalShow(field, formValue, path, formGroupAvaliable, fieldId) {
21863
+ static evaluateConditionalShow(field, formValue, path, formGroupAvailable, fieldId) {
21704
21864
  if (field.display_context === 'HIDDEN') {
21705
21865
  field.hidden = true;
21706
21866
  }
21707
21867
  else if (field.show_condition) {
21708
21868
  let cond;
21709
- if (fieldId && field.show_condition.indexOf(fieldId) > -1 && !formGroupAvaliable && !!Object.keys(formValue).length) {
21710
- const search = fieldId + '.';
21869
+ if (fieldId && field.show_condition.indexOf(`${fieldId}.`) > -1 && !formGroupAvailable && !!Object.keys(formValue).length) {
21870
+ const search = `${fieldId}.`;
21711
21871
  const searchRegExp = new RegExp(search, 'g');
21712
21872
  const replaceWith = '';
21713
21873
  cond = ShowCondition.getInstance(field.show_condition.replace(searchRegExp, replaceWith));
@@ -22077,6 +22237,8 @@ const PALETTE_COMPONENTS = [
22077
22237
  WriteDocumentFieldComponent,
22078
22238
  WriteDynamicListFieldComponent,
22079
22239
  WriteDynamicRadioListFieldComponent,
22240
+ WriteDynamicMultiSelectListFieldComponent,
22241
+ ReadDynamicMultiSelectListFieldComponent,
22080
22242
  WriteTextFieldComponent,
22081
22243
  WriteDateContainerFieldComponent,
22082
22244
  WriteTextAreaFieldComponent,
@@ -22100,12 +22262,18 @@ const PALETTE_COMPONENTS = [
22100
22262
  WriteCollectionFieldComponent,
22101
22263
  // ComponentLauncher web components
22102
22264
  CaseFileViewFieldComponent,
22103
- CaseFileViewFieldReadComponent,
22104
22265
  CaseFileViewFolderComponent,
22105
22266
  CaseFileViewFolderSortComponent,
22106
22267
  CaseFileViewOverlayMenuComponent,
22107
22268
  CaseFileViewFolderDocumentActionsComponent,
22108
22269
  CaseFileViewFolderSelectorComponent,
22270
+ // component for dynamic list
22271
+ WriteDynamicMultiSelectListFieldComponent,
22272
+ WriteDynamicRadioListFieldComponent,
22273
+ WriteDynamicListFieldComponent,
22274
+ ReadDynamicMultiSelectListFieldComponent,
22275
+ ReadDynamicListFieldComponent,
22276
+ ReadDynamicRadioListFieldComponent,
22109
22277
  LinkedCasesToTableComponent,
22110
22278
  LinkedCasesFromTableComponent,
22111
22279
  BeforeYouStartComponent,
@@ -22232,6 +22400,8 @@ PaletteModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
22232
22400
  WriteDocumentFieldComponent,
22233
22401
  WriteDynamicListFieldComponent,
22234
22402
  WriteDynamicRadioListFieldComponent,
22403
+ WriteDynamicMultiSelectListFieldComponent,
22404
+ ReadDynamicMultiSelectListFieldComponent,
22235
22405
  WriteTextFieldComponent,
22236
22406
  WriteDateContainerFieldComponent,
22237
22407
  WriteTextAreaFieldComponent,
@@ -22255,12 +22425,18 @@ PaletteModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
22255
22425
  WriteCollectionFieldComponent,
22256
22426
  // ComponentLauncher web components
22257
22427
  CaseFileViewFieldComponent,
22258
- CaseFileViewFieldReadComponent,
22259
22428
  CaseFileViewFolderComponent,
22260
22429
  CaseFileViewFolderSortComponent,
22261
22430
  CaseFileViewOverlayMenuComponent,
22262
22431
  CaseFileViewFolderDocumentActionsComponent,
22263
22432
  CaseFileViewFolderSelectorComponent,
22433
+ // component for dynamic list
22434
+ WriteDynamicMultiSelectListFieldComponent,
22435
+ WriteDynamicRadioListFieldComponent,
22436
+ WriteDynamicListFieldComponent,
22437
+ ReadDynamicMultiSelectListFieldComponent,
22438
+ ReadDynamicListFieldComponent,
22439
+ ReadDynamicRadioListFieldComponent,
22264
22440
  LinkedCasesToTableComponent,
22265
22441
  LinkedCasesFromTableComponent,
22266
22442
  BeforeYouStartComponent,
@@ -22350,6 +22526,8 @@ PaletteModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
22350
22526
  WriteDocumentFieldComponent,
22351
22527
  WriteDynamicListFieldComponent,
22352
22528
  WriteDynamicRadioListFieldComponent,
22529
+ WriteDynamicMultiSelectListFieldComponent,
22530
+ ReadDynamicMultiSelectListFieldComponent,
22353
22531
  WriteTextFieldComponent,
22354
22532
  WriteDateContainerFieldComponent,
22355
22533
  WriteTextAreaFieldComponent,
@@ -22373,12 +22551,18 @@ PaletteModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
22373
22551
  WriteCollectionFieldComponent,
22374
22552
  // ComponentLauncher web components
22375
22553
  CaseFileViewFieldComponent,
22376
- CaseFileViewFieldReadComponent,
22377
22554
  CaseFileViewFolderComponent,
22378
22555
  CaseFileViewFolderSortComponent,
22379
22556
  CaseFileViewOverlayMenuComponent,
22380
22557
  CaseFileViewFolderDocumentActionsComponent,
22381
22558
  CaseFileViewFolderSelectorComponent,
22559
+ // component for dynamic list
22560
+ WriteDynamicMultiSelectListFieldComponent,
22561
+ WriteDynamicRadioListFieldComponent,
22562
+ WriteDynamicListFieldComponent,
22563
+ ReadDynamicMultiSelectListFieldComponent,
22564
+ ReadDynamicListFieldComponent,
22565
+ ReadDynamicRadioListFieldComponent,
22382
22566
  LinkedCasesToTableComponent,
22383
22567
  LinkedCasesFromTableComponent,
22384
22568
  BeforeYouStartComponent,
@@ -22504,7 +22688,6 @@ i0.ɵɵsetComponentScope(WriteCollectionFieldComponent, [i1.NgIf, i1.NgForOf, Fi
22504
22688
  i0.ɵɵsetComponentScope(
22505
22689
  // ComponentLauncher web components
22506
22690
  CaseFileViewFieldComponent, [i1.NgIf, CaseFileViewFolderComponent, i11.ɵcs], []);
22507
- i0.ɵɵsetComponentScope(CaseFileViewFieldReadComponent, [i1.NgIf, CaseFileViewFolderComponent, i11.ɵcs], []);
22508
22691
  i0.ɵɵsetComponentScope(LinkedCasesToTableComponent, [i1.NgIf, i1.NgForOf], [CaseReferencePipe, LinkCasesReasonValuePipe]);
22509
22692
  i0.ɵɵsetComponentScope(LinkedCasesFromTableComponent, [i1.NgIf, i1.NgForOf], [CaseReferencePipe, LinkCasesFromReasonValuePipe]);
22510
22693
  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]);
@@ -31197,5 +31380,5 @@ class TestRouteSnapshotBuilder {
31197
31380
  * Generated bundle index. Do not edit.
31198
31381
  */
31199
31382
 
31200
- 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 };
31383
+ 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 };
31201
31384
  //# sourceMappingURL=hmcts-ccd-case-ui-toolkit.js.map