@hmcts/ccd-case-ui-toolkit 7.1.71 → 7.1.72-ongoing-accessibility-v1

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 (23) hide show
  1. package/esm2022/lib/components/form/date-input/date-input.component.mjs +7 -7
  2. package/esm2022/lib/shared/components/case-history/case-history.component.mjs +5 -3
  3. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +6 -6
  4. package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +28 -22
  5. package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +8 -8
  6. package/esm2022/lib/shared/components/palette/collection/write-collection-field.component.mjs +23 -22
  7. package/esm2022/lib/shared/components/palette/complex/read-complex-field.component.mjs +4 -1
  8. package/esm2022/lib/shared/components/palette/complex/write-complex-field.component.mjs +2 -1
  9. package/esm2022/lib/shared/components/palette/date/write-date-field.component.mjs +6 -3
  10. package/esm2022/lib/shared/domain/definition/case-field.model.mjs +24 -1
  11. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +102 -63
  12. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  13. package/lib/shared/components/case-history/case-history.component.d.ts.map +1 -1
  14. package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts +1 -1
  15. package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts.map +1 -1
  16. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  17. package/lib/shared/components/palette/complex/read-complex-field.component.d.ts.map +1 -1
  18. package/lib/shared/components/palette/complex/write-complex-field.component.d.ts.map +1 -1
  19. package/lib/shared/components/palette/date/write-date-field.component.d.ts +1 -0
  20. package/lib/shared/components/palette/date/write-date-field.component.d.ts.map +1 -1
  21. package/lib/shared/domain/definition/case-field.model.d.ts +2 -0
  22. package/lib/shared/domain/definition/case-field.model.d.ts.map +1 -1
  23. package/package.json +1 -1
@@ -590,22 +590,22 @@ class DateInputComponent {
590
590
  }
591
591
  }
592
592
  dayId() {
593
- return `${this.id}-day`;
593
+ return this.id + '-day';
594
594
  }
595
595
  monthId() {
596
- return `${this.id}-month`;
596
+ return this.id + '-month';
597
597
  }
598
598
  yearId() {
599
- return `${this.id}-year`;
599
+ return this.id + '-year';
600
600
  }
601
601
  hourId() {
602
- return `${this.id}-hour`;
602
+ return this.id + '-hour';
603
603
  }
604
604
  minuteId() {
605
- return `${this.id}-minute`;
605
+ return this.id + '-minute';
606
606
  }
607
607
  secondId() {
608
- return `${this.id}-second`;
608
+ return this.id + '-second';
609
609
  }
610
610
  viewValue() {
611
611
  if (this.day || this.month || this.year || this.hour || this.minute || this.second) {
@@ -3272,6 +3272,7 @@ class CaseField {
3272
3272
  hiddenCannotChange;
3273
3273
  label;
3274
3274
  order;
3275
+ parent;
3275
3276
  field_type;
3276
3277
  hint_text;
3277
3278
  security_label;
@@ -3394,6 +3395,22 @@ class CaseField {
3394
3395
  }
3395
3396
  return null;
3396
3397
  }
3398
+ // Ascend the hierarchy to get the full path of the field
3399
+ getHierachicalId(curr) {
3400
+ const prefix = curr ? curr + "_" : "";
3401
+ if (prefix.length < 1024) {
3402
+ if (this.parent) {
3403
+ return this.parent.getHierachicalId(prefix + this.id);
3404
+ }
3405
+ else {
3406
+ return prefix + this.id;
3407
+ }
3408
+ }
3409
+ else {
3410
+ console.log("Path too long, possible circular reference in case field hierarchy");
3411
+ return this.id;
3412
+ }
3413
+ }
3397
3414
  set isTranslated(val) {
3398
3415
  this.isTranslatedFlag = val;
3399
3416
  }
@@ -3483,6 +3500,12 @@ __decorate([
3483
3500
  __metadata("design:paramtypes", []),
3484
3501
  __metadata("design:returntype", Boolean)
3485
3502
  ], CaseField.prototype, "isCaseLink", null);
3503
+ __decorate([
3504
+ Expose(),
3505
+ __metadata("design:type", Function),
3506
+ __metadata("design:paramtypes", [String]),
3507
+ __metadata("design:returntype", String)
3508
+ ], CaseField.prototype, "getHierachicalId", null);
3486
3509
 
3487
3510
  // @dynamic
3488
3511
  class WizardPage {
@@ -12246,6 +12269,7 @@ class WriteComplexFieldComponent extends AbstractFieldWriteComponent {
12246
12269
  const fieldsFilterPipe = new FieldsFilterPipe();
12247
12270
  this.complexFields = fieldsFilterPipe.transform(this.caseField, true).map(field => {
12248
12271
  if (field && field.id) {
12272
+ field.parent = this.caseField;
12249
12273
  if (!(field instanceof CaseField)) {
12250
12274
  return this.buildField(plainToClassFromExist(new CaseField(), field));
12251
12275
  }
@@ -14187,8 +14211,8 @@ class WriteCaseLinkFieldComponent extends AbstractFieldWriteComponent {
14187
14211
  }] }); })();
14188
14212
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteCaseLinkFieldComponent, { className: "WriteCaseLinkFieldComponent", filePath: "lib/shared/components/palette/case-link/write-case-link-field.component.ts", lineNumber: 11 }); })();
14189
14213
 
