@hmcts/ccd-case-ui-toolkit 6.18.0-restricted-case-access-v3 → 6.18.0-restricted-case-access-v5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +399 -142
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +13 -1
  6. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +20 -2
  7. package/esm2015/lib/shared/components/case-editor/services/case.notifier.js +8 -1
  8. package/esm2015/lib/shared/components/case-editor/services/cases.service.js +31 -9
  9. package/esm2015/lib/shared/components/case-editor/services/page-validation.service.js +5 -2
  10. package/esm2015/lib/shared/components/case-viewer/case-view/case-view.component.js +4 -3
  11. package/esm2015/lib/shared/components/case-viewer/case-viewer.component.js +5 -1
  12. package/esm2015/lib/shared/components/case-viewer/services/case.resolver.js +11 -4
  13. package/esm2015/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.js +150 -63
  14. package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
  15. package/esm2015/lib/shared/services/fields/fields.utils.js +2 -2
  16. package/esm2015/lib/shared/services/form/form-validators.service.js +2 -2
  17. package/esm2015/lib/shared/services/http/http-error.service.js +3 -1
  18. package/esm2015/lib/shared/services/index.js +2 -1
  19. package/esm2015/lib/shared/services/loading/loading.service.js +5 -1
  20. package/esm2015/lib/shared/services/utils/retry/index.js +2 -0
  21. package/esm2015/lib/shared/services/utils/retry/retry.service.js +87 -0
  22. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +349 -105
  23. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  24. package/lib/app.config.d.ts +5 -0
  25. package/lib/app.config.d.ts.map +1 -1
  26. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +1 -0
  27. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  28. package/lib/shared/components/case-editor/services/case.notifier.d.ts.map +1 -1
  29. package/lib/shared/components/case-editor/services/cases.service.d.ts +5 -2
  30. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  31. package/lib/shared/components/case-editor/services/page-validation.service.d.ts.map +1 -1
  32. package/lib/shared/components/case-viewer/case-view/case-view.component.d.ts +1 -1
  33. package/lib/shared/components/case-viewer/case-view/case-view.component.d.ts.map +1 -1
  34. package/lib/shared/components/case-viewer/case-viewer.component.d.ts.map +1 -1
  35. package/lib/shared/components/case-viewer/services/case.resolver.d.ts +1 -1
  36. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
  37. package/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.d.ts +22 -17
  38. package/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.d.ts.map +1 -1
  39. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  40. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  41. package/lib/shared/services/http/http-error.service.d.ts.map +1 -1
  42. package/lib/shared/services/index.d.ts +1 -0
  43. package/lib/shared/services/index.d.ts.map +1 -1
  44. package/lib/shared/services/loading/loading.service.d.ts.map +1 -1
  45. package/lib/shared/services/utils/retry/index.d.ts +2 -0
  46. package/lib/shared/services/utils/retry/index.d.ts.map +1 -0
  47. package/lib/shared/services/utils/retry/retry.service.d.ts +11 -0
  48. package/lib/shared/services/utils/retry/retry.service.d.ts.map +1 -0
  49. package/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('rpx-xui-translation'), require('@angular/router'), require('@angular/forms'), require('rx-polling'), require('rxjs'), require('@angular/common/http'), require('rxjs/operators'), require('class-transformer'), require('moment'), require('underscore'), require('pegjs'), require('util'), require('@edium/fsm'), require('@angular/material/dialog'), require('@nicky-lenaers/ngx-scroll-to'), require('ngx-md'), require('@angular/material/autocomplete'), require('@angular/material/core'), require('@hmcts/ccpay-web-component'), require('@angular/cdk/overlay'), require('@angular/cdk/tree'), require('@angular/material/input'), require('@angular-material-components/datetime-picker'), require('@angular-material-components/moment-adapter'), require('@angular/material/datepicker'), require('@angular/material/form-field'), require('@hmcts/media-viewer'), require('@angular/cdk/portal'), require('ngx-pagination'), require('@angular/material/tabs')) :
3
3
  typeof define === 'function' && define.amd ? define('@hmcts/ccd-case-ui-toolkit', ['exports', '@angular/core', '@angular/common', 'rpx-xui-translation', '@angular/router', '@angular/forms', 'rx-polling', 'rxjs', '@angular/common/http', 'rxjs/operators', 'class-transformer', 'moment', 'underscore', 'pegjs', 'util', '@edium/fsm', '@angular/material/dialog', '@nicky-lenaers/ngx-scroll-to', 'ngx-md', '@angular/material/autocomplete', '@angular/material/core', '@hmcts/ccpay-web-component', '@angular/cdk/overlay', '@angular/cdk/tree', '@angular/material/input', '@angular-material-components/datetime-picker', '@angular-material-components/moment-adapter', '@angular/material/datepicker', '@angular/material/form-field', '@hmcts/media-viewer', '@angular/cdk/portal', 'ngx-pagination', '@angular/material/tabs'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.hmcts = global.hmcts || {}, global.hmcts["ccd-case-ui-toolkit"] = {}), global.ng.core, global.ng.common, global.i1, global.ng.router, global.ng.forms, global["rx-polling"], global.rxjs, global.ng.common.http, global.rxjs.operators, global["class-transformer"], global.moment, global.underscore, global.pegjs, global.util, global["@edium/fsm"], global.ng.material.dialog, global["@nicky-lenaers/ngx-scroll-to"], global["ngx-md"], global.ng.material.autocomplete, global.ng.material.core, global["@hmcts/ccpay-web-component"], global.ng.cdk.overlay, global.ng.cdk.tree, global.ng.material.input, global["@angular-material-components/datetime-picker"], global["@angular-material-components/moment-adapter"], global.ng.material.datepicker, global.ng.material.formField, global.i12, global.ng.cdk.portal, global["ngx-pagination"], global.ng.material.tabs));
5
- })(this, (function (exports, i0, i2, i1, i1$1, i2$1, polling, rxjs, i1$2, operators, classTransformer, moment, _, pegjs, util, fsm, i1$3, i2$2, i1$4, i4, i5, i3, i1$5, i7, i3$1, i4$1, momentAdapter, i5$1, i6, i12, i6$1, i1$6, i10) { 'use strict';
5
+ })(this, (function (exports, i0, i2, i1, i1$1, i2$1, polling, rxjs, i1$2, operators, classTransformer, moment, _, pegjs, util, fsm, i1$3, i2$2, i1$4, i5, i6, i3, i1$5, i7, i3$1, i4, momentAdapter, i5$1, i6$1, i12, i6$2, i1$6, i10) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -36,17 +36,17 @@
36
36
  var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
37
37
  var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
38
38
  var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$4);
39
- var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
40
39
  var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
40
+ var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
41
41
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
42
42
  var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$5);
43
43
  var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
44
44
  var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
45
- var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
45
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
46
46
  var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
47
- var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
48
- var i12__namespace = /*#__PURE__*/_interopNamespace(i12);
49
47
  var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6$1);
48
+ var i12__namespace = /*#__PURE__*/_interopNamespace(i12);
49
+ var i6__namespace$2 = /*#__PURE__*/_interopNamespace(i6$2);
50
50
  var i1__namespace$6 = /*#__PURE__*/_interopNamespace(i1$6);
51
51
  var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
52
52
 
@@ -145,14 +145,14 @@
145
145
  }
146
146
  }
147
147
  var _c0$$ = [[["", "footerSolsNavLinks", ""]], [["", "footerCaseWorkerNavLinks", ""]]];
148
- var _c1$s = ["[footerSolsNavLinks]", "[footerCaseWorkerNavLinks]"];
148
+ var _c1$t = ["[footerSolsNavLinks]", "[footerCaseWorkerNavLinks]"];
149
149
  var FooterComponent = /** @class */ (function () {
150
150
  function FooterComponent() {
151
151
  }
152
152
  return FooterComponent;
153
153
  }());
154
154
  FooterComponent.ɵfac = function FooterComponent_Factory(t) { return new (t || FooterComponent)(); };
