@hmcts/ccd-case-ui-toolkit 6.14.5-duplicate-tabs → 6.15.0-b

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 (66) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +1132 -938
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/shared/components/case-editor/case-edit/case-edit.component.js +264 -13
  6. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +3 -3
  7. package/esm2015/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.js +80 -0
  8. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +162 -154
  9. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +160 -409
  10. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +9 -5
  11. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +4 -2
  12. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +25 -23
  13. package/esm2015/lib/shared/components/case-viewer/case-viewer.component.js +15 -13
  14. package/esm2015/lib/shared/components/error/callback-errors.component.js +1 -6
  15. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field.component.js +79 -29
  16. package/esm2015/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.js +1 -1
  17. package/esm2015/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.js +1 -1
  18. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +22 -17
  19. package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +1 -1
  20. package/esm2015/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.js +45 -22
  21. package/esm2015/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.js +4 -2
  22. package/esm2015/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.js +4 -2
  23. package/esm2015/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.js +4 -2
  24. package/esm2015/lib/shared/components/palette/palette.module.js +2 -2
  25. package/esm2015/lib/shared/domain/case-edit/case-edit.model.js +2 -0
  26. package/esm2015/lib/shared/domain/case-edit/index.js +2 -0
  27. package/esm2015/lib/shared/domain/case-file-view/case-file-view-document.model.js +1 -1
  28. package/esm2015/lib/shared/domain/index.js +2 -1
  29. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +925 -747
  30. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  31. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +64 -10
  32. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  33. package/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.d.ts +0 -1
  34. package/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.d.ts.map +1 -1
  35. package/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.d.ts +8 -0
  36. package/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.d.ts.map +1 -0
  37. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +7 -7
  38. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  39. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +6 -56
  40. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  41. package/lib/shared/components/case-editor/case-editor.module.d.ts +14 -13
  42. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  43. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  44. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  45. package/lib/shared/components/case-viewer/case-viewer.component.d.ts +2 -2
  46. package/lib/shared/components/case-viewer/case-viewer.component.d.ts.map +1 -1
  47. package/lib/shared/components/error/callback-errors.component.d.ts +2 -3
  48. package/lib/shared/components/error/callback-errors.component.d.ts.map +1 -1
  49. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts +9 -7
  50. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts.map +1 -1
  51. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts +4 -1
  52. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts.map +1 -1
  53. package/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.d.ts +10 -9
  54. package/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.d.ts.map +1 -1
  55. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts.map +1 -1
  56. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -1
  57. package/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.d.ts.map +1 -1
  58. package/lib/shared/domain/case-edit/case-edit.model.d.ts +26 -0
  59. package/lib/shared/domain/case-edit/case-edit.model.d.ts.map +1 -0
  60. package/lib/shared/domain/case-edit/index.d.ts +2 -0
  61. package/lib/shared/domain/case-edit/index.d.ts.map +1 -0
  62. package/lib/shared/domain/case-file-view/case-file-view-document.model.d.ts +1 -0
  63. package/lib/shared/domain/case-file-view/case-file-view-document.model.d.ts.map +1 -1
  64. package/lib/shared/domain/index.d.ts +1 -0
  65. package/lib/shared/domain/index.d.ts.map +1 -1
  66. package/package.json +2 -2
@@ -22,9 +22,9 @@ import * as i1$3 from '@angular/material/dialog';
22
22
  import { MatDialogConfig, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
23
23
  import * as i2$1 from '@nicky-lenaers/ngx-scroll-to';
24
24
  import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to';
25
- import * as i5 from '@angular/material/autocomplete';
25
+ import * as i4 from '@angular/material/autocomplete';
26
26
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
27
- import * as i6 from '@angular/material/core';
27
+ import * as i5 from '@angular/material/core';
28
28
  import { MAT_DATE_LOCALE } from '@angular/material/core';
29
29
  import * as i3 from '@hmcts/ccpay-web-component';
30
30
  import { PaymentLibModule } from '@hmcts/ccpay-web-component';
@@ -34,18 +34,18 @@ import * as i7 from '@angular/cdk/tree';
34
34
  import { NestedTreeControl, CdkTreeModule } from '@angular/cdk/tree';
35
35
  import * as i3$1 from '@angular/material/input';
36
36
  import { MatInputModule } from '@angular/material/input';
37
- import * as i4 from '@angular-material-components/datetime-picker';
37
+ import * as i4$1 from '@angular-material-components/datetime-picker';
38
38
  import { NGX_MAT_DATE_FORMATS, NgxMatDateAdapter, NgxMatDatetimePickerModule, NgxMatTimepickerModule, NgxMatNativeDateModule } from '@angular-material-components/datetime-picker';
39
39
  import { NgxMatMomentAdapter, NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular-material-components/moment-adapter';
40
40
  import * as i5$1 from '@angular/material/datepicker';
41
41
  import { MatDatepickerModule } from '@angular/material/datepicker';
42
- import * as i6$1 from '@angular/material/form-field';
42
+ import * as i6 from '@angular/material/form-field';
43
43
  import { MatFormFieldModule } from '@angular/material/form-field';
44
44
  import * as i1$5 from 'ngx-md';
45
45
  import { NgxMdModule } from 'ngx-md';
46
46
  import * as i11 from '@hmcts/media-viewer';
47
47
  import { MediaViewerModule } from '@hmcts/media-viewer';
48
- import * as i6$2 from '@angular/cdk/portal';
48
+ import * as i6$1 from '@angular/cdk/portal';
49
49
  import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
50
50
  import * as i1$6 from 'ngx-pagination';
51
51
  import { NgxPaginationModule, PaginatePipe } from 'ngx-pagination';
@@ -7748,41 +7748,47 @@ CaseCreateComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseCreateComponent,
7748
7748
  type: Output
7749
7749
  }] }); })();
7750
7750
 
7751
- class ConvertHrefToRouterService {
7752
- constructor(router) {
7753
- this.router = router;
7754
- this.hrefMarkdownLinkContent = new BehaviorSubject('Default');
7751
+ class Confirmation {
7752
+ constructor(caseId, status, header, body) {
7753
+ this.caseId = caseId;
7754
+ this.status = status;
7755
+ this.header = header;
7756
+ this.body = body;
7755
7757
  }
7756
- updateHrefLink(content) {
7757
- this.hrefMarkdownLinkContent.next(content);
7758
+ getCaseId() {
7759
+ return this.caseId;
7758
7760
  }
7759
- getHrefMarkdownLinkContent() {
7760
- return this.hrefMarkdownLinkContent.asObservable();
7761
+ getStatus() {
7762
+ return this.status;
7761
7763
  }
7762
- callAngularRouter(hrefMarkdownLinkContent) {
7763
- const urls = hrefMarkdownLinkContent.split('?');
7764
- const queryParams = urls[1];
7765
- const queryParamObj = {};
7766
- if (queryParams) {
7767
- const queryParam = queryParams.split('&');
7768
- if (queryParam[0]) {
7769
- // tslint:disable-next-line: prefer-for-of
7770
- for (let i = 0; i < queryParam.length; i++) {
7771
- const param = queryParam[i].split('=');
7772
- queryParamObj[param[0]] = param[1];
7773
- }
7774
- }
7775
- }
7776
- this.router.navigate([urls[0]], {
7777
- queryParams: queryParamObj && (Object.keys(queryParamObj).length) ? queryParamObj : ''
7778
- });
7764
+ getHeader() {
7765
+ return this.header;
7766
+ }
7767
+ getBody() {
7768
+ return this.body;
7779
7769
  }
7780
7770
  }
7781
- ConvertHrefToRouterService.ɵfac = function ConvertHrefToRouterService_Factory(t) { return new (t || ConvertHrefToRouterService)(i0.ɵɵinject(i1$1.Router)); };
7782
- ConvertHrefToRouterService.ɵprov = i0.ɵɵdefineInjectable({ token: ConvertHrefToRouterService, factory: ConvertHrefToRouterService.ɵfac });
7783
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConvertHrefToRouterService, [{
7784
- type: Injectable
7785
- }], function () { return [{ type: i1$1.Router }]; }, null); })();
7771
+
7772
+ var EventCompletionReturnStates;
7773
+ (function (EventCompletionReturnStates) {
7774
+ EventCompletionReturnStates["InProgress"] = "in-progress";
7775
+ EventCompletionReturnStates["CompleteEvent"] = "complete-event";
7776
+ EventCompletionReturnStates["CancelEvent"] = "cancel-event";
7777
+ })(EventCompletionReturnStates || (EventCompletionReturnStates = {}));
7778
+
7779
+ var EventCompletionStates;
7780
+ (function (EventCompletionStates) {
7781
+ EventCompletionStates["CheckTasksCanBeCompleted"] = "check-tasks-can-be-completed";
7782
+ EventCompletionStates["CompleteEventAndTask"] = "complete-event-and-task";
7783
+ EventCompletionStates["CancelEvent"] = "cancel-event";
7784
+ EventCompletionStates["CompleteEventNotTask"] = "complete-event-not-task";
7785
+ EventCompletionStates["TaskCompetedOrCancelled"] = "task-completed-or-cancelled";
7786
+ EventCompletionStates["TaskAssignedToAnotherUser"] = "task-assigned-to-another-user";
7787
+ EventCompletionStates["TaskReassignToUser"] = "task-reassign-to-user";
7788
+ EventCompletionStates["TaskAssignToUser"] = "task-assign-to-user";
7789
+ EventCompletionStates["TaskUnassigned"] = "task-unassigned";
7790
+ EventCompletionStates["Final"] = "final";
7791
+ })(EventCompletionStates || (EventCompletionStates = {}));
7786
7792
 
7787
7793
  class Wizard {
7788
7794
  constructor(wizardPages) {
@@ -7840,6 +7846,42 @@ class Wizard {
7840
7846
  }
7841
7847
  }
7842
7848
 
7849
+ class ConvertHrefToRouterService {
7850
+ constructor(router) {
7851
+ this.router = router;
7852
+ this.hrefMarkdownLinkContent = new BehaviorSubject('Default');
7853
+ }
7854
+ updateHrefLink(content) {
7855
+ this.hrefMarkdownLinkContent.next(content);
7856
+ }
7857
+ getHrefMarkdownLinkContent() {
7858
+ return this.hrefMarkdownLinkContent.asObservable();
7859
+ }
7860
+ callAngularRouter(hrefMarkdownLinkContent) {
7861
+ const urls = hrefMarkdownLinkContent.split('?');
7862
+ const queryParams = urls[1];
7863
+ const queryParamObj = {};
7864
+ if (queryParams) {
7865
+ const queryParam = queryParams.split('&');
7866
+ if (queryParam[0]) {
7867
+ // tslint:disable-next-line: prefer-for-of
7868
+ for (let i = 0; i < queryParam.length; i++) {
7869
+ const param = queryParam[i].split('=');
7870
+ queryParamObj[param[0]] = param[1];
7871
+ }
7872
+ }
7873
+ }
7874
+ this.router.navigate([urls[0]], {
7875
+ queryParams: queryParamObj && (Object.keys(queryParamObj).length) ? queryParamObj : ''
7876
+ });
7877
+ }
7878
+ }
7879
+ ConvertHrefToRouterService.ɵfac = function ConvertHrefToRouterService_Factory(t) { return new (t || ConvertHrefToRouterService)(i0.ɵɵinject(i1$1.Router)); };
7880
+ ConvertHrefToRouterService.ɵprov = i0.ɵɵdefineInjectable({ token: ConvertHrefToRouterService, factory: ConvertHrefToRouterService.ɵfac });
7881
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConvertHrefToRouterService, [{
7882
+ type: Injectable
7883
+ }], function () { return [{ type: i1$1.Router }]; }, null); })();
7884
+
7843
7885
  class WizardFactoryService {
7844
7886
  create(eventTrigger) {
7845
7887
  return new Wizard(eventTrigger.wizard_pages);
@@ -8015,20 +8057,6 @@ var EventCompletionPortalTypes;
8015
8057
  EventCompletionPortalTypes[EventCompletionPortalTypes["TaskReassigned"] = 1] = "TaskReassigned";
8016
8058
  })(EventCompletionPortalTypes || (EventCompletionPortalTypes = {}));
8017
8059
 
8018
- var EventCompletionStates;
8019
- (function (EventCompletionStates) {
8020
- EventCompletionStates["CheckTasksCanBeCompleted"] = "check-tasks-can-be-completed";
8021
- EventCompletionStates["CompleteEventAndTask"] = "complete-event-and-task";
8022
- EventCompletionStates["CancelEvent"] = "cancel-event";
8023
- EventCompletionStates["CompleteEventNotTask"] = "complete-event-not-task";
8024
- EventCompletionStates["TaskCompetedOrCancelled"] = "task-completed-or-cancelled";
8025
- EventCompletionStates["TaskAssignedToAnotherUser"] = "task-assigned-to-another-user";
8026
- EventCompletionStates["TaskReassignToUser"] = "task-reassign-to-user";
8027
- EventCompletionStates["TaskAssignToUser"] = "task-assign-to-user";
8028
- EventCompletionStates["TaskUnassigned"] = "task-unassigned";
8029
- EventCompletionStates["Final"] = "final";
8030
- })(EventCompletionStates || (EventCompletionStates = {}));
8031
-
8032
8060
  const EVENT_COMPLETION_STATE_MACHINE = 'EVENT COMPLETION STATE MACHINE';
8033
8061
  class EventCompletionStateMachineService {
8034
8062
  initialiseStateMachine(context) {
@@ -8252,8 +8280,9 @@ PageValidationService.ɵprov = i0.ɵɵdefineInjectable({ token: PageValidationSe
8252
8280
  }], function () { return [{ type: CaseFieldService }]; }, null); })();
8253
8281
 
8254
8282
  class CaseEditComponent {
8255
- constructor(fb, router, route, fieldsUtils, fieldsPurger, registrarService, wizardFactory, sessionStorageService, windowsService) {
8283
+ constructor(fb, caseNotifier, router, route, fieldsUtils, fieldsPurger, registrarService, wizardFactory, sessionStorageService, windowsService, formValueService, formErrorService) {
8256
8284
  this.fb = fb;
8285
+ this.caseNotifier = caseNotifier;
8257
8286
  this.router = router;
8258
8287
  this.route = route;
8259
8288
  this.fieldsUtils = fieldsUtils;
@@ -8262,14 +8291,22 @@ class CaseEditComponent {
8262
8291
  this.wizardFactory = wizardFactory;
8263
8292
  this.sessionStorageService = sessionStorageService;
8264
8293
  this.windowsService = windowsService;
8294
+ this.formValueService = formValueService;
8295
+ this.formErrorService = formErrorService;
8265
8296
  this.cancelled = new EventEmitter();
8266
8297
  this.submitted = new EventEmitter();
8298
+ this.isEventCompletionChecksRequired = false;
8299
+ this.isCaseFlagSubmission = false;
8300
+ this.ignoreWarning = false;
8301
+ this.isLinkedCasesSubmission = false;
8302
+ this.callbackErrorsSubject = new Subject();
8267
8303
  }
8268
8304
  ngOnInit() {
8269
8305
  this.wizard = this.wizardFactory.create(this.eventTrigger);
8270
8306
  this.initialUrl = this.sessionStorageService.getItem('eventUrl');
8271
8307
  this.isPageRefreshed = JSON.parse(this.sessionStorageService.getItem('isPageRefreshed'));
8272
8308
  this.checkPageRefresh();
8309
+ /* istanbul ignore else */
8273
8310
  if (this.router.url && !this.isPageRefreshed) {
8274
8311
  this.sessionStorageService.setItem('eventUrl', this.router.url);
8275
8312
  }
@@ -8285,6 +8322,12 @@ class CaseEditComponent {
8285
8322
  this.navigationOrigin = params[CaseEditComponent.ORIGIN_QUERY_PARAM];
8286
8323
  });
8287
8324
  }
8325
+ ngOnDestroy() {
8326
+ /* istanbul ignore else */
8327
+ if (this.callbackErrorsSubject) {
8328
+ this.callbackErrorsSubject.unsubscribe();
8329
+ }
8330
+ }
8288
8331
  checkPageRefresh() {
8289
8332
  if (this.isPageRefreshed && this.initialUrl) {
8290
8333
  this.sessionStorageService.removeItem('eventUrl');
@@ -8307,20 +8350,37 @@ class CaseEditComponent {
8307
8350
  }
8308
8351
  next(currentPageId) {
8309
8352
  this.initialUrl = this.sessionStorageService.getItem('eventUrl');
8353
+ /* istanbul ignore else */
8310
8354
  if (this.router.url && !this.initialUrl) {
8311
8355
  this.sessionStorageService.setItem('eventUrl', this.router.url);
8312
8356
  }
8313
8357
  this.fieldsPurger.clearHiddenFields(this.form, this.wizard, this.eventTrigger, currentPageId);
8358
+ const nextPage = this.getNextPage({
8359
+ currentPageId,
8360
+ wizard: this.wizard,
8361
+ eventTrigger: this.eventTrigger,
8362
+ form: this.form,
8363
+ });
8364
+ /* istanbul ignore else */
8365
+ if (!nextPage && !this.eventTrigger.show_summary) {
8366
+ this.submitForm({
8367
+ eventTrigger: this.eventTrigger,
8368
+ form: this.form,
8369
+ submit: this.submit,
8370
+ caseDetails: this.caseDetails,
8371
+ });
8372
+ return;
8373
+ }
8314
8374
  this.registrarService.reset();
8315
8375
  const theQueryParams = {};
8316
8376
  theQueryParams[CaseEditComponent.ORIGIN_QUERY_PARAM] = this.navigationOrigin;
8317
- const nextPage = this.wizard.nextPage(currentPageId, this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));
8318
8377
  return this.router.navigate([nextPage ? nextPage.id : 'submit'], { queryParams: theQueryParams, relativeTo: this.route });
8319
8378
  }
8320
8379
  previous(currentPageId) {
8321
8380
  this.fieldsPurger.clearHiddenFields(this.form, this.wizard, this.eventTrigger, currentPageId);
8322
8381
  this.registrarService.reset();
8323
8382
  const previousPage = this.wizard.previousPage(currentPageId, this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));
8383
+ /* istanbul ignore else */
8324
8384
  if (!previousPage) {
8325
8385
  return Promise.resolve(false);
8326
8386
  }
@@ -8334,14 +8394,231 @@ class CaseEditComponent {
8334
8394
  cancel() {
8335
8395
  this.cancelled.emit();
8336
8396
  }
8397
+ emitSubmitted(response) {
8398
+ this.submitted.emit({ caseId: response['id'], status: this.getStatus(response) });
8399
+ }
8400
+ getNextPage({ wizard, currentPageId, eventTrigger, form }) {
8401
+ return wizard.nextPage(currentPageId, this.fieldsUtils.buildCanShowPredicate(eventTrigger, form));
8402
+ }
8337
8403
  confirm(confirmation) {
8338
8404
  this.confirmation = confirmation;
8339
8405
  return this.router.navigate(['confirm'], { relativeTo: this.route });
8340
8406
  }
8407
+ submitForm({ eventTrigger, form, caseDetails, submit }) {
8408
+ this.isSubmitting = true;
8409
+ // We have to run the event completion checks if task in session storage
8410
+ // and if the task is in session storage, then is it associated to the case
8411
+ let taskInSessionStorage;
8412
+ const taskStr = this.sessionStorageService.getItem('taskToComplete');
8413
+ if (taskStr) {
8414
+ taskInSessionStorage = JSON.parse(taskStr);
8415
+ }
8416
+ if (taskInSessionStorage && taskInSessionStorage.case_id === this.getCaseId(caseDetails)) {
8417
+ // Show event completion component to perform event completion checks
8418
+ this.eventCompletionParams = ({
8419
+ caseId: this.getCaseId(caseDetails),
8420
+ eventId: this.getEventId(form),
8421
+ task: taskInSessionStorage
8422
+ });
8423
+ this.isEventCompletionChecksRequired = true;
8424
+ }
8425
+ else {
8426
+ // Task not in session storage, proceed to submit
8427
+ const caseEventData = this.generateCaseEventData({
8428
+ eventTrigger,
8429
+ form
8430
+ });
8431
+ this.caseSubmit({ form,
8432
+ caseEventData,
8433
+ submit });
8434
+ }
8435
+ }
8436
+ getCaseId(caseDetails) {
8437
+ return (caseDetails ? caseDetails.case_id : '');
8438
+ }
8439
+ getEventId(form) {
8440
+ return form.value.event.id;
8441
+ }
8442
+ generateCaseEventData({ eventTrigger, form }) {
8443
+ const caseEventData = {
8444
+ data: this.replaceEmptyComplexFieldValues(this.formValueService.sanitise(this.replaceHiddenFormValuesWithOriginalCaseData(form.get('data'), eventTrigger.case_fields))),
8445
+ event: form.value.event
8446
+ };
8447
+ this.formValueService.clearNonCaseFields(caseEventData.data, eventTrigger.case_fields);
8448
+ this.formValueService.removeNullLabels(caseEventData.data, eventTrigger.case_fields);
8449
+ this.formValueService.removeEmptyDocuments(caseEventData.data, eventTrigger.case_fields);
8450
+ // Remove collection fields that have "min" validation of greater than zero set on the FieldType but are empty;
8451
+ // these will fail validation
8452
+ this.formValueService.removeEmptyCollectionsWithMinValidation(caseEventData.data, eventTrigger.case_fields);
8453
+ // If this is a Case Flag submission (and thus a FlagLauncher field is present in the event trigger), the flag
8454
+ // details data needs populating for each Flags field, then the FlagLauncher field needs removing
8455
+ if (this.isCaseFlagSubmission) {
8456
+ this.formValueService.populateFlagDetailsFromCaseFields(caseEventData.data, eventTrigger.case_fields);
8457
+ this.formValueService.removeFlagLauncherField(caseEventData.data, eventTrigger.case_fields);
8458
+ }
8459
+ if (this.isLinkedCasesSubmission) {
8460
+ this.formValueService.populateLinkedCasesDetailsFromCaseFields(caseEventData.data, eventTrigger.case_fields);
8461
+ this.formValueService.removeComponentLauncherField(caseEventData.data, eventTrigger.case_fields);
8462
+ }
8463
+ caseEventData.event_token = eventTrigger.event_token;
8464
+ caseEventData.ignore_warning = this.ignoreWarning;
8465
+ if (this.confirmation) {
8466
+ caseEventData.data = {};
8467
+ }
8468
+ return caseEventData;
8469
+ }
8470
+ /**
8471
+ * Replaces non-array value objects with `null` for any Complex-type fields whose value is effectively empty, i.e.
8472
+ * all its sub-fields and descendants are `null` or `undefined`.
8473
+ *
8474
+ * @param data The object tree representing all the form field data
8475
+ * @returns The form field data modified accordingly
8476
+ */
8477
+ replaceEmptyComplexFieldValues(data) {
8478
+ Object.keys(data).forEach((key) => {
8479
+ if (!Array.isArray(data[key]) && typeof data[key] === 'object' && !FieldsUtils.containsNonEmptyValues(data[key])) {
8480
+ data[key] = null;
8481
+ }
8482
+ });
8483
+ return data;
8484
+ }
8485
+ /**
8486
+ * Traverse *all* values of a {@link FormGroup}, including those for disabled fields (i.e. hidden ones), replacing the
8487
+ * value of any that are hidden AND have `retain_hidden_value` set to `true` in the corresponding `CaseField`, with
8488
+ * the *original* value held in the `CaseField` object.
8489
+ *
8490
+ * This is as per design in EUI-3622, where any user-driven updates to hidden fields with `retain_hidden_value` =
8491
+ * `true` are ignored (thus retaining the value displayed originally).
8492
+ *
8493
+ * * For Complex field types, the replacement above is performed recursively for all hidden sub-fields with
8494
+ * `retain_hidden_value` = `true`.
8495
+ *
8496
+ * * For Collection field types, including collections of Complex and Document field types, the replacement is
8497
+ * performed for all fields in the collection.
8498
+ *
8499
+ * @param formGroup The `FormGroup` instance whose raw values are to be traversed
8500
+ * @param caseFields The array of {@link CaseField} domain model objects corresponding to fields in `formGroup`
8501
+ * @param parentField Reference to the parent `CaseField`. Used for retrieving the sub-field values of a Complex field
8502
+ * to perform recursive replacement - the sub-field `CaseField`s themselves do *not* contain any values
8503
+ * @returns An object with the *raw* form value data (as key-value pairs), with any value replacements as necessary
8504
+ */
8505
+ replaceHiddenFormValuesWithOriginalCaseData(formGroup, caseFields, parentField) {
8506
+ // Get the raw form value data, which includes the values of any disabled controls, as key-value pairs
8507
+ const rawFormValueData = formGroup.getRawValue();
8508
+ // Place all case fields in a lookup object, so they can be retrieved by id
8509
+ const caseFieldsLookup = {};
8510
+ for (let i = 0, len = caseFields.length; i < len; i++) {
8511
+ caseFieldsLookup[caseFields[i].id] = caseFields[i];
8512
+ }
8513
+ /**
8514
+ * Replace any form value with the original, where its CaseField is hidden AND has the retain_hidden_value flag set
8515
+ * to true.
8516
+ *
8517
+ * If the CaseField's `hidden` attribute is null or undefined, then check this attribute in the parent CaseField (if
8518
+ * one exists). This is occurring (and is possibly a bug) when a CaseField is a sub-field of a Complex type, or an
8519
+ * item in a Collection type.
8520
+ *
8521
+ * If the field is a Complex type with retain_hidden_value = true, perform a recursive replacement for all (hidden)
8522
+ * sub-fields with retain_hidden_value = true, using their original CaseField values (from the `formatted_value`
8523
+ * attribute).
8524
+ *
8525
+ * If the field is a Collection type with retain_hidden_value = true, the entire collection is replaced with the
8526
+ * original from `formatted_value`. This applies to *all* types of Collections.
8527
+ */
8528
+ /* istanbul ignore next */
8529
+ Object.keys(rawFormValueData).forEach((key) => {
8530
+ const caseField = caseFieldsLookup[key];
8531
+ // If caseField.hidden is NOT truthy and also NOT equal to false, then it must be null/undefined (remember that
8532
+ // both null and undefined are equal to *neither false nor true*)
8533
+ if (caseField && caseField.retain_hidden_value &&
8534
+ (caseField.hidden || (caseField.hidden !== false && parentField && parentField.hidden))) {
8535
+ if (caseField.field_type.type === 'Complex') {
8536
+ // Note: Deliberate use of equality (==) and non-equality (!=) operators for null checks throughout, to
8537
+ // handle both null and undefined values
8538
+ if (caseField.value != null) {
8539
+ // Call this function recursively to replace the Complex field's sub-fields as necessary, passing the
8540
+ // CaseField itself (the sub-fields do not contain any values, so these need to be obtained from the
8541
+ // parent)
8542
+ // Update rawFormValueData for this field
8543
+ // creating form group and adding control into it in case caseField is of complext type and and part of formGroup
8544
+ const form = new FormGroup({});
8545
+ if (formGroup.controls[key].value) {
8546
+ Object.keys(formGroup.controls[key].value).forEach((item) => {
8547
+ form.addControl(item, new FormControl(formGroup.controls[key].value[item]));
8548
+ });
8549
+ }
8550
+ rawFormValueData[key] = this.replaceHiddenFormValuesWithOriginalCaseData(form, caseField.field_type.complex_fields, caseField);
8551
+ }
8552
+ }
8553
+ else {
8554
+ // Default case also handles collections of *all* types; the entire collection in rawFormValueData will be
8555
+ // replaced with the original from formatted_value
8556
+ // Use the CaseField's existing *formatted_value* from the parent, if available. (This is necessary for
8557
+ // Complex fields, whose sub-fields do not hold any values in the model.) Otherwise, use formatted_value
8558
+ // from the CaseField itself.
8559
+ if (parentField && parentField.formatted_value) {
8560
+ rawFormValueData[key] = parentField.formatted_value[caseField.id];
8561
+ }
8562
+ else {
8563
+ rawFormValueData[key] = caseField.formatted_value;
8564
+ }
8565
+ }
8566
+ }
8567
+ });
8568
+ return rawFormValueData;
8569
+ }
8570
+ caseSubmit({ form, caseEventData, submit }) {
8571
+ submit(caseEventData)
8572
+ .subscribe(response => {
8573
+ this.caseNotifier.cachedCaseView = null;
8574
+ this.sessionStorageService.removeItem('eventUrl');
8575
+ const confirmation = this.buildConfirmation(response);
8576
+ if (confirmation && (confirmation.getHeader() || confirmation.getBody())) {
8577
+ this.confirm(confirmation);
8578
+ }
8579
+ else {
8580
+ this.emitSubmitted(response);
8581
+ }
8582
+ }, error => {
8583
+ this.error = error;
8584
+ this.callbackErrorsSubject.next(error);
8585
+ /* istanbul ignore else */
8586
+ if (this.error.details) {
8587
+ this.formErrorService
8588
+ .mapFieldErrors(this.error.details.field_errors, form.controls['data'], 'validation');
8589
+ }
8590
+ this.isSubmitting = false;
8591
+ });
8592
+ }
8593
+ buildConfirmation(response) {
8594
+ if (response['after_submit_callback_response']) {
8595
+ return new Confirmation(response['id'], response['callback_response_status'], response['after_submit_callback_response']['confirmation_header'], response['after_submit_callback_response']['confirmation_body']);
8596
+ }
8597
+ else {
8598
+ return null;
8599
+ }
8600
+ }
8601
+ onEventCanBeCompleted({ eventTrigger, eventCanBeCompleted, caseDetails, form, submit }) {
8602
+ if (eventCanBeCompleted) {
8603
+ // Submit
8604
+ const caseEventData = this.generateCaseEventData({ eventTrigger, form });
8605
+ this.caseSubmit({ form, caseEventData, submit });
8606
+ }
8607
+ else {
8608
+ // Navigate to tasks tab on case details page
8609
+ this.router.navigate([`/cases/case-details/${this.getCaseId(caseDetails)}/tasks`], { relativeTo: this.route });
8610
+ }
8611
+ }
8612
+ getStatus(response) {
8613
+ return this.hasCallbackFailed(response) ? response['callback_response_status'] : response['delete_draft_response_status'];
8614
+ }
8615
+ hasCallbackFailed(response) {
8616
+ return response['callback_response_status'] !== 'CALLBACK_COMPLETED';
8617
+ }
8341
8618
  }
8342
8619
  CaseEditComponent.ORIGIN_QUERY_PARAM = 'origin';
8343
8620
  CaseEditComponent.ALERT_MESSAGE = 'Page is being refreshed so you will be redirected to the first page of this event.';
8344
- CaseEditComponent.ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(FieldsPurger), i0.ɵɵdirectiveInject(ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(WizardFactoryService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(WindowService)); };
8621
+ CaseEditComponent.ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(FieldsPurger), i0.ɵɵdirectiveInject(ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(WizardFactoryService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService)); };
8345
8622
  CaseEditComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService])], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
8346
8623
  i0.ɵɵelement(0, "router-outlet");
8347
8624
  } }, directives: [i1$1.RouterOutlet], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
@@ -8353,7 +8630,7 @@ CaseEditComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditComponent, sele
8353
8630
  styleUrls: ['../case-edit.scss'],
8354
8631
  providers: [GreyBarService]
8355
8632
  }]
8356
- }], function () { return [{ type: i2.FormBuilder }, { type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: FieldsUtils }, { type: FieldsPurger }, { type: ConditionalShowRegistrarService }, { type: WizardFactoryService }, { type: SessionStorageService }, { type: WindowService }]; }, { eventTrigger: [{
8633
+ }], function () { return [{ type: i2.FormBuilder }, { type: CaseNotifier }, { type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: FieldsUtils }, { type: FieldsPurger }, { type: ConditionalShowRegistrarService }, { type: WizardFactoryService }, { type: SessionStorageService }, { type: WindowService }, { type: FormValueService }, { type: FormErrorService }]; }, { eventTrigger: [{
8357
8634
  type: Input
8358
8635
  }], submit: [{
8359
8636
  type: Input
@@ -8424,7 +8701,6 @@ class CaseEditConfirmComponent {
8424
8701
  this.caseFields = this.getCaseFields();
8425
8702
  if (this.caseEdit.confirmation) {
8426
8703
  this.confirmation = this.caseEdit.confirmation;
8427
- this.caseId = this.caseEdit.confirmation.getCaseId();
8428
8704
  }
8429
8705
  else {
8430
8706
  this.router.navigate(['/']);
@@ -8434,7 +8710,8 @@ class CaseEditConfirmComponent {
8434
8710
  this.caseEdit.submitted.emit({ caseId: this.confirmation.getCaseId(), status: this.confirmation.getStatus() });
8435
8711
  }
8436
8712
  getCaseId() {
8437
- return (this.caseEdit.caseDetails ? this.caseEdit.caseDetails.case_id : '');
8713
+ var _a, _b;
8714
+ return ((_b = (_a = this.caseEdit) === null || _a === void 0 ? void 0 : _a.caseDetails) === null || _b === void 0 ? void 0 : _b.case_id) || '';
8438
8715
  }
8439
8716
  getCaseTitle() {
8440
8717
  return (this.caseEdit.caseDetails && this.caseEdit.caseDetails.state &&
@@ -8759,33 +9036,33 @@ function CaseEditPageComponent_ccd_loading_spinner_0_Template(rf, ctx) { if (rf
8759
9036
  i0.ɵɵelement(0, "ccd-loading-spinner");
8760
9037
  } }
8761
9038
  function CaseEditPageComponent_ng_container_1_h1_1_Template(rf, ctx) { if (rf & 1) {
8762
- i0.ɵɵelementStart(0, "h1", 10);
9039
+ i0.ɵɵelementStart(0, "h1", 11);
8763
9040
  i0.ɵɵtext(1);
8764
9041
  i0.ɵɵelementEnd();
8765
9042
  } if (rf & 2) {
8766
- const ctx_r11 = i0.ɵɵnextContext(2);
9043
+ const ctx_r10 = i0.ɵɵnextContext(2);
8767
9044
  i0.ɵɵadvance(1);
8768
- i0.ɵɵtextInterpolate(ctx_r11.eventTrigger.name);
9045
+ i0.ɵɵtextInterpolate(ctx_r10.eventTrigger.name);
8769
9046
  } }
8770
9047
  function CaseEditPageComponent_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
8771
9048
  i0.ɵɵelementContainerStart(0);
8772
- i0.ɵɵelementStart(1, "span", 11);
9049
+ i0.ɵɵelementStart(1, "span", 12);
8773
9050
  i0.ɵɵtext(2);
8774
9051
  i0.ɵɵelementEnd();
8775
- i0.ɵɵelementStart(3, "h1", 10);
9052
+ i0.ɵɵelementStart(3, "h1", 11);
8776
9053
  i0.ɵɵtext(4);
8777
9054
  i0.ɵɵelementEnd();
8778
9055
  i0.ɵɵelementContainerEnd();
8779
9056
  } if (rf & 2) {
8780
- const ctx_r12 = i0.ɵɵnextContext(2);
9057
+ const ctx_r11 = i0.ɵɵnextContext(2);
8781
9058
  i0.ɵɵadvance(2);
8782
- i0.ɵɵtextInterpolate(ctx_r12.eventTrigger.name);
9059
+ i0.ɵɵtextInterpolate(ctx_r11.eventTrigger.name);
8783
9060
  i0.ɵɵadvance(2);
8784
- i0.ɵɵtextInterpolate(ctx_r12.currentPage.label);
9061
+ i0.ɵɵtextInterpolate(ctx_r11.currentPage.label);
8785
9062
  } }
8786
9063
  function CaseEditPageComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
8787
9064
  i0.ɵɵelementContainerStart(0);
8788
- i0.ɵɵtemplate(1, CaseEditPageComponent_ng_container_1_h1_1_Template, 2, 1, "h1", 9);
9065
+ i0.ɵɵtemplate(1, CaseEditPageComponent_ng_container_1_h1_1_Template, 2, 1, "h1", 10);
8789
9066
  i0.ɵɵtemplate(2, CaseEditPageComponent_ng_container_1_ng_container_2_Template, 5, 2, "ng-container", 0);
8790
9067
  i0.ɵɵelementContainerEnd();
8791
9068
  } if (rf & 2) {
@@ -8799,176 +9076,132 @@ function CaseEditPageComponent_div_2_Template(rf, ctx) { if (rf & 1) {
8799
9076
  i0.ɵɵelement(0, "div");
8800
9077
  } }
8801
9078
  function CaseEditPageComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
8802
- i0.ɵɵelement(0, "ccd-markdown", 12);
9079
+ i0.ɵɵelement(0, "ccd-markdown", 13);
8803
9080
  i0.ɵɵpipe(1, "ccdCaseTitle");
8804
9081
  } if (rf & 2) {
8805
9082
  const ctx_r4 = i0.ɵɵnextContext();
8806
9083
  i0.ɵɵproperty("content", i0.ɵɵpipeBind3(1, 1, ctx_r4.getCaseTitle(), ctx_r4.caseFields, ctx_r4.editForm.controls["data"]));
8807
9084
  } }
8808
9085
  function CaseEditPageComponent_ng_template_5_h2_0_Template(rf, ctx) { if (rf & 1) {
8809
- i0.ɵɵelementStart(0, "h2", 14);
9086
+ i0.ɵɵelementStart(0, "h2", 15);
8810
9087
  i0.ɵɵtext(1);
8811
9088
  i0.ɵɵpipe(2, "ccdCaseReference");
8812
9089
  i0.ɵɵelementEnd();
8813
9090
  } if (rf & 2) {
8814
- const ctx_r13 = i0.ɵɵnextContext(2);
9091
+ const ctx_r12 = i0.ɵɵnextContext(2);
8815
9092
  i0.ɵɵadvance(1);
8816
- i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r13.getCaseId()), "");
9093
+ i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r12.getCaseId()), "");
8817
9094
  } }
8818
9095
  function CaseEditPageComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
8819
- i0.ɵɵtemplate(0, CaseEditPageComponent_ng_template_5_h2_0_Template, 3, 3, "h2", 13);
9096
+ i0.ɵɵtemplate(0, CaseEditPageComponent_ng_template_5_h2_0_Template, 3, 3, "h2", 14);
8820
9097
  } if (rf & 2) {
8821
9098
  const ctx_r6 = i0.ɵɵnextContext();
8822
9099
  i0.ɵɵproperty("ngIf", ctx_r6.getCaseId());
8823
9100
  } }
8824
9101
  function CaseEditPageComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {
8825
- const _r17 = i0.ɵɵgetCurrentView();
8826
- i0.ɵɵelementStart(0, "div", 18);
8827
- i0.ɵɵelementStart(1, "ul", 19);
9102
+ const _r16 = i0.ɵɵgetCurrentView();
9103
+ i0.ɵɵelementStart(0, "div", 19);
9104
+ i0.ɵɵelementStart(1, "ul", 20);
8828
9105
  i0.ɵɵelementStart(2, "li");
8829
- i0.ɵɵelementStart(3, "a", 20);
8830
- i0.ɵɵlistener("click", function CaseEditPageComponent_div_7_div_3_Template_a_click_3_listener() { i0.ɵɵrestoreView(_r17); const validationError_r15 = ctx.$implicit; const ctx_r16 = i0.ɵɵnextContext(2); return ctx_r16.navigateToErrorElement(validationError_r15.id); });
9106
+ i0.ɵɵelementStart(3, "a", 21);
9107
+ i0.ɵɵlistener("click", function CaseEditPageComponent_div_7_div_3_Template_a_click_3_listener() { i0.ɵɵrestoreView(_r16); const validationError_r14 = ctx.$implicit; const ctx_r15 = i0.ɵɵnextContext(2); return ctx_r15.navigateToErrorElement(validationError_r14.id); });
8831
9108
  i0.ɵɵtext(4);
8832
9109
  i0.ɵɵelementEnd();
8833
9110
  i0.ɵɵelementEnd();
8834
9111
  i0.ɵɵelementEnd();
8835
9112
  i0.ɵɵelementEnd();
8836
9113
  } if (rf & 2) {
8837
- const validationError_r15 = ctx.$implicit;
9114
+ const validationError_r14 = ctx.$implicit;
8838
9115
  i0.ɵɵadvance(4);
8839
- i0.ɵɵtextInterpolate(validationError_r15.message);
9116
+ i0.ɵɵtextInterpolate(validationError_r14.message);
8840
9117
  } }
8841
9118
  function CaseEditPageComponent_div_7_Template(rf, ctx) { if (rf & 1) {
8842
- i0.ɵɵelementStart(0, "div", 15);
8843
- i0.ɵɵelementStart(1, "h2", 16);
9119
+ i0.ɵɵelementStart(0, "div", 16);
9120
+ i0.ɵɵelementStart(1, "h2", 17);
8844
9121
  i0.ɵɵtext(2, " There is a problem ");
8845
9122
  i0.ɵɵelementEnd();
8846
- i0.ɵɵtemplate(3, CaseEditPageComponent_div_7_div_3_Template, 5, 1, "div", 17);
9123
+ i0.ɵɵtemplate(3, CaseEditPageComponent_div_7_div_3_Template, 5, 1, "div", 18);
8847
9124
  i0.ɵɵelementEnd();
8848
9125
  } if (rf & 2) {
8849
9126
  const ctx_r7 = i0.ɵɵnextContext();
8850
9127
  i0.ɵɵadvance(3);
8851
9128
  i0.ɵɵproperty("ngForOf", ctx_r7.validationErrors);
8852
9129
  } }
8853
- function CaseEditPageComponent_div_8_Template(rf, ctx) { if (rf & 1) {
8854
- i0.ɵɵelementStart(0, "div", 21);
8855
- i0.ɵɵelementStart(1, "h1", 22);
8856
- i0.ɵɵtext(2, " Something went wrong ");
8857
- i0.ɵɵelementEnd();
8858
- i0.ɵɵelementStart(3, "div", 23);
8859
- i0.ɵɵelementStart(4, "p");
8860
- i0.ɵɵtext(5, "We're working to fix the problem. Try again shortly.");
8861
- i0.ɵɵelementEnd();
8862
- i0.ɵɵelementStart(6, "p");
8863
- i0.ɵɵelementStart(7, "a", 24);
8864
- i0.ɵɵtext(8, "Contact us");
8865
- i0.ɵɵelementEnd();
8866
- i0.ɵɵtext(9, " if you're still having problems.");
8867
- i0.ɵɵelementEnd();
8868
- i0.ɵɵelementEnd();
8869
- i0.ɵɵelementEnd();
8870
- } }
8871
- function CaseEditPageComponent_div_9_ul_5_li_1_Template(rf, ctx) { if (rf & 1) {
8872
- i0.ɵɵelementStart(0, "li", 29);
8873
- i0.ɵɵtext(1);
8874
- i0.ɵɵelementEnd();
8875
- } if (rf & 2) {
8876
- const fieldError_r20 = ctx.$implicit;
8877
- i0.ɵɵadvance(1);
8878
- i0.ɵɵtextInterpolate(fieldError_r20.message);
8879
- } }
8880
- function CaseEditPageComponent_div_9_ul_5_Template(rf, ctx) { if (rf & 1) {
8881
- i0.ɵɵelementStart(0, "ul", 27);
8882
- i0.ɵɵtemplate(1, CaseEditPageComponent_div_9_ul_5_li_1_Template, 2, 1, "li", 28);
8883
- i0.ɵɵelementEnd();
8884
- } if (rf & 2) {
8885
- const ctx_r18 = i0.ɵɵnextContext(2);
8886
- i0.ɵɵadvance(1);
8887
- i0.ɵɵproperty("ngForOf", ctx_r18.error.details.field_errors);
8888
- } }
8889
- function CaseEditPageComponent_div_9_Template(rf, ctx) { if (rf & 1) {
8890
- i0.ɵɵelementStart(0, "div", 21);
8891
- i0.ɵɵelementStart(1, "h3", 25);
8892
- i0.ɵɵtext(2, " The event could not be created ");
8893
- i0.ɵɵelementEnd();
8894
- i0.ɵɵelementStart(3, "p");
8895
- i0.ɵɵtext(4);
8896
- i0.ɵɵelementEnd();
8897
- i0.ɵɵtemplate(5, CaseEditPageComponent_div_9_ul_5_Template, 2, 1, "ul", 26);
8898
- i0.ɵɵelementEnd();
8899
- } if (rf & 2) {
8900
- const ctx_r9 = i0.ɵɵnextContext();
8901
- i0.ɵɵadvance(4);
8902
- i0.ɵɵtextInterpolate(ctx_r9.error.message);
8903
- i0.ɵɵadvance(1);
8904
- i0.ɵɵproperty("ngIf", ctx_r9.error.details == null ? null : ctx_r9.error.details.field_errors);
8905
- } }
8906
- function CaseEditPageComponent_form_12_ccd_case_edit_form_3_Template(rf, ctx) { if (rf & 1) {
8907
- const _r24 = i0.ɵɵgetCurrentView();
8908
- i0.ɵɵelementStart(0, "ccd-case-edit-form", 40);
8909
- i0.ɵɵlistener("valuesChanged", function CaseEditPageComponent_form_12_ccd_case_edit_form_3_Template_ccd_case_edit_form_valuesChanged_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(2); return ctx_r23.applyValuesChanged($event); });
9130
+ function CaseEditPageComponent_form_11_ccd_case_edit_form_3_Template(rf, ctx) { if (rf & 1) {
9131
+ const _r20 = i0.ɵɵgetCurrentView();
9132
+ i0.ɵɵelementStart(0, "ccd-case-edit-form", 32);
9133
+ i0.ɵɵlistener("valuesChanged", function CaseEditPageComponent_form_11_ccd_case_edit_form_3_Template_ccd_case_edit_form_valuesChanged_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(2); return ctx_r19.applyValuesChanged($event); });
8910
9134
  i0.ɵɵelementEnd();
8911
9135
  } if (rf & 2) {
8912
- const ctx_r21 = i0.ɵɵnextContext(2);
8913
- i0.ɵɵproperty("fields", ctx_r21.currentPage.getCol1Fields())("formGroup", ctx_r21.editForm.controls["data"])("caseFields", ctx_r21.caseFields)("pageChangeSubject", ctx_r21.pageChangeSubject);
9136
+ const ctx_r17 = i0.ɵɵnextContext(2);
9137
+ i0.ɵɵproperty("fields", ctx_r17.currentPage.getCol1Fields())("formGroup", ctx_r17.editForm.controls["data"])("caseFields", ctx_r17.caseFields)("pageChangeSubject", ctx_r17.pageChangeSubject);
8914
9138
  } }
8915
- function CaseEditPageComponent_form_12_div_4_Template(rf, ctx) { if (rf & 1) {
8916
- i0.ɵɵelementStart(0, "div", 41);
8917
- i0.ɵɵelementStart(1, "div", 42);
8918
- i0.ɵɵelement(2, "ccd-case-edit-form", 43);
9139
+ function CaseEditPageComponent_form_11_div_4_Template(rf, ctx) { if (rf & 1) {
9140
+ i0.ɵɵelementStart(0, "div", 33);
9141
+ i0.ɵɵelementStart(1, "div", 34);
9142
+ i0.ɵɵelement(2, "ccd-case-edit-form", 35);
8919
9143
  i0.ɵɵelementEnd();
8920
- i0.ɵɵelementStart(3, "div", 44);
8921
- i0.ɵɵelement(4, "ccd-case-edit-form", 45);
9144
+ i0.ɵɵelementStart(3, "div", 36);
9145
+ i0.ɵɵelement(4, "ccd-case-edit-form", 37);
8922
9146
  i0.ɵɵelementEnd();
8923
9147
  i0.ɵɵelementEnd();
8924
9148
  } if (rf & 2) {
8925
- const ctx_r22 = i0.ɵɵnextContext(2);
9149
+ const ctx_r18 = i0.ɵɵnextContext(2);
8926
9150
  i0.ɵɵadvance(2);
8927
- i0.ɵɵproperty("fields", ctx_r22.currentPage.getCol1Fields())("formGroup", ctx_r22.editForm.controls["data"])("caseFields", ctx_r22.caseFields);
9151
+ i0.ɵɵproperty("fields", ctx_r18.currentPage.getCol1Fields())("formGroup", ctx_r18.editForm.controls["data"])("caseFields", ctx_r18.caseFields);
8928
9152
  i0.ɵɵadvance(2);
8929
- i0.ɵɵproperty("fields", ctx_r22.currentPage.getCol2Fields())("formGroup", ctx_r22.editForm.controls["data"])("caseFields", ctx_r22.caseFields);
9153
+ i0.ɵɵproperty("fields", ctx_r18.currentPage.getCol2Fields())("formGroup", ctx_r18.editForm.controls["data"])("caseFields", ctx_r18.caseFields);
8930
9154
  } }
8931
- function CaseEditPageComponent_form_12_Template(rf, ctx) { if (rf & 1) {
8932
- const _r26 = i0.ɵɵgetCurrentView();
8933
- i0.ɵɵelementStart(0, "form", 30);
8934
- i0.ɵɵlistener("submit", function CaseEditPageComponent_form_12_Template_form_submit_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(); return ctx_r25.submit(); });
8935
- i0.ɵɵelementStart(1, "fieldset", 31);
8936
- i0.ɵɵelement(2, "legend", 32);
8937
- i0.ɵɵtemplate(3, CaseEditPageComponent_form_12_ccd_case_edit_form_3_Template, 1, 4, "ccd-case-edit-form", 33);
8938
- i0.ɵɵtemplate(4, CaseEditPageComponent_form_12_div_4_Template, 5, 6, "div", 34);
8939
- i0.ɵɵelementEnd();
8940
- i0.ɵɵelementStart(5, "div", 35);
8941
- i0.ɵɵelementStart(6, "button", 36);
8942
- i0.ɵɵlistener("click", function CaseEditPageComponent_form_12_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(); return ctx_r27.toPreviousPage(); });
9155
+ function CaseEditPageComponent_form_11_Template(rf, ctx) { if (rf & 1) {
9156
+ const _r22 = i0.ɵɵgetCurrentView();
9157
+ i0.ɵɵelementStart(0, "form", 22);
9158
+ i0.ɵɵlistener("submit", function CaseEditPageComponent_form_11_Template_form_submit_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(); return ctx_r21.submit(); });
9159
+ i0.ɵɵelementStart(1, "fieldset", 23);
9160
+ i0.ɵɵelement(2, "legend", 24);
9161
+ i0.ɵɵtemplate(3, CaseEditPageComponent_form_11_ccd_case_edit_form_3_Template, 1, 4, "ccd-case-edit-form", 25);
9162
+ i0.ɵɵtemplate(4, CaseEditPageComponent_form_11_div_4_Template, 5, 6, "div", 26);
9163
+ i0.ɵɵelementEnd();
9164
+ i0.ɵɵelementStart(5, "div", 27);
9165
+ i0.ɵɵelementStart(6, "button", 28);
9166
+ i0.ɵɵlistener("click", function CaseEditPageComponent_form_11_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r22); const ctx_r23 = i0.ɵɵnextContext(); return ctx_r23.toPreviousPage(); });
8943
9167
  i0.ɵɵpipe(7, "async");
8944
9168
  i0.ɵɵtext(8, " Previous ");
8945
9169
  i0.ɵɵelementEnd();
8946
- i0.ɵɵelementStart(9, "button", 37);
9170
+ i0.ɵɵelementStart(9, "button", 29);
8947
9171
  i0.ɵɵtext(10);
8948
9172
  i0.ɵɵelementEnd();
8949
9173
  i0.ɵɵelementEnd();
8950
- i0.ɵɵelementStart(11, "p", 38);
8951
- i0.ɵɵelementStart(12, "a", 39);
8952
- i0.ɵɵlistener("click", function CaseEditPageComponent_form_12_Template_a_click_12_listener() { i0.ɵɵrestoreView(_r26); const ctx_r28 = i0.ɵɵnextContext(); return ctx_r28.cancel(); });
9174
+ i0.ɵɵelementStart(11, "p", 30);
9175
+ i0.ɵɵelementStart(12, "a", 31);
9176
+ i0.ɵɵlistener("click", function CaseEditPageComponent_form_11_Template_a_click_12_listener() { i0.ɵɵrestoreView(_r22); const ctx_r24 = i0.ɵɵnextContext(); return ctx_r24.cancel(); });
8953
9177
  i0.ɵɵtext(13);
8954
9178
  i0.ɵɵelementEnd();
8955
9179
  i0.ɵɵelementEnd();
8956
9180
  i0.ɵɵelementEnd();
8957
9181
  } if (rf & 2) {
8958
- const ctx_r10 = i0.ɵɵnextContext();
8959
- i0.ɵɵproperty("formGroup", ctx_r10.editForm);
9182
+ const ctx_r8 = i0.ɵɵnextContext();
9183
+ i0.ɵɵproperty("formGroup", ctx_r8.editForm);
8960
9184
  i0.ɵɵadvance(3);
8961
- i0.ɵɵproperty("ngIf", !ctx_r10.currentPage.isMultiColumn());
9185
+ i0.ɵɵproperty("ngIf", !ctx_r8.currentPage.isMultiColumn());
8962
9186
  i0.ɵɵadvance(1);
8963
- i0.ɵɵproperty("ngIf", ctx_r10.currentPage.isMultiColumn());
9187
+ i0.ɵɵproperty("ngIf", ctx_r8.currentPage.isMultiColumn());
8964
9188
  i0.ɵɵadvance(2);
8965
- i0.ɵɵproperty("disabled", !i0.ɵɵpipeBind1(7, 7, ctx_r10.hasPreviousPage$));
9189
+ i0.ɵɵproperty("disabled", !i0.ɵɵpipeBind1(7, 7, ctx_r8.hasPreviousPage$));
8966
9190
  i0.ɵɵadvance(3);
8967
- i0.ɵɵproperty("disabled", ctx_r10.submitting());
9191
+ i0.ɵɵproperty("disabled", ctx_r8.submitting());
8968
9192
  i0.ɵɵadvance(1);
8969
- i0.ɵɵtextInterpolate(ctx_r10.triggerText);
9193
+ i0.ɵɵtextInterpolate(ctx_r8.triggerText);
8970
9194
  i0.ɵɵadvance(3);
8971
- i0.ɵɵtextInterpolate(ctx_r10.getCancelText());
9195
+ i0.ɵɵtextInterpolate(ctx_r8.getCancelText());
9196
+ } }
9197
+ function CaseEditPageComponent_ccd_case_event_completion_12_Template(rf, ctx) { if (rf & 1) {
9198
+ const _r26 = i0.ɵɵgetCurrentView();
9199
+ i0.ɵɵelementStart(0, "ccd-case-event-completion", 38);
9200
+ i0.ɵɵlistener("eventCanBeCompleted", function CaseEditPageComponent_ccd_case_event_completion_12_Template_ccd_case_event_completion_eventCanBeCompleted_0_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(); return ctx_r25.onEventCanBeCompleted($event); });
9201
+ i0.ɵɵelementEnd();
9202
+ } if (rf & 2) {
9203
+ const ctx_r9 = i0.ɵɵnextContext();
9204
+ i0.ɵɵproperty("eventCompletionParams", ctx_r9.caseEdit.eventCompletionParams);
8972
9205
  } }
8973
9206
  class CaseEditPageComponent {
8974
9207
  constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService) {
@@ -8981,15 +9214,13 @@ class CaseEditPageComponent {
8981
9214
  this.dialog = dialog;
8982
9215
  this.caseFieldService = caseFieldService;
8983
9216
  this.caseEditDataService = caseEditDataService;
8984
- this.callbackErrorsSubject = new Subject();
8985
- this.ignoreWarning = false;
8986
9217
  this.triggerTextStart = CaseEditPageComponent.TRIGGER_TEXT_START;
8987
9218
  this.triggerTextIgnoreWarnings = CaseEditPageComponent.TRIGGER_TEXT_CONTINUE;
8988
- this.isSubmitting = false;
8989
9219
  this.formValuesChanged = false;
8990
9220
  this.pageChangeSubject = new Subject();
8991
9221
  this.validationErrors = [];
8992
9222
  this.hasPreviousPage$ = new BehaviorSubject(false);
9223
+ this.callbackErrorsSubject = new Subject();
8993
9224
  }
8994
9225
  static scrollToTop() {
8995
9226
  window.scrollTo(0, 0);
@@ -9006,12 +9237,13 @@ class CaseEditPageComponent {
9006
9237
  this.editForm = this.caseEdit.form;
9007
9238
  this.wizard = this.caseEdit.wizard;
9008
9239
  this.caseFields = this.getCaseFields();
9009
- this.triggerText = this.getTriggerText();
9010
9240
  this.syncCaseEditDataService();
9011
9241
  this.route.params
9012
9242
  .subscribe(params => {
9243
+ var _a, _b;
9013
9244
  const pageId = params['page'];
9014
- if (!this.currentPage || pageId !== this.currentPage.id) {
9245
+ /* istanbul ignore else */
9246
+ if (!this.currentPage || pageId !== ((_a = this.currentPage) === null || _a === void 0 ? void 0 : _a.id)) {
9015
9247
  const page = this.caseEdit.getPage(pageId);
9016
9248
  if (page) {
9017
9249
  this.currentPage = page;
@@ -9024,7 +9256,7 @@ class CaseEditPageComponent {
9024
9256
  return this.first();
9025
9257
  }
9026
9258
  }
9027
- this.hasPreviousPage$.next(this.caseEdit.hasPrevious(this.currentPage.id));
9259
+ this.hasPreviousPage$.next(this.caseEdit.hasPrevious((_b = this.currentPage) === null || _b === void 0 ? void 0 : _b.id));
9028
9260
  }
9029
9261
  });
9030
9262
  CaseEditPageComponent.setFocusToTop();
@@ -9039,6 +9271,7 @@ class CaseEditPageComponent {
9039
9271
  }
9040
9272
  }
9041
9273
  });
9274
+ this.triggerText = this.getTriggerText();
9042
9275
  }
9043
9276
  ngAfterViewChecked() {
9044
9277
  this.cdRef.detectChanges();
@@ -9137,8 +9370,10 @@ class CaseEditPageComponent {
9137
9370
  CaseEditPageComponent.scrollToTop();
9138
9371
  }
9139
9372
  navigateToErrorElement(elementId) {
9373
+ /* istanbul ignore else */
9140
9374
  if (elementId) {
9141
9375
  const htmlElement = document.getElementById(elementId);
9376
+ /* istanbul ignore else */
9142
9377
  if (htmlElement) {
9143
9378
  htmlElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
9144
9379
  htmlElement.focus();
@@ -9150,18 +9385,18 @@ class CaseEditPageComponent {
9150
9385
  if (this.currentPageIsNotValid()) {
9151
9386
  this.generateErrorMessage(this.currentPage.case_fields);
9152
9387
  }
9153
- if (!this.isSubmitting && !this.currentPageIsNotValid()) {
9154
- this.isSubmitting = true;
9155
- this.error = null;
9388
+ if (!this.caseEdit.isSubmitting && !this.currentPageIsNotValid()) {
9389
+ this.caseEdit.isSubmitting = true;
9390
+ this.caseEdit.error = null;
9156
9391
  const caseEventData = this.buildCaseEventData();
9157
9392
  this.showSpinner = true;
9158
9393
  this.caseEdit.validate(caseEventData, this.currentPage.id)
9159
9394
  .subscribe((jsonData) => {
9395
+ /* istanbul ignore else */
9160
9396
  if (jsonData) {
9161
9397
  this.updateFormData(jsonData);
9162
9398
  }
9163
9399
  this.saveDraft();
9164
- this.showSpinner = false;
9165
9400
  this.next();
9166
9401
  }, error => {
9167
9402
  this.showSpinner = false;
@@ -9173,6 +9408,7 @@ class CaseEditPageComponent {
9173
9408
  }
9174
9409
  updateFormData(jsonData) {
9175
9410
  for (const caseFieldId of Object.keys(jsonData.data)) {
9411
+ /* istanbul ignore else */
9176
9412
  if (this.pageWithFieldExists(caseFieldId)) {
9177
9413
  this.updateEventTriggerCaseFields(caseFieldId, jsonData, this.caseEdit.eventTrigger);
9178
9414
  this.updateFormControlsValue(this.editForm, caseFieldId, jsonData.data[caseFieldId]);
@@ -9184,12 +9420,33 @@ class CaseEditPageComponent {
9184
9420
  return this.wizard.findWizardPage(caseFieldId);
9185
9421
  }
9186
9422
  updateEventTriggerCaseFields(caseFieldId, jsonData, eventTrigger) {
9187
- if (eventTrigger.case_fields) {
9423
+ /* istanbul ignore else */
9424
+ if (eventTrigger === null || eventTrigger === void 0 ? void 0 : eventTrigger.case_fields) {
9188
9425
  eventTrigger.case_fields
9189
9426
  .filter(element => element.id === caseFieldId)
9190
- .forEach(element => element.value = jsonData.data[caseFieldId]);
9427
+ .forEach(element => {
9428
+ if (this.isAnObject(element.value)) {
9429
+ const updatedJsonDataObject = this.updateJsonDataObject(caseFieldId, jsonData, element);
9430
+ element.value = Object.assign(Object.assign({}, element.value), updatedJsonDataObject);
9431
+ }
9432
+ else {
9433
+ element.value = jsonData.data[caseFieldId];
9434
+ }
9435
+ });
9191
9436
  }
9192
9437
  }
9438
+ updateJsonDataObject(caseFieldId, jsonData, element) {
9439
+ return Object.keys(jsonData.data[caseFieldId]).reduce((acc, key) => {
9440
+ const elementValue = element.value[key];
9441
+ const jsonDataValue = jsonData.data[caseFieldId][key];
9442
+ const hasElementGotValueProperty = this.isAnObject(elementValue) && elementValue.value !== undefined;
9443
+ const jsonDataOrElementValue = (jsonDataValue === null || jsonDataValue === void 0 ? void 0 : jsonDataValue.value) !== null && (jsonDataValue === null || jsonDataValue === void 0 ? void 0 : jsonDataValue.value) !== undefined ? jsonDataValue : elementValue;
9444
+ return Object.assign(Object.assign({}, acc), { [`${key}`]: hasElementGotValueProperty ? jsonDataOrElementValue : jsonDataValue });
9445
+ }, {});
9446
+ }
9447
+ isAnObject(property) {
9448
+ return typeof property === 'object' && !Array.isArray(property) && property !== null;
9449
+ }
9193
9450
  updateFormControlsValue(formGroup, caseFieldId, value) {
9194
9451
  const theControl = formGroup.controls['data'].get(caseFieldId);
9195
9452
  if (theControl && theControl['status'] !== 'DISABLED') {
@@ -9205,12 +9462,15 @@ class CaseEditPageComponent {
9205
9462
  }
9206
9463
  }
9207
9464
  callbackErrorsNotify(errorContext) {
9208
- this.ignoreWarning = errorContext.ignore_warning;
9465
+ this.caseEdit.ignoreWarning = errorContext.ignore_warning;
9209
9466
  this.triggerText = errorContext.trigger_text;
9210
9467
  }
9211
9468
  next() {
9469
+ if (this.canNavigateToSummaryPage()) {
9470
+ this.showSpinner = false;
9471
+ this.caseEdit.isSubmitting = false;
9472
+ }
9212
9473
  this.resetErrors();
9213
- this.isSubmitting = false;
9214
9474
  this.formValuesChanged = false;
9215
9475
  this.pageChangeSubject.next(true);
9216
9476
  return this.caseEdit.next(this.currentPage.id);
@@ -9253,7 +9513,7 @@ class CaseEditPageComponent {
9253
9513
  }
9254
9514
  }
9255
9515
  submitting() {
9256
- return this.isSubmitting;
9516
+ return this.caseEdit.isSubmitting;
9257
9517
  }
9258
9518
  getCaseId() {
9259
9519
  return (this.caseEdit.caseDetails ? this.caseEdit.caseDetails.case_id : '');
@@ -9265,10 +9525,23 @@ class CaseEditPageComponent {
9265
9525
  getCancelText() {
9266
9526
  return this.eventTrigger.can_save_draft ? 'Return to case list' : 'Cancel';
9267
9527
  }
9528
+ canNavigateToSummaryPage() {
9529
+ var _a;
9530
+ const nextPage = this.caseEdit.getNextPage({
9531
+ currentPageId: (_a = this.currentPage) === null || _a === void 0 ? void 0 : _a.id,
9532
+ wizard: this.wizard,
9533
+ eventTrigger: this.eventTrigger,
9534
+ form: this.editForm
9535
+ });
9536
+ return this.eventTrigger.show_summary || !!nextPage;
9537
+ }
9268
9538
  getTriggerText() {
9269
- return this.eventTrigger && this.eventTrigger.can_save_draft
9539
+ const textBasedOnCanSaveDraft = this.eventTrigger && this.eventTrigger.can_save_draft
9270
9540
  ? CaseEditPageComponent.TRIGGER_TEXT_SAVE
9271
9541
  : CaseEditPageComponent.TRIGGER_TEXT_START;
9542
+ return this.canNavigateToSummaryPage()
9543
+ ? textBasedOnCanSaveDraft
9544
+ : 'Submit';
9272
9545
  }
9273
9546
  discard() {
9274
9547
  if (this.route.snapshot.queryParamMap.get(CaseEditComponent.ORIGIN_QUERY_PARAM) === 'viewDraft') {
@@ -9279,25 +9552,28 @@ class CaseEditPageComponent {
9279
9552
  }
9280
9553
  }
9281
9554
  handleError(error) {
9282
- this.isSubmitting = false;
9283
- this.error = error;
9284
- this.callbackErrorsSubject.next(this.error);
9285
- if (this.error.details) {
9555
+ var _a, _b;
9556
+ this.caseEdit.isSubmitting = false;
9557
+ this.caseEdit.error = error;
9558
+ this.caseEdit.callbackErrorsSubject.next(this.caseEdit.error);
9559
+ this.callbackErrorsSubject.next(this.caseEdit.error);
9560
+ /* istanbul ignore else */
9561
+ if (this.caseEdit.error.details) {
9286
9562
  this.formErrorService
9287
- .mapFieldErrors(this.error.details.field_errors, this.editForm.controls['data'], 'validation');
9563
+ .mapFieldErrors(this.caseEdit.error.details.field_errors, (_b = (_a = this.editForm) === null || _a === void 0 ? void 0 : _a.controls) === null || _b === void 0 ? void 0 : _b['data'], 'validation');
9288
9564
  }
9289
9565
  }
9290
9566
  resetErrors() {
9291
- this.error = null;
9292
- this.ignoreWarning = false;
9567
+ this.caseEdit.error = null;
9568
+ this.caseEdit.ignoreWarning = false;
9293
9569
  this.triggerText = this.getTriggerText();
9294
- this.callbackErrorsSubject.next(null);
9570
+ this.caseEdit.callbackErrorsSubject.next(null);
9295
9571
  }
9296
9572
  saveDraft() {
9297
9573
  if (this.eventTrigger.can_save_draft) {
9298
9574
  const draftCaseEventData = this.formValueService.sanitise(this.editForm.value);
9299
9575
  draftCaseEventData.event_token = this.eventTrigger.event_token;
9300
- draftCaseEventData.ignore_warning = this.ignoreWarning;
9576
+ draftCaseEventData.ignore_warning = this.caseEdit.ignoreWarning;
9301
9577
  this.caseEdit.saveDraft(draftCaseEventData).subscribe((draft) => this.eventTrigger.case_id = DRAFT_PREFIX + draft.id, error => this.handleError(error));
9302
9578
  }
9303
9579
  }
@@ -9329,7 +9605,7 @@ class CaseEditPageComponent {
9329
9605
  pageEventData.event_data = formEventData.data;
9330
9606
  // Finalise the CaseEventData object.
9331
9607
  pageEventData.event_token = this.eventTrigger.event_token;
9332
- pageEventData.ignore_warning = this.ignoreWarning;
9608
+ pageEventData.ignore_warning = this.caseEdit.ignoreWarning;
9333
9609
  // Finally, try to set up the case_reference.
9334
9610
  if (this.caseEdit.caseDetails) {
9335
9611
  pageEventData.case_reference = this.caseEdit.caseDetails.case_id;
@@ -9365,6 +9641,15 @@ class CaseEditPageComponent {
9365
9641
  next: (validationErrors) => this.validationErrors = validationErrors
9366
9642
  });
9367
9643
  }
9644
+ onEventCanBeCompleted(eventCanBeCompleted) {
9645
+ this.caseEdit.onEventCanBeCompleted({
9646
+ eventTrigger: this.eventTrigger,
9647
+ eventCanBeCompleted,
9648
+ caseDetails: this.caseEdit.caseDetails,
9649
+ form: this.editForm,
9650
+ submit: this.caseEdit.submit,
9651
+ });
9652
+ }
9368
9653
  }
9369
9654
  CaseEditPageComponent.RESUMED_FORM_DISCARD = 'RESUMED_FORM_DISCARD';
9370
9655
  CaseEditPageComponent.NEW_FORM_DISCARD = 'NEW_FORM_DISCARD';
@@ -9374,21 +9659,21 @@ CaseEditPageComponent.TRIGGER_TEXT_START = 'Continue';
9374
9659
  CaseEditPageComponent.TRIGGER_TEXT_SAVE = 'Save and continue';
9375
9660
  CaseEditPageComponent.TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Continue';
9376
9661
  CaseEditPageComponent.ɵfac = function CaseEditPageComponent_Factory(t) { return new (t || CaseEditPageComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PageValidationService), i0.ɵɵdirectiveInject(i1$3.MatDialog), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(CaseEditDataService)); };
9377
- CaseEditPageComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditPageComponent, selectors: [["ccd-case-edit-page"]], decls: 13, vars: 12, consts: [[4, "ngIf"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], ["class", "error-summary", "role", "status", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 4, "ngIf"], [3, "triggerTextContinue", "triggerTextIgnore", "callbackErrorsSubject", "callbackErrorsContext"], [1, "width-50"], ["class", "form", 3, "formGroup", "submit", 4, "ngIf"], ["class", "govuk-heading-l", 4, "ngIf"], [1, "govuk-heading-l"], [1, "govuk-caption-l"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], ["class", "govuk-error-summary__body", 4, "ngFor", "ngForOf"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [1, "validation-error", 3, "click"], ["role", "status", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 1, "error-summary"], ["id", "edit-case-event_error-summary-heading", 1, "heading-h1", "error-summary-heading"], ["id", "edit-case-event_error-summary-body", 1, "govuk-error-summary__body"], ["href", "get-help", "target", "_blank"], ["id", "edit-case-event_error-summary-heading-3", 1, "heading-h3", "error-summary-heading"], ["class", "error-summary-list", 4, "ngIf"], [1, "error-summary-list"], ["class", "ccd-error-summary-li", 4, "ngFor", "ngForOf"], [1, "ccd-error-summary-li"], [1, "form", 3, "formGroup", "submit"], ["id", "fieldset-case-data"], [2, "display", "none"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged", 4, "ngIf"], ["class", "grid-row", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged"], [1, "grid-row"], [1, "column-two-thirds", "rightBorderSeparator"], ["id", "caseEditForm1", 3, "fields", "formGroup", "caseFields"], [1, "column-one-third"], ["id", "caseEditForm2", 3, "fields", "formGroup", "caseFields"]], template: function CaseEditPageComponent_Template(rf, ctx) { if (rf & 1) {
9662
+ CaseEditPageComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditPageComponent, selectors: [["ccd-case-edit-page"]], decls: 13, vars: 12, consts: [[4, "ngIf"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], [3, "error"], [3, "triggerTextContinue", "triggerTextIgnore", "callbackErrorsSubject", "callbackErrorsContext"], [1, "width-50"], ["class", "form", 3, "formGroup", "submit", 4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], ["class", "govuk-heading-l", 4, "ngIf"], [1, "govuk-heading-l"], [1, "govuk-caption-l"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], ["class", "govuk-error-summary__body", 4, "ngFor", "ngForOf"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [1, "validation-error", 3, "click"], [1, "form", 3, "formGroup", "submit"], ["id", "fieldset-case-data"], [2, "display", "none"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged", 4, "ngIf"], ["class", "grid-row", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged"], [1, "grid-row"], [1, "column-two-thirds", "rightBorderSeparator"], ["id", "caseEditForm1", 3, "fields", "formGroup", "caseFields"], [1, "column-one-third"], ["id", "caseEditForm2", 3, "fields", "formGroup", "caseFields"], [3, "eventCompletionParams", "eventCanBeCompleted"]], template: function CaseEditPageComponent_Template(rf, ctx) { if (rf & 1) {
9378
9663
  i0.ɵɵtemplate(0, CaseEditPageComponent_ccd_loading_spinner_0_Template, 1, 0, "ccd-loading-spinner", 0);
9379
9664
  i0.ɵɵtemplate(1, CaseEditPageComponent_ng_container_1_Template, 3, 2, "ng-container", 0);
9380
9665
  i0.ɵɵtemplate(2, CaseEditPageComponent_div_2_Template, 1, 0, "div", 1);
9381
9666
  i0.ɵɵtemplate(3, CaseEditPageComponent_ng_template_3_Template, 2, 5, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
9382
9667
  i0.ɵɵtemplate(5, CaseEditPageComponent_ng_template_5_Template, 1, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
9383
9668
  i0.ɵɵtemplate(7, CaseEditPageComponent_div_7_Template, 4, 1, "div", 4);
9384
- i0.ɵɵtemplate(8, CaseEditPageComponent_div_8_Template, 10, 0, "div", 5);
9385
- i0.ɵɵtemplate(9, CaseEditPageComponent_div_9_Template, 6, 2, "div", 5);
9386
- i0.ɵɵelementStart(10, "ccd-callback-errors", 6);
9387
- i0.ɵɵlistener("callbackErrorsContext", function CaseEditPageComponent_Template_ccd_callback_errors_callbackErrorsContext_10_listener($event) { return ctx.callbackErrorsNotify($event); });
9669
+ i0.ɵɵelement(8, "ccd-case-edit-generic-errors", 5);
9670
+ i0.ɵɵelementStart(9, "ccd-callback-errors", 6);
9671
+ i0.ɵɵlistener("callbackErrorsContext", function CaseEditPageComponent_Template_ccd_callback_errors_callbackErrorsContext_9_listener($event) { return ctx.callbackErrorsNotify($event); });
9388
9672
  i0.ɵɵelementEnd();
9389
- i0.ɵɵelementStart(11, "div", 7);
9390
- i0.ɵɵtemplate(12, CaseEditPageComponent_form_12_Template, 14, 9, "form", 8);
9673
+ i0.ɵɵelementStart(10, "div", 7);
9674
+ i0.ɵɵtemplate(11, CaseEditPageComponent_form_11_Template, 14, 9, "form", 8);
9391
9675
  i0.ɵɵelementEnd();
9676
+ i0.ɵɵtemplate(12, CaseEditPageComponent_ccd_case_event_completion_12_Template, 1, 1, "ccd-case-event-completion", 9);
9392
9677
  } if (rf & 2) {
9393
9678
  const _r3 = i0.ɵɵreference(4);
9394
9679
  const _r5 = i0.ɵɵreference(6);
@@ -9400,13 +9685,13 @@ CaseEditPageComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditPageCompone
9400
9685
  i0.ɵɵadvance(5);
9401
9686
  i0.ɵɵproperty("ngIf", ctx.validationErrors.length > 0);
9402
9687
  i0.ɵɵadvance(1);
9403
- i0.ɵɵproperty("ngIf", ctx.error && !(ctx.error.callbackErrors || ctx.error.callbackWarnings || ctx.error.details));
9404
- i0.ɵɵadvance(1);
9405
- i0.ɵɵproperty("ngIf", ctx.error && ctx.error.details);
9688
+ i0.ɵɵproperty("error", ctx.caseEdit.error);
9406
9689
  i0.ɵɵadvance(1);
9407
- i0.ɵɵproperty("triggerTextContinue", ctx.triggerTextStart)("triggerTextIgnore", ctx.triggerTextIgnoreWarnings)("callbackErrorsSubject", ctx.callbackErrorsSubject);
9690
+ i0.ɵɵproperty("triggerTextContinue", ctx.triggerTextStart)("triggerTextIgnore", ctx.triggerTextIgnoreWarnings)("callbackErrorsSubject", ctx.caseEdit.callbackErrorsSubject);
9408
9691
  i0.ɵɵadvance(2);
9409
9692
  i0.ɵɵproperty("ngIf", ctx.currentPage);
9693
+ i0.ɵɵadvance(1);
9694
+ i0.ɵɵproperty("ngIf", ctx.caseEdit.isEventCompletionChecksRequired);
9410
9695
  } }, styles: [".rightBorderSeparator[_ngcontent-%COMP%]{border-right:4px solid #ffcc02}.validation-error[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:#d4351c}"] });
9411
9696
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditPageComponent, [{
9412
9697
  type: Component,
@@ -9500,11 +9785,6 @@ class CallbackErrorsComponent {
9500
9785
  }
9501
9786
  });
9502
9787
  }
9503
- ngOnDestroy() {
9504
- if (this.callbackErrorsSubject) {
9505
- this.callbackErrorsSubject.unsubscribe();
9506
- }
9507
- }
9508
9788
  hasErrors() {
9509
9789
  return this.error
9510
9790
  && this.error.callbackErrors
@@ -10122,49 +10402,80 @@ var DisplayContextCustomParameter;
10122
10402
  DisplayContextCustomParameter["LinkedCases"] = "LinkedCases";
10123
10403
  })(DisplayContextCustomParameter || (DisplayContextCustomParameter = {}));
10124
10404
 
10125
- function CaseFileViewFieldComponent_div_0_Template(rf, ctx) { if (rf & 1) {
10126
- i0.ɵɵelementStart(0, "div", 2);
10127
- i0.ɵɵelementStart(1, "h1", 3);
10405
+ function CaseFileViewFieldComponent_ng_container_0_li_7_Template(rf, ctx) { if (rf & 1) {
10406
+ i0.ɵɵelementStart(0, "li");
10407
+ i0.ɵɵelementStart(1, "a", 8);
10408
+ i0.ɵɵtext(2);
10409
+ i0.ɵɵelementEnd();
10410
+ i0.ɵɵelementEnd();
10411
+ } if (rf & 2) {
10412
+ const errorMessage_r4 = ctx.$implicit;
10413
+ i0.ɵɵadvance(2);
10414
+ i0.ɵɵtextInterpolate(errorMessage_r4);
10415
+ } }
10416
+ function CaseFileViewFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
10417
+ i0.ɵɵelementContainerStart(0);
10418
+ i0.ɵɵelementStart(1, "div", 2);
10419
+ i0.ɵɵelementStart(2, "div", 3);
10420
+ i0.ɵɵelementStart(3, "h2", 4);
10421
+ i0.ɵɵtext(4, " There is a problem ");
10422
+ i0.ɵɵelementEnd();
10423
+ i0.ɵɵelementStart(5, "div", 5);
10424
+ i0.ɵɵelementStart(6, "ul", 6);
10425
+ i0.ɵɵtemplate(7, CaseFileViewFieldComponent_ng_container_0_li_7_Template, 3, 1, "li", 7);
10426
+ i0.ɵɵelementEnd();
10427
+ i0.ɵɵelementEnd();
10428
+ i0.ɵɵelementEnd();
10429
+ i0.ɵɵelementEnd();
10430
+ i0.ɵɵelementContainerEnd();
10431
+ } if (rf & 2) {
10432
+ const ctx_r0 = i0.ɵɵnextContext();
10433
+ i0.ɵɵadvance(7);
10434
+ i0.ɵɵproperty("ngForOf", ctx_r0.errorMessages);
10435
+ } }
10436
+ function CaseFileViewFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10437
+ i0.ɵɵelementStart(0, "div", 9);
10438
+ i0.ɵɵelementStart(1, "h1", 10);
10128
10439
  i0.ɵɵtext(2, "Sorry, there is a problem with the service");
10129
10440
  i0.ɵɵelementEnd();
10130
- i0.ɵɵelementStart(3, "p", 4);
10441
+ i0.ɵɵelementStart(3, "p", 11);
10131
10442
  i0.ɵɵtext(4, "Try again later.");
10132
10443
  i0.ɵɵelementEnd();
10133
10444
  i0.ɵɵelementEnd();
10134
10445
  } }
10135
- function CaseFileViewFieldComponent_div_1_ng_container_8_Template(rf, ctx) { if (rf & 1) {
10446
+ function CaseFileViewFieldComponent_div_2_ng_container_8_Template(rf, ctx) { if (rf & 1) {
10136
10447
  i0.ɵɵelementContainerStart(0);
10137
- i0.ɵɵelement(1, "mv-media-viewer", 11);
10448
+ i0.ɵɵelement(1, "mv-media-viewer", 18);
10138
10449
  i0.ɵɵelementContainerEnd();
10139
10450
  } if (rf & 2) {
10140
- const ctx_r2 = i0.ɵɵnextContext(2);
10451
+ const ctx_r5 = i0.ɵɵnextContext(2);
10141
10452
  i0.ɵɵadvance(1);
10142
- i0.ɵɵproperty("url", ctx_r2.currentDocument.document_binary_url)("downloadFileName", ctx_r2.currentDocument.document_filename)("showToolbar", true)("contentType", ctx_r2.currentDocument.content_type)("enableAnnotations", true)("enableRedactions", true)("height", "94.5vh");
10453
+ i0.ɵɵproperty("url", ctx_r5.currentDocument.document_binary_url)("downloadFileName", ctx_r5.currentDocument.document_filename)("showToolbar", true)("contentType", ctx_r5.currentDocument.content_type)("enableAnnotations", true)("enableRedactions", true)("height", "94.5vh");
10143
10454
  } }
10144
- function CaseFileViewFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
10145
- const _r4 = i0.ɵɵgetCurrentView();
10455
+ function CaseFileViewFieldComponent_div_2_Template(rf, ctx) { if (rf & 1) {
10456
+ const _r7 = i0.ɵɵgetCurrentView();
10146
10457
  i0.ɵɵelementStart(0, "div");
10147
- i0.ɵɵelementStart(1, "h2", 5);
10458
+ i0.ɵɵelementStart(1, "h2", 12);
10148
10459
  i0.ɵɵtext(2, "Case file");
10149
10460
  i0.ɵɵelementEnd();
10150
- i0.ɵɵelementStart(3, "div", 6);
10151
- i0.ɵɵelementStart(4, "div", 7);
10152
- i0.ɵɵelementStart(5, "ccd-case-file-view-folder", 8);
10153
- i0.ɵɵlistener("clickedDocument", function CaseFileViewFieldComponent_div_1_Template_ccd_case_file_view_folder_clickedDocument_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.setMediaViewerFile($event); })("moveDocument", function CaseFileViewFieldComponent_div_1_Template_ccd_case_file_view_folder_moveDocument_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.moveDocument($event); });
10461
+ i0.ɵɵelementStart(3, "div", 13);
10462
+ i0.ɵɵelementStart(4, "div", 14);
10463
+ i0.ɵɵelementStart(5, "ccd-case-file-view-folder", 15);
10464
+ i0.ɵɵlistener("clickedDocument", function CaseFileViewFieldComponent_div_2_Template_ccd_case_file_view_folder_clickedDocument_5_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); ctx_r6.setMediaViewerFile($event); return ctx_r6.resetErrorMessages(); })("moveDocument", function CaseFileViewFieldComponent_div_2_Template_ccd_case_file_view_folder_moveDocument_5_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r8 = i0.ɵɵnextContext(); return ctx_r8.moveDocument($event); });
10154
10465
  i0.ɵɵelementEnd();
10155
10466
  i0.ɵɵelementEnd();
10156
- i0.ɵɵelement(6, "div", 9);
10157
- i0.ɵɵelementStart(7, "div", 10);
10158
- i0.ɵɵtemplate(8, CaseFileViewFieldComponent_div_1_ng_container_8_Template, 2, 7, "ng-container", 1);
10467
+ i0.ɵɵelement(6, "div", 16);
10468
+ i0.ɵɵelementStart(7, "div", 17);
10469
+ i0.ɵɵtemplate(8, CaseFileViewFieldComponent_div_2_ng_container_8_Template, 2, 7, "ng-container", 0);
10159
10470
  i0.ɵɵelementEnd();
10160
10471
  i0.ɵɵelementEnd();
10161
10472
  i0.ɵɵelementEnd();
10162
10473
  } if (rf & 2) {
10163
- const ctx_r1 = i0.ɵɵnextContext();
10474
+ const ctx_r2 = i0.ɵɵnextContext();
10164
10475
  i0.ɵɵadvance(5);
10165
- i0.ɵɵproperty("categoriesAndDocuments", ctx_r1.categoriesAndDocuments$)("allowMoving", ctx_r1.allowMoving);
10476
+ i0.ɵɵproperty("categoriesAndDocuments", ctx_r2.categoriesAndDocuments$)("allowMoving", ctx_r2.allowMoving);
10166
10477
  i0.ɵɵadvance(3);
10167
- i0.ɵɵproperty("ngIf", ctx_r1.currentDocument);
10478
+ i0.ɵɵproperty("ngIf", ctx_r2.currentDocument);
10168
10479
  } }
10169
10480
  class CaseFileViewFieldComponent {
10170
10481
  constructor(elementRef, route, caseFileViewService, documentManagementService, loadingService, sessionStorageService) {
@@ -10176,6 +10487,7 @@ class CaseFileViewFieldComponent {
10176
10487
  this.sessionStorageService = sessionStorageService;
10177
10488
  this.allowMoving = true;
10178
10489
  this.getCategoriesAndDocumentsError = false;
10490
+ this.errorMessages = [];
10179
10491
  }
10180
10492
  ngOnInit() {
10181
10493
  const cid = this.route.snapshot.paramMap.get(CaseFileViewFieldComponent.PARAM_CASE_ID);
@@ -10225,11 +10537,26 @@ class CaseFileViewFieldComponent {
10225
10537
  moveDocument(data) {
10226
10538
  const cid = this.route.snapshot.paramMap.get(CaseFileViewFieldComponent.PARAM_CASE_ID);
10227
10539
  const loadingToken = this.loadingService.register();
10228
- this.caseFileViewService.updateDocumentCategory(cid, this.caseVersion, data.document.attribute_path, data.newCategory).subscribe(_ => {
10229
- location.reload();
10540
+ this.caseFileViewService.updateDocumentCategory(cid, this.caseVersion, data.document.attribute_path, data.newCategory)
10541
+ .pipe(finalize(() => {
10230
10542
  this.loadingService.unregister(loadingToken);
10543
+ }), catchError(() => {
10544
+ this.errorMessages = ['You do not have permission to move this document to the selected folder.'];
10545
+ return of(null);
10546
+ }))
10547
+ .subscribe(res => {
10548
+ if (res) {
10549
+ this.resetErrorMessages();
10550
+ this.reloadPage();
10551
+ }
10231
10552
  });
10232
10553
  }
10554
+ reloadPage() {
10555
+ location.reload();
10556
+ }
10557
+ resetErrorMessages() {
10558
+ this.errorMessages = [];
10559
+ }
10233
10560
  ngOnDestroy() {
10234
10561
  if (this.categoriesAndDocumentsSubscription) {
10235
10562
  this.categoriesAndDocumentsSubscription.unsubscribe();
@@ -10238,10 +10565,13 @@ class CaseFileViewFieldComponent {
10238
10565
  }
10239
10566
  CaseFileViewFieldComponent.PARAM_CASE_ID = 'cid';
10240
10567
  CaseFileViewFieldComponent.ɵfac = function CaseFileViewFieldComponent_Factory(t) { return new (t || CaseFileViewFieldComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseFileViewService), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(SessionStorageService)); };
10241
- CaseFileViewFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewFieldComponent, selectors: [["ccd-case-file-view-field"]], decls: 2, vars: 2, consts: [["class", "govuk-grid-column-two-thirds", 4, "ngIf"], [4, "ngIf"], [1, "govuk-grid-column-two-thirds"], [1, "govuk-heading-xl"], [1, "govuk-body"], [1, "govuk-heading-l"], ["id", "case-file-view", 1, "govuk-form-group"], [1, "document-tree-container"], [1, "document-tree-container__tree", 3, "categoriesAndDocuments", "allowMoving", "clickedDocument", "moveDocument"], [1, "slider"], [1, "media-viewer-container"], [3, "url", "downloadFileName", "showToolbar", "contentType", "enableAnnotations", "enableRedactions", "height"]], template: function CaseFileViewFieldComponent_Template(rf, ctx) { if (rf & 1) {
10242
- i0.ɵɵtemplate(0, CaseFileViewFieldComponent_div_0_Template, 5, 0, "div", 0);
10243
- i0.ɵɵtemplate(1, CaseFileViewFieldComponent_div_1_Template, 9, 3, "div", 1);
10568
+ CaseFileViewFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewFieldComponent, selectors: [["ccd-case-file-view-field"]], decls: 3, vars: 3, consts: [[4, "ngIf"], ["class", "govuk-grid-column-two-thirds", 4, "ngIf"], ["id", "case-file-view-field-errors", "data-module", "govuk-error-summary", 1, "govuk-error-summary", "govuk-!-margin-bottom-4"], ["role", "alert"], [1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [4, "ngFor", "ngForOf"], ["href", "javascript:void(0);"], [1, "govuk-grid-column-two-thirds"], [1, "govuk-heading-xl"], [1, "govuk-body"], [1, "govuk-heading-l"], ["id", "case-file-view", 1, "govuk-form-group"], [1, "document-tree-container"], [1, "document-tree-container__tree", 3, "categoriesAndDocuments", "allowMoving", "clickedDocument", "moveDocument"], [1, "slider"], [1, "media-viewer-container"], [3, "url", "downloadFileName", "showToolbar", "contentType", "enableAnnotations", "enableRedactions", "height"]], template: function CaseFileViewFieldComponent_Template(rf, ctx) { if (rf & 1) {
10569
+ i0.ɵɵtemplate(0, CaseFileViewFieldComponent_ng_container_0_Template, 8, 1, "ng-container", 0);
10570
+ i0.ɵɵtemplate(1, CaseFileViewFieldComponent_div_1_Template, 5, 0, "div", 1);
10571
+ i0.ɵɵtemplate(2, CaseFileViewFieldComponent_div_2_Template, 9, 3, "div", 0);
10244
10572
  } if (rf & 2) {
10573
+ i0.ɵɵproperty("ngIf", ctx.errorMessages == null ? null : ctx.errorMessages.length);
10574
+ i0.ɵɵadvance(1);
10245
10575
  i0.ɵɵproperty("ngIf", ctx.getCategoriesAndDocumentsError);
10246
10576
  i0.ɵɵadvance(1);
10247
10577
  i0.ɵɵproperty("ngIf", !ctx.getCategoriesAndDocumentsError);
@@ -13141,12 +13471,11 @@ function WriteJudicialUserFieldComponent_mat_option_8_Template(rf, ctx) { if (rf
13141
13471
  i0.ɵɵelementEnd();
13142
13472
  } }
13143
13473
  class WriteJudicialUserFieldComponent extends AbstractFieldWriteComponent {
13144
- constructor(route, cd, jurisdictionService) {
13474
+ constructor(jurisdictionService, sessionStorageService, caseFlagRefDataService) {
13145
13475
  super();
13146
- this.route = route;
13147
- this.cd = cd;
13148
13476
  this.jurisdictionService = jurisdictionService;
13149
- this.JURISDICTION_ID = 'jid';
13477
+ this.sessionStorageService = sessionStorageService;
13478
+ this.caseFlagRefDataService = caseFlagRefDataService;
13150
13479
  this.MINIMUM_SEARCH_CHARACTERS = 2;
13151
13480
  this.IDAM_ID = 'idamId';
13152
13481
  this.PERSONAL_CODE = 'personalCode';
@@ -13154,18 +13483,44 @@ class WriteJudicialUserFieldComponent extends AbstractFieldWriteComponent {
13154
13483
  this.showAutocomplete = false;
13155
13484
  }
13156
13485
  ngOnInit() {
13157
- this.jurisdictionId = this.route.snapshot.params[this.JURISDICTION_ID];
13486
+ var _a;
13158
13487
  this.judicialUserFormGroup = this.registerControl(new FormGroup({}), true);
13159
13488
  this.idamIdFormControl = new FormControl('');
13160
13489
  this.judicialUserFormGroup.addControl(this.IDAM_ID, this.idamIdFormControl);
13161
13490
  this.personalCodeFormControl = new FormControl('');
13162
13491
  this.judicialUserFormGroup.addControl(this.PERSONAL_CODE, this.personalCodeFormControl);
13163
- this.sub = this.idamIdFormControl.valueChanges.pipe(tap(() => this.showAutocomplete = false), tap(() => this.filteredJudicialUsers = []), debounceTime(300), filter((searchTerm) => searchTerm && searchTerm.length > this.MINIMUM_SEARCH_CHARACTERS), switchMap((searchTerm) => this.filter(searchTerm).pipe(tap(() => this.showAutocomplete = true), catchError(() => this.filteredJudicialUsers = [])))).subscribe((judicialUsers) => {
13492
+ this.setJurisdictionAndCaseType();
13493
+ this.sub = this.idamIdFormControl.valueChanges.pipe(tap(() => this.showAutocomplete = false), tap(() => this.filteredJudicialUsers = []), debounceTime(300), filter((searchTerm) => searchTerm && searchTerm.length > this.MINIMUM_SEARCH_CHARACTERS), switchMap((searchTerm) => this.filterJudicialUsers(searchTerm).pipe(tap(() => this.showAutocomplete = true), catchError(() => this.filteredJudicialUsers = [])))).subscribe((judicialUsers) => {
13164
13494
  this.filteredJudicialUsers = judicialUsers;
13165
13495
  });
13496
+ if ((_a = this.caseField.value) === null || _a === void 0 ? void 0 : _a.personalCode) {
13497
+ this.loadJudicialUser(this.caseField.value.personalCode);
13498
+ }
13499
+ }
13500
+ filterJudicialUsers(searchTerm) {
13501
+ return this.caseFlagRefDataService.getHmctsServiceDetailsByCaseType(this.caseType).pipe(
13502
+ // If an error occurs retrieving HMCTS service details by case type ID, try by service name instead
13503
+ catchError(_ => this.caseFlagRefDataService.getHmctsServiceDetailsByServiceName(this.jurisdiction)),
13504
+ // Use switchMap to return an inner Observable of the flag types data, having received the service details
13505
+ // including service_code. This avoids having nested `subscribe`s, which is an anti-pattern!
13506
+ switchMap(serviceDetails => this.jurisdictionService.searchJudicialUsers(searchTerm, serviceDetails[0].service_code)));
13507
+ }
13508
+ loadJudicialUser(personalCode) {
13509
+ if (personalCode) {
13510
+ this.jurisdictionService.searchJudicialUsersByPersonalCodes([personalCode]).subscribe(judicialUsers => {
13511
+ const judicialUser = judicialUsers[0];
13512
+ this.idamIdFormControl.setValue(`${judicialUser.fullName} (${judicialUser.emailId})`);
13513
+ this.personalCodeFormControl.setValue(judicialUser.personalCode);
13514
+ });
13515
+ }
13166
13516
  }
13167
- filter(searchTerm) {
13168
- return this.jurisdictionService.searchJudicialUsers(searchTerm, this.jurisdictionId);
13517
+ setJurisdictionAndCaseType() {
13518
+ const caseInfoStr = this.sessionStorageService.getItem('caseInfo');
13519
+ if (caseInfoStr) {
13520
+ const caseInfo = JSON.parse(caseInfoStr);
13521
+ this.jurisdiction = caseInfo === null || caseInfo === void 0 ? void 0 : caseInfo.jurisdiction;
13522
+ this.caseType = caseInfo === null || caseInfo === void 0 ? void 0 : caseInfo.caseType;
13523
+ }
13169
13524
  }
13170
13525
  onSelectionChange(judicialUser) {
13171
13526
  this.idamIdFormControl.setValue(`${judicialUser.fullName} (${judicialUser.emailId})`);
@@ -13177,7 +13532,7 @@ class WriteJudicialUserFieldComponent extends AbstractFieldWriteComponent {
13177
13532
  }
13178
13533
  }
13179
13534
  }
13180
- WriteJudicialUserFieldComponent.ɵfac = function WriteJudicialUserFieldComponent_Factory(t) { return new (t || WriteJudicialUserFieldComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(JurisdictionService)); };
13535
+ WriteJudicialUserFieldComponent.ɵfac = function WriteJudicialUserFieldComponent_Factory(t) { return new (t || WriteJudicialUserFieldComponent)(i0.ɵɵdirectiveInject(JurisdictionService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseFlagRefdataService)); };
13181
13536
  WriteJudicialUserFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteJudicialUserFieldComponent, selectors: [["ccd-write-judicial-user-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 9, vars: 9, consts: [[1, "form-group", 3, "formGroup"], [3, "for"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], [1, "form-control", "bottom-30", 3, "id", "formControl", "matAutocomplete"], ["autoActiveFirstOption", ""], ["autoComplete", "matAutocomplete"], ["class", "select-option", 3, "ngClass", "value", "onSelectionChange", 4, "ngFor", "ngForOf"], ["class", "select-option", 4, "ngIf"], [1, "form-label"], [1, "form-hint"], [1, "select-option", 3, "ngClass", "value", "onSelectionChange"], [1, "select-option"]], template: function WriteJudicialUserFieldComponent_Template(rf, ctx) { if (rf & 1) {
13182
13537
  i0.ɵɵelementStart(0, "div", 0);
13183
13538
  i0.ɵɵelementStart(1, "label", 1);
@@ -13205,7 +13560,7 @@ WriteJudicialUserFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteJudi
13205
13560
  i0.ɵɵproperty("ngForOf", ctx.filteredJudicialUsers);
13206
13561
  i0.ɵɵadvance(1);
13207
13562
  i0.ɵɵproperty("ngIf", !(ctx.filteredJudicialUsers == null ? null : ctx.filteredJudicialUsers.length) && ctx.showAutocomplete);
13208
- } }, directives: [i2.NgControlStatusGroup, i2.FormGroupDirective, i1.NgIf, i2.DefaultValueAccessor, i5.MatAutocompleteTrigger, i2.NgControlStatus, i2.FormControlDirective, i5.MatAutocomplete, i1.NgForOf, i6.MatOption, i1.NgClass], pipes: [FieldLabelPipe], styles: [".mat-option[_ngcontent-%COMP%]:hover{background:#2596be}.mat-option.select-option[_ngcontent-%COMP%]:hover{background:#1d70b8;color:#fff}.hide-autocomplete[_ngcontent-%COMP%]{display:none}"] });
13563
+ } }, directives: [i2.NgControlStatusGroup, i2.FormGroupDirective, i1.NgIf, i2.DefaultValueAccessor, i4.MatAutocompleteTrigger, i2.NgControlStatus, i2.FormControlDirective, i4.MatAutocomplete, i1.NgForOf, i5.MatOption, i1.NgClass], pipes: [FieldLabelPipe], styles: [".mat-option[_ngcontent-%COMP%]:hover{background:#2596be}.mat-option.select-option[_ngcontent-%COMP%]:hover{background:#1d70b8;color:#fff}.hide-autocomplete[_ngcontent-%COMP%]{display:none}"] });
13209
13564
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteJudicialUserFieldComponent, [{
13210
13565
  type: Component,
13211
13566
  args: [{
@@ -13213,7 +13568,7 @@ WriteJudicialUserFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteJudi
13213
13568
  styleUrls: ['./write-judicial-user-field.component.scss'],
13214
13569
  templateUrl: './write-judicial-user-field.component.html'
13215
13570
  }]
13216
- }], function () { return [{ type: i1$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: JurisdictionService }]; }, null); })();
13571
+ }], function () { return [{ type: JurisdictionService }, { type: SessionStorageService }, { type: CaseFlagRefdataService }]; }, null); })();
13217
13572
 
13218
13573
  class LabelFieldComponent {
13219
13574
  constructor() {
@@ -13502,7 +13857,9 @@ class BeforeYouStartComponent {
13502
13857
  });
13503
13858
  }
13504
13859
  onBack() {
13505
- this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseId], { fragment: 'Linked cases' });
13860
+ this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseId]).then(() => {
13861
+ window.location.hash = 'Linked cases';
13862
+ });
13506
13863
  }
13507
13864
  }
13508
13865
  BeforeYouStartComponent.ɵfac = function BeforeYouStartComponent_Factory(t) { return new (t || BeforeYouStartComponent)(i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(LinkedCasesService)); };
@@ -14842,7 +15199,9 @@ class NoLinkedCasesComponent {
14842
15199
  this.serverLinkedApiError = this.linkedCasesService.serverLinkedApiError;
14843
15200
  }
14844
15201
  onBack() {
14845
- this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseId], { fragment: 'Linked cases' });
15202
+ this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseId]).then(() => {
15203
+ window.location.hash = 'Linked cases';
15204
+ });
14846
15205
  }
14847
15206
  }
14848
15207
  NoLinkedCasesComponent.ɵfac = function NoLinkedCasesComponent_Factory(t) { return new (t || NoLinkedCasesComponent)(i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(LinkedCasesService)); };
@@ -15228,7 +15587,9 @@ class ReadLinkedCasesFieldComponent {
15228
15587
  }
15229
15588
  }
15230
15589
  reloadCurrentRoute() {
15231
- this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseDetails.case_id], { fragment: 'Linked cases' });
15590
+ this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseDetails.case_id]).then(() => {
15591
+ window.location.hash = 'Linked cases';
15592
+ });
15232
15593
  }
15233
15594
  getFailureLinkedToNotification(evt) {
15234
15595
  this.isServerLinkedToError = true;
@@ -17886,7 +18247,7 @@ CaseFileViewOverlayMenuComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFile
17886
18247
  const _r0 = i0.ɵɵreference(2);
17887
18248
  i0.ɵɵadvance(4);
17888
18249
  i0.ɵɵproperty("cdkConnectedOverlayOrigin", _r0)("cdkConnectedOverlayOpen", ctx.isOpen)("cdkConnectedOverlayHasBackdrop", true)("cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop");
17889
- } }, directives: [i1$4.CdkOverlayOrigin, i1$4.CdkConnectedOverlay, i1.NgIf, i1.NgForOf], styles: [".overlay-toggle[_ngcontent-%COMP%]{display:block;background:none;border:0;padding:0 6px;margin-right:-6px;cursor:pointer}.overlay-menu[_ngcontent-%COMP%]{background-color:#fafafa;border:1px solid grey;margin-top:8px;font-size:1rem}.overlay-menu__item[_ngcontent-%COMP%], .overlay-menu__title[_ngcontent-%COMP%]{padding:10px;border-bottom:1px solid grey}.overlay-menu__item[_ngcontent-%COMP%]:last-child, .overlay-menu__title[_ngcontent-%COMP%]:last-child{border:none}.overlay-menu__title[_ngcontent-%COMP%]{padding-left:6px;padding-right:6px}.overlay-menu__item[_ngcontent-%COMP%]{display:flex;align-items:center;cursor:pointer;font-size:.875em}.overlay-menu__item[_ngcontent-%COMP%]:hover{background-color:#fff2cc}.overlay-menu__itemIcon[_ngcontent-%COMP%]{height:1.25em;width:1.25em;margin-right:6px}"] });
18250
+ } }, directives: [i1$4.CdkOverlayOrigin, i1$4.CdkConnectedOverlay, i1.NgIf, i1.NgForOf], styles: [".overlay-toggle[_ngcontent-%COMP%]{display:block;background:none;border:0;padding:0 6px;margin-right:-4px;cursor:pointer}.overlay-menu[_ngcontent-%COMP%]{background-color:#fafafa;border:1px solid grey;margin-top:8px;font-size:1rem}.overlay-menu__item[_ngcontent-%COMP%], .overlay-menu__title[_ngcontent-%COMP%]{padding:10px;border-bottom:1px solid grey}.overlay-menu__item[_ngcontent-%COMP%]:last-child, .overlay-menu__title[_ngcontent-%COMP%]:last-child{border:none}.overlay-menu__title[_ngcontent-%COMP%]{padding-left:6px;padding-right:6px}.overlay-menu__item[_ngcontent-%COMP%]{display:flex;align-items:center;cursor:pointer;font-size:.875em}.overlay-menu__item[_ngcontent-%COMP%]:hover{background-color:#fff2cc}.overlay-menu__itemIcon[_ngcontent-%COMP%]{height:1.25em;width:1.25em;margin-right:6px}"] });
17890
18251
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewOverlayMenuComponent, [{
17891
18252
  type: Component,
17892
18253
  args: [{
@@ -18437,17 +18798,17 @@ function CaseFlagTableComponent_table_0_tr_16_Template(rf, ctx) { if (rf & 1) {
18437
18798
  i0.ɵɵelementEnd();
18438
18799
  i0.ɵɵelementEnd();
18439
18800
  } }
18440
- function CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_15_Template(rf, ctx) { if (rf & 1) {
18801
+ function CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_17_Template(rf, ctx) { if (rf & 1) {
18441
18802
  i0.ɵɵelementStart(0, "strong", 19);
18442
18803
  i0.ɵɵtext(1, "Active");
18443
18804
  i0.ɵɵelementEnd();
18444
18805
  } }
18445
- function CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_16_Template(rf, ctx) { if (rf & 1) {
18806
+ function CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_18_Template(rf, ctx) { if (rf & 1) {
18446
18807
  i0.ɵɵelementStart(0, "strong", 20);
18447
18808
  i0.ɵɵtext(1, "Inactive");
18448
18809
  i0.ɵɵelementEnd();
18449
18810
  } }
18450
- function CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_17_Template(rf, ctx) { if (rf & 1) {
18811
+ function CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_19_Template(rf, ctx) { if (rf & 1) {
18451
18812
  i0.ɵɵelementStart(0, "strong", 20);
18452
18813
  i0.ɵɵtext(1, "Requested");
18453
18814
  i0.ɵɵelementEnd();
@@ -18461,22 +18822,25 @@ function CaseFlagTableComponent_table_0_tbody_17_tr_1_Template(rf, ctx) { if (rf
18461
18822
  i0.ɵɵelementStart(4, "div");
18462
18823
  i0.ɵɵtext(5);
18463
18824
  i0.ɵɵelementEnd();
18464
- i0.ɵɵelementEnd();
18465
- i0.ɵɵelementStart(6, "td", 16);
18825
+ i0.ɵɵelementStart(6, "div");
18466
18826
  i0.ɵɵtext(7);
18467
18827
  i0.ɵɵelementEnd();
18828
+ i0.ɵɵelementEnd();
18468
18829
  i0.ɵɵelementStart(8, "td", 16);
18469
18830
  i0.ɵɵtext(9);
18470
- i0.ɵɵpipe(10, "date");
18471
18831
  i0.ɵɵelementEnd();
18472
- i0.ɵɵelementStart(11, "td", 16);
18473
- i0.ɵɵtext(12);
18474
- i0.ɵɵpipe(13, "date");
18832
+ i0.ɵɵelementStart(10, "td", 16);
18833
+ i0.ɵɵtext(11);
18834
+ i0.ɵɵpipe(12, "date");
18835
+ i0.ɵɵelementEnd();
18836
+ i0.ɵɵelementStart(13, "td", 16);
18837
+ i0.ɵɵtext(14);
18838
+ i0.ɵɵpipe(15, "date");
18475
18839
  i0.ɵɵelementEnd();
18476
- i0.ɵɵelementStart(14, "td", 16);
18477
- i0.ɵɵtemplate(15, CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_15_Template, 2, 0, "strong", 17);
18478
- i0.ɵɵtemplate(16, CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_16_Template, 2, 0, "strong", 18);
18479
- i0.ɵɵtemplate(17, CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_17_Template, 2, 0, "strong", 18);
18840
+ i0.ɵɵelementStart(16, "td", 16);
18841
+ i0.ɵɵtemplate(17, CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_17_Template, 2, 0, "strong", 17);
18842
+ i0.ɵɵtemplate(18, CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_18_Template, 2, 0, "strong", 18);
18843
+ i0.ɵɵtemplate(19, CaseFlagTableComponent_table_0_tbody_17_tr_1_strong_19_Template, 2, 0, "strong", 18);
18480
18844
  i0.ɵɵelementEnd();
18481
18845
  i0.ɵɵelementEnd();
18482
18846
  } if (rf & 2) {
@@ -18487,11 +18851,13 @@ function CaseFlagTableComponent_table_0_tbody_17_tr_1_Template(rf, ctx) { if (rf
18487
18851
  i0.ɵɵadvance(2);
18488
18852
  i0.ɵɵtextInterpolate(flagDetail_r4.otherDescription);
18489
18853
  i0.ɵɵadvance(2);
18854
+ i0.ɵɵtextInterpolate(flagDetail_r4.subTypeValue);
18855
+ i0.ɵɵadvance(2);
18490
18856
  i0.ɵɵtextInterpolate(flagDetail_r4.flagComment);
18491
18857
  i0.ɵɵadvance(2);
18492
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(10, 8, flagDetail_r4.dateTimeCreated, "dd LLL yyyy"));
18858
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(12, 9, flagDetail_r4.dateTimeCreated, "dd LLL yyyy"));
18493
18859
  i0.ɵɵadvance(3);
18494
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(13, 11, flagDetail_r4.dateTimeModified, "dd LLL yyyy"));
18860
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(15, 12, flagDetail_r4.dateTimeModified, "dd LLL yyyy"));
18495
18861
  i0.ɵɵadvance(3);
18496
18862
  i0.ɵɵproperty("ngIf", flagDetail_r4.status === ctx_r3.caseFlagStatus.ACTIVE);
18497
18863
  i0.ɵɵadvance(1);
@@ -18501,7 +18867,7 @@ function CaseFlagTableComponent_table_0_tbody_17_tr_1_Template(rf, ctx) { if (rf
18501
18867
  } }
18502
18868
  function CaseFlagTableComponent_table_0_tbody_17_Template(rf, ctx) { if (rf & 1) {
18503
18869
  i0.ɵɵelementStart(0, "tbody", 10);
18504
- i0.ɵɵtemplate(1, CaseFlagTableComponent_table_0_tbody_17_tr_1_Template, 18, 14, "tr", 14);
18870
+ i0.ɵɵtemplate(1, CaseFlagTableComponent_table_0_tbody_17_tr_1_Template, 20, 15, "tr", 14);
18505
18871
  i0.ɵɵelementEnd();
18506
18872
  } if (rf & 2) {
18507
18873
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -19093,7 +19459,7 @@ SearchLanguageInterpreterComponent.ɵcmp = i0.ɵɵdefineComponent({ type: Search
19093
19459
  i0.ɵɵtextInterpolate1(" ", ctx.searchLanguageInterpreterStep.CHECKBOX_LABEL, " ");
19094
19460
  i0.ɵɵadvance(1);
19095
19461
  i0.ɵɵproperty("ngIf", ctx.isCheckboxEnabled);
19096
- } }, directives: [i2.NgControlStatusGroup, i2.FormGroupDirective, i1.NgClass, i1.NgIf, i3$1.MatInput, i2.DefaultValueAccessor, i5.MatAutocompleteTrigger, i2.NgControlStatus, i2.FormControlName, i5.MatAutocomplete, i1.NgForOf, i6.MatOption], pipes: [i1.AsyncPipe], styles: [".autocomplete__input--show-all-values[_ngcontent-%COMP%]{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down[_ngcontent-%COMP%]{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu[_ngcontent-%COMP%]{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible[_ngcontent-%COMP%]{display:block}.autocomplete__menu--hidden[_ngcontent-%COMP%]{display:none}.autocomplete__menu--overlay[_ngcontent-%COMP%]{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline[_ngcontent-%COMP%]{position:relative}.autocomplete__option[_ngcontent-%COMP%]{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{pointer-events:none}.autocomplete__option[_ngcontent-%COMP%]:first-of-type{border-top-width:0}.autocomplete__option[_ngcontent-%COMP%]:last-of-type{border-bottom-width:0}.autocomplete__option--odd[_ngcontent-%COMP%]{background-color:#fafafa}.autocomplete__option--focused[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results[_ngcontent-%COMP%]{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.25}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{padding:5px}@media (min-width:641px){.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.31579}}.div-action[_ngcontent-%COMP%]{display:inline-block}.add-location[_ngcontent-%COMP%]{display:inline}.remove-location-button[_ngcontent-%COMP%]{margin:5px}.hide-autocomplete[_ngcontent-%COMP%]{display:none}.auto-complete-container[_ngcontent-%COMP%]{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input[_ngcontent-%COMP%]{line-height:24px;font-size:19px}.hidden[_ngcontent-%COMP%]{display:none}.search-language__input[_ngcontent-%COMP%]{position:relative;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='%23505a5f'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center left -2px;background-size:40px 40px;padding-left:35px}"] });
19462
+ } }, directives: [i2.NgControlStatusGroup, i2.FormGroupDirective, i1.NgClass, i1.NgIf, i3$1.MatInput, i2.DefaultValueAccessor, i4.MatAutocompleteTrigger, i2.NgControlStatus, i2.FormControlName, i4.MatAutocomplete, i1.NgForOf, i5.MatOption], pipes: [i1.AsyncPipe], styles: [".autocomplete__input--show-all-values[_ngcontent-%COMP%]{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down[_ngcontent-%COMP%]{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu[_ngcontent-%COMP%]{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible[_ngcontent-%COMP%]{display:block}.autocomplete__menu--hidden[_ngcontent-%COMP%]{display:none}.autocomplete__menu--overlay[_ngcontent-%COMP%]{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline[_ngcontent-%COMP%]{position:relative}.autocomplete__option[_ngcontent-%COMP%]{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{pointer-events:none}.autocomplete__option[_ngcontent-%COMP%]:first-of-type{border-top-width:0}.autocomplete__option[_ngcontent-%COMP%]:last-of-type{border-bottom-width:0}.autocomplete__option--odd[_ngcontent-%COMP%]{background-color:#fafafa}.autocomplete__option--focused[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results[_ngcontent-%COMP%]{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.25}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{padding:5px}@media (min-width:641px){.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.31579}}.div-action[_ngcontent-%COMP%]{display:inline-block}.add-location[_ngcontent-%COMP%]{display:inline}.remove-location-button[_ngcontent-%COMP%]{margin:5px}.hide-autocomplete[_ngcontent-%COMP%]{display:none}.auto-complete-container[_ngcontent-%COMP%]{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input[_ngcontent-%COMP%]{line-height:24px;font-size:19px}.hidden[_ngcontent-%COMP%]{display:none}.search-language__input[_ngcontent-%COMP%]{position:relative;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='%23505a5f'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center left -2px;background-size:40px 40px;padding-left:35px}"] });
19097
19463
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchLanguageInterpreterComponent, [{
19098
19464
  type: Component,
19099
19465
  args: [{
@@ -20844,7 +21210,7 @@ DatetimePickerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: DatetimePickerCom
20844
21210
  i0.ɵɵproperty("for", _r6);
20845
21211
  i0.ɵɵadvance(1);
20846
21212
  i0.ɵɵproperty("color", ctx.color)("touchUi", ctx.touchUi)("hideTime", ctx.hideTime)("startView", ctx.startView)("stepHour", ctx.stepHour)("stepSecond", ctx.stepSecond)("stepMinute", ctx.stepMinute)("showSeconds", ctx.showSeconds)("showSpinners", ctx.showSpinners)("disableMinute", ctx.disableMinute)("enableMeridian", ctx.enableMeridian);
20847
- } }, directives: [i1.NgClass, i1.NgIf, i2.DefaultValueAccessor, i4.NgxMatDatetimeInput, i2.NgControlStatus, i2.FormControlDirective, i5$1.MatDatepickerToggle, i6$1.MatSuffix, i4.NgxMatDatetimePicker], pipes: [FieldLabelPipe, FirstErrorPipe], styles: ["@charset \"UTF-8\";.datepicker-container{display:inline-block;position:relative;min-width:298px}.datepicker-container .govuk-input{height:35px;min-width:298px;width:auto;padding-right:40px;border:1px solid #000}.datepicker-container .govuk-input:focus{outline:1px solid #fd0;border:1px solid #000}.datepicker-container .govuk-input::-ms-clear{display:none}.datepicker-container .datepicker-wrapper-input{position:relative;display:inline-block;top:-20%;border:0}.datepicker-container .datepicker-wrapper-input:focus{border:0;outline:none}.datepicker-container .mat-icon-button{height:32px;width:32px}.datepicker-container .mat-icon-button:focus{outline:1px solid #fd0}.datepicker-container .mat-icon-button .mat-datepicker-toggle-default-icon{position:relative;top:-5px}.datepicker-container .mat-datepicker-toggle{position:absolute;right:0}.cdk-overlay-container .mat-datepicker-content{border:1px solid #000;border-radius:0;max-width:295px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table{width:calc(100% - 1px);table-layout:fixed}.cdk-overlay-container .mat-datepicker-content .mat-calendar-header{height:34px;border-bottom:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button{left:14%;min-width:125px;border-right:1px ridge #bfc1c3;border-left:1px ridge #bfc1c3;border-radius:0;top:-20px;width:200%}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button .mat-button-wrapper{text-align:center;font-weight:700}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button:focus{border:2px solid #000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button{left:-73%;top:-20px;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:after{border-left-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button{top:-20px;left:1%;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:after{border-right-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-button-wrapper{text-transform:capitalize!important}.cdk-overlay-container .mat-datepicker-content .mat-calendar{border-bottom:1px solid #000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider{padding:0;border-bottom:none}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider:after{height:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-content{padding:0}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header{color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header th.ng-star-inserted{font-weight:700;font-size:15px;padding-top:2%;padding-bottom:2%;-moz-column-width:20px;column-width:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th{visibility:hidden}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:after{visibility:visible;color:#000;position:relative;left:-15px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:first-of-type:after{content:\"MON\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(2):after{left:-12px;content:\"TUE\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(3):after{left:-18px;content:\"WED\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(4):after{left:-14px;content:\"THU\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(5):after{left:-10px;content:\"FRI\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(6):after{content:\"SAT\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(7):after{content:\"SUN\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-label{font-weight:700;font-size:large;color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-selected{border:none;background-color:transparent;color:#fff}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-today{border:none;box-shadow:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell{border:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #fd0;border:2px solid #000;outline-offset:1px;z-index:1}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table{border-collapse:separate;border-spacing:10px}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:2px solid #fd0}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table{border-collapse:separate;border-spacing:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table tr:first-of-type{visibility:collapse}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #fd0;border:2px solid #000;outline-offset:1px}.cdk-overlay-container .mat-datepicker-content .time-container{height:80px;padding-top:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table{margin-left:0!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tbody{position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon-button .mat-button-wrapper{width:auto;height:auto}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon-button:focus{outline:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child{position:absolute;left:49px;top:15px;z-index:2}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:first-child [aria-label=\"expand_less icon\"]{position:absolute;left:-2px;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(3) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:82px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(5) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:169px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:last-child [aria-label=\"expand_less icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(2) [aria-label=\"expand_less icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2){display:flex;padding:20px 0 20px 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field{width:50px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field:before{color:#000;content:\"Hours\";position:relative;top:-5px;left:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-child(3) .mat-form-field:before{color:#000;content:\"Minutes\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:last-child{text-align:left;left:-15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .mat-form-field-disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-of-type(5) .mat-form-field:before{color:#000;content:\"Seconds\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian{border-bottom:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button{height:30px;top:21px;border-radius:0;color:#000;border-color:#000;background-color:#dee0e2;display:flex;justify-content:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button .mat-button-wrapper{position:relative;top:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4){display:flex;padding:2rem 0 2rem 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td:last-child{text-align:left}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child{position:absolute;left:49px;top:40px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:first-child [aria-label=\"expand_more icon\"]{position:absolute;top:15px;left:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(3) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;left:82px!important;top:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(5) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;top:15px;left:169px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:last-child [aria-label=\"expand_more icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:last-child.ng-star-inserted [aria-label=\"expand_more icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr td{padding:0;border-bottom:0;position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .spacer{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon{visibility:hidden;display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-button-wrapper{display:block;width:15px;height:8px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-wrapper{padding-bottom:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field{width:auto;max-width:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_less icon\"].mat-icon-button .mat-button-wrapper:after{content:\" \u25B2\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_more icon\"].mat-icon-button .mat-button-wrapper:after{content:\"\u25BC\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex .mat-form-field-infix{border:1px solid #000;height:20px;width:37px;display:flex;justify-content:center;align-items:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-underline{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input{height:33px;width:37px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .actions{padding-bottom:20px;margin-top:20px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .actions .mat-button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px 0 #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:focus{outline:2px solid #fd0}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:hover{background-color:#006400}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-icon{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-button-wrapper:before{color:#fff;content:\"Confirm\";position:relative;font-size:15px;left:-3px}"], encapsulation: 2 });
21213
+ } }, directives: [i1.NgClass, i1.NgIf, i2.DefaultValueAccessor, i4$1.NgxMatDatetimeInput, i2.NgControlStatus, i2.FormControlDirective, i5$1.MatDatepickerToggle, i6.MatSuffix, i4$1.NgxMatDatetimePicker], pipes: [FieldLabelPipe, FirstErrorPipe], styles: ["@charset \"UTF-8\";.datepicker-container{display:inline-block;position:relative;min-width:298px}.datepicker-container .govuk-input{height:35px;min-width:298px;width:auto;padding-right:40px;border:1px solid #000}.datepicker-container .govuk-input:focus{outline:1px solid #fd0;border:1px solid #000}.datepicker-container .govuk-input::-ms-clear{display:none}.datepicker-container .datepicker-wrapper-input{position:relative;display:inline-block;top:-20%;border:0}.datepicker-container .datepicker-wrapper-input:focus{border:0;outline:none}.datepicker-container .mat-icon-button{height:32px;width:32px}.datepicker-container .mat-icon-button:focus{outline:1px solid #fd0}.datepicker-container .mat-icon-button .mat-datepicker-toggle-default-icon{position:relative;top:-5px}.datepicker-container .mat-datepicker-toggle{position:absolute;right:0}.cdk-overlay-container .mat-datepicker-content{border:1px solid #000;border-radius:0;max-width:295px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table{width:calc(100% - 1px);table-layout:fixed}.cdk-overlay-container .mat-datepicker-content .mat-calendar-header{height:34px;border-bottom:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button{left:14%;min-width:125px;border-right:1px ridge #bfc1c3;border-left:1px ridge #bfc1c3;border-radius:0;top:-20px;width:200%}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button .mat-button-wrapper{text-align:center;font-weight:700}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button:focus{border:2px solid #000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button{left:-73%;top:-20px;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:after{border-left-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button{top:-20px;left:1%;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:after{border-right-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-button-wrapper{text-transform:capitalize!important}.cdk-overlay-container .mat-datepicker-content .mat-calendar{border-bottom:1px solid #000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider{padding:0;border-bottom:none}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider:after{height:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-content{padding:0}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header{color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header th.ng-star-inserted{font-weight:700;font-size:15px;padding-top:2%;padding-bottom:2%;-moz-column-width:20px;column-width:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th{visibility:hidden}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:after{visibility:visible;color:#000;position:relative;left:-15px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:first-of-type:after{content:\"MON\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(2):after{left:-12px;content:\"TUE\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(3):after{left:-18px;content:\"WED\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(4):after{left:-14px;content:\"THU\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(5):after{left:-10px;content:\"FRI\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(6):after{content:\"SAT\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(7):after{content:\"SUN\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-label{font-weight:700;font-size:large;color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-selected{border:none;background-color:transparent;color:#fff}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-today{border:none;box-shadow:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell{border:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #fd0;border:2px solid #000;outline-offset:1px;z-index:1}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table{border-collapse:separate;border-spacing:10px}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:2px solid #fd0}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table{border-collapse:separate;border-spacing:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table tr:first-of-type{visibility:collapse}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #fd0;border:2px solid #000;outline-offset:1px}.cdk-overlay-container .mat-datepicker-content .time-container{height:80px;padding-top:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table{margin-left:0!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tbody{position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon-button .mat-button-wrapper{width:auto;height:auto}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon-button:focus{outline:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child{position:absolute;left:49px;top:15px;z-index:2}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:first-child [aria-label=\"expand_less icon\"]{position:absolute;left:-2px;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(3) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:82px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(5) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:169px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:last-child [aria-label=\"expand_less icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(2) [aria-label=\"expand_less icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2){display:flex;padding:20px 0 20px 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field{width:50px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field:before{color:#000;content:\"Hours\";position:relative;top:-5px;left:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-child(3) .mat-form-field:before{color:#000;content:\"Minutes\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:last-child{text-align:left;left:-15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .mat-form-field-disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-of-type(5) .mat-form-field:before{color:#000;content:\"Seconds\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian{border-bottom:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button{height:30px;top:21px;border-radius:0;color:#000;border-color:#000;background-color:#dee0e2;display:flex;justify-content:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button .mat-button-wrapper{position:relative;top:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4){display:flex;padding:2rem 0 2rem 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td:last-child{text-align:left}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child{position:absolute;left:49px;top:40px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:first-child [aria-label=\"expand_more icon\"]{position:absolute;top:15px;left:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(3) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;left:82px!important;top:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(5) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;top:15px;left:169px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:last-child [aria-label=\"expand_more icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:last-child.ng-star-inserted [aria-label=\"expand_more icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr td{padding:0;border-bottom:0;position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .spacer{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon{visibility:hidden;display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-button-wrapper{display:block;width:15px;height:8px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-wrapper{padding-bottom:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field{width:auto;max-width:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_less icon\"].mat-icon-button .mat-button-wrapper:after{content:\" \u25B2\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_more icon\"].mat-icon-button .mat-button-wrapper:after{content:\"\u25BC\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex .mat-form-field-infix{border:1px solid #000;height:20px;width:37px;display:flex;justify-content:center;align-items:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-underline{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input{height:33px;width:37px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .actions{padding-bottom:20px;margin-top:20px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .actions .mat-button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px 0 #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:focus{outline:2px solid #fd0}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:hover{background-color:#006400}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-icon{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-button-wrapper:before{color:#fff;content:\"Confirm\";position:relative;font-size:15px;left:-3px}"], encapsulation: 2 });
20848
21214
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DatetimePickerComponent, [{
20849
21215
  type: Component,
20850
21216
  args: [{
@@ -22681,40 +23047,12 @@ i0.ɵɵsetComponentScope(WriteDateContainerFieldComponent, [i1.NgIf, DatetimePic
22681
23047
  i0.ɵɵsetComponentScope(WriteCollectionFieldComponent, [i1.NgIf, i1.NgForOf, FieldWriteComponent, i2.NgControlStatusGroup, i2.FormGroupDirective], [FieldLabelPipe, FirstErrorPipe]);
22682
23048
  i0.ɵɵsetComponentScope(
22683
23049
  // ComponentLauncher web components
22684
- CaseFileViewFieldComponent, [i1.NgIf, CaseFileViewFolderComponent, i11.MediaViewerComponent], []);
23050
+ CaseFileViewFieldComponent, [i1.NgIf, i1.NgForOf, CaseFileViewFolderComponent, i11.MediaViewerComponent], []);
22685
23051
  i0.ɵɵsetComponentScope(LinkedCasesToTableComponent, [i1.NgIf, i1.NgForOf], [CaseReferencePipe, LinkCasesReasonValuePipe]);
22686
23052
  i0.ɵɵsetComponentScope(LinkedCasesFromTableComponent, [i1.NgIf, i1.NgForOf], [CaseReferencePipe, LinkCasesFromReasonValuePipe]);
22687
23053
  i0.ɵɵsetComponentScope(LinkCasesComponent, [i1.NgIf, i2.NgControlStatusGroup, i2.FormGroupDirective, i1.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.FormControlName, i2.FormArrayName, i1.NgForOf, i2.FormGroupName, i2.CheckboxControlValueAccessor], [CaseReferencePipe, LinkCasesReasonValuePipe]);
22688
23054
  i0.ɵɵsetComponentScope(CheckYourAnswersComponent, [i1.NgIf, i1.NgForOf], [CaseReferencePipe, LinkCasesReasonValuePipe]);
22689
23055
 
22690
- class Confirmation {
22691
- constructor(caseId, status, header, body) {
22692
- this.caseId = caseId;
22693
- this.status = status;
22694
- this.header = header;
22695
- this.body = body;
22696
- }
22697
- getCaseId() {
22698
- return this.caseId;
22699
- }
22700
- getStatus() {
22701
- return this.status;
22702
- }
22703
- getHeader() {
22704
- return this.header;
22705
- }
22706
- getBody() {
22707
- return this.body;
22708
- }
22709
- }
22710
-
22711
- var EventCompletionReturnStates;
22712
- (function (EventCompletionReturnStates) {
22713
- EventCompletionReturnStates["InProgress"] = "in-progress";
22714
- EventCompletionReturnStates["CompleteEvent"] = "complete-event";
22715
- EventCompletionReturnStates["CancelEvent"] = "cancel-event";
22716
- })(EventCompletionReturnStates || (EventCompletionReturnStates = {}));
22717
-
22718
23056
  function CaseEditSubmitComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
22719
23057
  i0.ɵɵelement(0, "div");
22720
23058
  } }
@@ -22731,9 +23069,9 @@ function CaseEditSubmitComponent_div_0_ng_template_6_h2_0_Template(rf, ctx) { if
22731
23069
  i0.ɵɵpipe(2, "ccdCaseReference");
22732
23070
  i0.ɵɵelementEnd();
22733
23071
  } if (rf & 2) {
22734
- const ctx_r12 = i0.ɵɵnextContext(3);
23072
+ const ctx_r10 = i0.ɵɵnextContext(3);
22735
23073
  i0.ɵɵadvance(1);
22736
- i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r12.getCaseId()), "");
23074
+ i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r10.getCaseId()), "");
22737
23075
  } }
22738
23076
  function CaseEditSubmitComponent_div_0_ng_template_6_Template(rf, ctx) { if (rf & 1) {
22739
23077
  i0.ɵɵtemplate(0, CaseEditSubmitComponent_div_0_ng_template_6_h2_0_Template, 3, 3, "h2", 15);
@@ -22741,291 +23079,237 @@ function CaseEditSubmitComponent_div_0_ng_template_6_Template(rf, ctx) { if (rf
22741
23079
  const ctx_r6 = i0.ɵɵnextContext(2);
22742
23080
  i0.ɵɵproperty("ngIf", ctx_r6.getCaseId());
22743
23081
  } }
22744
- function CaseEditSubmitComponent_div_0_div_8_Template(rf, ctx) { if (rf & 1) {
22745
- i0.ɵɵelementStart(0, "div", 17);
22746
- i0.ɵɵelementStart(1, "h1", 18);
22747
- i0.ɵɵtext(2, " Something went wrong ");
22748
- i0.ɵɵelementEnd();
22749
- i0.ɵɵelementStart(3, "div", 19);
22750
- i0.ɵɵelementStart(4, "p");
22751
- i0.ɵɵtext(5, "We're working to fix the problem. Try again shortly.");
22752
- i0.ɵɵelementEnd();
22753
- i0.ɵɵelementStart(6, "p");
22754
- i0.ɵɵelementStart(7, "a", 20);
22755
- i0.ɵɵtext(8, "Contact us");
22756
- i0.ɵɵelementEnd();
22757
- i0.ɵɵtext(9, " if you're still having problems.");
22758
- i0.ɵɵelementEnd();
22759
- i0.ɵɵelementEnd();
22760
- i0.ɵɵelementEnd();
22761
- } }
22762
- function CaseEditSubmitComponent_div_0_div_9_ul_5_li_1_Template(rf, ctx) { if (rf & 1) {
22763
- i0.ɵɵelementStart(0, "li", 25);
22764
- i0.ɵɵtext(1);
22765
- i0.ɵɵelementEnd();
22766
- } if (rf & 2) {
22767
- const fieldError_r15 = ctx.$implicit;
22768
- i0.ɵɵadvance(1);
22769
- i0.ɵɵtextInterpolate(fieldError_r15.message);
22770
- } }
22771
- function CaseEditSubmitComponent_div_0_div_9_ul_5_Template(rf, ctx) { if (rf & 1) {
22772
- i0.ɵɵelementStart(0, "ul", 23);
22773
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_div_9_ul_5_li_1_Template, 2, 1, "li", 24);
22774
- i0.ɵɵelementEnd();
22775
- } if (rf & 2) {
22776
- const ctx_r13 = i0.ɵɵnextContext(3);
22777
- i0.ɵɵadvance(1);
22778
- i0.ɵɵproperty("ngForOf", ctx_r13.error.details.field_errors);
22779
- } }
22780
- function CaseEditSubmitComponent_div_0_div_9_Template(rf, ctx) { if (rf & 1) {
22781
- i0.ɵɵelementStart(0, "div", 17);
22782
- i0.ɵɵelementStart(1, "h3", 21);
22783
- i0.ɵɵtext(2, " The event could not be created ");
22784
- i0.ɵɵelementEnd();
22785
- i0.ɵɵelementStart(3, "p");
22786
- i0.ɵɵtext(4);
22787
- i0.ɵɵelementEnd();
22788
- i0.ɵɵtemplate(5, CaseEditSubmitComponent_div_0_div_9_ul_5_Template, 2, 1, "ul", 22);
22789
- i0.ɵɵelementEnd();
22790
- } if (rf & 2) {
22791
- const ctx_r8 = i0.ɵɵnextContext(2);
22792
- i0.ɵɵadvance(4);
22793
- i0.ɵɵtextInterpolate(ctx_r8.error.message);
22794
- i0.ɵɵadvance(1);
22795
- i0.ɵɵproperty("ngIf", ctx_r8.error.details == null ? null : ctx_r8.error.details.field_errors);
22796
- } }
22797
- function CaseEditSubmitComponent_div_0_ng_container_12_span_3_Template(rf, ctx) { if (rf & 1) {
22798
- i0.ɵɵelementStart(0, "span", 29);
23082
+ function CaseEditSubmitComponent_div_0_ng_container_11_span_3_Template(rf, ctx) { if (rf & 1) {
23083
+ i0.ɵɵelementStart(0, "span", 20);
22799
23084
  i0.ɵɵtext(1, "Check the information below carefully.");
22800
23085
  i0.ɵɵelementEnd();
22801
23086
  } }
22802
- function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_ng_container_1_ng_container_1_th_2_Template(rf, ctx) { if (rf & 1) {
22803
- i0.ɵɵelementStart(0, "th", 36);
22804
- i0.ɵɵelementStart(1, "span", 29);
23087
+ function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_ng_container_1_ng_container_1_th_2_Template(rf, ctx) { if (rf & 1) {
23088
+ i0.ɵɵelementStart(0, "th", 27);
23089
+ i0.ɵɵelementStart(1, "span", 20);
22805
23090
  i0.ɵɵtext(2);
22806
23091
  i0.ɵɵelementEnd();
22807
23092
  i0.ɵɵelementEnd();
22808
23093
  } if (rf & 2) {
22809
- const field_r21 = i0.ɵɵnextContext(2).$implicit;
23094
+ const field_r16 = i0.ɵɵnextContext(2).$implicit;
22810
23095
  i0.ɵɵadvance(2);
22811
- i0.ɵɵtextInterpolate(field_r21.label);
23096
+ i0.ɵɵtextInterpolate(field_r16.label);
22812
23097
  } }
22813
- function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_ng_container_1_ng_container_1_a_6_Template(rf, ctx) { if (rf & 1) {
22814
- const _r28 = i0.ɵɵgetCurrentView();
23098
+ function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_ng_container_1_ng_container_1_a_6_Template(rf, ctx) { if (rf & 1) {
23099
+ const _r23 = i0.ɵɵgetCurrentView();
22815
23100
  i0.ɵɵelementStart(0, "a", 13);
22816
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_ng_container_1_ng_container_1_a_6_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r28); const page_r18 = i0.ɵɵnextContext(4).$implicit; const ctx_r26 = i0.ɵɵnextContext(3); return ctx_r26.navigateToPage(page_r18.id); });
22817
- i0.ɵɵelementStart(1, "span", 29);
23101
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_ng_container_1_ng_container_1_a_6_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r23); const page_r13 = i0.ɵɵnextContext(4).$implicit; const ctx_r21 = i0.ɵɵnextContext(3); return ctx_r21.navigateToPage(page_r13.id); });
23102
+ i0.ɵɵelementStart(1, "span", 20);
22818
23103
  i0.ɵɵtext(2, "Change");
22819
23104
  i0.ɵɵelementEnd();
22820
23105
  i0.ɵɵelementEnd();
22821
23106
  } if (rf & 2) {
22822
- const field_r21 = i0.ɵɵnextContext(2).$implicit;
23107
+ const field_r16 = i0.ɵɵnextContext(2).$implicit;
22823
23108
  i0.ɵɵadvance(1);
22824
- i0.ɵɵattributeInterpolate1("aria-label", "Change ", field_r21.label, "");
23109
+ i0.ɵɵattributeInterpolate1("aria-label", "Change ", field_r16.label, "");
22825
23110
  } }
22826
- function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
23111
+ function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
22827
23112
  i0.ɵɵelementContainerStart(0);
22828
- i0.ɵɵelementStart(1, "tr", 30);
22829
- i0.ɵɵtemplate(2, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_ng_container_1_ng_container_1_th_2_Template, 3, 1, "th", 31);
22830
- i0.ɵɵelementStart(3, "td", 32);
22831
- i0.ɵɵelement(4, "ccd-field-read", 33);
23113
+ i0.ɵɵelementStart(1, "tr", 21);
23114
+ i0.ɵɵtemplate(2, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_ng_container_1_ng_container_1_th_2_Template, 3, 1, "th", 22);
23115
+ i0.ɵɵelementStart(3, "td", 23);
23116
+ i0.ɵɵelement(4, "ccd-field-read", 24);
22832
23117
  i0.ɵɵelementEnd();
22833
- i0.ɵɵelementStart(5, "td", 34);
22834
- i0.ɵɵtemplate(6, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_ng_container_1_ng_container_1_a_6_Template, 3, 1, "a", 35);
23118
+ i0.ɵɵelementStart(5, "td", 25);
23119
+ i0.ɵɵtemplate(6, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_ng_container_1_ng_container_1_a_6_Template, 3, 1, "a", 26);
22835
23120
  i0.ɵɵelementEnd();
22836
23121
  i0.ɵɵelementEnd();
22837
23122
  i0.ɵɵelementContainerEnd();
22838
23123
  } if (rf & 2) {
22839
- const field_r21 = i0.ɵɵnextContext().$implicit;
22840
- const ctx_r22 = i0.ɵɵnextContext(5);
23124
+ const field_r16 = i0.ɵɵnextContext().$implicit;
23125
+ const ctx_r17 = i0.ɵɵnextContext(5);
22841
23126
  i0.ɵɵadvance(1);
22842
- i0.ɵɵproperty("caseField", field_r21)("hidden", field_r21.hidden)("formGroup", ctx_r22.editForm.controls["data"])("contextFields", ctx_r22.contextFields);
23127
+ i0.ɵɵproperty("caseField", field_r16)("hidden", field_r16.hidden)("formGroup", ctx_r17.editForm.controls["data"])("contextFields", ctx_r17.contextFields);
22843
23128
  i0.ɵɵadvance(1);
22844
- i0.ɵɵproperty("ngIf", !ctx_r22.isLabel(field_r21) && !ctx_r22.isCaseFlagSubmission);
23129
+ i0.ɵɵproperty("ngIf", !ctx_r17.isLabel(field_r16) && !ctx_r17.caseEdit.isCaseFlagSubmission);
22845
23130
  i0.ɵɵadvance(1);
22846
- i0.ɵɵattribute("colspan", ctx_r22.isLabel(field_r21) ? "2" : "1");
23131
+ i0.ɵɵattribute("colspan", ctx_r17.isLabel(field_r16) ? "2" : "1");
22847
23132
  i0.ɵɵadvance(1);
22848
- i0.ɵɵproperty("formGroup", ctx_r22.editForm.controls["data"])("topLevelFormGroup", ctx_r22.editForm.controls["data"])("caseField", ctx_r22.summaryCaseField(field_r21))("context", ctx_r22.paletteContext)("caseFields", ctx_r22.contextFields);
23133
+ i0.ɵɵproperty("formGroup", ctx_r17.editForm.controls["data"])("topLevelFormGroup", ctx_r17.editForm.controls["data"])("caseField", ctx_r17.summaryCaseField(field_r16))("context", ctx_r17.paletteContext)("caseFields", ctx_r17.contextFields);
22849
23134
  i0.ɵɵadvance(2);
22850
- i0.ɵɵproperty("ngIf", ctx_r22.isChangeAllowed(field_r21));
23135
+ i0.ɵɵproperty("ngIf", ctx_r17.isChangeAllowed(field_r16));
22851
23136
  } }
22852
- function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
23137
+ function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
22853
23138
  i0.ɵɵelementContainerStart(0);
22854
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_ng_container_1_ng_container_1_Template, 7, 12, "ng-container", 0);
23139
+ i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_ng_container_1_ng_container_1_Template, 7, 12, "ng-container", 0);
22855
23140
  i0.ɵɵelementContainerEnd();
22856
23141
  } if (rf & 2) {
22857
- const field_r21 = ctx.$implicit;
22858
- const ctx_r20 = i0.ɵɵnextContext(5);
23142
+ const field_r16 = ctx.$implicit;
23143
+ const ctx_r15 = i0.ɵɵnextContext(5);
22859
23144
  i0.ɵɵadvance(1);
22860
- i0.ɵɵproperty("ngIf", ctx_r20.canShowFieldInCYA(field_r21));
23145
+ i0.ɵɵproperty("ngIf", ctx_r15.canShowFieldInCYA(field_r16));
22861
23146
  } }
22862
23147
  const _c0$f = function (a0, a4) { return [a0, false, undefined, true, a4]; };
22863
- function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {
23148
+ function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {
22864
23149
  i0.ɵɵelementContainerStart(0);
22865
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_ng_container_1_Template, 2, 1, "ng-container", 28);
23150
+ i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_ng_container_1_Template, 2, 1, "ng-container", 19);
22866
23151
  i0.ɵɵpipe(2, "ccdCYAPageLabelFilter");
22867
23152
  i0.ɵɵpipe(3, "ccdReadFieldsFilter");
22868
23153
  i0.ɵɵpipe(4, "ccdPageFields");
22869
23154
  i0.ɵɵelementContainerEnd();
22870
23155
  } if (rf & 2) {
22871
- const page_r18 = i0.ɵɵnextContext().$implicit;
22872
- const ctx_r19 = i0.ɵɵnextContext(3);
23156
+ const page_r13 = i0.ɵɵnextContext().$implicit;
23157
+ const ctx_r14 = i0.ɵɵnextContext(3);
22873
23158
  i0.ɵɵadvance(1);
22874
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBindV(3, 3, i0.ɵɵpureFunction2(12, _c0$f, i0.ɵɵpipeBind2(4, 9, page_r18, ctx_r19.editForm), ctx_r19.editForm.controls["data"]))));
23159
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBindV(3, 3, i0.ɵɵpureFunction2(12, _c0$f, i0.ɵɵpipeBind2(4, 9, page_r13, ctx_r14.editForm), ctx_r14.editForm.controls["data"]))));
22875
23160
  } }
22876
- function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_Template(rf, ctx) { if (rf & 1) {
23161
+ function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_Template(rf, ctx) { if (rf & 1) {
22877
23162
  i0.ɵɵelementContainerStart(0);
22878
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_ng_container_1_Template, 5, 15, "ng-container", 0);
23163
+ i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_ng_container_1_Template, 5, 15, "ng-container", 0);
22879
23164
  i0.ɵɵelementContainerEnd();
22880
23165
  } if (rf & 2) {
22881
- const page_r18 = ctx.$implicit;
22882
- const ctx_r17 = i0.ɵɵnextContext(3);
23166
+ const page_r13 = ctx.$implicit;
23167
+ const ctx_r12 = i0.ɵɵnextContext(3);
22883
23168
  i0.ɵɵadvance(1);
22884
- i0.ɵɵproperty("ngIf", ctx_r17.isShown(page_r18));
23169
+ i0.ɵɵproperty("ngIf", ctx_r12.isShown(page_r13));
22885
23170
  } }
22886
- function CaseEditSubmitComponent_div_0_ng_container_12_Template(rf, ctx) { if (rf & 1) {
23171
+ function CaseEditSubmitComponent_div_0_ng_container_11_Template(rf, ctx) { if (rf & 1) {
22887
23172
  i0.ɵɵelementContainerStart(0);
22888
23173
  i0.ɵɵelementStart(1, "h2", 16);
22889
23174
  i0.ɵɵtext(2);
22890
23175
  i0.ɵɵelementEnd();
22891
- i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_12_span_3_Template, 2, 0, "span", 26);
22892
- i0.ɵɵelementStart(4, "table", 27);
23176
+ i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_11_span_3_Template, 2, 0, "span", 17);
23177
+ i0.ɵɵelementStart(4, "table", 18);
22893
23178
  i0.ɵɵelementStart(5, "tbody");
22894
- i0.ɵɵtemplate(6, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_6_Template, 2, 1, "ng-container", 28);
23179
+ i0.ɵɵtemplate(6, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_6_Template, 2, 1, "ng-container", 19);
22895
23180
  i0.ɵɵelementEnd();
22896
23181
  i0.ɵɵelementEnd();
22897
23182
  i0.ɵɵelementContainerEnd();
22898
23183
  } if (rf & 2) {
22899
- const ctx_r9 = i0.ɵɵnextContext(2);
23184
+ const ctx_r7 = i0.ɵɵnextContext(2);
22900
23185
  i0.ɵɵadvance(2);
22901
- i0.ɵɵtextInterpolate(ctx_r9.pageTitle);
23186
+ i0.ɵɵtextInterpolate(ctx_r7.pageTitle);
22902
23187
  i0.ɵɵadvance(1);
22903
- i0.ɵɵproperty("ngIf", !ctx_r9.isCaseFlagSubmission);
23188
+ i0.ɵɵproperty("ngIf", !ctx_r7.caseEdit.isCaseFlagSubmission);
22904
23189
  i0.ɵɵadvance(3);
22905
- i0.ɵɵproperty("ngForOf", ctx_r9.wizard.pages);
23190
+ i0.ɵɵproperty("ngForOf", ctx_r7.wizard.pages);
22906
23191
  } }
22907
- function CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_tr_3_Template(rf, ctx) { if (rf & 1) {
22908
- i0.ɵɵelementStart(0, "tr", 41);
22909
- i0.ɵɵelementStart(1, "th", 42);
23192
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_tr_3_Template(rf, ctx) { if (rf & 1) {
23193
+ i0.ɵɵelementStart(0, "tr", 32);
23194
+ i0.ɵɵelementStart(1, "th", 33);
22910
23195
  i0.ɵɵtext(2);
22911
23196
  i0.ɵɵelementEnd();
22912
- i0.ɵɵelementStart(3, "td", 43);
22913
- i0.ɵɵelement(4, "ccd-field-read", 44);
23197
+ i0.ɵɵelementStart(3, "td", 34);
23198
+ i0.ɵɵelement(4, "ccd-field-read", 35);
22914
23199
  i0.ɵɵelementEnd();
22915
23200
  i0.ɵɵelementEnd();
22916
23201
  } if (rf & 2) {
22917
- const field_r33 = i0.ɵɵnextContext().$implicit;
22918
- const ctx_r34 = i0.ɵɵnextContext(3);
22919
- i0.ɵɵproperty("caseField", field_r33)("formGroup", ctx_r34.editForm.controls["data"])("contextFields", ctx_r34.contextFields);
23202
+ const field_r28 = i0.ɵɵnextContext().$implicit;
23203
+ const ctx_r29 = i0.ɵɵnextContext(3);
23204
+ i0.ɵɵproperty("caseField", field_r28)("formGroup", ctx_r29.editForm.controls["data"])("contextFields", ctx_r29.contextFields);
22920
23205
  i0.ɵɵadvance(2);
22921
- i0.ɵɵtextInterpolate(field_r33.label);
23206
+ i0.ɵɵtextInterpolate(field_r28.label);
22922
23207
  i0.ɵɵadvance(2);
22923
- i0.ɵɵproperty("formGroup", ctx_r34.editForm.controls["data"])("caseField", ctx_r34.summaryCaseField(field_r33));
23208
+ i0.ɵɵproperty("formGroup", ctx_r29.editForm.controls["data"])("caseField", ctx_r29.summaryCaseField(field_r28));
22924
23209
  } }
22925
- function CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_tr_4_Template(rf, ctx) { if (rf & 1) {
22926
- i0.ɵɵelementStart(0, "tr", 45);
22927
- i0.ɵɵelementStart(1, "td", 46);
22928
- i0.ɵɵelement(2, "ccd-field-read", 47);
23210
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_tr_4_Template(rf, ctx) { if (rf & 1) {
23211
+ i0.ɵɵelementStart(0, "tr", 36);
23212
+ i0.ɵɵelementStart(1, "td", 37);
23213
+ i0.ɵɵelement(2, "ccd-field-read", 38);
22929
23214
  i0.ɵɵelementEnd();
22930
23215
  i0.ɵɵelementEnd();
22931
23216
  } if (rf & 2) {
22932
- const field_r33 = i0.ɵɵnextContext().$implicit;
22933
- const ctx_r35 = i0.ɵɵnextContext(3);
22934
- i0.ɵɵproperty("caseField", field_r33)("formGroup", ctx_r35.editForm.controls["data"])("contextFields", ctx_r35.contextFields);
23217
+ const field_r28 = i0.ɵɵnextContext().$implicit;
23218
+ const ctx_r30 = i0.ɵɵnextContext(3);
23219
+ i0.ɵɵproperty("caseField", field_r28)("formGroup", ctx_r30.editForm.controls["data"])("contextFields", ctx_r30.contextFields);
22935
23220
  i0.ɵɵadvance(2);
22936
- i0.ɵɵproperty("formGroup", ctx_r35.editForm.controls["data"])("caseField", ctx_r35.summaryCaseField(field_r33))("caseFields", ctx_r35.contextFields);
23221
+ i0.ɵɵproperty("formGroup", ctx_r30.editForm.controls["data"])("caseField", ctx_r30.summaryCaseField(field_r28))("caseFields", ctx_r30.contextFields);
22937
23222
  } }
22938
- function CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_Template(rf, ctx) { if (rf & 1) {
23223
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_Template(rf, ctx) { if (rf & 1) {
22939
23224
  i0.ɵɵelementContainerStart(0);
22940
- i0.ɵɵelementContainerStart(1, 38);
23225
+ i0.ɵɵelementContainerStart(1, 29);
22941
23226
  i0.ɵɵpipe(2, "ccdIsCompound");
22942
- i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_tr_3_Template, 5, 6, "tr", 39);
22943
- i0.ɵɵtemplate(4, CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_tr_4_Template, 3, 6, "tr", 40);
23227
+ i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_tr_3_Template, 5, 6, "tr", 30);
23228
+ i0.ɵɵtemplate(4, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_tr_4_Template, 3, 6, "tr", 31);
22944
23229
  i0.ɵɵelementContainerEnd();
22945
23230
  i0.ɵɵelementContainerEnd();
22946
23231
  } if (rf & 2) {
22947
- const field_r33 = ctx.$implicit;
23232
+ const field_r28 = ctx.$implicit;
22948
23233
  i0.ɵɵadvance(1);
22949
- i0.ɵɵproperty("ngSwitch", !i0.ɵɵpipeBind1(2, 3, field_r33));
23234
+ i0.ɵɵproperty("ngSwitch", !i0.ɵɵpipeBind1(2, 3, field_r28));
22950
23235
  i0.ɵɵadvance(2);
22951
23236
  i0.ɵɵproperty("ngSwitchCase", true);
22952
23237
  i0.ɵɵadvance(1);
22953
23238
  i0.ɵɵproperty("ngSwitchCase", false);
22954
23239
  } }
22955
- function CaseEditSubmitComponent_div_0_ng_container_13_Template(rf, ctx) { if (rf & 1) {
23240
+ function CaseEditSubmitComponent_div_0_ng_container_12_Template(rf, ctx) { if (rf & 1) {
22956
23241
  i0.ɵɵelementContainerStart(0);
22957
- i0.ɵɵelementStart(1, "table", 37);
23242
+ i0.ɵɵelementStart(1, "table", 28);
22958
23243
  i0.ɵɵelementStart(2, "tbody");
22959
- i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_Template, 5, 5, "ng-container", 28);
23244
+ i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_Template, 5, 5, "ng-container", 19);
22960
23245
  i0.ɵɵelementEnd();
22961
23246
  i0.ɵɵelementEnd();
22962
23247
  i0.ɵɵelementContainerEnd();
22963
23248
  } if (rf & 2) {
22964
- const ctx_r10 = i0.ɵɵnextContext(2);
23249
+ const ctx_r8 = i0.ɵɵnextContext(2);
22965
23250
  i0.ɵɵadvance(3);
22966
- i0.ɵɵproperty("ngForOf", ctx_r10.showSummaryFields);
23251
+ i0.ɵɵproperty("ngForOf", ctx_r8.showSummaryFields);
22967
23252
  } }
22968
- function CaseEditSubmitComponent_div_0_ng_container_14_fieldset_1_Template(rf, ctx) { if (rf & 1) {
22969
- i0.ɵɵelementStart(0, "fieldset", 49);
22970
- i0.ɵɵelement(1, "legend", 50);
22971
- i0.ɵɵelementStart(2, "div", 51);
22972
- i0.ɵɵelementStart(3, "label", 52);
23253
+ function CaseEditSubmitComponent_div_0_ng_container_13_fieldset_1_Template(rf, ctx) { if (rf & 1) {
23254
+ i0.ɵɵelementStart(0, "fieldset", 40);
23255
+ i0.ɵɵelement(1, "legend", 41);
23256
+ i0.ɵɵelementStart(2, "div", 42);
23257
+ i0.ɵɵelementStart(3, "label", 43);
22973
23258
  i0.ɵɵtext(4, " Event summary (optional) ");
22974
- i0.ɵɵelementStart(5, "span", 53);
23259
+ i0.ɵɵelementStart(5, "span", 44);
22975
23260
  i0.ɵɵtext(6, "A few words describing the purpose of the event.");
22976
23261
  i0.ɵɵelementEnd();
22977
23262
  i0.ɵɵelementEnd();
22978
- i0.ɵɵelement(7, "input", 54);
23263
+ i0.ɵɵelement(7, "input", 45);
22979
23264
  i0.ɵɵelementEnd();
22980
- i0.ɵɵelementStart(8, "div", 51);
22981
- i0.ɵɵelementStart(9, "label", 55);
23265
+ i0.ɵɵelementStart(8, "div", 42);
23266
+ i0.ɵɵelementStart(9, "label", 46);
22982
23267
  i0.ɵɵtext(10, "Event description (optional)");
22983
23268
  i0.ɵɵelementEnd();
22984
- i0.ɵɵelement(11, "textarea", 56);
23269
+ i0.ɵɵelement(11, "textarea", 47);
22985
23270
  i0.ɵɵelementEnd();
22986
23271
  i0.ɵɵelementEnd();
22987
23272
  } }
22988
- function CaseEditSubmitComponent_div_0_ng_container_14_Template(rf, ctx) { if (rf & 1) {
23273
+ function CaseEditSubmitComponent_div_0_ng_container_13_Template(rf, ctx) { if (rf & 1) {
22989
23274
  i0.ɵɵelementContainerStart(0);
22990
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_14_fieldset_1_Template, 12, 0, "fieldset", 48);
23275
+ i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_13_fieldset_1_Template, 12, 0, "fieldset", 39);
22991
23276
  i0.ɵɵelementContainerEnd();
22992
23277
  } if (rf & 2) {
22993
- const ctx_r11 = i0.ɵɵnextContext(2);
23278
+ const ctx_r9 = i0.ɵɵnextContext(2);
22994
23279
  i0.ɵɵadvance(1);
22995
- i0.ɵɵproperty("ngIf", ctx_r11.profile && !ctx_r11.isSolicitor());
23280
+ i0.ɵɵproperty("ngIf", ctx_r9.profile && !ctx_r9.isSolicitor());
22996
23281
  } }
22997
23282
  function CaseEditSubmitComponent_div_0_Template(rf, ctx) { if (rf & 1) {
22998
- const _r40 = i0.ɵɵgetCurrentView();
23283
+ const _r35 = i0.ɵɵgetCurrentView();
22999
23284
  i0.ɵɵelementStart(0, "div");
23000
23285
  i0.ɵɵelementStart(1, "h1", 2);
23001
23286
  i0.ɵɵtext(2);
23002
23287
  i0.ɵɵelementEnd();
23003
23288
  i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_div_3_Template, 1, 0, "div", 3);
23004
23289
  i0.ɵɵtemplate(4, CaseEditSubmitComponent_div_0_ng_template_4_Template, 2, 5, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
23005
- i0.ɵɵtemplate(6, CaseEditSubmitComponent_div_0_ng_template_6_Template, 1, 1, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
23006
- i0.ɵɵtemplate(8, CaseEditSubmitComponent_div_0_div_8_Template, 10, 0, "div", 6);
23007
- i0.ɵɵtemplate(9, CaseEditSubmitComponent_div_0_div_9_Template, 6, 2, "div", 6);
23008
- i0.ɵɵelementStart(10, "ccd-callback-errors", 7);
23009
- i0.ɵɵlistener("callbackErrorsContext", function CaseEditSubmitComponent_div_0_Template_ccd_callback_errors_callbackErrorsContext_10_listener($event) { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(); return ctx_r39.callbackErrorsNotify($event); });
23010
- i0.ɵɵelementEnd();
23011
- i0.ɵɵelementStart(11, "form", 8);
23012
- i0.ɵɵlistener("submit", function CaseEditSubmitComponent_div_0_Template_form_submit_11_listener() { i0.ɵɵrestoreView(_r40); const ctx_r41 = i0.ɵɵnextContext(); return ctx_r41.submit(); });
23013
- i0.ɵɵtemplate(12, CaseEditSubmitComponent_div_0_ng_container_12_Template, 7, 3, "ng-container", 0);
23014
- i0.ɵɵtemplate(13, CaseEditSubmitComponent_div_0_ng_container_13_Template, 4, 1, "ng-container", 0);
23015
- i0.ɵɵtemplate(14, CaseEditSubmitComponent_div_0_ng_container_14_Template, 2, 1, "ng-container", 0);
23016
- i0.ɵɵelementStart(15, "div", 9);
23017
- i0.ɵɵelementStart(16, "button", 10);
23018
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r40); const ctx_r42 = i0.ɵɵnextContext(); return ctx_r42.previous(); });
23019
- i0.ɵɵtext(17, "Previous");
23020
- i0.ɵɵelementEnd();
23021
- i0.ɵɵelementStart(18, "button", 11);
23022
- i0.ɵɵtext(19);
23023
- i0.ɵɵelementEnd();
23024
- i0.ɵɵelementEnd();
23025
- i0.ɵɵelementStart(20, "p", 12);
23026
- i0.ɵɵelementStart(21, "a", 13);
23027
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_Template_a_click_21_listener() { i0.ɵɵrestoreView(_r40); const ctx_r43 = i0.ɵɵnextContext(); return ctx_r43.cancel(); });
23028
- i0.ɵɵtext(22);
23290
+ i0.ɵɵtemplate(6, CaseEditSubmitComponent_div_0_ng_template_6_Template, 1, 1, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
23291
+ i0.ɵɵelement(8, "ccd-case-edit-generic-errors", 6);
23292
+ i0.ɵɵelementStart(9, "ccd-callback-errors", 7);
23293
+ i0.ɵɵlistener("callbackErrorsContext", function CaseEditSubmitComponent_div_0_Template_ccd_callback_errors_callbackErrorsContext_9_listener($event) { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return ctx_r34.callbackErrorsNotify($event); });
23294
+ i0.ɵɵelementEnd();
23295
+ i0.ɵɵelementStart(10, "form", 8);
23296
+ i0.ɵɵlistener("submit", function CaseEditSubmitComponent_div_0_Template_form_submit_10_listener() { i0.ɵɵrestoreView(_r35); const ctx_r36 = i0.ɵɵnextContext(); return ctx_r36.submit(); });
23297
+ i0.ɵɵtemplate(11, CaseEditSubmitComponent_div_0_ng_container_11_Template, 7, 3, "ng-container", 0);
23298
+ i0.ɵɵtemplate(12, CaseEditSubmitComponent_div_0_ng_container_12_Template, 4, 1, "ng-container", 0);
23299
+ i0.ɵɵtemplate(13, CaseEditSubmitComponent_div_0_ng_container_13_Template, 2, 1, "ng-container", 0);
23300
+ i0.ɵɵelementStart(14, "div", 9);
23301
+ i0.ɵɵelementStart(15, "button", 10);
23302
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r37 = i0.ɵɵnextContext(); return ctx_r37.previous(); });
23303
+ i0.ɵɵtext(16, "Previous");
23304
+ i0.ɵɵelementEnd();
23305
+ i0.ɵɵelementStart(17, "button", 11);
23306
+ i0.ɵɵtext(18);
23307
+ i0.ɵɵelementEnd();
23308
+ i0.ɵɵelementEnd();
23309
+ i0.ɵɵelementStart(19, "p", 12);
23310
+ i0.ɵɵelementStart(20, "a", 13);
23311
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_Template_a_click_20_listener() { i0.ɵɵrestoreView(_r35); const ctx_r38 = i0.ɵɵnextContext(); return ctx_r38.cancel(); });
23312
+ i0.ɵɵtext(21);
23029
23313
  i0.ɵɵelementEnd();
23030
23314
  i0.ɵɵelementEnd();
23031
23315
  i0.ɵɵelementEnd();
@@ -23039,11 +23323,9 @@ function CaseEditSubmitComponent_div_0_Template(rf, ctx) { if (rf & 1) {
23039
23323
  i0.ɵɵadvance(1);
23040
23324
  i0.ɵɵproperty("ngIf", ctx_r0.getCaseTitle())("ngIfThen", _r3)("ngIfElse", _r5);
23041
23325
  i0.ɵɵadvance(5);
23042
- i0.ɵɵproperty("ngIf", ctx_r0.error && (!(ctx_r0.error.callbackErrors || ctx_r0.error.callbackWarnings || ctx_r0.error.details) && !ctx_r0.error.message));
23326
+ i0.ɵɵproperty("error", ctx_r0.caseEdit.error);
23043
23327
  i0.ɵɵadvance(1);
23044
- i0.ɵɵproperty("ngIf", ctx_r0.error && (ctx_r0.error.details || ctx_r0.error.message));
23045
- i0.ɵɵadvance(1);
23046
- i0.ɵɵproperty("callbackErrorsSubject", ctx_r0.callbackErrorsSubject);
23328
+ i0.ɵɵproperty("callbackErrorsSubject", ctx_r0.caseEdit.callbackErrorsSubject);
23047
23329
  i0.ɵɵadvance(1);
23048
23330
  i0.ɵɵproperty("formGroup", ctx_r0.editForm);
23049
23331
  i0.ɵɵadvance(1);
@@ -23053,52 +23335,42 @@ function CaseEditSubmitComponent_div_0_Template(rf, ctx) { if (rf & 1) {
23053
23335
  i0.ɵɵadvance(1);
23054
23336
  i0.ɵɵproperty("ngIf", ctx_r0.showEventNotes());
23055
23337
  i0.ɵɵadvance(2);
23056
- i0.ɵɵproperty("disabled", !ctx_r0.hasPrevious() || ctx_r0.isSubmitting);
23338
+ i0.ɵɵproperty("disabled", !ctx_r0.hasPrevious() || ctx_r0.caseEdit.isSubmitting);
23057
23339
  i0.ɵɵadvance(2);
23058
23340
  i0.ɵɵproperty("disabled", ctx_r0.isDisabled);
23059
23341
  i0.ɵɵadvance(1);
23060
23342
  i0.ɵɵtextInterpolate(ctx_r0.triggerText);
23061
23343
  i0.ɵɵadvance(2);
23062
- i0.ɵɵclassProp("disabled", ctx_r0.isSubmitting);
23344
+ i0.ɵɵclassProp("disabled", ctx_r0.caseEdit.isSubmitting);
23063
23345
  i0.ɵɵadvance(1);
23064
23346
  i0.ɵɵtextInterpolate(ctx_r0.getCancelText());
23065
23347
  } }
23066
23348
  function CaseEditSubmitComponent_ccd_case_event_completion_1_Template(rf, ctx) { if (rf & 1) {
23067
- const _r45 = i0.ɵɵgetCurrentView();
23068
- i0.ɵɵelementStart(0, "ccd-case-event-completion", 57);
23069
- i0.ɵɵlistener("eventCanBeCompleted", function CaseEditSubmitComponent_ccd_case_event_completion_1_Template_ccd_case_event_completion_eventCanBeCompleted_0_listener($event) { i0.ɵɵrestoreView(_r45); const ctx_r44 = i0.ɵɵnextContext(); return ctx_r44.onEventCanBeCompleted($event); });
23349
+ const _r40 = i0.ɵɵgetCurrentView();
23350
+ i0.ɵɵelementStart(0, "ccd-case-event-completion", 48);
23351
+ i0.ɵɵlistener("eventCanBeCompleted", function CaseEditSubmitComponent_ccd_case_event_completion_1_Template_ccd_case_event_completion_eventCanBeCompleted_0_listener($event) { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(); return ctx_r39.onEventCanBeCompleted($event); });
23070
23352
  i0.ɵɵelementEnd();
23071
23353
  } if (rf & 2) {
23072
23354
  const ctx_r1 = i0.ɵɵnextContext();
23073
- i0.ɵɵproperty("eventCompletionParams", ctx_r1.eventCompletionParams);
23355
+ i0.ɵɵproperty("eventCompletionParams", ctx_r1.caseEdit.eventCompletionParams);
23074
23356
  } }
23075
23357
  // @dynamic
23076
23358
  class CaseEditSubmitComponent {
23077
- constructor(caseEdit, formValueService, formErrorService, fieldsUtils, caseFieldService, route, router, orderService, profileNotifier, sessionStorageService, caseNotifier) {
23359
+ constructor(caseEdit, fieldsUtils, caseFieldService, route, orderService, profileNotifier) {
23078
23360
  this.caseEdit = caseEdit;
23079
- this.formValueService = formValueService;
23080
- this.formErrorService = formErrorService;
23081
23361
  this.fieldsUtils = fieldsUtils;
23082
23362
  this.caseFieldService = caseFieldService;
23083
23363
  this.route = route;
23084
- this.router = router;
23085
23364
  this.orderService = orderService;
23086
23365
  this.profileNotifier = profileNotifier;
23087
- this.sessionStorageService = sessionStorageService;
23088
- this.caseNotifier = caseNotifier;
23089
- this.callbackErrorsSubject = new Subject();
23090
- this.ignoreWarning = false;
23091
23366
  this.paletteContext = PaletteContext.CHECK_YOUR_ANSWER;
23092
- this.eventCompletionChecksRequired = false;
23093
- this.isCaseFlagSubmission = false;
23094
- this.isLinkedCasesSubmission = false;
23095
23367
  }
23096
23368
  get isDisabled() {
23097
23369
  // EUI-3452.
23098
23370
  // We don't need to check the validity of the editForm as it is readonly.
23099
23371
  // This was causing issues with hidden fields that aren't wanted but have
23100
23372
  // not been disabled.
23101
- return this.isSubmitting || this.hasErrors;
23373
+ return this.caseEdit.isSubmitting || this.hasErrors;
23102
23374
  }
23103
23375
  ngOnInit() {
23104
23376
  this.profileSubscription = this.profileNotifier.profile.subscribe(_ => this.profile = _);
@@ -23107,222 +23379,51 @@ class CaseEditSubmitComponent {
23107
23379
  this.editForm = this.caseEdit.form;
23108
23380
  this.wizard = this.caseEdit.wizard;
23109
23381
  this.showSummaryFields = this.sortFieldsByShowSummaryContent(this.eventTrigger.case_fields);
23110
- this.isSubmitting = false;
23382
+ this.caseEdit.isSubmitting = false;
23111
23383
  this.contextFields = this.getCaseFields();
23112
23384
  // Indicates if the submission is for a Case Flag, as opposed to a "regular" form submission, by the presence of
23113
23385
  // a FlagLauncher field in the event trigger
23114
- this.isCaseFlagSubmission = this.eventTrigger.case_fields.some(caseField => FieldsUtils.isFlagLauncherCaseField(caseField));
23115
- this.pageTitle = this.isCaseFlagSubmission ? 'Review flag details' : 'Check your answers';
23116
- this.isLinkedCasesSubmission = this.eventTrigger.case_fields.some(caseField => FieldsUtils.isComponentLauncherCaseField(caseField));
23386
+ this.caseEdit.isCaseFlagSubmission = this.eventTrigger.case_fields.some(caseField => FieldsUtils.isFlagLauncherCaseField(caseField));
23387
+ this.caseEdit.isLinkedCasesSubmission =
23388
+ this.eventTrigger.case_fields.some(caseField => FieldsUtils.isComponentLauncherCaseField(caseField));
23389
+ this.pageTitle = this.caseEdit.isCaseFlagSubmission ? 'Review flag details' : 'Check your answers';
23117
23390
  }
23118
23391
  ngOnDestroy() {
23392
+ /* istanbul ignore else */
23119
23393
  if (this.profileSubscription) {
23120
23394
  this.profileSubscription.unsubscribe();
23121
23395
  }
23122
23396
  }
23123
23397
  submit() {
23124
- this.isSubmitting = true;
23125
- // We have to run the event completion checks if task in session storage
23126
- // and if the task is in session storage, then is it associated to the case
23127
- let taskInSessionStorage;
23128
- const taskStr = this.sessionStorageService.getItem('taskToComplete');
23129
- if (taskStr) {
23130
- taskInSessionStorage = JSON.parse(taskStr);
23131
- }
23132
- if (taskInSessionStorage && taskInSessionStorage.case_id === this.getCaseId()) {
23133
- // Show event completion component to perform event completion checks
23134
- this.eventCompletionParams = {
23135
- caseId: this.getCaseId(),
23136
- eventId: this.getEventId(),
23137
- task: taskInSessionStorage
23138
- };
23139
- this.eventCompletionChecksRequired = true;
23140
- }
23141
- else {
23142
- // Task not in session storage, proceed to submit
23143
- const caseEventData = this.generateCaseEventData();
23144
- this.caseSubmit(caseEventData);
23145
- }
23146
- }
23147
- onEventCanBeCompleted(eventCanBeCompleted) {
23148
- if (eventCanBeCompleted) {
23149
- // Submit
23150
- const caseEventData = this.generateCaseEventData();
23151
- this.caseSubmit(caseEventData);
23152
- }
23153
- else {
23154
- // Navigate to tasks tab on case details page
23155
- this.router.navigate([`/cases/case-details/${this.getCaseId()}/tasks`], { relativeTo: this.route });
23156
- }
23157
- }
23158
- generateCaseEventData() {
23159
- const caseEventData = {
23160
- data: this.replaceEmptyComplexFieldValues(this.formValueService.sanitise(this.replaceHiddenFormValuesWithOriginalCaseData(this.editForm.get('data'), this.eventTrigger.case_fields))),
23161
- event: this.editForm.value.event
23162
- };
23163
- this.formValueService.clearNonCaseFields(caseEventData.data, this.eventTrigger.case_fields);
23164
- this.formValueService.removeNullLabels(caseEventData.data, this.eventTrigger.case_fields);
23165
- this.formValueService.removeEmptyDocuments(caseEventData.data, this.eventTrigger.case_fields);
23166
- // Remove collection fields that have "min" validation of greater than zero set on the FieldType but are empty;
23167
- // these will fail validation
23168
- this.formValueService.removeEmptyCollectionsWithMinValidation(caseEventData.data, this.eventTrigger.case_fields);
23169
- // If this is a Case Flag submission (and thus a FlagLauncher field is present in the event trigger), the flag
23170
- // details data needs populating for each Flags field, then the FlagLauncher field needs removing
23171
- if (this.isCaseFlagSubmission) {
23172
- this.formValueService.populateFlagDetailsFromCaseFields(caseEventData.data, this.eventTrigger.case_fields);
23173
- this.formValueService.removeFlagLauncherField(caseEventData.data, this.eventTrigger.case_fields);
23174
- }
23175
- if (this.isLinkedCasesSubmission) {
23176
- this.formValueService.populateLinkedCasesDetailsFromCaseFields(caseEventData.data, this.eventTrigger.case_fields);
23177
- this.formValueService.removeComponentLauncherField(caseEventData.data, this.eventTrigger.case_fields);
23178
- }
23179
- caseEventData.event_token = this.eventTrigger.event_token;
23180
- caseEventData.ignore_warning = this.ignoreWarning;
23181
- if (this.caseEdit.confirmation) {
23182
- caseEventData.data = {};
23183
- }
23184
- return caseEventData;
23185
- }
23186
- caseSubmit(caseEventData) {
23187
- this.caseEdit.submit(caseEventData)
23188
- .subscribe(response => {
23189
- this.caseNotifier.cachedCaseView = null;
23190
- this.sessionStorageService.removeItem('eventUrl');
23191
- const confirmation = this.buildConfirmation(response);
23192
- if (confirmation && (confirmation.getHeader() || confirmation.getBody())) {
23193
- this.caseEdit.confirm(confirmation);
23194
- }
23195
- else {
23196
- this.caseEdit.submitted.emit({ caseId: response['id'], status: this.getStatus(response) });
23197
- }
23198
- }, error => {
23199
- this.error = error;
23200
- this.callbackErrorsSubject.next(this.error);
23201
- if (this.error.details) {
23202
- this.formErrorService
23203
- .mapFieldErrors(this.error.details.field_errors, this.editForm.controls['data'], 'validation');
23204
- }
23205
- this.isSubmitting = false;
23206
- });
23207
- }
23208
- /**
23209
- * Traverse *all* values of a {@link FormGroup}, including those for disabled fields (i.e. hidden ones), replacing the
23210
- * value of any that are hidden AND have `retain_hidden_value` set to `true` in the corresponding `CaseField`, with
23211
- * the *original* value held in the `CaseField` object.
23212
- *
23213
- * This is as per design in EUI-3622, where any user-driven updates to hidden fields with `retain_hidden_value` =
23214
- * `true` are ignored (thus retaining the value displayed originally).
23215
- *
23216
- * * For Complex field types, the replacement above is performed recursively for all hidden sub-fields with
23217
- * `retain_hidden_value` = `true`.
23218
- *
23219
- * * For Collection field types, including collections of Complex and Document field types, the replacement is
23220
- * performed for all fields in the collection.
23221
- *
23222
- * @param formGroup The `FormGroup` instance whose raw values are to be traversed
23223
- * @param caseFields The array of {@link CaseField} domain model objects corresponding to fields in `formGroup`
23224
- * @param parentField Reference to the parent `CaseField`. Used for retrieving the sub-field values of a Complex field
23225
- * to perform recursive replacement - the sub-field `CaseField`s themselves do *not* contain any values
23226
- * @returns An object with the *raw* form value data (as key-value pairs), with any value replacements as necessary
23227
- */
23228
- replaceHiddenFormValuesWithOriginalCaseData(formGroup, caseFields, parentField) {
23229
- // Get the raw form value data, which includes the values of any disabled controls, as key-value pairs
23230
- const rawFormValueData = formGroup.getRawValue();
23231
- // Place all case fields in a lookup object, so they can be retrieved by id
23232
- const caseFieldsLookup = {};
23233
- for (let i = 0, len = caseFields.length; i < len; i++) {
23234
- caseFieldsLookup[caseFields[i].id] = caseFields[i];
23235
- }
23236
- /**
23237
- * Replace any form value with the original, where its CaseField is hidden AND has the retain_hidden_value flag set
23238
- * to true.
23239
- *
23240
- * If the CaseField's `hidden` attribute is null or undefined, then check this attribute in the parent CaseField (if
23241
- * one exists). This is occurring (and is possibly a bug) when a CaseField is a sub-field of a Complex type, or an
23242
- * item in a Collection type.
23243
- *
23244
- * If the field is a Complex type with retain_hidden_value = true, perform a recursive replacement for all (hidden)
23245
- * sub-fields with retain_hidden_value = true, using their original CaseField values (from the `formatted_value`
23246
- * attribute).
23247
- *
23248
- * If the field is a Collection type with retain_hidden_value = true, the entire collection is replaced with the
23249
- * original from `formatted_value`. This applies to *all* types of Collections.
23250
- */
23251
- Object.keys(rawFormValueData).forEach((key) => {
23252
- const caseField = caseFieldsLookup[key];
23253
- // If caseField.hidden is NOT truthy and also NOT equal to false, then it must be null/undefined (remember that
23254
- // both null and undefined are equal to *neither false nor true*)
23255
- if (caseField && caseField.retain_hidden_value &&
23256
- (caseField.hidden || (caseField.hidden !== false && parentField && parentField.hidden))) {
23257
- if (caseField.field_type.type === 'Complex') {
23258
- // Note: Deliberate use of equality (==) and non-equality (!=) operators for null checks throughout, to
23259
- // handle both null and undefined values
23260
- if (caseField.value != null) {
23261
- // Call this function recursively to replace the Complex field's sub-fields as necessary, passing the
23262
- // CaseField itself (the sub-fields do not contain any values, so these need to be obtained from the
23263
- // parent)
23264
- // Update rawFormValueData for this field
23265
- // creating form group and adding control into it in case caseField is of complext type and and part of formGroup
23266
- const form = new FormGroup({});
23267
- if (formGroup.controls[key].value) {
23268
- Object.keys(formGroup.controls[key].value).forEach((item) => {
23269
- form.addControl(item, new FormControl(formGroup.controls[key].value[item]));
23270
- });
23271
- }
23272
- rawFormValueData[key] = this.replaceHiddenFormValuesWithOriginalCaseData(form, caseField.field_type.complex_fields, caseField);
23273
- }
23274
- }
23275
- else {
23276
- // Default case also handles collections of *all* types; the entire collection in rawFormValueData will be
23277
- // replaced with the original from formatted_value
23278
- // Use the CaseField's existing *formatted_value* from the parent, if available. (This is necessary for
23279
- // Complex fields, whose sub-fields do not hold any values in the model.) Otherwise, use formatted_value
23280
- // from the CaseField itself.
23281
- if (parentField && parentField.formatted_value) {
23282
- rawFormValueData[key] = parentField.formatted_value[caseField.id];
23283
- }
23284
- else {
23285
- rawFormValueData[key] = caseField.formatted_value;
23286
- }
23287
- }
23288
- }
23398
+ this.caseEdit.submitForm({
23399
+ eventTrigger: this.eventTrigger,
23400
+ form: this.editForm,
23401
+ submit: this.caseEdit.submit,
23402
+ caseDetails: this.caseEdit.caseDetails,
23289
23403
  });
23290
- return rawFormValueData;
23291
23404
  }
23292
- /**
23293
- * Replaces non-array value objects with `null` for any Complex-type fields whose value is effectively empty, i.e.
23294
- * all its sub-fields and descendants are `null` or `undefined`.
23295
- *
23296
- * @param data The object tree representing all the form field data
23297
- * @returns The form field data modified accordingly
23298
- */
23299
- replaceEmptyComplexFieldValues(data) {
23300
- Object.keys(data).forEach((key) => {
23301
- if (!Array.isArray(data[key]) && typeof data[key] === 'object' && !FieldsUtils.containsNonEmptyValues(data[key])) {
23302
- data[key] = null;
23303
- }
23405
+ onEventCanBeCompleted(eventCanBeCompleted) {
23406
+ this.caseEdit.onEventCanBeCompleted({
23407
+ eventTrigger: this.eventTrigger,
23408
+ eventCanBeCompleted,
23409
+ caseDetails: this.caseEdit.caseDetails,
23410
+ form: this.editForm,
23411
+ submit: this.caseEdit.submit,
23304
23412
  });
23305
- return data;
23306
- }
23307
- getStatus(response) {
23308
- return this.hasCallbackFailed(response) ? response['callback_response_status'] : response['delete_draft_response_status'];
23309
- }
23310
- hasCallbackFailed(response) {
23311
- return response['callback_response_status'] !== 'CALLBACK_COMPLETED';
23312
23413
  }
23313
23414
  get hasErrors() {
23314
- return this.error
23315
- && this.error.callbackErrors
23316
- && this.error.callbackErrors.length;
23415
+ var _a, _b, _c;
23416
+ return (_c = (_b = (_a = this.caseEdit) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.callbackErrors) === null || _c === void 0 ? void 0 : _c.length;
23317
23417
  }
23318
23418
  navigateToPage(pageId) {
23319
23419
  this.caseEdit.navigateToPage(pageId);
23320
23420
  }
23321
23421
  callbackErrorsNotify(errorContext) {
23322
- this.ignoreWarning = errorContext.ignore_warning;
23422
+ this.caseEdit.ignoreWarning = errorContext.ignore_warning;
23323
23423
  this.triggerText = errorContext.trigger_text;
23324
23424
  }
23325
23425
  summaryCaseField(field) {
23426
+ /* istanbul ignore else */
23326
23427
  if (null === this.editForm.get('data').get(field.id)) {
23327
23428
  // If not in form, return field itself
23328
23429
  return field;
@@ -23351,12 +23452,15 @@ class CaseEditSubmitComponent {
23351
23452
  return !this.caseFieldService.isReadOnly(field);
23352
23453
  }
23353
23454
  checkYourAnswerFieldsToDisplayExists() {
23455
+ /* istanbul ignore else */
23354
23456
  if (!this.eventTrigger.show_summary) {
23355
23457
  return false;
23356
23458
  }
23357
23459
  for (const page of this.wizard.pages) {
23460
+ /* istanbul ignore else */
23358
23461
  if (this.isShown(page)) {
23359
23462
  for (const field of page.case_fields) {
23463
+ /* istanbul ignore else */
23360
23464
  if (this.canShowFieldInCYA(field)) {
23361
23465
  // at least one field needs showing
23362
23466
  return true;
@@ -23384,6 +23488,7 @@ class CaseEditSubmitComponent {
23384
23488
  return lastPage;
23385
23489
  }
23386
23490
  previous() {
23491
+ /* istanbul ignore else */
23387
23492
  if (this.hasPrevious()) {
23388
23493
  this.navigateToPage(this.getLastPageShown().id);
23389
23494
  }
@@ -23402,14 +23507,6 @@ class CaseEditSubmitComponent {
23402
23507
  isSolicitor() {
23403
23508
  return this.profile.isSolicitor();
23404
23509
  }
23405
- buildConfirmation(response) {
23406
- if (response['after_submit_callback_response']) {
23407
- return new Confirmation(response['id'], response['callback_response_status'], response['after_submit_callback_response']['confirmation_header'], response['after_submit_callback_response']['confirmation_body']);
23408
- }
23409
- else {
23410
- return null;
23411
- }
23412
- }
23413
23510
  sortFieldsByShowSummaryContent(fields) {
23414
23511
  return this.orderService
23415
23512
  .sort(fields, CaseEditSubmitComponent.SHOW_SUMMARY_CONTENT_COMPARE_FUNCTION)
@@ -23422,10 +23519,7 @@ class CaseEditSubmitComponent {
23422
23519
  return this.eventTrigger.case_fields;
23423
23520
  }
23424
23521
  getCaseId() {
23425
- return (this.caseEdit.caseDetails ? this.caseEdit.caseDetails.case_id : '');
23426
- }
23427
- getEventId() {
23428
- return this.editForm.value.event.id;
23522
+ return this.caseEdit.getCaseId(this.caseEdit.caseDetails);
23429
23523
  }
23430
23524
  getCaseTitle() {
23431
23525
  return (this.caseEdit.caseDetails && this.caseEdit.caseDetails.state &&
@@ -23451,14 +23545,14 @@ CaseEditSubmitComponent.SHOW_SUMMARY_CONTENT_COMPARE_FUNCTION = (a, b) => {
23451
23545
  }
23452
23546
  return a.show_summary_content_option - b.show_summary_content_option;
23453
23547
  };
23454
- CaseEditSubmitComponent.ɵfac = function CaseEditSubmitComponent_Factory(t) { return new (t || CaseEditSubmitComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(OrderService), i0.ɵɵdirectiveInject(ProfileNotifier), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseNotifier)); };
23455
- CaseEditSubmitComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], ["class", "error-summary", "role", "group", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 4, "ngIf"], [3, "callbackErrorsSubject", "callbackErrorsContext"], [1, "check-your-answers", 3, "formGroup", "submit"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["role", "group", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 1, "error-summary"], ["id", "edit-case-event_error-summary-heading", 1, "heading-h1", "error-summary-heading"], ["id", "edit-case-event_error-summary-body", 1, "govuk-error-summary__body"], ["href", "get-help", "target", "_blank"], ["id", "edit-case-event_error-summary-heading", 1, "heading-h3", "error-summary-heading"], ["class", "error-summary-list", 4, "ngIf"], [1, "error-summary-list"], ["class", "ccd-error-summary-li", 4, "ngFor", "ngForOf"], [1, "ccd-error-summary-li"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "javascript:void(0)", 3, "click", 4, "ngIf"], [1, "valign-top", "case-field-label"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "caseFields"], ["id", "fieldset-event", "formGroupName", "event", 4, "ngIf"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50"], [3, "eventCompletionParams", "eventCanBeCompleted"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
23456
- i0.ɵɵtemplate(0, CaseEditSubmitComponent_div_0_Template, 23, 17, "div", 0);
23548
+ CaseEditSubmitComponent.ɵfac = function CaseEditSubmitComponent_Factory(t) { return new (t || CaseEditSubmitComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(OrderService), i0.ɵɵdirectiveInject(ProfileNotifier)); };
23549
+ CaseEditSubmitComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], [3, "error"], [3, "callbackErrorsSubject", "callbackErrorsContext"], [1, "check-your-answers", 3, "formGroup", "submit"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "javascript:void(0)", 3, "click", 4, "ngIf"], [1, "valign-top", "case-field-label"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "caseFields"], ["id", "fieldset-event", "formGroupName", "event", 4, "ngIf"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50"], [3, "eventCompletionParams", "eventCanBeCompleted"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
23550
+ i0.ɵɵtemplate(0, CaseEditSubmitComponent_div_0_Template, 22, 16, "div", 0);
23457
23551
  i0.ɵɵtemplate(1, CaseEditSubmitComponent_ccd_case_event_completion_1_Template, 1, 1, "ccd-case-event-completion", 1);
23458
23552
  } if (rf & 2) {
23459
- i0.ɵɵproperty("ngIf", !ctx.eventCompletionChecksRequired);
23553
+ i0.ɵɵproperty("ngIf", !ctx.caseEdit.isEventCompletionChecksRequired);
23460
23554
  i0.ɵɵadvance(1);
23461
- i0.ɵɵproperty("ngIf", ctx.eventCompletionChecksRequired);
23555
+ i0.ɵɵproperty("ngIf", ctx.caseEdit.isEventCompletionChecksRequired);
23462
23556
  } }, styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
23463
23557
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditSubmitComponent, [{
23464
23558
  type: Component,
@@ -23467,7 +23561,7 @@ CaseEditSubmitComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditSubmitCom
23467
23561
  templateUrl: 'case-edit-submit.html',
23468
23562
  styleUrls: ['../case-edit.scss']
23469
23563
  }]
23470
- }], function () { return [{ type: CaseEditComponent }, { type: FormValueService }, { type: FormErrorService }, { type: FieldsUtils }, { type: CaseFieldService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: OrderService }, { type: ProfileNotifier }, { type: SessionStorageService }, { type: CaseNotifier }]; }, null); })();
23564
+ }], function () { return [{ type: CaseEditComponent }, { type: FieldsUtils }, { type: CaseFieldService }, { type: i1$1.ActivatedRoute }, { type: OrderService }, { type: ProfileNotifier }]; }, null); })();
23471
23565
 
23472
23566
  function CaseProgressComponent_div_0_Template(rf, ctx) { if (rf & 1) {
23473
23567
  const _r2 = i0.ɵɵgetCurrentView();
@@ -23623,6 +23717,82 @@ LoadingSpinnerModule.ɵinj = i0.ɵɵdefineInjector({ imports: [[
23623
23717
  }]
23624
23718
  }], null, null); })();
23625
23719
 
23720
+ function CaseEditGenericErrorsComponent_div_0_Template(rf, ctx) { if (rf & 1) {
23721
+ i0.ɵɵelementStart(0, "div", 1);
23722
+ i0.ɵɵelementStart(1, "h1", 2);
23723
+ i0.ɵɵtext(2, " Something went wrong ");
23724
+ i0.ɵɵelementEnd();
23725
+ i0.ɵɵelementStart(3, "div", 3);
23726
+ i0.ɵɵelementStart(4, "p");
23727
+ i0.ɵɵtext(5, "We're working to fix the problem. Try again shortly.");
23728
+ i0.ɵɵelementEnd();
23729
+ i0.ɵɵelementStart(6, "p");
23730
+ i0.ɵɵelementStart(7, "a", 4);
23731
+ i0.ɵɵtext(8, "Contact us");
23732
+ i0.ɵɵelementEnd();
23733
+ i0.ɵɵtext(9, " if you're still having problems.");
23734
+ i0.ɵɵelementEnd();
23735
+ i0.ɵɵelementEnd();
23736
+ i0.ɵɵelementEnd();
23737
+ } }
23738
+ function CaseEditGenericErrorsComponent_div_1_ul_5_li_1_Template(rf, ctx) { if (rf & 1) {
23739
+ i0.ɵɵelementStart(0, "li", 9);
23740
+ i0.ɵɵtext(1);
23741
+ i0.ɵɵelementEnd();
23742
+ } if (rf & 2) {
23743
+ const fieldError_r4 = ctx.$implicit;
23744
+ i0.ɵɵadvance(1);
23745
+ i0.ɵɵtextInterpolate(fieldError_r4.message);
23746
+ } }
23747
+ function CaseEditGenericErrorsComponent_div_1_ul_5_Template(rf, ctx) { if (rf & 1) {
23748
+ i0.ɵɵelementStart(0, "ul", 7);
23749
+ i0.ɵɵtemplate(1, CaseEditGenericErrorsComponent_div_1_ul_5_li_1_Template, 2, 1, "li", 8);
23750
+ i0.ɵɵelementEnd();
23751
+ } if (rf & 2) {
23752
+ const ctx_r2 = i0.ɵɵnextContext(2);
23753
+ i0.ɵɵadvance(1);
23754
+ i0.ɵɵproperty("ngForOf", ctx_r2.error.details.field_errors);
23755
+ } }
23756
+ function CaseEditGenericErrorsComponent_div_1_Template(rf, ctx) { if (rf & 1) {
23757
+ i0.ɵɵelementStart(0, "div", 1);
23758
+ i0.ɵɵelementStart(1, "h3", 5);
23759
+ i0.ɵɵtext(2, " The event could not be created ");
23760
+ i0.ɵɵelementEnd();
23761
+ i0.ɵɵelementStart(3, "p");
23762
+ i0.ɵɵtext(4);
23763
+ i0.ɵɵelementEnd();
23764
+ i0.ɵɵtemplate(5, CaseEditGenericErrorsComponent_div_1_ul_5_Template, 2, 1, "ul", 6);
23765
+ i0.ɵɵelementEnd();
23766
+ } if (rf & 2) {
23767
+ const ctx_r1 = i0.ɵɵnextContext();
23768
+ i0.ɵɵadvance(4);
23769
+ i0.ɵɵtextInterpolate(ctx_r1.error.message);
23770
+ i0.ɵɵadvance(1);
23771
+ i0.ɵɵproperty("ngIf", ctx_r1.error.details == null ? null : ctx_r1.error.details.field_errors);
23772
+ } }
23773
+ class CaseEditGenericErrorsComponent {
23774
+ }
23775
+ CaseEditGenericErrorsComponent.ɵfac = function CaseEditGenericErrorsComponent_Factory(t) { return new (t || CaseEditGenericErrorsComponent)(); };
23776
+ CaseEditGenericErrorsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditGenericErrorsComponent, selectors: [["ccd-case-edit-generic-errors"]], inputs: { error: "error" }, features: [i0.ɵɵProvidersFeature([])], decls: 2, vars: 2, consts: [["class", "error-summary", "role", "group", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 4, "ngIf"], ["role", "group", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 1, "error-summary"], ["id", "edit-case-event_error-summary-heading", 1, "heading-h1", "error-summary-heading"], ["id", "edit-case-event_error-summary-body", 1, "govuk-error-summary__body"], ["href", "get-help", "target", "_blank"], ["id", "edit-case-event_error-summary-heading", 1, "heading-h3", "error-summary-heading"], ["class", "error-summary-list", 4, "ngIf"], [1, "error-summary-list"], ["class", "ccd-error-summary-li", 4, "ngFor", "ngForOf"], [1, "ccd-error-summary-li"]], template: function CaseEditGenericErrorsComponent_Template(rf, ctx) { if (rf & 1) {
23777
+ i0.ɵɵtemplate(0, CaseEditGenericErrorsComponent_div_0_Template, 10, 0, "div", 0);
23778
+ i0.ɵɵtemplate(1, CaseEditGenericErrorsComponent_div_1_Template, 6, 2, "div", 0);
23779
+ } if (rf & 2) {
23780
+ i0.ɵɵproperty("ngIf", ctx.error && (!(ctx.error.callbackErrors || ctx.error.callbackWarnings || ctx.error.details) && !ctx.error.message));
23781
+ i0.ɵɵadvance(1);
23782
+ i0.ɵɵproperty("ngIf", ctx.error && (ctx.error.details || ctx.error.message));
23783
+ } }, directives: [i1.NgIf, i1.NgForOf], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
23784
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditGenericErrorsComponent, [{
23785
+ type: Component,
23786
+ args: [{
23787
+ selector: 'ccd-case-edit-generic-errors',
23788
+ templateUrl: 'case-edit-generic-errors.component.html',
23789
+ styleUrls: ['../case-edit.scss'],
23790
+ providers: []
23791
+ }]
23792
+ }], null, { error: [{
23793
+ type: Input
23794
+ }] }); })();
23795
+
23626
23796
  const _c0$e = function (a3) { return ["/", "cases", "case-details", a3, "tasks"]; };
23627
23797
  class CaseEventCompletionTaskCancelledComponent {
23628
23798
  constructor(parentComponent) {
@@ -23888,7 +24058,7 @@ CaseEventCompletionComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEventCom
23888
24058
  i0.ɵɵtemplate(0, CaseEventCompletionComponent_ng_template_0_Template, 0, 0, "ng-template", 0);
23889
24059
  } if (rf & 2) {
23890
24060
  i0.ɵɵproperty("cdkPortalOutlet", ctx.selectedComponentPortal);
23891
- } }, directives: [i6$2.CdkPortalOutlet], encapsulation: 2 });
24061
+ } }, directives: [i6$1.CdkPortalOutlet], encapsulation: 2 });
23892
24062
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEventCompletionComponent, [{
23893
24063
  type: Component,
23894
24064
  args: [{
@@ -23956,7 +24126,8 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
23956
24126
  CaseEventCompletionTaskCancelledComponent,
23957
24127
  CaseEventCompletionTaskReassignedComponent,
23958
24128
  CaseCreateComponent,
23959
- CaseProgressComponent], imports: [CommonModule,
24129
+ CaseProgressComponent,
24130
+ CaseEditGenericErrorsComponent], imports: [CommonModule,
23960
24131
  RouterModule,
23961
24132
  FormsModule,
23962
24133
  ReactiveFormsModule,
@@ -24002,7 +24173,8 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
24002
24173
  CaseEventCompletionTaskCancelledComponent,
24003
24174
  CaseEventCompletionTaskReassignedComponent,
24004
24175
  CaseCreateComponent,
24005
- CaseProgressComponent
24176
+ CaseProgressComponent,
24177
+ CaseEditGenericErrorsComponent
24006
24178
  ],
24007
24179
  exports: [
24008
24180
  CaseEditConfirmComponent,
@@ -24046,9 +24218,10 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
24046
24218
  }]
24047
24219
  }], null, null); })();
