@hmcts/ccd-case-ui-toolkit 4.7.0-EUI-4452-wrong-document-collection → 4.7.0-EUI-4567-nested-fields-collection

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 (71) 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/cut-styles/shared/components/loading-spinner/loading-spinner.component.scss +36 -0
  8. package/dist/index.umd.js +254 -55
  9. package/dist/index.umd.js.map +1 -1
  10. package/dist/index.umd.min.js +1 -1
  11. package/dist/index.umd.min.js.LICENSE.txt +1 -1
  12. package/dist/index.umd.min.js.map +1 -1
  13. package/dist/shared/components/case-editor/case-access-utils/index.d.ts +21 -0
  14. package/dist/shared/components/case-editor/case-access-utils/index.js +69 -0
  15. package/dist/shared/components/case-editor/case-access-utils/index.js.map +1 -0
  16. package/dist/shared/components/case-editor/case-access-utils/index.metadata.json +1 -0
  17. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +1 -0
  18. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.js +8 -4
  19. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.js.map +1 -1
  20. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.metadata.json +1 -1
  21. package/dist/shared/components/case-editor/case-editor.module.js +4 -1
  22. package/dist/shared/components/case-editor/case-editor.module.js.map +1 -1
  23. package/dist/shared/components/case-editor/case-editor.module.metadata.json +1 -1
  24. package/dist/shared/components/case-editor/domain/wizard.model.js +1 -1
  25. package/dist/shared/components/case-editor/index.d.ts +1 -0
  26. package/dist/shared/components/case-editor/index.js +1 -0
  27. package/dist/shared/components/case-editor/index.js.map +1 -1
  28. package/dist/shared/components/case-editor/index.metadata.json +1 -1
  29. package/dist/shared/components/case-editor/services/cases.service.js +24 -38
  30. package/dist/shared/components/case-editor/services/cases.service.js.map +1 -1
  31. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts +1 -0
  32. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +4 -1
  33. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js.map +1 -1
  34. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.metadata.json +1 -1
  35. package/dist/shared/components/case-viewer/case-viewer.module.js +0 -1
  36. package/dist/shared/components/case-viewer/case-viewer.module.js.map +1 -1
  37. package/dist/shared/components/case-viewer/case-viewer.module.metadata.json +1 -1
  38. package/dist/shared/components/case-viewer/viewer.routing.js +1 -1
  39. package/dist/shared/components/case-viewer/viewer.routing.js.map +1 -1
  40. package/dist/shared/components/case-viewer/viewer.routing.metadata.json +1 -1
  41. package/dist/shared/components/loading-spinner/loading-spinner.component.d.ts +3 -0
  42. package/dist/shared/components/loading-spinner/loading-spinner.component.js +32 -0
  43. package/dist/shared/components/loading-spinner/loading-spinner.component.js.map +1 -0
  44. package/dist/shared/components/loading-spinner/loading-spinner.component.metadata.json +1 -0
  45. package/dist/shared/components/palette/base-field/abstract-field-read.component.d.ts +2 -2
  46. package/dist/shared/components/palette/base-field/abstract-field-read.component.js +1 -1
  47. package/dist/shared/components/palette/base-field/abstract-field-read.component.js.map +1 -1
  48. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.d.ts +3 -2
  49. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.js +24 -4
  50. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.js.map +1 -1
  51. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.metadata.json +1 -1
  52. package/dist/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +8 -0
  53. package/dist/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js.map +1 -1
  54. package/dist/shared/directives/conditional-show/domain/conditional-show.model.d.ts +5 -0
  55. package/dist/shared/directives/conditional-show/domain/conditional-show.model.js +21 -1
  56. package/dist/shared/directives/conditional-show/domain/conditional-show.model.js.map +1 -1
  57. package/dist/shared/directives/conditional-show/domain/conditional-show.model.metadata.json +1 -1
  58. package/dist/shared/domain/case-view/index.d.ts +0 -1
  59. package/dist/shared/domain/case-view/index.metadata.json +1 -1
  60. package/dist/shared/domain/case-view/role-assignment-response.model.d.ts +1 -1
  61. package/dist/shared/domain/case-view/role-request.model.d.ts +28 -10
  62. package/dist/shared/domain/case-view/role-request.model.metadata.json +1 -1
  63. package/dist/shared/domain/user/user-info.model.d.ts +1 -0
  64. package/dist/shared/services/loading/loading.service.js +1 -1
  65. package/dist/shared/services/loading/loading.service.js.map +1 -1
  66. package/package.json +3 -3
  67. package/sonar-project.properties +4 -5
  68. package/dist/shared/domain/case-view/requested-role.model.d.ts +0 -25
  69. package/dist/shared/domain/case-view/requested-role.model.js +0 -3
  70. package/dist/shared/domain/case-view/requested-role.model.js.map +0 -1
  71. 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-EUI-4452-wrong-document-collection