155
- FooterComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: FooterComponent, selectors: [["cut-footer-bar"]], inputs: { email: "email", isSolicitor: "isSolicitor", phone: "phone", workhours: "workhours" }, ngContentSelectors: _c1$s, decls: 4, vars: 4, consts: [["id", "footer", "role", "footer", 1, "group", "js-footer"], [1, "footer-wrapper"], ["class", "footer-meta", 4, "ngIf"], [1, "footer-meta"], [1, "footer-meta-inner"], [1, "open-government-licence"], [1, "logo"], ["href", "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/", "rel", "license"], [1, "copyright"], ["href", "https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/"], [1, "title"], [1, "footer-text"], [1, "email"], [3, "href"], [1, "phone"], [1, "work-hours"]], template: function FooterComponent_Template(rf, ctx) {
155
+ FooterComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: FooterComponent, selectors: [["cut-footer-bar"]], inputs: { email: "email", isSolicitor: "isSolicitor", phone: "phone", workhours: "workhours" }, ngContentSelectors: _c1$t, decls: 4, vars: 4, consts: [["id", "footer", "role", "footer", 1, "group", "js-footer"], [1, "footer-wrapper"], ["class", "footer-meta", 4, "ngIf"], [1, "footer-meta"], [1, "footer-meta-inner"], [1, "open-government-licence"], [1, "logo"], ["href", "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/", "rel", "license"], [1, "copyright"], ["href", "https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/"], [1, "title"], [1, "footer-text"], [1, "email"], [3, "href"], [1, "phone"], [1, "work-hours"]], template: function FooterComponent_Template(rf, ctx) {
156
156
  if (rf & 1) {
157
157
  i0__namespace.ɵɵprojectionDef(_c0$$);
158
158
  i0__namespace.ɵɵelementStart(0, "footer", 0);
@@ -241,7 +241,7 @@
241
241
  }
242
242
  }
243
243
  var _c0$_ = [[["", "headerNavigation", ""]]];
244
- var _c1$r = ["[headerNavigation]"];
244
+ var _c1$s = ["[headerNavigation]"];
245
245
  var HeaderBarComponent = /** @class */ (function () {
246
246
  function HeaderBarComponent() {
247
247
  this.signOutRequest = new i0.EventEmitter();
@@ -252,7 +252,7 @@
252
252
  return HeaderBarComponent;
253
253
  }());
254
254
  HeaderBarComponent.ɵfac = function HeaderBarComponent_Factory(t) { return new (t || HeaderBarComponent)(); };
255
- HeaderBarComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: HeaderBarComponent, selectors: [["cut-header-bar"]], inputs: { title: "title", isSolicitor: "isSolicitor", username: "username" }, outputs: { signOutRequest: "signOutRequest" }, ngContentSelectors: _c1$r, decls: 17, vars: 14, consts: [["role", "banner", "id", "global-header", 1, "with-proposition"], [1, "header-wrapper"], [1, "header-global"], [4, "ngIf"], ["class", "global-header", 4, "ngIf"], [1, "header-proposition"], [1, "content"], ["href", "#proposition-links", 1, "js-header-toggle", "menu"], ["id", "proposition-menu", 4, "ngIf"], [1, "proposition-right"], ["id", "user-name"], ["id", "sign-out", "href", "javascript:void(0)", 3, "click"], ["href", "https://www.gov.uk", "title", "Go to the GOV.UK homepage", "id", "logo", 1, "content", 2, "margin-left", "0px"], ["src", "/img/gov.uk_logotype_crown_invert_trans.png?0.23.0", "width", "36", "height", "32", "alt", ""], [1, "global-header"], [1, "title"], ["id", "proposition-menu"], [1, "title-solicitor"], ["id", "proposition-name"]], template: function HeaderBarComponent_Template(rf, ctx) {
255
+ HeaderBarComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: HeaderBarComponent, selectors: [["cut-header-bar"]], inputs: { title: "title", isSolicitor: "isSolicitor", username: "username" }, outputs: { signOutRequest: "signOutRequest" }, ngContentSelectors: _c1$s, decls: 17, vars: 14, consts: [["role", "banner", "id", "global-header", 1, "with-proposition"], [1, "header-wrapper"], [1, "header-global"], [4, "ngIf"], ["class", "global-header", 4, "ngIf"], [1, "header-proposition"], [1, "content"], ["href", "#proposition-links", 1, "js-header-toggle", "menu"], ["id", "proposition-menu", 4, "ngIf"], [1, "proposition-right"], ["id", "user-name"], ["id", "sign-out", "href", "javascript:void(0)", 3, "click"], ["href", "https://www.gov.uk", "title", "Go to the GOV.UK homepage", "id", "logo", 1, "content", 2, "margin-left", "0px"], ["src", "/img/gov.uk_logotype_crown_invert_trans.png?0.23.0", "width", "36", "height", "32", "alt", ""], [1, "global-header"], [1, "title"], ["id", "proposition-menu"], [1, "title-solicitor"], ["id", "proposition-name"]], template: function HeaderBarComponent_Template(rf, ctx) {
256
256
  if (rf & 1) {
257
257
  i0__namespace.ɵɵprojectionDef(_c0$_);
258
258
  i0__namespace.ɵɵelementStart(0, "header", 0);
@@ -322,14 +322,14 @@
322
322
  })();
323
323
 
324
324
  var _c0$Z = [[["", "leftNavLinks", ""]], [["", "rightNavLinks", ""]]];
325
- var _c1$q = ["[leftNavLinks]", "[rightNavLinks]"];
325
+ var _c1$r = ["[leftNavLinks]", "[rightNavLinks]"];
326
326
  var NavigationComponent = /** @class */ (function () {
327
327
  function NavigationComponent() {
328
328
  }
329
329
  return NavigationComponent;
330
330
  }());
331
331
  NavigationComponent.ɵfac = function NavigationComponent_Factory(t) { return new (t || NavigationComponent)(); };
332
- NavigationComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: NavigationComponent, selectors: [["cut-nav-bar"]], inputs: { isSolicitor: "isSolicitor" }, ngContentSelectors: _c1$q, decls: 4, vars: 2, consts: [[1, "cut-nav-bar"]], template: function NavigationComponent_Template(rf, ctx) {
332
+ NavigationComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: NavigationComponent, selectors: [["cut-nav-bar"]], inputs: { isSolicitor: "isSolicitor" }, ngContentSelectors: _c1$r, decls: 4, vars: 2, consts: [[1, "cut-nav-bar"]], template: function NavigationComponent_Template(rf, ctx) {
333
333
  if (rf & 1) {
334
334
  i0__namespace.ɵɵprojectionDef(_c0$Z);
335
335
  i0__namespace.ɵɵelementStart(0, "div");
@@ -488,14 +488,14 @@
488
488
  })();
489
489
 
490
490
  var _c0$Y = [[["", "topBody", ""]], [["", "leftBody", ""]], [["", "rightBody", ""]]];
491
- var _c1$p = ["[topBody]", "[leftBody]", "[rightBody]"];
491
+ var _c1$q = ["[topBody]", "[leftBody]", "[rightBody]"];
492
492
  var BodyComponent = /** @class */ (function () {
493
493
  function BodyComponent() {
494
494
  }
495
495
  return BodyComponent;
496
496
  }());
497
497
  BodyComponent.ɵfac = function BodyComponent_Factory(t) { return new (t || BodyComponent)(); };
498
- BodyComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: BodyComponent, selectors: [["cut-body"]], ngContentSelectors: _c1$p, decls: 4, vars: 0, consts: [[1, "global-display"]], template: function BodyComponent_Template(rf, ctx) {
498
+ BodyComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: BodyComponent, selectors: [["cut-body"]], ngContentSelectors: _c1$q, decls: 4, vars: 0, consts: [[1, "global-display"]], template: function BodyComponent_Template(rf, ctx) {
499
499
  if (rf & 1) {
500
500
  i0__namespace.ɵɵprojectionDef(_c0$Y);
501
501
  i0__namespace.ɵɵelementStart(0, "div", 0);
@@ -1684,14 +1684,14 @@
1684
1684
  })();
1685
1685
 
1686
1686
  var _c0$V = function (a0) { return { "js-hidden": a0 }; };
1687
- var _c1$o = ["*"];
1687
+ var _c1$p = ["*"];
1688
1688
  var TabComponent = /** @class */ (function () {
1689
1689
  function TabComponent() {
1690
1690
  }
1691
1691
  return TabComponent;
1692
1692
  }());
1693
1693
  TabComponent.ɵfac = function TabComponent_Factory(t) { return new (t || TabComponent)(); };
1694
- TabComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: TabComponent, selectors: [["cut-tab"]], inputs: { id: "id", title: "title", selected: "selected" }, ngContentSelectors: _c1$o, decls: 2, vars: 5, consts: [["role", "tabpanel", 1, "tabs-panel", 3, "id", "ngClass"]], template: function TabComponent_Template(rf, ctx) {
1694
+ TabComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: TabComponent, selectors: [["cut-tab"]], inputs: { id: "id", title: "title", selected: "selected" }, ngContentSelectors: _c1$p, decls: 2, vars: 5, consts: [["role", "tabpanel", 1, "tabs-panel", 3, "id", "ngClass"]], template: function TabComponent_Template(rf, ctx) {
1695
1695
  if (rf & 1) {
1696
1696
  i0__namespace.ɵɵprojectionDef();
1697
1697
  i0__namespace.ɵɵelementStart(0, "div", 0);
@@ -1723,7 +1723,7 @@
1723
1723
  })();
1724
1724
 
1725
1725
  var _c0$U = ["tab"];
1726
- var _c1$n = function () { return ["."]; };
1726
+ var _c1$o = function () { return ["."]; };
1727
1727
  var _c2$3 = function (a0) { return { "tabs-toggle-selected": a0 }; };
1728
1728
  function TabsComponent_li_2_Template(rf, ctx) {
1729
1729
  if (rf & 1) {
@@ -1739,7 +1739,7 @@
1739
1739
  if (rf & 2) {
1740
1740
  var panel_r1 = ctx.$implicit;
1741
1741
  i0__namespace.ɵɵadvance(1);
1742
- i0__namespace.ɵɵproperty("routerLink", i0__namespace.ɵɵpureFunction0(8, _c1$n))("fragment", panel_r1.id)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c2$3, panel_r1.selected));
1742
+ i0__namespace.ɵɵproperty("routerLink", i0__namespace.ɵɵpureFunction0(8, _c1$o))("fragment", panel_r1.id)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c2$3, panel_r1.selected));
1743
1743
  i0__namespace.ɵɵattribute("aria-controls", panel_r1.id)("aria-selected", panel_r1.selected);
1744
1744
  i0__namespace.ɵɵadvance(2);
1745
1745
  i0__namespace.ɵɵtextInterpolate(i0__namespace.ɵɵpipeBind1(4, 6, panel_r1.title));
@@ -2022,6 +2022,18 @@
2022
2022
  AbstractAppConfig.prototype.getLocationRefApiUrl = function () {
2023
2023
  return undefined;
2024
2024
  };
2025
+ AbstractAppConfig.prototype.getEnvironment = function () {
2026
+ var _a, _b, _c, _d;
2027
+ if ((_a = this.getActivityUrl()) === null || _a === void 0 ? void 0 : _a.includes('.aat.'))
2028
+ return 'aat';
2029
+ else if ((_b = this.getActivityUrl()) === null || _b === void 0 ? void 0 : _b.includes('.preview.'))
2030
+ return 'preview';
2031
+ else if ((_c = this.getActivityUrl()) === null || _c === void 0 ? void 0 : _c.includes('.demo.'))
2032
+ return 'demo';
2033
+ else if ((_d = this.getActivityUrl()) === null || _d === void 0 ? void 0 : _d.includes('.ithc.'))
2034
+ return 'ithc';
2035
+ return 'prod';
2036
+ };
2025
2037
  AbstractAppConfig.prototype.getCamRoleAssignmentsApiUrl = function () {
2026
2038
  return undefined;
2027
2039
  };
@@ -2110,6 +2122,8 @@
2110
2122
  };
2111
2123
  HttpErrorService.prototype.handle = function (error, redirectIfNotAuthorised) {
2112
2124
  if (redirectIfNotAuthorised === void 0) { redirectIfNotAuthorised = true; }
2125
+ console.error('Handling error in http error service.');
2126
+ console.error(error);
2113
2127
  var httpError = HttpErrorService.convertToHttpError(error);
2114
2128
  if (redirectIfNotAuthorised && (httpError.status === 401 || httpError.status === 403)) {
2115
2129
  this.authService.signIn();
@@ -4328,7 +4342,7 @@
4328
4342
  if (!caseField || !types) {
4329
4343
  return false;
4330
4344
  }
4331
- return types.some(function (type) { return type === caseField.field_type.type; });
4345
+ return types.some(function (type) { return type === caseField.field_type.type || type === caseField.field_type.id; });
4332
4346
  };
4333
4347
  FieldsUtils.isLinkedCasesCaseField = function (caseField) {
4334
4348
  return FieldsUtils.isComponentLauncherCaseField(caseField) &&
@@ -5160,7 +5174,7 @@
5160
5174
  return FormValidatorsService;
5161
5175
  }());
5162
5176
  FormValidatorsService.CUSTOM_VALIDATED_TYPES = [
5163
- 'Date', 'MoneyGBP', 'Label'
5177
+ 'Date', 'MoneyGBP', 'Label', 'JudicialUser'
5164
5178
  ];
5165
5179
  FormValidatorsService.ɵfac = function FormValidatorsService_Factory(t) { return new (t || FormValidatorsService)(); };
5166
5180
  FormValidatorsService.ɵprov = i0__namespace.ɵɵdefineInjectable({ token: FormValidatorsService, factory: FormValidatorsService.ɵfac });
@@ -7943,13 +7957,17 @@
7943
7957
  });
7944
7958
  LoadingService.prototype.register = function () {
7945
7959
  var token = this.generateToken();
7960
+ console.info("registering [" + token + "]");
7946
7961
  this.registered.set(token, token);
7947
7962
  this.loading.next(true);
7963
+ console.info("registered [" + token + "]");
7948
7964
  return token;
7949
7965
  };
7950
7966
  LoadingService.prototype.unregister = function (token) {
7967
+ console.info("unregistering [" + token + "]");
7951
7968
  this.registered.delete(token);
7952
7969
  this.loading.next(this.registered.size > 0);
7970
+ console.info("unregistered [" + token + "]");
7953
7971
  };
7954
7972
  LoadingService.prototype.generateToken = function () {
7955
7973
  var timestamp = window.performance.now();
@@ -8068,6 +8086,95 @@
8068
8086
  }], null, null);
8069
8087
  })();
8070
8088
 
8089
+ var ArtificialDelayContext = /** @class */ (function () {
8090
+ function ArtificialDelayContext(preferredDelay) {
8091
+ this.preferredDelay = preferredDelay;
8092
+ this.artificialDelayOn = true;
8093
+ this.selectedDelay = this.selectActualDelayTime();
8094
+ }
8095
+ ;
8096
+ ArtificialDelayContext.prototype.switchArtificialDelays = function (status) {
8097
+ this.artificialDelayOn = status;
8098
+ this.selectedDelay = this.selectActualDelayTime();
8099
+ };
8100
+ ArtificialDelayContext.prototype.turnOnArtificialDelays = function () {
8101
+ this.switchArtificialDelays(true);
8102
+ };
8103
+ ArtificialDelayContext.prototype.turnOffArtificialDelays = function () {
8104
+ this.switchArtificialDelays(false);
8105
+ };
8106
+ ArtificialDelayContext.prototype.getActualDelay = function () {
8107
+ return this.artificialDelayOn ? this.selectedDelay : 0;
8108
+ };
8109
+ ArtificialDelayContext.prototype.shouldApplyArtificialDelay = function () {
8110
+ return this.preferredDelay > 0;
8111
+ };
8112
+ ArtificialDelayContext.prototype.selectActualDelayTime = function () {
8113
+ return Date.now() % 2 == 0 ? this.preferredDelay : 1;
8114
+ };
8115
+ return ArtificialDelayContext;
8116
+ }());
8117
+ var RetryUtil = /** @class */ (function () {
8118
+ function RetryUtil() {
8119
+ }
8120
+ RetryUtil.prototype.pipeTimeoutMechanismOn = function (in$, preferredArtificialDelay, timeoutPeriods) {
8121
+ var artificialDelayContext = new ArtificialDelayContext(preferredArtificialDelay);
8122
+ console.info("Piping a retry mechanism with timeouts {" + timeoutPeriods + "}.");
8123
+ console.info("Artificial delay will be applied: " + artificialDelayContext.shouldApplyArtificialDelay() + ".");
8124
+ var out$ = in$;
8125
+ if (artificialDelayContext.shouldApplyArtificialDelay()) {
8126
+ console.info("Preferred artificial delay: " + preferredArtificialDelay + " seconds. Actual delay selected: " + artificialDelayContext.getActualDelay());
8127
+ out$ = this.pipeArtificialDelayOn(out$, artificialDelayContext);
8128
+ }
8129
+ out$ = this.pipeTimeOutControlOn(out$, timeoutPeriods);
8130
+ out$ = this.pipeRetryMechanismOn(out$, artificialDelayContext);
8131
+ return out$;
8132
+ };
8133
+ RetryUtil.prototype.pipeTimeOutControlOn = function (in$, timeoutPeriods) {
8134
+ var timeOutAfterSeconds = timeoutPeriods[0];
8135
+ console.info("Piping timeout control with " + timeOutAfterSeconds + " seconds.");
8136
+ var out$ = in$.pipe(operators.timeout(timeOutAfterSeconds * 1000));
8137
+ return out$;
8138
+ };
8139
+ RetryUtil.prototype.pipeRetryMechanismOn = function (in$, artificialDelayContext) {
8140
+ var retryStrategy = function (errors) {
8141
+ return errors.pipe(operators.mergeMap(function (error, i) {
8142
+ console.error("Mapping error " + (error === null || error === void 0 ? void 0 : error.name) + ", " + i);
8143
+ console.error(error);
8144
+ if ((error === null || error === void 0 ? void 0 : error.name) === 'TimeoutError' && i === 0) {
8145
+ artificialDelayContext.turnOffArtificialDelays();
8146
+ console.info('Will retry, after a timeout error.');
8147
+ }
8148
+ else {
8149
+ console.error('Will NOT retry.');
8150
+ throw error;
8151
+ }
8152
+ return rxjs.timer(0);
8153
+ }), operators.finalize(function () { return console.log('We are done!'); }));
8154
+ };
8155
+ var out$ = in$.pipe(operators.retryWhen(retryStrategy));
8156
+ return out$;
8157
+ };
8158
+ RetryUtil.prototype.pipeArtificialDelayOn = function (in$, artificialDelayContext) {
8159
+ var out$ = in$.pipe(operators.tap(function () {
8160
+ console.log("Artificially delaying for " + artificialDelayContext.getActualDelay() + " seconds..");
8161
+ }));
8162
+ out$ = out$.pipe(operators.delayWhen(function () { return rxjs.timer(artificialDelayContext.getActualDelay() * 1000); }));
8163
+ out$ = out$.pipe(operators.tap(function () {
8164
+ console.log("Artificially delayed for " + artificialDelayContext.getActualDelay() + " seconds..");
8165
+ }));
8166
+ return out$;
8167
+ };
8168
+ return RetryUtil;
8169
+ }());
8170
+ RetryUtil.ɵfac = function RetryUtil_Factory(t) { return new (t || RetryUtil)(); };
8171
+ RetryUtil.ɵprov = i0__namespace.ɵɵdefineInjectable({ token: RetryUtil, factory: RetryUtil.ɵfac });
8172
+ (function () {
8173
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(RetryUtil, [{
8174
+ type: i0.Injectable
8175
+ }], null, null);
8176
+ })();
8177
+
8071
8178
  var WindowService = /** @class */ (function () {
8072
8179
  function WindowService() {
8073
8180
  }
@@ -8619,7 +8726,7 @@
8619
8726
  })();
8620
8727
 
8621
8728
  var CasesService = /** @class */ (function () {
8622
- function CasesService(http, appConfig, orderService, errorService, wizardPageFieldToCaseFieldMapper, loadingService, sessionStorageService) {
8729
+ function CasesService(http, appConfig, orderService, errorService, wizardPageFieldToCaseFieldMapper, loadingService, sessionStorageService, retryUtil) {
8623
8730
  this.http = http;
8624
8731
  this.appConfig = appConfig;
8625
8732
  this.orderService = orderService;
@@ -8627,6 +8734,7 @@
8627
8734
  this.wizardPageFieldToCaseFieldMapper = wizardPageFieldToCaseFieldMapper;
8628
8735
  this.loadingService = loadingService;
8629
8736
  this.sessionStorageService = sessionStorageService;
8737
+ this.retryUtil = retryUtil;
8630
8738
  this.get = this.getCaseView;
8631
8739
  }
8632
8740
  CasesService.updateChallengedAccessRequestAttributes = function (httpClient, caseId, attributesToUpdate) {
@@ -8660,12 +8768,34 @@
8660
8768
  .set('Accept', CasesService.V2_MEDIATYPE_CASE_VIEW)
8661
8769
  .set('Content-Type', 'application/json');
8662
8770
  var loadingToken = this.loadingService.register();
8663
- return this.http
8664
- .get(url, { headers: headers, observe: 'body' })
8665
- .pipe(operators.catchError(function (error) {
8771
+ var http$ = this.http.get(url, { headers: headers, observe: 'body' });
8772
+ var artificialDelay = this.appConfig.getTimeoutsCaseRetrievalArtificialDelay();
8773
+ var timeoutPeriods = this.appConfig.getTimeoutsForCaseRetrieval();
8774
+ console.log("Timeout periods: " + timeoutPeriods + " seconds.");
8775
+ if (timeoutPeriods && timeoutPeriods.length > 0 && timeoutPeriods[0] > 0) {
8776
+ http$ = this.retryUtil.pipeTimeoutMechanismOn(http$, artificialDelay, timeoutPeriods);
8777
+ }
8778
+ else {
8779
+ console.warn('Skipping to pipe a retry mechanism!');
8780
+ }
8781
+ http$ = this.pipeErrorProcessor(http$);
8782
+ http$ = http$.pipe(operators.finalize(function () { return _this.finalizeGetCaseViewWith(caseId, loadingToken); }));
8783
+ return http$;
8784
+ };
8785
+ CasesService.prototype.pipeErrorProcessor = function (in$) {
8786
+ var _this = this;
8787
+ var out$ = in$.pipe(operators.catchError(function (error) {
8788
+ console.error("Error while getting case view with getCaseViewV2! Error type: '" + typeof error + ", Error name: '" + (error === null || error === void 0 ? void 0 : error.name) + "'");
8789
+ console.error(error);
8666
8790
  _this.errorService.setError(error);
8667
8791
  return rxjs.throwError(error);
8668
- }), operators.finalize(function () { return _this.loadingService.unregister(loadingToken); }));
8792
+ }));
8793
+ return out$;
8794
+ };
8795
+ CasesService.prototype.finalizeGetCaseViewWith = function (caseId, loadingToken) {
8796
+ console.info("finalizeGetCaseViewWith started for " + caseId + ".");
8797
+ this.loadingService.unregister(loadingToken);
8798
+ console.info("finalizeGetCaseViewWith finished for " + caseId + ".");
8669
8799
  };
8670
8800
  CasesService.prototype.getEventTrigger = function (caseTypeId, eventTriggerId, caseId, ignoreWarning) {
8671
8801
  var _this = this;
@@ -8851,12 +8981,12 @@
8851
8981
  CasesService.V2_MEDIATYPE_CREATE_EVENT = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-event.v2+json;charset=UTF-8';
8852
8982
  CasesService.V2_MEDIATYPE_CREATE_CASE = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-case.v2+json;charset=UTF-8';
8853
8983
  CasesService.PUI_CASE_MANAGER = 'pui-case-manager';
8854
- CasesService.ɵfac = function CasesService_Factory(t) { return new (t || CasesService)(i0__namespace.ɵɵinject(HttpService), i0__namespace.ɵɵinject(AbstractAppConfig), i0__namespace.ɵɵinject(OrderService), i0__namespace.ɵɵinject(HttpErrorService), i0__namespace.ɵɵinject(WizardPageFieldToCaseFieldMapper), i0__namespace.ɵɵinject(LoadingService), i0__namespace.ɵɵinject(SessionStorageService)); };
8984
+ CasesService.ɵfac = function CasesService_Factory(t) { return new (t || CasesService)(i0__namespace.ɵɵinject(HttpService), i0__namespace.ɵɵinject(AbstractAppConfig), i0__namespace.ɵɵinject(OrderService), i0__namespace.ɵɵinject(HttpErrorService), i0__namespace.ɵɵinject(WizardPageFieldToCaseFieldMapper), i0__namespace.ɵɵinject(LoadingService), i0__namespace.ɵɵinject(SessionStorageService), i0__namespace.ɵɵinject(RetryUtil)); };
8855
8985
  CasesService.ɵprov = i0__namespace.ɵɵdefineInjectable({ token: CasesService, factory: CasesService.ɵfac });
8856
8986
  (function () {
8857
8987
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CasesService, [{
8858
8988
  type: i0.Injectable
8859
- }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: OrderService }, { type: HttpErrorService }, { type: WizardPageFieldToCaseFieldMapper }, { type: LoadingService }, { type: SessionStorageService }]; }, null);
8989
+ }], function () { return [{ type: HttpService }, { type: AbstractAppConfig }, { type: OrderService }, { type: HttpErrorService }, { type: WizardPageFieldToCaseFieldMapper }, { type: LoadingService }, { type: SessionStorageService }, { type: RetryUtil }]; }, null);
8860
8990
  })();
8861
8991
 
8862
8992
  var EventTriggerService = /** @class */ (function () {
@@ -9240,16 +9370,23 @@
9240
9370
  this.cachedCaseView = null;
9241
9371
  };
9242
9372
  CaseNotifier.prototype.announceCase = function (c) {
9373
+ console.info('announceCase started.');
9243
9374
  this.caseViewSource.next(c);
9375
+ console.info('announceCase finished.');
9244
9376
  };
9245
9377
  CaseNotifier.prototype.fetchAndRefresh = function (cid) {
9246
9378
  var _this = this;
9379
+ console.info('fetchAndRefresh started.');
9247
9380
  return this.casesService
9248
9381
  .getCaseViewV2(cid)
9249
9382
  .pipe(operators.map(function (caseView) {
9383
+ console.info('mapping caseView started.');
9384
+ // this.casesService.syncWait(10);
9385
+ // throw new Error('******************************************************');
9250
9386
  _this.cachedCaseView = classTransformer.plainToClassFromExist(new CaseView(), caseView);
9251
9387
  _this.setBasicFields(_this.cachedCaseView.tabs);
9252
9388
  _this.announceCase(_this.cachedCaseView);
9389
+ console.info('mapping caseView finished. Returning it.');
9253
9390
  return _this.cachedCaseView;
9254
9391
  }));
9255
9392
  };
@@ -9501,7 +9638,9 @@
9501
9638
  .filter(function (caseField) { return !_this.caseFieldService.isReadOnly(caseField); })
9502
9639
  .filter(function (caseField) { return !_this.isHidden(caseField, editForm); })
9503
9640
  .every(function (caseField) {
9504
- var theControl = editForm.controls['data'].get(caseField.id);
9641
+ var theControl = FieldsUtils.isCaseFieldOfType(caseField, ['JudicialUser'])
9642
+ ? editForm.controls['data'].get(caseField.id + "_judicialUserControl")
9643
+ : editForm.controls['data'].get(caseField.id);
9505
9644
  return _this.checkDocumentField(caseField, theControl) && _this.checkOptionalField(caseField, theControl);
9506
9645
  });
9507
9646
  };
@@ -10935,7 +11074,9 @@
10935
11074
  fields.filter(function (casefield) { return !_this.caseFieldService.isReadOnly(casefield); })
10936
11075
  .filter(function (casefield) { return !_this.pageValidationService.isHidden(casefield, _this.editForm, path); })
10937
11076
  .forEach(function (casefield) {
10938
- var fieldElement = group.get(casefield.id);
11077
+ var fieldElement = FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])
11078
+ ? group.get(casefield.id + "_judicialUserControl")
11079
+ : group.get(casefield.id);
10939
11080
  if (fieldElement) {
10940
11081
  var label = casefield.label || 'Field';
10941
11082
  var id_1 = casefield.id;
@@ -10950,6 +11091,11 @@
10950
11091
  if (fieldElement.hasError('required')) {
10951
11092
  _this.caseEditDataService.addFormValidationError({ id: id_1, message: "%FIELDLABEL% is required", label: label });
10952
11093
  fieldElement.markAsDirty();
11094
+ // For the JudicialUser field type, an error needs to be set on the component so that an error message
11095
+ // can be displayed at field level
11096
+ if (FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])) {
11097
+ fieldElement['component'].errors = { required: true };
11098
+ }
10953
11099
  }
10954
11100
  else if (fieldElement.hasError('pattern')) {
10955
11101
  _this.caseEditDataService.addFormValidationError({ id: id_1, message: "%FIELDLABEL% is not valid", label: label });
@@ -11046,6 +11192,10 @@
11046
11192
  _this.handleError(error);
11047
11193
  });
11048
11194
  CaseEditPageComponent.scrollToTop();
11195
+ // Remove all JudicialUser FormControls with the ID suffix "_judicialUserControl" because these are not
11196
+ // intended to be present in the Case Event data (they are added only for value selection and validation
11197
+ // purposes)
11198
+ this.removeAllJudicialUserFormControls(this.currentPage, this.editForm);
11049
11199
  }
11050
11200
  CaseEditPageComponent.setFocusToTop();
11051
11201
  };
@@ -11317,6 +11467,13 @@
11317
11467
  submit: this.caseEdit.submit,
11318
11468
  });
11319
11469
  };
11470
+ CaseEditPageComponent.prototype.removeAllJudicialUserFormControls = function (page, editForm) {
11471
+ page.case_fields.forEach(function (caseField) {
11472
+ if (FieldsUtils.isCaseFieldOfType(caseField, ['JudicialUser'])) {
11473
+ editForm.controls['data'].removeControl(caseField.id + "_judicialUserControl");
11474
+ }
11475
+ });
11476
+ };
11320
11477
  return CaseEditPageComponent;
11321
11478
  }());
11322
11479
  CaseEditPageComponent.RESUMED_FORM_DISCARD = 'RESUMED_FORM_DISCARD';
@@ -11582,7 +11739,7 @@
11582
11739
  i0__namespace.ɵɵtextInterpolate(i0__namespace.ɵɵpipeBind1(2, 1, "Enter the Postcode"));
11583
11740
  }
11584
11741
  }
11585
- var _c1$m = function (a0) { return { "form-group-error": a0 }; };
11742
+ var _c1$n = function (a0) { return { "form-group-error": a0 }; };
11586
11743
  var _c2$2 = function (a0) { return { "govuk-input--error": a0 }; };
11587
11744
  function WriteAddressFieldComponent_div_1_div_5_Template(rf, ctx) {
11588
11745
  if (rf & 1) {
@@ -11605,7 +11762,7 @@
11605
11762
  }
11606
11763
  if (rf & 2) {
11607
11764
  var ctx_r2 = i0__namespace.ɵɵnextContext(2);
11608
- i0__namespace.ɵɵproperty("id", ctx_r2.createElementId("postcodeLookup"))("ngClass", i0__namespace.ɵɵpureFunction1(13, _c1$m, ctx_r2.missingPostcode));
11765
+ i0__namespace.ɵɵproperty("id", ctx_r2.createElementId("postcodeLookup"))("ngClass", i0__namespace.ɵɵpureFunction1(13, _c1$n, ctx_r2.missingPostcode));
11609
11766
  i0__namespace.ɵɵadvance(1);
11610
11767
  i0__namespace.ɵɵproperty("for", ctx_r2.createElementId("postcodeInput"));
11611
11768
  i0__namespace.ɵɵadvance(2);
@@ -12998,7 +13155,7 @@
12998
13155
  i0__namespace.ɵɵtextInterpolate1(" ", i0__namespace.ɵɵpipeBind1(2, 1, i0__namespace.ɵɵpipeBind2(3, 3, ctx_r2.caseReferenceControl.errors, ctx_r2.caseField.label)), " ");
12999
13156
  }
13000
13157
  }
13001
- var _c1$l = function (a0) { return { "form-group-error": a0 }; };
13158
+ var _c1$m = function (a0) { return { "form-group-error": a0 }; };
13002
13159
  var WriteCaseLinkFieldComponent = /** @class */ (function (_super) {
13003
13160
  __extends(WriteCaseLinkFieldComponent, _super);
13004
13161
  function WriteCaseLinkFieldComponent() {
@@ -13082,7 +13239,7 @@
13082
13239
  i0__namespace.ɵɵelementEnd();
13083
13240
  }
13084
13241
  if (rf & 2) {
13085
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(7, _c1$l, !ctx.caseReferenceControl.valid && (ctx.caseReferenceControl.dirty || ctx.caseReferenceControl.touched)));
13242
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(7, _c1$m, !ctx.caseReferenceControl.valid && (ctx.caseReferenceControl.dirty || ctx.caseReferenceControl.touched)));
13086
13243
  i0__namespace.ɵɵadvance(1);
13087
13244
  i0__namespace.ɵɵproperty("for", ctx.id());
13088
13245
  i0__namespace.ɵɵadvance(1);
@@ -13127,7 +13284,7 @@
13127
13284
  i0__namespace.ɵɵproperty("caseField", i0__namespace.ɵɵpureFunction6(3, _c0$P, ctx_r1.caseField.label, ctx_r1.caseField.label, ctx_r1.caseField.field_type.collection_field_type, ctx_r1.caseField.display_context_parameter, ctx_r1.caseField.value, ctx_r1.caseField.hidden))("context", ctx_r1.context)("topLevelFormGroup", ctx_r1.topLevelFormGroup);
13128
13285
  }
13129
13286
  }
