@hmcts/ccd-case-ui-toolkit 4.8.0-rc.5 → 4.8.3-no-refunds-rc.3

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 (46) hide show
  1. package/RELEASE-NOTES.md +3 -0
  2. package/dist/app.config.d.ts +2 -0
  3. package/dist/app.config.js.map +1 -1
  4. package/dist/app.config.metadata.json +1 -1
  5. package/dist/index.umd.js +188 -119
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/index.umd.min.js +1 -1
  8. package/dist/index.umd.min.js.LICENSE.txt +1 -1
  9. package/dist/index.umd.min.js.map +1 -1
  10. package/dist/shared/components/case-editor/case-access-utils/index.d.ts +3 -2
  11. package/dist/shared/components/case-editor/case-access-utils/index.js +31 -0
  12. package/dist/shared/components/case-editor/case-access-utils/index.js.map +1 -1
  13. package/dist/shared/components/case-editor/case-access-utils/index.metadata.json +1 -1
  14. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.js +1 -1
  15. package/dist/shared/components/case-editor/case-edit-page/case-edit-page.component.js.map +1 -1
  16. package/dist/shared/components/case-editor/services/case-edit-wizard.guard.js +10 -0
  17. package/dist/shared/components/case-editor/services/case-edit-wizard.guard.js.map +1 -1
  18. package/dist/shared/components/case-editor/services/case-edit-wizard.guard.metadata.json +1 -1
  19. package/dist/shared/components/case-editor/services/cases.service.d.ts +2 -17
  20. package/dist/shared/components/case-editor/services/cases.service.js +18 -109
  21. package/dist/shared/components/case-editor/services/cases.service.js.map +1 -1
  22. package/dist/shared/components/case-editor/services/cases.service.metadata.json +1 -1
  23. package/dist/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +1 -0
  24. package/dist/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +10 -3
  25. package/dist/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js.map +1 -1
  26. package/dist/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.metadata.json +1 -1
  27. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.d.ts +3 -1
  28. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +21 -1
  29. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js.map +1 -1
  30. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.metadata.json +1 -1
  31. package/dist/shared/components/case-viewer/case-viewer.component.d.ts +1 -0
  32. package/dist/shared/components/case-viewer/case-viewer.component.js +7 -2
  33. package/dist/shared/components/case-viewer/case-viewer.component.js.map +1 -1
  34. package/dist/shared/components/case-viewer/case-viewer.component.metadata.json +1 -1
  35. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.js +4 -0
  36. package/dist/shared/components/palette/complex/ccd-read-fields-filter.pipe.js.map +1 -1
  37. package/dist/shared/components/palette/payment/case-payment-history-viewer-field.component.d.ts +1 -1
  38. package/dist/shared/components/palette/payment/case-payment-history-viewer-field.component.js +2 -2
  39. package/dist/shared/components/palette/payment/case-payment-history-viewer-field.component.js.map +1 -1
  40. package/dist/shared/components/palette/payment/case-payment-history-viewer-field.component.metadata.json +1 -1
  41. package/dist/shared/domain/case-view/specific-access-request.model.d.ts +0 -2
  42. package/dist/shared/services/fields/fields.utils.d.ts +19 -1
  43. package/dist/shared/services/fields/fields.utils.js +83 -0
  44. package/dist/shared/services/fields/fields.utils.js.map +1 -1
  45. package/dist/shared/services/fields/fields.utils.metadata.json +1 -1
  46. package/package.json +6 -3
package/RELEASE-NOTES.md CHANGED
@@ -3,6 +3,9 @@
3
3
  ### Version 4.3.6-hotfix-EUI-4404
4
4
  **EUI-4404** Fix rendering of read-only Collection field within editable Complex field
5
5
 
6
+ ### Version 4.7.6-hearings-tab
7
+ **EUI-4441** Add hearings tab in case details
8
+
6
9
  ### Version 4.7.0-EUI-4412-order-fields-CYA-page
7
10
  **EUI-4414** Field order on the CYA page changes
8
11
 
@@ -61,6 +61,7 @@ export declare abstract class AbstractAppConfig {
61
61
  getAccessManagementRequestReviewMockModel(): AccessManagementRequestReviewMockModel;
62
62
  getLocationRefApiUrl(): string;
63
63
  getCamRoleAssignmentsApiUrl(): string;
64
+ abstract getRefundsUrl(): string;
64
65
  }
