@hmcts/ccd-case-ui-toolkit 4.7.0-rc.5 → 4.8.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/.github/workflows/npmpublish.yml +40 -2
  2. package/RELEASE-NOTES.md +8 -0
  3. package/dist/app.config.d.ts +2 -0
  4. package/dist/app.config.js +3 -0
  5. package/dist/app.config.js.map +1 -1
  6. package/dist/app.config.metadata.json +1 -1
  7. package/dist/case-ui-toolkit.module.js +1 -0
  8. package/dist/case-ui-toolkit.module.js.map +1 -1
  9. package/dist/case-ui-toolkit.module.metadata.json +1 -1
  10. package/dist/cut-styles/shared/components/loading-spinner/loading-spinner.component.scss +36 -0
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.metadata.json +1 -1
  15. package/dist/index.umd.js +500 -185
  16. package/dist/index.umd.js.map +1 -1
  17. package/dist/index.umd.min.js +1 -1
  18. package/dist/index.umd.min.js.LICENSE.txt +1 -1
  19. package/dist/index.umd.min.js.map +1 -1
  20. package/dist/shared/components/case-editor/case-access-utils/index.d.ts +21 -0
  21. package/dist/shared/components/case-editor/case-access-utils/index.js +69 -0
  22. package/dist/shared/components/case-editor/case-access-utils/index.js.map +1 -0
  23. package/dist/shared/components/case-editor/case-access-utils/index.metadata.json +1 -0
  24. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +1 -0
  25. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.js +16 -3
  26. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.js.map +1 -1
  27. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.metadata.json +1 -1
  28. package/dist/shared/components/case-editor/case-editor.module.js +4 -1
  29. package/dist/shared/components/case-editor/case-editor.module.js.map +1 -1
  30. package/dist/shared/components/case-editor/case-editor.module.metadata.json +1 -1
  31. package/dist/shared/components/case-editor/domain/wizard.model.js +1 -1
  32. package/dist/shared/components/case-editor/index.d.ts +1 -0
  33. package/dist/shared/components/case-editor/index.js +1 -0
  34. package/dist/shared/components/case-editor/index.js.map +1 -1
  35. package/dist/shared/components/case-editor/index.metadata.json +1 -1
  36. package/dist/shared/components/case-editor/services/cases.service.js +24 -38
  37. package/dist/shared/components/case-editor/services/cases.service.js.map +1 -1
  38. package/dist/shared/components/case-editor/services/cases.service.metadata.json +1 -1
  39. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts +1 -0
  40. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +4 -1
  41. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js.map +1 -1
  42. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.metadata.json +1 -1
  43. package/dist/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +5 -9
  44. package/dist/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js.map +1 -1
  45. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.d.ts +27 -0
  46. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +87 -0
  47. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js.map +1 -0
  48. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.metadata.json +1 -0
  49. package/dist/shared/components/case-viewer/case-specific-access-request/index.d.ts +1 -0
  50. package/dist/shared/components/case-viewer/case-specific-access-request/index.js +7 -0
  51. package/dist/shared/components/case-viewer/case-specific-access-request/index.js.map +1 -0
  52. package/dist/shared/components/case-viewer/case-specific-access-request/index.metadata.json +1 -0
  53. package/dist/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.d.ts +8 -0
  54. package/dist/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.js +13 -0
  55. package/dist/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.js.map +1 -0
  56. package/dist/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.metadata.json +1 -0
  57. package/dist/shared/components/case-viewer/case-specific-access-request/models/index.d.ts +1 -0
  58. package/dist/shared/components/case-viewer/case-specific-access-request/models/index.js +7 -0
  59. package/dist/shared/components/case-viewer/case-specific-access-request/models/index.js.map +1 -0
  60. package/dist/shared/components/case-viewer/case-specific-access-request/models/index.metadata.json +1 -0
  61. package/dist/shared/components/case-viewer/case-viewer.module.js +2 -1
  62. package/dist/shared/components/case-viewer/case-viewer.module.js.map +1 -1
  63. package/dist/shared/components/case-viewer/case-viewer.module.metadata.json +1 -1
  64. package/dist/shared/components/case-viewer/viewer.routing.js +15 -1
  65. package/dist/shared/components/case-viewer/viewer.routing.js.map +1 -1
  66. package/dist/shared/components/case-viewer/viewer.routing.metadata.json +1 -1
  67. package/dist/shared/components/loading-spinner/loading-spinner.component.d.ts +3 -0
  68. package/dist/shared/components/loading-spinner/loading-spinner.component.js +32 -0
  69. package/dist/shared/components/loading-spinner/loading-spinner.component.js.map +1 -0
  70. package/dist/shared/components/loading-spinner/loading-spinner.component.metadata.json +1 -0
  71. package/dist/shared/components/palette/base-field/abstract-field-read.component.d.ts +2 -2
  72. package/dist/shared/components/palette/base-field/abstract-field-read.component.js +1 -1
  73. package/dist/shared/components/palette/base-field/abstract-field-read.component.js.map +1 -1
  74. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.d.ts +3 -2
  75. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.js +24 -4
  76. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.js.map +1 -1
  77. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.metadata.json +1 -1
  78. package/dist/shared/components/palette/complex/complex.module.js +2 -5
  79. package/dist/shared/components/palette/complex/complex.module.js.map +1 -1
  80. package/dist/shared/components/palette/complex/complex.module.metadata.json +1 -1
  81. package/dist/shared/components/palette/complex/read-complex-field-collection-table.component.d.ts +9 -9
  82. package/dist/shared/components/palette/complex/read-complex-field-collection-table.component.js +54 -62
  83. package/dist/shared/components/palette/complex/read-complex-field-collection-table.component.js.map +1 -1
  84. package/dist/shared/components/palette/complex/read-complex-field-collection-table.component.metadata.json +1 -1
  85. package/dist/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +8 -0
  86. package/dist/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js.map +1 -1
  87. package/dist/shared/directives/conditional-show/domain/conditional-show.model.d.ts +5 -0
  88. package/dist/shared/directives/conditional-show/domain/conditional-show.model.js +21 -1
  89. package/dist/shared/directives/conditional-show/domain/conditional-show.model.js.map +1 -1
  90. package/dist/shared/directives/conditional-show/domain/conditional-show.model.metadata.json +1 -1
  91. package/dist/shared/directives/conditional-show/index.d.ts +1 -0
  92. package/dist/shared/directives/conditional-show/index.js +1 -0
  93. package/dist/shared/directives/conditional-show/index.js.map +1 -1
  94. package/dist/shared/directives/conditional-show/index.metadata.json +1 -1
  95. package/dist/shared/directives/conditional-show/services/conditional-show-registrar.service.js +2 -0
  96. package/dist/shared/directives/conditional-show/services/conditional-show-registrar.service.js.map +1 -1
  97. package/dist/shared/domain/case-view/index.d.ts +1 -1
  98. package/dist/shared/domain/case-view/index.metadata.json +1 -1
  99. package/dist/shared/domain/case-view/role-assignment-response.model.d.ts +1 -1
  100. package/dist/shared/domain/case-view/role-request.model.d.ts +28 -10
  101. package/dist/shared/domain/case-view/role-request.model.metadata.json +1 -1
  102. package/dist/shared/domain/case-view/specific-access-request.model.d.ts +5 -0
  103. package/dist/shared/domain/case-view/{requested-role.model.js → specific-access-request.model.js} +1 -1
  104. package/dist/shared/domain/case-view/specific-access-request.model.js.map +1 -0
  105. package/dist/shared/domain/case-view/specific-access-request.model.metadata.json +1 -0
  106. package/dist/shared/domain/user/user-info.model.d.ts +1 -0
  107. package/dist/shared/services/form/form-value.service.js +7 -0
  108. package/dist/shared/services/form/form-value.service.js.map +1 -1
  109. package/dist/shared/services/loading/loading.service.js +1 -1
  110. package/dist/shared/services/loading/loading.service.js.map +1 -1
  111. package/package.json +3 -3
  112. package/sonar-project.properties +4 -5
  113. package/dist/shared/components/palette/complex/ccd-collection-table-value-case-fields.pipe.d.ts +0 -7
  114. package/dist/shared/components/palette/complex/ccd-collection-table-value-case-fields.pipe.js +0 -48
  115. package/dist/shared/components/palette/complex/ccd-collection-table-value-case-fields.pipe.js.map +0 -1
  116. package/dist/shared/components/palette/complex/ccd-collection-table-value-case-fields.pipe.metadata.json +0 -1
  117. package/dist/shared/domain/case-view/requested-role.model.d.ts +0 -25
  118. package/dist/shared/domain/case-view/requested-role.model.js.map +0 -1
  119. package/dist/shared/domain/case-view/requested-role.model.metadata.json +0 -1
package/dist/index.umd.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @hmcts/ccd-case-ui-toolkit - Case UI Toolkit
3
- * @version v4.7.0-rc.5
3
+ * @version v4.8.0-rc.1
4
4
  * @link undefined
5
5
  * @license MIT
6
6
  */
@@ -10754,6 +10754,9 @@ var AbstractAppConfig = /** @class */ (function () {
10754
10754
  AbstractAppConfig.prototype.getLocationRefApiUrl = function () {
10755
10755
  return undefined;
10756
10756
  };
10757
+ AbstractAppConfig.prototype.getCamRoleAssignmentsApiUrl = function () {
10758
+ return undefined;
10759
+ };
10757
10760
  return AbstractAppConfig;
10758
10761
  }());
10759
10762
  exports.AbstractAppConfig = AbstractAppConfig;