13130
- var _c1$k = function (a0, a1, a2, a3, a4) { return { id: a0, label: a1, field_type: a2, value: a3, hidden: a4 }; };
13287
+ var _c1$l = function (a0, a1, a2, a3, a4) { return { id: a0, label: a1, field_type: a2, value: a3, hidden: a4 }; };
13131
13288
  function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) {
13132
13289
  if (rf & 1) {
13133
13290
  i0__namespace.ɵɵelementStart(0, "tr");
@@ -13141,7 +13298,7 @@
13141
13298
  var i_r5 = ctx.index;
13142
13299
  var ctx_r3 = i0__namespace.ɵɵnextContext(3);
13143
13300
  i0__namespace.ɵɵadvance(2);
13144
- i0__namespace.ɵɵproperty("caseField", i0__namespace.ɵɵpureFunction5(4, _c1$k, i_r5, ctx_r3.caseField.label + " " + (i_r5 + 1), ctx_r3.caseField.field_type.collection_field_type, item_r4.value, ctx_r3.caseField.hidden))("context", ctx_r3.context)("topLevelFormGroup", ctx_r3.topLevelFormGroup)("idPrefix", ctx_r3.buildIdPrefix(i_r5));
13301
+ i0__namespace.ɵɵproperty("caseField", i0__namespace.ɵɵpureFunction5(4, _c1$l, i_r5, ctx_r3.caseField.label + " " + (i_r5 + 1), ctx_r3.caseField.field_type.collection_field_type, item_r4.value, ctx_r3.caseField.hidden))("context", ctx_r3.context)("topLevelFormGroup", ctx_r3.topLevelFormGroup)("idPrefix", ctx_r3.buildIdPrefix(i_r5));
13145
13302
  }
13146
13303
  }
13147
13304
  function ReadCollectionFieldComponent_table_0_tbody_3_Template(rf, ctx) {
@@ -14471,7 +14628,7 @@
14471
14628
  i0__namespace.ɵɵproperty("caseField", ctx_r2.caseField);
14472
14629
  }
14473
14630
  }
14474
- var _c1$j = function (a0) { return { "form-group-error bottom-30": a0 }; };
14631
+ var _c1$k = function (a0) { return { "form-group-error bottom-30": a0 }; };
14475
14632
  var WriteDocumentFieldComponent = /** @class */ (function (_super) {
14476
14633
  __extends(WriteDocumentFieldComponent, _super);
14477
14634
  function WriteDocumentFieldComponent(appConfig, caseNotifier, documentManagement, dialog, fileUploadStateService) {
@@ -14775,7 +14932,7 @@
14775
14932
  i0__namespace.ɵɵelementEnd();
14776
14933
  }
14777
14934
  if (rf & 2) {
14778
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(20, _c1$j, !ctx.valid));
14935
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(20, _c1$k, !ctx.valid));
14779
14936
  i0__namespace.ɵɵadvance(1);
14780
14937
  i0__namespace.ɵɵproperty("for", ctx.id());
14781
14938
  i0__namespace.ɵɵadvance(1);
@@ -15480,7 +15637,7 @@
15480
15637
  i0__namespace.ɵɵtextInterpolate(i0__namespace.ɵɵpipeBind1(4, 7, radioButton_r5.label));
15481
15638
  }
15482
15639
  }
15483
- var _c1$i = function (a0) { return { "form-group-error": a0 }; };
15640
+ var _c1$j = function (a0) { return { "form-group-error": a0 }; };
15484
15641
  var WriteDynamicRadioListFieldComponent = /** @class */ (function (_super) {
15485
15642
  __extends(WriteDynamicRadioListFieldComponent, _super);
15486
15643
  function WriteDynamicRadioListFieldComponent() {
@@ -15527,7 +15684,7 @@
15527
15684
  i0__namespace.ɵɵelementEnd();
15528
15685
  }
15529
15686
  if (rf & 2) {
15530
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(8, _c1$i, !ctx.dynamicRadioListControl.valid && ctx.dynamicRadioListControl.dirty))("id", ctx.id());
15687
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(8, _c1$j, !ctx.dynamicRadioListControl.valid && ctx.dynamicRadioListControl.dirty))("id", ctx.id());
15531
15688
  i0__namespace.ɵɵadvance(3);
15532
15689
  i0__namespace.ɵɵproperty("for", ctx.id());
15533
15690
  i0__namespace.ɵɵadvance(1);
@@ -15638,7 +15795,7 @@
15638
15795
  }
15639
15796
  }
15640
15797
  var _c0$J = function (a0) { return { "form-group-error": a0 }; };
15641
- var _c1$h = function (a0) { return { "govuk-input--error": a0 }; };
15798
+ var _c1$i = function (a0) { return { "govuk-input--error": a0 }; };
15642
15799
  var WriteEmailFieldComponent = /** @class */ (function (_super) {
15643
15800
  __extends(WriteEmailFieldComponent, _super);
15644
15801
  function WriteEmailFieldComponent() {
@@ -15672,7 +15829,7 @@
15672
15829
  i0__namespace.ɵɵadvance(1);
15673
15830
  i0__namespace.ɵɵproperty("ngIf", ctx.emailControl.errors && (ctx.emailControl.dirty || ctx.emailControl.touched));
15674
15831
  i0__namespace.ɵɵadvance(1);
15675
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(10, _c1$h, ctx.emailControl.errors && (ctx.emailControl.dirty || ctx.emailControl.touched)))("id", ctx.id())("formControl", ctx.emailControl);
15832
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(10, _c1$i, ctx.emailControl.errors && (ctx.emailControl.dirty || ctx.emailControl.touched)))("id", ctx.id())("formControl", ctx.emailControl);
15676
15833
  }
15677
15834
  }, directives: [i2__namespace.NgClass, i2__namespace.NgIf, i2__namespace$1.DefaultValueAccessor, i2__namespace$1.NgControlStatus, i2__namespace$1.FormControlDirective], pipes: [i1__namespace.RpxTranslatePipe, FieldLabelPipe, FirstErrorPipe], encapsulation: 2 });
15678
15835
  var ɵWriteEmailFieldComponent_BaseFactory = /*@__PURE__*/ i0__namespace.ɵɵgetInheritedFactory(WriteEmailFieldComponent);
@@ -15967,7 +16124,7 @@
15967
16124
  i0__namespace.ɵɵtextInterpolate(i0__namespace.ɵɵpipeBind1(4, 7, radioButton_r4.label));
15968
16125
  }
15969
16126
  }
15970
- var _c1$g = function (a0) { return { "form-group-error": a0 }; };
16127
+ var _c1$h = function (a0) { return { "form-group-error": a0 }; };
15971
16128
  var WriteFixedRadioListFieldComponent = /** @class */ (function (_super) {
15972
16129
  __extends(WriteFixedRadioListFieldComponent, _super);
15973
16130
  function WriteFixedRadioListFieldComponent() {
@@ -15998,7 +16155,7 @@
15998
16155
  i0__namespace.ɵɵelementEnd();
15999
16156
  }
16000
16157
  if (rf & 2) {
16001
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(7, _c1$g, !ctx.fixedRadioListControl.valid && (ctx.fixedRadioListControl.dirty || ctx.fixedRadioListControl.touched)))("id", ctx.id());
16158
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(7, _c1$h, !ctx.fixedRadioListControl.valid && (ctx.fixedRadioListControl.dirty || ctx.fixedRadioListControl.touched)))("id", ctx.id());
16002
16159
  i0__namespace.ɵɵadvance(3);
16003
16160
  i0__namespace.ɵɵproperty("for", ctx.id());
16004
16161
  i0__namespace.ɵɵadvance(1);
@@ -16105,7 +16262,7 @@
16105
16262
 
16106
16263
  function WriteJudicialUserFieldComponent_span_2_Template(rf, ctx) {
16107
16264
  if (rf & 1) {
16108
- i0__namespace.ɵɵelementStart(0, "span", 9);
16265
+ i0__namespace.ɵɵelementStart(0, "span", 10);
16109
16266
  i0__namespace.ɵɵtext(1);
16110
16267
  i0__namespace.ɵɵpipe(2, "ccdFieldLabel");
16111
16268
  i0__namespace.ɵɵelementEnd();
@@ -16118,7 +16275,7 @@
16118
16275
  }
16119
16276
  function WriteJudicialUserFieldComponent_span_3_Template(rf, ctx) {
16120
16277
  if (rf & 1) {
16121
- i0__namespace.ɵɵelementStart(0, "span", 10);
16278
+ i0__namespace.ɵɵelementStart(0, "span", 11);
16122
16279
  i0__namespace.ɵɵtext(1);
16123
16280
  i0__namespace.ɵɵelementEnd();
16124
16281
  }
@@ -16128,56 +16285,92 @@
16128
16285
  i0__namespace.ɵɵtextInterpolate1(" ", ctx_r1.caseField.hint_text, " ");
16129
16286
  }
16130
16287
  }
16131
- var _c0$G = function (a0) { return { "hide-autocomplete": a0 }; };
16132
- function WriteJudicialUserFieldComponent_mat_option_7_Template(rf, ctx) {
16288
+ function WriteJudicialUserFieldComponent_span_4_Template(rf, ctx) {
16133
16289
  if (rf & 1) {
16134
- var _r7_1 = i0__namespace.ɵɵgetCurrentView();
16135
- i0__namespace.ɵɵelementStart(0, "mat-option", 11);
16136
- i0__namespace.ɵɵlistener("onSelectionChange", function WriteJudicialUserFieldComponent_mat_option_7_Template_mat_option_onSelectionChange_0_listener() { i0__namespace.ɵɵrestoreView(_r7_1); var judicialUser_r5 = ctx.$implicit; var ctx_r6 = i0__namespace.ɵɵnextContext(); return ctx_r6.onSelectionChange(judicialUser_r5); });
16290
+ i0__namespace.ɵɵelementStart(0, "span", 12);
16137
16291
  i0__namespace.ɵɵtext(1);
16292
+ i0__namespace.ɵɵpipe(2, "ccdFirstError");
16138
16293
  i0__namespace.ɵɵelementEnd();
16139
16294
  }
16140
16295
  if (rf & 2) {
16141
- var judicialUser_r5 = ctx.$implicit;
16142
- var ctx_r3 = i0__namespace.ɵɵnextContext();
16143
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(4, _c0$G, !ctx_r3.showAutocomplete))("value", judicialUser_r5.idamId);
16296
+ var ctx_r2 = i0__namespace.ɵɵnextContext();
16144
16297
  i0__namespace.ɵɵadvance(1);
16145
- i0__namespace.ɵɵtextInterpolate2(" ", judicialUser_r5.fullName, " (", judicialUser_r5.emailId, ") ");
16298
+ i0__namespace.ɵɵtextInterpolate1(" ", i0__namespace.ɵɵpipeBind2(2, 1, ctx_r2.errors, ctx_r2.caseField.label), " ");
16146
16299
  }
16147
16300
  }
16301
+ var _c0$G = function (a0) { return { "hide-autocomplete": a0 }; };
16148
16302
  function WriteJudicialUserFieldComponent_mat_option_8_Template(rf, ctx) {
16149
16303
  if (rf & 1) {
16150
- i0__namespace.ɵɵelementStart(0, "mat-option", 12);
16304
+ var _r9_1 = i0__namespace.ɵɵgetCurrentView();
16305
+ i0__namespace.ɵɵelementStart(0, "mat-option", 13);
16306
+ i0__namespace.ɵɵlistener("onSelectionChange", function WriteJudicialUserFieldComponent_mat_option_8_Template_mat_option_onSelectionChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r9_1); var ctx_r8 = i0__namespace.ɵɵnextContext(); return ctx_r8.onSelectionChange($event); });
16307
+ i0__namespace.ɵɵtext(1);
16308
+ i0__namespace.ɵɵelementEnd();
16309
+ }
16310
+ if (rf & 2) {
16311
+ var judicialUser_r7 = ctx.$implicit;
16312
+ var ctx_r4 = i0__namespace.ɵɵnextContext();
16313
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(4, _c0$G, !ctx_r4.showAutocomplete))("value", judicialUser_r7);
16314
+ i0__namespace.ɵɵadvance(1);
16315
+ i0__namespace.ɵɵtextInterpolate2(" ", (judicialUser_r7 == null ? null : judicialUser_r7.fullName) ? judicialUser_r7.fullName : "", "", (judicialUser_r7 == null ? null : judicialUser_r7.emailId) ? " (" + judicialUser_r7.emailId + ")" : "", " ");
16316
+ }
16317
+ }
16318
+ function WriteJudicialUserFieldComponent_mat_option_10_Template(rf, ctx) {
16319
+ if (rf & 1) {
16320
+ i0__namespace.ɵɵelementStart(0, "mat-option", 14);
16151
16321
  i0__namespace.ɵɵtext(1, " No results found ");
16152
16322
  i0__namespace.ɵɵelementEnd();
16153
16323
  }
16154
16324
  }
16325
+ function WriteJudicialUserFieldComponent_mat_option_11_Template(rf, ctx) {
16326
+ if (rf & 1) {
16327
+ i0__namespace.ɵɵelementStart(0, "mat-option", 14);
16328
+ i0__namespace.ɵɵtext(1, " Invalid search term ");
16329
+ i0__namespace.ɵɵelementEnd();
16330
+ }
16331
+ }
16332
+ var _c1$g = function (a0) { return { "form-group-error": a0 }; };
16155
16333
  var WriteJudicialUserFieldComponent = /** @class */ (function (_super) {
16156
16334
  __extends(WriteJudicialUserFieldComponent, _super);
16157
- function WriteJudicialUserFieldComponent(jurisdictionService, sessionStorageService, caseFlagRefDataService) {
16158
- var _this = _super.call(this) || this;
16335
+ function WriteJudicialUserFieldComponent(jurisdictionService, sessionStorageService, caseFlagRefDataService, compoundPipe, validatorsService) {
16336
+ var _this = _super.call(this, compoundPipe, validatorsService) || this;
16159
16337
  _this.jurisdictionService = jurisdictionService;
16160
16338
  _this.sessionStorageService = sessionStorageService;
16161
16339
  _this.caseFlagRefDataService = caseFlagRefDataService;
16162
- _this.MINIMUM_SEARCH_CHARACTERS = 2;
16163
- _this.IDAM_ID = 'idamId';
16164
- _this.PERSONAL_CODE = 'personalCode';
16165
- _this.filteredJudicialUsers = [];
16340
+ _this.compoundPipe = compoundPipe;
16341
+ _this.validatorsService = validatorsService;
16342
+ _this.minSearchCharacters = 2;
16166
16343
  _this.showAutocomplete = false;
16344
+ _this.searchTerm = '';
16345
+ _this.noResults = false;
16346
+ _this.invalidSearchTerm = false;
16347
+ _this.judicialUserSelected = false;
16167
16348
  return _this;
16168
16349
  }
16169
16350
  WriteJudicialUserFieldComponent.prototype.ngOnInit = function () {
16170
16351
  var _this = this;
16171
16352
  var _a;
16172
- this.judicialUserFormGroup = this.registerControl(new i2$1.FormGroup({}), true);
16173
- this.idamIdFormControl = new i2$1.FormControl('');
16174
- this.judicialUserFormGroup.addControl(this.IDAM_ID, this.idamIdFormControl);
16175
- this.personalCodeFormControl = new i2$1.FormControl('');
16176
- this.judicialUserFormGroup.addControl(this.PERSONAL_CODE, this.personalCodeFormControl);
16353
+ _super.prototype.ngOnInit.call(this);
16354
+ this.judicialUserControl = new i2$1.FormControl(this.caseField.value);
16355
+ // FormControl needs to be added to the main FormGroup so it can be picked up by the PageValidationService when
16356
+ // checking if the page is valid. FormGroup.setControl() is used here to ensure any existing JudicialUser
16357
+ // FormControl is replaced when the component is re-initialised, for example, if the user navigates away then
16358
+ // back to the page containing the JudicialUser field
16359
+ this.formGroup.setControl(this.caseField.id + "_judicialUserControl", this.judicialUserControl);
16360
+ // Ensure that this FormControl has links to the JudicialUser case field and this component
16361
+ FieldsUtils.addCaseFieldAndComponentReferences(this.judicialUserControl, this.caseField, this);
16362
+ this.setupValidation();
16177
16363
  this.setJurisdictionAndCaseType();
16178
- this.sub = this.idamIdFormControl.valueChanges.pipe(operators.tap(function () { return _this.showAutocomplete = false; }), operators.tap(function () { return _this.filteredJudicialUsers = []; }), operators.debounceTime(300), operators.filter(function (searchTerm) { return searchTerm && searchTerm.length > _this.MINIMUM_SEARCH_CHARACTERS; }), operators.switchMap(function (searchTerm) { return _this.filterJudicialUsers(searchTerm).pipe(operators.tap(function () { return _this.showAutocomplete = true; }), operators.catchError(function () { return _this.filteredJudicialUsers = []; })); })).subscribe(function (judicialUsers) {
16179
- _this.filteredJudicialUsers = judicialUsers;
16180
- });
16364
+ this.filteredJudicialUsers$ = this.judicialUserControl.valueChanges.pipe(operators.tap(function () { return _this.showAutocomplete = false; }), operators.debounceTime(300),
16365
+ // Need to check type of input because it changes to object (i.e. JudicialUser) when a value is selected from the
16366
+ // autocomplete panel, instead of string when a value is being typed in
16367
+ operators.map(function (input) { return typeof input === 'string' ? input : input === null || input === void 0 ? void 0 : input.fullName; }), operators.tap(function (searchTerm) {
16368
+ _this.searchTerm = searchTerm;
16369
+ _this.invalidSearchTerm = false;
16370
+ }), operators.filter(function (searchTerm) { return searchTerm && searchTerm.length > _this.minSearchCharacters; }), operators.switchMap(function (searchTerm) { return _this.filterJudicialUsers(searchTerm).pipe(operators.tap(function (judicialUsers) {
16371
+ _this.showAutocomplete = true;
16372
+ _this.noResults = !_this.invalidSearchTerm && judicialUsers.length === 0;
16373
+ })); }));
16181
16374
  if ((_a = this.caseField.value) === null || _a === void 0 ? void 0 : _a.personalCode) {
16182
16375
  this.loadJudicialUser(this.caseField.value.personalCode);
16183
16376
  }
@@ -16187,17 +16380,22 @@
16187
16380
  return this.caseFlagRefDataService.getHmctsServiceDetailsByCaseType(this.caseType).pipe(
16188
16381
  // If an error occurs retrieving HMCTS service details by case type ID, try by service name instead
16189
16382
  operators.catchError(function (_) { return _this.caseFlagRefDataService.getHmctsServiceDetailsByServiceName(_this.jurisdiction); }),
16190
- // Use switchMap to return an inner Observable of the flag types data, having received the service details
16383
+ // Use switchMap to return an inner Observable of the judicial users data, having received the service details
16191
16384
  // including service_code. This avoids having nested `subscribe`s, which is an anti-pattern!
16192
- operators.switchMap(function (serviceDetails) { return _this.jurisdictionService.searchJudicialUsers(searchTerm, serviceDetails[0].service_code); }));
16385
+ operators.switchMap(function (serviceDetails) {
16386
+ return _this.jurisdictionService.searchJudicialUsers(searchTerm, serviceDetails[0].service_code).pipe(
16387
+ // Handle any errors here rather than outside of the function, so that the outer Observable is kept live
16388
+ operators.catchError(function (_) {
16389
+ _this.invalidSearchTerm = true;
16390
+ return rxjs.of(undefined);
16391
+ }));
16392
+ }));
16193
16393
  };
16194
16394
  WriteJudicialUserFieldComponent.prototype.loadJudicialUser = function (personalCode) {
16195
16395
  var _this = this;
16196
16396
  if (personalCode) {
16197
- this.jurisdictionService.searchJudicialUsersByPersonalCodes([personalCode]).subscribe(function (judicialUsers) {
16198
- var judicialUser = judicialUsers[0];
16199
- _this.idamIdFormControl.setValue(judicialUser.fullName + " (" + judicialUser.emailId + ")");
16200
- _this.personalCodeFormControl.setValue(judicialUser.personalCode);
16397
+ this.jurisdictionService.searchJudicialUsersByPersonalCodes([personalCode]).pipe(operators.take(1)).subscribe(function (judicialUsers) {
16398
+ _this.judicialUserControl.setValue(judicialUsers[0]);
16201
16399
  });
16202
16400
  }
16203
16401
  };
@@ -16209,35 +16407,75 @@
16209
16407
  this.caseType = caseInfo === null || caseInfo === void 0 ? void 0 : caseInfo.caseType;
16210
16408
  }
16211
16409
  };
16212
- WriteJudicialUserFieldComponent.prototype.onSelectionChange = function (judicialUser) {
16213
- this.idamIdFormControl.setValue(judicialUser.fullName + " (" + judicialUser.emailId + ")");
16214
- this.personalCodeFormControl.setValue(judicialUser.personalCode);
16410
+ WriteJudicialUserFieldComponent.prototype.displayJudicialUser = function (judicialUser) {
16411
+ return judicialUser
16412
+ ? "" + (judicialUser.fullName ? judicialUser.fullName : '') + (judicialUser.emailId ? " (" + judicialUser.emailId + ")" : '')
16413
+ : undefined;
16215
16414
  };
16216
- WriteJudicialUserFieldComponent.prototype.ngOnDestroy = function () {
16217
- if (this.sub) {
16218
- this.sub.unsubscribe();
16415
+ WriteJudicialUserFieldComponent.prototype.onSelectionChange = function (event) {
16416
+ var _a, _b;
16417
+ // The event.source.value property is a JudicialUserModel object instance; use this to update both the caseField
16418
+ // value and the values of the two FormControls for the idamId and personalCode properties of the JudicialUser
16419
+ // complex field type (these values will appear in the data payload for validation and submission)
16420
+ this.caseField.value = {
16421
+ idamId: event.source.value.idamId,
16422
+ personalCode: event.source.value.personalCode
16423
+ };
16424
+ (_a = this.complexGroup.get('idamId')) === null || _a === void 0 ? void 0 : _a.setValue(this.caseField.value.idamId);
16425
+ (_b = this.complexGroup.get('personalCode')) === null || _b === void 0 ? void 0 : _b.setValue(this.caseField.value.personalCode);
16426
+ this.judicialUserSelected = true;
16427
+ };
16428
+ WriteJudicialUserFieldComponent.prototype.onBlur = function (event) {
16429
+ var _a, _b, _c;
16430
+ // If the user types into the JudicialUser field but doesn't select a value from the autocomplete list, reset the
16431
+ // FormControl value to null to ensure it fails validation (can check the event.relatedTarget property)
16432
+ if (((_a = event.relatedTarget) === null || _a === void 0 ? void 0 : _a.role) !== 'option' && !this.judicialUserSelected) {
16433
+ // If relatedTarget.role is not "option", it means the user didn't select a value
16434
+ this.judicialUserControl.setValue(null);
16435
+ }
16436
+ if (!this.judicialUserControl.value) {
16437
+ // If the user deletes the field value, set the caseField value and the values of the two FormControls for
16438
+ // idamId and personalCode to null. This is to avoid judicial user data being present in the data payload
16439
+ // unintentionally
16440
+ this.caseField.value = null;
16441
+ (_b = this.complexGroup.get('idamId')) === null || _b === void 0 ? void 0 : _b.setValue(null);
16442
+ (_c = this.complexGroup.get('personalCode')) === null || _c === void 0 ? void 0 : _c.setValue(null);
16443
+ }
16444
+ };
16445
+ WriteJudicialUserFieldComponent.prototype.setupValidation = function () {
16446
+ // Need to remove validators from the two FormControls, idamId and personalCode, for the JudicialUser complex
16447
+ // field type. This prevents these hidden fields being listed in an error message if there are validation errors
16448
+ this.complexGroup.get('idamId').clearValidators();
16449
+ this.complexGroup.get('personalCode').clearValidators();
16450
+ if (this.caseField.display_context === Constants.MANDATORY) {
16451
+ this.judicialUserControl.setValidators(i2$1.Validators.required);
16219
16452
  }
16220
16453
  };
16221
16454
  return WriteJudicialUserFieldComponent;
16222
- }(AbstractFieldWriteComponent));
16223
- WriteJudicialUserFieldComponent.ɵfac = function WriteJudicialUserFieldComponent_Factory(t) { return new (t || WriteJudicialUserFieldComponent)(i0__namespace.ɵɵdirectiveInject(JurisdictionService), i0__namespace.ɵɵdirectiveInject(SessionStorageService), i0__namespace.ɵɵdirectiveInject(CaseFlagRefdataService)); };
16224
- WriteJudicialUserFieldComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: WriteJudicialUserFieldComponent, selectors: [["ccd-write-judicial-user-field"]], features: [i0__namespace.ɵɵInheritDefinitionFeature], decls: 9, vars: 9, consts: [[1, "form-group", 3, "formGroup"], [3, "for"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], [1, "form-control", "bottom-30", 3, "id", "formControl", "matAutocomplete"], ["autoActiveFirstOption", ""], ["autoComplete", "matAutocomplete"], ["class", "select-option", 3, "ngClass", "value", "onSelectionChange", 4, "ngFor", "ngForOf"], ["class", "select-option", 4, "ngIf"], [1, "form-label"], [1, "form-hint"], [1, "select-option", 3, "ngClass", "value", "onSelectionChange"], [1, "select-option"]], template: function WriteJudicialUserFieldComponent_Template(rf, ctx) {
16455
+ }(WriteComplexFieldComponent));
16456
+ WriteJudicialUserFieldComponent.ɵfac = function WriteJudicialUserFieldComponent_Factory(t) { return new (t || WriteJudicialUserFieldComponent)(i0__namespace.ɵɵdirectiveInject(JurisdictionService), i0__namespace.ɵɵdirectiveInject(SessionStorageService), i0__namespace.ɵɵdirectiveInject(CaseFlagRefdataService), i0__namespace.ɵɵdirectiveInject(IsCompoundPipe), i0__namespace.ɵɵdirectiveInject(FormValidatorsService)); };
16457
+ WriteJudicialUserFieldComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: WriteJudicialUserFieldComponent, selectors: [["ccd-write-judicial-user-field"]], features: [i0__namespace.ɵɵInheritDefinitionFeature], decls: 12, vars: 17, consts: [[1, "form-group", 3, "formGroup", "ngClass"], [3, "for"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "form-control", "bottom-30", 3, "id", "formControl", "matAutocomplete", "blur"], ["autoActiveFirstOption", "", 3, "displayWith"], ["autoComplete", "matAutocomplete"], ["class", "select-option", 3, "ngClass", "value", "onSelectionChange", 4, "ngFor", "ngForOf"], ["class", "select-option", "disabled", "", 4, "ngIf"], [1, "form-label"], [1, "form-hint"], [1, "error-message"], [1, "select-option", 3, "ngClass", "value", "onSelectionChange"], ["disabled", "", 1, "select-option"]], template: function WriteJudicialUserFieldComponent_Template(rf, ctx) {
16225
16458
  if (rf & 1) {
16226
16459
  i0__namespace.ɵɵelementStart(0, "div", 0);
16227
16460
  i0__namespace.ɵɵelementStart(1, "label", 1);
16228
16461
  i0__namespace.ɵɵtemplate(2, WriteJudicialUserFieldComponent_span_2_Template, 3, 3, "span", 2);
16229
16462
  i0__namespace.ɵɵelementEnd();
16230
16463
  i0__namespace.ɵɵtemplate(3, WriteJudicialUserFieldComponent_span_3_Template, 2, 1, "span", 3);
16231
- i0__namespace.ɵɵelement(4, "input", 4);
16232
- i0__namespace.ɵɵelementStart(5, "mat-autocomplete", 5, 6);
16233
- i0__namespace.ɵɵtemplate(7, WriteJudicialUserFieldComponent_mat_option_7_Template, 2, 6, "mat-option", 7);
16234
- i0__namespace.ɵɵtemplate(8, WriteJudicialUserFieldComponent_mat_option_8_Template, 2, 0, "mat-option", 8);
16464
+ i0__namespace.ɵɵtemplate(4, WriteJudicialUserFieldComponent_span_4_Template, 3, 4, "span", 4);
16465
+ i0__namespace.ɵɵelementStart(5, "input", 5);
16466
+ i0__namespace.ɵɵlistener("blur", function WriteJudicialUserFieldComponent_Template_input_blur_5_listener($event) { return ctx.onBlur($event); });
16467
+ i0__namespace.ɵɵelementEnd();
16468
+ i0__namespace.ɵɵelementStart(6, "mat-autocomplete", 6, 7);
16469
+ i0__namespace.ɵɵtemplate(8, WriteJudicialUserFieldComponent_mat_option_8_Template, 2, 6, "mat-option", 8);
16470
+ i0__namespace.ɵɵpipe(9, "async");
16471
+ i0__namespace.ɵɵtemplate(10, WriteJudicialUserFieldComponent_mat_option_10_Template, 2, 0, "mat-option", 9);
16472
+ i0__namespace.ɵɵtemplate(11, WriteJudicialUserFieldComponent_mat_option_11_Template, 2, 0, "mat-option", 9);
16235
16473
  i0__namespace.ɵɵelementEnd();
16236
16474
  i0__namespace.ɵɵelementEnd();
16237
16475
  }
16238
16476
  if (rf & 2) {
16239
- var _r2 = i0__namespace.ɵɵreference(6);
16240
- i0__namespace.ɵɵproperty("formGroup", ctx.judicialUserFormGroup);
16477
+ var _r3 = i0__namespace.ɵɵreference(7);
16478
+ i0__namespace.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0__namespace.ɵɵpureFunction1(15, _c1$g, !!ctx.judicialUserControl && ctx.errors));
16241
16479
  i0__namespace.ɵɵadvance(1);
16242
16480
  i0__namespace.ɵɵproperty("for", ctx.id());
16243
16481
  i0__namespace.ɵɵadvance(1);
@@ -16245,13 +16483,19 @@
16245
16483
  i0__namespace.ɵɵadvance(1);
16246
16484
  i0__namespace.ɵɵproperty("ngIf", ctx.caseField.hint_text);
16247
16485
  i0__namespace.ɵɵadvance(1);
16248
- i0__namespace.ɵɵproperty("id", ctx.id())("formControl", ctx.idamIdFormControl)("matAutocomplete", _r2);
16249
- i0__namespace.ɵɵadvance(3);
16250
- i0__namespace.ɵɵproperty("ngForOf", ctx.filteredJudicialUsers);
16486
+ i0__namespace.ɵɵproperty("ngIf", ctx.errors);
16487
+ i0__namespace.ɵɵadvance(1);
16488
+ i0__namespace.ɵɵproperty("id", ctx.id())("formControl", ctx.judicialUserControl)("matAutocomplete", _r3);
16489
+ i0__namespace.ɵɵadvance(1);
16490
+ i0__namespace.ɵɵproperty("displayWith", ctx.displayJudicialUser);
16491
+ i0__namespace.ɵɵadvance(2);
16492
+ i0__namespace.ɵɵproperty("ngForOf", i0__namespace.ɵɵpipeBind1(9, 13, ctx.filteredJudicialUsers$));
16493
+ i0__namespace.ɵɵadvance(2);
16494
+ i0__namespace.ɵɵproperty("ngIf", ctx.noResults && ctx.searchTerm && ctx.searchTerm.length > ctx.minSearchCharacters && ctx.showAutocomplete);
16251
16495
  i0__namespace.ɵɵadvance(1);
16252
- i0__namespace.ɵɵproperty("ngIf", !(ctx.filteredJudicialUsers == null ? null : ctx.filteredJudicialUsers.length) && ctx.showAutocomplete);
16496
+ i0__namespace.ɵɵproperty("ngIf", ctx.invalidSearchTerm);
16253
16497
  }
16254
- }, directives: [i2__namespace$1.NgControlStatusGroup, i2__namespace$1.FormGroupDirective, i2__namespace.NgIf, i2__namespace$1.DefaultValueAccessor, i4__namespace.MatAutocompleteTrigger, i2__namespace$1.NgControlStatus, i2__namespace$1.FormControlDirective, i4__namespace.MatAutocomplete, i2__namespace.NgForOf, i5__namespace.MatOption, i2__namespace.NgClass], pipes: [FieldLabelPipe], styles: [".mat-option[_ngcontent-%COMP%]:hover{background:#2596be}.mat-option.select-option[_ngcontent-%COMP%]:hover{background:#1d70b8;color:#fff}.hide-autocomplete[_ngcontent-%COMP%]{display:none}"] });
16498
+ }, directives: [i2__namespace$1.NgControlStatusGroup, i2__namespace$1.FormGroupDirective, i2__namespace.NgClass, i2__namespace.NgIf, i2__namespace$1.DefaultValueAccessor, i5__namespace.MatAutocompleteTrigger, i2__namespace$1.NgControlStatus, i2__namespace$1.FormControlDirective, i5__namespace.MatAutocomplete, i2__namespace.NgForOf, i6__namespace.MatOption], pipes: [i2__namespace.AsyncPipe, FieldLabelPipe, FirstErrorPipe], styles: [".mat-option[_ngcontent-%COMP%]:hover{background:#2596be}.mat-option.select-option[_ngcontent-%COMP%]:hover{background:#1d70b8;color:#fff}.hide-autocomplete[_ngcontent-%COMP%]{display:none}"] });
16255
16499
  (function () {
16256
16500
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(WriteJudicialUserFieldComponent, [{
16257
16501
  type: i0.Component,
@@ -16260,7 +16504,7 @@
16260
16504
  styleUrls: ['./write-judicial-user-field.component.scss'],
16261
16505
  templateUrl: './write-judicial-user-field.component.html'
16262
16506
  }]
16263
- }], function () { return [{ type: JurisdictionService }, { type: SessionStorageService }, { type: CaseFlagRefdataService }]; }, null);
16507
+ }], function () { return [{ type: JurisdictionService }, { type: SessionStorageService }, { type: CaseFlagRefdataService }, { type: IsCompoundPipe }, { type: FormValidatorsService }]; }, null);
16264
16508
  })();
16265
16509
 
16266
16510
  function LabelFieldComponent_ccd_markdown_2_Template(rf, ctx) {
@@ -23168,7 +23412,7 @@
23168
23412
  i0__namespace.ɵɵadvance(1);
23169
23413
  i0__namespace.ɵɵproperty("ngIf", ctx.isCheckboxEnabled);
23170
23414
  }
23171
- }, directives: [i2__namespace$1.NgControlStatusGroup, i2__namespace$1.FormGroupDirective, i2__namespace.NgClass, i2__namespace.NgIf, i3__namespace$1.MatInput, i2__namespace$1.DefaultValueAccessor, i4__namespace.MatAutocompleteTrigger, i2__namespace$1.NgControlStatus, i2__namespace$1.FormControlName, i4__namespace.MatAutocomplete, i2__namespace.NgForOf, i5__namespace.MatOption], pipes: [i2__namespace.AsyncPipe], styles: [".autocomplete__input--show-all-values[_ngcontent-%COMP%]{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down[_ngcontent-%COMP%]{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu[_ngcontent-%COMP%]{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible[_ngcontent-%COMP%]{display:block}.autocomplete__menu--hidden[_ngcontent-%COMP%]{display:none}.autocomplete__menu--overlay[_ngcontent-%COMP%]{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline[_ngcontent-%COMP%]{position:relative}.autocomplete__option[_ngcontent-%COMP%]{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{pointer-events:none}.autocomplete__option[_ngcontent-%COMP%]:first-of-type{border-top-width:0}.autocomplete__option[_ngcontent-%COMP%]:last-of-type{border-bottom-width:0}.autocomplete__option--odd[_ngcontent-%COMP%]{background-color:#fafafa}.autocomplete__option--focused[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results[_ngcontent-%COMP%]{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.25}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{padding:5px}@media (min-width:641px){.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.31579}}.div-action[_ngcontent-%COMP%]{display:inline-block}.add-location[_ngcontent-%COMP%]{display:inline}.remove-location-button[_ngcontent-%COMP%]{margin:5px}.hide-autocomplete[_ngcontent-%COMP%]{display:none}.auto-complete-container[_ngcontent-%COMP%]{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input[_ngcontent-%COMP%]{line-height:24px;font-size:19px}.hidden[_ngcontent-%COMP%]{display:none}.search-language__input[_ngcontent-%COMP%]{position:relative;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='%23505a5f'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center left -2px;background-size:40px 40px;padding-left:35px}"] });
23415
+ }, directives: [i2__namespace$1.NgControlStatusGroup, i2__namespace$1.FormGroupDirective, i2__namespace.NgClass, i2__namespace.NgIf, i3__namespace$1.MatInput, i2__namespace$1.DefaultValueAccessor, i5__namespace.MatAutocompleteTrigger, i2__namespace$1.NgControlStatus, i2__namespace$1.FormControlName, i5__namespace.MatAutocomplete, i2__namespace.NgForOf, i6__namespace.MatOption], pipes: [i2__namespace.AsyncPipe], styles: [".autocomplete__input--show-all-values[_ngcontent-%COMP%]{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down[_ngcontent-%COMP%]{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu[_ngcontent-%COMP%]{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible[_ngcontent-%COMP%]{display:block}.autocomplete__menu--hidden[_ngcontent-%COMP%]{display:none}.autocomplete__menu--overlay[_ngcontent-%COMP%]{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline[_ngcontent-%COMP%]{position:relative}.autocomplete__option[_ngcontent-%COMP%]{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{pointer-events:none}.autocomplete__option[_ngcontent-%COMP%]:first-of-type{border-top-width:0}.autocomplete__option[_ngcontent-%COMP%]:last-of-type{border-bottom-width:0}.autocomplete__option--odd[_ngcontent-%COMP%]{background-color:#fafafa}.autocomplete__option--focused[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results[_ngcontent-%COMP%]{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.25}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{padding:5px}@media (min-width:641px){.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.31579}}.div-action[_ngcontent-%COMP%]{display:inline-block}.add-location[_ngcontent-%COMP%]{display:inline}.remove-location-button[_ngcontent-%COMP%]{margin:5px}.hide-autocomplete[_ngcontent-%COMP%]{display:none}.auto-complete-container[_ngcontent-%COMP%]{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input[_ngcontent-%COMP%]{line-height:24px;font-size:19px}.hidden[_ngcontent-%COMP%]{display:none}.search-language__input[_ngcontent-%COMP%]{position:relative;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='%23505a5f'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center left -2px;background-size:40px 40px;padding-left:35px}"] });
23172
23416
  (function () {
23173
23417
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(SearchLanguageInterpreterComponent, [{
23174
23418
  type: i0.Component,
@@ -24906,7 +25150,7 @@
24906
25150
  };
24907
25151
  return DatetimePickerComponent;
24908
25152
  }(AbstractFormFieldComponent));
24909
- DatetimePickerComponent.ɵfac = function DatetimePickerComponent_Factory(t) { return new (t || DatetimePickerComponent)(i0__namespace.ɵɵdirectiveInject(FormatTranslatorService), i0__namespace.ɵɵdirectiveInject(i4$1.NGX_MAT_DATE_FORMATS)); };
25153
+ DatetimePickerComponent.ɵfac = function DatetimePickerComponent_Factory(t) { return new (t || DatetimePickerComponent)(i0__namespace.ɵɵdirectiveInject(FormatTranslatorService), i0__namespace.ɵɵdirectiveInject(i4.NGX_MAT_DATE_FORMATS)); };
24910
25154
  DatetimePickerComponent.ɵcmp = i0__namespace.ɵɵdefineComponent({ type: DatetimePickerComponent, selectors: [["ccd-datetime-picker"]], viewQuery: function DatetimePickerComponent_Query(rf, ctx) {
24911
25155
  if (rf & 1) {
24912
25156
  i0__namespace.ɵɵviewQuery(_c0$i, 1);
@@ -24918,10 +25162,10 @@
24918
25162
  i0__namespace.ɵɵqueryRefresh(_t = i0__namespace.ɵɵloadQuery()) && (ctx.inputElement = _t.first);
24919
25163
  }
24920
25164
  }, inputs: { dateControl: "dateControl" }, features: [i0__namespace.ɵɵProvidersFeature([
24921
- { provide: i4$1.NGX_MAT_DATE_FORMATS, useValue: CUSTOM_MOMENT_FORMATS },
24922
- { provide: i4$1.NgxMatDateAdapter,
25165
+ { provide: i4.NGX_MAT_DATE_FORMATS, useValue: CUSTOM_MOMENT_FORMATS },
25166
+ { provide: i4.NgxMatDateAdapter,
24923
25167
  useClass: momentAdapter.NgxMatMomentAdapter,
24924
- deps: [i5.MAT_DATE_LOCALE, momentAdapter.NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS]
25168
+ deps: [i6.MAT_DATE_LOCALE, momentAdapter.NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS]
24925
25169
  },
24926
25170
  { provide: momentAdapter.NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }
24927
25171
  ]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 14, vars: 26, consts: [[1, "govuk-form-group", "bottom-30", 3, "id", "ngClass"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "datepicker-container"], ["ng-model-options", "{timezone:'utc'}", 1, "govuk-input", 3, "min", "max", "formControl", "ngxMatDatetimePicker", "focusin", "focusout", "dateChange"], ["input", ""], ["matSuffix", "", "id", "pickerOpener", 3, "for"], [3, "color", "touchUi", "hideTime", "startView", "stepHour", "stepSecond", "stepMinute", "showSeconds", "showSpinners", "disableMinute", "enableMeridian", "yearSelected", "monthSelected", "opened"], ["picker", ""], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function DatetimePickerComponent_Template(rf, ctx) {
@@ -24968,7 +25212,7 @@
24968
25212
  i0__namespace.ɵɵadvance(1);
24969
25213
  i0__namespace.ɵɵproperty("color", ctx.color)("touchUi", ctx.touchUi)("hideTime", ctx.hideTime)("startView", ctx.startView)("stepHour", ctx.stepHour)("stepSecond", ctx.stepSecond)("stepMinute", ctx.stepMinute)("showSeconds", ctx.showSeconds)("showSpinners", ctx.showSpinners)("disableMinute", ctx.disableMinute)("enableMeridian", ctx.enableMeridian);
24970
25214
  }
24971
- }, directives: [i2__namespace.NgClass, i2__namespace.NgIf, i2__namespace$1.DefaultValueAccessor, i4__namespace$1.NgxMatDatetimeInput, i2__namespace$1.NgControlStatus, i2__namespace$1.FormControlDirective, i5__namespace$1.MatDatepickerToggle, i6__namespace.MatSuffix, i4__namespace$1.NgxMatDatetimePicker], pipes: [i1__namespace.RpxTranslatePipe, FieldLabelPipe, FirstErrorPipe], styles: ["@charset \"UTF-8\";.datepicker-container{display:inline-block;position:relative;min-width:298px}.datepicker-container .govuk-input{height:35px;min-width:298px;width:auto;padding-right:40px;border:1px solid #000}.datepicker-container .govuk-input:focus{outline:1px solid #fd0;border:1px solid #000}.datepicker-container .govuk-input::-ms-clear{display:none}.datepicker-container .datepicker-wrapper-input{position:relative;display:inline-block;top:-20%;border:0}.datepicker-container .datepicker-wrapper-input:focus{border:0;outline:none}.datepicker-container .mat-icon-button{height:32px;width:32px}.datepicker-container .mat-icon-button:focus{outline:1px solid #fd0}.datepicker-container .mat-icon-button .mat-datepicker-toggle-default-icon{position:relative;top:-5px}.datepicker-container .mat-datepicker-toggle{position:absolute;right:0}.cdk-overlay-container .mat-datepicker-content{border:1px solid #000;border-radius:0;max-width:295px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table{width:calc(100% - 1px);table-layout:fixed}.cdk-overlay-container .mat-datepicker-content .mat-calendar-header{height:34px;border-bottom:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button{left:14%;min-width:125px;border-right:1px ridge #bfc1c3;border-left:1px ridge #bfc1c3;border-radius:0;top:-20px;width:200%}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button .mat-button-wrapper{text-align:center;font-weight:700}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button:focus{border:2px solid #000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button{left:-73%;top:-20px;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:after{border-left-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button{top:-20px;left:1%;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:after{border-right-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-button-wrapper{text-transform:capitalize!important}.cdk-overlay-container .mat-datepicker-content .mat-calendar{border-bottom:1px solid #000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider{padding:0;border-bottom:none}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider:after{height:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-content{padding:0}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header{color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header th.ng-star-inserted{font-weight:700;font-size:15px;padding-top:2%;padding-bottom:2%;-moz-column-width:20px;column-width:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th{visibility:hidden}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:after{visibility:visible;color:#000;position:relative;left:-15px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:first-of-type:after{content:\"MON\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(2):after{left:-12px;content:\"TUE\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(3):after{left:-18px;content:\"WED\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(4):after{left:-14px;content:\"THU\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(5):after{left:-10px;content:\"FRI\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(6):after{content:\"SAT\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(7):after{content:\"SUN\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-label{font-weight:700;font-size:large;color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-selected{border:none;background-color:transparent;color:#fff}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-today{border:none;box-shadow:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell{border:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #fd0;border:2px solid #000;outline-offset:1px;z-index:1}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table{border-collapse:separate;border-spacing:10px}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:2px solid #fd0}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table{border-collapse:separate;border-spacing:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table tr:first-of-type{visibility:collapse}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #fd0;border:2px solid #000;outline-offset:1px}.cdk-overlay-container .mat-datepicker-content .time-container{height:80px;padding-top:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table{margin-left:0!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tbody{position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon-button .mat-button-wrapper{width:auto;height:auto}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon-button:focus{outline:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child{position:absolute;left:49px;top:15px;z-index:2}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:first-child [aria-label=\"expand_less icon\"]{position:absolute;left:-2px;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(3) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:82px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(5) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:169px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:last-child [aria-label=\"expand_less icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(2) [aria-label=\"expand_less icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2){display:flex;padding:20px 0 20px 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field{width:50px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field:before{color:#000;content:\"Hours\";position:relative;top:-5px;left:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-child(3) .mat-form-field:before{color:#000;content:\"Minutes\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:last-child{text-align:left;left:-15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .mat-form-field-disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-of-type(5) .mat-form-field:before{color:#000;content:\"Seconds\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian{border-bottom:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button{height:30px;top:21px;border-radius:0;color:#000;border-color:#000;background-color:#dee0e2;display:flex;justify-content:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button .mat-button-wrapper{position:relative;top:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4){display:flex;padding:2rem 0 2rem 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td:last-child{text-align:left}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child{position:absolute;left:49px;top:40px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:first-child [aria-label=\"expand_more icon\"]{position:absolute;top:15px;left:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(3) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;left:82px!important;top:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(5) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;top:15px;left:169px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:last-child [aria-label=\"expand_more icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:last-child.ng-star-inserted [aria-label=\"expand_more icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr td{padding:0;border-bottom:0;position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .spacer{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon{visibility:hidden;display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-button-wrapper{display:block;width:15px;height:8px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-wrapper{padding-bottom:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field{width:auto;max-width:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_less icon\"].mat-icon-button .mat-button-wrapper:after{content:\" \u25B2\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_more icon\"].mat-icon-button .mat-button-wrapper:after{content:\"\u25BC\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex .mat-form-field-infix{border:1px solid #000;height:20px;width:37px;display:flex;justify-content:center;align-items:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-underline{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input{height:33px;width:37px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .actions{padding-bottom:20px;margin-top:20px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .actions .mat-button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px 0 #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:focus{outline:2px solid #fd0}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:hover{background-color:#006400}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-icon{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-button-wrapper:before{color:#fff;content:\"Confirm\";position:relative;font-size:15px;left:-3px}"], encapsulation: 2 });
25215
+ }, directives: [i2__namespace.NgClass, i2__namespace.NgIf, i2__namespace$1.DefaultValueAccessor, i4__namespace.NgxMatDatetimeInput, i2__namespace$1.NgControlStatus, i2__namespace$1.FormControlDirective, i5__namespace$1.MatDatepickerToggle, i6__namespace$1.MatSuffix, i4__namespace.NgxMatDatetimePicker], pipes: [i1__namespace.RpxTranslatePipe, FieldLabelPipe, FirstErrorPipe], styles: ["@charset \"UTF-8\";.datepicker-container{display:inline-block;position:relative;min-width:298px}.datepicker-container .govuk-input{height:35px;min-width:298px;width:auto;padding-right:40px;border:1px solid #000}.datepicker-container .govuk-input:focus{outline:1px solid #fd0;border:1px solid #000}.datepicker-container .govuk-input::-ms-clear{display:none}.datepicker-container .datepicker-wrapper-input{position:relative;display:inline-block;top:-20%;border:0}.datepicker-container .datepicker-wrapper-input:focus{border:0;outline:none}.datepicker-container .mat-icon-button{height:32px;width:32px}.datepicker-container .mat-icon-button:focus{outline:1px solid #fd0}.datepicker-container .mat-icon-button .mat-datepicker-toggle-default-icon{position:relative;top:-5px}.datepicker-container .mat-datepicker-toggle{position:absolute;right:0}.cdk-overlay-container .mat-datepicker-content{border:1px solid #000;border-radius:0;max-width:295px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table{width:calc(100% - 1px);table-layout:fixed}.cdk-overlay-container .mat-datepicker-content .mat-calendar-header{height:34px;border-bottom:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button{left:14%;min-width:125px;border-right:1px ridge #bfc1c3;border-left:1px ridge #bfc1c3;border-radius:0;top:-20px;width:200%}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button .mat-button-wrapper{text-align:center;font-weight:700}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button:focus{border:2px solid #000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button{left:-73%;top:-20px;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:after{border-left-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button{top:-20px;left:1%;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:after{border-right-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-button-wrapper{text-transform:capitalize!important}.cdk-overlay-container .mat-datepicker-content .mat-calendar{border-bottom:1px solid #000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider{padding:0;border-bottom:none}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider:after{height:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-content{padding:0}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header{color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header th.ng-star-inserted{font-weight:700;font-size:15px;padding-top:2%;padding-bottom:2%;-moz-column-width:20px;column-width:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th{visibility:hidden}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:after{visibility:visible;color:#000;position:relative;left:-15px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:first-of-type:after{content:\"MON\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(2):after{left:-12px;content:\"TUE\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(3):after{left:-18px;content:\"WED\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(4):after{left:-14px;content:\"THU\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(5):after{left:-10px;content:\"FRI\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(6):after{content:\"SAT\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:first-of-type th:nth-of-type(7):after{content:\"SUN\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-label{font-weight:700;font-size:large;color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-selected{border:none;background-color:transparent;color:#fff}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-today{border:none;box-shadow:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell{border:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #fd0;border:2px solid #000;outline-offset:1px;z-index:1}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table{border-collapse:separate;border-spacing:10px}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:2px solid #fd0}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table{border-collapse:separate;border-spacing:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table tr:first-of-type{visibility:collapse}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #fd0;border:2px solid #000;outline-offset:1px}.cdk-overlay-container .mat-datepicker-content .time-container{height:80px;padding-top:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table{margin-left:0!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tbody{position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon-button .mat-button-wrapper{width:auto;height:auto}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon-button:focus{outline:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child{position:absolute;left:49px;top:15px;z-index:2}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:first-child [aria-label=\"expand_less icon\"]{position:absolute;left:-2px;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(3) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:82px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(5) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:169px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:last-child [aria-label=\"expand_less icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(2) [aria-label=\"expand_less icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2){display:flex;padding:20px 0 20px 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field{width:50px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field:before{color:#000;content:\"Hours\";position:relative;top:-5px;left:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-child(3) .mat-form-field:before{color:#000;content:\"Minutes\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:last-child{text-align:left;left:-15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .mat-form-field-disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-of-type(5) .mat-form-field:before{color:#000;content:\"Seconds\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian{border-bottom:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button{height:30px;top:21px;border-radius:0;color:#000;border-color:#000;background-color:#dee0e2;display:flex;justify-content:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button .mat-button-wrapper{position:relative;top:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4){display:flex;padding:2rem 0 2rem 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td:last-child{text-align:left}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child{position:absolute;left:49px;top:40px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:first-child [aria-label=\"expand_more icon\"]{position:absolute;top:15px;left:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(3) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;left:82px!important;top:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(5) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;top:15px;left:169px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:last-child [aria-label=\"expand_more icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:last-child.ng-star-inserted [aria-label=\"expand_more icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr td{padding:0;border-bottom:0;position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .spacer{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon{visibility:hidden;display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-button-wrapper{display:block;width:15px;height:8px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-wrapper{padding-bottom:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field{width:auto;max-width:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_less icon\"].mat-icon-button .mat-button-wrapper:after{content:\" \u25B2\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_more icon\"].mat-icon-button .mat-button-wrapper:after{content:\"\u25BC\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex .mat-form-field-infix{border:1px solid #000;height:20px;width:37px;display:flex;justify-content:center;align-items:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-underline{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input{height:33px;width:37px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .actions{padding-bottom:20px;margin-top:20px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .actions .mat-button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px 0 #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:focus{outline:2px solid #fd0}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:hover{background-color:#006400}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-icon{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-button-wrapper:before{color:#fff;content:\"Confirm\";position:relative;font-size:15px;left:-3px}"], encapsulation: 2 });
24972
25216
  (function () {
24973
25217
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(DatetimePickerComponent, [{
24974
25218
  type: i0.Component,
@@ -24978,10 +25222,10 @@
24978
25222
  styleUrls: ['./datetime-picker.component.scss'],
24979
25223
  encapsulation: i0.ViewEncapsulation.None,
24980
25224
  providers: [
24981
- { provide: i4$1.NGX_MAT_DATE_FORMATS, useValue: CUSTOM_MOMENT_FORMATS },
24982
- { provide: i4$1.NgxMatDateAdapter,
25225
+ { provide: i4.NGX_MAT_DATE_FORMATS, useValue: CUSTOM_MOMENT_FORMATS },
25226
+ { provide: i4.NgxMatDateAdapter,
24983
25227
  useClass: momentAdapter.NgxMatMomentAdapter,
24984
- deps: [i5.MAT_DATE_LOCALE, momentAdapter.NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS]
25228
+ deps: [i6.MAT_DATE_LOCALE, momentAdapter.NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS]
24985
25229
  },
24986
25230
  { provide: momentAdapter.NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }
24987
25231
  ]
@@ -24989,7 +25233,7 @@
24989
25233
  }], function () {
24990
25234
  return [{ type: FormatTranslatorService }, { type: undefined, decorators: [{
24991
25235
  type: i0.Inject,
24992
- args: [i4$1.NGX_MAT_DATE_FORMATS]
25236
+ args: [i4.NGX_MAT_DATE_FORMATS]
24993
25237
  }] }];
24994
25238
  }, { datetimePicker: [{
24995
25239
  type: i0.ViewChild,
@@ -26644,7 +26888,7 @@
26644
26888
  CommonDataService,
26645
26889
  JurisdictionService,
26646
26890
  LinkedCasesService,
26647
- { provide: i5.MAT_DATE_LOCALE, useValue: 'en-GB' }
26891
+ { provide: i6.MAT_DATE_LOCALE, useValue: 'en-GB' }
26648
26892
  ], imports: [[
26649
26893
  i2.CommonModule,
26650
26894
  i1$1.RouterModule,
@@ -26661,13 +26905,13 @@
26661
26905
  TabsModule,
26662
26906
  LabelSubstitutorModule,
26663
26907
  i1$4.NgxMdModule,
26664
- i4$1.NgxMatDatetimePickerModule,
26665
- i4$1.NgxMatTimepickerModule,
26666
- i4$1.NgxMatNativeDateModule,
26667
- i6.MatFormFieldModule,
26908
+ i4.NgxMatDatetimePickerModule,
26909
+ i4.NgxMatTimepickerModule,
26910
+ i4.NgxMatNativeDateModule,
26911
+ i6$1.MatFormFieldModule,
26668
26912
  i3$1.MatInputModule,
26669
26913
  i5$1.MatDatepickerModule,
26670
- i4.MatAutocompleteModule,
26914
+ i5.MatAutocompleteModule,
26671
26915
  i7.CdkTreeModule,
26672
26916
  i1$5.OverlayModule,
26673
26917
  i3.PaymentLibModule,
@@ -26678,9 +26922,9 @@
26678
26922
  i1$3.MatDialogModule,
26679
26923
  i12.MediaViewerModule,
26680
26924
  LoadingModule
26681
- ], i4$1.NgxMatDatetimePickerModule,
26682
- i4$1.NgxMatNativeDateModule,
26683
- i4$1.NgxMatTimepickerModule,
26925
+ ], i4.NgxMatDatetimePickerModule,
26926
+ i4.NgxMatNativeDateModule,
26927
+ i4.NgxMatTimepickerModule,
26684
26928
  TabsModule,
26685
26929
  PaletteUtilsModule,
26686
26930
  PipesModule] });
@@ -26809,22 +27053,22 @@
26809
27053
  TabsModule,
26810
27054
  LabelSubstitutorModule,
26811
27055
  i1$4.NgxMdModule,
26812
- i4$1.NgxMatDatetimePickerModule,
26813
- i4$1.NgxMatTimepickerModule,
26814
- i4$1.NgxMatNativeDateModule,
26815
- i6.MatFormFieldModule,
27056
+ i4.NgxMatDatetimePickerModule,
27057
+ i4.NgxMatTimepickerModule,
27058
+ i4.NgxMatNativeDateModule,
27059
+ i6$1.MatFormFieldModule,
26816
27060
  i3$1.MatInputModule,
26817
27061
  i5$1.MatDatepickerModule,
26818
- i4.MatAutocompleteModule,
27062
+ i5.MatAutocompleteModule,
26819
27063
  i7.CdkTreeModule,
26820
27064
  i1$5.OverlayModule,
26821
27065
  i3.PaymentLibModule, i2__namespace$2.ScrollToModule, i1__namespace.RpxTranslationModule, i7.CdkTreeModule,
26822
27066
  i1$5.OverlayModule,
26823
27067
  i1$3.MatDialogModule,
26824
27068
  i12.MediaViewerModule,
26825
- LoadingModule], exports: [i4$1.NgxMatDatetimePickerModule,
26826
- i4$1.NgxMatNativeDateModule,
26827
- i4$1.NgxMatTimepickerModule,
27069
+ LoadingModule], exports: [i4.NgxMatDatetimePickerModule,
27070
+ i4.NgxMatNativeDateModule,
27071
+ i4.NgxMatTimepickerModule,
26828
27072
  TabsModule,
26829
27073
  PaletteUtilsModule,
26830
27074
  PipesModule, UnsupportedFieldComponent,
@@ -26954,13 +27198,13 @@
26954
27198
  TabsModule,
26955
27199
  LabelSubstitutorModule,
26956
27200
  i1$4.NgxMdModule,
26957
- i4$1.NgxMatDatetimePickerModule,
26958
- i4$1.NgxMatTimepickerModule,
26959
- i4$1.NgxMatNativeDateModule,
26960
- i6.MatFormFieldModule,
27201
+ i4.NgxMatDatetimePickerModule,
27202
+ i4.NgxMatTimepickerModule,
27203
+ i4.NgxMatNativeDateModule,
27204
+ i6$1.MatFormFieldModule,
26961
27205
  i3$1.MatInputModule,
26962
27206
  i5$1.MatDatepickerModule,
26963
- i4.MatAutocompleteModule,
27207
+ i5.MatAutocompleteModule,
26964
27208
  i7.CdkTreeModule,
26965
27209
  i1$5.OverlayModule,
26966
27210
  i3.PaymentLibModule,
@@ -26980,9 +27224,9 @@
26980
27224
  DocumentUrlPipe
26981
27225
  ], PALETTE_COMPONENTS),
26982
27226
  exports: __spread([
26983
- i4$1.NgxMatDatetimePickerModule,
26984
- i4$1.NgxMatNativeDateModule,
26985
- i4$1.NgxMatTimepickerModule,
27227
+ i4.NgxMatDatetimePickerModule,
27228
+ i4.NgxMatNativeDateModule,
27229
+ i4.NgxMatTimepickerModule,
26986
27230
  TabsModule,
26987
27231
  PaletteUtilsModule,
26988
27232
  PipesModule
@@ -27000,7 +27244,7 @@
27000
27244
  CommonDataService,
27001
27245
  JurisdictionService,
27002
27246
  LinkedCasesService,
27003
- { provide: i5.MAT_DATE_LOCALE, useValue: 'en-GB' }
27247
+ { provide: i6.MAT_DATE_LOCALE, useValue: 'en-GB' }
27004
27248
  ],
27005
27249
  entryComponents: [CaseFileViewFolderSelectorComponent]
27006
27250
  }]
@@ -28275,10 +28519,10 @@
28275
28519
  // tslint:disable-next-line:switch-default
28276
28520
  switch (portalType) {
28277
28521
  case EventCompletionPortalTypes.TaskCancelled:
28278
- this.selectedComponentPortal = new i6$1.ComponentPortal(CaseEventCompletionTaskCancelledComponent, null, injector);
28522
+ this.selectedComponentPortal = new i6$2.ComponentPortal(CaseEventCompletionTaskCancelledComponent, null, injector);
28279
28523
  break;
28280
28524
  case EventCompletionPortalTypes.TaskReassigned:
28281
- this.selectedComponentPortal = new i6$1.ComponentPortal(CaseEventCompletionTaskReassignedComponent, null, injector);
28525
+ this.selectedComponentPortal = new i6$2.ComponentPortal(CaseEventCompletionTaskReassignedComponent, null, injector);
28282
28526
  break;
28283
28527
  }
28284
28528
  };
@@ -28292,7 +28536,7 @@
28292
28536
  if (rf & 2) {
28293
28537
  i0__namespace.ɵɵproperty("cdkPortalOutlet", ctx.selectedComponentPortal);
28294
28538
  }
28295
- }, directives: [i6__namespace$1.CdkPortalOutlet], encapsulation: 2 });
28539
+ }, directives: [i6__namespace$2.CdkPortalOutlet], encapsulation: 2 });
28296
28540
  (function () {
28297
28541
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CaseEventCompletionComponent, [{
28298
28542
  type: i0.Component,
@@ -28352,7 +28596,7 @@
28352
28596
  LabelSubstitutorModule,
28353
28597
  ConditionalShowModule,
28354
28598
  ErrorsModule,
28355
- i6$1.PortalModule,
28599
+ i6$2.PortalModule,
28356
28600
  LoadingSpinnerModule,
28357
28601
  BannersModule,
28358
28602
  i1.RpxTranslationModule.forChild()
@@ -28377,7 +28621,7 @@
28377
28621
  LabelSubstitutorModule,
28378
28622
  ConditionalShowModule,
28379
28623
  ErrorsModule,
28380
- i6$1.PortalModule,
28624
+ i6$2.PortalModule,
28381
28625
  LoadingSpinnerModule,
28382
28626
  BannersModule, i1__namespace.RpxTranslationModule], exports: [CaseEditConfirmComponent,
28383
28627
  CaseEditComponent,
@@ -28402,7 +28646,7 @@
28402
28646
  LabelSubstitutorModule,
28403
28647
  ConditionalShowModule,
28404
28648
  ErrorsModule,
28405
- i6$1.PortalModule,
28649
+ i6$2.PortalModule,
28406
28650
  LoadingSpinnerModule,
28407
28651
  BannersModule,
28408
28652
  i1.RpxTranslationModule.forChild()
@@ -30698,6 +30942,7 @@
30698
30942
  CaseResolver.prototype.resolve = function (route) {
30699
30943
  var cid = route.paramMap.get(CaseResolver.PARAM_CASE_ID);
30700
30944
  if (!cid) {
30945
+ console.info('No case ID available in the route. Will navigate to case list.');
30701
30946
  // when redirected to case view after a case created, and the user has no READ access,
30702
30947
  // the post returns no id
30703
30948
  this.navigateToCaseList();
@@ -30721,8 +30966,10 @@
30721
30966
  };
30722
30967
  CaseResolver.prototype.getAndCacheCaseView = function (cid) {
30723
30968
  var _this = this;
30969
+ console.info('getAndCacheCaseView started.');
30724
30970
  if (this.caseNotifier.cachedCaseView && this.caseNotifier.cachedCaseView.case_id && this.caseNotifier.cachedCaseView.case_id === cid) {
30725
30971
  this.caseNotifier.announceCase(this.caseNotifier.cachedCaseView);
30972
+ console.info('getAndCacheCaseView - Path A.');
30726
30973
  return rxjs.of(this.caseNotifier.cachedCaseView).toPromise();
30727
30974
  }
30728
30975
  else {
@@ -30730,8 +30977,9 @@
30730
30977
  return this.getAndCacheDraft(cid);
30731
30978
  }
30732
30979
  else {
30980
+ console.info('getAndCacheCaseView - Path B.');
30733
30981
  return this.caseNotifier.fetchAndRefresh(cid)
30734
- .pipe(operators.catchError(function (error) { return _this.checkAuthorizationError(error, cid); }))
30982
+ .pipe(operators.catchError(function (error) { return _this.processErrorInCaseFetch(error, cid); }))
30735
30983
  .toPromise();
30736
30984
  }
30737
30985
  }
@@ -30744,9 +30992,11 @@
30744
30992
  _this.caseNotifier.cachedCaseView = classTransformer.plainToClassFromExist(new CaseView(), caseView);
30745
30993
  _this.caseNotifier.announceCase(_this.caseNotifier.cachedCaseView);
30746
30994
  return _this.caseNotifier.cachedCaseView;
30747
- }), operators.catchError(function (error) { return _this.checkAuthorizationError(error, cid); })).toPromise();
30995
+ }), operators.catchError(function (error) { return _this.processErrorInCaseFetch(error, cid); })).toPromise();
30748
30996
  };
30749
- CaseResolver.prototype.checkAuthorizationError = function (error, caseReference) {
30997
+ CaseResolver.prototype.processErrorInCaseFetch = function (error, caseReference) {
30998
+ console.error('!!! processErrorInCaseFetch !!!');
30999
+ console.error(error);
30750
31000
  // TODO Should be logged to remote logging infrastructure
30751
31001
  if (error.status === 400) {
30752
31002
  this.router.navigate(['/search/noresults']);
@@ -30769,6 +31019,7 @@
30769
31019
  };
30770
31020
  // as discussed for EUI-5456, need functionality to go to default page
30771
31021
  CaseResolver.prototype.goToDefaultPage = function () {
31022
+ console.info('Going to default page!');
30772
31023
  var userDetails = JSON.parse(this.sessionStorage.getItem('userDetails'));
30773
31024
  userDetails && userDetails.roles
30774
31025
  && !userDetails.roles.includes('pui-case-manager')
@@ -31038,7 +31289,7 @@
31038
31289
  _this.caseNotifier.announceCase(_this.caseDetails);
31039
31290
  }))
31040
31291
  .toPromise()
31041
- .catch(function (error) { return _this.checkAuthorizationError(error); });
31292
+ .catch(function (error) { return _this.checkErrorGettingCaseView(error); });
31042
31293
  this.navigationSubscription = this.navigationNotifierService.navigation.subscribe(function (navigation) {
31043
31294
  _this.navigationTriggered.emit(navigation);
31044
31295
  });