3
+ * @version v4.7.0-EUI-4567-nested-fields-collection
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;
@@ -12379,6 +12382,82 @@ __export(__webpack_require__(41580));
12379
12382
  __export(__webpack_require__(4765));
12380
12383
 
12381
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
+
12382
12461
  /***/ }),
12383
12462
 
12384
12463
  /***/ 19119:
@@ -12870,6 +12949,7 @@ var CaseEditPageComponent = /** @class */ (function () {
12870
12949
  if (this.currentPageIsNotValid()) {
12871
12950
  this.generateErrorMessage(this.currentPage.case_fields);
12872
12951
  }
12952
+ this.showSpinner = true;
12873
12953
  if (!this.isSubmitting && !this.currentPageIsNotValid()) {
12874
12954
  this.isSubmitting = true;
12875
12955
  this.error = null;
@@ -12880,8 +12960,12 @@ var CaseEditPageComponent = /** @class */ (function () {
12880
12960
  _this.updateFormData(jsonData);
12881
12961
  }
12882
12962
  _this.saveDraft();
12963
+ _this.showSpinner = false;
12883
12964
  _this.next();
12884
- }, function (error) { return _this.handleError(error); });
12965
+ }, function (error) {
12966
+ _this.showSpinner = false;
12967
+ _this.handleError(error);
12968
+ });
12885
12969
  CaseEditPageComponent_1.scrollToTop();
12886
12970
  }
12887
12971
  CaseEditPageComponent_1.setFocusToTop();
