@hmcts/ccd-case-ui-toolkit 7.3.53-polling → 7.3.54-4300
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 +0 -3
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +345 -190
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/index.d.ts +45 -9
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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, ChangeDetectorRef, Directive,
|
|
2
|
+
import { Component, Input, EventEmitter, Output, NgModule, ViewEncapsulation, forwardRef, Pipe, ContentChildren, ViewChildren, DOCUMENT, Injectable, Inject, InjectionToken, Optional, ChangeDetectorRef, Directive, ViewChild, ChangeDetectionStrategy, Injector, ViewContainerRef, SecurityContext, 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';
|
|
@@ -8,10 +8,11 @@ import * as i1$1 from '@angular/router';
|
|
|
8
8
|
import { RouterModule, NavigationStart, NavigationEnd } from '@angular/router';
|
|
9
9
|
import * as i4 from '@angular/forms';
|
|
10
10
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormArray, FormGroup, FormControl, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
11
|
-
import { BehaviorSubject, throwError, Subject, EMPTY,
|
|
12
|
-
import { distinctUntilChanged, catchError, map, switchMap, repeat, retry, publish, refCount, debounceTime, delay, finalize, timeout, mergeMap, retryWhen, tap, delayWhen, publishReplay, take, first, takeUntil, filter } from 'rxjs/operators';
|
|
11
|
+
import { BehaviorSubject, throwError, Subject, EMPTY, Observable, skip, of, timer, forkJoin, fromEvent, Subscription, combineLatest } from 'rxjs';
|
|
13
12
|
import * as i1$2 from '@angular/common/http';
|
|
14
13
|
import { HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
|
|
14
|
+
import { distinctUntilChanged, catchError, map, publish, refCount, switchMap, debounceTime, delay, finalize, timeout, mergeMap, retryWhen, tap, delayWhen, publishReplay, take, first, takeUntil, filter } from 'rxjs/operators';
|
|
15
|
+
import { polling } from 'rx-polling-hmcts';
|
|
15
16
|
import { Type, Exclude, Expose, plainToClassFromExist, plainToClass } from 'class-transformer';
|
|
16
17
|
import moment from 'moment';
|
|
17
18
|
import { __decorate, __metadata } from 'tslib';
|
|
@@ -1637,23 +1638,89 @@ class SessionStorageService {
|
|
|
1637
1638
|
sessionStorage.clear();
|
|
1638
1639
|
}
|
|
1639
1640
|
static ɵfac = function SessionStorageService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SessionStorageService)(); };
|
|
1640
|
-
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SessionStorageService, factory: SessionStorageService.ɵfac });
|
|
1641
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SessionStorageService, factory: SessionStorageService.ɵfac, providedIn: 'root' });
|
|
1641
1642
|
}
|
|
1642
1643
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SessionStorageService, [{
|
|
1643
|
-
type: Injectable
|
|
1644
|
+
type: Injectable,
|
|
1645
|
+
args: [{
|
|
1646
|
+
providedIn: 'root',
|
|
1647
|
+
}]
|
|
1644
1648
|
}], null, null); })();
|
|
1645
1649
|
|
|
1650
|
+
function safeJsonParse(value, fallback = null) {
|
|
1651
|
+
if (!value) {
|
|
1652
|
+
return fallback;
|
|
1653
|
+
}
|
|
1654
|
+
try {
|
|
1655
|
+
return JSON.parse(value);
|
|
1656
|
+
}
|
|
1657
|
+
catch (error) {
|
|
1658
|
+
// Log for diagnostics, then return fallback to avoid UI crashes.
|
|
1659
|
+
// eslint-disable-next-line no-console
|
|
1660
|
+
console.error('safeJsonParse failed to parse JSON', error);
|
|
1661
|
+
return fallback;
|
|
1662
|
+
}
|
|
1663
|
+
}
|
|
1664
|
+
|
|
1665
|
+
const SessionErrorRoute = new InjectionToken('SessionErrorRoute');
|
|
1666
|
+
const SessionJsonErrorLogger = new InjectionToken('SessionJsonErrorLogger');
|
|
1667
|
+
class SessionStorageGuard {
|
|
1668
|
+
sessionStorageService;
|
|
1669
|
+
router;
|
|
1670
|
+
errorRoute;
|
|
1671
|
+
errorLogger;
|
|
1672
|
+
constructor(sessionStorageService, router, errorRoute, errorLogger) {
|
|
1673
|
+
this.sessionStorageService = sessionStorageService;
|
|
1674
|
+
this.router = router;
|
|
1675
|
+
this.errorRoute = errorRoute;
|
|
1676
|
+
this.errorLogger = errorLogger;
|
|
1677
|
+
}
|
|
1678
|
+
canActivate() {
|
|
1679
|
+
const userInfoStr = this.sessionStorageService.getItem('userDetails');
|
|
1680
|
+
if (!userInfoStr) {
|
|
1681
|
+
return true;
|
|
1682
|
+
}
|
|
1683
|
+
const parsed = safeJsonParse(userInfoStr, null);
|
|
1684
|
+
if (parsed !== null) {
|
|
1685
|
+
return true;
|
|
1686
|
+
}
|
|
1687
|
+
const error = new Error('Invalid userDetails in session storage');
|
|
1688
|
+
if (this.errorLogger) {
|
|
1689
|
+
this.errorLogger(error);
|
|
1690
|
+
}
|
|
1691
|
+
else {
|
|
1692
|
+
// eslint-disable-next-line no-console
|
|
1693
|
+
console.error('Invalid userDetails in session storage', error);
|
|
1694
|
+
}
|
|
1695
|
+
this.router.navigate([this.errorRoute || '/session-error']);
|
|
1696
|
+
return false;
|
|
1697
|
+
}
|
|
1698
|
+
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)); };
|
|
1699
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SessionStorageGuard, factory: SessionStorageGuard.ɵfac, providedIn: 'root' });
|
|
1700
|
+
}
|
|
1701
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SessionStorageGuard, [{
|
|
1702
|
+
type: Injectable,
|
|
1703
|
+
args: [{
|
|
1704
|
+
providedIn: 'root',
|
|
1705
|
+
}]
|
|
1706
|
+
}], () => [{ type: SessionStorageService }, { type: i1$1.Router }, { type: undefined, decorators: [{
|
|
1707
|
+
type: Optional
|
|
1708
|
+
}, {
|
|
1709
|
+
type: Inject,
|
|
1710
|
+
args: [SessionErrorRoute]
|
|
1711
|
+
}] }, { type: SessionJsonErrorLogger, decorators: [{
|
|
1712
|
+
type: Optional
|
|
1713
|
+
}, {
|
|
1714
|
+
type: Inject,
|
|
1715
|
+
args: [SessionJsonErrorLogger]
|
|
1716
|
+
}] }], null); })();
|
|
1717
|
+
|
|
1646
1718
|
const USER_DETAILS = 'userDetails';
|
|
1647
1719
|
const PUI_CASE_MANAGER = 'pui-case-manager';
|
|
1648
1720
|
const JUDGE = 'judge';
|
|
1649
1721
|
function getUserDetails(sessionStorageService) {
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
return item ? JSON.parse(item) : null;
|
|
1653
|
-
}
|
|
1654
|
-
catch {
|
|
1655
|
-
return null;
|
|
1656
|
-
}
|
|
1722
|
+
const item = sessionStorageService?.getItem(USER_DETAILS);
|
|
1723
|
+
return safeJsonParse(item, null);
|
|
1657
1724
|
}
|
|
1658
1725
|
function isInternalUser(sessionStorageService) {
|
|
1659
1726
|
const userDetails = getUserDetails(sessionStorageService);
|
|
@@ -1692,8 +1759,11 @@ class ActivityService {
|
|
|
1692
1759
|
return error;
|
|
1693
1760
|
}
|
|
1694
1761
|
getOptions() {
|
|
1695
|
-
const userDetails =
|
|
1696
|
-
|
|
1762
|
+
const userDetails = safeJsonParse(this.sessionStorageService.getItem(USER_DETAILS));
|
|
1763
|
+
let headers = new HttpHeaders().set('Content-Type', 'application/json');
|
|
1764
|
+
if (userDetails?.token) {
|
|
1765
|
+
headers = headers.set('Authorization', userDetails.token);
|
|
1766
|
+
}
|
|
1697
1767
|
return {
|
|
1698
1768
|
headers,
|
|
1699
1769
|
withCredentials: true,
|
|
@@ -1759,7 +1829,8 @@ class ActivityPollingService {
|
|
|
1759
1829
|
this.config = config;
|
|
1760
1830
|
this.pollConfig = {
|
|
1761
1831
|
interval: config.getActivityNexPollRequestMs(),
|
|
1762
|
-
attempts: config.getActivityRetry()
|
|
1832
|
+
attempts: config.getActivityRetry(),
|
|
1833
|
+
backgroundPolling: true
|
|
1763
1834
|
};
|
|
1764
1835
|
this.batchCollectionDelayMs = config.getActivityBatchCollectionDelayMs();
|
|
1765
1836
|
this.maxRequestsPerBatch = config.getActivityMaxRequestPerBatch();
|
|
@@ -1776,19 +1847,17 @@ class ActivityPollingService {
|
|
|
1776
1847
|
subject.subscribe(done);
|
|
1777
1848
|
}
|
|
1778
1849
|
else {
|
|
1779
|
-
// Only the first pending request should start the batch collection timer.
|
|
1780
|
-
const wasEmpty = this.pendingRequests.size === 0;
|
|
1781
1850
|
subject = new Subject();
|
|
1782
1851
|
subject.subscribe(done);
|
|
1783
|
-
this.
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
});
|
|
1791
|
-
}
|
|
1852
|
+
this.pendingRequests.set(caseId, subject);
|
|
1853
|
+
}
|
|
1854
|
+
if (this.pendingRequests.size === 1) {
|
|
1855
|
+
this.ngZone.runOutsideAngular(() => {
|
|
1856
|
+
this.currentTimeoutHandle = setTimeout(() => this.ngZone.run(() => {
|
|
1857
|
+
// console.log('timeout: flushing requests')
|
|
1858
|
+
this.flushRequests();
|
|
1859
|
+
}), this.batchCollectionDelayMs);
|
|
1860
|
+
});
|
|
1792
1861
|
}
|
|
1793
1862
|
if (this.pendingRequests.size >= this.maxRequestsPerBatch) {
|
|
1794
1863
|
// console.log('max pending hit: flushing requests');
|
|
@@ -1806,9 +1875,6 @@ class ActivityPollingService {
|
|
|
1806
1875
|
clearTimeout(this.currentTimeoutHandle);
|
|
1807
1876
|
this.currentTimeoutHandle = undefined;
|
|
1808
1877
|
}
|
|
1809
|
-
if (!this.pendingRequests.size) {
|
|
1810
|
-
return;
|
|
1811
|
-
}
|
|
1812
1878
|
const requests = new Map(this.pendingRequests);
|
|
1813
1879
|
this.pendingRequests.clear();
|
|
1814
1880
|
this.performBatchRequest(requests);
|
|
@@ -1817,7 +1883,7 @@ class ActivityPollingService {
|
|
|
1817
1883
|
if (!this.isEnabled) {
|
|
1818
1884
|
return EMPTY;
|
|
1819
1885
|
}
|
|
1820
|
-
return
|
|
1886
|
+
return polling(this.activityService.getActivities(...caseIds), this.pollConfig);
|
|
1821
1887
|
}
|
|
1822
1888
|
postViewActivity(caseId) {
|
|
1823
1889
|
return this.postActivity(caseId, ActivityService.ACTIVITY_VIEW);
|
|
@@ -1830,20 +1896,17 @@ class ActivityPollingService {
|
|
|
1830
1896
|
// console.log('issuing batch request for cases: ' + caseIds);
|
|
1831
1897
|
this.ngZone.runOutsideAngular(() => {
|
|
1832
1898
|
// run polling outside angular zone so it does not trigger change detection
|
|
1833
|
-
this.pollActivitiesSubscription = this.pollActivities(caseIds).subscribe(
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
})
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
Array.from(requests.values()).forEach((subject) => subject.error(err));
|
|
1845
|
-
})
|
|
1846
|
-
});
|
|
1899
|
+
this.pollActivitiesSubscription = this.pollActivities(caseIds).subscribe(
|
|
1900
|
+
// process activity inside zone so it triggers change detection for activity.component.ts
|
|
1901
|
+
(activities) => this.ngZone.run(() => {
|
|
1902
|
+
activities.forEach((activity) => {
|
|
1903
|
+
// console.log('pushing activity: ' + activity.caseId);
|
|
1904
|
+
requests.get(activity.caseId).next(activity);
|
|
1905
|
+
});
|
|
1906
|
+
}, (err) => {
|
|
1907
|
+
console.log(`error: ${err}`);
|
|
1908
|
+
Array.from(requests.values()).forEach((subject) => subject.error(err));
|
|
1909
|
+
}));
|
|
1847
1910
|
});
|
|
1848
1911
|
}
|
|
1849
1912
|
postActivity(caseId, activityType) {
|
|
@@ -1854,42 +1917,7 @@ class ActivityPollingService {
|
|
|
1854
1917
|
...this.pollConfig,
|
|
1855
1918
|
interval: 5000 // inline with CCD Backend
|
|
1856
1919
|
};
|
|
1857
|
-
return
|
|
1858
|
-
}
|
|
1859
|
-
addPendingRequest(caseId, subject) {
|
|
1860
|
-
this.pendingRequests.set(caseId, subject);
|
|
1861
|
-
// Components complete their returned Subject on destroy; remove it so a later same-case subscription gets a fresh Subject.
|
|
1862
|
-
subject.subscribe({
|
|
1863
|
-
complete: () => this.removePendingRequest(caseId, subject),
|
|
1864
|
-
error: () => this.removePendingRequest(caseId, subject)
|
|
1865
|
-
});
|
|
1866
|
-
}
|
|
1867
|
-
removePendingRequest(caseId, subject) {
|
|
1868
|
-
if (this.pendingRequests.get(caseId) !== subject) {
|
|
1869
|
-
return;
|
|
1870
|
-
}
|
|
1871
|
-
this.pendingRequests.delete(caseId);
|
|
1872
|
-
if (!this.pendingRequests.size && this.currentTimeoutHandle) {
|
|
1873
|
-
clearTimeout(this.currentTimeoutHandle);
|
|
1874
|
-
this.currentTimeoutHandle = undefined;
|
|
1875
|
-
}
|
|
1876
|
-
}
|
|
1877
|
-
polling(request$, options) {
|
|
1878
|
-
const pollingOptions = {
|
|
1879
|
-
interval: options.interval,
|
|
1880
|
-
attempts: options.attempts ?? 9,
|
|
1881
|
-
exponentialUnit: options.exponentialUnit ?? 1000
|
|
1882
|
-
};
|
|
1883
|
-
return concat(request$, defer(() => timer(pollingOptions.interval).pipe(switchMap(() => request$))).pipe(repeat())).pipe(
|
|
1884
|
-
// Preserve consecutive-failure retry behaviour using the current RxJS retry config.
|
|
1885
|
-
retry({
|
|
1886
|
-
count: pollingOptions.attempts,
|
|
1887
|
-
delay: (_error, retryCount) => timer(this.getExponentialRetryDelay(retryCount, pollingOptions.exponentialUnit)),
|
|
1888
|
-
resetOnSuccess: true
|
|
1889
|
-
}));
|
|
1890
|
-
}
|
|
1891
|
-
getExponentialRetryDelay(consecutiveErrorsCount, exponentialUnit) {
|
|
1892
|
-
return Math.pow(2, consecutiveErrorsCount - 1) * exponentialUnit;
|
|
1920
|
+
return polling(this.activityService.postActivity(caseId, activityType), pollingConfig);
|
|
1893
1921
|
}
|
|
1894
1922
|
static ɵfac = function ActivityPollingService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActivityPollingService)(i0.ɵɵinject(ActivityService), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(AbstractAppConfig)); };
|
|
1895
1923
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ActivityPollingService, factory: ActivityPollingService.ɵfac });
|
|
@@ -4544,11 +4572,8 @@ class FieldsUtils {
|
|
|
4544
4572
|
}
|
|
4545
4573
|
}
|
|
4546
4574
|
static getUserTaskFromClientContext(clientContextStr) {
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
return clientContext.client_context.user_task;
|
|
4550
|
-
}
|
|
4551
|
-
return null;
|
|
4575
|
+
const clientContext = safeJsonParse(clientContextStr, null);
|
|
4576
|
+
return clientContext?.client_context?.user_task || null;
|
|
4552
4577
|
}
|
|
4553
4578
|
buildCanShowPredicate(eventTrigger, form) {
|
|
4554
4579
|
const currentState = this.getCurrentEventState(eventTrigger, form);
|
|
@@ -5508,6 +5533,10 @@ class ConditionalShowFormDirective {
|
|
|
5508
5533
|
}
|
|
5509
5534
|
buildPath(c, field) {
|
|
5510
5535
|
if (c && c instanceof AbstractFieldWriteComponent) {
|
|
5536
|
+
const parentPrefix = c.parent?.['component']?.idPrefix;
|
|
5537
|
+
if (parentPrefix) {
|
|
5538
|
+
return parentPrefix + field.id;
|
|
5539
|
+
}
|
|
5511
5540
|
if (c.idPrefix) {
|
|
5512
5541
|
return c.idPrefix + field.id;
|
|
5513
5542
|
}
|
|
@@ -6008,17 +6037,15 @@ class FormValueService {
|
|
|
6008
6037
|
return form[currentFieldId + FieldsUtils.LABEL_SUFFIX].join(', ');
|
|
6009
6038
|
}
|
|
6010
6039
|
else if (FieldsUtils.isCollectionOfSimpleTypes(currentForm)) {
|
|
6011
|
-
return currentForm.map(fieldValue => fieldValue
|
|
6040
|
+
return currentForm.map((fieldValue) => fieldValue.value).join(', ');
|
|
6012
6041
|
}
|
|
6013
6042
|
else if (FieldsUtils.isCollection(currentForm)) {
|
|
6014
|
-
return this.getFieldValue(currentForm[colIndex]
|
|
6043
|
+
return this.getFieldValue(currentForm[colIndex].value, fieldIds.slice(1).join('.'), colIndex);
|
|
6015
6044
|
}
|
|
6016
6045
|
else if (FieldsUtils.isNonEmptyObject(currentForm)) {
|
|
6017
6046
|
return this.getFieldValue(currentForm, fieldIds.slice(1).join('.'), colIndex);
|
|
6018
6047
|
}
|
|
6019
|
-
|
|
6020
|
-
return currentForm;
|
|
6021
|
-
}
|
|
6048
|
+
return currentForm;
|
|
6022
6049
|
}
|
|
6023
6050
|
/**
|
|
6024
6051
|
* A recursive method to remove anything with a `---LABEL` suffix.
|
|
@@ -6056,9 +6083,7 @@ class FormValueService {
|
|
|
6056
6083
|
if (field.field_type) {
|
|
6057
6084
|
return field.field_type.type === 'Label';
|
|
6058
6085
|
}
|
|
6059
|
-
|
|
6060
|
-
return false;
|
|
6061
|
-
}
|
|
6086
|
+
return false;
|
|
6062
6087
|
}
|
|
6063
6088
|
static isEmptyData(data) {
|
|
6064
6089
|
if (data) {
|
|
@@ -6105,10 +6130,13 @@ class FormValueService {
|
|
|
6105
6130
|
return s;
|
|
6106
6131
|
}
|
|
6107
6132
|
filterCurrentPageFields(caseFields, editForm) {
|
|
6108
|
-
const cloneForm =
|
|
6109
|
-
|
|
6133
|
+
const cloneForm = {
|
|
6134
|
+
...(editForm || {}),
|
|
6135
|
+
data: { ...((editForm && editForm.data) || {}) }
|
|
6136
|
+
};
|
|
6137
|
+
Object.keys(cloneForm.data).forEach((key) => {
|
|
6110
6138
|
if (caseFields.findIndex((element) => element.id === key) < 0) {
|
|
6111
|
-
delete cloneForm
|
|
6139
|
+
delete cloneForm.data[key];
|
|
6112
6140
|
}
|
|
6113
6141
|
});
|
|
6114
6142
|
return cloneForm;
|
|
@@ -6152,7 +6180,7 @@ class FormValueService {
|
|
|
6152
6180
|
if (!rawArray) {
|
|
6153
6181
|
return rawArray;
|
|
6154
6182
|
}
|
|
6155
|
-
rawArray.forEach(item => {
|
|
6183
|
+
rawArray.forEach((item) => {
|
|
6156
6184
|
if (item && item.hasOwnProperty('value')) {
|
|
6157
6185
|
item.value = this.sanitiseValue(item.value, isCaseFlagJourney);
|
|
6158
6186
|
}
|
|
@@ -6161,8 +6189,8 @@ class FormValueService {
|
|
|
6161
6189
|
// association of a value. In addition, if the array contains items with a "value" object property, return only
|
|
6162
6190
|
// those whose value object contains non-empty values, including for any descendant objects
|
|
6163
6191
|
return rawArray
|
|
6164
|
-
.filter(item => !!item)
|
|
6165
|
-
.filter(item => item.hasOwnProperty('value') ? FieldsUtils.containsNonEmptyValues(item.value) : true);
|
|
6192
|
+
.filter((item) => !!item)
|
|
6193
|
+
.filter((item) => item.hasOwnProperty('value') ? FieldsUtils.containsNonEmptyValues(item.value) : true);
|
|
6166
6194
|
}
|
|
6167
6195
|
sanitiseValue(rawValue, isCaseFlagJourney = false) {
|
|
6168
6196
|
if (Array.isArray(rawValue)) {
|
|
@@ -6181,7 +6209,7 @@ class FormValueService {
|
|
|
6181
6209
|
}
|
|
6182
6210
|
clearNonCaseFields(data, caseFields) {
|
|
6183
6211
|
for (const dataKey in data) {
|
|
6184
|
-
if (!caseFields.find(cf => cf.id === dataKey)) {
|
|
6212
|
+
if (!caseFields.find((cf) => cf.id === dataKey)) {
|
|
6185
6213
|
delete data[dataKey];
|
|
6186
6214
|
}
|
|
6187
6215
|
}
|
|
@@ -6379,7 +6407,7 @@ class FormValueService {
|
|
|
6379
6407
|
*/
|
|
6380
6408
|
removeCaseFieldsOfType(data, caseFields, types) {
|
|
6381
6409
|
if (data && caseFields && caseFields.length > 0 && types.length > 0) {
|
|
6382
|
-
const caseFieldsToRemove = caseFields.filter(caseField => FieldsUtils.isCaseFieldOfType(caseField, types));
|
|
6410
|
+
const caseFieldsToRemove = caseFields.filter((caseField) => FieldsUtils.isCaseFieldOfType(caseField, types));
|
|
6383
6411
|
for (const caseField of caseFieldsToRemove) {
|
|
6384
6412
|
delete data[caseField.id];
|
|
6385
6413
|
}
|
|
@@ -6398,10 +6426,10 @@ class FormValueService {
|
|
|
6398
6426
|
*/
|
|
6399
6427
|
repopulateFormDataFromCaseFieldValues(data, caseFields) {
|
|
6400
6428
|
if (data && caseFields && caseFields.length > 0 &&
|
|
6401
|
-
caseFields.findIndex(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher'])) > -1) {
|
|
6429
|
+
caseFields.findIndex((caseField) => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher'])) > -1) {
|
|
6402
6430
|
// Ignore the FlagLauncher CaseField because it does not hold any values
|
|
6403
|
-
caseFields.filter(caseField => !FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']))
|
|
6404
|
-
.forEach(caseField => {
|
|
6431
|
+
caseFields.filter((caseField) => !FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']))
|
|
6432
|
+
.forEach((caseField) => {
|
|
6405
6433
|
// Ensure that the data object is populated for all CaseField keys it contains, even if for a given
|
|
6406
6434
|
// CaseField key, the data object has a falsy value (hence the use of hasOwnProperty() for the check below)
|
|
6407
6435
|
// See https://tools.hmcts.net/jira/browse/EUI-7377
|
|
@@ -6433,8 +6461,8 @@ class FormValueService {
|
|
|
6433
6461
|
*/
|
|
6434
6462
|
populateLinkedCasesDetailsFromCaseFields(data, caseFields) {
|
|
6435
6463
|
if (data && caseFields && caseFields.length > 0) {
|
|
6436
|
-
caseFields.filter(caseField => !FieldsUtils.isCaseFieldOfType(caseField, ['ComponentLauncher']))
|
|
6437
|
-
.forEach(caseField => {
|
|
6464
|
+
caseFields.filter((caseField) => !FieldsUtils.isCaseFieldOfType(caseField, ['ComponentLauncher']))
|
|
6465
|
+
.forEach((caseField) => {
|
|
6438
6466
|
if (data.hasOwnProperty('caseLinks') && caseField.value) {
|
|
6439
6467
|
data[caseField.id] = caseField.value;
|
|
6440
6468
|
}
|
|
@@ -9576,7 +9604,7 @@ class CaseEditComponent {
|
|
|
9576
9604
|
ngOnInit() {
|
|
9577
9605
|
this.wizard = this.wizardFactory.create(this.eventTrigger);
|
|
9578
9606
|
this.initialUrl = this.sessionStorageService.getItem('eventUrl');
|
|
9579
|
-
this.isPageRefreshed =
|
|
9607
|
+
this.isPageRefreshed = safeJsonParse(this.sessionStorageService.getItem('isPageRefreshed'), false);
|
|
9580
9608
|
this.checkPageRefresh();
|
|
9581
9609
|
this.form = this.fb.group({
|
|
9582
9610
|
data: new FormGroup({}),
|
|
@@ -9700,15 +9728,11 @@ class CaseEditComponent {
|
|
|
9700
9728
|
const taskEventCompletionStr = this.sessionStorageService.getItem(CaseEditComponent.TASK_EVENT_COMPLETION_INFO);
|
|
9701
9729
|
const userInfoStr = this.sessionStorageService.getItem('userDetails');
|
|
9702
9730
|
const assignNeeded = this.sessionStorageService.getItem('assignNeeded');
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
}
|
|
9706
|
-
if (userInfoStr) {
|
|
9707
|
-
userInfo = JSON.parse(userInfoStr);
|
|
9708
|
-
}
|
|
9731
|
+
taskEventCompletionInfo = safeJsonParse(taskEventCompletionStr, null);
|
|
9732
|
+
userInfo = safeJsonParse(userInfoStr, null);
|
|
9709
9733
|
const eventId = this.getEventId(form);
|
|
9710
9734
|
const caseId = this.getCaseId(caseDetails);
|
|
9711
|
-
const userId = userInfo
|
|
9735
|
+
const userId = userInfo?.id ? userInfo.id : userInfo?.uid;
|
|
9712
9736
|
const eventDetails = { eventId, caseId, userId, assignNeeded };
|
|
9713
9737
|
if (this.taskExistsForThisEvent(taskInSessionStorage, taskEventCompletionInfo, eventDetails)) {
|
|
9714
9738
|
this.abstractConfig.logMessage(`task ${taskInSessionStorage?.id} exist for this event for caseId and eventId as ${caseId} ${eventId}`);
|
|
@@ -9937,6 +9961,11 @@ class CaseEditComponent {
|
|
|
9937
9961
|
const userTask = FieldsUtils.getUserTaskFromClientContext(clientContextStr);
|
|
9938
9962
|
const [task, taskToBeCompleted] = userTask ? [userTask.task_data, userTask.complete_task] : [null, false];
|
|
9939
9963
|
const assignNeeded = this.sessionStorageService.getItem('assignNeeded') === 'true';
|
|
9964
|
+
if (this.caseDetails && (this.caseDetails.case_id !== task?.case_id)) {
|
|
9965
|
+
this.abstractConfig.logMessage(`postCompleteTaskIfRequired: task in session storage with taskId ${task?.id} has caseId: ${task?.case_id} which does not match case details case id ${this.caseDetails.case_id}, NOT completing task and clearing client context`);
|
|
9966
|
+
this.sessionStorageService.removeItem(CaseEditComponent.CLIENT_CONTEXT);
|
|
9967
|
+
return of(true);
|
|
9968
|
+
}
|
|
9940
9969
|
if (task && assignNeeded && taskToBeCompleted) {
|
|
9941
9970
|
this.abstractConfig.logMessage(`postCompleteTaskIfRequired with assignNeeded: taskId ${task.id} and event name ${this.eventTrigger?.name}`);
|
|
9942
9971
|
return this.workAllocationService.assignAndCompleteTask(task.id, this.eventTrigger.name);
|
|
@@ -10070,7 +10099,7 @@ class CaseEditComponent {
|
|
|
10070
10099
|
}], submitted: [{
|
|
10071
10100
|
type: Output
|
|
10072
10101
|
}] }); })();
|
|
10073
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditComponent, { className: "CaseEditComponent", filePath: "lib/shared/components/case-editor/case-edit/case-edit.component.ts", lineNumber:
|
|
10102
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditComponent, { className: "CaseEditComponent", filePath: "lib/shared/components/case-editor/case-edit/case-edit.component.ts", lineNumber: 39 }); })();
|
|
10074
10103
|
|
|
10075
10104
|
function convertNonASCIICharacter(character) {
|
|
10076
10105
|
if (character === '£') {
|
|
@@ -11683,6 +11712,10 @@ class CaseEditPageComponent {
|
|
|
11683
11712
|
updateEventTriggerCaseFields(caseFieldId, jsonData, eventTrigger) {
|
|
11684
11713
|
/* istanbul ignore else */
|
|
11685
11714
|
if (eventTrigger?.case_fields) {
|
|
11715
|
+
const isCaseFlagJourney = eventTrigger.case_fields.some((caseField) => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']));
|
|
11716
|
+
if (isCaseFlagJourney) {
|
|
11717
|
+
return;
|
|
11718
|
+
}
|
|
11686
11719
|
eventTrigger.case_fields
|
|
11687
11720
|
.filter(element => element.id === caseFieldId)
|
|
11688
11721
|
.forEach(element => {
|
|
@@ -12129,6 +12162,42 @@ class CallbackErrorsComponent {
|
|
|
12129
12162
|
}] }); })();
|
|
12130
12163
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CallbackErrorsComponent, { className: "CallbackErrorsComponent", filePath: "lib/shared/components/error/callback-errors.component.ts", lineNumber: 11 }); })();
|
|
12131
12164
|
|
|
12165
|
+
class SessionErrorPageComponent {
|
|
12166
|
+
title = 'There is a problem with your session';
|
|
12167
|
+
primaryMessage = 'Go to landing page. Refreshing the page. If the problem persists, sign out and sign in again.';
|
|
12168
|
+
secondaryMessage = 'If you still cannot access the service, clear your browser data for this website.';
|
|
12169
|
+
static ɵfac = function SessionErrorPageComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SessionErrorPageComponent)(); };
|
|
12170
|
+
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) {
|
|
12171
|
+
i0.ɵɵdomElementStart(0, "div", 0)(1, "main", 1)(2, "div", 2)(3, "div", 3)(4, "h1", 4);
|
|
12172
|
+
i0.ɵɵtext(5);
|
|
12173
|
+
i0.ɵɵdomElementEnd();
|
|
12174
|
+
i0.ɵɵdomElementStart(6, "p", 5);
|
|
12175
|
+
i0.ɵɵtext(7);
|
|
12176
|
+
i0.ɵɵdomElementEnd();
|
|
12177
|
+
i0.ɵɵdomElementStart(8, "p", 5);
|
|
12178
|
+
i0.ɵɵtext(9);
|
|
12179
|
+
i0.ɵɵdomElementEnd()()()()();
|
|
12180
|
+
} if (rf & 2) {
|
|
12181
|
+
i0.ɵɵadvance(5);
|
|
12182
|
+
i0.ɵɵtextInterpolate(ctx.title);
|
|
12183
|
+
i0.ɵɵadvance(2);
|
|
12184
|
+
i0.ɵɵtextInterpolate(ctx.primaryMessage);
|
|
12185
|
+
i0.ɵɵadvance(2);
|
|
12186
|
+
i0.ɵɵtextInterpolate(ctx.secondaryMessage);
|
|
12187
|
+
} }, dependencies: [CommonModule], encapsulation: 2 });
|
|
12188
|
+
}
|
|
12189
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SessionErrorPageComponent, [{
|
|
12190
|
+
type: Component,
|
|
12191
|
+
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" }]
|
|
12192
|
+
}], null, { title: [{
|
|
12193
|
+
type: Input
|
|
12194
|
+
}], primaryMessage: [{
|
|
12195
|
+
type: Input
|
|
12196
|
+
}], secondaryMessage: [{
|
|
12197
|
+
type: Input
|
|
12198
|
+
}] }); })();
|
|
12199
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SessionErrorPageComponent, { className: "SessionErrorPageComponent", filePath: "lib/shared/components/error/session-error-page.component.ts", lineNumber: 10 }); })();
|
|
12200
|
+
|
|
12132
12201
|
function CaseEventCompletionComponent_app_case_event_completion_task_cancelled_0_Template(rf, ctx) { if (rf & 1) {
|
|
12133
12202
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
12134
12203
|
i0.ɵɵelementStart(0, "app-case-event-completion-task-cancelled", 2);
|
|
@@ -13380,9 +13449,10 @@ class CaseFileViewFieldComponent {
|
|
|
13380
13449
|
error: _ => this.getCategoriesAndDocumentsError = true
|
|
13381
13450
|
});
|
|
13382
13451
|
// EXUI-8000
|
|
13383
|
-
const userInfo =
|
|
13452
|
+
const userInfo = safeJsonParse(this.sessionStorageService.getItem('userDetails'), null);
|
|
13453
|
+
const userRoles = userInfo?.roles || [];
|
|
13384
13454
|
// Get acls that intersects from acl roles and user roles
|
|
13385
|
-
const acls = this.caseField.acls.filter(acl =>
|
|
13455
|
+
const acls = this.caseField.acls.filter(acl => userRoles.includes(acl.role));
|
|
13386
13456
|
// As there can be more than one intersecting role, if any acls are update: true
|
|
13387
13457
|
this.allowMoving = acls.some(acl => acl.update);
|
|
13388
13458
|
this.icp_jurisdictions = this.abstractConfig.getIcpJurisdictions();
|
|
@@ -13473,7 +13543,7 @@ class CaseFileViewFieldComponent {
|
|
|
13473
13543
|
type: Component,
|
|
13474
13544
|
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"] }]
|
|
13475
13545
|
}], () => [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }, { type: SessionStorageService }, { type: WindowService }, { type: CaseNotifier }, { type: AbstractAppConfig }], null); })();
|
|
13476
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFieldComponent, { className: "CaseFileViewFieldComponent", filePath: "lib/shared/components/palette/case-file-view/case-file-view-field.component.ts", lineNumber:
|
|
13546
|
+
(() => { (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 }); })();
|
|
13477
13547
|
|
|
13478
13548
|
const PVP_FLAG_CODE = 'PF0021';
|
|
13479
13549
|
const PVP_DISPLAY_TEXT = 'POTENTIALLY VIOLENT PERSON';
|
|
@@ -15033,7 +15103,7 @@ function WriteCollectionFieldComponent_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
15033
15103
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
15034
15104
|
i0.ɵɵproperty("hidden", ctx_r0.caseField.hidden);
|
|
15035
15105
|
i0.ɵɵadvance(2);
|
|
15036
|
-
i0.ɵɵproperty("ngForOf", ctx_r0.collItems);
|
|
15106
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.collItems)("ngForTrackBy", ctx_r0.trackByCollectionItem);
|
|
15037
15107
|
} }
|
|
15038
15108
|
function WriteCollectionFieldComponent_button_8_Template(rf, ctx) { if (rf & 1) {
|
|
15039
15109
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
@@ -15059,6 +15129,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15059
15129
|
profileSubscription;
|
|
15060
15130
|
items;
|
|
15061
15131
|
collItems = [];
|
|
15132
|
+
collectionItemUidCounter = 0;
|
|
15062
15133
|
constructor(dialog, scrollToService, profileNotifier, cdRef) {
|
|
15063
15134
|
super();
|
|
15064
15135
|
this.dialog = dialog;
|
|
@@ -15081,7 +15152,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15081
15152
|
if (this.collItems.length <= index) {
|
|
15082
15153
|
this.collItems.length = index + 1;
|
|
15083
15154
|
}
|
|
15084
|
-
this.collItems[index] = { caseField, item, prefix, index, container };
|
|
15155
|
+
this.collItems[index] = { uid: this.createCollectionItemUid(), caseField, item, prefix, index, container };
|
|
15085
15156
|
});
|
|
15086
15157
|
}
|
|
15087
15158
|
ngOnDestroy() {
|
|
@@ -15190,7 +15261,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15190
15261
|
const caseField = this.buildCaseField(item, index, true);
|
|
15191
15262
|
const prefix = this.buildIdPrefix(index);
|
|
15192
15263
|
const container = this.getContainer(index);
|
|
15193
|
-
this.collItems.push({ caseField, item, index, prefix, container });
|
|
15264
|
+
this.collItems.push({ uid: this.createCollectionItemUid(), caseField, item, index, prefix, container });
|
|
15194
15265
|
// Update DOM required after pushing a new item to do the next steps (i.e. scrolling and focusing)
|
|
15195
15266
|
this.cdRef.detectChanges();
|
|
15196
15267
|
if (doScroll) {
|
|
@@ -15249,6 +15320,12 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15249
15320
|
this.caseField.value.splice(index, 1);
|
|
15250
15321
|
this.formArray.removeAt(index);
|
|
15251
15322
|
}
|
|
15323
|
+
trackByCollectionItem(_, item) {
|
|
15324
|
+
return item.uid;
|
|
15325
|
+
}
|
|
15326
|
+
createCollectionItemUid() {
|
|
15327
|
+
return `collection-item-${this.collectionItemUidCounter++}`;
|
|
15328
|
+
}
|
|
15252
15329
|
resetIds(index) {
|
|
15253
15330
|
for (let i = index; i < this.collItems.length; i++) {
|
|
15254
15331
|
const counter = i + 1;
|
|
@@ -15355,7 +15432,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15355
15432
|
} if (rf & 2) {
|
|
15356
15433
|
let _t;
|
|
15357
15434
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);
|
|
15358
|
-
} }, inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 9, vars: 9, consts: [["collectionItem", ""], [1, "form-group", 3, "id"], [1, "panel", "collection-indicator"], ["class", "heading-h2 error-spacing", 4, "ngIf"], ["type", "button", 1, "button", "write-collection-add-item__top", 3, "click", "disabled"], ["class", "form-group", 3, "hidden", 4, "ngIf"], ["class", "button write-collection-add-item__bottom", "type", "button", 3, "disabled", "click", 4, "ngIf"], [1, "heading-h2", "error-spacing"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "form-hint"], [3, "content"], [1, "error-message"], [1, "form-group", 3, "hidden"], [1, "govuk-fieldset"], ["class", "form-group", 3, "id", 4, "ngFor", "ngForOf"], [1, "collection-title"], [1, "float-left"], [1, "govuk-fieldset__legend"], [3, "for"], [1, "heading-h3"], [1, "float-right"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], [3, "caseField", "caseFields", "formGroup", "parent", "idPrefix", "hidden", "isExpanded", "isInSearchBlock"], ["type", "button", 1, "button", "write-collection-add-item__bottom", 3, "click", "disabled"]], template: function WriteCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
15435
|
+
} }, inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 9, vars: 9, consts: [["collectionItem", ""], [1, "form-group", 3, "id"], [1, "panel", "collection-indicator"], ["class", "heading-h2 error-spacing", 4, "ngIf"], ["type", "button", 1, "button", "write-collection-add-item__top", 3, "click", "disabled"], ["class", "form-group", 3, "hidden", 4, "ngIf"], ["class", "button write-collection-add-item__bottom", "type", "button", 3, "disabled", "click", 4, "ngIf"], [1, "heading-h2", "error-spacing"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "form-hint"], [3, "content"], [1, "error-message"], [1, "form-group", 3, "hidden"], [1, "govuk-fieldset"], ["class", "form-group", 3, "id", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "collection-title"], [1, "float-left"], [1, "govuk-fieldset__legend"], [3, "for"], [1, "heading-h3"], [1, "float-right"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], [3, "caseField", "caseFields", "formGroup", "parent", "idPrefix", "hidden", "isExpanded", "isInSearchBlock"], ["type", "button", 1, "button", "write-collection-add-item__bottom", 3, "click", "disabled"]], template: function WriteCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
15359
15436
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
|
|
15360
15437
|
i0.ɵɵtemplate(2, WriteCollectionFieldComponent_h2_2_Template, 3, 3, "h2", 3);
|
|
15361
15438
|
i0.ɵɵelementStart(3, "button", 4);
|
|
@@ -15363,7 +15440,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15363
15440
|
i0.ɵɵtext(4);
|
|
15364
15441
|
i0.ɵɵpipe(5, "rpxTranslate");
|
|
15365
15442
|
i0.ɵɵelementEnd();
|
|
15366
|
-
i0.ɵɵtemplate(6, WriteCollectionFieldComponent_h2_6_Template, 3, 2, "h2", 3)(7, WriteCollectionFieldComponent_div_7_Template, 3,
|
|
15443
|
+
i0.ɵɵtemplate(6, WriteCollectionFieldComponent_h2_6_Template, 3, 2, "h2", 3)(7, WriteCollectionFieldComponent_div_7_Template, 3, 3, "div", 5)(8, WriteCollectionFieldComponent_button_8_Template, 3, 4, "button", 6);
|
|
15367
15444
|
i0.ɵɵelementEnd()();
|
|
15368
15445
|
} if (rf & 2) {
|
|
15369
15446
|
i0.ɵɵproperty("id", ctx.id());
|
|
@@ -15383,14 +15460,14 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15383
15460
|
}
|
|
15384
15461
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteCollectionFieldComponent, [{
|
|
15385
15462
|
type: Component,
|
|
15386
|
-
args: [{ selector: 'ccd-write-collection-field', standalone: false, template: "<div class=\"form-group\" [id]=\"id()\">\n\n <div class=\"panel collection-indicator\">\n\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"!caseField.hidden\">\n {{(caseField | ccdFieldLabel)}}\n </h2>\n <button class=\"button write-collection-add-item__top\" type=\"button\" (click)=\"addItem(true)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\">{{'Add new' | rpxTranslate}}</button>\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"caseField.hint_text || formArray.errors\">\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">\n <ccd-markdown [content]=\"caseField.hint_text | rpxTranslate\"></ccd-markdown>\n </span>\n <span *ngIf=\"formArray.errors\" class=\"error-message\">\n {{(formArray.errors | ccdFirstError:caseField.label)}}\n </span>\n </h2>\n\n <div class=\"form-group\" [hidden]=\"caseField.hidden\" *ngIf=\"caseField.value && caseField.value.length\">\n <fieldset class=\"govuk-fieldset\">\n <div *ngFor=\"let item of collItems; let i = index\" #collectionItem\n [id]=\"this.buildIdPrefix(i) + i\" class=\"form-group\">\n <div class=\"collection-title\">\n <div class=\"float-left\">\n <legend class=\"govuk-fieldset__legend\">\n <label [for]=\"item.prefix + i\"><h3 class=\"heading-h3\">{{itemLabel(i) | rpxTranslate}}</h3></label>\n </legend>\n </div>\n <div class=\"float-right\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"openModal(i)\"\n [disabled]=\"isNotAuthorisedToDelete(i)\"\n attr.aria-label=\"Remove {{ itemLabel(i) }}\">{{'Remove' | rpxTranslate}}</button>\n </div>\n </div>\n <ccd-field-write [caseField]=\"item.caseField\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [parent]=\"item.container\"\n [idPrefix]=\"item.prefix\"\n [hidden]=\"item.caseField.hidden\"\n [isExpanded]=\"isExpanded\"\n [isInSearchBlock]=\"isInSearchBlock\">\n </ccd-field-write>\n </div>\n </fieldset>\n </div>\n\n <button class=\"button write-collection-add-item__bottom\" type=\"button\" (click)=\"addItem(false)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\" *ngIf=\"caseField.value && caseField.value.length\">{{'Add new' | rpxTranslate }}</button>\n\n </div>\n\n</div>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
|
|
15463
|
+
args: [{ selector: 'ccd-write-collection-field', standalone: false, template: "<div class=\"form-group\" [id]=\"id()\">\n\n <div class=\"panel collection-indicator\">\n\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"!caseField.hidden\">\n {{(caseField | ccdFieldLabel)}}\n </h2>\n <button class=\"button write-collection-add-item__top\" type=\"button\" (click)=\"addItem(true)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\">{{'Add new' | rpxTranslate}}</button>\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"caseField.hint_text || formArray.errors\">\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">\n <ccd-markdown [content]=\"caseField.hint_text | rpxTranslate\"></ccd-markdown>\n </span>\n <span *ngIf=\"formArray.errors\" class=\"error-message\">\n {{(formArray.errors | ccdFirstError:caseField.label)}}\n </span>\n </h2>\n\n <div class=\"form-group\" [hidden]=\"caseField.hidden\" *ngIf=\"caseField.value && caseField.value.length\">\n <fieldset class=\"govuk-fieldset\">\n <div *ngFor=\"let item of collItems; let i = index; trackBy: trackByCollectionItem\" #collectionItem\n [id]=\"this.buildIdPrefix(i) + i\" class=\"form-group\">\n <div class=\"collection-title\">\n <div class=\"float-left\">\n <legend class=\"govuk-fieldset__legend\">\n <label [for]=\"item.prefix + i\"><h3 class=\"heading-h3\">{{itemLabel(i) | rpxTranslate}}</h3></label>\n </legend>\n </div>\n <div class=\"float-right\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"openModal(i)\"\n [disabled]=\"isNotAuthorisedToDelete(i)\"\n attr.aria-label=\"Remove {{ itemLabel(i) }}\">{{'Remove' | rpxTranslate}}</button>\n </div>\n </div>\n <ccd-field-write [caseField]=\"item.caseField\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [parent]=\"item.container\"\n [idPrefix]=\"item.prefix\"\n [hidden]=\"item.caseField.hidden\"\n [isExpanded]=\"isExpanded\"\n [isInSearchBlock]=\"isInSearchBlock\">\n </ccd-field-write>\n </div>\n </fieldset>\n </div>\n\n <button class=\"button write-collection-add-item__bottom\" type=\"button\" (click)=\"addItem(false)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\" *ngIf=\"caseField.value && caseField.value.length\">{{'Add new' | rpxTranslate }}</button>\n\n </div>\n\n</div>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
|
|
15387
15464
|
}], () => [{ type: i1$3.MatLegacyDialog }, { type: i2.ScrollToService }, { type: ProfileNotifier }, { type: i0.ChangeDetectorRef }], { caseFields: [{
|
|
15388
15465
|
type: Input
|
|
15389
15466
|
}], items: [{
|
|
15390
15467
|
type: ViewChildren,
|
|
15391
15468
|
args: ['collectionItem']
|
|
15392
15469
|
}] }); })();
|
|
15393
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteCollectionFieldComponent, { className: "WriteCollectionFieldComponent", filePath: "lib/shared/components/palette/collection/write-collection-field.component.ts", lineNumber:
|
|
15470
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteCollectionFieldComponent, { className: "WriteCollectionFieldComponent", filePath: "lib/shared/components/palette/collection/write-collection-field.component.ts", lineNumber: 33 }); })();
|
|
15394
15471
|
|
|
15395
15472
|
function ReadComplexFieldComponent_ccd_read_complex_field_raw_1_Template(rf, ctx) { if (rf & 1) {
|
|
15396
15473
|
i0.ɵɵelement(0, "ccd-read-complex-field-raw", 4);
|
|
@@ -16331,11 +16408,13 @@ class MarkdownComponent {
|
|
|
16331
16408
|
}
|
|
16332
16409
|
renderUrlToText() {
|
|
16333
16410
|
const renderer = new marked.Renderer();
|
|
16334
|
-
renderer.link = (href,
|
|
16335
|
-
|
|
16336
|
-
|
|
16411
|
+
renderer.link = ({ href, tokens }) => {
|
|
16412
|
+
const linkHref = href || '';
|
|
16413
|
+
const text = tokens?.map((token) => token.raw).join('') || linkHref;
|
|
16414
|
+
if (!text || text === linkHref) {
|
|
16415
|
+
return this.isAllowedUrl(linkHref) ? `<a href="${linkHref}">${linkHref}</a>` : linkHref;
|
|
16337
16416
|
}
|
|
16338
|
-
return this.detectMarkdownLinks(this.content) ? `<a href="${
|
|
16417
|
+
return this.detectMarkdownLinks(this.content) ? `<a href="${linkHref}">${text}</a>` : text;
|
|
16339
16418
|
};
|
|
16340
16419
|
marked.setOptions({
|
|
16341
16420
|
renderer: renderer
|
|
@@ -16370,7 +16449,7 @@ class MarkdownComponent {
|
|
|
16370
16449
|
}], renderUrlToTextFeature: [{
|
|
16371
16450
|
type: Input
|
|
16372
16451
|
}] }); })();
|
|
16373
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MarkdownComponent, { className: "MarkdownComponent", filePath: "lib/shared/components/palette/markdown/markdown.component.ts", lineNumber:
|
|
16452
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MarkdownComponent, { className: "MarkdownComponent", filePath: "lib/shared/components/palette/markdown/markdown.component.ts", lineNumber: 12 }); })();
|
|
16374
16453
|
|
|
16375
16454
|
class FixedListPipe {
|
|
16376
16455
|
static EMPTY = '';
|
|
@@ -20821,14 +20900,14 @@ class PaymentField extends AbstractFieldReadComponent {
|
|
|
20821
20900
|
return this.appConfig.getNotificationUrl();
|
|
20822
20901
|
}
|
|
20823
20902
|
getUserRoles() {
|
|
20824
|
-
const userDetails =
|
|
20903
|
+
const userDetails = safeJsonParse(this.sessionStorage.getItem('userDetails'), null);
|
|
20825
20904
|
if (!userDetails || !userDetails.hasOwnProperty('roles')) {
|
|
20826
20905
|
return [];
|
|
20827
20906
|
}
|
|
20828
20907
|
return userDetails.roles;
|
|
20829
20908
|
}
|
|
20830
20909
|
getUserEmail() {
|
|
20831
|
-
const userDetails =
|
|
20910
|
+
const userDetails = safeJsonParse(this.sessionStorage.getItem('userDetails'), null);
|
|
20832
20911
|
if (!userDetails || !userDetails.hasOwnProperty('sub')) {
|
|
20833
20912
|
return '';
|
|
20834
20913
|
}
|
|
@@ -21554,7 +21633,7 @@ class QueryManagementService {
|
|
|
21554
21633
|
) {
|
|
21555
21634
|
let currentUserDetails;
|
|
21556
21635
|
try {
|
|
21557
|
-
currentUserDetails =
|
|
21636
|
+
currentUserDetails = safeJsonParse(this.sessionStorageService.getItem(USER_DETAILS), {});
|
|
21558
21637
|
}
|
|
21559
21638
|
catch (e) {
|
|
21560
21639
|
console.error('Could not parse USER_DETAILS from session storage:', e);
|
|
@@ -25016,6 +25095,7 @@ class FieldWriteComponent extends AbstractFieldWriteComponent {
|
|
|
25016
25095
|
canHaveGreyBar = false;
|
|
25017
25096
|
caseFields = [];
|
|
25018
25097
|
fieldContainer;
|
|
25098
|
+
componentRef;
|
|
25019
25099
|
constructor(resolver, paletteService) {
|
|
25020
25100
|
super();
|
|
25021
25101
|
this.resolver = resolver;
|
|
@@ -25027,7 +25107,7 @@ class FieldWriteComponent extends AbstractFieldWriteComponent {
|
|
|
25027
25107
|
ngOnInit() {
|
|
25028
25108
|
const componentClass = this.paletteService.getFieldComponentClass(this.caseField, true);
|
|
25029
25109
|
const injector = Injector.create([], this.fieldContainer.parentInjector);
|
|
25030
|
-
|
|
25110
|
+
this.componentRef = this.resolver.resolveComponentFactory(componentClass).create(injector);
|
|
25031
25111
|
// Only Fixed list use plainToClassFromExist
|
|
25032
25112
|
// Better performance
|
|
25033
25113
|
// TODO AW 30/12/20 figure out why FixedLists need plainToClassFromExist
|
|
@@ -25036,28 +25116,41 @@ class FieldWriteComponent extends AbstractFieldWriteComponent {
|
|
|
25036
25116
|
if (FIX_CASEFIELD_FOR.indexOf(this.caseField.field_type.type) > -1 && !(this.caseField instanceof CaseField)) {
|
|
25037
25117
|
this.caseField = plainToClassFromExist(new CaseField(), this.caseField);
|
|
25038
25118
|
}
|
|
25039
|
-
|
|
25040
|
-
component.instance['caseFields'] = this.caseFields;
|
|
25041
|
-
component.instance['formGroup'] = this.formGroup;
|
|
25042
|
-
component.instance['parent'] = this.parent;
|
|
25043
|
-
component.instance['idPrefix'] = this.idPrefix;
|
|
25119
|
+
this.applyInputsToChild();
|
|
25044
25120
|
if (this.caseField.field_type.id === 'AddressGlobal') {
|
|
25045
|
-
|
|
25121
|
+
this.componentRef.instance['ignoreMandatory'] = true;
|
|
25046
25122
|
}
|
|
25047
|
-
|
|
25048
|
-
component.instance['isInSearchBlock'] = this.isInSearchBlock;
|
|
25049
|
-
this.fieldContainer.insert(component.hostView);
|
|
25123
|
+
this.fieldContainer.insert(this.componentRef.hostView);
|
|
25050
25124
|
// EUI-3267.
|
|
25051
25125
|
// Set up the flag for whether this can have a grey bar.
|
|
25052
25126
|
this.canHaveGreyBar = this.caseField.show_condition && this.caseField.field_type.type !== 'Collection';
|
|
25053
25127
|
}
|
|
25128
|
+
ngOnChanges(changes) {
|
|
25129
|
+
if (this.componentRef && (changes.caseField || changes.caseFields || changes.formGroup || changes.parent || changes.idPrefix
|
|
25130
|
+
|| changes.isExpanded || changes.isInSearchBlock)) {
|
|
25131
|
+
this.applyInputsToChild();
|
|
25132
|
+
this.componentRef.changeDetectorRef.detectChanges();
|
|
25133
|
+
}
|
|
25134
|
+
}
|
|
25135
|
+
applyInputsToChild() {
|
|
25136
|
+
if (!this.componentRef) {
|
|
25137
|
+
return;
|
|
25138
|
+
}
|
|
25139
|
+
this.componentRef.instance['caseField'] = this.caseField;
|
|
25140
|
+
this.componentRef.instance['caseFields'] = this.caseFields;
|
|
25141
|
+
this.componentRef.instance['formGroup'] = this.formGroup;
|
|
25142
|
+
this.componentRef.instance['parent'] = this.parent;
|
|
25143
|
+
this.componentRef.instance['idPrefix'] = this.idPrefix;
|
|
25144
|
+
this.componentRef.instance['isExpanded'] = this.isExpanded;
|
|
25145
|
+
this.componentRef.instance['isInSearchBlock'] = this.isInSearchBlock;
|
|
25146
|
+
}
|
|
25054
25147
|
static ɵfac = function FieldWriteComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FieldWriteComponent)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(PaletteService)); };
|
|
25055
25148
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FieldWriteComponent, selectors: [["ccd-field-write"]], viewQuery: function FieldWriteComponent_Query(rf, ctx) { if (rf & 1) {
|
|
25056
25149
|
i0.ɵɵviewQuery(_c0$y, 7, ViewContainerRef);
|
|
25057
25150
|
} if (rf & 2) {
|
|
25058
25151
|
let _t;
|
|
25059
25152
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fieldContainer = _t.first);
|
|
25060
|
-
} }, inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 3, consts: [["fieldContainer", ""], [3, "hidden"]], template: function FieldWriteComponent_Template(rf, ctx) { if (rf & 1) {
|
|
25153
|
+
} }, inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [["fieldContainer", ""], [3, "hidden"]], template: function FieldWriteComponent_Template(rf, ctx) { if (rf & 1) {
|
|
25061
25154
|
i0.ɵɵelementStart(0, "div", 1);
|
|
25062
25155
|
i0.ɵɵelementContainer(1, null, 0);
|
|
25063
25156
|
i0.ɵɵelementEnd();
|
|
@@ -30513,7 +30606,9 @@ class EventLogTableComponent {
|
|
|
30513
30606
|
}
|
|
30514
30607
|
ngOnInit() {
|
|
30515
30608
|
this.isPartOfCaseTimeline = this.onCaseHistory.observers.length > 0;
|
|
30516
|
-
|
|
30609
|
+
const userDetails = safeJsonParse(this.sessionStorage.getItem('userDetails'), null);
|
|
30610
|
+
const roles = userDetails?.roles || [];
|
|
30611
|
+
this.isUserExternal = roles.includes('pui-case-manager');
|
|
30517
30612
|
}
|
|
30518
30613
|
select(event) {
|
|
30519
30614
|
this.selected = event;
|
|
@@ -30602,7 +30697,7 @@ class EventLogTableComponent {
|
|
|
30602
30697
|
}], onCaseHistory: [{
|
|
30603
30698
|
type: Output
|
|
30604
30699
|
}] }); })();
|
|
30605
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventLogTableComponent, { className: "EventLogTableComponent", filePath: "lib/shared/components/palette/history/event-log/event-log-table.component.ts", lineNumber:
|
|
30700
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventLogTableComponent, { className: "EventLogTableComponent", filePath: "lib/shared/components/palette/history/event-log/event-log-table.component.ts", lineNumber: 13 }); })();
|
|
30606
30701
|
|
|
30607
30702
|
function EventLogComponent_ccd_event_log_table_3_Template(rf, ctx) { if (rf & 1) {
|
|
30608
30703
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -30830,6 +30925,101 @@ class ReadFieldsFilterPipe {
|
|
|
30830
30925
|
static isCompound(field) {
|
|
30831
30926
|
return ReadFieldsFilterPipe.NESTED_TYPES[field.field_type.type];
|
|
30832
30927
|
}
|
|
30928
|
+
static findAncestorOfType(field, type) {
|
|
30929
|
+
let current = field?.parent;
|
|
30930
|
+
while (current) {
|
|
30931
|
+
if (current?.field_type?.type === type) {
|
|
30932
|
+
return current;
|
|
30933
|
+
}
|
|
30934
|
+
current = current.parent || undefined;
|
|
30935
|
+
}
|
|
30936
|
+
return undefined;
|
|
30937
|
+
}
|
|
30938
|
+
static getCollectionItemValue(field) {
|
|
30939
|
+
let current = field?.parent;
|
|
30940
|
+
while (current) {
|
|
30941
|
+
if (current?.field_type?.type === 'Complex' && current?.parent?.field_type?.type === 'Collection') {
|
|
30942
|
+
return current.value || {};
|
|
30943
|
+
}
|
|
30944
|
+
current = current.parent || undefined;
|
|
30945
|
+
}
|
|
30946
|
+
return {};
|
|
30947
|
+
}
|
|
30948
|
+
static getBaseConditionalShowContext(formGroup, values) {
|
|
30949
|
+
const currentValues = values || {};
|
|
30950
|
+
if (!formGroup) {
|
|
30951
|
+
return { checkConditionalShowAgainst: currentValues, formGroupAvailable: false };
|
|
30952
|
+
}
|
|
30953
|
+
return {
|
|
30954
|
+
checkConditionalShowAgainst: formGroup.value ? formGroup.parent.getRawValue().data : formGroup,
|
|
30955
|
+
formGroupAvailable: true
|
|
30956
|
+
};
|
|
30957
|
+
}
|
|
30958
|
+
static resolvePrefixedConditionalShowContext(checkConditionalShowAgainst, currentValues, idPrefix) {
|
|
30959
|
+
const fieldId = idPrefix.substring(0, idPrefix.indexOf('_'));
|
|
30960
|
+
if (checkConditionalShowAgainst[fieldId]) {
|
|
30961
|
+
return {
|
|
30962
|
+
checkConditionalShowAgainst: currentValues,
|
|
30963
|
+
formGroupAvailable: false
|
|
30964
|
+
};
|
|
30965
|
+
}
|
|
30966
|
+
return {
|
|
30967
|
+
checkConditionalShowAgainst,
|
|
30968
|
+
formGroupAvailable: true
|
|
30969
|
+
};
|
|
30970
|
+
}
|
|
30971
|
+
static resolveCollectionConditionalShowContext(complexField, checkConditionalShowAgainst, currentValues) {
|
|
30972
|
+
const collectionItemValue = ReadFieldsFilterPipe.getCollectionItemValue(complexField);
|
|
30973
|
+
if (Object.keys(collectionItemValue).length > 0) {
|
|
30974
|
+
return {
|
|
30975
|
+
checkConditionalShowAgainst: Object.assign(collectionItemValue, currentValues),
|
|
30976
|
+
formGroupAvailable: false
|
|
30977
|
+
};
|
|
30978
|
+
}
|
|
30979
|
+
return {
|
|
30980
|
+
checkConditionalShowAgainst: Object.assign(checkConditionalShowAgainst, currentValues),
|
|
30981
|
+
formGroupAvailable: false
|
|
30982
|
+
};
|
|
30983
|
+
}
|
|
30984
|
+
static resolveFallbackConditionalShowContext(checkConditionalShowAgainst, currentValues) {
|
|
30985
|
+
return {
|
|
30986
|
+
checkConditionalShowAgainst: Object.assign(checkConditionalShowAgainst, currentValues),
|
|
30987
|
+
formGroupAvailable: false
|
|
30988
|
+
};
|
|
30989
|
+
}
|
|
30990
|
+
static getConditionalShowContext(complexField, formGroup, path, idPrefix, values) {
|
|
30991
|
+
const currentValues = values || {};
|
|
30992
|
+
const baseContext = ReadFieldsFilterPipe.getBaseConditionalShowContext(formGroup, currentValues);
|
|
30993
|
+
let checkConditionalShowAgainst = baseContext.checkConditionalShowAgainst;
|
|
30994
|
+
let formGroupAvailable = baseContext.formGroupAvailable;
|
|
30995
|
+
if (!formGroup || idPrefix === undefined) {
|
|
30996
|
+
return { checkConditionalShowAgainst, formGroupAvailable };
|
|
30997
|
+
}
|
|
30998
|
+
if (idPrefix !== '') {
|
|
30999
|
+
return ReadFieldsFilterPipe.resolvePrefixedConditionalShowContext(checkConditionalShowAgainst, currentValues, idPrefix);
|
|
31000
|
+
}
|
|
31001
|
+
if (path === 'parent_value' && ReadFieldsFilterPipe.findAncestorOfType(complexField, 'Collection')) {
|
|
31002
|
+
return ReadFieldsFilterPipe.resolveCollectionConditionalShowContext(complexField, checkConditionalShowAgainst, currentValues);
|
|
31003
|
+
}
|
|
31004
|
+
return ReadFieldsFilterPipe.resolveFallbackConditionalShowContext(checkConditionalShowAgainst, currentValues);
|
|
31005
|
+
}
|
|
31006
|
+
static cloneFieldWithValue(field, values, index) {
|
|
31007
|
+
const clone = FieldsUtils.cloneObject(field);
|
|
31008
|
+
const value = ReadFieldsFilterPipe.getValue(field, values, index);
|
|
31009
|
+
if (!ReadFieldsFilterPipe.isEmpty(value)) {
|
|
31010
|
+
clone.value = value;
|
|
31011
|
+
}
|
|
31012
|
+
return clone;
|
|
31013
|
+
}
|
|
31014
|
+
static applyDisplayContextAndHidden(field, complexField, setupHidden, checkConditionalShowAgainst, formGroupAvailable, path) {
|
|
31015
|
+
if (!field.display_context && FieldsUtils.isValidDisplayContext(complexField.display_context)) {
|
|
31016
|
+
field.display_context = complexField.display_context;
|
|
31017
|
+
}
|
|
31018
|
+
if (setupHidden) {
|
|
31019
|
+
ReadFieldsFilterPipe.evaluateConditionalShow(field, checkConditionalShowAgainst, path, formGroupAvailable, complexField.id);
|
|
31020
|
+
}
|
|
31021
|
+
return field;
|
|
31022
|
+
}
|
|
30833
31023
|
static isValidCompound(field, value, checkConditionalShowAgainst) {
|
|
30834
31024
|
return ReadFieldsFilterPipe.isCompound(field)
|
|
30835
31025
|
&& ReadFieldsFilterPipe.NESTED_TYPES[field.field_type.type](field, value, checkConditionalShowAgainst);
|
|
@@ -30901,46 +31091,11 @@ class ReadFieldsFilterPipe {
|
|
|
30901
31091
|
}
|
|
30902
31092
|
const fields = complexField.field_type.complex_fields || [];
|
|
30903
31093
|
const values = complexField.value || {};
|
|
30904
|
-
|
|
30905
|
-
let formGroupAvailable = false;
|
|
30906
|
-
if (formGroup) {
|
|
30907
|
-
checkConditionalShowAgainst = formGroup.value ? formGroup.parent.getRawValue().data : formGroup;
|
|
30908
|
-
formGroupAvailable = true;
|
|
30909
|
-
if (idPrefix !== undefined) {
|
|
30910
|
-
if (idPrefix !== '') {
|
|
30911
|
-
const fieldId = idPrefix.substring(0, idPrefix.indexOf('_'));
|
|
30912
|
-
if (checkConditionalShowAgainst[fieldId]) {
|
|
30913
|
-
checkConditionalShowAgainst = values;
|
|
30914
|
-
formGroupAvailable = false;
|
|
30915
|
-
}
|
|
30916
|
-
}
|
|
30917
|
-
else {
|
|
30918
|
-
checkConditionalShowAgainst = Object.assign(checkConditionalShowAgainst, values);
|
|
30919
|
-
formGroupAvailable = false;
|
|
30920
|
-
}
|
|
30921
|
-
}
|
|
30922
|
-
}
|
|
31094
|
+
const conditionalShowContext = ReadFieldsFilterPipe.getConditionalShowContext(complexField, formGroup, path, idPrefix, values);
|
|
30923
31095
|
return fields
|
|
30924
|
-
.map(f =>
|
|
30925
|
-
|
|
30926
|
-
|
|
30927
|
-
if (!ReadFieldsFilterPipe.isEmpty(value)) {
|
|
30928
|
-
clone.value = value;
|
|
30929
|
-
}
|
|
30930
|
-
return clone;
|
|
30931
|
-
})
|
|
30932
|
-
.map(f => {
|
|
30933
|
-
if (!f.display_context) {
|
|
30934
|
-
if (FieldsUtils.isValidDisplayContext(complexField.display_context)) {
|
|
30935
|
-
f.display_context = complexField.display_context;
|
|
30936
|
-
}
|
|
30937
|
-
}
|
|
30938
|
-
if (setupHidden) {
|
|
30939
|
-
ReadFieldsFilterPipe.evaluateConditionalShow(f, checkConditionalShowAgainst, path, formGroupAvailable, complexField.id);
|
|
30940
|
-
}
|
|
30941
|
-
return f;
|
|
30942
|
-
})
|
|
30943
|
-
.filter(f => keepEmpty || ReadFieldsFilterPipe.keepField(f, undefined, false, checkConditionalShowAgainst));
|
|
31096
|
+
.map(f => ReadFieldsFilterPipe.cloneFieldWithValue(f, values, index))
|
|
31097
|
+
.map(f => ReadFieldsFilterPipe.applyDisplayContextAndHidden(f, complexField, setupHidden, conditionalShowContext.checkConditionalShowAgainst, conditionalShowContext.formGroupAvailable, path))
|
|
31098
|
+
.filter(f => keepEmpty || ReadFieldsFilterPipe.keepField(f, undefined, false, conditionalShowContext.checkConditionalShowAgainst));
|
|
30944
31099
|
}
|
|
30945
31100
|
static ɵfac = function ReadFieldsFilterPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadFieldsFilterPipe)(); };
|
|
30946
31101
|
static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "ccdReadFieldsFilter", type: ReadFieldsFilterPipe, pure: true, standalone: false });
|
|
@@ -35384,7 +35539,7 @@ class CaseResolver {
|
|
|
35384
35539
|
// as discussed for EUI-5456, need functionality to go to default page
|
|
35385
35540
|
goToDefaultPage() {
|
|
35386
35541
|
console.info('Going to default page!');
|
|
35387
|
-
const userDetails =
|
|
35542
|
+
const userDetails = safeJsonParse(this.sessionStorage.getItem(USER_DETAILS));
|
|
35388
35543
|
userDetails && userDetails.roles
|
|
35389
35544
|
&& !userDetails.roles.includes(PUI_CASE_MANAGER)
|
|
35390
35545
|
&&
|
|
@@ -35437,7 +35592,7 @@ class EventTriggerResolver {
|
|
|
35437
35592
|
const query = route.queryParams;
|
|
35438
35593
|
// If jurisdiction or caseType are missing, redirect to correct URL
|
|
35439
35594
|
if (!jurisdiction || !caseType) {
|
|
35440
|
-
const caseInfo =
|
|
35595
|
+
const caseInfo = safeJsonParse(this.sessionStorageService.getItem('caseInfo'), {});
|
|
35441
35596
|
const jurisdictionId = caseInfo?.jurisdiction;
|
|
35442
35597
|
const caseTypeId = caseInfo?.caseType;
|
|
35443
35598
|
const caseId = caseInfo?.caseId;
|
|
@@ -39714,7 +39869,7 @@ class CreateCaseFiltersComponent {
|
|
|
39714
39869
|
return events.filter(event => event.pre_states.length === 0);
|
|
39715
39870
|
}
|
|
39716
39871
|
retainEventsWithCreateRights(events) {
|
|
39717
|
-
const userProfile =
|
|
39872
|
+
const userProfile = safeJsonParse(this.sessionStorageService.getItem(USER_DETAILS), null);
|
|
39718
39873
|
return events.filter(event => userProfile && userProfile.roles &&
|
|
39719
39874
|
!!userProfile.roles.find(role => this.hasCreateAccess(event, role)));
|
|
39720
39875
|
}
|
|
@@ -39852,7 +40007,7 @@ class CreateCaseFiltersComponent {
|
|
|
39852
40007
|
}], selectionChanged: [{
|
|
39853
40008
|
type: Output
|
|
39854
40009
|
}] }); })();
|
|
39855
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CreateCaseFiltersComponent, { className: "CreateCaseFiltersComponent", filePath: "lib/shared/components/create-case-filters/create-case-filters.component.ts", lineNumber:
|
|
40010
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CreateCaseFiltersComponent, { className: "CreateCaseFiltersComponent", filePath: "lib/shared/components/create-case-filters/create-case-filters.component.ts", lineNumber: 20 }); })();
|
|
39856
40011
|
|
|
39857
40012
|
class CreateCaseFiltersModule {
|
|
39858
40013
|
static ɵfac = function CreateCaseFiltersModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CreateCaseFiltersModule)(); };
|
|
@@ -41473,5 +41628,5 @@ class TestRouteSnapshotBuilder {
|
|
|
41473
41628
|
* Generated bundle index. Do not edit.
|
|
41474
41629
|
*/
|
|
41475
41630
|
|
|
41476
|
-
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 };
|
|
41631
|
+
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 };
|
|
41477
41632
|
//# sourceMappingURL=hmcts-ccd-case-ui-toolkit.mjs.map
|