@@ -10881,6 +10884,7 @@ var CaseUIToolkitModule = /** @class */ (function () {
10881
10884
  shared_1.WriteNumberFieldComponent,
10882
10885
  shared_1.WriteEmailFieldComponent,
10883
10886
  shared_1.WriteDateFieldComponent,
10887
+ shared_1.ConditionalShowDirective,
10884
10888
  shared_1.LabelSubstitutorDirective,
10885
10889
  shared_1.FocusElementDirective,
10886
10890
  ngx_pagination_1.PaginatePipe
@@ -11975,6 +11979,7 @@ exports.SortOrder = domain_1.SortOrder;
11975
11979
  exports.SortParameters = domain_1.SortParameters;
11976
11980
  var directives_1 = __webpack_require__(66395);
11977
11981
  exports.ShowCondition = directives_1.ShowCondition;
11982
+ exports.ConditionalShowDirective = directives_1.ConditionalShowDirective;
11978
11983
  exports.ConditionalShowModule = directives_1.ConditionalShowModule;
11979
11984
  exports.PlaceholderService = directives_1.PlaceholderService;
11980
11985
  exports.LabelSubstitutorDirective = directives_1.LabelSubstitutorDirective;
@@ -12377,6 +12382,82 @@ __export(__webpack_require__(41580));
12377
12382
  __export(__webpack_require__(4765));
12378
12383
 
12379
12384
 
12385
+ /***/ }),
12386
+
12387
+ /***/ 25919:
12388
+ /***/ ((__unused_webpack_module, exports) => {
12389
+
12390
+ "use strict";
12391
+
12392
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
12393
+ var CaseAccessUtils = /** @class */ (function () {
12394
+ function CaseAccessUtils() {
12395
+ }
12396
+ CaseAccessUtils.prototype.getMappedRoleCategory = function (roles, roleCategories) {
12397
+ var roleKeywords = roles.join().split('-').join().split(',');
12398
+ if (this.roleOrCategoryExists(CaseAccessUtils.JUDGE_ROLE, CaseAccessUtils.JUDGE_ROLE_CATEGORY, roleKeywords, roleCategories)) {
12399
+ return CaseAccessUtils.JUDGE_ROLE_CATEGORY;
12400
+ }
12401
+ else if (this.roleOrCategoryExists(CaseAccessUtils.PROFESSIONAL_ROLE, CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY, roleKeywords, roleCategories)) {
12402
+ return CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY;
12403
+ }
12404
+ else if (this.roleOrCategoryExists(CaseAccessUtils.CITIZEN_ROLE, CaseAccessUtils.CITIZEN_ROLE_CATEGORY, roleKeywords, roleCategories)) {
12405
+ return CaseAccessUtils.CITIZEN_ROLE_CATEGORY;
12406
+ }
12407
+ else if (this.roleOrCategoryExists(CaseAccessUtils.ADMIN_ROLE, CaseAccessUtils.ADMIN_ROLE_CATEGORY, roleKeywords, roleCategories)) {
12408
+ return CaseAccessUtils.ADMIN_ROLE_CATEGORY;
12409
+ }
12410
+ else {
12411
+ return CaseAccessUtils.LEGAL_OPERATIONS_ROLE_CATEGORY;
12412
+ }
12413
+ };
12414
+ CaseAccessUtils.prototype.roleOrCategoryExists = function (roleKeyword, roleCategory, roleKeywords, roleCategories) {
12415
+ var categoryExists = roleCategories.indexOf(roleCategory) > -1;
12416
+ var keywordExists = roleKeywords.indexOf(roleKeyword) > -1;
12417
+ return categoryExists ? categoryExists : keywordExists;
12418
+ };
12419
+ CaseAccessUtils.prototype.getAMRoleName = function (accessType, aMRole) {
12420
+ var roleName = '';
12421
+ switch (aMRole) {
12422
+ case CaseAccessUtils.JUDGE_ROLE_CATEGORY:
12423
+ roleName = accessType + "-access-" + CaseAccessUtils.JUDGE_ROLE_NAME;
12424
+ break;
12425
+ case CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY:
12426
+ roleName = accessType + "-access-" + CaseAccessUtils.PROFESSIONAL_ROLE_NAME;
12427
+ break;
12428
+ case CaseAccessUtils.CITIZEN_ROLE_CATEGORY:
12429
+ roleName = accessType + "-access-" + CaseAccessUtils.CITIZEN_ROLE_NAME;
12430
+ break;
12431
+ case CaseAccessUtils.ADMIN_ROLE_CATEGORY:
12432
+ roleName = accessType + "-access-" + CaseAccessUtils.ADMIN_ROLE_NAME;
12433
+ break;
12434
+ default:
12435
+ roleName = accessType + "-access-" + CaseAccessUtils.LEGAL_OPERATIONS_ROLE_NAME;
12436
+ break;
12437
+ }
12438
+ return roleName;
12439
+ };
12440
+ // User role mapping
12441
+ CaseAccessUtils.JUDGE_ROLE = 'judge';
12442
+ CaseAccessUtils.JUDGE_ROLE_CATEGORY = 'JUDICIAL';
12443
+ CaseAccessUtils.JUDGE_ROLE_NAME = 'judicial';
12444
+ CaseAccessUtils.ADMIN_ROLE = 'admin';
12445
+ CaseAccessUtils.ADMIN_ROLE_CATEGORY = 'ADMIN';
12446
+ CaseAccessUtils.ADMIN_ROLE_NAME = 'admin';
12447
+ CaseAccessUtils.PROFESSIONAL_ROLE = 'solicitor';
12448
+ CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY = 'PROFESSIONAL';
12449
+ CaseAccessUtils.PROFESSIONAL_ROLE_NAME = 'professional';
12450
+ CaseAccessUtils.LEGAL_OPERATIONS_ROLE = 'caseworker';
12451
+ CaseAccessUtils.LEGAL_OPERATIONS_ROLE_CATEGORY = 'LEGAL_OPERATIONS';
12452
+ CaseAccessUtils.LEGAL_OPERATIONS_ROLE_NAME = 'legal-operations';
12453
+ CaseAccessUtils.CITIZEN_ROLE = 'citizen';
12454
+ CaseAccessUtils.CITIZEN_ROLE_CATEGORY = 'CITIZEN';
12455
+ CaseAccessUtils.CITIZEN_ROLE_NAME = 'citizen';
12456
+ return CaseAccessUtils;
12457
+ }());
12458
+ exports.CaseAccessUtils = CaseAccessUtils;
12459
+
12460
+
12380
12461
  /***/ }),
12381
12462
 
12382
12463
  /***/ 19119:
@@ -12868,6 +12949,7 @@ var CaseEditPageComponent = /** @class */ (function () {
12868
12949
  if (this.currentPageIsNotValid()) {
12869
12950
  this.generateErrorMessage(this.currentPage.case_fields);
12870
12951
  }
12952
+ this.showSpinner = true;
12871
12953
  if (!this.isSubmitting && !this.currentPageIsNotValid()) {
12872
12954
  this.isSubmitting = true;
12873
12955
  this.error = null;
@@ -12878,8 +12960,12 @@ var CaseEditPageComponent = /** @class */ (function () {
12878
12960
  _this.updateFormData(jsonData);
12879
12961
  }
12880
12962
  _this.saveDraft();
12963
+ _this.showSpinner = false;
12881
12964
  _this.next();
12882
- }, function (error) { return _this.handleError(error); });
12965
+ }, function (error) {
12966
+ _this.showSpinner = false;
12967
+ _this.handleError(error);
12968
+ });
12883
12969
  CaseEditPageComponent_1.scrollToTop();
12884
12970
  }
12885
12971
  CaseEditPageComponent_1.setFocusToTop();