@@ -12912,8 +12996,7 @@ var CaseEditPageComponent = /** @class */ (function () {
12912
12996
  if (Array.isArray(theControl.value) && Array.isArray(value)
12913
12997
  && theControl.value.length > value.length && theControl['caseField']
12914
12998
  && theControl['caseField']['display_context'] && theControl['caseField']['display_context'] === 'OPTIONAL'
12915
- && theControl['caseField']['field_type'] && theControl['caseField']['field_type']['type'] === 'Collection'
12916
- && theControl['caseField']['field_type']['collection_field_type']['type'] === 'Document') {
12999
+ && theControl['caseField']['field_type'] && theControl['caseField']['field_type']['type'] === 'Collection') {
12917
13000
  // do nothing
12918
13001
  }
12919
13002
  else {
@@ -13715,6 +13798,7 @@ var profile_1 = __webpack_require__(59412);
13715
13798
  var profile_service_1 = __webpack_require__(25925);
13716
13799
  var router_2 = __webpack_require__(71724);
13717
13800
  var errors_module_1 = __webpack_require__(61386);
13801
+ var loading_spinner_component_1 = __webpack_require__(41617);
13718
13802
  var palette_1 = __webpack_require__(22212);
13719
13803
  var case_create_component_1 = __webpack_require__(19119);
13720
13804
  var case_edit_confirm_component_1 = __webpack_require__(26329);
@@ -13753,7 +13837,8 @@ var CaseEditorModule = /** @class */ (function () {
13753
13837
  case_edit_form_component_1.CaseEditFormComponent,
13754
13838
  case_edit_submit_component_1.CaseEditSubmitComponent,
13755
13839
  case_create_component_1.CaseCreateComponent,
13756
- case_progress_component_1.CaseProgressComponent
13840
+ case_progress_component_1.CaseProgressComponent,
13841
+ loading_spinner_component_1.LoadingSpinnerComponent
13757
13842
  ],
13758
13843
  exports: [
13759
13844
  case_edit_confirm_component_1.CaseEditConfirmComponent,
@@ -13764,6 +13849,7 @@ var CaseEditorModule = /** @class */ (function () {
13764
13849
  case_create_component_1.CaseCreateComponent,
13765
13850
  case_progress_component_1.CaseProgressComponent,
13766
13851
  error_1.CallbackErrorsComponent,
13852
+ loading_spinner_component_1.LoadingSpinnerComponent,
13767
13853
  ],
13768
13854
  providers: [
13769
13855
  fields_utils_1.FieldsUtils,
@@ -14056,7 +14142,7 @@ var Wizard = /** @class */ (function () {
14056
14142
  return canShow(foundPage) ? foundPage : undefined;
14057
14143
  };
14058
14144
  Wizard.prototype.findWizardPage = function (caseFieldId, pageId) {
14059
- 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 &&
14060
14146
  wizardPage.case_fields.filter(function (caseField) { return caseField.id === caseFieldId; }).length > 0; });
14061
14147
  };
14062
14148
  Wizard.prototype.nextPage = function (pageId, canShow) {
@@ -14158,6 +14244,7 @@ __export(__webpack_require__(29808));
14158
14244
  __export(__webpack_require__(25961));
14159
14245
  __export(__webpack_require__(20039));
14160
14246
  __export(__webpack_require__(41473));
14247
+ __export(__webpack_require__(25919));
14161
14248
 
14162
14249
 
14163
14250
  /***/ }),
@@ -14330,6 +14417,7 @@ var app_config_1 = __webpack_require__(35185);
14330
14417
  var directives_1 = __webpack_require__(66395);
14331
14418
  var domain_1 = __webpack_require__(59346);
14332
14419
  var services_1 = __webpack_require__(65010);
14420
+ var case_access_utils_1 = __webpack_require__(25919);
14333
14421
  var wizard_page_field_to_case_field_mapper_1 = __webpack_require__(12393);
14334
14422
  var work_allocation_service_1 = __webpack_require__(93603);
14335
14423
  var CasesService = /** @class */ (function () {
@@ -14599,56 +14687,41 @@ var CasesService = /** @class */ (function () {
14599
14687
  return this.http.get(this.appConfig.getLocationRefApiUrl() + "/building-locations?epimms_id=" + locationId);
14600
14688
  };
14601
14689
  CasesService.prototype.createChallengedAccessRequest = function (caseId, car) {
14602
- // Dummy implementation for now; the real one will make a call to the Node layer, which will call the appropriate Role
14603
14690
  // Assignment API endpoint
14604
- 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 = {
14605
14700
  roleRequest: {
14606
- id: '0c6f56f5-4457-485e-a0de-828e6dfa1e33',
14607
- authenticatedUserId: '37d4eab7-e14c-404e-8cd1-55cd06b2fc06',
14608
- correlationId: '003352d0-e699-48bc-b6f5-5810411e60af',
14609
- assignerId: '37d4eab7-e14c-404e-8cd1-55cd06b2fc06',
14610
- requestType: 'CREATE',
14611
- process: 'businessProcess1',
14612
- reference: 'cf07ea33-31c0-4442-b2df-e2032d21b496',
14613
- replaceExisting: true,
14614
- status: 'APPROVED',
14615
- created: new Date('2021-01-28T18:16:49.100121Z'),
14616
- log: 'Request has been approved'
14701
+ assignerId: userInfo.id
14617
14702
  },
14618
14703
  requestedRoles: [{
14619
- id: '3ccabbf2-71fa-4c5d-af39-5675d25e9fcc',
14620
14704
  actorIdType: 'IDAM',
14621
- actorId: 'cf07ea33-31c0-4442-b2df-e2032d21b496',
14622
- roleType: 'ORGANISATION',
14623
- roleName: 'judge',
14705
+ actorId: userInfo.id,
14706
+ roleType: 'CASE',
14707
+ roleName: roleName,
14624
14708
  classification: 'PUBLIC',
14709
+ roleCategory: roleCategory,
14625
14710
  grantType: 'CHALLENGED',
14626
- roleCategory: 'JUDICIAL',
14627
- readOnly: false,
14628
- beginTime: new Date('2021-01-01T00:00:00Z'),
14629
- endTime: new Date('2023-01-01T00:00:00Z'),
14630
- process: 'businessProcess1',
14631
- reference: 'cf07ea33-31c0-4442-b2df-e2032d21b496',
14632
- status: 'LIVE',
14633
- created: new Date('2021-01-28T18:16:49.100155Z'),
14634
- 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)),
14635
14713
  attributes: {
14636
- jurisdiction: 'divorce',
14637
- region: 'south-east',
14638
- contractType: 'SALARIED'
14714
+ caseId: caseId
14639
14715
  },
14640
14716
  notes: [{
14641
- userId: '003352d0-e699-48bc-b6f5-5810411e60ag',
14642
- time: new Date('2020-01-01T00:00Z'),
14643
- comment: 'Need Access to case number 1234567890123456 for a month'
14644
- }, {
14645
- userId: '52aa3810-af1f-11ea-b3de-0242ac130004',
14646
- time: new Date('2020-01-02T00:00Z'),
14647
- comment: 'Access granted till end of day'
14648
- }]
14717
+ userId: userInfo.id,
14718
+ time: new Date(),
14719
+ comment: JSON.stringify(car)
14720
+ }
14721
+ ]
14649
14722
  }]
14650
14723
  };
14651
- return rxjs_1.of(roleAssignmentResponse);
14724
+ return this.http.post("" + this.appConfig.getCamRoleAssignmentsApiUrl(), payload);
14652
14725
  };
14653
14726
  var CasesService_1;
14654
14727
  // Internal (UI) API
@@ -16065,6 +16138,9 @@ var CaseBasicAccessViewComponent = /** @class */ (function () {
16065
16138
  // Navigate to the previous page
16066
16139
  window.history.go(-1);
16067
16140
  };
16141
+ CaseBasicAccessViewComponent.prototype.getRequestUrl = function (accessType) {
16142
+ return accessType === 'CHALLENGED' ? 'challenged-access-request' : 'specific-access-request';
16143
+ };
16068
16144
  __decorate([
16069
16145
  core_1.Input(),
16070
16146
  __metadata("design:type", domain_1.CaseView)
@@ -17119,7 +17195,6 @@ var CaseViewerModule = /** @class */ (function () {
17119
17195
  palette_1.EventLogModule,
17120
17196
  material_1.MatTabsModule,
17121
17197
  palette_1.ComplexModule,
17122
- forms_1.FormsModule,
17123
17198
  forms_1.ReactiveFormsModule,
17124
17199
  alert_1.AlertModule
17125
17200
  ],
@@ -17605,7 +17680,7 @@ exports.viewerRouting = [
17605
17680
  component: case_history_1.CaseHistoryComponent,
17606
17681
  },
17607
17682
  {
17608
- path: 'access-request',
17683
+ path: 'challenged-access-request',
17609
17684
  children: [
17610
17685
  {
17611
17686
  path: '',
@@ -18657,6 +18732,45 @@ __export(__webpack_require__(13370));
18657
18732
  __export(__webpack_require__(62240));
18658
18733
 
18659
18734
 
18735
+ /***/ }),
18736
+
18737
+ /***/ 41617:
18738
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
18739
+
18740
+ "use strict";
18741
+
18742
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18743
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18744
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18745
+ 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;
18746
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18747
+ };
18748
+ var __metadata = (this && this.__metadata) || function (k, v) {
18749
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
18750
+ };
18751
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
18752
+ var core_1 = __webpack_require__(57208);
18753
+ var LoadingSpinnerComponent = /** @class */ (function () {
18754
+ function LoadingSpinnerComponent() {
18755
+ this.loadingText = 'Loading';
18756
+ }
18757
+ __decorate([
18758
+ core_1.Input(),
18759
+ __metadata("design:type", Object)
18760
+ ], LoadingSpinnerComponent.prototype, "loadingText", void 0);
18761
+ LoadingSpinnerComponent = __decorate([
18762
+ core_1.Component({
18763
+ selector: 'ccd-loading-spinner',
18764
+ template: __webpack_require__(31851),
18765
+ styles: [__webpack_require__(6431)],
18766
+ encapsulation: core_1.ViewEncapsulation.None
18767
+ })
18768
+ ], LoadingSpinnerComponent);
18769
+ return LoadingSpinnerComponent;
18770
+ }());
18771
+ exports.LoadingSpinnerComponent = LoadingSpinnerComponent;
18772
+
18773
+
18660
18774
  /***/ }),
18661
18775
 
18662
18776
  /***/ 47174:
@@ -19258,7 +19372,7 @@ var AbstractFieldReadComponent = /** @class */ (function (_super) {
19258
19372
  ], AbstractFieldReadComponent.prototype, "caseReference", void 0);
19259
19373
  __decorate([
19260
19374
  core_1.Input(),
19261
- __metadata("design:type", forms_1.FormGroup)
19375
+ __metadata("design:type", Object)
19262
19376
  ], AbstractFieldReadComponent.prototype, "topLevelFormGroup", void 0);
19263
19377
  __decorate([
19264
19378
  core_1.Input(),
@@ -20538,7 +20652,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
20538
20652
  Object.defineProperty(exports, "__esModule", ({ value: true }));
20539
20653
  var core_1 = __webpack_require__(57208);
20540
20654
  var directives_1 = __webpack_require__(66395);
20655
+ var domain_1 = __webpack_require__(59346);
20541
20656
  var fields_1 = __webpack_require__(64906);
20657
+ var class_transformer_1 = __webpack_require__(86631);
20542
20658
  var ReadFieldsFilterPipe = /** @class */ (function () {
20543
20659
  function ReadFieldsFilterPipe() {
20544
20660
  }
@@ -20555,10 +20671,26 @@ var ReadFieldsFilterPipe = /** @class */ (function () {
20555
20671
  var type = field.field_type;
20556
20672
  var value = ReadFieldsFilterPipe_1.getValue(field, values);
20557
20673
  var hasChildrenWithValue = type.complex_fields.find(function (f) {
20558
- return ReadFieldsFilterPipe_1.keepField(f, value);
20674
+ var willKeep = ReadFieldsFilterPipe_1.keepField(f, value, true);
20675
+ return willKeep && ReadFieldsFilterPipe_1.evaluateConditionalShow(f, value).hidden !== true;
20559
20676
  });
20560
20677
  return !!hasChildrenWithValue;
20561
20678
  };
20679
+ ReadFieldsFilterPipe.isValidCollection = function (field, values) {
20680
+ var isNotEmpty = Array.isArray(field.value) && field.value.length > 0;
20681
+ if (isNotEmpty && field.field_type.collection_field_type.type === 'Complex') {
20682
+ return !!field.value.find(function (item) {
20683
+ var complexField = class_transformer_1.plainToClassFromExist(new domain_1.CaseField(), {
20684
+ id: field.field_type.collection_field_type.id,
20685
+ field_type: field.field_type.collection_field_type,
20686
+ value: item.value,
20687
+ label: null,
20688
+ });
20689
+ return ReadFieldsFilterPipe_1.isValidComplex(complexField);
20690
+ });
20691
+ }
20692
+ return isNotEmpty;
20693
+ };
20562
20694
  ReadFieldsFilterPipe.isEmpty = function (value) {
20563
20695
  return ReadFieldsFilterPipe_1.EMPTY_VALUES.indexOf(value) !== -1
20564
20696
  || value.length === 0;
@@ -20570,9 +20702,10 @@ var ReadFieldsFilterPipe = /** @class */ (function () {
20570
20702
  return ReadFieldsFilterPipe_1.isCompound(field)
20571
20703
  && ReadFieldsFilterPipe_1.NESTED_TYPES[field.field_type.type](field, value);
20572
20704
  };
20573
- ReadFieldsFilterPipe.keepField = function (field, value) {
20705
+ ReadFieldsFilterPipe.keepField = function (field, value, ignoreLabels) {
20706
+ if (ignoreLabels === void 0) { ignoreLabels = false; }
20574
20707
  // We shouldn't ditch labels.
20575
- if (field.field_type.type === 'Label' && (field.label || '').length > 0) {
20708
+ if (!ignoreLabels && field.field_type.type === 'Label' && (field.label || '').length > 0) {
20576
20709
  return true;
20577
20710
  }
20578
20711
  // We also shouldn't ditch CasePaymentHistoryViewer fields.
@@ -20659,7 +20792,8 @@ var ReadFieldsFilterPipe = /** @class */ (function () {
20659
20792
  {}
20660
20793
  ];
20661
20794
  ReadFieldsFilterPipe.NESTED_TYPES = {
20662
- 'Complex': ReadFieldsFilterPipe_1.isValidComplex
20795
+ 'Complex': ReadFieldsFilterPipe_1.isValidComplex,
20796
+ 'Collection': ReadFieldsFilterPipe_1.isValidCollection
20663
20797
  };
20664
20798
  ReadFieldsFilterPipe = ReadFieldsFilterPipe_1 = __decorate([
20665
20799
  core_1.Pipe({
@@ -24535,6 +24669,14 @@ var WriteMultiSelectListFieldComponent = /** @class */ (function (_super) {
24535
24669
  });
24536
24670
  }
24537
24671
  this.registerControl(this.checkboxes, true);
24672
+ if (this.caseField.display_context && this.caseField.display_context === 'MANDATORY' && this.caseField.field_type
24673
+ && this.caseField.field_type.type === 'MultiSelectList' && this.caseField.field_type.fixed_list_items.length > 0
24674
+ && this.checkboxes.controls.length === 0) {
24675
+ if (this.caseField.field_type.fixed_list_items[0].code) {
24676
+ this.checkboxes.push(new forms_1.FormControl(this.caseField.field_type.fixed_list_items[0].code));
24677
+ this.checkboxes.removeAt(0);
24678
+ }
24679
+ }
24538
24680
  };
24539
24681
  WriteMultiSelectListFieldComponent.prototype.onCheckChange = function (event) {
24540
24682
  var _this = this;
@@ -29056,7 +29198,27 @@ var ShowCondition = /** @class */ (function () {
29056
29198
  if (!this.condition) {
29057
29199
  return true;
29058
29200
  }
29059
- return this.matchAndConditions(fields, path);
29201
+ return this.matchAndConditions(fields, this.updatePathName(path));
29202
+ };
29203
+ /**
29204
+ * Path Name gets updated for complex sub fields
29205
+ * @param path Path name.
29206
+ */
29207
+ ShowCondition.prototype.updatePathName = function (path) {
29208
+ if (path && path.split(/[_]+/g).length > 0) {
29209
+ var _a = path.split(/[_]+/g), pathName_1 = _a[0], pathTail = _a.slice(1);
29210
+ var pathFinalIndex_1 = pathTail.pop();
29211
+ var pathTailString = pathTail.toString();
29212
+ pathTail = pathTail.map(function (value) {
29213
+ return Number(pathFinalIndex_1) === Number(value) ? pathName_1 : value;
29214
+ });
29215
+ return pathTailString !== pathTail.toString()
29216
+ ? pathName_1 + "_" + pathTail.join('_') + "_" + pathFinalIndex_1
29217
+ : path;
29218
+ }
29219
+ else {
29220
+ return path;
29221
+ }
29060
29222
  };
29061
29223
  ShowCondition.prototype.matchByContextFields = function (contextFields) {
29062
29224
  return this.match(fields_utils_1.FieldsUtils.toValuesMap(contextFields));
@@ -35160,7 +35322,7 @@ var LoadingService = /** @class */ (function () {
35160
35322
  }
35161
35323
  Object.defineProperty(LoadingService.prototype, "isLoading", {
35162
35324
  get: function () {
35163
- return this.loading.asObservable().pipe(operators_1.distinctUntilChanged());
35325
+ return this.loading.pipe(operators_1.distinctUntilChanged());
35164
35326
  },
35165
35327
  enumerable: true,
35166
35328
  configurable: true
@@ -37382,6 +37544,21 @@ exports.push([module.id, ".event-trigger{width:auto;margin-top:40px;margin-botto
37382
37544
  // exports
37383
37545
 
37384
37546
 
37547
+ /***/ }),
37548
+
37549
+ /***/ 68929:
37550
+ /***/ ((module, exports, __webpack_require__) => {
37551
+
37552
+ exports = module.exports = __webpack_require__(9252)(false);
37553
+ // imports
37554
+
37555
+
37556
+ // module
37557
+ 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", ""]);
37558
+
37559
+ // exports
37560
+
37561
+
37385
37562
  /***/ }),
37386
37563
 
37387
37564
  /***/ 47029:
@@ -63469,7 +63646,7 @@ module.exports = "<ng-container ccdConditionalShowForm [formGroup]=\"formGroup\"
63469
63646
  /***/ 61865:
63470
63647
  /***/ ((module) => {
63471
63648
 
63472
- 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"
63649
+ 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"
63473
63650
 
63474
63651
  /***/ }),
63475
63652
 
@@ -63532,7 +63709,7 @@ module.exports = "<div *ngIf=\"isDataLoaded()\">\n <ng-container [ngSwitch]=\
63532
63709
  /***/ 80734:
63533
63710
  /***/ ((module) => {
63534
63711
 
63535
- 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"
63712
+ 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"
63536
63713
 
63537
63714
  /***/ }),
63538
63715
 
@@ -63641,6 +63818,13 @@ module.exports = "<form *ngIf=\"triggers && triggers.length\" class=\"event-trig
63641
63818
 
63642
63819
  /***/ }),
63643
63820
 
63821
+ /***/ 31851:
63822
+ /***/ ((module) => {
63823
+
63824
+ 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>"
63825
+
63826
+ /***/ }),
63827
+
63644
63828
  /***/ 6961:
63645
63829
  /***/ ((module) => {
63646
63830
 
@@ -64316,6 +64500,21 @@ function getStrategyDelay(consecutiveErrorsCount, options) {
64316
64500
  }
64317
64501
 
64318
64502
 
64503
+ /***/ }),
64504
+
64505
+ /***/ 6431:
64506
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
64507
+
64508
+
64509
+ var result = __webpack_require__(68929);
64510
+
64511
+ if (typeof result === "string") {
64512
+ module.exports = result;
64513
+ } else {
64514
+ module.exports = result.toString();
64515
+ }
64516
+
64517
+
64319
64518
  /***/ }),
64320
64519
 
64321
64520
  /***/ 5047: