@hmcts/ccd-case-ui-toolkit 7.3.34-fix-security-issue → 7.3.34

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.
package/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # ccd-case-ui-toolkit
2
2
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
3
+ [![Build Status](https://travis-ci.org/hmcts/ccd-case-ui-toolkit.svg?branch=master)](https://travis-ci.org/hmcts/ccd-case-ui-toolkit)
3
4
  [![codecov](https://codecov.io/gh/hmcts/ccd-case-ui-toolkit/branch/master/graph/badge.svg)](https://codecov.io/gh/hmcts/ccd-case-ui-toolkit)
4
5
  [![Known Vulnerabilities](https://snyk.io/test/github/hmcts/ccd-case-ui-toolkit/badge.svg)](https://snyk.io/test/github/hmcts/ccd-case-ui-toolkit)
5
6
  [![HitCount](http://hits.dwyl.io/hmcts/ccd-case-ui-toolkit.svg)](#ccd-case-ui-toolkit)
@@ -123,6 +124,7 @@ case-ui-toolkit
123
124
  ├─ .editorconfig - Common IDE configuration
124
125
  ├─ .gitignore - List of files that are ignored while publishing to git repo
125
126
  ├─ .npmignore - List of files that are ignored while publishing to npmjs
127
+ ├─ .travis.yml - Travis CI configuration
126
128
  ├─ LICENSE.md - License details
127
129
  ├─ README.md - README for the library
128
130
  ├─ gulpfile.js - Gulp helper scripts
@@ -179,6 +181,7 @@ As a result once you change library source code it will be automatically re-comp
179
181
 
180
182
  ### Library Release
181
183
 
184
+ Travis build system automatically publish NPM packages including GitHub releases whenever there is a version change in package.json
182
185
 
183
186
  Prerelease version from PR branch should follow the format as `x.y.z-RDM-xxx-prerelease`
184
187
 
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, EventEmitter, Output, NgModule, ViewEncapsulation, forwardRef, Pipe, ContentChildren, ViewChildren, DOCUMENT, Injectable, Inject, InjectionToken, Optional, ChangeDetectorRef, Directive, ViewChild, ChangeDetectionStrategy, Injector, ViewContainerRef, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
2
+ import { Component, Input, EventEmitter, Output, NgModule, ViewEncapsulation, forwardRef, Pipe, ContentChildren, ViewChildren, DOCUMENT, Injectable, Inject, ChangeDetectorRef, Directive, InjectionToken, ViewChild, ChangeDetectionStrategy, Injector, ViewContainerRef, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
3
  import * as i5 from '@angular/common';
4
4
  import { CommonModule, AsyncPipe, CurrencyPipe, formatDate } from '@angular/common';
5
5
  import * as i1 from 'rpx-xui-translation';
@@ -1637,89 +1637,23 @@ class SessionStorageService {
1637
1637
  sessionStorage.clear();
1638
1638
  }
1639
1639
  static ɵfac = function SessionStorageService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SessionStorageService)(); };
1640
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SessionStorageService, factory: SessionStorageService.ɵfac, providedIn: 'root' });
1640
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SessionStorageService, factory: SessionStorageService.ɵfac });
1641
1641
  }
1642
1642
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SessionStorageService, [{
1643
- type: Injectable,
1644
- args: [{
1645
- providedIn: 'root',
1646
- }]
1643
+ type: Injectable
1647
1644
  }], null, null); })();
1648
1645
 
1649
- function safeJsonParse(value, fallback = null) {
1650
- if (!value) {
1651
- return fallback;
1652
- }
1653
- try {
1654
- return JSON.parse(value);
1655
- }
1656
- catch (error) {
1657
- // Log for diagnostics, then return fallback to avoid UI crashes.
1658
- // eslint-disable-next-line no-console
1659
- console.error('safeJsonParse failed to parse JSON', error);
1660
- return fallback;
1661
- }
1662
- }
1663
-
1664
- const SessionErrorRoute = new InjectionToken('SessionErrorRoute');
1665
- const SessionJsonErrorLogger = new InjectionToken('SessionJsonErrorLogger');
1666
- class SessionStorageGuard {
1667
- sessionStorageService;
1668
- router;
1669
- errorRoute;
1670
- errorLogger;
1671
- constructor(sessionStorageService, router, errorRoute, errorLogger) {
1672
- this.sessionStorageService = sessionStorageService;
1673
- this.router = router;
1674
- this.errorRoute = errorRoute;
1675
- this.errorLogger = errorLogger;
1676
- }
1677
- canActivate() {
1678
- const userInfoStr = this.sessionStorageService.getItem('userDetails');
1679
- if (!userInfoStr) {
1680
- return true;
1681
- }
1682
- const parsed = safeJsonParse(userInfoStr, null);
1683
- if (parsed !== null) {
1684
- return true;
1685
- }
1686
- const error = new Error('Invalid userDetails in session storage');
1687
- if (this.errorLogger) {
1688
- this.errorLogger(error);
1689
- }
1690
- else {
1691
- // eslint-disable-next-line no-console
1692
- console.error('Invalid userDetails in session storage', error);
1693
- }
1694
- this.router.navigate([this.errorRoute || '/session-error']);
1695
- return false;
1696
- }
1697
- static ɵfac = function SessionStorageGuard_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SessionStorageGuard)(i0.ɵɵinject(SessionStorageService), i0.ɵɵinject(i1$1.Router), i0.ɵɵinject(SessionErrorRoute, 8), i0.ɵɵinject(SessionJsonErrorLogger, 8)); };
1698
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SessionStorageGuard, factory: SessionStorageGuard.ɵfac, providedIn: 'root' });
1699
- }
1700
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SessionStorageGuard, [{
1701
- type: Injectable,
1702
- args: [{
1703
- providedIn: 'root',
1704
- }]
1705
- }], () => [{ type: SessionStorageService }, { type: i1$1.Router }, { type: undefined, decorators: [{
1706
- type: Optional
1707
- }, {
1708
- type: Inject,
1709
- args: [SessionErrorRoute]
1710
- }] }, { type: SessionJsonErrorLogger, decorators: [{
1711
- type: Optional
1712
- }, {
1713
- type: Inject,
1714
- args: [SessionJsonErrorLogger]
1715
- }] }], null); })();
1716
-
1717
1646
  const USER_DETAILS = 'userDetails';
1718
1647
  const PUI_CASE_MANAGER = 'pui-case-manager';
1719
1648
  const JUDGE = 'judge';
1720
1649
  function getUserDetails(sessionStorageService) {
1721
- const item = sessionStorageService?.getItem(USER_DETAILS);
1722
- return safeJsonParse(item, null);
1650
+ try {
1651
+ const item = sessionStorageService?.getItem(USER_DETAILS);
1652
+ return item ? JSON.parse(item) : null;
1653
+ }
1654
+ catch {
1655
+ return null;
1656
+ }
1723
1657
  }
1724
1658
  function isInternalUser(sessionStorageService) {
1725
1659
  const userDetails = getUserDetails(sessionStorageService);
@@ -1758,11 +1692,8 @@ class ActivityService {
1758
1692
  return error;
1759
1693
  }
1760
1694
  getOptions() {
1761
- const userDetails = safeJsonParse(this.sessionStorageService.getItem(USER_DETAILS));
1762
- let headers = new HttpHeaders().set('Content-Type', 'application/json');
1763
- if (userDetails?.token) {
1764
- headers = headers.set('Authorization', userDetails.token);
1765
- }
1695
+ const userDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
1696
+ const headers = new HttpHeaders().set('Content-Type', 'application/json').set('Authorization', userDetails.token);
1766
1697
  return {
1767
1698
  headers,
1768
1699
  withCredentials: true,
@@ -4570,8 +4501,11 @@ class FieldsUtils {
4570
4501
  }
4571
4502
  }
4572
4503
  static getUserTaskFromClientContext(clientContextStr) {
4573
- const clientContext = safeJsonParse(clientContextStr, null);
4574
- return clientContext?.client_context?.user_task || null;
4504
+ if (clientContextStr) {
4505
+ let clientContext = JSON.parse(clientContextStr);
4506
+ return clientContext.client_context.user_task;
4507
+ }
4508
+ return null;
4575
4509
  }
4576
4510
  buildCanShowPredicate(eventTrigger, form) {
4577
4511
  const currentState = this.getCurrentEventState(eventTrigger, form);
@@ -6031,15 +5965,17 @@ class FormValueService {
6031
5965
  return form[currentFieldId + FieldsUtils.LABEL_SUFFIX].join(', ');
6032
5966
  }
6033
5967
  else if (FieldsUtils.isCollectionOfSimpleTypes(currentForm)) {
6034
- return currentForm.map((fieldValue) => fieldValue.value).join(', ');
5968
+ return currentForm.map(fieldValue => fieldValue['value']).join(', ');
6035
5969
  }
6036
5970
  else if (FieldsUtils.isCollection(currentForm)) {
6037
- return this.getFieldValue(currentForm[colIndex].value, fieldIds.slice(1).join('.'), colIndex);
5971
+ return this.getFieldValue(currentForm[colIndex]['value'], fieldIds.slice(1).join('.'), colIndex);
6038
5972
  }
6039
5973
  else if (FieldsUtils.isNonEmptyObject(currentForm)) {
6040
5974
  return this.getFieldValue(currentForm, fieldIds.slice(1).join('.'), colIndex);
6041
5975
  }
6042
- return currentForm;
5976
+ else {
5977
+ return currentForm;
5978
+ }
6043
5979
  }
6044
5980
  /**
6045
5981
  * A recursive method to remove anything with a `---LABEL` suffix.
@@ -6077,7 +6013,9 @@ class FormValueService {
6077
6013
  if (field.field_type) {
6078
6014
  return field.field_type.type === 'Label';
6079
6015
  }
6080
- return false;
6016
+ else {
6017
+ return false;
6018
+ }
6081
6019
  }
6082
6020
  static isEmptyData(data) {
6083
6021
  if (data) {
@@ -6124,13 +6062,10 @@ class FormValueService {
6124
6062
  return s;
6125
6063
  }
6126
6064
  filterCurrentPageFields(caseFields, editForm) {
6127
- const cloneForm = {
6128
- ...(editForm || {}),
6129
- data: { ...((editForm && editForm.data) || {}) }
6130
- };
6131
- Object.keys(cloneForm.data).forEach((key) => {
6065
+ const cloneForm = JSON.parse(JSON.stringify(editForm));
6066
+ Object.keys(cloneForm['data']).forEach((key) => {
6132
6067
  if (caseFields.findIndex((element) => element.id === key) < 0) {
6133
- delete cloneForm.data[key];
6068
+ delete cloneForm['data'][key];
6134
6069
  }
6135
6070
  });
6136
6071
  return cloneForm;
@@ -6171,7 +6106,7 @@ class FormValueService {
6171
6106
  if (!rawArray) {
6172
6107
  return rawArray;
6173
6108
  }
6174
- rawArray.forEach((item) => {
6109
+ rawArray.forEach(item => {
6175
6110
  if (item && item.hasOwnProperty('value')) {
6176
6111
  item.value = this.sanitiseValue(item.value);
6177
6112
  }
@@ -6180,8 +6115,8 @@ class FormValueService {
6180
6115
  // association of a value. In addition, if the array contains items with a "value" object property, return only
6181
6116
  // those whose value object contains non-empty values, including for any descendant objects
6182
6117
  return rawArray
6183
- .filter((item) => !!item)
6184
- .filter((item) => item.hasOwnProperty('value') ? FieldsUtils.containsNonEmptyValues(item.value) : true);
6118
+ .filter(item => !!item)
6119
+ .filter(item => item.hasOwnProperty('value') ? FieldsUtils.containsNonEmptyValues(item.value) : true);
6185
6120
  }
6186
6121
  sanitiseValue(rawValue) {
6187
6122
  if (Array.isArray(rawValue)) {
@@ -6200,7 +6135,7 @@ class FormValueService {
6200
6135
  }
6201
6136
  clearNonCaseFields(data, caseFields) {
6202
6137
  for (const dataKey in data) {
6203
- if (!caseFields.find((cf) => cf.id === dataKey)) {
6138
+ if (!caseFields.find(cf => cf.id === dataKey)) {
6204
6139
  delete data[dataKey];
6205
6140
  }
6206
6141
  }
@@ -6398,7 +6333,7 @@ class FormValueService {
6398
6333
  */
6399
6334
  removeCaseFieldsOfType(data, caseFields, types) {
6400
6335
  if (data && caseFields && caseFields.length > 0 && types.length > 0) {
6401
- const caseFieldsToRemove = caseFields.filter((caseField) => FieldsUtils.isCaseFieldOfType(caseField, types));
6336
+ const caseFieldsToRemove = caseFields.filter(caseField => FieldsUtils.isCaseFieldOfType(caseField, types));
6402
6337
  for (const caseField of caseFieldsToRemove) {
6403
6338
  delete data[caseField.id];
6404
6339
  }
@@ -6417,10 +6352,10 @@ class FormValueService {
6417
6352
  */
6418
6353
  repopulateFormDataFromCaseFieldValues(data, caseFields) {
6419
6354
  if (data && caseFields && caseFields.length > 0 &&
6420
- caseFields.findIndex((caseField) => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher'])) > -1) {
6355
+ caseFields.findIndex(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher'])) > -1) {
6421
6356
  // Ignore the FlagLauncher CaseField because it does not hold any values
6422
- caseFields.filter((caseField) => !FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']))
6423
- .forEach((caseField) => {
6357
+ caseFields.filter(caseField => !FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']))
6358
+ .forEach(caseField => {
6424
6359
  // Ensure that the data object is populated for all CaseField keys it contains, even if for a given
6425
6360
  // CaseField key, the data object has a falsy value (hence the use of hasOwnProperty() for the check below)
6426
6361
  // See https://tools.hmcts.net/jira/browse/EUI-7377
@@ -6452,8 +6387,8 @@ class FormValueService {
6452
6387
  */
6453
6388
  populateLinkedCasesDetailsFromCaseFields(data, caseFields) {
6454
6389
  if (data && caseFields && caseFields.length > 0) {
6455
- caseFields.filter((caseField) => !FieldsUtils.isCaseFieldOfType(caseField, ['ComponentLauncher']))
6456
- .forEach((caseField) => {
6390
+ caseFields.filter(caseField => !FieldsUtils.isCaseFieldOfType(caseField, ['ComponentLauncher']))
6391
+ .forEach(caseField => {
6457
6392
  if (data.hasOwnProperty('caseLinks') && caseField.value) {
6458
6393
  data[caseField.id] = caseField.value;
6459
6394
  }
@@ -9480,7 +9415,7 @@ class CaseEditComponent {
9480
9415
  ngOnInit() {
9481
9416
  this.wizard = this.wizardFactory.create(this.eventTrigger);
9482
9417
  this.initialUrl = this.sessionStorageService.getItem('eventUrl');
9483
- this.isPageRefreshed = safeJsonParse(this.sessionStorageService.getItem('isPageRefreshed'), false);
9418
+ this.isPageRefreshed = JSON.parse(this.sessionStorageService.getItem('isPageRefreshed'));
9484
9419
  this.checkPageRefresh();
9485
9420
  this.form = this.fb.group({
9486
9421
  data: new FormGroup({}),
@@ -9604,11 +9539,15 @@ class CaseEditComponent {
9604
9539
  const taskEventCompletionStr = this.sessionStorageService.getItem(CaseEditComponent.TASK_EVENT_COMPLETION_INFO);
9605
9540
  const userInfoStr = this.sessionStorageService.getItem('userDetails');
9606
9541
  const assignNeeded = this.sessionStorageService.getItem('assignNeeded');
9607
- taskEventCompletionInfo = safeJsonParse(taskEventCompletionStr, null);
9608
- userInfo = safeJsonParse(userInfoStr, null);
9542
+ if (taskEventCompletionStr) {
9543
+ taskEventCompletionInfo = JSON.parse(taskEventCompletionStr);
9544
+ }
9545
+ if (userInfoStr) {
9546
+ userInfo = JSON.parse(userInfoStr);
9547
+ }
9609
9548
  const eventId = this.getEventId(form);
9610
9549
  const caseId = this.getCaseId(caseDetails);
9611
- const userId = userInfo?.id ? userInfo.id : userInfo?.uid;
9550
+ const userId = userInfo.id ? userInfo.id : userInfo.uid;
9612
9551
  const eventDetails = { eventId, caseId, userId, assignNeeded };
9613
9552
  if (this.taskExistsForThisEvent(taskInSessionStorage, taskEventCompletionInfo, eventDetails)) {
9614
9553
  this.abstractConfig.logMessage(`task ${taskInSessionStorage?.id} exist for this event for caseId and eventId as ${caseId} ${eventId}`);
@@ -9970,7 +9909,7 @@ class CaseEditComponent {
9970
9909
  }], submitted: [{
9971
9910
  type: Output
9972
9911
  }] }); })();
9973
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditComponent, { className: "CaseEditComponent", filePath: "lib/shared/components/case-editor/case-edit/case-edit.component.ts", lineNumber: 39 }); })();
9912
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditComponent, { className: "CaseEditComponent", filePath: "lib/shared/components/case-editor/case-edit/case-edit.component.ts", lineNumber: 38 }); })();
9974
9913
 
9975
9914
  function convertNonASCIICharacter(character) {
9976
9915
  if (character === '£') {
@@ -12029,42 +11968,6 @@ class CallbackErrorsComponent {
12029
11968
  }] }); })();
12030
11969
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CallbackErrorsComponent, { className: "CallbackErrorsComponent", filePath: "lib/shared/components/error/callback-errors.component.ts", lineNumber: 11 }); })();
12031
11970
 
12032
- class SessionErrorPageComponent {
12033
- title = 'There is a problem with your session';
12034
- primaryMessage = 'Go to landing page. Refreshing the page. If the problem persists, sign out and sign in again.';
12035
- secondaryMessage = 'If you still cannot access the service, clear your browser data for this website.';
12036
- static ɵfac = function SessionErrorPageComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SessionErrorPageComponent)(); };
12037
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SessionErrorPageComponent, selectors: [["ccd-session-error-page"]], inputs: { title: "title", primaryMessage: "primaryMessage", secondaryMessage: "secondaryMessage" }, decls: 10, vars: 3, consts: [[1, "govuk-width-container"], ["id", "content", "role", "main", 1, "govuk-main-wrapper", "govuk-main-wrapper--l"], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds"], [1, "govuk-heading-xl"], [1, "govuk-body"]], template: function SessionErrorPageComponent_Template(rf, ctx) { if (rf & 1) {
12038
- i0.ɵɵdomElementStart(0, "div", 0)(1, "main", 1)(2, "div", 2)(3, "div", 3)(4, "h1", 4);
12039
- i0.ɵɵtext(5);
12040
- i0.ɵɵdomElementEnd();
12041
- i0.ɵɵdomElementStart(6, "p", 5);
12042
- i0.ɵɵtext(7);
12043
- i0.ɵɵdomElementEnd();
12044
- i0.ɵɵdomElementStart(8, "p", 5);
12045
- i0.ɵɵtext(9);
12046
- i0.ɵɵdomElementEnd()()()()();
12047
- } if (rf & 2) {
12048
- i0.ɵɵadvance(5);
12049
- i0.ɵɵtextInterpolate(ctx.title);
12050
- i0.ɵɵadvance(2);
12051
- i0.ɵɵtextInterpolate(ctx.primaryMessage);
12052
- i0.ɵɵadvance(2);
12053
- i0.ɵɵtextInterpolate(ctx.secondaryMessage);
12054
- } }, dependencies: [CommonModule], encapsulation: 2 });
12055
- }
12056
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SessionErrorPageComponent, [{
12057
- type: Component,
12058
- args: [{ selector: 'ccd-session-error-page', standalone: true, imports: [CommonModule], template: "<div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-xl\">{{ title }}</h1>\n <p class=\"govuk-body\">{{ primaryMessage }}</p>\n <p class=\"govuk-body\">{{ secondaryMessage }}</p>\n </div>\n </div>\n </main>\n</div>\n" }]
12059
- }], null, { title: [{
12060
- type: Input
12061
- }], primaryMessage: [{
12062
- type: Input
12063
- }], secondaryMessage: [{
12064
- type: Input
12065
- }] }); })();
12066
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SessionErrorPageComponent, { className: "SessionErrorPageComponent", filePath: "lib/shared/components/error/session-error-page.component.ts", lineNumber: 10 }); })();
12067
-
12068
11971
  function CaseEventCompletionComponent_app_case_event_completion_task_cancelled_0_Template(rf, ctx) { if (rf & 1) {
12069
11972
  const _r1 = i0.ɵɵgetCurrentView();
12070
11973
  i0.ɵɵelementStart(0, "app-case-event-completion-task-cancelled", 2);
@@ -13314,10 +13217,9 @@ class CaseFileViewFieldComponent {
13314
13217
  error: _ => this.getCategoriesAndDocumentsError = true
13315
13218
  });
13316
13219
  // EXUI-8000
13317
- const userInfo = safeJsonParse(this.sessionStorageService.getItem('userDetails'), null);
13318
- const userRoles = userInfo?.roles || [];
13220
+ const userInfo = JSON.parse(this.sessionStorageService.getItem('userDetails'));
13319
13221
  // Get acls that intersects from acl roles and user roles
13320
- const acls = this.caseField.acls.filter(acl => userRoles.includes(acl.role));
13222
+ const acls = this.caseField.acls.filter(acl => userInfo.roles.includes(acl.role));
13321
13223
  // As there can be more than one intersecting role, if any acls are update: true
13322
13224
  this.allowMoving = acls.some(acl => acl.update);
13323
13225
  this.icp_jurisdictions = this.abstractConfig.getIcpJurisdictions();
@@ -13398,7 +13300,7 @@ class CaseFileViewFieldComponent {
13398
13300
  type: Component,
13399
13301
  args: [{ selector: 'ccd-case-file-view-field', standalone: false, template: "<ng-container *ngIf=\"errorMessages?.length\">\n <div\n id=\"case-file-view-field-errors\"\n class=\"govuk-error-summary govuk-!-margin-bottom-4\"\n data-module=\"govuk-error-summary\"\n >\n <div role=\"alert\">\n <h2 class=\"govuk-error-summary__title\">There is a problem</h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li *ngFor=\"let errorMessage of errorMessages\">\n <button type=\"button\" class=\"govuk-js-link\">{{ errorMessage }}</button>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</ng-container>\n\n<div\n *ngIf=\"getCategoriesAndDocumentsError\"\n class=\"govuk-grid-column-two-thirds\"\n>\n <h1 class=\"govuk-heading-xl\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\">Try again later.</p>\n</div>\n<div *ngIf=\"!getCategoriesAndDocumentsError\">\n <h2 class=\"govuk-heading-l\">Case file</h2>\n <div class=\"govuk-form-group\" id=\"case-file-view\">\n <!-- Document tree -->\n <div class=\"document-tree-container\">\n <ccd-case-file-view-folder \n class=\"document-tree-container__tree\"\n [categoriesAndDocuments]=\"categoriesAndDocuments$\"\n (clickedDocument)=\"setMediaViewerFile($event); resetErrorMessages()\" \n (moveDocument)=\"moveDocument($event)\"\n [allowMoving]=\"allowMoving\">\n </ccd-case-file-view-folder>\n </div>\n <!-- Slider -->\n <div class=\"slider\"></div>\n <!-- Media viewer -->\n <div class=\"media-viewer-container\">\n <ng-container *ngIf=\"currentDocument\">\n <mv-media-viewer\n [url]=\"currentDocument.document_binary_url\"\n [downloadFileName]=\"currentDocument.document_filename\"\n [showToolbar]=\"true\"\n [contentType]=\"currentDocument.content_type\"\n [enableAnnotations]=\"true\"\n [enableRedactions]=\"true\"\n [height]=\"'94.5vh'\"\n [caseId]=\"caseId\"\n [multimediaPlayerEnabled]=\"true\"\n [enableICP]=\"isIcpEnabled()\"\n >\n </mv-media-viewer>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: ["#case-file-view{display:flex;border:2px solid #C9C9C9;height:100vh;position:relative}#case-file-view .document-tree-container{background-color:#faf8f8;width:30%;min-height:400px;min-width:10%}#case-file-view .slider{width:.2%;background-color:#6b6b6b}#case-file-view .slider:hover,#case-file-view .slider:focus{cursor:col-resize}#case-file-view .media-viewer-container{background-color:#dee0e2;flex:1 1 0;overflow:hidden}\n"] }]
13400
13302
  }], () => [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }, { type: SessionStorageService }, { type: CaseNotifier }, { type: AbstractAppConfig }], null); })();
13401
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFieldComponent, { className: "CaseFileViewFieldComponent", filePath: "lib/shared/components/palette/case-file-view/case-file-view-field.component.ts", lineNumber: 19 }); })();
13303
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFieldComponent, { className: "CaseFileViewFieldComponent", filePath: "lib/shared/components/palette/case-file-view/case-file-view-field.component.ts", lineNumber: 18 }); })();
13402
13304
 
13403
13305
  function ReadCaseFlagFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
13404
13306
  const _r1 = i0.ɵɵgetCurrentView();
@@ -20633,14 +20535,14 @@ class PaymentField extends AbstractFieldReadComponent {
20633
20535
  return this.appConfig.getNotificationUrl();
20634
20536
  }
20635
20537
  getUserRoles() {
20636
- const userDetails = safeJsonParse(this.sessionStorage.getItem('userDetails'), null);
20538
+ const userDetails = JSON.parse(this.sessionStorage.getItem('userDetails') || null);
20637
20539
  if (!userDetails || !userDetails.hasOwnProperty('roles')) {
20638
20540
  return [];
20639
20541
  }
20640
20542
  return userDetails.roles;
20641
20543
  }
20642
20544
  getUserEmail() {
20643
- const userDetails = safeJsonParse(this.sessionStorage.getItem('userDetails'), null);
20545
+ const userDetails = JSON.parse(this.sessionStorage.getItem('userDetails') || null);
20644
20546
  if (!userDetails || !userDetails.hasOwnProperty('sub')) {
20645
20547
  return '';
20646
20548
  }
@@ -21366,7 +21268,7 @@ class QueryManagementService {
21366
21268
  ) {
21367
21269
  let currentUserDetails;
21368
21270
  try {
21369
- currentUserDetails = safeJsonParse(this.sessionStorageService.getItem(USER_DETAILS), {});
21271
+ currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
21370
21272
  }
21371
21273
  catch (e) {
21372
21274
  console.error('Could not parse USER_DETAILS from session storage:', e);
@@ -30262,9 +30164,7 @@ class EventLogTableComponent {
30262
30164
  }
30263
30165
  ngOnInit() {
30264
30166
  this.isPartOfCaseTimeline = this.onCaseHistory.observers.length > 0;
30265
- const userDetails = safeJsonParse(this.sessionStorage.getItem('userDetails'), null);
30266
- const roles = userDetails?.roles || [];
30267
- this.isUserExternal = roles.includes('pui-case-manager');
30167
+ this.isUserExternal = JSON.parse(this.sessionStorage.getItem('userDetails')).roles.includes('pui-case-manager');
30268
30168
  }
30269
30169
  select(event) {
30270
30170
  this.selected = event;
@@ -30353,7 +30253,7 @@ class EventLogTableComponent {
30353
30253
  }], onCaseHistory: [{
30354
30254
  type: Output
30355
30255
  }] }); })();
30356
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventLogTableComponent, { className: "EventLogTableComponent", filePath: "lib/shared/components/palette/history/event-log/event-log-table.component.ts", lineNumber: 13 }); })();
30256
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventLogTableComponent, { className: "EventLogTableComponent", filePath: "lib/shared/components/palette/history/event-log/event-log-table.component.ts", lineNumber: 12 }); })();
30357
30257
 
30358
30258
  function EventLogComponent_ccd_event_log_table_3_Template(rf, ctx) { if (rf & 1) {
30359
30259
  const _r1 = i0.ɵɵgetCurrentView();
@@ -35117,7 +35017,7 @@ class CaseResolver {
35117
35017
  // as discussed for EUI-5456, need functionality to go to default page
35118
35018
  goToDefaultPage() {
35119
35019
  console.info('Going to default page!');
35120
- const userDetails = safeJsonParse(this.sessionStorage.getItem(USER_DETAILS));
35020
+ const userDetails = JSON.parse(this.sessionStorage.getItem(USER_DETAILS));
35121
35021
  userDetails && userDetails.roles
35122
35022
  && !userDetails.roles.includes(PUI_CASE_MANAGER)
35123
35023
  &&
@@ -35170,7 +35070,7 @@ class EventTriggerResolver {
35170
35070
  const query = route.queryParams;
35171
35071
  // If jurisdiction or caseType are missing, redirect to correct URL
35172
35072
  if (!jurisdiction || !caseType) {
35173
- const caseInfo = safeJsonParse(this.sessionStorageService.getItem('caseInfo'), {});
35073
+ const caseInfo = JSON.parse(this.sessionStorageService.getItem('caseInfo') || '{}');
35174
35074
  const jurisdictionId = caseInfo?.jurisdiction;
35175
35075
  const caseTypeId = caseInfo?.caseType;
35176
35076
  const caseId = caseInfo?.caseId;
@@ -39438,7 +39338,7 @@ class CreateCaseFiltersComponent {
39438
39338
  return events.filter(event => event.pre_states.length === 0);
39439
39339
  }
39440
39340
  retainEventsWithCreateRights(events) {
39441
- const userProfile = safeJsonParse(this.sessionStorageService.getItem(USER_DETAILS), null);
39341
+ const userProfile = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
39442
39342
  return events.filter(event => userProfile && userProfile.roles &&
39443
39343
  !!userProfile.roles.find(role => this.hasCreateAccess(event, role)));
39444
39344
  }
@@ -39576,7 +39476,7 @@ class CreateCaseFiltersComponent {
39576
39476
  }], selectionChanged: [{
39577
39477
  type: Output
39578
39478
  }] }); })();
39579
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CreateCaseFiltersComponent, { className: "CreateCaseFiltersComponent", filePath: "lib/shared/components/create-case-filters/create-case-filters.component.ts", lineNumber: 20 }); })();
39479
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CreateCaseFiltersComponent, { className: "CreateCaseFiltersComponent", filePath: "lib/shared/components/create-case-filters/create-case-filters.component.ts", lineNumber: 19 }); })();
39580
39480
 
39581
39481
  class CreateCaseFiltersModule {
39582
39482
  static ɵfac = function CreateCaseFiltersModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CreateCaseFiltersModule)(); };
@@ -41197,5 +41097,5 @@ class TestRouteSnapshotBuilder {
41197
41097
  * Generated bundle index. Do not edit.
41198
41098
  */
41199
41099
 
41200
- export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, AbstractFieldWriteJourneyComponent, AbstractJourneyComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, COMPONENT_PORTAL_INJECTION_TOKEN, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewFolderToggleComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagCheckYourAnswersPageStep, CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, CloseQueryComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, ConfirmFlagStatusComponent, ConfirmStatusErrorMessage, ConfirmStatusStep, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, EnumDisplayDescriptionPipe, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FlagFieldDisplayPipe, FocusElementDirective, FocusElementModule, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LanguageInterpreterDisplayPipe, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, ManageCaseFlagsLabelDisplayPipe, MarkdownComponent, MarkdownComponentModule, MoneyGbpInputComponent, MultipageComponentStateService, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, QualifyingQuestionDetailComponent, QualifyingQuestionOptionsComponent, QualifyingQuestionService, QualifyingQuestionsErrorMessage, QueryAttachmentsReadComponent, QueryCaseDetailsHeaderComponent, QueryCheckYourAnswersComponent, QueryConfirmationComponent, QueryCreateContext, QueryDetailsComponent, QueryEventCompletionComponent, QueryItemResponseStatus, QueryListComponent, QueryListData, QueryListItem, QueryManagementService, QueryWriteAddDocumentsComponent, QueryWriteDateInputComponent, QueryWriteRaiseQueryComponent, QueryWriteRespondToQueryComponent, RaiseQueryErrorMessage, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadCookieService, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicMultiSelectListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadQueryManagementFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RespondToQueryErrorMessages, RetryUtil, RouterHelperService, RouterLinkComponent, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionErrorPageComponent, SessionErrorRoute, SessionJsonErrorLogger, SessionStorageGuard, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, TranslatedMarkdownDirective, TranslatedMarkdownModule, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagAddTranslationErrorMessage, UpdateFlagAddTranslationFormComponent, UpdateFlagAddTranslationStep, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, UpdateFlagTitleDisplayPipe, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicMultiSelectListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, caseMessagesMockData, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, safeJsonParse, textFieldType, viewerRouting };
41100
+ export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, AbstractFieldWriteJourneyComponent, AbstractJourneyComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, COMPONENT_PORTAL_INJECTION_TOKEN, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewFolderToggleComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagCheckYourAnswersPageStep, CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, CloseQueryComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, ConfirmFlagStatusComponent, ConfirmStatusErrorMessage, ConfirmStatusStep, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, EnumDisplayDescriptionPipe, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FlagFieldDisplayPipe, FocusElementDirective, FocusElementModule, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LanguageInterpreterDisplayPipe, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, ManageCaseFlagsLabelDisplayPipe, MarkdownComponent, MarkdownComponentModule, MoneyGbpInputComponent, MultipageComponentStateService, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, QualifyingQuestionDetailComponent, QualifyingQuestionOptionsComponent, QualifyingQuestionService, QualifyingQuestionsErrorMessage, QueryAttachmentsReadComponent, QueryCaseDetailsHeaderComponent, QueryCheckYourAnswersComponent, QueryConfirmationComponent, QueryCreateContext, QueryDetailsComponent, QueryEventCompletionComponent, QueryItemResponseStatus, QueryListComponent, QueryListData, QueryListItem, QueryManagementService, QueryWriteAddDocumentsComponent, QueryWriteDateInputComponent, QueryWriteRaiseQueryComponent, QueryWriteRespondToQueryComponent, RaiseQueryErrorMessage, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadCookieService, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicMultiSelectListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadQueryManagementFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RespondToQueryErrorMessages, RetryUtil, RouterHelperService, RouterLinkComponent, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, TranslatedMarkdownDirective, TranslatedMarkdownModule, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagAddTranslationErrorMessage, UpdateFlagAddTranslationFormComponent, UpdateFlagAddTranslationStep, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, UpdateFlagTitleDisplayPipe, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicMultiSelectListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, caseMessagesMockData, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, textFieldType, viewerRouting };
41201
41101
  //# sourceMappingURL=hmcts-ccd-case-ui-toolkit.mjs.map