@@ -31063,8 +31314,9 @@
31063
31314
  return this.draftService
31064
31315
  .getDraft(cid);
31065
31316
  };
31066
- CaseViewComponent.prototype.checkAuthorizationError = function (error) {
31317
+ CaseViewComponent.prototype.checkErrorGettingCaseView = function (error) {
31067
31318
  // TODO Should be logged to remote logging infrastructure
31319
+ console.error('Called checkErrorGettingCaseView.');
31068
31320
  console.error(error);
31069
31321
  if (error.status !== 401 && error.status !== 403) {
31070
31322
  this.alertService.error(error.message);
@@ -32468,7 +32720,9 @@
32468
32720
  this.appendedTabs = [];
32469
32721
  }
32470
32722
  CaseViewerComponent.prototype.ngOnInit = function () {
32723
+ console.info('Loading case details...');
32471
32724
  this.loadCaseDetails();
32725
+ console.info('Loaded case details...');
32472
32726
  };
32473
32727
  CaseViewerComponent.prototype.ngOnDestroy = function () {
32474
32728
  if (this.caseSubscription) {
@@ -32478,6 +32732,7 @@
32478
32732
  CaseViewerComponent.prototype.loadCaseDetails = function () {
32479
32733
  var _this = this;
32480
32734
  if (this.route.snapshot.data.case) {
32735
+ console.info('Setting the case into case viewer component from this.route.snapshot.data.case.');
32481
32736
  this.caseDetails = this.route.snapshot.data.case;
32482
32737
  this.caseDetails.tabs = this.orderService.sort(this.caseDetails.tabs);
32483
32738
  this.caseDetails.tabs = this.suffixDuplicateTabs(this.caseDetails.tabs);
@@ -32485,6 +32740,7 @@
32485
32740
  }
32486
32741
  else {
32487
32742
  this.caseSubscription = this.caseNotifier.caseView.subscribe(function (caseDetails) {
32743
+ console.info('Setting the case into case viewer component as retrieved from XHR request.');
32488
32744
  _this.caseDetails = caseDetails;
32489
32745
  _this.setUserAccessType(_this.caseDetails);
32490
32746
  });
@@ -37462,6 +37718,7 @@
37462
37718
  exports.ReadYesNoFieldComponent = ReadYesNoFieldComponent;
37463
37719
  exports.RemoveDialogComponent = RemoveDialogComponent;
37464
37720
  exports.RequestOptionsBuilder = RequestOptionsBuilder;
37721
+ exports.RetryUtil = RetryUtil;
37465
37722
  exports.RouterHelperService = RouterHelperService;
37466
37723
  exports.SaveOrDiscardDialogComponent = SaveOrDiscardDialogComponent;
37467
37724
  exports.SearchFiltersComponent = SearchFiltersComponent;