14190
- const _c0$T = (a0, a1, a2, a3, a4, a5) => ({ id: a0, label: a1, field_type: a2, display_context_parameter: a3, value: a4, hidden: a5 });
14191
- const _c1$m = (a0, a1, a2, a3, a4) => ({ id: a0, label: a1, field_type: a2, value: a3, hidden: a4 });
14214
+ const _c0$T = (a0, a1, a2, a3, a4, a5, a6) => ({ id: a0, label: a1, field_type: a2, display_context_parameter: a3, value: a4, hidden: a5, parent: a6 });
14215
+ const _c1$m = (a0, a1, a2, a3, a4, a5) => ({ id: a0, label: a1, field_type: a2, value: a3, hidden: a4, parent: a5 });
14192
14216
  function ReadCollectionFieldComponent_table_0_tbody_2_Template(rf, ctx) { if (rf & 1) {
14193
14217
  i0.ɵɵelementStart(0, "tbody")(1, "tr");
14194
14218
  i0.ɵɵelement(2, "th", 4);
@@ -14198,7 +14222,7 @@ function ReadCollectionFieldComponent_table_0_tbody_2_Template(rf, ctx) { if (rf
14198
14222
  } if (rf & 2) {
14199
14223
  const ctx_r0 = i0.ɵɵnextContext(2);
14200
14224
  i0.ɵɵadvance(4);
14201
- i0.ɵɵproperty("caseField", i0.ɵɵpureFunction6(3, _c0$T, ctx_r0.caseField.label, ctx_r0.caseField.label, ctx_r0.caseField.field_type.collection_field_type, ctx_r0.caseField.display_context_parameter, ctx_r0.caseField.value, ctx_r0.caseField.hidden))("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup);
14225
+ i0.ɵɵproperty("caseField", i0.ɵɵpureFunction7(3, _c0$T, ctx_r0.caseField.label, ctx_r0.caseField.label, ctx_r0.caseField.field_type.collection_field_type, ctx_r0.caseField.display_context_parameter, ctx_r0.caseField.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup);
14202
14226
  } }
14203
14227
  function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { if (rf & 1) {
14204
14228
  i0.ɵɵelementStart(0, "tr")(1, "td");
@@ -14209,11 +14233,11 @@ function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { i
14209
14233
  const i_r3 = ctx.index;
14210
14234
  const ctx_r0 = i0.ɵɵnextContext(3);
14211
14235
  i0.ɵɵadvance(2);
14212
- i0.ɵɵproperty("caseField", i0.ɵɵpureFunction5(4, _c1$m, i_r3, ctx_r0.caseField.label + " " + (i_r3 + 1), ctx_r0.caseField.field_type.collection_field_type, item_r2.value, ctx_r0.caseField.hidden))("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.buildIdPrefix(i_r3));
14236
+ i0.ɵɵproperty("caseField", i0.ɵɵpureFunction6(4, _c1$m, i_r3 + "", ctx_r0.caseField.label + " " + (i_r3 + 1), ctx_r0.caseField.field_type.collection_field_type, item_r2.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.buildIdPrefix(i_r3));
14213
14237
  } }
14214
14238
  function ReadCollectionFieldComponent_table_0_tbody_3_Template(rf, ctx) { if (rf & 1) {
14215
14239
  i0.ɵɵelementStart(0, "tbody");
14216
- i0.ɵɵtemplate(1, ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template, 3, 10, "tr", 6);
14240
+ i0.ɵɵtemplate(1, ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template, 3, 11, "tr", 6);
14217
14241
  i0.ɵɵelementEnd();
14218
14242
  } if (rf & 2) {
14219
14243
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -14223,7 +14247,7 @@ function ReadCollectionFieldComponent_table_0_tbody_3_Template(rf, ctx) { if (rf
14223
14247
  function ReadCollectionFieldComponent_table_0_Template(rf, ctx) { if (rf & 1) {
14224
14248
  i0.ɵɵelementStart(0, "table", 1);
14225
14249
  i0.ɵɵelementContainerStart(1, 2);
14226
- i0.ɵɵtemplate(2, ReadCollectionFieldComponent_table_0_tbody_2_Template, 5, 10, "tbody", 3)(3, ReadCollectionFieldComponent_table_0_tbody_3_Template, 2, 1, "tbody", 3);
14250
+ i0.ɵɵtemplate(2, ReadCollectionFieldComponent_table_0_tbody_2_Template, 5, 11, "tbody", 3)(3, ReadCollectionFieldComponent_table_0_tbody_3_Template, 2, 1, "tbody", 3);
14227
14251
  i0.ɵɵelementContainerEnd();
14228
14252
  i0.ɵɵelementEnd();
14229
14253
  } if (rf & 2) {
@@ -14258,7 +14282,7 @@ class ReadCollectionFieldComponent extends AbstractFieldReadComponent {
14258
14282
  }
14259
14283
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadCollectionFieldComponent, [{
14260
14284
  type: Component,
14261
- args: [{ selector: 'ccd-read-collection-field', template: "<table *ngIf=\"caseField.value && caseField.value.length \" class=\"collection-field-table\" aria-describedby=\"collection table\">\n <ng-container [ngSwitch]=\"isDisplayContextParameterAvailable\">\n <tbody *ngSwitchCase=\"true\">\n <tr>\n <th id=\"hiddenHeader\" style=\"display: none;\"></th>\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: caseField.label,\n label: caseField.label,\n field_type: caseField.field_type.collection_field_type,\n display_context_parameter: caseField.display_context_parameter,\n value: caseField.value,\n hidden: caseField.hidden\n }\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n <tbody *ngSwitchCase=\"false\">\n <tr *ngFor=\"let item of caseField.value; let i = index\">\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: i,\n label: caseField.label + ' ' + (i + 1),\n field_type: caseField.field_type.collection_field_type,\n value: item.value,\n hidden: caseField.hidden\n }\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"buildIdPrefix(i)\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n </ng-container>\n</table>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
14285
+ args: [{ selector: 'ccd-read-collection-field', template: "<table *ngIf=\"caseField.value && caseField.value.length \" class=\"collection-field-table\" aria-describedby=\"collection table\">\n <ng-container [ngSwitch]=\"isDisplayContextParameterAvailable\">\n <tbody *ngSwitchCase=\"true\">\n <tr>\n <th id=\"hiddenHeader\" style=\"display: none;\"></th>\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: caseField.label,\n label: caseField.label,\n field_type: caseField.field_type.collection_field_type,\n display_context_parameter: caseField.display_context_parameter,\n value: caseField.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n <tbody *ngSwitchCase=\"false\">\n <tr *ngFor=\"let item of caseField.value; let i = index\">\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: i + '',\n label: caseField.label + ' ' + (i + 1),\n field_type: caseField.field_type.collection_field_type,\n value: item.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"buildIdPrefix(i)\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n </ng-container>\n</table>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
14262
14286
  }], null, null); })();
14263
14287
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadCollectionFieldComponent, { className: "ReadCollectionFieldComponent", filePath: "lib/shared/components/palette/collection/read-collection-field.component.ts", lineNumber: 10 }); })();
14264
14288
 
@@ -14349,49 +14373,49 @@ function WriteCollectionFieldComponent_h2_8_Template(rf, ctx) { if (rf & 1) {
14349
14373
  i0.ɵɵadvance();
14350
14374
  i0.ɵɵproperty("ngIf", ctx_r0.formArray.errors);
14351
14375
  } }
14352
- function WriteCollectionFieldComponent_div_9_div_1_Template(rf, ctx) { if (rf & 1) {
14376
+ function WriteCollectionFieldComponent_div_9_div_2_Template(rf, ctx) { if (rf & 1) {
14353
14377
  const _r2 = i0.ɵɵgetCurrentView();
14354
- i0.ɵɵelementStart(0, "div", 1, 0)(2, "div", 14)(3, "div", 15)(4, "label", 16)(5, "h3", 17);
14355
- i0.ɵɵtext(6);
14356
- i0.ɵɵpipe(7, "rpxTranslate");
14357
- i0.ɵɵelementEnd()()();
14358
- i0.ɵɵelementStart(8, "div", 18)(9, "button", 19);
14359
- i0.ɵɵlistener("click", function WriteCollectionFieldComponent_div_9_div_1_Template_button_click_9_listener() { const i_r3 = i0.ɵɵrestoreView(_r2).index; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openModal(i_r3)); });
14360
- i0.ɵɵtext(10);
14361
- i0.ɵɵpipe(11, "rpxTranslate");
14378
+ i0.ɵɵelementStart(0, "div", 1, 0)(2, "div", 15)(3, "div", 16)(4, "legend", 17)(5, "label", 18)(6, "h3", 19);
14379
+ i0.ɵɵtext(7);
14380
+ i0.ɵɵpipe(8, "rpxTranslate");
14381
+ i0.ɵɵelementEnd()()()();
14382
+ i0.ɵɵelementStart(9, "div", 20)(10, "button", 21);
14383
+ i0.ɵɵlistener("click", function WriteCollectionFieldComponent_div_9_div_2_Template_button_click_10_listener() { const i_r3 = i0.ɵɵrestoreView(_r2).index; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openModal(i_r3)); });
14384
+ i0.ɵɵtext(11);
14385
+ i0.ɵɵpipe(12, "rpxTranslate");
14362
14386
  i0.ɵɵelementEnd()()();
14363
- i0.ɵɵelement(12, "ccd-field-write", 20);
14387
+ i0.ɵɵelement(13, "ccd-field-write", 22);
14364
14388
  i0.ɵɵelementEnd();
14365
14389
  } if (rf & 2) {
14366
14390
  const item_r4 = ctx.$implicit;
14367
14391
  const i_r3 = ctx.index;
14368
14392
  const ctx_r0 = i0.ɵɵnextContext(2);
14369
14393
  i0.ɵɵproperty("id", ctx_r0.buildIdPrefix(i_r3) + i_r3);
14370
- i0.ɵɵadvance(4);
14394
+ i0.ɵɵadvance(5);
14371
14395
  i0.ɵɵproperty("for", item_r4.prefix + i_r3);
14372
14396
  i0.ɵɵadvance(2);
14373
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 15, ctx_r0.itemLabel(i_r3)));
14397
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 15, ctx_r0.itemLabel(i_r3)));
14374
14398
  i0.ɵɵadvance(3);
14375
14399
  i0.ɵɵattributeInterpolate1("aria-label", "Remove ", ctx_r0.itemLabel(i_r3), "");
14376
14400
  i0.ɵɵproperty("disabled", ctx_r0.isNotAuthorisedToDelete(i_r3));
14377
14401
  i0.ɵɵadvance();
14378
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 17, "Remove"));
14402
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 17, "Remove"));
14379
14403
  i0.ɵɵadvance(2);
14380
14404
  i0.ɵɵproperty("caseField", item_r4.caseField)("caseFields", ctx_r0.caseFields)("formGroup", ctx_r0.formGroup)("parent", item_r4.container)("idPrefix", item_r4.prefix)("hidden", item_r4.caseField.hidden)("isExpanded", ctx_r0.isExpanded)("isInSearchBlock", ctx_r0.isInSearchBlock);
14381
14405
  } }
14382
14406
  function WriteCollectionFieldComponent_div_9_Template(rf, ctx) { if (rf & 1) {
14383
- i0.ɵɵelementStart(0, "div", 12);
14384
- i0.ɵɵtemplate(1, WriteCollectionFieldComponent_div_9_div_1_Template, 13, 19, "div", 13);
14385
- i0.ɵɵelementEnd();
14407
+ i0.ɵɵelementStart(0, "div", 12)(1, "fieldset", 13);
14408
+ i0.ɵɵtemplate(2, WriteCollectionFieldComponent_div_9_div_2_Template, 14, 19, "div", 14);
14409
+ i0.ɵɵelementEnd()();
14386
14410
  } if (rf & 2) {
14387
14411
  const ctx_r0 = i0.ɵɵnextContext();
14388
14412
  i0.ɵɵproperty("hidden", ctx_r0.caseField.hidden);
14389
- i0.ɵɵadvance();
14413
+ i0.ɵɵadvance(2);
14390
14414
  i0.ɵɵproperty("ngForOf", ctx_r0.collItems);
14391
14415
  } }
14392
14416
  function WriteCollectionFieldComponent_button_10_Template(rf, ctx) { if (rf & 1) {
14393
14417
  const _r5 = i0.ɵɵgetCurrentView();
14394
- i0.ɵɵelementStart(0, "button", 21);
14418
+ i0.ɵɵelementStart(0, "button", 23);
14395
14419
  i0.ɵɵlistener("click", function WriteCollectionFieldComponent_button_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.addItem(false)); });
14396
14420
  i0.ɵɵtext(1);
14397
14421
  i0.ɵɵpipe(2, "rpxTranslate");
@@ -14430,6 +14454,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
14430
14454
  this.caseField.value.forEach((item, index) => {
14431
14455
  const prefix = this.buildIdPrefix(index);
14432
14456
  const caseField = this.buildCaseField(item, index);
14457
+ caseField.parent = this.caseField;
14433
14458
  const container = this.getContainer(index);
14434
14459
  if (this.collItems.length <= index) {
14435
14460
  this.collItems.length = index + 1;
@@ -14708,7 +14733,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
14708
14733
  } if (rf & 2) {
14709
14734
  let _t;
14710
14735
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);
14711
- } }, inputs: { caseFields: "caseFields" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 11, consts: [["collectionItem", ""], [1, "form-group", 3, "id"], [1, "panel", "collection-indicator"], [1, "heading-h2", "error-spacing"], ["type", "button", 1, "button", "write-collection-add-item__top", 3, "click", "disabled"], ["class", "heading-h2 error-spacing", 4, "ngIf"], ["class", "form-group", 3, "hidden", 4, "ngIf"], ["class", "button write-collection-add-item__bottom", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "form-hint"], [1, "error-message"], [1, "form-group", 3, "hidden"], ["class", "form-group", 3, "id", 4, "ngFor", "ngForOf"], [1, "collection-title"], [1, "float-left"], [3, "for"], [1, "heading-h3"], [1, "float-right"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], [3, "caseField", "caseFields", "formGroup", "parent", "idPrefix", "hidden", "isExpanded", "isInSearchBlock"], ["type", "button", 1, "button", "write-collection-add-item__bottom", 3, "click", "disabled"]], template: function WriteCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
14736
+ } }, inputs: { caseFields: "caseFields" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 11, consts: [["collectionItem", ""], [1, "form-group", 3, "id"], [1, "panel", "collection-indicator"], [1, "heading-h2", "error-spacing"], ["type", "button", 1, "button", "write-collection-add-item__top", 3, "click", "disabled"], ["class", "heading-h2 error-spacing", 4, "ngIf"], ["class", "form-group", 3, "hidden", 4, "ngIf"], ["class", "button write-collection-add-item__bottom", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "form-hint"], [1, "error-message"], [1, "form-group", 3, "hidden"], [1, "govuk-fieldset"], ["class", "form-group", 3, "id", 4, "ngFor", "ngForOf"], [1, "collection-title"], [1, "float-left"], [1, "govuk-fieldset__legend"], [3, "for"], [1, "heading-h3"], [1, "float-right"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], [3, "caseField", "caseFields", "formGroup", "parent", "idPrefix", "hidden", "isExpanded", "isInSearchBlock"], ["type", "button", 1, "button", "write-collection-add-item__bottom", 3, "click", "disabled"]], template: function WriteCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
14712
14737
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "h2", 3);
14713
14738
  i0.ɵɵtext(3);
14714
14739
  i0.ɵɵpipe(4, "ccdFieldLabel");
@@ -14718,7 +14743,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
14718
14743
  i0.ɵɵtext(6);
14719
14744
  i0.ɵɵpipe(7, "rpxTranslate");
14720
14745
  i0.ɵɵelementEnd();
14721
- i0.ɵɵtemplate(8, WriteCollectionFieldComponent_h2_8_Template, 3, 2, "h2", 5)(9, WriteCollectionFieldComponent_div_9_Template, 2, 2, "div", 6)(10, WriteCollectionFieldComponent_button_10_Template, 3, 4, "button", 7);
14746
+ i0.ɵɵtemplate(8, WriteCollectionFieldComponent_h2_8_Template, 3, 2, "h2", 5)(9, WriteCollectionFieldComponent_div_9_Template, 3, 2, "div", 6)(10, WriteCollectionFieldComponent_button_10_Template, 3, 4, "button", 7);
14722
14747
  i0.ɵɵelementEnd()();
14723
14748
  } if (rf & 2) {
14724
14749
  i0.ɵɵproperty("id", ctx.id());
@@ -14738,7 +14763,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
14738
14763
  }
14739
14764
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteCollectionFieldComponent, [{
14740
14765
  type: Component,
14741
- args: [{ selector: 'ccd-write-collection-field', template: "<div class=\"form-group\" [id]=\"id()\">\n\n <div class=\"panel collection-indicator\">\n\n <h2 class=\"heading-h2 error-spacing\">\n {{(caseField | ccdFieldLabel)}}\n </h2>\n <button class=\"button write-collection-add-item__top\" type=\"button\" (click)=\"addItem(true)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\">{{'Add new' | rpxTranslate}}</button>\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"caseField.hint_text || formArray.errors\">\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">\n <markdown>{{caseField.hint_text | rpxTranslate }}</markdown>\n </span>\n <span *ngIf=\"formArray.errors\" class=\"error-message\">\n {{(formArray.errors | ccdFirstError:caseField.label)}}\n </span>\n </h2>\n\n <div class=\"form-group\" [hidden]=\"caseField.hidden\" *ngIf=\"caseField.value && caseField.value.length\">\n <div *ngFor=\"let item of collItems; let i = index\" #collectionItem\n [id]=\"this.buildIdPrefix(i) + i\" class=\"form-group\">\n <div class=\"collection-title\">\n <div class=\"float-left\">\n <label [for]=\"item.prefix + i\"><h3 class=\"heading-h3\">{{itemLabel(i) | rpxTranslate}}</h3></label>\n </div>\n <div class=\"float-right\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"openModal(i)\"\n [disabled]=\"isNotAuthorisedToDelete(i)\"\n attr.aria-label=\"Remove {{ itemLabel(i) }}\">{{'Remove' | rpxTranslate}}</button>\n </div>\n </div>\n <ccd-field-write [caseField]=\"item.caseField\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [parent]=\"item.container\"\n [idPrefix]=\"item.prefix\"\n [hidden]=\"item.caseField.hidden\"\n [isExpanded]=\"isExpanded\"\n [isInSearchBlock]=\"isInSearchBlock\">\n </ccd-field-write>\n </div>\n\n </div>\n\n <button class=\"button write-collection-add-item__bottom\" type=\"button\" (click)=\"addItem(false)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\" *ngIf=\"caseField.value && caseField.value.length\">{{'Add new' | rpxTranslate }}</button>\n\n </div>\n\n</div>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
14766
+ args: [{ selector: 'ccd-write-collection-field', template: "<div class=\"form-group\" [id]=\"id()\">\n\n <div class=\"panel collection-indicator\">\n\n <h2 class=\"heading-h2 error-spacing\">\n {{(caseField | ccdFieldLabel)}}\n </h2>\n <button class=\"button write-collection-add-item__top\" type=\"button\" (click)=\"addItem(true)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\">{{'Add new' | rpxTranslate}}</button>\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"caseField.hint_text || formArray.errors\">\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">\n <markdown>{{caseField.hint_text | rpxTranslate }}</markdown>\n </span>\n <span *ngIf=\"formArray.errors\" class=\"error-message\">\n {{(formArray.errors | ccdFirstError:caseField.label)}}\n </span>\n </h2>\n\n <div class=\"form-group\" [hidden]=\"caseField.hidden\" *ngIf=\"caseField.value && caseField.value.length\">\n <fieldset class=\"govuk-fieldset\">\n <div *ngFor=\"let item of collItems; let i = index\" #collectionItem\n [id]=\"this.buildIdPrefix(i) + i\" class=\"form-group\">\n <div class=\"collection-title\">\n <div class=\"float-left\">\n <legend class=\"govuk-fieldset__legend\">\n <label [for]=\"item.prefix + i\"><h3 class=\"heading-h3\">{{itemLabel(i) | rpxTranslate}}</h3></label>\n </legend>\n </div>\n <div class=\"float-right\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"openModal(i)\"\n [disabled]=\"isNotAuthorisedToDelete(i)\"\n attr.aria-label=\"Remove {{ itemLabel(i) }}\">{{'Remove' | rpxTranslate}}</button>\n </div>\n </div>\n <ccd-field-write [caseField]=\"item.caseField\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [parent]=\"item.container\"\n [idPrefix]=\"item.prefix\"\n [hidden]=\"item.caseField.hidden\"\n [isExpanded]=\"isExpanded\"\n [isInSearchBlock]=\"isInSearchBlock\">\n </ccd-field-write>\n </div>\n </fieldset>\n </div>\n\n <button class=\"button write-collection-add-item__bottom\" type=\"button\" (click)=\"addItem(false)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\" *ngIf=\"caseField.value && caseField.value.length\">{{'Add new' | rpxTranslate }}</button>\n\n </div>\n\n</div>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
14742
14767
  }], () => [{ type: i1$3.MatLegacyDialog }, { type: i2.ScrollToService }, { type: ProfileNotifier }, { type: i0.ChangeDetectorRef }], { caseFields: [{
14743
14768
  type: Input
14744
14769
  }], items: [{
@@ -14781,6 +14806,9 @@ class ReadComplexFieldComponent extends AbstractFieldReadComponent {
14781
14806
  }
14782
14807
  if (this.caseField?.field_type && this.caseField.field_type.complex_fields) {
14783
14808
  this.caseField?.field_type?.complex_fields?.forEach((field) => {
14809
+ if (field && this.caseField) {
14810
+ field.parent = this.caseField;
14811
+ }
14784
14812
  if (field?.isDynamic()) {
14785
14813
  field.list_items = this.caseField.value[field.id]?.list_items;
14786
14814
  field.value = {
@@ -23860,7 +23888,7 @@ function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_1_Template(
23860
23888
  i0.ɵɵadvance(2);
23861
23889
  i0.ɵɵtextInterpolate(ctx_r1.title);
23862
23890
  } }
23863
- function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_2_img_2_Template(rf, ctx) { if (rf & 1) {
23891
+ function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_3_img_2_Template(rf, ctx) { if (rf & 1) {
23864
23892
  i0.ɵɵelement(0, "img", 10);
23865
23893
  } if (rf & 2) {
23866
23894
  const item_r4 = i0.ɵɵnextContext().$implicit;
@@ -23868,35 +23896,34 @@ function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_2_img_2_Tem
23868
23896
  i0.ɵɵpropertyInterpolate1("alt", "", ctx_r1.title, " icon'");
23869
23897
  i0.ɵɵproperty("src", item_r4.iconSrc, i0.ɵɵsanitizeUrl);
23870
23898
  } }
23871
- function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {
23899
+ function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_3_Template(rf, ctx) { if (rf & 1) {
23872
23900
  const _r3 = i0.ɵɵgetCurrentView();
23873
23901
  i0.ɵɵelementContainerStart(0);
23874
- i0.ɵɵelementStart(1, "div", 7);
23875
- i0.ɵɵlistener("click", function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_2_Template_div_click_1_listener() { const item_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); item_r4.actionFn(); return i0.ɵɵresetView(ctx_r1.closeOverlay()); })("keyup", function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_2_Template_div_keyup_1_listener($event) { const item_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView($event.key === "Enter" ? ctx_r1.actionAndClose(item_r4.actionFn()) : null); });
23876
- i0.ɵɵtemplate(2, CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_2_img_2_Template, 1, 3, "img", 8);
23902
+ i0.ɵɵelementStart(1, "li", 7);
23903
+ i0.ɵɵlistener("click", function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_3_Template_li_click_1_listener() { const item_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); item_r4.actionFn(); return i0.ɵɵresetView(ctx_r1.closeOverlay()); })("keydown.enter", function CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_3_Template_li_keydown_enter_1_listener() { const item_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); item_r4.actionFn(); return i0.ɵɵresetView(ctx_r1.closeOverlay()); });
23904
+ i0.ɵɵtemplate(2, CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_3_img_2_Template, 1, 3, "img", 8);
23877
23905
  i0.ɵɵelementStart(3, "span", 9);
23878
23906
  i0.ɵɵtext(4);
23879
23907
  i0.ɵɵelementEnd()();
23880
23908
  i0.ɵɵelementContainerEnd();
23881
23909
  } if (rf & 2) {
23882
23910
  const item_r4 = ctx.$implicit;
23883
- const i_r5 = ctx.index;
23884
- i0.ɵɵadvance();
23885
- i0.ɵɵproperty("id", "overlay-menu__item" + i_r5);
23886
- i0.ɵɵadvance();
23911
+ i0.ɵɵadvance(2);
23887
23912
  i0.ɵɵproperty("ngIf", item_r4.iconSrc);
23888
23913
  i0.ɵɵadvance(2);
23889
23914
  i0.ɵɵtextInterpolate(item_r4.actionText);
23890
23915
  } }
23891
23916
  function CaseFileViewOverlayMenuComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
23892
23917
  i0.ɵɵelementStart(0, "div", 3);
23893
- i0.ɵɵtemplate(1, CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_1_Template, 3, 1, "ng-container", 4)(2, CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_2_Template, 5, 3, "ng-container", 5);
23894
- i0.ɵɵelementEnd();
23918
+ i0.ɵɵtemplate(1, CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_1_Template, 3, 1, "ng-container", 4);
23919
+ i0.ɵɵelementStart(2, "ul");
23920
+ i0.ɵɵtemplate(3, CaseFileViewOverlayMenuComponent_ng_template_4_ng_container_3_Template, 5, 2, "ng-container", 5);
23921
+ i0.ɵɵelementEnd()();
23895
23922
  } if (rf & 2) {
23896
23923
  const ctx_r1 = i0.ɵɵnextContext();
23897
23924
  i0.ɵɵadvance();
23898
23925
  i0.ɵɵproperty("ngIf", ctx_r1.title);
23899
- i0.ɵɵadvance();
23926
+ i0.ɵɵadvance(2);
23900
23927
  i0.ɵɵproperty("ngForOf", ctx_r1.menuItems);
23901
23928
  } }
23902
23929
  class CaseFileViewOverlayMenuComponent {
@@ -23909,30 +23936,37 @@ class CaseFileViewOverlayMenuComponent {
23909
23936
  this.isOpen = isOpen;
23910
23937
  this.isOpenChange.emit(isOpen);
23911
23938
  }
23912
- actionAndClose(func) {
23913
- func();
23914
- this.closeOverlay();
23939
+ setOpen() {
23940
+ this.isOpen = !this.isOpen;
23941
+ if (this.isOpen) {
23942
+ setTimeout(() => {
23943
+ const el = document.querySelector('.overlay-menu__item:first-of-type');
23944
+ if (el) {
23945
+ el.focus();
23946
+ }
23947
+ }, 0);
23948
+ }
23915
23949
  }
23916
23950
  static ɵfac = function CaseFileViewOverlayMenuComponent_Factory(t) { return new (t || CaseFileViewOverlayMenuComponent)(); };
23917
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewOverlayMenuComponent, selectors: [["ccd-case-file-view-overlay-menu"]], inputs: { title: "title", menuItems: "menuItems", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, ngContentSelectors: _c1$9, decls: 5, vars: 4, consts: [["trigger", "cdkOverlayOrigin"], ["type", "button", "cdkOverlayOrigin", "", 1, "overlay-toggle", 3, "click"], ["cdkConnectedOverlay", "", 3, "backdropClick", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayBackdropClass"], [1, "overlay-menu"], [4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "overlay-menu__title"], ["tabindex", "0", 1, "overlay-menu__item", 3, "click", "keyup", "id"], ["class", "overlay-menu__itemIcon", 3, "src", "alt", 4, "ngIf"], [1, "overlay-menu__actionText"], [1, "overlay-menu__itemIcon", 3, "src", "alt"]], template: function CaseFileViewOverlayMenuComponent_Template(rf, ctx) { if (rf & 1) {
23951
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewOverlayMenuComponent, selectors: [["ccd-case-file-view-overlay-menu"]], inputs: { title: "title", menuItems: "menuItems", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange" }, ngContentSelectors: _c1$9, decls: 5, vars: 4, consts: [["trigger", "cdkOverlayOrigin"], ["type", "button", "cdkOverlayOrigin", "", 1, "overlay-toggle", 3, "click"], ["cdkConnectedOverlay", "", 3, "backdropClick", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayBackdropClass"], [1, "overlay-menu"], [4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "overlay-menu__title"], ["tabindex", "0", 1, "overlay-menu__item", 3, "click", "keydown.enter"], ["class", "overlay-menu__itemIcon", 3, "src", "alt", 4, "ngIf"], [1, "overlay-menu__actionText"], [1, "overlay-menu__itemIcon", 3, "src", "alt"]], template: function CaseFileViewOverlayMenuComponent_Template(rf, ctx) { if (rf & 1) {
23918
23952
  const _r1 = i0.ɵɵgetCurrentView();
23919
23953
  i0.ɵɵprojectionDef(_c0$t);
23920
23954
  i0.ɵɵelementStart(0, "div")(1, "button", 1, 0);
23921
- i0.ɵɵlistener("click", function CaseFileViewOverlayMenuComponent_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r1); $event.stopPropagation(); return i0.ɵɵresetView(ctx.isOpen = !ctx.isOpen); });
23955
+ i0.ɵɵlistener("click", function CaseFileViewOverlayMenuComponent_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r1); $event.stopPropagation(); return i0.ɵɵresetView(ctx.setOpen()); });
23922
23956
  i0.ɵɵprojection(3);
23923
23957
  i0.ɵɵelementEnd();
23924
- i0.ɵɵtemplate(4, CaseFileViewOverlayMenuComponent_ng_template_4_Template, 3, 2, "ng-template", 2);
23958
+ i0.ɵɵtemplate(4, CaseFileViewOverlayMenuComponent_ng_template_4_Template, 4, 2, "ng-template", 2);
23925
23959
  i0.ɵɵlistener("backdropClick", function CaseFileViewOverlayMenuComponent_Template_ng_template_backdropClick_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeOverlay()); });
23926
23960
  i0.ɵɵelementEnd();
23927
23961
  } if (rf & 2) {
23928
- const trigger_r6 = i0.ɵɵreference(2);
23962
+ const trigger_r5 = i0.ɵɵreference(2);
23929
23963
  i0.ɵɵadvance(4);
23930
- i0.ɵɵproperty("cdkConnectedOverlayOrigin", trigger_r6)("cdkConnectedOverlayOpen", ctx.isOpen)("cdkConnectedOverlayHasBackdrop", true)("cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop");
23964
+ i0.ɵɵproperty("cdkConnectedOverlayOrigin", trigger_r5)("cdkConnectedOverlayOpen", ctx.isOpen)("cdkConnectedOverlayHasBackdrop", true)("cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop");
23931
23965
  } }, dependencies: [i5.NgForOf, i5.NgIf, i2$2.CdkConnectedOverlay, i2$2.CdkOverlayOrigin], styles: [".overlay-toggle[_ngcontent-%COMP%]{display:block;background:none;border:0;padding:0 6px;margin-right:-4px;cursor:pointer}.overlay-menu[_ngcontent-%COMP%]{background-color:#fafafa;border:1px solid grey;margin-top:8px;font-size:1rem}.overlay-menu__title[_ngcontent-%COMP%], .overlay-menu__item[_ngcontent-%COMP%]{padding:10px;border-bottom:1px solid grey}.overlay-menu__title[_ngcontent-%COMP%]:last-child, .overlay-menu__item[_ngcontent-%COMP%]:last-child{border:none}.overlay-menu__title[_ngcontent-%COMP%]{padding-left:6px;padding-right:6px}.overlay-menu__item[_ngcontent-%COMP%]{display:flex;align-items:center;cursor:pointer;font-size:.875em}.overlay-menu__item[_ngcontent-%COMP%]:hover{background-color:#fff2cc}.overlay-menu__item[_ngcontent-%COMP%]:focus{border:2px solid #ffbf47}.overlay-menu__itemIcon[_ngcontent-%COMP%]{height:1.25em;width:1.25em;margin-right:6px}"] });
23932
23966
  }
23933
23967
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewOverlayMenuComponent, [{
23934
23968
  type: Component,
23935
- args: [{ selector: 'ccd-case-file-view-overlay-menu', template: "<div>\n <button type=\"button\" class=\"overlay-toggle\"\n (click)=\"$event.stopPropagation(); isOpen = !isOpen\"\n cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <ng-content select=\"[trigger]\"></ng-content>\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\"\n (backdropClick)=\"closeOverlay()\"\n >\n <div class=\"overlay-menu\">\n <ng-container *ngIf=\"title\">\n <div class=\"overlay-menu__title\">{{title}}</div>\n </ng-container>\n\n <ng-container *ngFor=\"let item of menuItems; index as i\">\n <div class=\"overlay-menu__item\" tabindex=\"0\" [id]=\"'overlay-menu__item' + i\" (click)=\"item.actionFn(); closeOverlay();\" (keyup)=\"$event.key === 'Enter' ? actionAndClose(item.actionFn()) : null\">\n <img *ngIf=\"item.iconSrc\" [src]=\"item.iconSrc\" class=\"overlay-menu__itemIcon\" alt=\"{{title}} icon'\" />\n <span class=\"overlay-menu__actionText\">{{item.actionText}}</span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n</div>\n", styles: [".overlay-toggle{display:block;background:none;border:0;padding:0 6px;margin-right:-4px;cursor:pointer}.overlay-menu{background-color:#fafafa;border:1px solid grey;margin-top:8px;font-size:1rem}.overlay-menu__title,.overlay-menu__item{padding:10px;border-bottom:1px solid grey}.overlay-menu__title:last-child,.overlay-menu__item:last-child{border:none}.overlay-menu__title{padding-left:6px;padding-right:6px}.overlay-menu__item{display:flex;align-items:center;cursor:pointer;font-size:.875em}.overlay-menu__item:hover{background-color:#fff2cc}.overlay-menu__item:focus{border:2px solid #ffbf47}.overlay-menu__itemIcon{height:1.25em;width:1.25em;margin-right:6px}\n"] }]
23969
+ args: [{ selector: 'ccd-case-file-view-overlay-menu', template: "<div>\n <button type=\"button\" class=\"overlay-toggle\"\n (click)=\"$event.stopPropagation(); setOpen()\"\n cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <ng-content select=\"[trigger]\"></ng-content>\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\"\n (backdropClick)=\"closeOverlay()\"\n >\n <div class=\"overlay-menu\">\n <ng-container *ngIf=\"title\">\n <div class=\"overlay-menu__title\">{{title}}</div>\n </ng-container>\n\n <ul>\n <ng-container *ngFor=\"let item of menuItems;\">\n <li class=\"overlay-menu__item\" tabindex=\"0\" (click)=\"item.actionFn(); closeOverlay();\" (keydown.enter)=\"item.actionFn(); closeOverlay();\">\n <img *ngIf=\"item.iconSrc\" [src]=\"item.iconSrc\" class=\"overlay-menu__itemIcon\" alt=\"{{title}} icon'\" />\n <span class=\"overlay-menu__actionText\">{{item.actionText}}</span>\n </li>\n </ng-container>\n </ul>\n </div>\n </ng-template>\n</div>\n", styles: [".overlay-toggle{display:block;background:none;border:0;padding:0 6px;margin-right:-4px;cursor:pointer}.overlay-menu{background-color:#fafafa;border:1px solid grey;margin-top:8px;font-size:1rem}.overlay-menu__title,.overlay-menu__item{padding:10px;border-bottom:1px solid grey}.overlay-menu__title:last-child,.overlay-menu__item:last-child{border:none}.overlay-menu__title{padding-left:6px;padding-right:6px}.overlay-menu__item{display:flex;align-items:center;cursor:pointer;font-size:.875em}.overlay-menu__item:hover{background-color:#fff2cc}.overlay-menu__item:focus{border:2px solid #ffbf47}.overlay-menu__itemIcon{height:1.25em;width:1.25em;margin-right:6px}\n"] }]
23936
23970
  }], null, { title: [{
23937
23971
  type: Input
23938
23972
  }], menuItems: [{
@@ -24213,10 +24247,10 @@ function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template(rf, c
24213
24247
  i0.ɵɵelementStart(7, "span", 17);
24214
24248
  i0.ɵɵtext(8);
24215
24249
  i0.ɵɵpipe(9, "ccdDate");
24216
- i0.ɵɵelementEnd()();
24250
+ i0.ɵɵelementEnd()()();
24217
24251
  i0.ɵɵelementStart(10, "div", 18)(11, "ccd-case-file-view-folder-document-actions", 19);
24218
24252
  i0.ɵɵlistener("changeFolderAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_changeFolderAction_11_listener() { const node_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.triggerDocumentAction("changeFolder", node_r2)); })("openInANewTabAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_openInANewTabAction_11_listener() { const node_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.triggerDocumentAction("openInANewTab", node_r2)); })("downloadAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_downloadAction_11_listener() { const node_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.triggerDocumentAction("download", node_r2)); })("printAction", function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template_ccd_case_file_view_folder_document_actions_printAction_11_listener() { const node_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.triggerDocumentAction("print", node_r2)); });
24219
- i0.ɵɵelementEnd()()()();
24253
+ i0.ɵɵelementEnd()()();
24220
24254
  } if (rf & 2) {
24221
24255
  const node_r2 = ctx.$implicit;
24222
24256
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -24497,7 +24531,7 @@ class CaseFileViewFolderComponent {
24497
24531
  a.remove();
24498
24532
  }
24499
24533
  static ɵfac = function CaseFileViewFolderComponent_Factory(t) { return new (t || CaseFileViewFolderComponent)(i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(AbstractAppConfig)); };
24500
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments", allowMoving: "allowMoving" }, outputs: { clickedDocument: "clickedDocument", moveDocument: "moveDocument" }, decls: 9, vars: 3, consts: [[1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", "aria-label", "Search by document name", 1, "form-control", "document-search"], [1, "document-folders-header"], [1, "document-folders-header__title"], [3, "sortAscending", "sortDescending"], ["class", "document-tree-container", 4, "ngIf"], [1, "document-tree-container"], [4, "ngIf"], [3, "dataSource", "treeControl"], ["class", "document-tree-container__node document-tree-container__node--document", 4, "cdkTreeNodeDef"], ["class", "document-tree-container__node document-tree-container__folder", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-container__node", "document-tree-container__node--document"], [1, "node", 3, "click"], ["disabled", "", 1, "node__icon"], ["src", "/assets/img/case-file-view/case-file-view-document.svg", "alt", "Document icon", 1, "node__iconImg"], [1, "node__name", "node-name-document"], [1, "node__document-upload-timestamp"], [1, "node__document-options"], [3, "changeFolderAction", "openInANewTabAction", "downloadAction", "printAction", "allowMoving"], [1, "document-tree-container__node", "document-tree-container__folder"], ["cdkTreeNodeToggle", "", 1, "node"], [1, "node__icon"], ["alt", "Folder icon", 1, "node__iconImg", 3, "src"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
24534
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments", allowMoving: "allowMoving" }, outputs: { clickedDocument: "clickedDocument", moveDocument: "moveDocument" }, decls: 9, vars: 3, consts: [[1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", "aria-label", "Search by document name", 1, "form-control", "document-search"], [1, "document-folders-header"], [1, "document-folders-header__title"], [3, "sortAscending", "sortDescending"], ["class", "document-tree-container", 4, "ngIf"], [1, "document-tree-container"], [4, "ngIf"], [3, "dataSource", "treeControl"], ["class", "document-tree-container__node document-tree-container__node--document", 4, "cdkTreeNodeDef"], ["class", "document-tree-container__node document-tree-container__folder", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-container__node", "document-tree-container__node--document"], [1, "node", "case-file__node", 3, "click"], ["disabled", "", 1, "node__icon"], ["src", "/assets/img/case-file-view/case-file-view-document.svg", "alt", "Document icon", 1, "node__iconImg"], [1, "node__name", "node-name-document"], [1, "node__document-upload-timestamp"], [1, "node__document-options", "case-file__action"], [3, "changeFolderAction", "openInANewTabAction", "downloadAction", "printAction", "allowMoving"], [1, "document-tree-container__node", "document-tree-container__folder"], ["cdkTreeNodeToggle", "", 1, "node"], [1, "node__icon"], ["alt", "Folder icon", 1, "node__iconImg", 3, "src"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
24501
24535
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
24502
24536
  i0.ɵɵelement(2, "input", 2);
24503
24537
  i0.ɵɵelementEnd()();
@@ -24515,11 +24549,11 @@ class CaseFileViewFolderComponent {
24515
24549
  i0.ɵɵtextInterpolate1("Documents (", ctx.documentCount, ")");
24516
24550
  i0.ɵɵadvance(3);
24517
24551
  i0.ɵɵproperty("ngIf", ctx.documentTreeData);
24518
- } }, dependencies: [i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName, i7.CdkNestedTreeNode, i7.CdkTreeNodeDef, i7.CdkTreeNodeToggle, i7.CdkTree, i7.CdkTreeNodeOutlet, CaseFileViewFolderSortComponent, CaseFileViewFolderDocumentActionsComponent, DatePipe], styles: ["[_nghost-%COMP%]{display:flex;height:100%;flex-direction:column}[_nghost-%COMP%] .document-tree-container[_ngcontent-%COMP%]{flex:1 0}.document-filter-container[_ngcontent-%COMP%]{border-bottom:2px solid #C9C9C9}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%]{padding:10px}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%] .document-search[_ngcontent-%COMP%]{background:url(/assets/images/icon-search-black.svg) no-repeat right #fff;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container[_ngcontent-%COMP%] .documents-title[_ngcontent-%COMP%]{height:30%;margin-left:8px;font-weight:700}.document-tree-container[_ngcontent-%COMP%]{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node[_ngcontent-%COMP%]{display:block}.document-tree-container__node[_ngcontent-%COMP%] .document-tree-container__node[_ngcontent-%COMP%]{padding-left:40px}.document-tree-container[_ngcontent-%COMP%] .document-tree-invisible[_ngcontent-%COMP%]{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:7px}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-button{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-track-piece{background:#eee}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#ccc}.document-folders-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title[_ngcontent-%COMP%]{font-weight:700}.node[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected[_ngcontent-%COMP%]{background:#fff2cc}.node__icon[_ngcontent-%COMP%]{position:relative;display:inline-block}.node__count[_ngcontent-%COMP%]{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg[_ngcontent-%COMP%]{display:block;height:30px;width:30px}.node__name[_ngcontent-%COMP%]{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options[_ngcontent-%COMP%]{margin-left:auto;margin-right:0}.node__document-upload-timestamp[_ngcontent-%COMP%]{font-size:.8rem;float:left;padding-left:10px}"] });
24552
+ } }, dependencies: [i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName, i7.CdkNestedTreeNode, i7.CdkTreeNodeDef, i7.CdkTreeNodeToggle, i7.CdkTree, i7.CdkTreeNodeOutlet, CaseFileViewFolderSortComponent, CaseFileViewFolderDocumentActionsComponent, DatePipe], styles: ["[_nghost-%COMP%]{display:flex;height:100%;flex-direction:column}[_nghost-%COMP%] .document-tree-container[_ngcontent-%COMP%]{flex:1 0}.document-filter-container[_ngcontent-%COMP%]{border-bottom:2px solid #C9C9C9}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%]{padding:10px}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%] .document-search[_ngcontent-%COMP%]{background:url(/assets/images/icon-search-black.svg) no-repeat right #fff;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container[_ngcontent-%COMP%] .documents-title[_ngcontent-%COMP%]{height:30%;margin-left:8px;font-weight:700}.document-tree-container[_ngcontent-%COMP%]{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node[_ngcontent-%COMP%]{display:block}.document-tree-container__node[_ngcontent-%COMP%] .document-tree-container__node[_ngcontent-%COMP%]{padding-left:40px}.document-tree-container[_ngcontent-%COMP%] .document-tree-invisible[_ngcontent-%COMP%]{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:7px}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-button{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-track-piece{background:#eee}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#ccc}.document-folders-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title[_ngcontent-%COMP%]{font-weight:700}.node[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected[_ngcontent-%COMP%]{background:#fff2cc}.node__icon[_ngcontent-%COMP%]{position:relative;display:inline-block}.node__count[_ngcontent-%COMP%]{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg[_ngcontent-%COMP%]{display:block;height:30px;width:30px}.node__name[_ngcontent-%COMP%]{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options[_ngcontent-%COMP%]{margin-left:auto;margin-right:0}.node__document-upload-timestamp[_ngcontent-%COMP%]{font-size:.8rem;float:left;padding-left:10px}.node.case-file__node[_ngcontent-%COMP%]{width:80%;float:left}.node__document-options.case-file__action[_ngcontent-%COMP%]{width:15%;float:left;box-sizing:border-box;padding:12px}"] });
24519
24553
  }
24520
24554
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFolderComponent, [{
24521
24555
  type: Component,
24522
- args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\"\n aria-label=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <span class=\"document-folders-header__title\">Documents ({{ documentCount }})</span>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp | ccdDate : 'local' :'dd MMM YYYY HH:mm'}}</span>\n </span>\n <div class=\"node__document-options\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </button>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #fff;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#eee}.document-tree-container::-webkit-scrollbar-thumb{background:#ccc}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}\n"] }]
24556
+ args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\"\n aria-label=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <span class=\"document-folders-header__title\">Documents ({{ documentCount }})</span>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node case-file__node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp | ccdDate : 'local' :'dd MMM YYYY HH:mm'}}</span>\n </span>\n </button>\n <div class=\"node__document-options case-file__action\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #fff;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#eee}.document-tree-container::-webkit-scrollbar-thumb{background:#ccc}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}.node.case-file__node{width:80%;float:left}.node__document-options.case-file__action{width:15%;float:left;box-sizing:border-box;padding:12px}\n"] }]
24523
24557
  }], () => [{ type: WindowService }, { type: i1$1.Router }, { type: DocumentManagementService }, { type: i1$3.MatLegacyDialog }, { type: AbstractAppConfig }], { categoriesAndDocuments: [{
24524
24558
  type: Input
24525
24559
  }], allowMoving: [{
@@ -28315,6 +28349,9 @@ class WriteDateFieldComponent extends AbstractFieldWriteComponent {
28315
28349
  isDateTime() {
28316
28350
  return this.caseField.field_type.id === 'DateTime';
28317
28351
  }
28352
+ getId() {
28353
+ return this.caseField.getHierachicalId();
28354
+ }
28318
28355
  static ɵfac = /*@__PURE__*/ (() => { let ɵWriteDateFieldComponent_BaseFactory; return function WriteDateFieldComponent_Factory(t) { return (ɵWriteDateFieldComponent_BaseFactory || (ɵWriteDateFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(WriteDateFieldComponent)))(t || WriteDateFieldComponent); }; })();
28319
28356
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDateFieldComponent, selectors: [["ccd-write-date-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 14, consts: [[1, "form-group", "bottom-30", 3, "id", "ngClass"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [3, "id", "isDateTime", "mandatory", "isInvalid", "formControl"], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function WriteDateFieldComponent_Template(rf, ctx) { if (rf & 1) {
28320
28357
  i0.ɵɵelementStart(0, "div", 0)(1, "fieldset")(2, "legend");
@@ -28333,12 +28370,12 @@ class WriteDateFieldComponent extends AbstractFieldWriteComponent {
28333
28370
  i0.ɵɵadvance();
28334
28371
  i0.ɵɵproperty("ngIf", ctx.dateControl && ctx.dateControl.errors && (ctx.dateControl.dirty || ctx.dateControl.touched));
28335
28372
  i0.ɵɵadvance();
28336
- i0.ɵɵproperty("id", ctx.id())("isDateTime", ctx.isDateTime())("mandatory", i0.ɵɵpipeBind1(7, 10, ctx.caseField))("isInvalid", ctx.dateControl.errors && (ctx.dateControl.dirty || ctx.dateControl.touched))("formControl", ctx.dateControl);
28373
+ i0.ɵɵproperty("id", ctx.getId())("isDateTime", ctx.isDateTime())("mandatory", i0.ɵɵpipeBind1(7, 10, ctx.caseField))("isInvalid", ctx.dateControl.errors && (ctx.dateControl.dirty || ctx.dateControl.touched))("formControl", ctx.dateControl);
28337
28374
  } }, dependencies: [i5.NgClass, i5.NgIf, i4.NgControlStatus, i4.FormControlDirective, DateInputComponent, FieldLabelPipe, FirstErrorPipe, IsMandatoryPipe, i1.RpxTranslatePipe], encapsulation: 2 });
28338
28375
  }
28339
28376
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteDateFieldComponent, [{
28340
28377
  type: Component,
28341
- args: [{ selector: 'ccd-write-date-field', template: "<div class=\"form-group bottom-30\" [id]=\"id()\" [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && (dateControl.dirty || dateControl.touched)}\">\n\n <fieldset>\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n </legend>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"dateControl && dateControl.errors && (dateControl.dirty || dateControl.touched)\">\n {{(dateControl.errors | ccdFirstError:caseField.label)}}\n </span>\n <cut-date-input [id]=\"id()\"\n [isDateTime]=\"isDateTime()\"\n [mandatory]=\"caseField | ccdIsMandatory\"\n [isInvalid]=\"dateControl.errors && (dateControl.dirty || dateControl.touched)\"\n [formControl]=\"dateControl\"></cut-date-input>\n\n </fieldset>\n</div>\n" }]
28378
+ args: [{ selector: 'ccd-write-date-field', template: "<div class=\"form-group bottom-30\" [id]=\"id()\" [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && (dateControl.dirty || dateControl.touched)}\">\n\n <fieldset>\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n </legend>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"dateControl && dateControl.errors && (dateControl.dirty || dateControl.touched)\">\n {{(dateControl.errors | ccdFirstError:caseField.label)}}\n </span>\n <cut-date-input [id]=\"getId()\"\n [isDateTime]=\"isDateTime()\"\n [mandatory]=\"caseField | ccdIsMandatory\"\n [isInvalid]=\"dateControl.errors && (dateControl.dirty || dateControl.touched)\"\n [formControl]=\"dateControl\"></cut-date-input>\n\n </fieldset>\n</div>\n" }]
28342
28379
  }], null, null); })();
28343
28380
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteDateFieldComponent, { className: "WriteDateFieldComponent", filePath: "lib/shared/components/palette/date/write-date-field.component.ts", lineNumber: 9 }); })();
28344
28381
 
@@ -33347,7 +33384,9 @@ class CaseHistoryComponent {
33347
33384
  this.caseHistoryService = caseHistoryService;
33348
33385
  }
33349
33386
  ngOnInit() {
33350
- this.caseSubscription = this.caseNotifier.caseView.subscribe(caseDetails => {
33387
+ this.caseSubscription = this.caseNotifier.caseView
33388
+ .pipe(take(1))
33389
+ .subscribe((caseDetails) => {
33351
33390
  this.caseDetails = caseDetails;
33352
33391
  const eventId = this.route.snapshot.paramMap.get(CaseHistoryComponent.PARAM_EVENT_ID) || this.event;
33353
33392
  this.caseHistoryService