@@ -12907,7 +12993,15 @@ var CaseEditPageComponent = /** @class */ (function () {
12907
12993
  CaseEditPageComponent.prototype.updateFormControlsValue = function (formGroup, caseFieldId, value) {
12908
12994
  var theControl = formGroup.controls['data'].get(caseFieldId);
12909
12995
  if (theControl) {
12910
- theControl.patchValue(value);
12996
+ if (Array.isArray(theControl.value) && Array.isArray(value)
12997
+ && theControl.value.length > value.length && theControl['caseField']
12998
+ && theControl['caseField']['display_context'] && theControl['caseField']['display_context'] === 'OPTIONAL'
12999
+ && theControl['caseField']['field_type'] && theControl['caseField']['field_type']['type'] === 'Collection') {
13000
+ // do nothing
13001
+ }
13002
+ else {
13003
+ theControl.patchValue(value);
13004
+ }
12911
13005
  }
12912
13006
  };
12913
13007
  CaseEditPageComponent.prototype.callbackErrorsNotify = function (errorContext) {
@@ -13704,6 +13798,7 @@ var profile_1 = __webpack_require__(59412);
13704
13798
  var profile_service_1 = __webpack_require__(25925);
13705
13799
  var router_2 = __webpack_require__(71724);
13706
13800
  var errors_module_1 = __webpack_require__(61386);
13801
+ var loading_spinner_component_1 = __webpack_require__(41617);
13707
13802
  var palette_1 = __webpack_require__(22212);
13708
13803
  var case_create_component_1 = __webpack_require__(19119);
13709
13804
  var case_edit_confirm_component_1 = __webpack_require__(26329);
@@ -13742,7 +13837,8 @@ var CaseEditorModule = /** @class */ (function () {
13742
13837
  case_edit_form_component_1.CaseEditFormComponent,
13743
13838
  case_edit_submit_component_1.CaseEditSubmitComponent,
13744
13839
  case_create_component_1.CaseCreateComponent,
13745
- case_progress_component_1.CaseProgressComponent
13840
+ case_progress_component_1.CaseProgressComponent,
13841
+ loading_spinner_component_1.LoadingSpinnerComponent
13746
13842
  ],
13747
13843
  exports: [
13748
13844
  case_edit_confirm_component_1.CaseEditConfirmComponent,
@@ -13753,6 +13849,7 @@ var CaseEditorModule = /** @class */ (function () {
13753
13849
  case_create_component_1.CaseCreateComponent,
13754
13850
  case_progress_component_1.CaseProgressComponent,
13755
13851
  error_1.CallbackErrorsComponent,
13852
+ loading_spinner_component_1.LoadingSpinnerComponent,
13756
13853
  ],
13757
13854
  providers: [
13758
13855
  fields_utils_1.FieldsUtils,
@@ -14045,7 +14142,7 @@ var Wizard = /** @class */ (function () {
14045
14142
  return canShow(foundPage) ? foundPage : undefined;
14046
14143
  };
14047
14144
  Wizard.prototype.findWizardPage = function (caseFieldId, pageId) {
14048
- return this.pages.find(function (wizardPage) { return wizardPage.id === pageId && wizardPage.case_fields &&
14145
+ return this.pages.find(function (wizardPage) { return wizardPage.id === pageId || wizardPage.case_fields &&
14049
14146
  wizardPage.case_fields.filter(function (caseField) { return caseField.id === caseFieldId; }).length > 0; });
14050
14147
  };
14051
14148
  Wizard.prototype.nextPage = function (pageId, canShow) {
@@ -14147,6 +14244,7 @@ __export(__webpack_require__(29808));
14147
14244
  __export(__webpack_require__(25961));
14148
14245
  __export(__webpack_require__(20039));
14149
14246
  __export(__webpack_require__(41473));
14247
+ __export(__webpack_require__(25919));
14150
14248
 
14151
14249
 
14152
14250
  /***/ }),
@@ -14319,6 +14417,7 @@ var app_config_1 = __webpack_require__(35185);
14319
14417
  var directives_1 = __webpack_require__(66395);
14320
14418
  var domain_1 = __webpack_require__(59346);
14321
14419
  var services_1 = __webpack_require__(65010);
14420
+ var case_access_utils_1 = __webpack_require__(25919);
14322
14421
  var wizard_page_field_to_case_field_mapper_1 = __webpack_require__(12393);
14323
14422
  var work_allocation_service_1 = __webpack_require__(93603);
14324
14423
  var CasesService = /** @class */ (function () {
@@ -14588,56 +14687,41 @@ var CasesService = /** @class */ (function () {
14588
14687
  return this.http.get(this.appConfig.getLocationRefApiUrl() + "/building-locations?epimms_id=" + locationId);
14589
14688
  };
14590
14689
  CasesService.prototype.createChallengedAccessRequest = function (caseId, car) {
14591
- // Dummy implementation for now; the real one will make a call to the Node layer, which will call the appropriate Role
14592
14690
  // Assignment API endpoint
14593
- var roleAssignmentResponse = {
14691
+ var userInfoStr = this.sessionStorageService.getItem('userDetails');
14692
+ var camUtils = new case_access_utils_1.CaseAccessUtils();
14693
+ var userInfo;
14694
+ if (userInfoStr) {
14695
+ userInfo = JSON.parse(userInfoStr);
14696
+ }
14697
+ var roleCategory = camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
14698
+ var roleName = camUtils.getAMRoleName('challenged', roleCategory);
14699
+ var payload = {
14594
14700
  roleRequest: {
14595
- id: '0c6f56f5-4457-485e-a0de-828e6dfa1e33',
14596
- authenticatedUserId: '37d4eab7-e14c-404e-8cd1-55cd06b2fc06',
14597
- correlationId: '003352d0-e699-48bc-b6f5-5810411e60af',
14598
- assignerId: '37d4eab7-e14c-404e-8cd1-55cd06b2fc06',
14599
- requestType: 'CREATE',
14600
- process: 'businessProcess1',
14601
- reference: 'cf07ea33-31c0-4442-b2df-e2032d21b496',
14602
- replaceExisting: true,
14603
- status: 'APPROVED',
14604
- created: new Date('2021-01-28T18:16:49.100121Z'),
14605
- log: 'Request has been approved'
14701
+ assignerId: userInfo.id
14606
14702
  },
14607
14703
  requestedRoles: [{
14608
- id: '3ccabbf2-71fa-4c5d-af39-5675d25e9fcc',
14609
14704
  actorIdType: 'IDAM',
14610
- actorId: 'cf07ea33-31c0-4442-b2df-e2032d21b496',
14611
- roleType: 'ORGANISATION',
14612
- roleName: 'judge',
14705
+ actorId: userInfo.id,
14706
+ roleType: 'CASE',
14707
+ roleName: roleName,
14613
14708
  classification: 'PUBLIC',
14709
+ roleCategory: roleCategory,
14614
14710
  grantType: 'CHALLENGED',
14615
- roleCategory: 'JUDICIAL',
14616
- readOnly: false,
14617
- beginTime: new Date('2021-01-01T00:00:00Z'),
14618
- endTime: new Date('2023-01-01T00:00:00Z'),
14619
- process: 'businessProcess1',
14620
- reference: 'cf07ea33-31c0-4442-b2df-e2032d21b496',
14621
- status: 'LIVE',
14622
- created: new Date('2021-01-28T18:16:49.100155Z'),
14623
- log: 'Create requested with replace: true\nCreate approved : judicial_organisational_role_mapping_service_create',
14711
+ beginTime: new Date(),
14712
+ endTime: new Date(new Date().setUTCHours(23, 59, 59, 999)),
14624
14713
  attributes: {
14625
- jurisdiction: 'divorce',
14626
- region: 'south-east',
14627
- contractType: 'SALARIED'
14714
+ caseId: caseId
14628
14715
  },
14629
14716
  notes: [{
14630
- userId: '003352d0-e699-48bc-b6f5-5810411e60ag',
14631
- time: new Date('2020-01-01T00:00Z'),
14632
- comment: 'Need Access to case number 1234567890123456 for a month'
14633
- }, {
14634
- userId: '52aa3810-af1f-11ea-b3de-0242ac130004',
14635
- time: new Date('2020-01-02T00:00Z'),
14636
- comment: 'Access granted till end of day'
14637
- }]
14717
+ userId: userInfo.id,
14718
+ time: new Date(),
14719
+ comment: JSON.stringify(car)
14720
+ }
14721
+ ]
14638
14722
  }]
14639
14723
  };
14640
- return rxjs_1.of(roleAssignmentResponse);
14724
+ return this.http.post("" + this.appConfig.getCamRoleAssignmentsApiUrl(), payload);
14641
14725
  };
14642
14726
  var CasesService_1;
14643
14727
  // Internal (UI) API
@@ -16054,6 +16138,9 @@ var CaseBasicAccessViewComponent = /** @class */ (function () {
16054
16138
  // Navigate to the previous page
16055
16139
  window.history.go(-1);
16056
16140
  };
16141
+ CaseBasicAccessViewComponent.prototype.getRequestUrl = function (accessType) {
16142
+ return accessType === 'CHALLENGED' ? 'challenged-access-request' : 'specific-access-request';
16143
+ };
16057
16144
  __decorate([
16058
16145
  core_1.Input(),
16059
16146
  __metadata("design:type", domain_1.CaseView)
@@ -16562,13 +16649,11 @@ var CaseFullAccessViewComponent = /** @class */ (function () {
16562
16649
  return this.caseDetails.case_type.printEnabled;
16563
16650
  };
16564
16651
  CaseFullAccessViewComponent.prototype.ngOnDestroy = function () {
16565
- if (this.activitySubscription && this.activityPollingService.isEnabled) {
16652
+ if (this.activityPollingService.isEnabled) {
16566
16653
  this.activitySubscription.unsubscribe();
16567
16654
  }
16568
- if (this.callbackErrorsSubject) {
16569
- this.callbackErrorsSubject.unsubscribe();
16570
- }
16571
- if (!this.route.snapshot.data.case && this.caseSubscription) {
16655
+ this.callbackErrorsSubject.unsubscribe();
16656
+ if (!this.route.snapshot.data.case) {
16572
16657
  this.caseSubscription.unsubscribe();
16573
16658
  }
16574
16659
  if (this.errorSubscription) {
@@ -16663,8 +16748,7 @@ var CaseFullAccessViewComponent = /** @class */ (function () {
16663
16748
  var regExp = new RegExp(CaseFullAccessViewComponent_1.UNICODE_SPACE, 'g');
16664
16749
  hashValue = hashValue.replace(regExp, CaseFullAccessViewComponent_1.EMPTY_SPACE);
16665
16750
  matTab = this.tabGroup._tabs.find(function (x) {
16666
- return x.textLabel.replace(CaseFullAccessViewComponent_1.EMPTY_SPACE, '').toLowerCase() ===
16667
- hashValue.replace(CaseFullAccessViewComponent_1.EMPTY_SPACE, '').toLowerCase();
16751
+ return x.textLabel.replace(CaseFullAccessViewComponent_1.EMPTY_SPACE, '').toLowerCase() === hashValue.toLowerCase();
16668
16752
  });
16669
16753
  if (matTab && matTab.position) {
16670
16754
  this.tabGroup.selectedIndex = matTab.position;
@@ -16678,9 +16762,8 @@ var CaseFullAccessViewComponent = /** @class */ (function () {
16678
16762
  this.router.navigate([id], { relativeTo: this.route });
16679
16763
  }
16680
16764
  else {
16681
- var label_1 = tabChangeEvent.tab.textLabel;
16682
16765
  this.router.navigate(['cases', 'case-details', this.caseDetails.case_id]).then(function () {
16683
- window.location.hash = label_1;
16766
+ window.location.hash = id;
16684
16767
  });
16685
16768
  }
16686
16769
  };
@@ -16798,6 +16881,148 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
16798
16881
  __export(__webpack_require__(76764));
16799
16882
 
16800
16883
 
16884
+ /***/ }),
16885
+
16886
+ /***/ 38692:
16887
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
16888
+
16889
+ "use strict";
16890
+
16891
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
16892
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16893
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16894
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16895
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
16896
+ };
16897
+ var __metadata = (this && this.__metadata) || function (k, v) {
16898
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16899
+ };
16900
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
16901
+ var core_1 = __webpack_require__(57208);
16902
+ var forms_1 = __webpack_require__(92985);
16903
+ var router_1 = __webpack_require__(92302);
16904
+ var models_1 = __webpack_require__(3234);
16905
+ var CaseSpecificAccessRequestComponent = /** @class */ (function () {
16906
+ function CaseSpecificAccessRequestComponent(fb, router, route) {
16907
+ this.fb = fb;
16908
+ this.router = router;
16909
+ this.route = route;
16910
+ this.collapsed = false;
16911
+ this.submitted = false;
16912
+ this.genericError = 'There is a problem';
16913
+ this.specificReasonControlName = 'specificReason';
16914
+ }
16915
+ CaseSpecificAccessRequestComponent.prototype.ngOnInit = function () {
16916
+ var _this = this;
16917
+ this.title = models_1.SpecificAccessRequestPageText.TITLE;
16918
+ this.hint = models_1.SpecificAccessRequestPageText.HINT;
16919
+ this.caseRefLabel = models_1.SpecificAccessRequestPageText.CASE_REF;
16920
+ this.formGroup = this.fb.group({
16921
+ radioSelected: new forms_1.FormControl(null, null),
16922
+ });
16923
+ this.formGroup.addControl(this.specificReasonControlName, new forms_1.FormControl('', {
16924
+ validators: [
16925
+ function (control) {
16926
+ if (_this.inputEmpty(control)) {
16927
+ return { invalid: true };
16928
+ }
16929
+ return null;
16930
+ },
16931
+ ],
16932
+ updateOn: 'submit',
16933
+ }));
16934
+ };
16935
+ CaseSpecificAccessRequestComponent.prototype.inputEmpty = function (input) {
16936
+ return input.value == null || input.value.trim().length === 0;
16937
+ };
16938
+ CaseSpecificAccessRequestComponent.prototype.onChange = function () {
16939
+ this.submitted = false;
16940
+ // Clear the "specific reason" fields manually. This prevents any previous value being retained by
16941
+ // the field's FormControl when the field itself is removed from the DOM by *ngIf. (If it is subsequently added back
16942
+ // to the DOM by *ngIf, it will appear empty but the associated FormControl still has the previous value.)
16943
+ this.formGroup.get(this.specificReasonControlName).setValue('');
16944
+ };
16945
+ CaseSpecificAccessRequestComponent.prototype.onSubmit = function () {
16946
+ this.submitted = true;
16947
+ if (this.formGroup.get(this.specificReasonControlName).invalid) {
16948
+ this.errorMessage = {
16949
+ title: this.genericError,
16950
+ description: models_1.SpecificAccessRequestErrors.NO_REASON,
16951
+ fieldId: 'specific-reason',
16952
+ };
16953
+ }
16954
+ };
16955
+ CaseSpecificAccessRequestComponent.prototype.onCancel = function () {
16956
+ // Navigate to the page before previous one (should be Search Results or Case List page, for example)
16957
+ window.history.go(-2);
16958
+ };
16959
+ CaseSpecificAccessRequestComponent.prototype.ngOnDestroy = function () {
16960
+ if (this.$roleAssignmentResponseSubscription) {
16961
+ this.$roleAssignmentResponseSubscription.unsubscribe();
16962
+ }
16963
+ };
16964
+ CaseSpecificAccessRequestComponent = __decorate([
16965
+ core_1.Component({
16966
+ selector: 'ccd-case-specific-access-request',
16967
+ template: __webpack_require__(5856),
16968
+ }),
16969
+ __metadata("design:paramtypes", [forms_1.FormBuilder,
16970
+ router_1.Router,
16971
+ router_1.ActivatedRoute])
16972
+ ], CaseSpecificAccessRequestComponent);
16973
+ return CaseSpecificAccessRequestComponent;
16974
+ }());
16975
+ exports.CaseSpecificAccessRequestComponent = CaseSpecificAccessRequestComponent;
16976
+
16977
+
16978
+ /***/ }),
16979
+
16980
+ /***/ 73343:
16981
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16982
+
16983
+ "use strict";
16984
+
16985
+ function __export(m) {
16986
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
16987
+ }
16988
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
16989
+ __export(__webpack_require__(38692));
16990
+
16991
+
16992
+ /***/ }),
16993
+
16994
+ /***/ 52772:
16995
+ /***/ ((__unused_webpack_module, exports) => {
16996
+
16997
+ "use strict";
16998
+
16999
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
17000
+ var SpecificAccessRequestPageText;
17001
+ (function (SpecificAccessRequestPageText) {
17002
+ SpecificAccessRequestPageText["TITLE"] = "Why do you need to access this case?";
17003
+ SpecificAccessRequestPageText["HINT"] = "Provide a reason.";
17004
+ SpecificAccessRequestPageText["CASE_REF"] = "Case reference";
17005
+ })(SpecificAccessRequestPageText = exports.SpecificAccessRequestPageText || (exports.SpecificAccessRequestPageText = {}));
17006
+ var SpecificAccessRequestErrors;
17007
+ (function (SpecificAccessRequestErrors) {
17008
+ SpecificAccessRequestErrors["NO_REASON"] = "Enter a reason";
17009
+ })(SpecificAccessRequestErrors = exports.SpecificAccessRequestErrors || (exports.SpecificAccessRequestErrors = {}));
17010
+
17011
+
17012
+ /***/ }),
17013
+
17014
+ /***/ 3234:
17015
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
17016
+
17017
+ "use strict";
17018
+
17019
+ function __export(m) {
17020
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
17021
+ }
17022
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
17023
+ __export(__webpack_require__(52772));
17024
+
17025
+
16801
17026
  /***/ }),
16802
17027
 
16803
17028
  /***/ 76979:
@@ -17084,6 +17309,7 @@ var palette_1 = __webpack_require__(22212);
17084
17309
  var case_basic_access_view_component_1 = __webpack_require__(42906);
17085
17310
  var case_challenged_access_request_component_1 = __webpack_require__(70776);
17086
17311
  var case_challenged_access_success_component_1 = __webpack_require__(41969);
17312
+ var case_specific_access_request_component_1 = __webpack_require__(38692);
17087
17313
  var case_event_trigger_1 = __webpack_require__(92100);
17088
17314
  var case_full_access_view_component_1 = __webpack_require__(76764);
17089
17315
  var case_view_1 = __webpack_require__(65389);
@@ -17112,7 +17338,6 @@ var CaseViewerModule = /** @class */ (function () {
17112
17338
  palette_1.EventLogModule,
17113
17339
  material_1.MatTabsModule,
17114
17340
  palette_1.ComplexModule,
17115
- forms_1.FormsModule,
17116
17341
  forms_1.ReactiveFormsModule,
17117
17342
  alert_1.AlertModule
17118
17343
  ],
@@ -17125,6 +17350,7 @@ var CaseViewerModule = /** @class */ (function () {
17125
17350
  case_view_1.CaseViewComponent,
17126
17351
  printer_1.PrintUrlPipe,
17127
17352
  case_challenged_access_request_component_1.CaseChallengedAccessRequestComponent,
17353
+ case_specific_access_request_component_1.CaseSpecificAccessRequestComponent,
17128
17354
  error_message_component_1.ErrorMessageComponent,
17129
17355
  case_challenged_access_success_component_1.CaseChallengedAccessSuccessComponent
17130
17356
  ],
@@ -17576,6 +17802,7 @@ var case_history_1 = __webpack_require__(30542);
17576
17802
  var file_upload_progress_guard_1 = __webpack_require__(27667);
17577
17803
  var case_challenged_access_request_1 = __webpack_require__(38403);
17578
17804
  var case_challenged_access_success_1 = __webpack_require__(26840);
17805
+ var case_specific_access_request_1 = __webpack_require__(73343);
17579
17806
  var case_event_trigger_component_1 = __webpack_require__(83645);
17580
17807
  var printer_1 = __webpack_require__(65773);
17581
17808
  var services_1 = __webpack_require__(50137);
@@ -17598,7 +17825,7 @@ exports.viewerRouting = [
17598
17825
  component: case_history_1.CaseHistoryComponent,
17599
17826
  },
17600
17827
  {
17601
- path: 'access-request',
17828
+ path: 'challenged-access-request',
17602
17829
  children: [
17603
17830
  {
17604
17831
  path: '',
@@ -17616,6 +17843,19 @@ exports.viewerRouting = [
17616
17843
  }
17617
17844
  }
17618
17845
  ]
17846
+ },
17847
+ {
17848
+ path: 'specific-access-request',
17849
+ children: [
17850
+ {
17851
+ path: '',
17852
+ component: case_specific_access_request_1.CaseSpecificAccessRequestComponent,
17853
+ data: {
17854
+ title: 'Request Specific Access'
17855
+ },
17856
+ pathMatch: 'full'
17857
+ }
17858
+ ]
17619
17859
  }
17620
17860
  ];
17621
17861
 
@@ -18650,6 +18890,45 @@ __export(__webpack_require__(13370));
18650
18890
  __export(__webpack_require__(62240));
18651
18891
 
18652
18892
 
18893
+ /***/ }),
18894
+
18895
+ /***/ 41617:
18896
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
18897
+
18898
+ "use strict";
18899
+
18900
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18901
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18902
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18903
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18904
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18905
+ };
18906
+ var __metadata = (this && this.__metadata) || function (k, v) {
18907
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
18908
+ };
18909
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
18910
+ var core_1 = __webpack_require__(57208);
18911
+ var LoadingSpinnerComponent = /** @class */ (function () {
18912
+ function LoadingSpinnerComponent() {
18913
+ this.loadingText = 'Loading';
18914
+ }
18915
+ __decorate([
18916
+ core_1.Input(),
18917
+ __metadata("design:type", Object)
18918
+ ], LoadingSpinnerComponent.prototype, "loadingText", void 0);
18919
+ LoadingSpinnerComponent = __decorate([
18920
+ core_1.Component({
18921
+ selector: 'ccd-loading-spinner',
18922
+ template: __webpack_require__(31851),
18923
+ styles: [__webpack_require__(6431)],
18924
+ encapsulation: core_1.ViewEncapsulation.None
18925
+ })
18926
+ ], LoadingSpinnerComponent);
18927
+ return LoadingSpinnerComponent;
18928
+ }());
18929
+ exports.LoadingSpinnerComponent = LoadingSpinnerComponent;
18930
+
18931
+
18653
18932
  /***/ }),
18654
18933
 
18655
18934
  /***/ 47174:
@@ -19251,7 +19530,7 @@ var AbstractFieldReadComponent = /** @class */ (function (_super) {
19251
19530
  ], AbstractFieldReadComponent.prototype, "caseReference", void 0);
19252
19531
  __decorate([
19253
19532
  core_1.Input(),
19254
- __metadata("design:type", forms_1.FormGroup)
19533
+ __metadata("design:type", Object)
19255
19534
  ], AbstractFieldReadComponent.prototype, "topLevelFormGroup", void 0);
19256
19535
  __decorate([
19257
19536
  core_1.Input(),
@@ -20470,61 +20749,6 @@ var WriteCollectionFieldComponent = /** @class */ (function (_super) {
20470
20749
  exports.WriteCollectionFieldComponent = WriteCollectionFieldComponent;
20471
20750
 
20472
20751
 
20473
- /***/ }),
20474
-
20475
- /***/ 18649:
20476
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
20477
-
20478
- "use strict";
20479
-
20480
- var __assign = (this && this.__assign) || function () {
20481
- __assign = Object.assign || function(t) {
20482
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20483
- s = arguments[i];
20484
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20485
- t[p] = s[p];
20486
- }
20487
- return t;
20488
- };
20489
- return __assign.apply(this, arguments);
20490
- };
20491
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
20492
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20493
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20494
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20495
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20496
- };
20497
- Object.defineProperty(exports, "__esModule", ({ value: true }));
20498
- var core_1 = __webpack_require__(57208);
20499
- var definition_1 = __webpack_require__(11080);
20500
- var class_transformer_1 = __webpack_require__(86631);
20501
- var CcdCollectionTableCaseFieldsFilterPipe = /** @class */ (function () {
20502
- function CcdCollectionTableCaseFieldsFilterPipe() {
20503
- }
20504
- CcdCollectionTableCaseFieldsFilterPipe.prototype.transform = function (objs, caseField, value) {
20505
- var fields = objs.map(function (obj) { return (__assign({}, obj.value.caseField, { type: obj.value.type.type ? obj.value.type.type : obj.value.type })); });
20506
- return class_transformer_1.plainToClassFromExist(new definition_1.CaseField(), {
20507
- id: caseField ? caseField.id : '',
20508
- label: caseField ? caseField.label : '',
20509
- display_context: 'READONLY',
20510
- value: value,
20511
- field_type: {
20512
- id: caseField ? caseField.id : '',
20513
- type: 'Complex',
20514
- complex_fields: fields,
20515
- }
20516
- });
20517
- };
20518
- CcdCollectionTableCaseFieldsFilterPipe = __decorate([
20519
- core_1.Pipe({
20520
- name: 'ccdCollectionTableCaseFieldsFilter'
20521
- })
20522
- ], CcdCollectionTableCaseFieldsFilterPipe);
20523
- return CcdCollectionTableCaseFieldsFilterPipe;
20524
- }());
20525
- exports.CcdCollectionTableCaseFieldsFilterPipe = CcdCollectionTableCaseFieldsFilterPipe;
20526
-
20527
-
20528
20752
  /***/ }),
20529
20753
 
20530
20754
  /***/ 41392:
@@ -20586,7 +20810,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
20586
20810
  Object.defineProperty(exports, "__esModule", ({ value: true }));
20587
20811
  var core_1 = __webpack_require__(57208);
20588
20812
  var directives_1 = __webpack_require__(66395);
20813
+ var domain_1 = __webpack_require__(59346);
20589
20814
  var fields_1 = __webpack_require__(64906);
20815
+ var class_transformer_1 = __webpack_require__(86631);
20590
20816
  var ReadFieldsFilterPipe = /** @class */ (function () {
20591
20817
  function ReadFieldsFilterPipe() {
20592
20818
  }
@@ -20603,10 +20829,26 @@ var ReadFieldsFilterPipe = /** @class */ (function () {
20603
20829
  var type = field.field_type;
20604
20830
  var value = ReadFieldsFilterPipe_1.getValue(field, values);
20605
20831
  var hasChildrenWithValue = type.complex_fields.find(function (f) {
20606
- return ReadFieldsFilterPipe_1.keepField(f, value);
20832
+ var willKeep = ReadFieldsFilterPipe_1.keepField(f, value, true);
20833
+ return willKeep && ReadFieldsFilterPipe_1.evaluateConditionalShow(f, value).hidden !== true;
20607
20834
  });
20608
20835
  return !!hasChildrenWithValue;
20609
20836
  };
20837
+ ReadFieldsFilterPipe.isValidCollection = function (field, values) {
20838
+ var isNotEmpty = Array.isArray(field.value) && field.value.length > 0;
20839
+ if (isNotEmpty && field.field_type.collection_field_type.type === 'Complex') {
20840
+ return !!field.value.find(function (item) {
20841
+ var complexField = class_transformer_1.plainToClassFromExist(new domain_1.CaseField(), {
20842
+ id: field.field_type.collection_field_type.id,
20843
+ field_type: field.field_type.collection_field_type,
20844
+ value: item.value,
20845
+ label: null,
20846
+ });
20847
+ return ReadFieldsFilterPipe_1.isValidComplex(complexField);
20848
+ });
20849
+ }
20850
+ return isNotEmpty;
20851
+ };
20610
20852
  ReadFieldsFilterPipe.isEmpty = function (value) {
20611
20853
  return ReadFieldsFilterPipe_1.EMPTY_VALUES.indexOf(value) !== -1
20612
20854
  || value.length === 0;
@@ -20618,9 +20860,10 @@ var ReadFieldsFilterPipe = /** @class */ (function () {
20618
20860
  return ReadFieldsFilterPipe_1.isCompound(field)
20619
20861
  && ReadFieldsFilterPipe_1.NESTED_TYPES[field.field_type.type](field, value);
20620
20862
  };
20621
- ReadFieldsFilterPipe.keepField = function (field, value) {
20863
+ ReadFieldsFilterPipe.keepField = function (field, value, ignoreLabels) {
20864
+ if (ignoreLabels === void 0) { ignoreLabels = false; }
20622
20865
  // We shouldn't ditch labels.
20623
- if (field.field_type.type === 'Label' && (field.label || '').length > 0) {
20866
+ if (!ignoreLabels && field.field_type.type === 'Label' && (field.label || '').length > 0) {
20624
20867
  return true;
20625
20868
  }
20626
20869
  // We also shouldn't ditch CasePaymentHistoryViewer fields.
@@ -20707,7 +20950,8 @@ var ReadFieldsFilterPipe = /** @class */ (function () {
20707
20950
  {}
20708
20951
  ];
20709
20952
  ReadFieldsFilterPipe.NESTED_TYPES = {
20710
- 'Complex': ReadFieldsFilterPipe_1.isValidComplex
20953
+ 'Complex': ReadFieldsFilterPipe_1.isValidComplex,
20954
+ 'Collection': ReadFieldsFilterPipe_1.isValidCollection
20711
20955
  };
20712
20956
  ReadFieldsFilterPipe = ReadFieldsFilterPipe_1 = __decorate([
20713
20957
  core_1.Pipe({
@@ -20874,7 +21118,6 @@ var read_complex_field_table_component_1 = __webpack_require__(12259);
20874
21118
  var read_complex_field_component_1 = __webpack_require__(47157);
20875
21119
  var write_complex_field_component_1 = __webpack_require__(94091);
20876
21120
  var ccd_cyapage_label_filter_pipe_1 = __webpack_require__(41392);
20877
- var ccd_collection_table_value_case_fields_pipe_1 = __webpack_require__(18649);
20878
21121
  var ComplexModule = /** @class */ (function () {
20879
21122
  function ComplexModule() {
20880
21123
  }
@@ -20901,7 +21144,6 @@ var ComplexModule = /** @class */ (function () {
20901
21144
  read_complex_field_raw_component_1.ReadComplexFieldRawComponent,
20902
21145
  read_complex_field_table_component_1.ReadComplexFieldTableComponent,
20903
21146
  read_complex_field_collection_table_component_1.ReadComplexFieldCollectionTableComponent,
20904
- ccd_collection_table_value_case_fields_pipe_1.CcdCollectionTableCaseFieldsFilterPipe,
20905
21147
  ccd_cyapage_label_filter_pipe_1.CcdCYAPageLabelFilterPipe,
20906
21148
  ],
20907
21149
  entryComponents: [
@@ -20913,9 +21155,8 @@ var ComplexModule = /** @class */ (function () {
20913
21155
  fields_filter_pipe_1.FieldsFilterPipe,
20914
21156
  ccd_tab_fields_pipe_1.CcdTabFieldsPipe,
20915
21157
  ccd_read_fields_filter_pipe_1.ReadFieldsFilterPipe,
20916
- ccd_cyapage_label_filter_pipe_1.CcdCYAPageLabelFilterPipe,
20917
- ccd_collection_table_value_case_fields_pipe_1.CcdCollectionTableCaseFieldsFilterPipe,
20918
- write_complex_field_component_1.WriteComplexFieldComponent
21158
+ write_complex_field_component_1.WriteComplexFieldComponent,
21159
+ ccd_cyapage_label_filter_pipe_1.CcdCYAPageLabelFilterPipe
20919
21160
  ]
20920
21161
  })
20921
21162
  ], ComplexModule);
@@ -21108,8 +21349,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
21108
21349
  var core_1 = __webpack_require__(57208);
21109
21350
  var abstract_field_read_component_1 = __webpack_require__(73860);
21110
21351
  var sort_order_1 = __webpack_require__(88843);
21111
- var definition_1 = __webpack_require__(11080);
21112
- var class_transformer_1 = __webpack_require__(86631);
21113
21352
  var ReadComplexFieldCollectionTableComponent = /** @class */ (function (_super) {
21114
21353
  __extends(ReadComplexFieldCollectionTableComponent, _super);
21115
21354
  function ReadComplexFieldCollectionTableComponent() {
@@ -21119,17 +21358,13 @@ var ReadComplexFieldCollectionTableComponent = /** @class */ (function (_super)
21119
21358
  _this.keepOriginalOrder = function (a, b) { return a.key; };
21120
21359
  return _this;
21121
21360
  }
21122
- ReadComplexFieldCollectionTableComponent_1 = ReadComplexFieldCollectionTableComponent;
21123
- ReadComplexFieldCollectionTableComponent.isSortAscending = function (column) {
21124
- return !(column.sortOrder === sort_order_1.SortOrder.UNSORTED || column.sortOrder === sort_order_1.SortOrder.DESCENDING);
21125
- };
21126
21361
  ReadComplexFieldCollectionTableComponent.prototype.ngOnInit = function () {
21127
21362
  _super.prototype.ngOnInit.call(this);
21128
21363
  if (this.caseField.display_context_parameter
21129
21364
  && this.caseField.display_context_parameter.trim().startsWith('#TABLE(')) {
21130
21365
  var displayContextParameter = this.caseField.display_context_parameter.trim();
21131
21366
  var result = displayContextParameter.replace('#TABLE(', '');
21132
- this.columns = result.replace(')', '').split(',').map(function (c) { return c.trim(); });
21367
+ this.columns = result.replace(')', '').split(',');
21133
21368
  var labelsVertical = {};
21134
21369
  var labelsHorizontal = {};
21135
21370
  var allLabels = {};
@@ -21141,6 +21376,40 @@ var ReadComplexFieldCollectionTableComponent = /** @class */ (function (_super)
21141
21376
  this.columnsAllLabels = allLabels;
21142
21377
  }
21143
21378
  };
21379
+ ReadComplexFieldCollectionTableComponent.prototype.populateHorizontalLabels = function (labelsHorizontal, allLabels, labelsVertical) {
21380
+ for (var _i = 0, _a = this.columns; _i < _a.length; _i++) {
21381
+ var id = _a[_i];
21382
+ labelsHorizontal[id.trim()] = allLabels[id.trim()];
21383
+ labelsHorizontal[id.trim()].sortOrder = sort_order_1.SortOrder.UNSORTED;
21384
+ delete labelsVertical[id.trim()];
21385
+ }
21386
+ };
21387
+ ReadComplexFieldCollectionTableComponent.prototype.populateLabels = function (labelsVertical, allLabels) {
21388
+ for (var _i = 0, _a = this.caseField.field_type.complex_fields; _i < _a.length; _i++) {
21389
+ var obj = _a[_i];
21390
+ if (obj.field_type.type === 'FixedList' ||
21391
+ obj.field_type.type === 'MultiSelectList' ||
21392
+ obj.field_type.type === 'FixedRadioList') {
21393
+ labelsVertical[obj.id] = { label: obj.label, type: obj.field_type, caseField: obj };
21394
+ allLabels[obj.id] = { label: obj.label, type: obj.field_type };
21395
+ }
21396
+ else if (obj.isComplex()) {
21397
+ labelsVertical[obj.id] = { label: obj.label, type: obj.field_type.type, caseField: obj };
21398
+ allLabels[obj.id] = { label: obj.label, type: obj.field_type.type, caseField: obj };
21399
+ }
21400
+ else {
21401
+ labelsVertical[obj.id] = { label: obj.label, type: { type: obj.field_type.type }, caseField: obj };
21402
+ allLabels[obj.id] = { label: obj.label, type: { type: obj.field_type.type }, caseField: obj };
21403
+ }
21404
+ }
21405
+ };
21406
+ ReadComplexFieldCollectionTableComponent.prototype.populateCaseFieldValuesIntoRows = function () {
21407
+ for (var _i = 0, _a = this.caseField.value; _i < _a.length; _i++) {
21408
+ var obj = _a[_i];
21409
+ this.rows.push(obj.value);
21410
+ this.isHidden.push(true);
21411
+ }
21412
+ };
21144
21413
  ReadComplexFieldCollectionTableComponent.prototype.getImage = function (row) {
21145
21414
  if (this.isHidden[row]) {
21146
21415
  return 'img/accordion-plus.png';
@@ -21162,18 +21431,21 @@ var ReadComplexFieldCollectionTableComponent = /** @class */ (function (_super)
21162
21431
  field.value = value;
21163
21432
  return true;
21164
21433
  };
21434
+ ReadComplexFieldCollectionTableComponent.prototype.isNotBlank = function (value) {
21435
+ return value !== null && value !== '';
21436
+ };
21165
21437
  ReadComplexFieldCollectionTableComponent.prototype.addCaseReferenceValue = function (field, value) {
21166
21438
  field.value = { CaseReference: value };
21167
21439
  return field;
21168
21440
  };
21169
- ReadComplexFieldCollectionTableComponent.prototype.toCaseField = function (id, label, field_type, value) {
21170
- return class_transformer_1.plainToClassFromExist(new definition_1.CaseField(), {
21171
- id: id,
21172
- label: label,
21173
- display_context: 'READONLY',
21174
- value: value,
21175
- field_type: field_type
21176
- });
21441
+ ReadComplexFieldCollectionTableComponent.prototype.isVerticleDataNotEmpty = function (row) {
21442
+ var result = false;
21443
+ for (var key in this.columnsVerticalLabel) {
21444
+ if (this.rows[row][key]) {
21445
+ result = true;
21446
+ }
21447
+ }
21448
+ return result;
21177
21449
  };
21178
21450
  ReadComplexFieldCollectionTableComponent.prototype.sortRowsByColumns = function (column) {
21179
21451
  var shouldSortInAscendingOrder = this.columnsHorizontalLabel[column].sortOrder === sort_order_1.SortOrder.UNSORTED
@@ -21214,55 +21486,16 @@ var ReadComplexFieldCollectionTableComponent = /** @class */ (function (_super)
21214
21486
  break;
21215
21487
  }
21216
21488
  };
21217
- ReadComplexFieldCollectionTableComponent.prototype.sortWidget = function (column) {
21218
- return ReadComplexFieldCollectionTableComponent_1.isSortAscending(column) ? '&#9660;' : '&#9650;';
21219
- };
21220
- ReadComplexFieldCollectionTableComponent.prototype.populateHorizontalLabels = function (labelsHorizontal, allLabels, labelsVertical) {
21221
- for (var _i = 0, _a = this.columns; _i < _a.length; _i++) {
21222
- var id = _a[_i];
21223
- var trimmedId = id.trim();
21224
- labelsHorizontal[trimmedId] = allLabels[trimmedId];
21225
- labelsHorizontal[trimmedId].sortOrder = sort_order_1.SortOrder.UNSORTED;
21226
- delete labelsVertical[trimmedId];
21227
- }
21228
- };
21229
- ReadComplexFieldCollectionTableComponent.prototype.populateLabels = function (labelsVertical, allLabels) {
21230
- for (var _i = 0, _a = this.caseField.field_type.complex_fields; _i < _a.length; _i++) {
21231
- var obj = _a[_i];
21232
- if (obj.field_type.type === 'FixedList' ||
21233
- obj.field_type.type === 'MultiSelectList' ||
21234
- obj.field_type.type === 'FixedRadioList') {
21235
- labelsVertical[obj.id] = { label: obj.label, type: obj.field_type, caseField: obj };
21236
- allLabels[obj.id] = { label: obj.label, type: obj.field_type };
21237
- }
21238
- else if (obj.isComplex()) {
21239
- labelsVertical[obj.id] = { label: obj.label, type: obj.field_type.type, caseField: obj };
21240
- allLabels[obj.id] = { label: obj.label, type: obj.field_type.type, caseField: obj };
21241
- }
21242
- else {
21243
- labelsVertical[obj.id] = { label: obj.label, type: { type: obj.field_type.type }, caseField: obj };
21244
- allLabels[obj.id] = { label: obj.label, type: { type: obj.field_type.type }, caseField: obj };
21245
- }
21246
- }
21489
+ ReadComplexFieldCollectionTableComponent.prototype.isSortAscending = function (column) {
21490
+ return !(column.sortOrder === sort_order_1.SortOrder.UNSORTED || column.sortOrder === sort_order_1.SortOrder.DESCENDING);
21247
21491
  };
21248
- ReadComplexFieldCollectionTableComponent.prototype.populateCaseFieldValuesIntoRows = function () {
21249
- for (var _i = 0, _a = this.caseField.value; _i < _a.length; _i++) {
21250
- var obj = _a[_i];
21251
- this.rows.push(obj.value);
21252
- this.isHidden.push(true);
21253
- }
21492
+ ReadComplexFieldCollectionTableComponent.prototype.sortWidget = function (column) {
21493
+ return this.isSortAscending(column) ? '&#9660;' : '&#9650;';
21254
21494
  };
21255
- ReadComplexFieldCollectionTableComponent.prototype.isVerticleDataNotEmpty = function (row) {
21256
- var result = false;
21257
- for (var key in this.columnsVerticalLabel) {
21258
- if (this.rows[row][key]) {
21259
- result = true;
21260
- }
21261
- }
21262
- return result;
21495
+ ReadComplexFieldCollectionTableComponent.prototype.trackByIndex = function (index, obj) {
21496
+ return index;
21263
21497
  };
21264
- var ReadComplexFieldCollectionTableComponent_1;
21265
- ReadComplexFieldCollectionTableComponent = ReadComplexFieldCollectionTableComponent_1 = __decorate([
21498
+ ReadComplexFieldCollectionTableComponent = __decorate([
21266
21499
  core_1.Component({
21267
21500
  selector: 'ccd-read-complex-field-collection-table',
21268
21501
  template: __webpack_require__(9643),
@@ -24594,6 +24827,14 @@ var WriteMultiSelectListFieldComponent = /** @class */ (function (_super) {
24594
24827
  });
24595
24828
  }
24596
24829
  this.registerControl(this.checkboxes, true);
24830
+ if (this.caseField.display_context && this.caseField.display_context === 'MANDATORY' && this.caseField.field_type
24831
+ && this.caseField.field_type.type === 'MultiSelectList' && this.caseField.field_type.fixed_list_items.length > 0
24832
+ && this.checkboxes.controls.length === 0) {
24833
+ if (this.caseField.field_type.fixed_list_items[0].code) {
24834
+ this.checkboxes.push(new forms_1.FormControl(this.caseField.field_type.fixed_list_items[0].code));
24835
+ this.checkboxes.removeAt(0);
24836
+ }
24837
+ }
24597
24838
  };
24598
24839
  WriteMultiSelectListFieldComponent.prototype.onCheckChange = function (event) {
24599
24840
  var _this = this;
@@ -29115,7 +29356,27 @@ var ShowCondition = /** @class */ (function () {
29115
29356
  if (!this.condition) {
29116
29357
  return true;
29117
29358
  }
29118
- return this.matchAndConditions(fields, path);
29359
+ return this.matchAndConditions(fields, this.updatePathName(path));
29360
+ };
29361
+ /**
29362
+ * Path Name gets updated for complex sub fields
29363
+ * @param path Path name.
29364
+ */
29365
+ ShowCondition.prototype.updatePathName = function (path) {
29366
+ if (path && path.split(/[_]+/g).length > 0) {
29367
+ var _a = path.split(/[_]+/g), pathName_1 = _a[0], pathTail = _a.slice(1);
29368
+ var pathFinalIndex_1 = pathTail.pop();
29369
+ var pathTailString = pathTail.toString();
29370
+ pathTail = pathTail.map(function (value) {
29371
+ return Number(pathFinalIndex_1) === Number(value) ? pathName_1 : value;
29372
+ });
29373
+ return pathTailString !== pathTail.toString()
29374
+ ? pathName_1 + "_" + pathTail.join('_') + "_" + pathFinalIndex_1
29375
+ : path;
29376
+ }
29377
+ else {
29378
+ return path;
29379
+ }
29119
29380
  };
29120
29381
  ShowCondition.prototype.matchByContextFields = function (contextFields) {
29121
29382
  return this.match(fields_utils_1.FieldsUtils.toValuesMap(contextFields));
@@ -29305,6 +29566,7 @@ function __export(m) {
29305
29566
  }
29306
29567
  Object.defineProperty(exports, "__esModule", ({ value: true }));
29307
29568
  __export(__webpack_require__(97965));
29569
+ __export(__webpack_require__(74015));
29308
29570
  __export(__webpack_require__(32225));
29309
29571
  __export(__webpack_require__(95844));
29310
29572
 
@@ -29329,10 +29591,12 @@ var ConditionalShowRegistrarService = /** @class */ (function () {
29329
29591
  this.registeredDirectives = [];
29330
29592
  }
29331
29593
  ConditionalShowRegistrarService.prototype.register = function (newDirective) {
29594
+ // console.log('[', this.registeredDirectives.length, ']adding new directive', newDirective.caseField.id);
29332
29595
  this.registeredDirectives.push(newDirective);
29333
29596
  };
29334
29597
  ConditionalShowRegistrarService.prototype.refresh = function () {
29335
29598
  this.registeredDirectives.forEach(function (dir) {
29599
+ // console.log('refreshing ', dir.caseField.id);
29336
29600
  dir.refreshVisibility();
29337
29601
  });
29338
29602
  };
@@ -34582,6 +34846,13 @@ var FormValueService = /** @class */ (function () {
34582
34846
  }
34583
34847
  else {
34584
34848
  sanitisedObject[key] = this.sanitiseValue(rawObject[key]);
34849
+ if (Array.isArray(sanitisedObject[key])) {
34850
+ // If the 'sanitised' array is empty, whereas the original array had 1 or more items
34851
+ // delete the property from the sanatised object
34852
+ if (sanitisedObject[key].length === 0 && rawObject[key].length > 0) {
34853
+ delete sanitisedObject[key];
34854
+ }
34855
+ }
34585
34856
  }
34586
34857
  }
34587
34858
  return sanitisedObject;
@@ -35209,7 +35480,7 @@ var LoadingService = /** @class */ (function () {
35209
35480
  }
35210
35481
  Object.defineProperty(LoadingService.prototype, "isLoading", {
35211
35482
  get: function () {
35212
- return this.loading.asObservable().pipe(operators_1.distinctUntilChanged());
35483
+ return this.loading.pipe(operators_1.distinctUntilChanged());
35213
35484
  },
35214
35485
  enumerable: true,
35215
35486
  configurable: true
@@ -37431,6 +37702,21 @@ exports.push([module.id, ".event-trigger{width:auto;margin-top:40px;margin-botto
37431
37702
  // exports
37432
37703
 
37433
37704
 
37705
+ /***/ }),
37706
+
37707
+ /***/ 68929:
37708
+ /***/ ((module, exports, __webpack_require__) => {
37709
+
37710
+ exports = module.exports = __webpack_require__(9252)(false);
37711
+ // imports
37712
+
37713
+
37714
+ // module
37715
+ exports.push([module.id, ".spinner-container{position:fixed;top:0;left:0;height:100%;width:100%;display:flex;justify-content:center;align-items:center;background:rgba(255,255,255,0.5);z-index:99}.spinner-container .spinner-inner-container p{text-align:center}.spinner-container .spinner-inner-container .spinner{border:10px solid #dddddd;border-top:10px solid #000000;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}\n", ""]);
37716
+
37717
+ // exports
37718
+
37719
+
37434
37720
  /***/ }),
37435
37721
 
37436
37722
  /***/ 47029:
@@ -63518,7 +63804,7 @@ module.exports = "<ng-container ccdConditionalShowForm [formGroup]=\"formGroup\"
63518
63804
  /***/ 61865:
63519
63805
  /***/ ((module) => {
63520
63806
 
63521
- module.exports = "<ng-container *ngIf=\"currentPage\">\n <h1 *ngIf=\"!currentPage.label\" class=\"govuk-heading-l\">{{eventTrigger.name}}</h1>\n <ng-container *ngIf=\"currentPage.label\">\n <span class=\"govuk-caption-l\">{{ eventTrigger.name}}</span>\n <h1 class=\"govuk-heading-l\">{{currentPage.label}}</h1>\n </ng-container>\n</ng-container>\n\n<!--Case ID or Title -->\n<div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n<ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: caseFields : editForm.controls['data']\"></ccd-markdown>\n</ng-template>\n<ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n</ng-template>\n\n<!-- Error message summary -->\n<div *ngIf=\"validationErrors.length > 0\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"govuk-error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n There is a problem\n </h2>\n <div *ngFor=\"let validationError of validationErrors\" class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a (click)=\"navigateToErrorElement(validationError.id)\" class=\"validation-error\">{{validationError.message}}</a>\n </li>\n </ul>\n </div>\n</div>\n\n<!-- Generic error heading and error message to be displayed only if there are no specific callback errors or warnings, or no error details -->\n<div *ngIf=\"error && !(error.callbackErrors || error.callbackWarnings || error.details)\" class=\"error-summary\"\n role=\"status\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n\n <h1 class=\"heading-h1 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n Something went wrong\n </h1>\n <div class=\"govuk-error-summary__body\" id=\"edit-case-event_error-summary-body\">\n <p>We're working to fix the problem. Try again shortly.</p>\n <p><a href=\"get-help\" target=\"_blank\">Contact us</a> if you're still having problems.</p>\n </div>\n</div>\n<!-- Event error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"status\"\n aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h3 class=\"heading-h3 error-summary-heading\" id=\"edit-case-event_error-summary-heading-3\">\n The event could not be created\n </h3>\n <p>{{error.message}}</p>\n <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n <li *ngFor=\"let fieldError of error.details.field_errors\" class=\"ccd-error-summary-li\">{{fieldError.message}}</li>\n </ul>\n</div>\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<div class=\"width-50\">\n <form *ngIf=\"currentPage\" class=\"form\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <fieldset id=\"fieldset-case-data\">\n <!-- single column -->\n <ccd-case-edit-form id='caseEditForm' *ngIf=\"!currentPage.isMultiColumn()\" [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"\n [pageChangeSubject]=\"pageChangeSubject\"\n (valuesChanged)=\"applyValuesChanged($event)\"></ccd-case-edit-form>\n <!-- two columns -->\n <div *ngIf=\"currentPage.isMultiColumn()\" class=\"grid-row\">\n <div class=\"column-two-thirds rightBorderSeparator\">\n <ccd-case-edit-form id='caseEditForm1' [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n <div class=\"column-one-third\">\n <ccd-case-edit-form id='caseEditForm2' [fields]=\"currentPage.getCol2Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n </div>\n </fieldset>\n\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!(hasPreviousPage$ | async)\" (click)=\"toPreviousPage()\">\n Previous\n </button>\n <button class=\"button\" type=\"submit\" [disabled]=\"submitting()\">{{triggerText}}</button>\n </div>\n\n <p class=\"cancel\"><a (click)=\"cancel()\" href=\"javascript:void(0)\">{{getCancelText()}}</a></p>\n\n </form>\n</div>\n"
63807
+ module.exports = "<ccd-loading-spinner *ngIf=\"showSpinner\"></ccd-loading-spinner>\n<ng-container *ngIf=\"currentPage\">\n <h1 *ngIf=\"!currentPage.label\" class=\"govuk-heading-l\">{{eventTrigger.name}}</h1>\n <ng-container *ngIf=\"currentPage.label\">\n <span class=\"govuk-caption-l\">{{ eventTrigger.name}}</span>\n <h1 class=\"govuk-heading-l\">{{currentPage.label}}</h1>\n </ng-container>\n</ng-container>\n\n<!--Case ID or Title -->\n<div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n<ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: caseFields : editForm.controls['data']\"></ccd-markdown>\n</ng-template>\n<ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n</ng-template>\n\n<!-- Error message summary -->\n<div *ngIf=\"validationErrors.length > 0\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"govuk-error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n There is a problem\n </h2>\n <div *ngFor=\"let validationError of validationErrors\" class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a (click)=\"navigateToErrorElement(validationError.id)\" class=\"validation-error\">{{validationError.message}}</a>\n </li>\n </ul>\n </div>\n</div>\n\n<!-- Generic error heading and error message to be displayed only if there are no specific callback errors or warnings, or no error details -->\n<div *ngIf=\"error && !(error.callbackErrors || error.callbackWarnings || error.details)\" class=\"error-summary\"\n role=\"status\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n\n <h1 class=\"heading-h1 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n Something went wrong\n </h1>\n <div class=\"govuk-error-summary__body\" id=\"edit-case-event_error-summary-body\">\n <p>We're working to fix the problem. Try again shortly.</p>\n <p><a href=\"get-help\" target=\"_blank\">Contact us</a> if you're still having problems.</p>\n </div>\n</div>\n<!-- Event error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"status\"\n aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h3 class=\"heading-h3 error-summary-heading\" id=\"edit-case-event_error-summary-heading-3\">\n The event could not be created\n </h3>\n <p>{{error.message}}</p>\n <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n <li *ngFor=\"let fieldError of error.details.field_errors\" class=\"ccd-error-summary-li\">{{fieldError.message}}</li>\n </ul>\n</div>\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<div class=\"width-50\">\n <form *ngIf=\"currentPage\" class=\"form\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <fieldset id=\"fieldset-case-data\">\n <!-- single column -->\n <ccd-case-edit-form id='caseEditForm' *ngIf=\"!currentPage.isMultiColumn()\" [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"\n [pageChangeSubject]=\"pageChangeSubject\"\n (valuesChanged)=\"applyValuesChanged($event)\"></ccd-case-edit-form>\n <!-- two columns -->\n <div *ngIf=\"currentPage.isMultiColumn()\" class=\"grid-row\">\n <div class=\"column-two-thirds rightBorderSeparator\">\n <ccd-case-edit-form id='caseEditForm1' [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n <div class=\"column-one-third\">\n <ccd-case-edit-form id='caseEditForm2' [fields]=\"currentPage.getCol2Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n </div>\n </fieldset>\n\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!(hasPreviousPage$ | async)\" (click)=\"toPreviousPage()\">\n Previous\n </button>\n <button class=\"button\" type=\"submit\" [disabled]=\"submitting()\">{{triggerText}}</button>\n </div>\n\n <p class=\"cancel\"><a (click)=\"cancel()\" href=\"javascript:void(0)\">{{getCancelText()}}</a></p>\n\n </form>\n</div>\n"
63522
63808
 
63523
63809
  /***/ }),
63524
63810
 
@@ -63581,7 +63867,7 @@ module.exports = "<div *ngIf=\"isDataLoaded()\">\n <ng-container [ngSwitch]=\
63581
63867
  /***/ 80734:
63582
63868
  /***/ ((module) => {
63583
63869
 
63584
- module.exports = "<form>\n <div>\n <cut-alert type=\"information\">This case requires {{accessType | lowercase}} access.<br />\n <ng-container *ngIf=\"accessType === 'CHALLENGED'\">This is because the case is outside your work area. If you request access to the case, it will be logged for auditing purposes.</ng-container>\n <ng-container *ngIf=\"accessType === 'SPECIFIC'\">This means it's outside your jurisdiction and requires authorisation. If you request access to the case, it will be logged for auditing purposes.</ng-container>\n </cut-alert>\n <h1 class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n <h2 class=\"govuk-heading-m\">Case details</h2>\n <dl class=\"govuk-summary-list\">\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.basicFields?.caseNameHmctsInternal\">\n <dt class=\"govuk-summary-list__key summary-key\">Case name</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.basicFields.caseNameHmctsInternal}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.case_type?.jurisdiction?.name\">\n <dt class=\"govuk-summary-list__key summary-key\">Service</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.case_type.jurisdiction.name}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.state?.description\">\n <dt class=\"govuk-summary-list__key summary-key\">State</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.state.description}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"courtOrHearingCentre\">\n <dt class=\"govuk-summary-list__key summary-key\">Court or hearing centre</dt>\n <dd class=\"govuk-summary-list__value\">{{courtOrHearingCentre | titlecase}}</dd>\n </div>\n\n <div class=\"govuk-summary-list__row\" *ngIf=\"accessType\">\n <dt class=\"govuk-summary-list__key summary-key\">Access</dt>\n <dd class=\"govuk-summary-list__value\">{{accessType | titlecase}}</dd>\n </div>\n </dl>\n </div>\n\n <button class=\"govuk-button govuk-!-margin-right-3\">Request access</button>\n</form>\n<a class=\"govuk-body\" (click)=\"onCancel()\" href=\"javascript:void(0)\">Cancel</a>\n"
63870
+ module.exports = "<div>\n <cut-alert type=\"information\">This case requires {{accessType | lowercase}} access.<br />\n <ng-container *ngIf=\"accessType === 'CHALLENGED'\">This is because the case is outside your work area. If you request access to the case, it will be logged for auditing purposes.</ng-container>\n <ng-container *ngIf=\"accessType === 'SPECIFIC'\">This means it's outside your jurisdiction and requires authorisation. If you request access to the case, it will be logged for auditing purposes.</ng-container>\n </cut-alert>\n <h1 class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n <h2 class=\"govuk-heading-m\">Case details</h2>\n <dl class=\"govuk-summary-list\">\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.basicFields?.caseNameHmctsInternal\">\n <dt class=\"govuk-summary-list__key summary-key\">Case name</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.basicFields.caseNameHmctsInternal}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.case_type?.jurisdiction?.name\">\n <dt class=\"govuk-summary-list__key summary-key\">Service</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.case_type.jurisdiction.name}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.state?.description\">\n <dt class=\"govuk-summary-list__key summary-key\">State</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.state.description}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"courtOrHearingCentre\">\n <dt class=\"govuk-summary-list__key summary-key\">Court or hearing centre</dt>\n <dd class=\"govuk-summary-list__value\">{{courtOrHearingCentre | titlecase}}</dd>\n </div>\n\n <div class=\"govuk-summary-list__row\" *ngIf=\"accessType\">\n <dt class=\"govuk-summary-list__key summary-key\">Access</dt>\n <dd class=\"govuk-summary-list__value\">{{accessType | titlecase}}</dd>\n </div>\n </dl>\n</div>\n<div class=\"govuk-button-group\">\n <button class=\"govuk-button govuk-!-margin-right-3\" [routerLink]=\"getRequestUrl(accessType)\"> Request access </button>\n <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n <p>\n <a class=\"govuk-body\" (click)=\"onCancel()\" href=\"javascript:void(0)\"> Cancel </a>\n </p>\n </div>\n</div>\n"
63585
63871
 
63586
63872
  /***/ }),
63587
63873
 
@@ -63613,6 +63899,13 @@ module.exports = "<!-- Generic error heading and error message to be displayed o
63613
63899
 
63614
63900
  /***/ }),
63615
63901
 
63902
+ /***/ 5856:
63903
+ /***/ ((module) => {
63904
+
63905
+ module.exports = "<exui-error-message\n *ngIf=\"formGroup.invalid && submitted\"\n [error]=\"errorMessage\"></exui-error-message>\n<cut-alert type=\"information\"\n >This case requires specific access.<br />This means it's outside your\n jurisdiction and requires authorisation. If you request access to the case, it\n will be logged for auditing purposes.</cut-alert>\n<form [formGroup]=\"formGroup\" (submit)=\"onSubmit()\">\n <div class=\"govuk-form-group\"\n [ngClass]=\"{ 'form-group-error': formGroup.invalid && submitted }\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"reason-hint\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h1 class=\"govuk-fieldset__heading\">\n {{ title }}\n </h1>\n </legend>\n\n <details class=\"govuk-details\" data-module=\"govuk-details\" role=\"group\">\n <summary\n class=\"govuk-details__summary\"\n role=\"button\"\n aria-expanded=\"false\">\n <span class=\"govuk-details__summary-text\">\n Help with requesting case access\n </span>\n </summary>\n <div\n class=\"govuk-details__text\"\n aria-hidden=\"true\">\n <p class=\"govuk-body\">You could include:</p>\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>the case reference of the linked case</li>\n <li>how long you require access to this case</li>\n <li>any other reasons why you require access</li>\n </ul>\n </div>\n </details>\n\n <div id=\"reason-hint\" class=\"govuk-hint\">\n {{ hint }}\n </div>\n <div id=\"conditional-reason-3\">\n <div class=\"govuk-form-group\">\n <div\n id=\"specific-reason-error-message\"\n class=\"govuk-error-message\"\n *ngIf=\"formGroup.get('specificReason').invalid && submitted\">\n {{ errorMessage.description }}\n </div>\n <textarea\n class=\"govuk-textarea\"\n [ngClass]=\"{\n 'govuk-textarea--error':\n formGroup.get('specificReason').invalid && submitted\n }\"\n id=\"specific-reason\"\n name=\"specific-reason\"\n rows=\"8\"\n formControlName=\"specificReason\">\n </textarea>\n </div>\n </div>\n </fieldset>\n </div>\n \n <div class=\"govuk-button-group\">\n <button class=\"govuk-button govuk-!-margin-right-3\" type=\"submit\">\n Submit\n </button>\n <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n <p>\n <a class=\"govuk-body\" (click)=\"onCancel()\" href=\"javascript:void(0)\">\n Cancel\n </a>\n </p>\n </div>\n </div>\n</form>\n"
63906
+
63907
+ /***/ }),
63908
+
63616
63909
  /***/ 24288:
63617
63910
  /***/ ((module) => {
63618
63911
 
@@ -63690,6 +63983,13 @@ module.exports = "<form *ngIf=\"triggers && triggers.length\" class=\"event-trig
63690
63983
 
63691
63984
  /***/ }),
63692
63985
 
63986
+ /***/ 31851:
63987
+ /***/ ((module) => {
63988
+
63989
+ module.exports = "<div class=\"spinner-container\">\n <div class=\"spinner-inner-container\">\n <p>{{loadingText}}</p>\n <div class=\"spinner\" style=\"margin: auto;\"></div>\n </div>\n</div>"
63990
+
63991
+ /***/ }),
63992
+
63693
63993
  /***/ 6961:
63694
63994
  /***/ ((module) => {
63695
63995
 
@@ -63763,7 +64063,7 @@ module.exports = "<div class=\"form-group\" [id]=\"id()\">\n\n <div class=\"pan
63763
64063
  /***/ 9643:
63764
64064
  /***/ ((module) => {
63765
64065
 
63766
- module.exports = "<div class=\"complex-panel\" [hidden]=\"caseField.hidden\">\n <dl class=\"complex-panel-title\">\n <dt><span class=\"text-16\">{{caseField.label}}</span></dt>\n <dd></dd>\n </dl>\n <table class=\"complex-panel-table\">\n <tbody>\n <!-- <COMPLEX table field header>-->\n <tr>\n <th *ngFor=\"let heading of columns\" scope=\"col\">\n <span class=\"text-16\">{{columnsAllLabels[heading].label}}</span>\n <a href=\"javascript:void(0)\"\n (click)=\"sortRowsByColumns(heading)\"\n class=\"sort-widget\"\n [innerHTML]=\"sortWidget(columnsAllLabels[heading])\"></a>\n </th>\n <th></th>\n </tr>\n <!-- </COMPLEX table field header>-->\n <ng-container *ngFor=\"let item of rows; let i = index;\">\n <!-- <COMPLEX table collapsed view>-->\n <tr class=\"new-table-row accordion-heading\" (click)=\"isHidden[i] = !isHidden[i]\"\n [class.last-accordion]=\"isHidden[i]\">\n <ng-container *ngFor=\"let heading of columns\">\n <td class=\"text-16\">\n <div *ngIf=\"item[heading]; else showEmptyTd\">\n <ccd-field-read\n [caseField]=\"toCaseField(heading, item[heading].label, columnsHorizontalLabel[heading].type, item[heading])\"\n [context]=\"context\"></ccd-field-read>\n </div>\n <ng-template #showEmptyTd>\n <div>&nbsp;</div>\n </ng-template>\n </td>\n </ng-container>\n <td>\n <div style=\"float: right;\">\n <a href=\"javascript:void(0)\"> <img src=\"{{ getImage(i) }}\" class=\"accordion-image\"/></a>\n </div>\n </td>\n </tr>\n <!-- </COMPLEX table collapsed view>-->\n <!-- <COMPLEX table expanded view>-->\n <tr [hidden]=\"isHidden[i]\">\n <td [colSpan]=\"columns.length + 1\">\n <table class=\"complex-panel-table\">\n <tbody>\n <ng-container\n *ngFor=\"let vLabel of columnsVerticalLabel | keyvalue: keepOriginalOrder | ccdCollectionTableCaseFieldsFilter: caseField: rows[i] | ccdReadFieldsFilter:true :undefined :true\">\n <!-- <COMPLEX table expandable body simple field>-->\n <tr class=\"complex-panel-simple-field accordion-body\" *ngIf=\"item[vLabel.id]\" [hidden]=\"vLabel.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{vLabel.label}}</span></th>\n <td *ngIf=\"vLabel['type'] !== 'Complex'\" class=\"text-16\">\n <ccd-field-read [caseField]=\"toCaseField('', vLabel.label, vLabel.field_type, item[vLabel.id])\"\n [context]=\"context\"></ccd-field-read>\n </td>\n </tr>\n <!-- </COMPLEX table expandable body simple field>-->\n\n <!-- <COMPLEX table expandable body complex field>-->\n <tr *ngIf=\"vLabel['type'] === 'Complex' && addCaseFieldValue(vLabel, item[vLabel.id])\" [hidden]=\"vLabel.hidden\">\n <td colspan=\"2\">\n <ng-container *ngFor=\"let caseField of vLabel | ccdReadFieldsFilter:true :undefined :true\">\n <tr class=\"complex-panel-compound-field\" *ngIf=\"(caseField | ccdIsCompound); else SimpleRow\" [hidden]=\"caseField\">\n <td colspan=\"2\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\"></ccd-field-read></span>\n </td>\n </tr>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-nested-field\" [hidden]=\"caseField.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{caseField.label}}</span></th>\n <td *ngIf=\"!item[vLabel.id].hasOwnProperty('CaseReference')\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\"></ccd-field-read></span>\n </td>\n <td *ngIf=\"item[vLabel.id].hasOwnProperty('CaseReference')\">\n <ccd-read-case-link-field [caseField]=\"addCaseReferenceValue(caseField, item[vLabel.id].CaseReference)\" [context]=\"context\"></ccd-read-case-link-field>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </td>\n </tr>\n <!-- <COMPLEX table expandable body complex field>-->\n </ng-container>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- </COMPLEX table expanded view>-->\n </ng-container>\n </tbody>\n </table>\n</div>\n"
64066
+ module.exports = " <div class=\"complex-panel\" [hidden]=\"caseField.hidden\">\n <dl class=\"complex-panel-title\"><dt><span class=\"text-16\">{{caseField.label}}</span></dt><dd></dd></dl>\n <table class=\"complex-panel-table\">\n <tbody>\n <!-- <COMPLEX table field header>-->\n <tr>\n <ng-container *ngFor=\"let heading of columns\">\n <ng-container *ngFor=\"let name of columnsAllLabels | keyvalue:keepOriginalOrder\">\n <th *ngIf=\"heading.trim() == name.key\">\n <span class=\"text-16\">{{name.value.label}}</span>\n <a href=\"javascript:void(0)\" (click)=\"sortRowsByColumns(name.key)\" class=\"sort-widget\" [innerHTML]=\"sortWidget(name.value)\"></a>\n </th>\n </ng-container>\n </ng-container>\n <th></th>\n </tr>\n <!-- </COMPLEX table field header>-->\n <ng-container *ngFor=\"let item of rows; let i = index; trackBy:trackByIndex;\" >\n <!-- <COMPLEX table collapsed view>-->\n <tr class=\"new-table-row accordion-heading\" (click)=\"isHidden[i] = !isHidden[i]\">\n <ng-container *ngFor=\"let heading of columns\">\n <ng-container *ngFor=\"let name of item | keyvalue\">\n <td *ngIf=\"heading.trim() == name.key\" class=\"text-16\">\n <div *ngIf=\"name.value;else showEmptyTd\">\n <ccd-field-read [caseField]=\"{\n id: name.key,\n label: name.value.label,\n field_type: this.columnsHorizontalLabel[name.key].type,\n value: name.value\n }\" [context]=\"context\"></ccd-field-read>\n </div>\n <ng-template #showEmptyTd><div>&nbsp;</div></ng-template>\n </td>\n\n </ng-container>\n </ng-container>\n <td>\n <div style=\"float: right;\">\n <a href=\"javascript:void(0)\"> <img src=\"{{ getImage(i) }}\" class=\"accordion-image\"/></a>\n </div>\n </td>\n </tr>\n <!-- </COMPLEX table collapsed view>-->\n <!-- <COMPLEX table expanded view>-->\n <tr [hidden]=\"isHidden[i]\">\n <td [colSpan]=\"columns.length +1\">\n <table class=\"complex-panel-table\">\n <tbody>\n \n <ng-container *ngFor=\"let vLabel of columnsVerticalLabel | keyvalue:keepOriginalOrder\">\n <ng-container *ngFor=\"let name of item | keyvalue\">\n <ng-container *ngIf=\"vLabel.key == name.key && isNotBlank(name.value)\" >\n <!-- <COMPLEX table expandable body simple field>-->\n\n <tr class=\"complex-panel-simple-field accordion-body\"\n ccdConditionalShow [caseField]=\"vLabel.value.caseField\" [contextFields]=\"caseField | ccdFieldsFilter :true :i\">\n <th><span class=\"text-16\">{{vLabel.value.label}}</span></th>\n <td *ngIf=\"vLabel.value.type !== 'Complex'\" class=\"text-16\">\n <ccd-field-read [caseField]=\"{\n id: name.key,\n label: vLabel.label,\n field_type: vLabel.value.caseField.field_type,\n value: name.value\n }\" [context]=\"context\"></ccd-field-read>\n </td>\n </tr>\n \n <!-- </COMPLEX table expandable body simple field>-->\n <!-- <COMPLEX table expandable body complex field>-->\n\n <tr *ngIf=\"vLabel.value.type === 'Complex' && addCaseFieldValue(vLabel.value.caseField, name.value)\">\n <td colspan=\"2\">\n <ng-container *ngFor=\"let field of vLabel.value.caseField | ccdFieldsFilter\">\n <ng-container *ngIf=\"(field | ccdIsCompound); else SimpleRow\">\n <tr class=\"complex-panel-compound-field\" ccdConditionalShow ccdLabelSubstitutor [caseField]=\"field\"\n [contextFields]=\"vLabel.value.caseField | ccdFieldsFilter\">\n <td colspan=\"2\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"field\" [context]=\"context\"></ccd-field-read></span>\n </td>\n </tr>\n </ng-container>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-nested-field\" ccdConditionalShow ccdLabelSubstitutor [caseField]=\"field\"\n [contextFields]=\"vLabel.value.caseField | ccdFieldsFilter\">\n <th><span class=\"text-16\">{{field.label}}</span></th>\n <td *ngIf=\"!name.value.hasOwnProperty('CaseReference')\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"field\" [context]=\"context\"></ccd-field-read></span>\n </td>\n <td *ngIf=\"name.value.hasOwnProperty('CaseReference')\">\n <ccd-read-case-link-field [caseField]=\"addCaseReferenceValue(field, name.value.CaseReference)\" [context]=\"context\"></ccd-read-case-link-field>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </td>\n </tr>\n <!-- <COMPLEX table expandable body complex field>-->\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- </COMPLEX table expanded view>-->\n </ng-container>\n </tbody>\n </table>\n </div>\n"
63767
64067
 
63768
64068
  /***/ }),
63769
64069
 
@@ -64365,6 +64665,21 @@ function getStrategyDelay(consecutiveErrorsCount, options) {
64365
64665
  }
64366
64666
 
64367
64667
 
64668
+ /***/ }),
64669
+
64670
+ /***/ 6431:
64671
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
64672
+
64673
+
64674
+ var result = __webpack_require__(68929);
64675
+
64676
+ if (typeof result === "string") {
64677
+ module.exports = result;
64678
+ } else {
64679
+ module.exports = result.toString();
64680
+ }
64681
+
64682
+
64368
64683
  /***/ }),
64369
64684
 
64370
64685
  /***/ 5047: