@hmcts/ccd-case-ui-toolkit 7.3.61 → 7.3.62-fix-case-filter-issue-v2
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/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +344 -131
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/index.d.ts +78 -8
- package/index.d.ts.map +1 -1
- package/package.json +43 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Input, EventEmitter, Output, NgModule, ViewEncapsulation, forwardRef, Pipe, ContentChildren, ViewChildren,
|
|
2
|
+
import { Component, Input, EventEmitter, Output, NgModule, ViewEncapsulation, forwardRef, Pipe, ContentChildren, ViewChildren, Injectable, DOCUMENT, 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';
|
|
@@ -1321,6 +1321,140 @@ class CaseEditorConfig {
|
|
|
1321
1321
|
enable_service_specific_multi_followups;
|
|
1322
1322
|
}
|
|
1323
1323
|
|
|
1324
|
+
class StructuredLoggerService {
|
|
1325
|
+
static CIRCULAR_VALUE = '[Circular]';
|
|
1326
|
+
static MAX_DEPTH_VALUE = '[MaxDepth]';
|
|
1327
|
+
static MAX_REDACTION_DEPTH = 10;
|
|
1328
|
+
static REDACTED_VALUE = '[REDACTED]';
|
|
1329
|
+
static KEY_VALUE_PATTERN = /\b([a-z][\w-]*(?:[ _-][a-z][\w-]*)?)([ \t]*[:=][ \t]*)((?:Bearer[ \t]+)?)([^,;&\s]+)/gi;
|
|
1330
|
+
static SENSITIVE_KEY_PATTERN = /(password|passcode|pwd|secret|token|authori[sz]ation|authentication|auth[-_ ]?context|^auth$|api[-_ ]?key|cookie|session|credential)/i;
|
|
1331
|
+
static BEARER_TOKEN_PATTERN = /\bBearer\s+([\w.~+/-]+=*)/gi;
|
|
1332
|
+
debug(message, context) {
|
|
1333
|
+
this.write('debug', message, context);
|
|
1334
|
+
}
|
|
1335
|
+
error(message, context) {
|
|
1336
|
+
this.write('error', message, context);
|
|
1337
|
+
}
|
|
1338
|
+
info(message, context) {
|
|
1339
|
+
this.write('info', message, context);
|
|
1340
|
+
}
|
|
1341
|
+
warn(message, context) {
|
|
1342
|
+
this.write('warn', message, context);
|
|
1343
|
+
}
|
|
1344
|
+
redact(value) {
|
|
1345
|
+
return this.redactValue(value, new WeakSet(), false, 0);
|
|
1346
|
+
}
|
|
1347
|
+
write(level, message, context) {
|
|
1348
|
+
const entry = {
|
|
1349
|
+
level,
|
|
1350
|
+
message,
|
|
1351
|
+
timestamp: new Date().toISOString()
|
|
1352
|
+
};
|
|
1353
|
+
if (context !== undefined) {
|
|
1354
|
+
entry.context = this.redact(context);
|
|
1355
|
+
}
|
|
1356
|
+
switch (level) {
|
|
1357
|
+
case 'error':
|
|
1358
|
+
console.error(entry);
|
|
1359
|
+
break;
|
|
1360
|
+
case 'warn':
|
|
1361
|
+
console.warn(entry);
|
|
1362
|
+
break;
|
|
1363
|
+
default:
|
|
1364
|
+
console.log(entry);
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1367
|
+
redactValue(value, seen, redactCurrentValue, depth) {
|
|
1368
|
+
if (redactCurrentValue) {
|
|
1369
|
+
return StructuredLoggerService.REDACTED_VALUE;
|
|
1370
|
+
}
|
|
1371
|
+
if (value === null || value === undefined) {
|
|
1372
|
+
return value;
|
|
1373
|
+
}
|
|
1374
|
+
if (typeof value === 'string') {
|
|
1375
|
+
return this.redactSensitiveString(value);
|
|
1376
|
+
}
|
|
1377
|
+
if (typeof value !== 'object') {
|
|
1378
|
+
return value;
|
|
1379
|
+
}
|
|
1380
|
+
if (seen.has(value)) {
|
|
1381
|
+
return StructuredLoggerService.CIRCULAR_VALUE;
|
|
1382
|
+
}
|
|
1383
|
+
if (depth >= StructuredLoggerService.MAX_REDACTION_DEPTH) {
|
|
1384
|
+
return StructuredLoggerService.MAX_DEPTH_VALUE;
|
|
1385
|
+
}
|
|
1386
|
+
seen.add(value);
|
|
1387
|
+
let redactedValue;
|
|
1388
|
+
if (value instanceof Date) {
|
|
1389
|
+
redactedValue = value.toISOString();
|
|
1390
|
+
}
|
|
1391
|
+
else if (value instanceof Error) {
|
|
1392
|
+
redactedValue = this.redactError(value, seen, depth);
|
|
1393
|
+
}
|
|
1394
|
+
else if (Array.isArray(value)) {
|
|
1395
|
+
redactedValue = value.map(item => this.redactValue(item, seen, false, depth + 1));
|
|
1396
|
+
}
|
|
1397
|
+
else {
|
|
1398
|
+
redactedValue = this.redactObject(value, seen, depth);
|
|
1399
|
+
}
|
|
1400
|
+
seen.delete(value);
|
|
1401
|
+
return redactedValue;
|
|
1402
|
+
}
|
|
1403
|
+
redactError(error, seen, depth) {
|
|
1404
|
+
const redactedError = {
|
|
1405
|
+
name: this.redactValue(error.name, seen, false, depth + 1),
|
|
1406
|
+
message: this.redactValue(error.message, seen, false, depth + 1)
|
|
1407
|
+
};
|
|
1408
|
+
if (error.stack) {
|
|
1409
|
+
redactedError.stack = this.redactValue(error.stack, seen, false, depth + 1);
|
|
1410
|
+
}
|
|
1411
|
+
const errorContext = error;
|
|
1412
|
+
Object.keys(errorContext).forEach(key => {
|
|
1413
|
+
redactedError[key] = this.redactValue(errorContext[key], seen, this.isSensitiveKey(key), depth + 1);
|
|
1414
|
+
});
|
|
1415
|
+
return redactedError;
|
|
1416
|
+
}
|
|
1417
|
+
redactObject(value, seen, depth) {
|
|
1418
|
+
const redactedValue = {};
|
|
1419
|
+
const hasSensitiveNamedValue = this.hasSensitiveNamedValue(value);
|
|
1420
|
+
Object.keys(value).forEach(key => {
|
|
1421
|
+
redactedValue[key] = this.redactValue(value[key], seen, this.isSensitiveKey(key) || (hasSensitiveNamedValue && this.isValueKey(key)), depth + 1);
|
|
1422
|
+
});
|
|
1423
|
+
return redactedValue;
|
|
1424
|
+
}
|
|
1425
|
+
redactSensitiveString(value) {
|
|
1426
|
+
return value
|
|
1427
|
+
.replace(StructuredLoggerService.KEY_VALUE_PATTERN, (match, key, separator, bearerPrefix) => {
|
|
1428
|
+
return this.isSensitiveKey(key) ? `${key}${separator}${bearerPrefix}${StructuredLoggerService.REDACTED_VALUE}` : match;
|
|
1429
|
+
})
|
|
1430
|
+
.replace(StructuredLoggerService.BEARER_TOKEN_PATTERN, 'Bearer [REDACTED]');
|
|
1431
|
+
}
|
|
1432
|
+
hasSensitiveNamedValue(value) {
|
|
1433
|
+
return Object.keys(value)
|
|
1434
|
+
.some(key => {
|
|
1435
|
+
const namedValue = value[key];
|
|
1436
|
+
return this.isNameKey(key) && typeof namedValue === 'string' && this.isSensitiveKey(namedValue);
|
|
1437
|
+
});
|
|
1438
|
+
}
|
|
1439
|
+
isNameKey(key) {
|
|
1440
|
+
return ['key', 'name'].includes(key.toLowerCase());
|
|
1441
|
+
}
|
|
1442
|
+
isSensitiveKey(key) {
|
|
1443
|
+
return StructuredLoggerService.SENSITIVE_KEY_PATTERN.test(key);
|
|
1444
|
+
}
|
|
1445
|
+
isValueKey(key) {
|
|
1446
|
+
return ['value', 'values'].includes(key.toLowerCase());
|
|
1447
|
+
}
|
|
1448
|
+
static ɵfac = function StructuredLoggerService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StructuredLoggerService)(); };
|
|
1449
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: StructuredLoggerService, factory: StructuredLoggerService.ɵfac, providedIn: 'root' });
|
|
1450
|
+
}
|
|
1451
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StructuredLoggerService, [{
|
|
1452
|
+
type: Injectable,
|
|
1453
|
+
args: [{
|
|
1454
|
+
providedIn: 'root'
|
|
1455
|
+
}]
|
|
1456
|
+
}], null, null); })();
|
|
1457
|
+
|
|
1324
1458
|
class HttpError {
|
|
1325
1459
|
constructor() {
|
|
1326
1460
|
this.timestamp = new Date().toISOString();
|
|
@@ -1461,6 +1595,7 @@ class LoadingModule {
|
|
|
1461
1595
|
class HttpErrorService {
|
|
1462
1596
|
authService;
|
|
1463
1597
|
loadingService;
|
|
1598
|
+
static logger = new StructuredLoggerService();
|
|
1464
1599
|
constructor(authService, loadingService) {
|
|
1465
1600
|
this.authService = authService;
|
|
1466
1601
|
this.loadingService = loadingService;
|
|
@@ -1479,7 +1614,7 @@ class HttpErrorService {
|
|
|
1479
1614
|
httpError = HttpError.from(error);
|
|
1480
1615
|
}
|
|
1481
1616
|
catch (e) {
|
|
1482
|
-
|
|
1617
|
+
HttpErrorService.logger.error('Unable to convert HTTP error response.', { error: e });
|
|
1483
1618
|
}
|
|
1484
1619
|
}
|
|
1485
1620
|
if (!httpError.status) {
|
|
@@ -1505,8 +1640,6 @@ class HttpErrorService {
|
|
|
1505
1640
|
return error;
|
|
1506
1641
|
}
|
|
1507
1642
|
handle(error, redirectIfNotAuthorised = true) {
|
|
1508
|
-
console.error('Handling error in http error service.');
|
|
1509
|
-
console.error(error);
|
|
1510
1643
|
if (this.loadingService.hasSharedSpinner()) {
|
|
1511
1644
|
this.loadingService.unregisterSharedSpinner();
|
|
1512
1645
|
}
|
|
@@ -1646,6 +1779,7 @@ class SessionStorageService {
|
|
|
1646
1779
|
}]
|
|
1647
1780
|
}], null, null); })();
|
|
1648
1781
|
|
|
1782
|
+
const logger = new StructuredLoggerService();
|
|
1649
1783
|
function safeJsonParse(value, fallback = null) {
|
|
1650
1784
|
if (!value) {
|
|
1651
1785
|
return fallback;
|
|
@@ -1655,8 +1789,7 @@ function safeJsonParse(value, fallback = null) {
|
|
|
1655
1789
|
}
|
|
1656
1790
|
catch (error) {
|
|
1657
1791
|
// Log for diagnostics, then return fallback to avoid UI crashes.
|
|
1658
|
-
|
|
1659
|
-
console.error('safeJsonParse failed to parse JSON', error);
|
|
1792
|
+
logger.error('safeJsonParse failed to parse JSON.', { error });
|
|
1660
1793
|
return fallback;
|
|
1661
1794
|
}
|
|
1662
1795
|
}
|
|
@@ -1668,6 +1801,7 @@ class SessionStorageGuard {
|
|
|
1668
1801
|
router;
|
|
1669
1802
|
errorRoute;
|
|
1670
1803
|
errorLogger;
|
|
1804
|
+
logger = new StructuredLoggerService();
|
|
1671
1805
|
constructor(sessionStorageService, router, errorRoute, errorLogger) {
|
|
1672
1806
|
this.sessionStorageService = sessionStorageService;
|
|
1673
1807
|
this.router = router;
|
|
@@ -1688,8 +1822,7 @@ class SessionStorageGuard {
|
|
|
1688
1822
|
this.errorLogger(error);
|
|
1689
1823
|
}
|
|
1690
1824
|
else {
|
|
1691
|
-
|
|
1692
|
-
console.error('Invalid userDetails in session storage', error);
|
|
1825
|
+
this.logger.error('Invalid userDetails in session storage.', { error });
|
|
1693
1826
|
}
|
|
1694
1827
|
this.router.navigate([this.errorRoute || '/session-error']);
|
|
1695
1828
|
return false;
|
|
@@ -1740,6 +1873,7 @@ class ActivityService {
|
|
|
1740
1873
|
sessionStorageService;
|
|
1741
1874
|
static get ACTIVITY_VIEW() { return 'view'; }
|
|
1742
1875
|
static get ACTIVITY_EDIT() { return 'edit'; }
|
|
1876
|
+
logger = new StructuredLoggerService();
|
|
1743
1877
|
constructor(http, appConfig, sessionStorageService) {
|
|
1744
1878
|
this.http = http;
|
|
1745
1879
|
this.appConfig = appConfig;
|
|
@@ -1778,7 +1912,7 @@ class ActivityService {
|
|
|
1778
1912
|
.pipe(map(response => response));
|
|
1779
1913
|
}
|
|
1780
1914
|
catch (error) {
|
|
1781
|
-
|
|
1915
|
+
this.logUserMayNotBeAuthenticated(error);
|
|
1782
1916
|
}
|
|
1783
1917
|
}
|
|
1784
1918
|
postActivity(caseId, activity) {
|
|
@@ -1791,7 +1925,7 @@ class ActivityService {
|
|
|
1791
1925
|
.pipe(map(response => response));
|
|
1792
1926
|
}
|
|
1793
1927
|
catch (error) {
|
|
1794
|
-
|
|
1928
|
+
this.logUserMayNotBeAuthenticated(error);
|
|
1795
1929
|
}
|
|
1796
1930
|
}
|
|
1797
1931
|
verifyUserIsAuthorized() {
|
|
@@ -1804,6 +1938,9 @@ class ActivityService {
|
|
|
1804
1938
|
activityUrl() {
|
|
1805
1939
|
return this.appConfig.getActivityUrl();
|
|
1806
1940
|
}
|
|
1941
|
+
logUserMayNotBeAuthenticated(error) {
|
|
1942
|
+
this.logger.error('User may not be authenticated. Activity request was not sent.', { error });
|
|
1943
|
+
}
|
|
1807
1944
|
static ɵfac = function ActivityService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActivityService)(i0.ɵɵinject(HttpService), i0.ɵɵinject(AbstractAppConfig), i0.ɵɵinject(SessionStorageService)); };
|
|
1808
1945
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ActivityService, factory: ActivityService.ɵfac });
|
|
1809
1946
|
}
|
|
@@ -1816,6 +1953,7 @@ class ActivityPollingService {
|
|
|
1816
1953
|
activityService;
|
|
1817
1954
|
ngZone;
|
|
1818
1955
|
config;
|
|
1956
|
+
logger = new StructuredLoggerService();
|
|
1819
1957
|
pendingRequests = new Map();
|
|
1820
1958
|
currentTimeoutHandle;
|
|
1821
1959
|
pollActivitiesSubscription;
|
|
@@ -1859,7 +1997,6 @@ class ActivityPollingService {
|
|
|
1859
1997
|
}
|
|
1860
1998
|
}
|
|
1861
1999
|
if (this.pendingRequests.size >= this.maxRequestsPerBatch) {
|
|
1862
|
-
// console.log('max pending hit: flushing requests');
|
|
1863
2000
|
this.flushRequests();
|
|
1864
2001
|
}
|
|
1865
2002
|
return subject;
|
|
@@ -1895,7 +2032,6 @@ class ActivityPollingService {
|
|
|
1895
2032
|
}
|
|
1896
2033
|
performBatchRequest(requests) {
|
|
1897
2034
|
const caseIds = Array.from(requests.keys()).join();
|
|
1898
|
-
// console.log('issuing batch request for cases: ' + caseIds);
|
|
1899
2035
|
this.ngZone.runOutsideAngular(() => {
|
|
1900
2036
|
// run polling outside angular zone so it does not trigger change detection
|
|
1901
2037
|
this.pollActivitiesSubscription = this.pollActivities(caseIds).subscribe({
|
|
@@ -1907,7 +2043,7 @@ class ActivityPollingService {
|
|
|
1907
2043
|
});
|
|
1908
2044
|
}),
|
|
1909
2045
|
error: (err) => this.ngZone.run(() => {
|
|
1910
|
-
|
|
2046
|
+
this.logger.error('Error while polling activities.', { error: err });
|
|
1911
2047
|
Array.from(requests.values()).forEach((subject) => subject.error(err));
|
|
1912
2048
|
})
|
|
1913
2049
|
});
|
|
@@ -3408,6 +3544,7 @@ __decorate([
|
|
|
3408
3544
|
|
|
3409
3545
|
// @dynamic
|
|
3410
3546
|
class CaseField {
|
|
3547
|
+
static logger = new StructuredLoggerService();
|
|
3411
3548
|
id;
|
|
3412
3549
|
hidden;
|
|
3413
3550
|
hiddenCannotChange;
|
|
@@ -3550,7 +3687,7 @@ class CaseField {
|
|
|
3550
3687
|
}
|
|
3551
3688
|
}
|
|
3552
3689
|
else {
|
|
3553
|
-
|
|
3690
|
+
CaseField.logger.error('Path too long, possible circular reference in case field hierarchy.');
|
|
3554
3691
|
return this.id;
|
|
3555
3692
|
}
|
|
3556
3693
|
}
|
|
@@ -4033,6 +4170,7 @@ class WorkbasketInput {
|
|
|
4033
4170
|
|
|
4034
4171
|
// @dynamic
|
|
4035
4172
|
class FieldsUtils {
|
|
4173
|
+
static logger = new StructuredLoggerService();
|
|
4036
4174
|
static caseLevelCaseFlagsFieldId = 'caseFlags';
|
|
4037
4175
|
static currencyPipe = new CurrencyPipe('en-GB');
|
|
4038
4176
|
static datePipe = new DatePipe(new FormatTranslatorService());
|
|
@@ -4320,7 +4458,7 @@ class FieldsUtils {
|
|
|
4320
4458
|
}
|
|
4321
4459
|
}
|
|
4322
4460
|
catch (error) {
|
|
4323
|
-
|
|
4461
|
+
FieldsUtils.logger.error('Error setting dynamic list definition.', { error });
|
|
4324
4462
|
}
|
|
4325
4463
|
});
|
|
4326
4464
|
}
|
|
@@ -4763,6 +4901,7 @@ const conditionSource = `{
|
|
|
4763
4901
|
var peg = generate(conditionSource);
|
|
4764
4902
|
|
|
4765
4903
|
class ConditionParser {
|
|
4904
|
+
static logger = new StructuredLoggerService();
|
|
4766
4905
|
/**
|
|
4767
4906
|
* Parse the raw formula and output structured condition data
|
|
4768
4907
|
* that can be used in evaluating show/hide logic
|
|
@@ -4939,14 +5078,14 @@ class ConditionParser {
|
|
|
4939
5078
|
return (fields[head][arrayIndex] !== undefined) ? this.findValueForComplexCondition(fields[head][arrayIndex]['value'], tail[0], tail.slice(1), dropNumberPath.join('_')) : null;
|
|
4940
5079
|
}
|
|
4941
5080
|
catch (e) {
|
|
4942
|
-
|
|
5081
|
+
this.logger.error('Error while parsing form array path index.', { error: e, pathIndex: pathTail[0] });
|
|
4943
5082
|
}
|
|
4944
5083
|
}
|
|
4945
5084
|
}
|
|
4946
5085
|
else {
|
|
4947
5086
|
// EXUI-2460 - if path present then show error, otherwise log message to stop unnecessary console errors
|
|
4948
|
-
path ?
|
|
4949
|
-
|
|
5087
|
+
path ? this.logger.error('Path in formArray should start with the expected field.', { expectedHead: head, path }) :
|
|
5088
|
+
this.logger.info('Path not present in formArray.');
|
|
4950
5089
|
}
|
|
4951
5090
|
}
|
|
4952
5091
|
static removeStarChar(str) {
|
|
@@ -8163,13 +8302,17 @@ class ArtificialDelayContext {
|
|
|
8163
8302
|
}
|
|
8164
8303
|
}
|
|
8165
8304
|
class RetryUtil {
|
|
8305
|
+
logger = new StructuredLoggerService();
|
|
8166
8306
|
pipeTimeoutMechanismOn(in$, preferredArtificialDelay, timeoutPeriods) {
|
|
8167
8307
|
const artificialDelayContext = new ArtificialDelayContext(preferredArtificialDelay);
|
|
8168
|
-
|
|
8169
|
-
|
|
8308
|
+
this.logger.info('Piping a retry mechanism with timeouts.', { timeoutPeriods });
|
|
8309
|
+
this.logger.info('Artificial delay setting resolved.', { artificialDelayApplied: artificialDelayContext.shouldApplyArtificialDelay() });
|
|
8170
8310
|
let out$ = in$;
|
|
8171
8311
|
if (artificialDelayContext.shouldApplyArtificialDelay()) {
|
|
8172
|
-
|
|
8312
|
+
this.logger.info('Preferred artificial delay selected.', {
|
|
8313
|
+
actualDelaySeconds: artificialDelayContext.getActualDelay(),
|
|
8314
|
+
preferredDelaySeconds: preferredArtificialDelay
|
|
8315
|
+
});
|
|
8173
8316
|
out$ = this.pipeArtificialDelayOn(out$, artificialDelayContext);
|
|
8174
8317
|
}
|
|
8175
8318
|
out$ = this.pipeTimeOutControlOn(out$, timeoutPeriods);
|
|
@@ -8178,36 +8321,35 @@ class RetryUtil {
|
|
|
8178
8321
|
}
|
|
8179
8322
|
pipeTimeOutControlOn(in$, timeoutPeriods) {
|
|
8180
8323
|
const timeOutAfterSeconds = timeoutPeriods[0];
|
|
8181
|
-
|
|
8324
|
+
this.logger.info('Piping timeout control.', { timeoutSeconds: timeOutAfterSeconds });
|
|
8182
8325
|
const out$ = in$.pipe(timeout(timeOutAfterSeconds * 1000));
|
|
8183
8326
|
return out$;
|
|
8184
8327
|
}
|
|
8185
8328
|
pipeRetryMechanismOn(in$, artificialDelayContext) {
|
|
8186
8329
|
const retryStrategy = (errors) => {
|
|
8187
8330
|
return errors.pipe(mergeMap((error, i) => {
|
|
8188
|
-
|
|
8189
|
-
console.error(error);
|
|
8331
|
+
this.logger.error('Mapping retry error.', { error, errorName: error?.name, attempt: i });
|
|
8190
8332
|
if (error?.name === 'TimeoutError' && i === 0) {
|
|
8191
8333
|
artificialDelayContext.turnOffArtificialDelays();
|
|
8192
|
-
|
|
8334
|
+
this.logger.info('Will retry after a timeout error.');
|
|
8193
8335
|
}
|
|
8194
8336
|
else {
|
|
8195
|
-
|
|
8337
|
+
this.logger.error('Will not retry request after error.', { error, errorName: error?.name, attempt: i });
|
|
8196
8338
|
throw error;
|
|
8197
8339
|
}
|
|
8198
8340
|
return timer(0);
|
|
8199
|
-
}), finalize(() =>
|
|
8341
|
+
}), finalize(() => undefined));
|
|
8200
8342
|
};
|
|
8201
8343
|
const out$ = in$.pipe(retryWhen(retryStrategy));
|
|
8202
8344
|
return out$;
|
|
8203
8345
|
}
|
|
8204
8346
|
pipeArtificialDelayOn(in$, artificialDelayContext) {
|
|
8205
8347
|
let out$ = in$.pipe(tap(() => {
|
|
8206
|
-
|
|
8348
|
+
this.logger.info('Artificial delay started.', { delaySeconds: artificialDelayContext.getActualDelay() });
|
|
8207
8349
|
}));
|
|
8208
8350
|
out$ = out$.pipe(delayWhen(() => timer(artificialDelayContext.getActualDelay() * 1000)));
|
|
8209
8351
|
out$ = out$.pipe(tap(() => {
|
|
8210
|
-
|
|
8352
|
+
this.logger.info('Artificial delay completed.', { delaySeconds: artificialDelayContext.getActualDelay() });
|
|
8211
8353
|
}));
|
|
8212
8354
|
return out$;
|
|
8213
8355
|
}
|
|
@@ -8259,6 +8401,26 @@ class WindowService {
|
|
|
8259
8401
|
type: Injectable
|
|
8260
8402
|
}], null, null); })();
|
|
8261
8403
|
|
|
8404
|
+
class FocusService {
|
|
8405
|
+
/** unique ID of DOM element this service will focus on */
|
|
8406
|
+
elementIdToFocus = 'focusService-elementIdToFocus';
|
|
8407
|
+
/**
|
|
8408
|
+
* Focus on a specific element with the elementIdToFocus.
|
|
8409
|
+
* If there is no element in the DOM, no action is taken.
|
|
8410
|
+
*/
|
|
8411
|
+
focus() {
|
|
8412
|
+
const elementToFocus = document.getElementById(this.elementIdToFocus);
|
|
8413
|
+
if (elementToFocus) {
|
|
8414
|
+
elementToFocus.focus();
|
|
8415
|
+
}
|
|
8416
|
+
}
|
|
8417
|
+
static ɵfac = function FocusService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FocusService)(); };
|
|
8418
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FocusService, factory: FocusService.ɵfac });
|
|
8419
|
+
}
|
|
8420
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FocusService, [{
|
|
8421
|
+
type: Injectable
|
|
8422
|
+
}], null, null); })();
|
|
8423
|
+
|
|
8262
8424
|
class WorkbasketInputFilterService {
|
|
8263
8425
|
httpService;
|
|
8264
8426
|
appConfig;
|
|
@@ -8420,6 +8582,7 @@ class SearchResultViewItemComparatorFactory {
|
|
|
8420
8582
|
class OrganisationService {
|
|
8421
8583
|
http;
|
|
8422
8584
|
appconfig;
|
|
8585
|
+
logger = new StructuredLoggerService();
|
|
8423
8586
|
constructor(http, appconfig) {
|
|
8424
8587
|
this.http = http;
|
|
8425
8588
|
this.appconfig = appconfig;
|
|
@@ -8452,7 +8615,7 @@ class OrganisationService {
|
|
|
8452
8615
|
const cacheTimeOut = this.appconfig.getCacheTimeOut();
|
|
8453
8616
|
this.organisations$ = this.http.get(url)
|
|
8454
8617
|
.pipe(map((orgs) => OrganisationService.mapOrganisation(orgs)), publishReplay(1, cacheTimeOut), refCount(), take(1), catchError(e => {
|
|
8455
|
-
|
|
8618
|
+
this.logger.error('Error while retrieving active organisations.', { error: e });
|
|
8456
8619
|
// Handle error and return blank Observable array
|
|
8457
8620
|
return of([]);
|
|
8458
8621
|
}));
|
|
@@ -8915,9 +9078,14 @@ class CaseEditWizardGuard {
|
|
|
8915
9078
|
}
|
|
8916
9079
|
goToFirst(wizard, canShowPredicate, route) {
|
|
8917
9080
|
const firstPage = wizard.firstPage(canShowPredicate);
|
|
8918
|
-
//
|
|
8919
|
-
//
|
|
8920
|
-
return this.router.navigate([...this.parentUrlSegments(route), firstPage ? firstPage.id : 'submit'], {
|
|
9081
|
+
// This route transition is an internal wizard redirect used to append the first page id to the URL.
|
|
9082
|
+
// Mark it in navigation state so EventStartGuard can skip duplicate work allocation checks.
|
|
9083
|
+
return this.router.navigate([...this.parentUrlSegments(route), firstPage ? firstPage.id : 'submit'], {
|
|
9084
|
+
queryParams: route.queryParams,
|
|
9085
|
+
state: {
|
|
9086
|
+
[EVENT_START_FIRST_PAGE_REDIRECT]: true
|
|
9087
|
+
}
|
|
9088
|
+
});
|
|
8921
9089
|
}
|
|
8922
9090
|
goToSubmit(route) {
|
|
8923
9091
|
return this.router.navigate([...this.parentUrlSegments(route), 'submit'], { queryParams: route.queryParams });
|
|
@@ -9187,7 +9355,6 @@ class EventCompletionStateMachineService {
|
|
|
9187
9355
|
}
|
|
9188
9356
|
entryActionForStateFinal(state, context) {
|
|
9189
9357
|
// Final actions can be performed here, the state machine finished running
|
|
9190
|
-
console.log('FINAL');
|
|
9191
9358
|
}
|
|
9192
9359
|
addTransitionsForStateCheckTasksCanBeCompleted() {
|
|
9193
9360
|
// Complete event and task
|
|
@@ -9339,7 +9506,6 @@ class WorkAllocationService {
|
|
|
9339
9506
|
// explicitly eat away 401 error and 400 error
|
|
9340
9507
|
if (error && error.status && (error.status === 401 || error.status === 400)) {
|
|
9341
9508
|
// do nothing
|
|
9342
|
-
console.log('error status 401 or 400', error);
|
|
9343
9509
|
}
|
|
9344
9510
|
else {
|
|
9345
9511
|
return throwError(error);
|
|
@@ -10017,7 +10183,7 @@ class CaseEditComponent {
|
|
|
10017
10183
|
return of(true);
|
|
10018
10184
|
}
|
|
10019
10185
|
finishEventCompletionLogic(eventResponse) {
|
|
10020
|
-
this.caseNotifier.
|
|
10186
|
+
this.caseNotifier.removeCachedCase();
|
|
10021
10187
|
this.sessionStorageService.removeItem('eventUrl');
|
|
10022
10188
|
const confirmation = this.buildConfirmation(eventResponse);
|
|
10023
10189
|
if (confirmation && (confirmation.getHeader() || confirmation.getBody())) {
|
|
@@ -10140,6 +10306,7 @@ class CaseEditComponent {
|
|
|
10140
10306
|
}] }); })();
|
|
10141
10307
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditComponent, { className: "CaseEditComponent", filePath: "lib/shared/components/case-editor/case-edit/case-edit.component.ts", lineNumber: 39 }); })();
|
|
10142
10308
|
|
|
10309
|
+
const EVENT_START_FIRST_PAGE_REDIRECT = 'eventStartFirstPageRedirect';
|
|
10143
10310
|
function convertNonASCIICharacter(character) {
|
|
10144
10311
|
if (character === '£') {
|
|
10145
10312
|
// pound sign will be frequently used and works for btoa despite being non-ASCII
|
|
@@ -10195,6 +10362,7 @@ class CasesService {
|
|
|
10195
10362
|
loadingService;
|
|
10196
10363
|
sessionStorageService;
|
|
10197
10364
|
retryUtil;
|
|
10365
|
+
logger = new StructuredLoggerService();
|
|
10198
10366
|
// Internal (UI) API
|
|
10199
10367
|
static V2_MEDIATYPE_CASE_VIEW = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-case-view.v2+json';
|
|
10200
10368
|
static V2_MEDIATYPE_START_CASE_TRIGGER = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-start-case-trigger.v2+json;charset=UTF-8';
|
|
@@ -10249,12 +10417,11 @@ class CasesService {
|
|
|
10249
10417
|
let http$ = this.http.get(url, { headers, observe: 'body' });
|
|
10250
10418
|
const artificialDelay = this.appConfig.getTimeoutsCaseRetrievalArtificialDelay();
|
|
10251
10419
|
const timeoutPeriods = this.appConfig.getTimeoutsForCaseRetrieval();
|
|
10252
|
-
console.log(`Timeout periods: ${timeoutPeriods} seconds.`);
|
|
10253
10420
|
if (timeoutPeriods && timeoutPeriods.length > 0 && timeoutPeriods[0] > 0) {
|
|
10254
10421
|
http$ = this.retryUtil.pipeTimeoutMechanismOn(http$, artificialDelay, timeoutPeriods);
|
|
10255
10422
|
}
|
|
10256
10423
|
else {
|
|
10257
|
-
|
|
10424
|
+
this.logger.warn('Skipping retry mechanism for case view retrieval.');
|
|
10258
10425
|
}
|
|
10259
10426
|
http$ = this.pipeErrorProcessor(http$);
|
|
10260
10427
|
http$ = http$.pipe(finalize(() => this.finalizeGetCaseViewWith(caseId, loadingToken)));
|
|
@@ -10262,8 +10429,11 @@ class CasesService {
|
|
|
10262
10429
|
}
|
|
10263
10430
|
pipeErrorProcessor(in$) {
|
|
10264
10431
|
const out$ = in$.pipe(catchError(error => {
|
|
10265
|
-
|
|
10266
|
-
|
|
10432
|
+
this.logger.error('Error while getting case view with getCaseViewV2.', {
|
|
10433
|
+
error,
|
|
10434
|
+
errorName: error?.name,
|
|
10435
|
+
errorType: typeof error
|
|
10436
|
+
});
|
|
10267
10437
|
this.errorService.setError(error);
|
|
10268
10438
|
return throwError(error);
|
|
10269
10439
|
}));
|
|
@@ -10771,6 +10941,7 @@ function CaseEditFormComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
10771
10941
|
} }
|
|
10772
10942
|
class CaseEditFormComponent {
|
|
10773
10943
|
formValueService;
|
|
10944
|
+
conditionalShowFormDirectives;
|
|
10774
10945
|
fields = [];
|
|
10775
10946
|
formGroup;
|
|
10776
10947
|
caseFields = [];
|
|
@@ -10818,8 +10989,17 @@ class CaseEditFormComponent {
|
|
|
10818
10989
|
const current = JSON.stringify(this.formValueService.sanitise(changes));
|
|
10819
10990
|
this.initial !== current ? this.valuesChanged.emit(true) : this.valuesChanged.emit(false);
|
|
10820
10991
|
}
|
|
10992
|
+
// EXUI-4675 - needed for the race condition caused by the debounce in ConditionalShowFormDirective
|
|
10993
|
+
syncConditionalShowStates() {
|
|
10994
|
+
this.conditionalShowFormDirectives?.forEach(directive => directive.evalAllShowHideConditions());
|
|
10995
|
+
}
|
|
10821
10996
|
static ɵfac = function CaseEditFormComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseEditFormComponent)(i0.ɵɵdirectiveInject(FormValueService)); };
|
|
10822
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditFormComponent, selectors: [["ccd-case-edit-form"]],
|
|
10997
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditFormComponent, selectors: [["ccd-case-edit-form"]], viewQuery: function CaseEditFormComponent_Query(rf, ctx) { if (rf & 1) {
|
|
10998
|
+
i0.ɵɵviewQuery(ConditionalShowFormDirective, 5);
|
|
10999
|
+
} if (rf & 2) {
|
|
11000
|
+
let _t;
|
|
11001
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.conditionalShowFormDirectives = _t);
|
|
11002
|
+
} }, inputs: { fields: "fields", formGroup: "formGroup", caseFields: "caseFields", pageChangeSubject: "pageChangeSubject" }, outputs: { valuesChanged: "valuesChanged" }, standalone: false, decls: 1, vars: 1, consts: [["CompoundRow", ""], ["ccdConditionalShowForm", "", 3, "formGroup", "caseFields", "contextFields", 4, "ngFor", "ngForOf"], ["ccdConditionalShowForm", "", 3, "formGroup", "caseFields", "contextFields"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], [3, "ngSwitch"], [3, "caseField", "caseFields", "withLabel", "formGroup", 4, "ngSwitchCase"], [4, "ngSwitchCase"], [3, "caseField", "caseFields", "withLabel", "formGroup"], [4, "ngIf", "ngIfElse"], [3, "caseField", "caseFields", "formGroup", "idPrefix", "hidden"]], template: function CaseEditFormComponent_Template(rf, ctx) { if (rf & 1) {
|
|
10823
11003
|
i0.ɵɵtemplate(0, CaseEditFormComponent_ng_container_0_Template, 6, 11, "ng-container", 1);
|
|
10824
11004
|
} if (rf & 2) {
|
|
10825
11005
|
i0.ɵɵproperty("ngForOf", ctx.fields);
|
|
@@ -10828,7 +11008,10 @@ class CaseEditFormComponent {
|
|
|
10828
11008
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditFormComponent, [{
|
|
10829
11009
|
type: Component,
|
|
10830
11010
|
args: [{ selector: 'ccd-case-edit-form', standalone: false, template: "<ng-container ccdConditionalShowForm [formGroup]=\"formGroup\" [caseFields]=\"fields\" [contextFields]=\"caseFields\"\n *ngFor=\"let field of fields\">\n\n <div ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"formGroup\" [contextFields]=\"caseFields\">\n <ng-container [ngSwitch]=\"field | ccdIsReadOnlyAndNotCollection\">\n\n <ccd-field-read *ngSwitchCase=\"true\" [caseField]=\"field\" [caseFields]=\"caseFields\" [withLabel]=\"true\"\n [formGroup]=\"formGroup\" [attr.field_id]=\"field.id\"\n [attr.field_type]=\"field.field_type.type\"></ccd-field-read>\n <ng-container *ngSwitchCase=\"false\">\n\n <ng-container *ngIf=\"!(field | ccdIsCompound); else CompoundRow\">\n <ccd-field-write [caseField]=\"field\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [idPrefix]=\"\"\n [hidden]=\"field.hidden\"\n [attr.field_id]=\"field.id\"\n [attr.field_type]=\"field.field_type.type\">\n </ccd-field-write>\n </ng-container>\n\n <ng-template #CompoundRow>\n <ccd-field-write [caseField]=\"field\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [idPrefix]=\"field.id + '_'\"\n [hidden]=\"field.hidden\"\n [attr.field_id]=\"field.id\"\n [attr.field_type]=\"field.field_type.type\"></ccd-field-write>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
|
|
10831
|
-
}], () => [{ type: FormValueService }], {
|
|
11011
|
+
}], () => [{ type: FormValueService }], { conditionalShowFormDirectives: [{
|
|
11012
|
+
type: ViewChildren,
|
|
11013
|
+
args: [ConditionalShowFormDirective]
|
|
11014
|
+
}], fields: [{
|
|
10832
11015
|
type: Input
|
|
10833
11016
|
}], formGroup: [{
|
|
10834
11017
|
type: Input
|
|
@@ -10839,7 +11022,7 @@ class CaseEditFormComponent {
|
|
|
10839
11022
|
}], valuesChanged: [{
|
|
10840
11023
|
type: Output
|
|
10841
11024
|
}] }); })();
|
|
10842
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditFormComponent, { className: "CaseEditFormComponent", filePath: "lib/shared/components/case-editor/case-edit-form/case-edit-form.component.ts", lineNumber:
|
|
11025
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditFormComponent, { className: "CaseEditFormComponent", filePath: "lib/shared/components/case-editor/case-edit-form/case-edit-form.component.ts", lineNumber: 14 }); })();
|
|
10843
11026
|
|
|
10844
11027
|
class CaseEditDataService {
|
|
10845
11028
|
details$ = new BehaviorSubject(null);
|
|
@@ -11344,6 +11527,7 @@ class CaseEditPageComponent {
|
|
|
11344
11527
|
addressService;
|
|
11345
11528
|
linkedCasesService;
|
|
11346
11529
|
caseFlagStateService;
|
|
11530
|
+
focusService;
|
|
11347
11531
|
static RESUMED_FORM_DISCARD = 'RESUMED_FORM_DISCARD';
|
|
11348
11532
|
static NEW_FORM_DISCARD = 'NEW_FORM_DISCARD';
|
|
11349
11533
|
static NEW_FORM_SAVE = 'NEW_FORM_CHANGED_SAVE';
|
|
@@ -11375,16 +11559,12 @@ class CaseEditPageComponent {
|
|
|
11375
11559
|
dialogRefAfterClosedSub;
|
|
11376
11560
|
saveDraftSub;
|
|
11377
11561
|
caseFormValidationErrorsSub;
|
|
11562
|
+
logger = new StructuredLoggerService();
|
|
11563
|
+
caseEditFormComponents;
|
|
11378
11564
|
static scrollToTop() {
|
|
11379
11565
|
window.scrollTo(0, 0);
|
|
11380
11566
|
}
|
|
11381
|
-
|
|
11382
|
-
const topContainer = document.getElementById('top');
|
|
11383
|
-
if (topContainer) {
|
|
11384
|
-
topContainer.focus();
|
|
11385
|
-
}
|
|
11386
|
-
}
|
|
11387
|
-
constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService, multipageComponentStateService, addressService, linkedCasesService, caseFlagStateService) {
|
|
11567
|
+
constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService, multipageComponentStateService, addressService, linkedCasesService, caseFlagStateService, focusService) {
|
|
11388
11568
|
this.caseEdit = caseEdit;
|
|
11389
11569
|
this.route = route;
|
|
11390
11570
|
this.formValueService = formValueService;
|
|
@@ -11400,6 +11580,7 @@ class CaseEditPageComponent {
|
|
|
11400
11580
|
this.addressService = addressService;
|
|
11401
11581
|
this.linkedCasesService = linkedCasesService;
|
|
11402
11582
|
this.caseFlagStateService = caseFlagStateService;
|
|
11583
|
+
this.focusService = focusService;
|
|
11403
11584
|
this.multipageComponentStateService.setInstigator(this);
|
|
11404
11585
|
}
|
|
11405
11586
|
onFinalNext() {
|
|
@@ -11464,7 +11645,7 @@ class CaseEditPageComponent {
|
|
|
11464
11645
|
}
|
|
11465
11646
|
this.triggerText = this.getTriggerText();
|
|
11466
11647
|
});
|
|
11467
|
-
|
|
11648
|
+
this.focusService.focus();
|
|
11468
11649
|
this.caseEditFormSub = this.caseEditDataService.caseEditForm$.subscribe({
|
|
11469
11650
|
next: editForm => this.editForm = editForm
|
|
11470
11651
|
});
|
|
@@ -11525,10 +11706,10 @@ class CaseEditPageComponent {
|
|
|
11525
11706
|
if (this.getPageNumber() !== undefined) {
|
|
11526
11707
|
this.previousStep();
|
|
11527
11708
|
}
|
|
11528
|
-
|
|
11709
|
+
this.focusService.focus();
|
|
11529
11710
|
}
|
|
11530
11711
|
// Adding validation message to show it as Error Summary
|
|
11531
|
-
generateErrorMessage(fields, container, path) {
|
|
11712
|
+
generateErrorMessage(fields, container, path, sourceFromComplexField) {
|
|
11532
11713
|
const group = container || this.editForm.controls['data'];
|
|
11533
11714
|
let validErrorFieldFound = false;
|
|
11534
11715
|
let validationErrorAmount = this.validationErrors.length;
|
|
@@ -11545,7 +11726,7 @@ class CaseEditPageComponent {
|
|
|
11545
11726
|
if (fieldElement) {
|
|
11546
11727
|
const label = casefield.label || 'Field';
|
|
11547
11728
|
let id = casefield.id;
|
|
11548
|
-
if (fieldElement['component'] && fieldElement['component'].parent) {
|
|
11729
|
+
if (fieldElement['component'] && (fieldElement['component'].parent || sourceFromComplexField)) {
|
|
11549
11730
|
if (fieldElement['component'].idPrefix.indexOf(`_${id}_`) === -1) {
|
|
11550
11731
|
id = `${fieldElement['component'].idPrefix}${id}`;
|
|
11551
11732
|
}
|
|
@@ -11557,7 +11738,7 @@ class CaseEditPageComponent {
|
|
|
11557
11738
|
if (casefield.id === 'AddressLine1') {
|
|
11558
11739
|
// EUI-1067 - Display more relevant error message to user and correctly navigate to the field
|
|
11559
11740
|
this.addressService.setMandatoryError(true);
|
|
11560
|
-
this.caseEditDataService.addFormValidationError({ id
|
|
11741
|
+
this.caseEditDataService.addFormValidationError({ id, message: `An address is required` });
|
|
11561
11742
|
}
|
|
11562
11743
|
else {
|
|
11563
11744
|
this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is required`, label });
|
|
@@ -11583,7 +11764,7 @@ class CaseEditPageComponent {
|
|
|
11583
11764
|
}
|
|
11584
11765
|
else if (fieldElement.invalid) {
|
|
11585
11766
|
if (casefield.isComplex()) {
|
|
11586
|
-
errorPresent = this.generateErrorMessage(casefield.field_type.complex_fields, fieldElement, id);
|
|
11767
|
+
errorPresent = this.generateErrorMessage(casefield.field_type.complex_fields, fieldElement, id, true);
|
|
11587
11768
|
}
|
|
11588
11769
|
else if (casefield.isCollection() && casefield.field_type.collection_field_type.type === 'Complex') {
|
|
11589
11770
|
const fieldArray = fieldElement;
|
|
@@ -11692,6 +11873,7 @@ class CaseEditPageComponent {
|
|
|
11692
11873
|
}
|
|
11693
11874
|
this.clearValidationErrors();
|
|
11694
11875
|
this.checkForStagesCompleted();
|
|
11876
|
+
this.caseEditFormComponents?.forEach(component => component.syncConditionalShowStates());
|
|
11695
11877
|
if (this.currentPageIsNotValid()) {
|
|
11696
11878
|
// The generateErrorMessage method filters out the hidden fields.
|
|
11697
11879
|
// The error message for LinkedCases journey will never get displayed because the
|
|
@@ -11706,7 +11888,6 @@ class CaseEditPageComponent {
|
|
|
11706
11888
|
}
|
|
11707
11889
|
if (!this.caseEdit.isSubmitting && !this.currentPageIsNotValid()) {
|
|
11708
11890
|
this.addressService.setMandatoryError(false);
|
|
11709
|
-
console.log('Case Edit Error', this.caseEdit.error);
|
|
11710
11891
|
if (this.caseEdit.validPageList.findIndex(page => page.id === this.currentPage.id) === -1) {
|
|
11711
11892
|
this.caseEdit.validPageList.push(this.currentPage);
|
|
11712
11893
|
}
|
|
@@ -11735,7 +11916,7 @@ class CaseEditPageComponent {
|
|
|
11735
11916
|
// purposes)
|
|
11736
11917
|
this.removeAllJudicialUserFormControls(this.currentPage, this.editForm);
|
|
11737
11918
|
}
|
|
11738
|
-
|
|
11919
|
+
this.focusService.focus();
|
|
11739
11920
|
}
|
|
11740
11921
|
updateFormData(jsonData) {
|
|
11741
11922
|
for (const caseFieldId of Object.keys(jsonData.data)) {
|
|
@@ -11854,6 +12035,8 @@ class CaseEditPageComponent {
|
|
|
11854
12035
|
else {
|
|
11855
12036
|
this.caseEdit.cancelled.emit();
|
|
11856
12037
|
}
|
|
12038
|
+
// clear CaseView cache to allow any incidental changes to get picked up once the edit has cancelled
|
|
12039
|
+
this.caseEdit.caseNotifier.removeCachedCase();
|
|
11857
12040
|
this.clearValidationErrors();
|
|
11858
12041
|
this.multipageComponentStateService.reset();
|
|
11859
12042
|
}
|
|
@@ -11899,7 +12082,7 @@ class CaseEditPageComponent {
|
|
|
11899
12082
|
: CaseEditPageComponent.TRIGGER_TEXT_START;
|
|
11900
12083
|
return this.canNavigateToSummaryPage()
|
|
11901
12084
|
? textBasedOnCanSaveDraft
|
|
11902
|
-
: 'Submit';
|
|
12085
|
+
: this.eventTrigger.end_button_label || 'Submit';
|
|
11903
12086
|
}
|
|
11904
12087
|
discard() {
|
|
11905
12088
|
if (this.route.snapshot.queryParamMap.get(CaseEditComponent.ORIGIN_QUERY_PARAM) === 'viewDraft') {
|
|
@@ -11919,7 +12102,7 @@ class CaseEditPageComponent {
|
|
|
11919
12102
|
this.formErrorService
|
|
11920
12103
|
.mapFieldErrors(this.caseEdit.error.details.field_errors, this.editForm?.controls?.['data'], 'validation');
|
|
11921
12104
|
}
|
|
11922
|
-
|
|
12105
|
+
this.logger.error('Case edit page handled an error.', { error });
|
|
11923
12106
|
}
|
|
11924
12107
|
resetErrors() {
|
|
11925
12108
|
this.clearValidationErrors();
|
|
@@ -12027,8 +12210,13 @@ class CaseEditPageComponent {
|
|
|
12027
12210
|
}
|
|
12028
12211
|
});
|
|
12029
12212
|
}
|
|
12030
|
-
static ɵfac = function CaseEditPageComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseEditPageComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PageValidationService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(CaseEditDataService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(MultipageComponentStateService), i0.ɵɵdirectiveInject(AddressesService), i0.ɵɵdirectiveInject(LinkedCasesService), i0.ɵɵdirectiveInject(CaseFlagStateService)); };
|
|
12031
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditPageComponent, selectors: [["ccd-case-edit-page"]],
|
|
12213
|
+
static ɵfac = function CaseEditPageComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseEditPageComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PageValidationService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(CaseEditDataService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(MultipageComponentStateService), i0.ɵɵdirectiveInject(AddressesService), i0.ɵɵdirectiveInject(LinkedCasesService), i0.ɵɵdirectiveInject(CaseFlagStateService), i0.ɵɵdirectiveInject(FocusService)); };
|
|
12214
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditPageComponent, selectors: [["ccd-case-edit-page"]], viewQuery: function CaseEditPageComponent_Query(rf, ctx) { if (rf & 1) {
|
|
12215
|
+
i0.ɵɵviewQuery(CaseEditFormComponent, 5);
|
|
12216
|
+
} if (rf & 2) {
|
|
12217
|
+
let _t;
|
|
12218
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.caseEditFormComponents = _t);
|
|
12219
|
+
} }, standalone: false, decls: 12, vars: 11, consts: [["titleBlock", ""], ["idBlock", ""], [4, "ngIf"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], [3, "error"], [3, "callbackErrorsContext", "triggerTextContinue", "triggerTextIgnore", "callbackErrorsSubject"], [1, "width-50"], ["class", "form", 3, "formGroup", "submit", 4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], ["class", "govuk-heading-l", 4, "ngIf"], [1, "govuk-heading-l"], [1, "govuk-caption-l"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], ["class", "govuk-error-summary__body", 4, "ngFor", "ngForOf"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], ["tabindex", "0", 1, "validation-error", 3, "click", "keyup.enter"], [1, "form", 3, "submit", "formGroup"], ["id", "fieldset-case-data"], [2, "display", "none"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged", 4, "ngIf"], ["class", "grid-row", 4, "ngIf"], [1, "form-group", "form-group-related"], ["class", "button button-secondary", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["type", "button", 1, "govuk-js-link", 3, "click"], ["id", "caseEditForm", 3, "valuesChanged", "fields", "formGroup", "caseFields", "pageChangeSubject"], [1, "grid-row"], [1, "column-two-thirds", "rightBorderSeparator"], ["id", "caseEditForm1", 3, "fields", "formGroup", "caseFields"], [1, "column-one-third"], ["id", "caseEditForm2", 3, "fields", "formGroup", "caseFields"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], [3, "eventCanBeCompleted", "eventCompletionParams"]], template: function CaseEditPageComponent_Template(rf, ctx) { if (rf & 1) {
|
|
12032
12220
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
12033
12221
|
i0.ɵɵtemplate(0, CaseEditPageComponent_ng_container_0_Template, 3, 2, "ng-container", 2)(1, CaseEditPageComponent_div_1_Template, 1, 0, "div", 3)(2, CaseEditPageComponent_ng_template_2_Template, 3, 7, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(4, CaseEditPageComponent_ng_template_4_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(6, CaseEditPageComponent_div_6_Template, 5, 4, "div", 4);
|
|
12034
12222
|
i0.ɵɵelement(7, "ccd-case-edit-generic-errors", 5);
|
|
@@ -12060,8 +12248,11 @@ class CaseEditPageComponent {
|
|
|
12060
12248
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditPageComponent, [{
|
|
12061
12249
|
type: Component,
|
|
12062
12250
|
args: [{ selector: 'ccd-case-edit-page', standalone: false, template: "<ng-container *ngIf=\"currentPage\">\n <h1 *ngIf=\"!currentPage.label\" class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n <ng-container *ngIf=\"currentPage.label\">\n <span class=\"govuk-caption-l\">{{ eventTrigger.name | rpxTranslate}}</span>\n <h1 class=\"govuk-heading-l\">{{currentPage.label | rpxTranslate}}</h1>\n </ng-container>\n</ng-container>\n\n<!--Case ID or Title -->\n<div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n<ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: caseFields : editForm.controls['data'] | rpxTranslate\"></ccd-markdown>\n</ng-template>\n<ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n</ng-template>\n\n<!-- Error message summary -->\n<div *ngIf=\"validationErrors.length > 0\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"govuk-error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{'There is a problem' | rpxTranslate}}\n </h2>\n <div *ngFor=\"let validationError of validationErrors\" class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a (click)=\"navigateToErrorElement(validationError.id)\" (keyup.enter)=\"navigateToErrorElement(validationError.id)\" tabindex=\"0\" class=\"validation-error\">\n {{ validationError.message | rpxTranslate: getRpxTranslatePipeArgs(validationError.label | rpxTranslate): null }}\n </a>\n </li>\n </ul>\n </div>\n</div>\n\n<ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<div class=\"width-50\">\n <form *ngIf=\"currentPage\" class=\"form\" [formGroup]=\"editForm\" (submit)=\"nextStep()\">\n <fieldset id=\"fieldset-case-data\">\n <legend style=\"display: none;\"></legend>\n <!-- single column -->\n <ccd-case-edit-form id='caseEditForm' *ngIf=\"!currentPage.isMultiColumn()\" [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"\n [pageChangeSubject]=\"pageChangeSubject\"\n (valuesChanged)=\"applyValuesChanged($event)\"></ccd-case-edit-form>\n <!-- two columns -->\n <div *ngIf=\"currentPage.isMultiColumn()\" class=\"grid-row\">\n <div class=\"column-two-thirds rightBorderSeparator\">\n <ccd-case-edit-form id='caseEditForm1' [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n <div class=\"column-one-third\">\n <ccd-case-edit-form id='caseEditForm2' [fields]=\"currentPage.getCol2Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n </div>\n </fieldset>\n\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"toPreviousPage()\" *ngIf=\"!isAtStart()\" [disabled]=\"isDisabled()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button class=\"button\" type=\"submit\" [disabled]=\"submitting()\">{{triggerText | rpxTranslate}}</button>\n </div>\n\n <p class=\"cancel\"><button type=\"button\" (click)=\"cancel()\" class=\"govuk-js-link\">{{getCancelText() | rpxTranslate}}</button></p>\n </form>\n</div>\n\n<ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n</ccd-case-event-completion>\n", styles: [".rightBorderSeparator{border-right-width:4px;border-right-color:#ffcc02;border-right-style:solid}.validation-error{cursor:pointer;text-decoration:underline;color:#d4351c}\n"] }]
|
|
12063
|
-
}], () => [{ type: CaseEditComponent }, { type: i1$1.ActivatedRoute }, { type: FormValueService }, { type: FormErrorService }, { type: i0.ChangeDetectorRef }, { type: PageValidationService }, { type: i1$3.MatLegacyDialog }, { type: CaseFieldService }, { type: CaseEditDataService }, { type: LoadingService }, { type: ValidPageListCaseFieldsService }, { type: MultipageComponentStateService }, { type: AddressesService }, { type: LinkedCasesService }, { type: CaseFlagStateService }],
|
|
12064
|
-
|
|
12251
|
+
}], () => [{ type: CaseEditComponent }, { type: i1$1.ActivatedRoute }, { type: FormValueService }, { type: FormErrorService }, { type: i0.ChangeDetectorRef }, { type: PageValidationService }, { type: i1$3.MatLegacyDialog }, { type: CaseFieldService }, { type: CaseEditDataService }, { type: LoadingService }, { type: ValidPageListCaseFieldsService }, { type: MultipageComponentStateService }, { type: AddressesService }, { type: LinkedCasesService }, { type: CaseFlagStateService }, { type: FocusService }], { caseEditFormComponents: [{
|
|
12252
|
+
type: ViewChildren,
|
|
12253
|
+
args: [CaseEditFormComponent]
|
|
12254
|
+
}] }); })();
|
|
12255
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditPageComponent, { className: "CaseEditPageComponent", filePath: "lib/shared/components/case-editor/case-edit-page/case-edit-page.component.ts", lineNumber: 37 }); })();
|
|
12065
12256
|
|
|
12066
12257
|
class CallbackErrorsContext {
|
|
12067
12258
|
triggerText;
|
|
@@ -13026,6 +13217,7 @@ function WriteAddressFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
13026
13217
|
} }
|
|
13027
13218
|
class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
|
|
13028
13219
|
isCompoundPipe;
|
|
13220
|
+
logger = new StructuredLoggerService();
|
|
13029
13221
|
writeComplexFieldComponent;
|
|
13030
13222
|
focusElementDirectives;
|
|
13031
13223
|
static REQUIRED_ERROR_MESSAGE = 'Enter a Postcode';
|
|
@@ -13078,7 +13270,7 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
|
|
|
13078
13270
|
});
|
|
13079
13271
|
}, (error) => {
|
|
13080
13272
|
this.loadingAddresses = false;
|
|
13081
|
-
|
|
13273
|
+
this.logger.error('An error occurred retrieving addresses for postcode.', { error });
|
|
13082
13274
|
});
|
|
13083
13275
|
this.addressList.setValue(undefined);
|
|
13084
13276
|
this.refocusElement();
|
|
@@ -13178,7 +13370,7 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
|
|
|
13178
13370
|
type: ViewChildren,
|
|
13179
13371
|
args: [FocusElementDirective]
|
|
13180
13372
|
}] }); })();
|
|
13181
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteAddressFieldComponent, { className: "WriteAddressFieldComponent", filePath: "lib/shared/components/palette/address/write-address-field.component.ts", lineNumber:
|
|
13373
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteAddressFieldComponent, { className: "WriteAddressFieldComponent", filePath: "lib/shared/components/palette/address/write-address-field.component.ts", lineNumber: 19 }); })();
|
|
13182
13374
|
|
|
13183
13375
|
var PaletteContext;
|
|
13184
13376
|
(function (PaletteContext) {
|
|
@@ -15169,6 +15361,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15169
15361
|
scrollToService;
|
|
15170
15362
|
profileNotifier;
|
|
15171
15363
|
cdRef;
|
|
15364
|
+
logger = new StructuredLoggerService();
|
|
15172
15365
|
caseFields = [];
|
|
15173
15366
|
formArray;
|
|
15174
15367
|
profile;
|
|
@@ -15316,7 +15509,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15316
15509
|
duration: 1000,
|
|
15317
15510
|
offset: -150,
|
|
15318
15511
|
})
|
|
15319
|
-
.subscribe(() => { },
|
|
15512
|
+
.subscribe(() => { }, error => this.logger.error('Error while scrolling collection item into view.', { error }));
|
|
15320
15513
|
}
|
|
15321
15514
|
this.focusLastItem();
|
|
15322
15515
|
}
|
|
@@ -15355,9 +15548,20 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15355
15548
|
}
|
|
15356
15549
|
}
|
|
15357
15550
|
focusLastItem() {
|
|
15358
|
-
const
|
|
15359
|
-
if (
|
|
15360
|
-
|
|
15551
|
+
const root = this.items.last?.nativeElement;
|
|
15552
|
+
if (!root) {
|
|
15553
|
+
return;
|
|
15554
|
+
}
|
|
15555
|
+
const controls = Array.from(root.querySelectorAll('.form-control'));
|
|
15556
|
+
const focusTarget = controls.find(control => {
|
|
15557
|
+
if (!(control instanceof HTMLInputElement)) {
|
|
15558
|
+
return true;
|
|
15559
|
+
}
|
|
15560
|
+
const type = (control.type || '').toLowerCase();
|
|
15561
|
+
return type !== 'radio';
|
|
15562
|
+
});
|
|
15563
|
+
if (focusTarget) {
|
|
15564
|
+
focusTarget.focus();
|
|
15361
15565
|
}
|
|
15362
15566
|
}
|
|
15363
15567
|
removeItem(index) {
|
|
@@ -15513,7 +15717,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15513
15717
|
type: ViewChildren,
|
|
15514
15718
|
args: ['collectionItem']
|
|
15515
15719
|
}] }); })();
|
|
15516
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteCollectionFieldComponent, { className: "WriteCollectionFieldComponent", filePath: "lib/shared/components/palette/collection/write-collection-field.component.ts", lineNumber:
|
|
15720
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteCollectionFieldComponent, { className: "WriteCollectionFieldComponent", filePath: "lib/shared/components/palette/collection/write-collection-field.component.ts", lineNumber: 34 }); })();
|
|
15517
15721
|
|
|
15518
15722
|
function ReadComplexFieldComponent_ccd_read_complex_field_raw_1_Template(rf, ctx) { if (rf & 1) {
|
|
15519
15723
|
i0.ɵɵelement(0, "ccd-read-complex-field-raw", 4);
|
|
@@ -15885,8 +16089,6 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
|
|
|
15885
16089
|
this.jurisdictionId = parts[parts.indexOf('case-create') + 1];
|
|
15886
16090
|
this.caseTypeId = parts[parts.indexOf('case-create') + 2];
|
|
15887
16091
|
this.caseId = null;
|
|
15888
|
-
console.log(this.jurisdictionId);
|
|
15889
|
-
console.log(this.caseTypeId);
|
|
15890
16092
|
}
|
|
15891
16093
|
// use the documentManagement service to check if the document upload should use CDAM
|
|
15892
16094
|
if (this.documentManagement.isDocumentSecureModeEnabled()) {
|
|
@@ -19976,12 +20178,18 @@ class MoneyGbpInputComponent {
|
|
|
19976
20178
|
writeValue(obj) {
|
|
19977
20179
|
if (obj) {
|
|
19978
20180
|
this.rawValue = obj;
|
|
19979
|
-
|
|
19980
|
-
|
|
19981
|
-
|
|
19982
|
-
|
|
20181
|
+
// If already contains decimal, use it directly
|
|
20182
|
+
if (obj.includes('.')) {
|
|
20183
|
+
this.displayValue = obj;
|
|
20184
|
+
}
|
|
20185
|
+
else {
|
|
20186
|
+
const integerPart = obj.slice(0, -2) || '0';
|
|
20187
|
+
let decimalPart = obj.slice(-2);
|
|
20188
|
+
while (2 > decimalPart.length) {
|
|
20189
|
+
decimalPart += '0';
|
|
20190
|
+
}
|
|
20191
|
+
this.displayValue = [integerPart, decimalPart].join('.');
|
|
19983
20192
|
}
|
|
19984
|
-
this.displayValue = [integerPart, decimalPart].join('.');
|
|
19985
20193
|
}
|
|
19986
20194
|
}
|
|
19987
20195
|
registerOnChange(fn) {
|
|
@@ -21663,6 +21871,7 @@ const CIVIL_JURISDICTION = 'CIVIL';
|
|
|
21663
21871
|
class QueryManagementService {
|
|
21664
21872
|
router;
|
|
21665
21873
|
sessionStorageService;
|
|
21874
|
+
logger = new StructuredLoggerService();
|
|
21666
21875
|
caseQueriesCollections;
|
|
21667
21876
|
fieldId;
|
|
21668
21877
|
constructor(router, sessionStorageService) {
|
|
@@ -21682,7 +21891,7 @@ class QueryManagementService {
|
|
|
21682
21891
|
currentUserDetails = safeJsonParse(this.sessionStorageService.getItem(USER_DETAILS), {});
|
|
21683
21892
|
}
|
|
21684
21893
|
catch (e) {
|
|
21685
|
-
|
|
21894
|
+
this.logger.error('Could not parse USER_DETAILS from session storage.', { error: e });
|
|
21686
21895
|
currentUserDetails = {};
|
|
21687
21896
|
}
|
|
21688
21897
|
const isHmctsStaff = (this.isJudiciaryUser() || this.isInternalUser()) ? 'Yes' : 'No';
|
|
@@ -21692,7 +21901,7 @@ class QueryManagementService {
|
|
|
21692
21901
|
const isNewQuery = queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query
|
|
21693
21902
|
// Check if the field ID has been set dynamically
|
|
21694
21903
|
if (!this.fieldId) {
|
|
21695
|
-
|
|
21904
|
+
this.logger.error('Field ID for CaseQueriesCollection not found. Cannot proceed with data generation.');
|
|
21696
21905
|
this.router.navigate(['/', 'service-down']);
|
|
21697
21906
|
throw new Error('Field ID for CaseQueriesCollection not found. Aborting query data generation.');
|
|
21698
21907
|
}
|
|
@@ -21752,7 +21961,7 @@ class QueryManagementService {
|
|
|
21752
21961
|
setCaseQueriesCollectionData(eventData, queryCreateContext, caseDetails, messageId) {
|
|
21753
21962
|
const resolvedFieldId = this.resolveFieldId(eventData, queryCreateContext, caseDetails, messageId);
|
|
21754
21963
|
if (!resolvedFieldId) {
|
|
21755
|
-
|
|
21964
|
+
this.logger.error('Failed to resolve fieldId for CaseQueriesCollection. Cannot proceed.');
|
|
21756
21965
|
return;
|
|
21757
21966
|
}
|
|
21758
21967
|
this.fieldId = resolvedFieldId;
|
|
@@ -21772,7 +21981,7 @@ class QueryManagementService {
|
|
|
21772
21981
|
field.field_type.type === FIELD_TYPE_COMPLEX &&
|
|
21773
21982
|
field.display_context !== DISPLAY_CONTEXT_READONLY);
|
|
21774
21983
|
if (!candidateFields?.length) {
|
|
21775
|
-
|
|
21984
|
+
this.logger.warn('No editable CaseQueriesCollection fields found.');
|
|
21776
21985
|
return null;
|
|
21777
21986
|
}
|
|
21778
21987
|
const numberOfCollections = candidateFields.length;
|
|
@@ -21799,12 +22008,12 @@ class QueryManagementService {
|
|
|
21799
22008
|
}
|
|
21800
22009
|
}
|
|
21801
22010
|
else {
|
|
21802
|
-
|
|
22011
|
+
this.logger.error('Multiple CaseQueriesCollections are not supported yet for this jurisdiction.', { jurisdictionId });
|
|
21803
22012
|
return null;
|
|
21804
22013
|
}
|
|
21805
22014
|
}
|
|
21806
22015
|
// Step 4: Fallback — if none of the above succeeded
|
|
21807
|
-
|
|
22016
|
+
this.logger.warn('Could not determine fieldId for context.', { queryCreateContext });
|
|
21808
22017
|
return null;
|
|
21809
22018
|
}
|
|
21810
22019
|
getCaseQueriesCollectionFieldOrderFromWizardPages(eventData) {
|
|
@@ -22416,6 +22625,7 @@ class QueryCheckYourAnswersComponent {
|
|
|
22416
22625
|
queryManagementService;
|
|
22417
22626
|
errorNotifierService;
|
|
22418
22627
|
alertService;
|
|
22628
|
+
logger = new StructuredLoggerService();
|
|
22419
22629
|
RAISE_A_QUERY_EVENT_TRIGGER_ID = 'queryManagementRaiseQuery';
|
|
22420
22630
|
RESPOND_TO_QUERY_EVENT_TRIGGER_ID = 'queryManagementRespondQuery';
|
|
22421
22631
|
CASE_QUERIES_COLLECTION_ID = 'CaseQueriesCollection';
|
|
@@ -22503,7 +22713,7 @@ class QueryCheckYourAnswersComponent {
|
|
|
22503
22713
|
if (error.status !== 401 && error.status !== 403) {
|
|
22504
22714
|
this.errorNotifierService.announceError(error);
|
|
22505
22715
|
this.alertService.error({ phrase: error.message });
|
|
22506
|
-
|
|
22716
|
+
this.logger.error('Error occurred while fetching event data.', { error });
|
|
22507
22717
|
this.callbackErrorsSubject.next(error);
|
|
22508
22718
|
}
|
|
22509
22719
|
else {
|
|
@@ -22556,7 +22766,7 @@ class QueryCheckYourAnswersComponent {
|
|
|
22556
22766
|
});
|
|
22557
22767
|
}
|
|
22558
22768
|
else {
|
|
22559
|
-
|
|
22769
|
+
this.logger.error('No task to complete was found.');
|
|
22560
22770
|
this.errorMessages = [
|
|
22561
22771
|
{
|
|
22562
22772
|
title: 'Error',
|
|
@@ -22600,7 +22810,7 @@ class QueryCheckYourAnswersComponent {
|
|
|
22600
22810
|
this.isSubmitting = false;
|
|
22601
22811
|
}
|
|
22602
22812
|
handleError(error) {
|
|
22603
|
-
|
|
22813
|
+
this.logger.error('Error in query management API calls.', { error });
|
|
22604
22814
|
this.isSubmitting = false;
|
|
22605
22815
|
if (this.isServiceErrorFound(error)) {
|
|
22606
22816
|
this.error = null;
|
|
@@ -22628,7 +22838,7 @@ class QueryCheckYourAnswersComponent {
|
|
|
22628
22838
|
}
|
|
22629
22839
|
setCaseQueriesCollectionData() {
|
|
22630
22840
|
if (!this.eventData) {
|
|
22631
|
-
|
|
22841
|
+
this.logger.warn('Event data not available; skipping collection setup.');
|
|
22632
22842
|
}
|
|
22633
22843
|
this.queryManagementService.setCaseQueriesCollectionData(this.eventData, this.queryCreateContext, this.caseDetails, this.messageId);
|
|
22634
22844
|
}
|
|
@@ -22663,7 +22873,7 @@ class QueryCheckYourAnswersComponent {
|
|
|
22663
22873
|
}], createEventResponse: [{
|
|
22664
22874
|
type: Output
|
|
22665
22875
|
}] }); })();
|
|
22666
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryCheckYourAnswersComponent, { className: "QueryCheckYourAnswersComponent", filePath: "lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.ts", lineNumber:
|
|
22876
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryCheckYourAnswersComponent, { className: "QueryCheckYourAnswersComponent", filePath: "lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.ts", lineNumber: 33 }); })();
|
|
22667
22877
|
|
|
22668
22878
|
function QueryDetailsComponent_ng_container_0_p_1_Template(rf, ctx) { if (rf & 1) {
|
|
22669
22879
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -23724,6 +23934,7 @@ function QueryWriteRaiseQueryComponent_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
|
23724
23934
|
class QueryWriteRaiseQueryComponent {
|
|
23725
23935
|
queryManagementService;
|
|
23726
23936
|
route;
|
|
23937
|
+
logger = new StructuredLoggerService();
|
|
23727
23938
|
formGroup;
|
|
23728
23939
|
submitted;
|
|
23729
23940
|
caseDetails;
|
|
@@ -23771,7 +23982,7 @@ class QueryWriteRaiseQueryComponent {
|
|
|
23771
23982
|
}
|
|
23772
23983
|
setCaseQueriesCollectionData() {
|
|
23773
23984
|
if (!this.eventData) {
|
|
23774
|
-
|
|
23985
|
+
this.logger.warn('Event data not available; skipping collection setup.');
|
|
23775
23986
|
return false;
|
|
23776
23987
|
}
|
|
23777
23988
|
this.queryManagementService.setCaseQueriesCollectionData(this.eventData, this.queryCreateContext, this.caseDetails, this.messageId);
|
|
@@ -23833,7 +24044,7 @@ class QueryWriteRaiseQueryComponent {
|
|
|
23833
24044
|
}], queryDataCreated: [{
|
|
23834
24045
|
type: Output
|
|
23835
24046
|
}] }); })();
|
|
23836
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryWriteRaiseQueryComponent, { className: "QueryWriteRaiseQueryComponent", filePath: "lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.ts", lineNumber:
|
|
24047
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryWriteRaiseQueryComponent, { className: "QueryWriteRaiseQueryComponent", filePath: "lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.ts", lineNumber: 21 }); })();
|
|
23837
24048
|
|
|
23838
24049
|
function QueryWriteRespondToQueryComponent_ccd_query_case_details_header_9_Template(rf, ctx) { if (rf & 1) {
|
|
23839
24050
|
i0.ɵɵelement(0, "ccd-query-case-details-header", 8);
|
|
@@ -23916,6 +24127,7 @@ class QueryWriteRespondToQueryComponent {
|
|
|
23916
24127
|
caseNotifier;
|
|
23917
24128
|
route;
|
|
23918
24129
|
queryManagementService;
|
|
24130
|
+
logger = new StructuredLoggerService();
|
|
23919
24131
|
queryItem;
|
|
23920
24132
|
formGroup;
|
|
23921
24133
|
queryCreateContext;
|
|
@@ -23950,7 +24162,7 @@ class QueryWriteRespondToQueryComponent {
|
|
|
23950
24162
|
this.caseDetails = caseDetails;
|
|
23951
24163
|
},
|
|
23952
24164
|
error: (err) => {
|
|
23953
|
-
|
|
24165
|
+
this.logger.error('Error retrieving case details.', { error: err });
|
|
23954
24166
|
}
|
|
23955
24167
|
});
|
|
23956
24168
|
}
|
|
@@ -23960,19 +24172,19 @@ class QueryWriteRespondToQueryComponent {
|
|
|
23960
24172
|
return;
|
|
23961
24173
|
}
|
|
23962
24174
|
if (!this.caseQueriesCollections[0]) {
|
|
23963
|
-
|
|
24175
|
+
this.logger.error('Case queries collection is undefined.');
|
|
23964
24176
|
return;
|
|
23965
24177
|
}
|
|
23966
24178
|
this.messageId = this.route.snapshot.params?.dataid;
|
|
23967
24179
|
if (!this.messageId) {
|
|
23968
|
-
|
|
24180
|
+
this.logger.warn('No messageId found in route params.', { routeParams: this.route.snapshot.params });
|
|
23969
24181
|
return;
|
|
23970
24182
|
}
|
|
23971
24183
|
const allMessages = this.caseQueriesCollections
|
|
23972
24184
|
.flatMap((caseData) => caseData?.caseMessages || []);
|
|
23973
24185
|
const matchingMessage = allMessages.find((message) => message?.value?.id === this.messageId)?.value;
|
|
23974
24186
|
if (!matchingMessage) {
|
|
23975
|
-
|
|
24187
|
+
this.logger.warn('No matching message found for ID.', { messageId: this.messageId });
|
|
23976
24188
|
return;
|
|
23977
24189
|
}
|
|
23978
24190
|
const caseQueriesCollections = this.caseQueriesCollections.find((collection) => collection?.caseMessages.find((c) => c.value.id === this.messageId));
|
|
@@ -23996,7 +24208,7 @@ class QueryWriteRespondToQueryComponent {
|
|
|
23996
24208
|
}
|
|
23997
24209
|
setCaseQueriesCollectionData() {
|
|
23998
24210
|
if (!this.eventData) {
|
|
23999
|
-
|
|
24211
|
+
this.logger.warn('Event data not available; skipping collection setup.');
|
|
24000
24212
|
return false;
|
|
24001
24213
|
}
|
|
24002
24214
|
this.queryManagementService.setCaseQueriesCollectionData(this.eventData, this.queryCreateContext, this.caseDetails, this.messageId);
|
|
@@ -24061,7 +24273,7 @@ class QueryWriteRespondToQueryComponent {
|
|
|
24061
24273
|
}], hasRespondedToQueryTask: [{
|
|
24062
24274
|
type: Output
|
|
24063
24275
|
}] }); })();
|
|
24064
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryWriteRespondToQueryComponent, { className: "QueryWriteRespondToQueryComponent", filePath: "lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.ts", lineNumber:
|
|
24276
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryWriteRespondToQueryComponent, { className: "QueryWriteRespondToQueryComponent", filePath: "lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.ts", lineNumber: 20 }); })();
|
|
24065
24277
|
|
|
24066
24278
|
function QueryConfirmationComponent_main_0_ng_container_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
24067
24279
|
i0.ɵɵelementStart(0, "h1", 8);
|
|
@@ -24211,6 +24423,7 @@ function QueryConfirmationComponent_main_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
24211
24423
|
class QueryConfirmationComponent {
|
|
24212
24424
|
route;
|
|
24213
24425
|
sessionStorageService;
|
|
24426
|
+
logger = new StructuredLoggerService();
|
|
24214
24427
|
queryCreateContext;
|
|
24215
24428
|
callbackConfirmationMessageText = {};
|
|
24216
24429
|
eventResponseData;
|
|
@@ -24241,7 +24454,7 @@ class QueryConfirmationComponent {
|
|
|
24241
24454
|
resolveHmctsStaffRaisedQuery() {
|
|
24242
24455
|
const messageId = this.route.snapshot.params.dataid;
|
|
24243
24456
|
if (!this.eventResponseData) {
|
|
24244
|
-
|
|
24457
|
+
this.logger.warn('No event response data available.');
|
|
24245
24458
|
return;
|
|
24246
24459
|
}
|
|
24247
24460
|
this.queryListData = new QueryListData(this.eventResponseData);
|
|
@@ -24255,7 +24468,7 @@ class QueryConfirmationComponent {
|
|
|
24255
24468
|
?.flatMap((p) => p.children || [])
|
|
24256
24469
|
.find((c) => c.parentId === messageId);
|
|
24257
24470
|
if (!child) {
|
|
24258
|
-
|
|
24471
|
+
this.logger.warn('No matching child found for messageId.', { messageId });
|
|
24259
24472
|
return;
|
|
24260
24473
|
}
|
|
24261
24474
|
const parentItem = this.queryListData?.queries
|
|
@@ -33374,7 +33587,8 @@ class CaseEditorModule {
|
|
|
33374
33587
|
EventCompletionStateMachineService,
|
|
33375
33588
|
CaseFlagStateService,
|
|
33376
33589
|
ValidPageListCaseFieldsService,
|
|
33377
|
-
MultipageComponentStateService
|
|
33590
|
+
MultipageComponentStateService,
|
|
33591
|
+
FocusService
|
|
33378
33592
|
], imports: [CommonModule,
|
|
33379
33593
|
RouterModule,
|
|
33380
33594
|
FormsModule,
|
|
@@ -33457,7 +33671,8 @@ class CaseEditorModule {
|
|
|
33457
33671
|
EventCompletionStateMachineService,
|
|
33458
33672
|
CaseFlagStateService,
|
|
33459
33673
|
ValidPageListCaseFieldsService,
|
|
33460
|
-
MultipageComponentStateService
|
|
33674
|
+
MultipageComponentStateService,
|
|
33675
|
+
FocusService
|
|
33461
33676
|
]
|
|
33462
33677
|
}]
|
|
33463
33678
|
}], null, null); })();
|
|
@@ -34379,6 +34594,7 @@ class WorkbasketFiltersComponent {
|
|
|
34379
34594
|
static PARAM_JURISDICTION = 'jurisdiction';
|
|
34380
34595
|
static PARAM_CASE_TYPE = 'case-type';
|
|
34381
34596
|
static PARAM_CASE_STATE = 'case-state';
|
|
34597
|
+
logger = new StructuredLoggerService();
|
|
34382
34598
|
caseFields;
|
|
34383
34599
|
jurisdictions;
|
|
34384
34600
|
defaults;
|
|
@@ -34507,6 +34723,7 @@ class WorkbasketFiltersComponent {
|
|
|
34507
34723
|
}
|
|
34508
34724
|
}
|
|
34509
34725
|
onJurisdictionIdChange() {
|
|
34726
|
+
this.clearStoredWorkbasketFilterValues();
|
|
34510
34727
|
if (this.selected.jurisdiction) {
|
|
34511
34728
|
this.jurisdictionService.announceSelectedJurisdiction(this.selected.jurisdiction);
|
|
34512
34729
|
this.selectedJurisdictionCaseTypes = this.selected.jurisdiction.caseTypes.length > 0
|
|
@@ -34521,7 +34738,7 @@ class WorkbasketFiltersComponent {
|
|
|
34521
34738
|
this.selected.caseState = null;
|
|
34522
34739
|
this.clearWorkbasketInputs();
|
|
34523
34740
|
if (!this.isApplyButtonDisabled()) {
|
|
34524
|
-
this.onCaseTypeIdChange();
|
|
34741
|
+
this.onCaseTypeIdChange(false);
|
|
34525
34742
|
}
|
|
34526
34743
|
}
|
|
34527
34744
|
else {
|
|
@@ -34529,7 +34746,10 @@ class WorkbasketFiltersComponent {
|
|
|
34529
34746
|
this.resetCaseState();
|
|
34530
34747
|
}
|
|
34531
34748
|
}
|
|
34532
|
-
onCaseTypeIdChange() {
|
|
34749
|
+
onCaseTypeIdChange(clearStoredValues = true) {
|
|
34750
|
+
if (clearStoredValues) {
|
|
34751
|
+
this.clearStoredWorkbasketFilterValues();
|
|
34752
|
+
}
|
|
34533
34753
|
if (this.selected.caseType) {
|
|
34534
34754
|
this.selectedCaseTypeStates = this.sortStates(this.selected.caseType.states);
|
|
34535
34755
|
this.selected.caseState = null;
|
|
@@ -34552,9 +34772,7 @@ class WorkbasketFiltersComponent {
|
|
|
34552
34772
|
}
|
|
34553
34773
|
});
|
|
34554
34774
|
this.getCaseFields();
|
|
34555
|
-
}, error => {
|
|
34556
|
-
console.log('Workbasket input fields request will be discarded reason: ', error.message);
|
|
34557
|
-
});
|
|
34775
|
+
}, error => this.logger.error('Workbasket input fields request will be discarded.', { error }));
|
|
34558
34776
|
}
|
|
34559
34777
|
}
|
|
34560
34778
|
else {
|
|
@@ -34625,7 +34843,7 @@ class WorkbasketFiltersComponent {
|
|
|
34625
34843
|
this.selectedJurisdictionCaseTypes = this.selected.jurisdiction.caseTypes;
|
|
34626
34844
|
this.selected.caseType = this.selectCaseType(this.selected, this.selectedJurisdictionCaseTypes, routeSnapshot);
|
|
34627
34845
|
if (this.selected.caseType) {
|
|
34628
|
-
this.onCaseTypeIdChange();
|
|
34846
|
+
this.onCaseTypeIdChange(false);
|
|
34629
34847
|
this.selected.caseState = this.selectCaseState(this.selected.caseType, routeSnapshot);
|
|
34630
34848
|
}
|
|
34631
34849
|
this.workbasketDefaults = true;
|
|
@@ -34672,6 +34890,9 @@ class WorkbasketFiltersComponent {
|
|
|
34672
34890
|
this.workbasketInputsReady = false;
|
|
34673
34891
|
this.workbasketInputs = [];
|
|
34674
34892
|
}
|
|
34893
|
+
clearStoredWorkbasketFilterValues() {
|
|
34894
|
+
this.windowService.removeLocalStorage(FORM_GROUP_VAL_LOC_STORAGE);
|
|
34895
|
+
}
|
|
34675
34896
|
resetCaseState() {
|
|
34676
34897
|
this.defaults.state_id = null;
|
|
34677
34898
|
this.selected.caseState = null;
|
|
@@ -34814,7 +35035,7 @@ class WorkbasketFiltersComponent {
|
|
|
34814
35035
|
}], onReset: [{
|
|
34815
35036
|
type: Output
|
|
34816
35037
|
}] }); })();
|
|
34817
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WorkbasketFiltersComponent, { className: "WorkbasketFiltersComponent", filePath: "lib/shared/components/workbasket-filters/workbasket-filters.component.ts", lineNumber:
|
|
35038
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WorkbasketFiltersComponent, { className: "WorkbasketFiltersComponent", filePath: "lib/shared/components/workbasket-filters/workbasket-filters.component.ts", lineNumber: 28 }); })();
|
|
34818
35039
|
|
|
34819
35040
|
class WorkbasketFiltersModule {
|
|
34820
35041
|
static ɵfac = function WorkbasketFiltersModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || WorkbasketFiltersModule)(); };
|
|
@@ -35204,6 +35425,7 @@ class CaseHistoryComponent {
|
|
|
35204
35425
|
orderService;
|
|
35205
35426
|
caseNotifier;
|
|
35206
35427
|
caseHistoryService;
|
|
35428
|
+
logger = new StructuredLoggerService();
|
|
35207
35429
|
static PARAM_EVENT_ID = 'eid';
|
|
35208
35430
|
static ERROR_MESSAGE = 'No case history to show';
|
|
35209
35431
|
event;
|
|
@@ -35236,7 +35458,7 @@ class CaseHistoryComponent {
|
|
|
35236
35458
|
this.tabs = this.orderService.sort(this.caseHistory.tabs);
|
|
35237
35459
|
this.tabs = this.sortTabFieldsAndFilterTabs(this.tabs);
|
|
35238
35460
|
}), catchError(error => {
|
|
35239
|
-
|
|
35461
|
+
this.logger.error('Error while getting case history.', { error });
|
|
35240
35462
|
if (error.status !== 401 && error.status !== 403) {
|
|
35241
35463
|
this.alertService.error(error.message);
|
|
35242
35464
|
}
|
|
@@ -35270,7 +35492,7 @@ class CaseHistoryComponent {
|
|
|
35270
35492
|
}], () => [{ type: i1$1.ActivatedRoute }, { type: AlertService }, { type: OrderService }, { type: CaseNotifier }, { type: CaseHistoryService }], { event: [{
|
|
35271
35493
|
type: Input
|
|
35272
35494
|
}] }); })();
|
|
35273
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseHistoryComponent, { className: "CaseHistoryComponent", filePath: "lib/shared/components/case-history/case-history.component.ts", lineNumber:
|
|
35495
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseHistoryComponent, { className: "CaseHistoryComponent", filePath: "lib/shared/components/case-history/case-history.component.ts", lineNumber: 22 }); })();
|
|
35274
35496
|
|
|
35275
35497
|
class CaseHistoryModule {
|
|
35276
35498
|
static ɵfac = function CaseHistoryModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseHistoryModule)(); };
|
|
@@ -35494,11 +35716,9 @@ class CaseResolver {
|
|
|
35494
35716
|
const currentUrl = this.router.url ?? '';
|
|
35495
35717
|
// Prevent resolving if eventId=queryManagementRespondQuery is in the URL
|
|
35496
35718
|
if (currentUrl.includes(CaseResolver.EVENT_ID_QM_RESPOND_TO_QUERY)) {
|
|
35497
|
-
console.info('Skipping resolve for event queryManagementRespondQuery.');
|
|
35498
35719
|
this.goToDefaultPage();
|
|
35499
35720
|
}
|
|
35500
35721
|
if (!cid) {
|
|
35501
|
-
console.info('No case ID available in the route. Will navigate to case list.');
|
|
35502
35722
|
// when redirected to case view after a case created, and the user has no READ access,
|
|
35503
35723
|
// the post returns no id
|
|
35504
35724
|
this.navigateToCaseList();
|
|
@@ -35555,8 +35775,6 @@ class CaseResolver {
|
|
|
35555
35775
|
}), catchError(error => this.processErrorInCaseFetch(error, cid))).toPromise();
|
|
35556
35776
|
}
|
|
35557
35777
|
processErrorInCaseFetch(error, caseReference) {
|
|
35558
|
-
console.error('!!! processErrorInCaseFetch !!!');
|
|
35559
|
-
console.error(error);
|
|
35560
35778
|
// TODO Should be logged to remote logging infrastructure
|
|
35561
35779
|
if (error.status === 400) {
|
|
35562
35780
|
this.router.navigate(['/search/noresults']);
|
|
@@ -35584,7 +35802,6 @@ class CaseResolver {
|
|
|
35584
35802
|
}
|
|
35585
35803
|
// as discussed for EUI-5456, need functionality to go to default page
|
|
35586
35804
|
goToDefaultPage() {
|
|
35587
|
-
console.info('Going to default page!');
|
|
35588
35805
|
const userDetails = safeJsonParse(this.sessionStorage.getItem(USER_DETAILS));
|
|
35589
35806
|
userDetails && userDetails.roles
|
|
35590
35807
|
&& !userDetails.roles.includes(PUI_CASE_MANAGER)
|
|
@@ -35782,7 +35999,6 @@ class CaseEventTriggerComponent {
|
|
|
35782
35999
|
if (this.activityPollingService.isEnabled) {
|
|
35783
36000
|
this.ngZone.runOutsideAngular(() => {
|
|
35784
36001
|
this.activitySubscription = this.postEditActivity().subscribe(() => {
|
|
35785
|
-
// console.log('Posted EDIT activity and result is: ' + JSON.stringify(_resolved));
|
|
35786
36002
|
});
|
|
35787
36003
|
});
|
|
35788
36004
|
}
|
|
@@ -35953,8 +36169,6 @@ class CaseViewComponent {
|
|
|
35953
36169
|
}
|
|
35954
36170
|
checkErrorGettingCaseView(error) {
|
|
35955
36171
|
// TODO Should be logged to remote logging infrastructure
|
|
35956
|
-
console.error('Called checkErrorGettingCaseView.');
|
|
35957
|
-
console.error(error);
|
|
35958
36172
|
if (error.status !== 401 && error.status !== 403) {
|
|
35959
36173
|
this.alertService.error(error.message);
|
|
35960
36174
|
}
|
|
@@ -37306,7 +37520,6 @@ class CaseViewerComponent {
|
|
|
37306
37520
|
}
|
|
37307
37521
|
else {
|
|
37308
37522
|
this.caseSubscription = this.caseNotifier.caseView.subscribe((caseDetails) => {
|
|
37309
|
-
console.info('Setting the case into case viewer component as retrieved from XHR request.');
|
|
37310
37523
|
this.caseDetails = caseDetails;
|
|
37311
37524
|
this.setUserAccessType(this.caseDetails);
|
|
37312
37525
|
});
|
|
@@ -37918,6 +38131,10 @@ class EventStartGuard {
|
|
|
37918
38131
|
}
|
|
37919
38132
|
}
|
|
37920
38133
|
return caseDataObservable.pipe(switchMap(() => {
|
|
38134
|
+
if (this.shouldSkipDuplicateWorkAllocationCall()) {
|
|
38135
|
+
this.abstractConfig.logMessage(`EventStartGuard: skipping duplicate work allocation call for caseId ${caseId} and eventId ${eventId}`);
|
|
38136
|
+
return of(true);
|
|
38137
|
+
}
|
|
37921
38138
|
if (this.jurisdiction && this.caseType) {
|
|
37922
38139
|
if (this.caseId === caseId) {
|
|
37923
38140
|
return this.workAllocationService.getTasksByCaseIdAndEventId(eventId, caseId, this.caseType, this.jurisdiction)
|
|
@@ -37931,6 +38148,9 @@ class EventStartGuard {
|
|
|
37931
38148
|
return of(false);
|
|
37932
38149
|
}));
|
|
37933
38150
|
}
|
|
38151
|
+
shouldSkipDuplicateWorkAllocationCall() {
|
|
38152
|
+
return this.router.getCurrentNavigation()?.extras?.state?.[EVENT_START_FIRST_PAGE_REDIRECT] === true;
|
|
38153
|
+
}
|
|
37934
38154
|
checkTaskInEventNotRequired(payload, caseId, taskId, eventId, userId) {
|
|
37935
38155
|
if (!payload || !payload.tasks) {
|
|
37936
38156
|
return true;
|
|
@@ -38167,9 +38387,7 @@ class EventStartStateMachineService {
|
|
|
38167
38387
|
if (!task) {
|
|
38168
38388
|
task = context.tasks[0];
|
|
38169
38389
|
}
|
|
38170
|
-
const taskStr = JSON.stringify(task);
|
|
38171
38390
|
this.abstractConfig?.logMessage?.(`entryActionForStateOneTaskAssignedToUser: task_state ${task?.task_state} for task id ${task?.id}`);
|
|
38172
|
-
console.log('entryActionForStateOneTaskAssignedToUser: setting client context task_data to ' + taskStr);
|
|
38173
38391
|
// Store task to session
|
|
38174
38392
|
const currentLanguage = context.cookieService.getCookie('exui-preferred-language');
|
|
38175
38393
|
const clientContext = {
|
|
@@ -38210,7 +38428,6 @@ class EventStartStateMachineService {
|
|
|
38210
38428
|
}
|
|
38211
38429
|
finalAction(state) {
|
|
38212
38430
|
// Final actions can be performed here, the state machine finished running
|
|
38213
|
-
// console.log('FINAL', state);
|
|
38214
38431
|
return;
|
|
38215
38432
|
}
|
|
38216
38433
|
addTransitionsForStateCheckForMatchingTasks() {
|
|
@@ -39845,9 +40062,6 @@ class CreateCaseFiltersComponent {
|
|
|
39845
40062
|
this.jurisdictions = jurisdictions;
|
|
39846
40063
|
this.selectJurisdiction(this.jurisdictions, this.filterJurisdictionControl);
|
|
39847
40064
|
});
|
|
39848
|
-
if (document.getElementById('cc-jurisdiction')) {
|
|
39849
|
-
document.getElementById('cc-jurisdiction').focus();
|
|
39850
|
-
}
|
|
39851
40065
|
}
|
|
39852
40066
|
onJurisdictionIdChange() {
|
|
39853
40067
|
this.resetCaseType();
|
|
@@ -40170,6 +40384,7 @@ class SearchFiltersComponent {
|
|
|
40170
40384
|
orderService;
|
|
40171
40385
|
jurisdictionService;
|
|
40172
40386
|
windowService;
|
|
40387
|
+
logger = new StructuredLoggerService();
|
|
40173
40388
|
PARAM_JURISDICTION = 'jurisdiction';
|
|
40174
40389
|
PARAM_CASE_TYPE = 'case-type';
|
|
40175
40390
|
PARAM_CASE_STATE = 'case-state';
|
|
@@ -40265,7 +40480,7 @@ class SearchFiltersComponent {
|
|
|
40265
40480
|
}
|
|
40266
40481
|
}
|
|
40267
40482
|
catch (e) {
|
|
40268
|
-
|
|
40483
|
+
this.logger.error('Failed to retrieve jurisdiction from local storage.', { error: e });
|
|
40269
40484
|
this.windowService.setLocalStorage(JURISDICTION_LOC_STORAGE, null);
|
|
40270
40485
|
}
|
|
40271
40486
|
}
|
|
@@ -40319,9 +40534,7 @@ class SearchFiltersComponent {
|
|
|
40319
40534
|
}
|
|
40320
40535
|
});
|
|
40321
40536
|
this.getCaseFields();
|
|
40322
|
-
}, error => {
|
|
40323
|
-
console.log('Search input fields request will be discarded reason: ', error.message);
|
|
40324
|
-
});
|
|
40537
|
+
}, error => this.logger.error('Search input fields request will be discarded.', { error }));
|
|
40325
40538
|
}
|
|
40326
40539
|
isJurisdictionSelected() {
|
|
40327
40540
|
return this.selected.jurisdiction === null ||
|
|
@@ -40458,7 +40671,7 @@ class SearchFiltersComponent {
|
|
|
40458
40671
|
}], onJurisdiction: [{
|
|
40459
40672
|
type: Output
|
|
40460
40673
|
}] }); })();
|
|
40461
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchFiltersComponent, { className: "SearchFiltersComponent", filePath: "lib/shared/components/search-filters/search-filters.component.ts", lineNumber:
|
|
40674
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchFiltersComponent, { className: "SearchFiltersComponent", filePath: "lib/shared/components/search-filters/search-filters.component.ts", lineNumber: 28 }); })();
|
|
40462
40675
|
|
|
40463
40676
|
function SearchFiltersWrapperComponent_ccd_search_filters_0_Template(rf, ctx) { if (rf & 1) {
|
|
40464
40677
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -41674,5 +41887,5 @@ class TestRouteSnapshotBuilder {
|
|
|
41674
41887
|
* Generated bundle index. Do not edit.
|
|
41675
41888
|
*/
|
|
41676
41889
|
|
|
41677
|
-
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 };
|
|
41890
|
+
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, FocusService, 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, StructuredLoggerService, 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 };
|
|
41678
41891
|
//# sourceMappingURL=hmcts-ccd-case-ui-toolkit.mjs.map
|