24048
24220
  i0.ɵɵsetComponentScope(CaseEditConfirmComponent, [i1.NgIf, MarkdownComponent, i2.ɵangular_packages_forms_forms_ba, i2.NgControlStatusGroup, i2.FormGroupDirective], [CcdCaseTitlePipe, CaseReferencePipe]);
24049
- i0.ɵɵsetComponentScope(CaseEditPageComponent, [i1.NgIf, LoadingSpinnerComponent, MarkdownComponent, i1.NgForOf, CallbackErrorsComponent, i2.ɵangular_packages_forms_forms_ba, i2.NgControlStatusGroup, i2.FormGroupDirective, CaseEditFormComponent], [CcdCaseTitlePipe, CaseReferencePipe, i1.AsyncPipe]);
24221
+ i0.ɵɵsetComponentScope(CaseEditPageComponent, [i1.NgIf, LoadingSpinnerComponent, MarkdownComponent, i1.NgForOf, CaseEditGenericErrorsComponent, CallbackErrorsComponent, i2.ɵangular_packages_forms_forms_ba, i2.NgControlStatusGroup, i2.FormGroupDirective, CaseEditFormComponent,
24222
+ CaseEventCompletionComponent], [CcdCaseTitlePipe, CaseReferencePipe, i1.AsyncPipe]);
24050
24223
  i0.ɵɵsetComponentScope(CaseEditFormComponent, [i1.NgForOf, ConditionalShowFormDirective, i2.NgControlStatusGroup, i2.FormGroupDirective, LabelSubstitutorDirective, i1.NgSwitch, i1.NgSwitchCase, FieldReadComponent, i1.NgIf, FieldWriteComponent], [IsReadOnlyAndNotCollectionPipe, IsCompoundPipe]);
24051
- i0.ɵɵsetComponentScope(CaseEditSubmitComponent, [i1.NgIf, MarkdownComponent, i1.NgForOf, CallbackErrorsComponent, i2.ɵangular_packages_forms_forms_ba, i2.NgControlStatusGroup, i2.FormGroupDirective, LabelSubstitutorDirective, FieldReadComponent, i1.NgSwitch, i1.NgSwitchCase, i2.FormGroupName, i2.DefaultValueAccessor, i2.NgControlStatus, i2.FormControlName, i2.MaxLengthValidator, CaseEventCompletionComponent], [CcdCaseTitlePipe, CaseReferencePipe, CcdCYAPageLabelFilterPipe, ReadFieldsFilterPipe, CcdPageFieldsPipe, IsCompoundPipe]);
24224
+ i0.ɵɵsetComponentScope(CaseEditSubmitComponent, [i1.NgIf, MarkdownComponent, CaseEditGenericErrorsComponent, CallbackErrorsComponent, i2.ɵangular_packages_forms_forms_ba, i2.NgControlStatusGroup, i2.FormGroupDirective, i1.NgForOf, LabelSubstitutorDirective, FieldReadComponent, i1.NgSwitch, i1.NgSwitchCase, i2.FormGroupName, i2.DefaultValueAccessor, i2.NgControlStatus, i2.FormControlName, i2.MaxLengthValidator, CaseEventCompletionComponent], [CcdCaseTitlePipe, CaseReferencePipe, CcdCYAPageLabelFilterPipe, ReadFieldsFilterPipe, CcdPageFieldsPipe, IsCompoundPipe]);
24052
24225
  i0.ɵɵsetComponentScope(CaseCreateComponent, [i1.NgIf, CaseEditComponent], []);
24053
24226
  i0.ɵɵsetComponentScope(CaseProgressComponent, [i1.NgIf, CaseEditComponent], []);
24054
24227
 
@@ -26157,7 +26330,9 @@ class CaseEventTriggerComponent {
26157
26330
  }
26158
26331
  cancel() {
26159
26332
  if (this.router.url && this.router.url.includes('linkCases')) {
26160
- this.router.navigate(['cases', 'case-details', this.caseDetails.case_id], { fragment: 'Linked cases' });
26333
+ this.router.navigate(['cases', 'case-details', this.caseDetails.case_id]).then(() => {
26334
+ window.location.hash = 'Linked cases';
26335
+ });
26161
26336
  }
26162
26337
  else {
26163
26338
  return this.router.navigate([this.parentUrl]);
@@ -26670,9 +26845,9 @@ function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_1_ng_
26670
26845
  i0.ɵɵelementEnd();
26671
26846
  i0.ɵɵelementEnd();
26672
26847
  } if (rf & 2) {
26673
- const field_r23 = i0.ɵɵnextContext(2).$implicit;
26848
+ const field_r24 = i0.ɵɵnextContext(2).$implicit;
26674
26849
  i0.ɵɵadvance(2);
26675
- i0.ɵɵtextInterpolate(field_r23.label);
26850
+ i0.ɵɵtextInterpolate(field_r24.label);
26676
26851
  } }
26677
26852
  function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_1_ng_container_2_tr_4_Template(rf, ctx) { if (rf & 1) {
26678
26853
  i0.ɵɵelementStart(0, "tr");
@@ -26684,14 +26859,14 @@ function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_1_ng_
26684
26859
  i0.ɵɵelementEnd();
26685
26860
  i0.ɵɵelementEnd();
26686
26861
  } if (rf & 2) {
26687
- const field_r23 = i0.ɵɵnextContext().$implicit;
26688
- const ctx_r24 = i0.ɵɵnextContext(4);
26862
+ const field_r24 = i0.ɵɵnextContext().$implicit;
26863
+ const ctx_r25 = i0.ɵɵnextContext(4);
26689
26864
  i0.ɵɵadvance(1);
26690
- i0.ɵɵproperty("ngIf", !ctx_r24.isFieldToHaveNoLabel(field_r23));
26865
+ i0.ɵɵproperty("ngIf", !ctx_r25.isFieldToHaveNoLabel(field_r24));
26691
26866
  i0.ɵɵadvance(1);
26692
- i0.ɵɵproperty("id", "case-viewer-field-read--" + field_r23.id);
26867
+ i0.ɵɵproperty("id", "case-viewer-field-read--" + field_r24.id);
26693
26868
  i0.ɵɵadvance(2);
26694
- i0.ɵɵproperty("topLevelFormGroup", ctx_r24.formGroup.controls["data"])("caseField", field_r23)("caseReference", ctx_r24.caseDetails.case_id)("markdownUseHrefAsRouterLink", ctx_r24.markdownUseHrefAsRouterLink);
26869
+ i0.ɵɵproperty("topLevelFormGroup", ctx_r25.formGroup.controls["data"])("caseField", field_r24)("caseReference", ctx_r25.caseDetails.case_id)("markdownUseHrefAsRouterLink", ctx_r25.markdownUseHrefAsRouterLink);
26695
26870
  } }
26696
26871
  function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_1_ng_container_2_tr_5_Template(rf, ctx) { if (rf & 1) {
26697
26872
  i0.ɵɵelementStart(0, "tr", 39);
@@ -26702,12 +26877,12 @@ function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_1_ng_
26702
26877
  i0.ɵɵelementEnd();
26703
26878
  i0.ɵɵelementEnd();
26704
26879
  } if (rf & 2) {
26705
- const field_r23 = i0.ɵɵnextContext().$implicit;
26706
- const ctx_r25 = i0.ɵɵnextContext(4);
26880
+ const field_r24 = i0.ɵɵnextContext().$implicit;
26881
+ const ctx_r26 = i0.ɵɵnextContext(4);
26707
26882
  i0.ɵɵadvance(1);
26708
- i0.ɵɵproperty("id", "case-viewer-field-read--" + field_r23.id);
26883
+ i0.ɵɵproperty("id", "case-viewer-field-read--" + field_r24.id);
26709
26884
  i0.ɵɵadvance(2);
26710
- i0.ɵɵproperty("topLevelFormGroup", ctx_r25.formGroup.controls["data"])("caseField", field_r23)("caseReference", ctx_r25.caseDetails.case_id)("markdownUseHrefAsRouterLink", ctx_r25.markdownUseHrefAsRouterLink);
26885
+ i0.ɵɵproperty("topLevelFormGroup", ctx_r26.formGroup.controls["data"])("caseField", field_r24)("caseReference", ctx_r26.caseDetails.case_id)("markdownUseHrefAsRouterLink", ctx_r26.markdownUseHrefAsRouterLink);
26711
26886
  } }
26712
26887
  function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
26713
26888
  i0.ɵɵelementContainerStart(0);
@@ -26720,12 +26895,12 @@ function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_1_ng_
26720
26895
  i0.ɵɵelementEnd();
26721
26896
  i0.ɵɵelementContainerEnd();
26722
26897
  } if (rf & 2) {
26723
- const field_r23 = ctx.$implicit;
26724
- const ctx_r22 = i0.ɵɵnextContext(4);
26898
+ const field_r24 = ctx.$implicit;
26899
+ const ctx_r23 = i0.ɵɵnextContext(4);
26725
26900
  i0.ɵɵadvance(1);
26726
- i0.ɵɵproperty("caseField", field_r23)("contextFields", ctx_r22.caseFields)("hidden", field_r23.hidden);
26901
+ i0.ɵɵproperty("caseField", field_r24)("contextFields", ctx_r23.caseFields)("hidden", field_r24.hidden);
26727
26902
  i0.ɵɵadvance(1);
26728
- i0.ɵɵproperty("ngSwitch", !i0.ɵɵpipeBind1(3, 6, field_r23));
26903
+ i0.ɵɵproperty("ngSwitch", !i0.ɵɵpipeBind1(3, 6, field_r24));
26729
26904
  i0.ɵɵadvance(2);
26730
26905
  i0.ɵɵproperty("ngSwitchCase", true);
26731
26906
  i0.ɵɵadvance(1);
@@ -26742,10 +26917,10 @@ function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_ng_template_1_Tem
26742
26917
  i0.ɵɵelementEnd();
26743
26918
  } if (rf & 2) {
26744
26919
  const tab_r20 = i0.ɵɵnextContext().$implicit;
26745
- const ctx_r21 = i0.ɵɵnextContext(2);
26920
+ const ctx_r22 = i0.ɵɵnextContext(2);
26746
26921
  i0.ɵɵclassMap(tab_r20.id);
26747
26922
  i0.ɵɵadvance(2);
26748
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBindV(3, 3, i0.ɵɵpureFunction2(11, _c1$3, i0.ɵɵpipeBind1(4, 9, tab_r20), ctx_r21.formGroup.controls["data"])));
26923
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBindV(3, 3, i0.ɵɵpureFunction2(11, _c1$3, i0.ɵɵpipeBind1(4, 9, tab_r20), ctx_r22.formGroup.controls["data"])));
26749
26924
  } }
26750
26925
  function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_Template(rf, ctx) { if (rf & 1) {
26751
26926
  i0.ɵɵelementStart(0, "mat-tab", 26);
@@ -26758,17 +26933,17 @@ function CaseFullAccessViewComponent_ng_container_12_mat_tab_4_Template(rf, ctx)
26758
26933
  function CaseFullAccessViewComponent_ng_container_12_mat_tab_5_Template(rf, ctx) { if (rf & 1) {
26759
26934
  i0.ɵɵelement(0, "mat-tab", 26);
26760
26935
  } if (rf & 2) {
26761
- const tab_r31 = ctx.$implicit;
26762
- i0.ɵɵproperty("id", tab_r31.id)("label", tab_r31.label);
26936
+ const tab_r32 = ctx.$implicit;
26937
+ i0.ɵɵproperty("id", tab_r32.id)("label", tab_r32.label);
26763
26938
  } }
26764
26939
  function CaseFullAccessViewComponent_ng_container_12_router_outlet_6_Template(rf, ctx) { if (rf & 1) {
26765
26940
  i0.ɵɵelement(0, "router-outlet");
26766
26941
  } }
26767
26942
  function CaseFullAccessViewComponent_ng_container_12_Template(rf, ctx) { if (rf & 1) {
26768
- const _r33 = i0.ɵɵgetCurrentView();
26943
+ const _r34 = i0.ɵɵgetCurrentView();
26769
26944
  i0.ɵɵelementContainerStart(0);
26770
26945
  i0.ɵɵelementStart(1, "mat-tab-group", 23, 24);
26771
- i0.ɵɵlistener("selectedTabChange", function CaseFullAccessViewComponent_ng_container_12_Template_mat_tab_group_selectedTabChange_1_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(); return ctx_r32.tabChanged($event); });
26946
+ i0.ɵɵlistener("selectedTabChange", function CaseFullAccessViewComponent_ng_container_12_Template_mat_tab_group_selectedTabChange_1_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(); return ctx_r33.tabChanged($event); });
26772
26947
  i0.ɵɵtemplate(3, CaseFullAccessViewComponent_ng_container_12_mat_tab_3_Template, 1, 2, "mat-tab", 25);
26773
26948
  i0.ɵɵtemplate(4, CaseFullAccessViewComponent_ng_container_12_mat_tab_4_Template, 2, 2, "mat-tab", 25);
26774
26949
  i0.ɵɵtemplate(5, CaseFullAccessViewComponent_ng_container_12_mat_tab_5_Template, 1, 2, "mat-tab", 25);
@@ -27020,7 +27195,9 @@ class CaseFullAccessViewComponent {
27020
27195
  }
27021
27196
  else {
27022
27197
  const label = tabChangeEvent.tab.textLabel;
27023
- this.router.navigate(['cases', 'case-details', this.caseDetails.case_id], { fragment: label });
27198
+ this.router.navigate(['cases', 'case-details', this.caseDetails.case_id]).then(() => {
27199
+ window.location.hash = label;
27200
+ });
27024
27201
  }
27025
27202
  }
27026
27203
  onLinkClicked(triggerOutputEventText) {
@@ -27385,24 +27562,23 @@ class CaseViewerComponent {
27385
27562
  }
27386
27563
  }
27387
27564
  loadCaseDetails() {
27388
- if (this.route.snapshot.data.case) {
27389
- this.caseDetails = this.route.snapshot.data.case;
27390
- this.caseDetails.tabs = [...new Map(this.caseDetails.tabs.map(item => [item['label'], item])).values()];
27391
- this.setUserAccessType(this.caseDetails);
27392
- }
27393
- else {
27565
+ if (!this.route.snapshot.data.case) {
27394
27566
  this.caseSubscription = this.caseNotifier.caseView.subscribe(caseDetails => {
27395
27567
  this.caseDetails = caseDetails;
27396
27568
  this.setUserAccessType(this.caseDetails);
27397
27569
  });
27398
27570
  }
27571
+ else {
27572
+ this.caseDetails = this.route.snapshot.data.case;
27573
+ this.setUserAccessType(this.caseDetails);
27574
+ }
27399
27575
  }
27400
27576
  setUserAccessType(caseDetails) {
27401
27577
  if (caseDetails && Array.isArray(caseDetails.metadataFields)) {
27402
- const accessProcess = caseDetails.metadataFields.find(metadataField => metadataField.id === CaseViewerComponent.METADATA_FIELD_ACCESS_PROCESS_ID);
27403
- const accessGranted = caseDetails.metadataFields.find(metadataField => metadataField.id === CaseViewerComponent.METADATA_FIELD_ACCESS_GRANTED_ID);
27404
- this.accessGranted = accessGranted ? accessGranted.value !== CaseViewerComponent.BASIC_USER_ACCESS_TYPES : false;
27405
- this.userAccessType = accessProcess ? accessProcess.value : null;
27578
+ const access_process = caseDetails.metadataFields.find(metadataField => metadataField.id === CaseViewerComponent.METADATA_FIELD_ACCESS_PROCEES_ID);
27579
+ const access_granted = caseDetails.metadataFields.find(metadataField => metadataField.id === CaseViewerComponent.METADATA_FIELD_ACCESS_GRANTED_ID);
27580
+ this.accessGranted = access_granted ? access_granted.value !== CaseViewerComponent.BASIC_USER_ACCESS_TYPES : false;
27581
+ this.userAccessType = access_process ? access_process.value : null;
27406
27582
  }
27407
27583
  }
27408
27584
  isDataLoaded() {
@@ -27415,12 +27591,12 @@ class CaseViewerComponent {
27415
27591
  : true;
27416
27592
  }
27417
27593
  }
27418
- CaseViewerComponent.METADATA_FIELD_ACCESS_PROCESS_ID = '[ACCESS_PROCESS]';
27594
+ CaseViewerComponent.METADATA_FIELD_ACCESS_PROCEES_ID = '[ACCESS_PROCESS]';
27419
27595
  CaseViewerComponent.METADATA_FIELD_ACCESS_GRANTED_ID = '[ACCESS_GRANTED]';
27420
27596
  CaseViewerComponent.NON_STANDARD_USER_ACCESS_TYPES = ['CHALLENGED', 'SPECIFIC'];
27421
27597
  CaseViewerComponent.BASIC_USER_ACCESS_TYPES = 'BASIC';
27422
27598
  CaseViewerComponent.ɵfac = function CaseViewerComponent_Factory(t) { return new (t || CaseViewerComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(AbstractAppConfig)); };
27423
- CaseViewerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseViewerComponent, selectors: [["ccd-case-viewer"]], inputs: { hasPrint: "hasPrint", hasEventSelector: "hasEventSelector", prependedTabs: "prependedTabs", appendedTabs: "appendedTabs" }, decls: 1, vars: 1, consts: [[4, "ngIf"], [3, "accessType", "caseDetails", 4, "ngIf"], [3, "caseDetails", "hasPrint", "hasEventSelector", "prependedTabs", "appendedTabs", 4, "ngIf"], [3, "accessType", "caseDetails"], [3, "caseDetails", "hasPrint", "hasEventSelector", "prependedTabs", "appendedTabs"]], template: function CaseViewerComponent_Template(rf, ctx) { if (rf & 1) {
27599
+ CaseViewerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseViewerComponent, selectors: [["ccd-case-viewer"]], inputs: { hasPrint: "hasPrint", hasEventSelector: "hasEventSelector", prependedTabs: "prependedTabs", appendedTabs: "appendedTabs", caseDetails: "caseDetails" }, decls: 1, vars: 1, consts: [[4, "ngIf"], [3, "accessType", "caseDetails", 4, "ngIf"], [3, "caseDetails", "hasPrint", "hasEventSelector", "prependedTabs", "appendedTabs", 4, "ngIf"], [3, "accessType", "caseDetails"], [3, "caseDetails", "hasPrint", "hasEventSelector", "prependedTabs", "appendedTabs"]], template: function CaseViewerComponent_Template(rf, ctx) { if (rf & 1) {
27424
27600
  i0.ɵɵtemplate(0, CaseViewerComponent_div_0_Template, 3, 2, "div", 0);
27425
27601
  } if (rf & 2) {
27426
27602
  i0.ɵɵproperty("ngIf", ctx.isDataLoaded());
@@ -27439,6 +27615,8 @@ CaseViewerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseViewerComponent,
27439
27615
  type: Input
27440
27616
  }], appendedTabs: [{
27441
27617
  type: Input
27618
+ }], caseDetails: [{
27619
+ type: Input
27442
27620
  }] }); })();
27443
27621
 
27444
27622
  /**