65
66
  export declare class CaseEditorConfig {
66
67
  api_url: string;
@@ -117,4 +118,5 @@ export declare class CaseEditorConfig {
117
118
  };
118
119
  location_ref_api_url?: string;
119
120
  cam_role_assignments_api_url?: string;
121
+ refunds_url: string;
120
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../tmp/src-inlined/app.config.ts"],"names":[],"mappings":";;AAuBA;IAAA;IA4DA,CAAC;IAtDC,sDAA0B,GAA1B;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,iDAAqB,GAArB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAkBD;;;;OAIG;IACH,oDAAwB,GAAxB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAMD,6CAAiB,GAAjB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,mDAAuB,GAAvB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,4DAAgC,GAAhC;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,qEAAyC,GAAzC;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,gDAAoB,GAApB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,uDAA2B,GAA3B;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,wBAAC;AAAD,CAAC,AA5DD,IA4DC;AA5DqB,8CAAiB;AA8DvC;IAAA;IAuDA,CAAC;IAAD,uBAAC;AAAD,CAAC,AAvDD,IAuDC;AAvDY,4CAAgB"}
1
+ {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../tmp/src-inlined/app.config.ts"],"names":[],"mappings":";;AAuBA;IAAA;IA6DA,CAAC;IAvDC,sDAA0B,GAA1B;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,iDAAqB,GAArB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAkBD;;;;OAIG;IACH,oDAAwB,GAAxB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAMD,6CAAiB,GAAjB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,mDAAuB,GAAvB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,4DAAgC,GAAhC;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,qEAAyC,GAAzC;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,gDAAoB,GAApB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,uDAA2B,GAA3B;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAEH,wBAAC;AAAD,CAAC,AA7DD,IA6DC;AA7DqB,8CAAiB;AA+DvC;IAAA;IAwDA,CAAC;IAAD,uBAAC;AAAD,CAAC,AAxDD,IAwDC;AAxDY,4CAAgB"}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"AccessManagementBasicViewMockModel":{"__symbolic":"interface"},"AccessManagementRequestReviewMockModel":{"__symbolic":"interface"},"AbstractAppConfig":{"__symbolic":"class","members":{"load":[{"__symbolic":"method"}],"getLoginUrl":[{"__symbolic":"method"}],"getApiUrl":[{"__symbolic":"method"}],"getCaseDataUrl":[{"__symbolic":"method"}],"getDocumentManagementUrl":[{"__symbolic":"method"}],"getDocumentManagementUrlV2":[{"__symbolic":"method"}],"getDocumentSecureMode":[{"__symbolic":"method"}],"getRemoteDocumentManagementUrl":[{"__symbolic":"method"}],"getHrsUrl":[{"__symbolic":"method"}],"getRemoteHrsUrl":[{"__symbolic":"method"}],"getAnnotationApiUrl":[{"__symbolic":"method"}],"getPostcodeLookupUrl":[{"__symbolic":"method"}],"getOAuth2ClientId":[{"__symbolic":"method"}],"getPaymentsUrl":[{"__symbolic":"method"}],"getPayBulkScanBaseUrl":[{"__symbolic":"method"}],"getCreateOrUpdateDraftsUrl":[{"__symbolic":"method"}],"getViewOrDeleteDraftsUrl":[{"__symbolic":"method"}],"getActivityUrl":[{"__symbolic":"method"}],"getActivityNexPollRequestMs":[{"__symbolic":"method"}],"getActivityRetry":[{"__symbolic":"method"}],"getActivityBatchCollectionDelayMs":[{"__symbolic":"method"}],"getActivityMaxRequestPerBatch":[{"__symbolic":"method"}],"getCaseHistoryUrl":[{"__symbolic":"method"}],"getPrintServiceUrl":[{"__symbolic":"method"}],"getRemotePrintServiceUrl":[{"__symbolic":"method"}],"getPaginationPageSize":[{"__symbolic":"method"}],"getBannersUrl":[{"__symbolic":"method"}],"getPrdUrl":[{"__symbolic":"method"}],"getCacheTimeOut":[{"__symbolic":"method"}],"getWorkAllocationApiUrl":[{"__symbolic":"method"}],"getUserInfoApiUrl":[{"__symbolic":"method"}],"getAccessManagementMode":[{"__symbolic":"method"}],"getAccessManagementBasicViewMock":[{"__symbolic":"method"}],"getAccessManagementRequestReviewMockModel":[{"__symbolic":"method"}],"getLocationRefApiUrl":[{"__symbolic":"method"}],"getCamRoleAssignmentsApiUrl":[{"__symbolic":"method"}]}},"CaseEditorConfig":{"__symbolic":"class"}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"AccessManagementBasicViewMockModel":{"__symbolic":"interface"},"AccessManagementRequestReviewMockModel":{"__symbolic":"interface"},"AbstractAppConfig":{"__symbolic":"class","members":{"load":[{"__symbolic":"method"}],"getLoginUrl":[{"__symbolic":"method"}],"getApiUrl":[{"__symbolic":"method"}],"getCaseDataUrl":[{"__symbolic":"method"}],"getDocumentManagementUrl":[{"__symbolic":"method"}],"getDocumentManagementUrlV2":[{"__symbolic":"method"}],"getDocumentSecureMode":[{"__symbolic":"method"}],"getRemoteDocumentManagementUrl":[{"__symbolic":"method"}],"getHrsUrl":[{"__symbolic":"method"}],"getRemoteHrsUrl":[{"__symbolic":"method"}],"getAnnotationApiUrl":[{"__symbolic":"method"}],"getPostcodeLookupUrl":[{"__symbolic":"method"}],"getOAuth2ClientId":[{"__symbolic":"method"}],"getPaymentsUrl":[{"__symbolic":"method"}],"getPayBulkScanBaseUrl":[{"__symbolic":"method"}],"getCreateOrUpdateDraftsUrl":[{"__symbolic":"method"}],"getViewOrDeleteDraftsUrl":[{"__symbolic":"method"}],"getActivityUrl":[{"__symbolic":"method"}],"getActivityNexPollRequestMs":[{"__symbolic":"method"}],"getActivityRetry":[{"__symbolic":"method"}],"getActivityBatchCollectionDelayMs":[{"__symbolic":"method"}],"getActivityMaxRequestPerBatch":[{"__symbolic":"method"}],"getCaseHistoryUrl":[{"__symbolic":"method"}],"getPrintServiceUrl":[{"__symbolic":"method"}],"getRemotePrintServiceUrl":[{"__symbolic":"method"}],"getPaginationPageSize":[{"__symbolic":"method"}],"getBannersUrl":[{"__symbolic":"method"}],"getPrdUrl":[{"__symbolic":"method"}],"getCacheTimeOut":[{"__symbolic":"method"}],"getWorkAllocationApiUrl":[{"__symbolic":"method"}],"getUserInfoApiUrl":[{"__symbolic":"method"}],"getAccessManagementMode":[{"__symbolic":"method"}],"getAccessManagementBasicViewMock":[{"__symbolic":"method"}],"getAccessManagementRequestReviewMockModel":[{"__symbolic":"method"}],"getLocationRefApiUrl":[{"__symbolic":"method"}],"getCamRoleAssignmentsApiUrl":[{"__symbolic":"method"}],"getRefundsUrl":[{"__symbolic":"method"}]}},"CaseEditorConfig":{"__symbolic":"class"}}}]
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.8.0-rc.5
3
+ * @version v4.8.3-no-refunds-rc.3
4
4
  * @link undefined
5
5
  * @license MIT
6
6
  */
@@ -13157,6 +13157,8 @@ var CaseAccessUtils = /** @class */ (function () {
13157
13157
  function CaseAccessUtils() {
13158
13158
  }
13159
13159
  CaseAccessUtils.prototype.getMappedRoleCategory = function (roles, roleCategories) {
13160
+ if (roles === void 0) { roles = []; }
13161
+ if (roleCategories === void 0) { roleCategories = []; }
13160
13162
  var roleKeywords = roles.join().split('-').join().split(',');
13161
13163
  if (this.roleOrCategoryExists(CaseAccessUtils.JUDGE_ROLE, CaseAccessUtils.JUDGE_ROLE_CATEGORY, roleKeywords, roleCategories)) {
13162
13164
  return CaseAccessUtils.JUDGE_ROLE_CATEGORY;
@@ -13200,6 +13202,35 @@ var CaseAccessUtils = /** @class */ (function () {
13200
13202
  }
13201
13203
  return roleName;
13202
13204
  };
13205
+ CaseAccessUtils.prototype.getAMPayload = function (assignerId, actorId, roleName, roleCategory, grantType, caseId, details, beginTime, endTime) {
13206
+ if (beginTime === void 0) { beginTime = null; }
13207
+ if (endTime === void 0) { endTime = null; }
13208
+ var payload = {
13209
+ roleRequest: {
13210
+ assignerId: assignerId
13211
+ },
13212
+ requestedRoles: [{
13213
+ actorIdType: 'IDAM',
13214
+ actorId: actorId,
13215
+ roleType: 'CASE',
13216
+ roleName: roleName,
13217
+ classification: 'PUBLIC',
13218
+ roleCategory: roleCategory,
13219
+ grantType: grantType,
13220
+ beginTime: beginTime,
13221
+ endTime: endTime,
13222
+ attributes: {
13223
+ caseId: caseId
13224
+ },
13225
+ notes: [{
13226
+ userId: assignerId,
13227
+ time: new Date(),
13228
+ comment: JSON.stringify(details)
13229
+ }]
13230
+ }]
13231
+ };
13232
+ return payload;
13233
+ };
13203
13234
  // User role mapping
13204
13235
  CaseAccessUtils.JUDGE_ROLE = 'judge';
13205
13236
  CaseAccessUtils.JUDGE_ROLE_CATEGORY = 'JUDICIAL';
@@ -13712,11 +13743,11 @@ var CaseEditPageComponent = /** @class */ (function () {
13712
13743
  if (this.currentPageIsNotValid()) {
13713
13744
  this.generateErrorMessage(this.currentPage.case_fields);
13714
13745
  }
13715
- this.showSpinner = true;
13716
13746
  if (!this.isSubmitting && !this.currentPageIsNotValid()) {
13717
13747
  this.isSubmitting = true;
13718
13748
  this.error = null;
13719
13749
  var caseEventData = this.buildCaseEventData();
13750
+ this.showSpinner = true;
13720
13751
  this.caseEdit.validate(caseEventData, this.currentPage.id)
13721
13752
  .subscribe(function (jsonData) {
13722
13753
  if (jsonData) {
@@ -15034,6 +15065,7 @@ var router_helper_service_1 = __webpack_require__(61957);
15034
15065
  var wizard_factory_service_1 = __webpack_require__(13125);
15035
15066
  var conditional_show_model_1 = __webpack_require__(5369);
15036
15067
  var event_trigger_service_1 = __webpack_require__(17051);
15068
+ var fields_1 = __webpack_require__(64906);
15037
15069
  var CaseEditWizardGuard = /** @class */ (function () {
15038
15070
  function CaseEditWizardGuard(router, routerHelper, wizardFactory, alertService, eventTriggerService) {
15039
15071
  this.router = router;
@@ -15089,6 +15121,15 @@ var CaseEditWizardGuard = /** @class */ (function () {
15089
15121
  };
15090
15122
  CaseEditWizardGuard.prototype.buildState = function (caseFields) {
15091
15123
  var state = {};
15124
+ /**
15125
+ *
15126
+ * EUI-4873 SSCS - Dynamic lists in a collection within a complex type
15127
+ *
15128
+ * Catering for mid event callbacks, hence the call to re-evaluate
15129
+ * for DynamicList's
15130
+ *
15131
+ */
15132
+ fields_1.FieldsUtils.handleNestedDynamicLists({ case_fields: caseFields });
15092
15133
  caseFields.forEach(function (field) {
15093
15134
  state[field.id] = field.value;
15094
15135
  });
@@ -15150,17 +15191,6 @@ exports.CaseNotifier = CaseNotifier;
15150
15191
 
15151
15192
  "use strict";
15152
15193
 
15153
- var __assign = (this && this.__assign) || function () {
15154
- __assign = Object.assign || function(t) {
15155
- for (var s, i = 1, n = arguments.length; i < n; i++) {
15156
- s = arguments[i];
15157
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15158
- t[p] = s[p];
15159
- }
15160
- return t;
15161
- };
15162
- return __assign.apply(this, arguments);
15163
- };
15164
15194
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15165
15195
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15166
15196
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -15231,73 +15261,6 @@ var CasesService = /** @class */ (function () {
15231
15261
  return rxjs_1.throwError(error);
15232
15262
  }), operators_1.finalize(function () { return _this.loadingService.unregister(loadingToken); }));
15233
15263
  };
15234
- /**
15235
- * handleNestedDynamicLists()
15236
- * Reassigns list_item and value data to DynamicList children
15237
- * down the tree. Server response returns data only in
15238
- * the `value` object of parent complex type
15239
- *
15240
- * EUI-2530 Dynamic Lists for Elements in a Complex Type
15241
- *
15242
- * @param jsonBody - { case_fields: [ CaseField, CaseField ] }
15243
- */
15244
- CasesService.prototype.handleNestedDynamicLists = function (jsonBody) {
15245
- var _this = this;
15246
- if (jsonBody.case_fields) {
15247
- jsonBody.case_fields.forEach(function (caseField) {
15248
- if (caseField.field_type) {
15249
- _this.setDynamicListDefinition(caseField, caseField.field_type, caseField);
15250
- }
15251
- });
15252
- }
15253
- return jsonBody;
15254
- };
15255
- CasesService.prototype.setDynamicListDefinition = function (caseField, caseFieldType, rootCaseField) {
15256
- var _this = this;
15257
- if (caseFieldType.type === CasesService_1.SERVER_RESPONSE_FIELD_TYPE_COMPLEX) {
15258
- caseFieldType.complex_fields.forEach(function (field) {
15259
- try {
15260
- var isDynamicField = CasesService_1.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE.indexOf(field.field_type.type) !== -1;
15261
- if (isDynamicField) {
15262
- var dynamicListValue = _this.getDynamicListValue(rootCaseField.value, field.id);
15263
- if (dynamicListValue) {
15264
- var list_items = dynamicListValue.list_items;
15265
- var value = dynamicListValue.value;
15266
- field.value = {
15267
- list_items: list_items,
15268
- value: value ? value : undefined
15269
- };
15270
- field.formatted_value = __assign({}, field.formatted_value, field.value);
15271
- }
15272
- }
15273
- else {
15274
- _this.setDynamicListDefinition(field, field.field_type, rootCaseField);
15275
- }
15276
- }
15277
- catch (error) {
15278
- console.log(error);
15279
- }
15280
- });
15281
- }
15282
- else if (caseFieldType.type === CasesService_1.SERVER_RESPONSE_FIELD_TYPE_COLLECTION) {
15283
- if (caseFieldType.collection_field_type) {
15284
- this.setDynamicListDefinition(caseField, caseFieldType.collection_field_type, rootCaseField);
15285
- }
15286
- }
15287
- };
15288
- CasesService.prototype.getDynamicListValue = function (jsonBlock, key) {
15289
- if (jsonBlock[key]) {
15290
- return jsonBlock[key];
15291
- }
15292
- else {
15293
- for (var elementKey in jsonBlock) {
15294
- if (typeof jsonBlock === 'object' && jsonBlock.hasOwnProperty(elementKey)) {
15295
- return this.getDynamicListValue(jsonBlock[elementKey], key);
15296
- }
15297
- }
15298
- }
15299
- return null;
15300
- };
15301
15264
  CasesService.prototype.getEventTrigger = function (caseTypeId, eventTriggerId, caseId, ignoreWarning) {
15302
15265
  var _this = this;
15303
15266
  ignoreWarning = undefined !== ignoreWarning ? ignoreWarning : 'false';
@@ -15317,7 +15280,7 @@ var CasesService = /** @class */ (function () {
15317
15280
  return this.http
15318
15281
  .get(url, { headers: headers, observe: 'body' })
15319
15282
  .pipe(operators_1.map(function (body) {
15320
- return _this.handleNestedDynamicLists(body);
15283
+ return services_1.FieldsUtils.handleNestedDynamicLists(body);
15321
15284
  }), operators_1.catchError(function (error) {
15322
15285
  _this.errorService.setError(error);
15323
15286
  return rxjs_1.throwError(error);
@@ -15459,32 +15422,23 @@ var CasesService = /** @class */ (function () {
15459
15422
  }
15460
15423
  var roleCategory = camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
15461
15424
  var roleName = camUtils.getAMRoleName('challenged', roleCategory);
15462
- var payload = {
15463
- roleRequest: {
15464
- assignerId: userInfo.id
15465
- },
15466
- requestedRoles: [{
15467
- actorIdType: 'IDAM',
15468
- actorId: userInfo.id,
15469
- roleType: 'CASE',
15470
- roleName: roleName,
15471
- classification: 'PUBLIC',
15472
- roleCategory: roleCategory,
15473
- grantType: 'CHALLENGED',
15474
- beginTime: new Date(),
15475
- endTime: new Date(new Date().setUTCHours(23, 59, 59, 999)),
15476
- attributes: {
15477
- caseId: caseId
15478
- },
15479
- notes: [{
15480
- userId: userInfo.id,
15481
- time: new Date(),
15482
- comment: JSON.stringify(car)
15483
- }
15484
- ]
15485
- }]
15486
- };
15487
- return this.http.post("" + this.appConfig.getCamRoleAssignmentsApiUrl(), payload);
15425
+ var beginTime = new Date();
15426
+ var endTime = new Date(new Date().setUTCHours(23, 59, 59, 999));
15427
+ var payload = camUtils.getAMPayload(userInfo.id, userInfo.id, roleName, roleCategory, 'CHALLENGED', caseId, car, beginTime, endTime);
15428
+ return this.http.post(this.appConfig.getCamRoleAssignmentsApiUrl() + "/challenged", payload);
15429
+ };
15430
+ CasesService.prototype.createSpecificAccessRequest = function (caseId, sar) {
15431
+ // Assignment API endpoint
15432
+ var userInfoStr = this.sessionStorageService.getItem('userDetails');
15433
+ var camUtils = new case_access_utils_1.CaseAccessUtils();
15434
+ var userInfo;
15435
+ if (userInfoStr) {
15436
+ userInfo = JSON.parse(userInfoStr);
15437
+ }
15438
+ var roleCategory = camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
15439
+ var roleName = camUtils.getAMRoleName('specific', roleCategory);
15440
+ var payload = camUtils.getAMPayload(null, userInfo.id, roleName, roleCategory, 'SPECIFIC', caseId, sar);
15441
+ return this.http.post(this.appConfig.getCamRoleAssignmentsApiUrl() + "/specific", payload);
15488
15442
  };
15489
15443
  var CasesService_1;
15490
15444
  // Internal (UI) API
@@ -15497,10 +15451,6 @@ var CasesService = /** @class */ (function () {
15497
15451
  CasesService.V2_MEDIATYPE_CASE_DATA_VALIDATE = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.case-data-validate.v2+json;charset=UTF-8';
15498
15452
  CasesService.V2_MEDIATYPE_CREATE_EVENT = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-event.v2+json;charset=UTF-8';
15499
15453
  CasesService.V2_MEDIATYPE_CREATE_CASE = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-case.v2+json;charset=UTF-8';
15500
- // Handling of Dynamic Lists in Complex Types
15501
- CasesService.SERVER_RESPONSE_FIELD_TYPE_COLLECTION = 'Collection';
15502
- CasesService.SERVER_RESPONSE_FIELD_TYPE_COMPLEX = 'Complex';
15503
- CasesService.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE = ['DynamicList', 'DynamicRadioList'];
15504
15454
  CasesService.PUI_CASE_MANAGER = 'pui-case-manager';
15505
15455
  CasesService = CasesService_1 = __decorate([
15506
15456
  core_1.Injectable(),
@@ -17386,6 +17336,7 @@ var CaseFullAccessViewComponent = /** @class */ (function () {
17386
17336
  this.hasPrint = true;
17387
17337
  this.hasEventSelector = true;
17388
17338
  this.prependedTabs = [];
17339
+ this.appendedTabs = [];
17389
17340
  this.BANNER = domain_1.DisplayMode.BANNER;
17390
17341
  this.triggerTextStart = CaseFullAccessViewComponent_1.TRIGGER_TEXT_START;
17391
17342
  this.triggerTextIgnoreWarnings = CaseFullAccessViewComponent_1.TRIGGER_TEXT_CONTINUE;
@@ -17475,7 +17426,7 @@ var CaseFullAccessViewComponent = /** @class */ (function () {
17475
17426
  }
17476
17427
  };
17477
17428
  CaseFullAccessViewComponent.prototype.hasTabsPresent = function () {
17478
- return this.sortedTabs.length > 0 || this.prependedTabs.length > 0;
17429
+ return this.sortedTabs.length > 0 || this.prependedTabs.length > 0 || this.appendedTabs.length > 0;
17479
17430
  };
17480
17431
  CaseFullAccessViewComponent.prototype.callbackErrorsNotify = function (callbackErrorsContext) {
17481
17432
  this.ignoreWarning = callbackErrorsContext.ignore_warning;
@@ -17524,7 +17475,9 @@ var CaseFullAccessViewComponent = /** @class */ (function () {
17524
17475
  CaseFullAccessViewComponent.prototype.tabChanged = function (tabChangeEvent) {
17525
17476
  var tab = tabChangeEvent.tab['_viewContainerRef'];
17526
17477
  var id = tab.element.nativeElement.id;
17527
- if (tabChangeEvent.index <= 1 && this.prependedTabs.length) {
17478
+ var tabsLengthBeforeAppended = this.prependedTabs.length + this.caseDetails.tabs.length;
17479
+ if ((tabChangeEvent.index <= 1 && this.prependedTabs.length) ||
17480
+ (tabChangeEvent.index >= tabsLengthBeforeAppended && this.appendedTabs.length)) {
17528
17481
  this.router.navigate([id], { relativeTo: this.route });
17529
17482
  }
17530
17483
  else {
@@ -17607,6 +17560,10 @@ var CaseFullAccessViewComponent = /** @class */ (function () {
17607
17560
  core_1.Input(),
17608
17561
  __metadata("design:type", Array)
17609
17562
  ], CaseFullAccessViewComponent.prototype, "prependedTabs", void 0);
17563
+ __decorate([
17564
+ core_1.Input(),
17565
+ __metadata("design:type", Array)
17566
+ ], CaseFullAccessViewComponent.prototype, "appendedTabs", void 0);
17610
17567
  __decorate([
17611
17568
  core_1.ViewChild('tabGroup'),
17612
17569
  __metadata("design:type", material_1.MatTabGroup)
@@ -17889,11 +17846,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
17889
17846
  var core_1 = __webpack_require__(57208);
17890
17847
  var forms_1 = __webpack_require__(92985);
17891
17848
  var router_1 = __webpack_require__(92302);
17849
+ var case_editor_1 = __webpack_require__(27070);
17892
17850
  var models_1 = __webpack_require__(3234);
17893
17851
  var CaseSpecificAccessRequestComponent = /** @class */ (function () {
17894
- function CaseSpecificAccessRequestComponent(fb, router, route) {
17852
+ function CaseSpecificAccessRequestComponent(fb, router, casesService, route) {
17895
17853
  this.fb = fb;
17896
17854
  this.router = router;
17855
+ this.casesService = casesService;
17897
17856
  this.route = route;
17898
17857
  this.collapsed = false;
17899
17858
  this.submitted = false;
@@ -17931,6 +17890,7 @@ var CaseSpecificAccessRequestComponent = /** @class */ (function () {
17931
17890
  this.formGroup.get(this.specificReasonControlName).setValue('');
17932
17891
  };
17933
17892
  CaseSpecificAccessRequestComponent.prototype.onSubmit = function () {
17893
+ var _this = this;
17934
17894
  this.submitted = true;
17935
17895
  if (this.formGroup.get(this.specificReasonControlName).invalid) {
17936
17896
  this.errorMessage = {
@@ -17939,6 +17899,22 @@ var CaseSpecificAccessRequestComponent = /** @class */ (function () {
17939
17899
  fieldId: 'specific-reason',
17940
17900
  };
17941
17901
  }
17902
+ // Initiate Specific Access Request
17903
+ if (this.formGroup.valid) {
17904
+ // Get the Case Reference (for which access is being requested) from the ActivatedRouteSnapshot data
17905
+ var caseId = this.route.snapshot.data.case.case_id;
17906
+ var specificAccessRequest = {
17907
+ specificReason: this.formGroup.get(this.specificReasonControlName).value
17908
+ };
17909
+ this.$roleAssignmentResponseSubscription = this.casesService.createSpecificAccessRequest(caseId, specificAccessRequest)
17910
+ .subscribe(function (_response) {
17911
+ // Would have been nice to pass the caseId within state.data, but this isn't part of NavigationExtras until
17912
+ // Angular 7.2!
17913
+ _this.router.navigate(['success'], { relativeTo: _this.route });
17914
+ }, function (_error) {
17915
+ // Navigate to error page
17916
+ });
17917
+ }
17942
17918
  };
17943
17919
  CaseSpecificAccessRequestComponent.prototype.onCancel = function () {
17944
17920
  // Navigate to the page before previous one (should be Search Results or Case List page, for example)
@@ -17956,6 +17932,7 @@ var CaseSpecificAccessRequestComponent = /** @class */ (function () {
17956
17932
  }),
17957
17933
  __metadata("design:paramtypes", [forms_1.FormBuilder,
17958
17934
  router_1.Router,
17935
+ case_editor_1.CasesService,
17959
17936
  router_1.ActivatedRoute])
17960
17937
  ], CaseSpecificAccessRequestComponent);
17961
17938
  return CaseSpecificAccessRequestComponent;
@@ -18166,6 +18143,7 @@ var CaseViewerComponent = /** @class */ (function () {
18166
18143
  this.hasPrint = true;
18167
18144
  this.hasEventSelector = true;
18168
18145
  this.prependedTabs = [];
18146
+ this.appendedTabs = [];
18169
18147
  }
18170
18148
  CaseViewerComponent_1 = CaseViewerComponent;
18171
18149
  CaseViewerComponent.prototype.ngOnInit = function () {
@@ -18209,7 +18187,7 @@ var CaseViewerComponent = /** @class */ (function () {
18209
18187
  // remove once Access management goes live
18210
18188
  CaseViewerComponent.prototype.setMockData = function (caseDetails) {
18211
18189
  var accessManagementBasicViewMock = this.appConfig.getAccessManagementBasicViewMock();
18212
- if (accessManagementBasicViewMock.active && !caseDetails.basicFields) {
18190
+ if (accessManagementBasicViewMock && accessManagementBasicViewMock.active && !caseDetails.basicFields) {
18213
18191
  var access_process_index = caseDetails.metadataFields.findIndex(function (metadataField) {
18214
18192
  return metadataField.id === CaseViewerComponent_1.METADATA_FIELD_ACCESS_PROCEES_ID;
18215
18193
  });
@@ -18244,6 +18222,10 @@ var CaseViewerComponent = /** @class */ (function () {
18244
18222
  core_1.Input(),
18245
18223
  __metadata("design:type", Array)
18246
18224
  ], CaseViewerComponent.prototype, "prependedTabs", void 0);
18225
+ __decorate([
18226
+ core_1.Input(),
18227
+ __metadata("design:type", Array)
18228
+ ], CaseViewerComponent.prototype, "appendedTabs", void 0);
18247
18229
  __decorate([
18248
18230
  core_1.Input(),
18249
18231
  __metadata("design:type", domain_1.CaseView)
@@ -21849,6 +21831,10 @@ var ReadFieldsFilterPipe = /** @class */ (function () {
21849
21831
  return !!hasChildrenWithValue;
21850
21832
  };
21851
21833
  ReadFieldsFilterPipe.isValidCollection = function (field, values) {
21834
+ // if field is collection and it has complex/collection child field; parent field doesnt have value defined
21835
+ if (!Array.isArray(field.value) && values && values.hasOwnProperty(field.id)) {
21836
+ return true;
21837
+ }
21852
21838
  var isNotEmpty = Array.isArray(field.value) && field.value.length > 0;
21853
21839
  if (isNotEmpty && field.field_type.collection_field_type.type === 'Complex') {
21854
21840
  return !!field.value.find(function (item) {
@@ -27231,9 +27217,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
27231
27217
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
27232
27218
  };
27233
27219
  Object.defineProperty(exports, "__esModule", ({ value: true }));
27234
- var abstract_field_read_component_1 = __webpack_require__(73860);
27235
27220
  var core_1 = __webpack_require__(57208);
27236
27221
  var app_config_1 = __webpack_require__(35185);
27222
+ var abstract_field_read_component_1 = __webpack_require__(73860);
27237
27223
  var CasePaymentHistoryViewerFieldComponent = /** @class */ (function (_super) {
27238
27224
  __extends(CasePaymentHistoryViewerFieldComponent, _super);
27239
27225
  function CasePaymentHistoryViewerFieldComponent(appConfig) {
@@ -35078,6 +35064,17 @@ exports.FieldsPurger = FieldsPurger;
35078
35064
 
35079
35065
  "use strict";
35080
35066
 
35067
+ var __assign = (this && this.__assign) || function () {
35068
+ __assign = Object.assign || function(t) {
35069
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
35070
+ s = arguments[i];
35071
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
35072
+ t[p] = s[p];
35073
+ }
35074
+ return t;
35075
+ };
35076
+ return __assign.apply(this, arguments);
35077
+ };
35081
35078
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
35082
35079
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35083
35080
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -35221,6 +35218,74 @@ var FieldsUtils = /** @class */ (function () {
35221
35218
  : typeof x === 'number' || x.length > 0)); });
35222
35219
  return !hasNonNullPrimitive ? objectRefs.some(function (y) { return _this.containsNonEmptyValues(y); }) : hasNonNullPrimitive;
35223
35220
  };
35221
+ /**
35222
+ * handleNestedDynamicLists()
35223
+ * Reassigns list_item and value data to DynamicList children
35224
+ * down the tree. Server response returns data only in
35225
+ * the `value` object of parent complex type
35226
+ *
35227
+ * EUI-2530 Dynamic Lists for Elements in a Complex Type
35228
+ *
35229
+ * @param jsonBody - { case_fields: [ CaseField, CaseField ] }
35230
+ */
35231
+ FieldsUtils.handleNestedDynamicLists = function (jsonBody) {
35232
+ var _this = this;
35233
+ if (jsonBody.case_fields) {
35234
+ jsonBody.case_fields.forEach(function (caseField) {
35235
+ if (caseField.field_type) {
35236
+ _this.setDynamicListDefinition(caseField, caseField.field_type, caseField);
35237
+ }
35238
+ });
35239
+ }
35240
+ return jsonBody;
35241
+ };
35242
+ FieldsUtils.setDynamicListDefinition = function (caseField, caseFieldType, rootCaseField) {
35243
+ var _this = this;
35244
+ if (caseFieldType.type === FieldsUtils_1.SERVER_RESPONSE_FIELD_TYPE_COMPLEX) {
35245
+ caseFieldType.complex_fields.forEach(function (field) {
35246
+ try {
35247
+ var isDynamicField = FieldsUtils_1.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE.indexOf(field.field_type.type) !== -1;
35248
+ if (isDynamicField) {
35249
+ var dynamicListValue = _this.getDynamicListValue(rootCaseField.value, field.id);
35250
+ if (dynamicListValue) {
35251
+ var list_items = dynamicListValue.list_items;
35252
+ var complexValue = dynamicListValue.value;
35253
+ var value = {
35254
+ list_items: list_items,
35255
+ value: complexValue ? complexValue : undefined
35256
+ };
35257
+ field.value = __assign({}, value);
35258
+ field.formatted_value = __assign({}, field.formatted_value, value);
35259
+ }
35260
+ }
35261
+ else {
35262
+ _this.setDynamicListDefinition(field, field.field_type, rootCaseField);
35263
+ }
35264
+ }
35265
+ catch (error) {
35266
+ console.log(error);
35267
+ }
35268
+ });
35269
+ }
35270
+ else if (caseFieldType.type === FieldsUtils_1.SERVER_RESPONSE_FIELD_TYPE_COLLECTION) {
35271
+ if (caseFieldType.collection_field_type) {
35272
+ this.setDynamicListDefinition(caseField, caseFieldType.collection_field_type, rootCaseField);
35273
+ }
35274
+ }
35275
+ };
35276
+ FieldsUtils.getDynamicListValue = function (jsonBlock, key) {
35277
+ if (jsonBlock[key]) {
35278
+ return jsonBlock[key];
35279
+ }
35280
+ else {
35281
+ for (var elementKey in jsonBlock) {
35282
+ if (typeof jsonBlock === 'object' && jsonBlock.hasOwnProperty(elementKey)) {
35283
+ return this.getDynamicListValue(jsonBlock[elementKey], key);
35284
+ }
35285
+ }
35286
+ }
35287
+ return null;
35288
+ };
35224
35289
  FieldsUtils.prototype.buildCanShowPredicate = function (eventTrigger, form) {
35225
35290
  var currentState = this.getCurrentEventState(eventTrigger, form);
35226
35291
  return function (page) {
@@ -35266,6 +35331,10 @@ var FieldsUtils = /** @class */ (function () {
35266
35331
  FieldsUtils.datePipe = new utils_1.DatePipe(new format_translator_service_1.FormatTranslatorService());
35267
35332
  // EUI-4244. 3 dashes instead of 1 to make this less likely to clash with a real field.
35268
35333
  FieldsUtils.LABEL_SUFFIX = '---LABEL';
35334
+ // Handling of Dynamic Lists in Complex Types
35335
+ FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COLLECTION = 'Collection';
35336
+ FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COMPLEX = 'Complex';
35337
+ FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE = ['DynamicList', 'DynamicRadioList'];
35269
35338
  FieldsUtils.DEFAULT_MERGE_FUNCTION = function mergeFunction(field, result) {
35270
35339
  if (!result.hasOwnProperty(field.id)) {
35271
35340
  result[field.id] = field.value;
@@ -64940,7 +65009,7 @@ module.exports = "<div *ngIf=\"isDataLoaded()\" class=\"screen-990\">\n <ccd-ac
64940
65009
  /***/ 99839:
64941
65010
  /***/ ((module) => {
64942
65011
 
64943
- module.exports = "<!-- 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=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\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<!-- Callback error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"group\"\n aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-h2 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n The callback data failed validation\n </h2>\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\">\n {{fieldError.message}}\n </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<ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n<div class=\"grid-row\">\n <div class=\"column-one-half\">\n <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n <div class=\"case-viewer-controls\" *ngIf=\"hasPrint && !isDraft() && isPrintEnabled()\">\n <a id=\"case-viewer-control-print\" routerLink=\"print\" class=\"button button-secondary\">Print</a>\n </div>\n </div>\n <div *ngIf=\"hasEventSelector\" class=\"column-one-half\">\n <ccd-event-trigger [isDisabled]=\"isTriggerButtonDisabled()\" [triggers]=\"caseDetails.triggers\"\n [triggerText]=\"triggerText\" (onTriggerChange)=\"clearErrorsAndWarnings()\"\n (onTriggerSubmit)=\"applyTrigger($event)\"></ccd-event-trigger>\n </div>\n</div>\n<div class=\"grid-row\">\n <div class=\"column-full\">\n <ng-container *ngIf=\"hasTabsPresent()\">\n <mat-tab-group #tabGroup animationDuration=\"0ms\" (selectedTabChange)=\"tabChanged($event)\" [disableRipple]=\"true\">\n <mat-tab *ngFor=\"let tab of prependedTabs\" [id]=\"tab.id\" [label]=\"tab.label\">\n </mat-tab>\n <mat-tab *ngFor=\"let tab of sortedTabs; let curIdx=index\" [id]=\"tab.id\" [label]=\"tab.label\">\n <ng-template matTabContent>\n <table [class]=\"tab.id\">\n <tbody>\n <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true : formGroup.controls['data']\">\n <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"caseFields\" [hidden]=\"field.hidden\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\">\n <th>\n <div class=\"case-viewer-label text-16\">{{field.label}}</div>\n </th>\n <td>\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\">\n </ccd-field-read>\n </span>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n <th>\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\">\n </ccd-field-read>\n </span>\n </th>\n </tr>\n </ng-container>\n </div>\n </ng-container>\n </tbody>\n </table>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n <router-outlet *ngIf=\"prependedTabs && prependedTabs.length\"></router-outlet>\n </ng-container>\n </div>\n</div>"
65012
+ module.exports = "<!-- 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=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\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<!-- Callback error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"group\"\n aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-h2 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n The callback data failed validation\n </h2>\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\">\n {{fieldError.message}}\n </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<ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n<div class=\"grid-row\">\n <div class=\"column-one-half\">\n <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n <div class=\"case-viewer-controls\" *ngIf=\"hasPrint && !isDraft() && isPrintEnabled()\">\n <a id=\"case-viewer-control-print\" routerLink=\"print\" class=\"button button-secondary\">Print</a>\n </div>\n </div>\n <div *ngIf=\"hasEventSelector\" class=\"column-one-half\">\n <ccd-event-trigger [isDisabled]=\"isTriggerButtonDisabled()\" [triggers]=\"caseDetails.triggers\"\n [triggerText]=\"triggerText\" (onTriggerChange)=\"clearErrorsAndWarnings()\"\n (onTriggerSubmit)=\"applyTrigger($event)\"></ccd-event-trigger>\n </div>\n</div>\n<div class=\"grid-row\">\n <div class=\"column-full\">\n <ng-container *ngIf=\"hasTabsPresent()\">\n <mat-tab-group #tabGroup animationDuration=\"0ms\" (selectedTabChange)=\"tabChanged($event)\" [disableRipple]=\"true\">\n <mat-tab *ngFor=\"let tab of prependedTabs\" [id]=\"tab.id\" [label]=\"tab.label\">\n </mat-tab>\n <mat-tab *ngFor=\"let tab of sortedTabs; let curIdx=index\" [id]=\"tab.id\" [label]=\"tab.label\">\n <ng-template matTabContent>\n <table [class]=\"tab.id\">\n <tbody>\n <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true : formGroup.controls['data']\">\n <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"caseFields\" [hidden]=\"field.hidden\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\">\n <th>\n <div class=\"case-viewer-label text-16\">{{field.label}}</div>\n </th>\n <td>\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\">\n </ccd-field-read>\n </span>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n <th>\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\">\n </ccd-field-read>\n </span>\n </th>\n </tr>\n </ng-container>\n </div>\n </ng-container>\n </tbody>\n </table>\n </ng-template>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of appendedTabs\" [id]=\"tab.id\" [label]=\"tab.label\">\n </mat-tab>\n </mat-tab-group>\n <router-outlet *ngIf=\"(prependedTabs && prependedTabs.length) || (appendedTabs && appendedTabs.length)\"></router-outlet>\n </ng-container>\n </div>\n</div>\n"
64944
65013
 
64945
65014
  /***/ }),
64946
65015
 
@@ -64975,7 +65044,7 @@ module.exports = "<div *ngIf=\"isDataLoaded()\">\n <ccd-case-viewer [hasPrint
64975
65044
  /***/ 67025:
64976
65045
  /***/ ((module) => {
64977
65046
 
64978
- module.exports = "<div *ngIf=\"isDataLoaded()\">\n <ccd-case-basic-access-view *ngIf=\"!hasStandardAccess()\" [accessType]=\"userAccessType\" [caseDetails]=\"caseDetails\"></ccd-case-basic-access-view>\n <ccd-case-full-access-view *ngIf=\"hasStandardAccess()\" [caseDetails]=\"caseDetails\" [hasPrint]=\"hasPrint\" [hasEventSelector]=\"hasEventSelector\" [prependedTabs]=\"prependedTabs\"></ccd-case-full-access-view>\n</div>\n"
65047
+ module.exports = "<div *ngIf=\"isDataLoaded()\">\n <ccd-case-basic-access-view *ngIf=\"!hasStandardAccess()\" [accessType]=\"userAccessType\" [caseDetails]=\"caseDetails\"></ccd-case-basic-access-view>\n <ccd-case-full-access-view *ngIf=\"hasStandardAccess()\" [caseDetails]=\"caseDetails\" [hasPrint]=\"hasPrint\" [hasEventSelector]=\"hasEventSelector\" [prependedTabs]=\"prependedTabs\" [appendedTabs]=\"appendedTabs\"></ccd-case-full-access-view>\n</div>\n"
64979
65048
 
64980
65049
  /***/ }),
64981
65050
 
@@ -65346,7 +65415,7 @@ module.exports = "<div class=\"form-group\" [formGroup]=\"organisationFormGroup\
65346
65415
  /***/ 69259:
65347
65416
  /***/ ((module) => {
65348
65417
 
65349
- module.exports = "<ccpay-payment-lib [API_ROOT]=\"getBaseURL()\" [CCD_CASE_NUMBER]=\"caseReference\" [BULKSCAN_API_ROOT]=\"getPayBulkScanBaseURL()\" [SELECTED_OPTION]=\"'CCDorException'\" [ISBSENABLE]=\"'true'\"></ccpay-payment-lib>\n"
65418
+ module.exports = "<ccpay-payment-lib\n [API_ROOT]=\"getBaseURL()\"\n [CCD_CASE_NUMBER]=\"caseReference\"\n [BULKSCAN_API_ROOT]=\"getPayBulkScanBaseURL()\"\n [SELECTED_OPTION]=\"'CCDorException'\"\n [ISBSENABLE]=\"'true'\"\n [VIEW]=\"'case-transactions'\"\n></ccpay-payment-lib>\n"
65350
65419
 
65351
65420
  /***/ }),
65352
65421