@hmcts/rpx-xui-common-lib 1.9.0-consume-jrd-e-links-api-new-version-v2 → 1.9.0-persist-postcode

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 (89) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +582 -188
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +27 -24
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +2 -2
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +12 -4
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +2 -2
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +2 -2
  10. package/esm2015/lib/components/due-date/due-date.component.js +12 -4
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +2 -2
  12. package/esm2015/lib/components/find-person/find-person.component.js +2 -2
  13. package/esm2015/lib/components/find-service/find-service.component.js +2 -2
  14. package/esm2015/lib/components/generic-filter/generic-filter.component.js +2 -2
  15. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +2 -2
  16. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +12 -4
  17. package/esm2015/lib/components/pagination/pagination.component.js +2 -2
  18. package/esm2015/lib/components/public_api.js +3 -1
  19. package/esm2015/lib/components/search-location/search-location.component.js +5 -32
  20. package/esm2015/lib/components/selected-case/selected-case.component.js +2 -2
  21. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +2 -2
  22. package/esm2015/lib/components/service-message/service-message.component.js +2 -2
  23. package/esm2015/lib/components/service-messages/service-messages.component.js +2 -2
  24. package/esm2015/lib/components/share-case/share-case.component.js +2 -2
  25. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +2 -2
  26. package/esm2015/lib/components/tab/tab.component.js +2 -2
  27. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +2 -2
  28. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +2 -2
  29. package/esm2015/lib/components/user-details/user-details.component.js +2 -2
  30. package/esm2015/lib/components/user-list/user-list.component.js +2 -2
  31. package/esm2015/lib/components/user-select/user-select.component.js +2 -2
  32. package/esm2015/lib/components/write-address/write-address.component.js +182 -0
  33. package/esm2015/lib/components/write-address-inputs/write-address-inputs.component.js +30 -0
  34. package/esm2015/lib/exui-common-lib.module.js +9 -3
  35. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +2 -2
  36. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +2 -2
  37. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +2 -2
  38. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +2 -2
  39. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +2 -2
  40. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +2 -2
  41. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +2 -2
  42. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
  43. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +2 -2
  44. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +2 -2
  45. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +2 -2
  46. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +2 -2
  47. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +2 -2
  48. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -2
  49. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +2 -2
  50. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +2 -2
  51. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +2 -2
  52. package/esm2015/lib/models/address-message.enum.js +11 -0
  53. package/esm2015/lib/models/address-option.model.js +21 -0
  54. package/esm2015/lib/models/address.model.js +4 -0
  55. package/esm2015/lib/models/index.js +4 -1
  56. package/esm2015/lib/models/location.model.js +1 -1
  57. package/esm2015/lib/models/person.model.js +1 -1
  58. package/esm2015/lib/services/address/address-parser.js +76 -0
  59. package/esm2015/lib/services/address/address-type.enum.js +7 -0
  60. package/esm2015/lib/services/address/address.service.js +50 -0
  61. package/esm2015/lib/services/find-person/find-person.service.js +3 -2
  62. package/esm2015/lib/services/locations/location.service.js +3 -6
  63. package/esm2015/lib/services/public-api.js +2 -1
  64. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +19 -10
  65. package/fesm2015/hmcts-rpx-xui-common-lib.js +518 -144
  66. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  67. package/hmcts-rpx-xui-common-lib.d.ts +26 -23
  68. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  69. package/lib/components/checkbox-list/checkbox-list.component.d.ts +5 -2
  70. package/lib/components/due-date/due-date.component.d.ts +5 -2
  71. package/lib/components/loading-spinner/loading-spinner.component.d.ts +5 -1
  72. package/lib/components/public_api.d.ts +2 -0
  73. package/lib/components/search-location/search-location.component.d.ts +1 -0
  74. package/lib/components/write-address/write-address.component.d.ts +42 -0
  75. package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +13 -0
  76. package/lib/exui-common-lib.module.d.ts +5 -1
  77. package/lib/models/address-message.enum.d.ts +9 -0
  78. package/lib/models/address-option.model.d.ts +9 -0
  79. package/lib/models/address.model.d.ts +9 -0
  80. package/lib/models/index.d.ts +3 -0
  81. package/lib/models/location.model.d.ts +5 -5
  82. package/lib/models/person.model.d.ts +8 -7
  83. package/lib/services/address/address-parser.d.ts +17 -0
  84. package/lib/services/address/address-type.enum.d.ts +5 -0
  85. package/lib/services/address/address.service.d.ts +12 -0
  86. package/lib/services/locations/location.service.d.ts +1 -1
  87. package/lib/services/public-api.d.ts +1 -0
  88. package/lib/services/timeout-notifications/timeout-notifications.service.d.ts +5 -2
  89. package/package.json +3 -2
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('rxjs'), require('@angular/router'), require('rxjs/operators'), require('launchdarkly-js-client-sdk'), require('@angular/platform-browser'), require('@ng-idle/core'), require('@ng-idle/keepalive'), require('@angular/common/http'), require('rxjs/internal/observable/of'), require('@angular/material/autocomplete'), require('@angular/material/input'), require('@angular/material/tabs'), require('ngx-pagination')) :
3
- typeof define === 'function' && define.amd ? define('@hmcts/rpx-xui-common-lib', ['exports', '@angular/core', '@angular/common', '@angular/forms', 'rxjs', '@angular/router', 'rxjs/operators', 'launchdarkly-js-client-sdk', '@angular/platform-browser', '@ng-idle/core', '@ng-idle/keepalive', '@angular/common/http', 'rxjs/internal/observable/of', '@angular/material/autocomplete', '@angular/material/input', '@angular/material/tabs', 'ngx-pagination'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.hmcts = global.hmcts || {}, global.hmcts["rpx-xui-common-lib"] = {}), global.ng.core, global.ng.common, global.ng.forms, global.rxjs, global.ng.router, global.rxjs.operators, global.LDClient, global.ng.platformBrowser, global.i1$1, global.i2$1, global.ng.common.http, global.rxjs["internal/observable/of"], global.ng.material.autocomplete, global.ng.material.input, global.ng.material.tabs, global.ngxPagination));
5
- })(this, (function (exports, i0, i4, forms, rxjs, i1, operators, LDClient, i2, i1$1, i2$1, i1$2, of, autocomplete, input, tabs, ngxPagination) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('rxjs'), require('@angular/router'), require('rxjs/operators'), require('launchdarkly-js-client-sdk'), require('@angular/common/http'), require('@angular/platform-browser'), require('@ng-idle/core'), require('@ng-idle/keepalive'), require('rxjs/internal/observable/of'), require('@angular/material/autocomplete'), require('@angular/material/input'), require('@angular/material/tabs'), require('ngx-pagination'), require('rpx-xui-translation')) :
3
+ typeof define === 'function' && define.amd ? define('@hmcts/rpx-xui-common-lib', ['exports', '@angular/core', '@angular/common', '@angular/forms', 'rxjs', '@angular/router', 'rxjs/operators', 'launchdarkly-js-client-sdk', '@angular/common/http', '@angular/platform-browser', '@ng-idle/core', '@ng-idle/keepalive', 'rxjs/internal/observable/of', '@angular/material/autocomplete', '@angular/material/input', '@angular/material/tabs', 'ngx-pagination', 'rpx-xui-translation'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.hmcts = global.hmcts || {}, global.hmcts["rpx-xui-common-lib"] = {}), global.ng.core, global.ng.common, global.ng.forms, global.rxjs, global.ng.router, global.rxjs.operators, global.LDClient, global.ng.common.http, global.ng.platformBrowser, global.i1$2, global.i2$1, global.rxjs["internal/observable/of"], global.ng.material.autocomplete, global.ng.material.input, global.ng.material.tabs, global.ngxPagination, global.rpxXuiTranslation));
5
+ })(this, (function (exports, i0, i4, forms, rxjs, i1, operators, LDClient, i1$1, i2, i1$2, i2$1, of, autocomplete, input, tabs, ngxPagination, rpxXuiTranslation) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -26,10 +26,10 @@
26
26
  var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
27
27
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
28
28
  var LDClient__namespace = /*#__PURE__*/_interopNamespace(LDClient);
29
+ var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$1);
29
30
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
30
- var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
31
+ var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$2);
31
32
  var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
32
- var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
33
33
 
34
34
  var AccessibilityComponent = /** @class */ (function () {
35
35
  function AccessibilityComponent() {
@@ -39,7 +39,7 @@
39
39
  AccessibilityComponent.decorators = [
40
40
  { type: i0.Component, args: [{
41
41
  selector: 'xuilib-accessibility',
42
- template: "<h1 class=\"govuk-heading-xl\" id=\"Accessibility-statement-for-Expert-UI\">Accessibility statement for Expert UI</h1>\n\n<ul class=\"govuk-list\">\n <li><a href=\"accessibility#immigration\">Immigration and Asylum</a></li>\n <li><a href=\"accessibility#family\">Family Public Law </a></li>\n</ul>\n\n<p class=\"govuk-body\">This website is run by HM Courts & Tribunals Service. We want as many people as possible to be\n able to use this website. For example, you should be able to:</p>\n\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>change colours, contrast levels and fonts</li>\n <li>zoom in up to 300% without the text spilling off the screen</li>\n <li>navigate most of the website using just a keyboard</li>\n <li>navigate most of the website using speech recognition software</li>\n <li>listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and\n VoiceOver)\n </li>\n</ul>\n\n<p class=\"govuk-body\">We\u2019ve also made the website text as simple as possible to understand.</p>\n\n<p class=\"govuk-body\"><a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://mcmw.abilitynet.org.uk/\">AbilityNet</a>\n has advice on making your device easier to use if you have a disability.</p>\n\n<h2 class=\"govuk-heading-l\" id=\"How-accessible-this-website-is\">How accessible this website is</h2>\n\n<p class=\"govuk-body\">We know some parts of the website are not fully accessible:</p>\n\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>some pages are difficult to navigate using just a keyboard</li>\n <li>some pages can\u2019t be listened to in full using a screen reader</li>\n <li>some pages have problems with colour contrasts between text and background</li>\n <li>some PDFs may not be fully accessible to a screen reader</li>\n</ul>\n\n<h2 class=\"govuk-heading-l\" id=\"What-to-do-if-you-cannot-access-parts-of-this-website\">Feedback and contact\n information</h2>\n\n<p class=\"govuk-body\">If you need information on this website in a different format like accessible PDF, large print,\n easy read, audio recording or braille, you can:</p>\n\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>email: <a href=\"mailto:HMCTSforms@justice.gov.uk\"> HMCTSforms@justice.gov.uk</a></li>\n <li>call: +44 (0) 300 123 1711</li>\n <li>contact your service representative</li>\n</ul>\n\n<p class=\"govuk-body\">We\u2019ll consider your request and get back to you in 10 working days.</p>\n\n<h2 class=\"govuk-heading-l\" id=\"Reporting-accessibility-problems-with-this-website\">Reporting accessibility problems\n with this website</h2>\n\n<p class=\"govuk-body\">We\u2019re always looking to improve the accessibility of this website. If you find any problems not\n listed on this page or think we\u2019re not meeting accessibility requirements, contact:</p>\n\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>email: <a href=\"mailto:customer.service@justice.gov.uk\"> customer.service@justice.gov.uk</a></li>\n <li>telephone: +44 (0) 300 123 1711</li>\n</ul>\n\n<h2 class=\"govuk-heading-l\" id=\"Enforcement-procedure \">Enforcement procedure</h2>\n\n<p class=\"govuk-body\">The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector\n Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the \u2018accessibility\n regulations\u2019). </p>\n\n<p class=\"govuk-body\">If you\u2019re not happy with how we respond to your complaint, <a rel=\"noopener noreferrer\"\n target=\"_blank\"\n href=\"https://www.equalityadvisoryservice.com/\">contact\n the Equality Advisory and Support Service (EASS).</a></p>\n\n<h1 class=\"govuk-heading-l\" id=\"Contacting-us-by-phone-or-visiting-us-in-person\">Contacting us by phone or visiting us\n in person</h1>\n\n<p class=\"govuk-body\">We provide a text relay service for people who are D/deaf, hearing impaired or have a speech\n impediment.</p>\n\n<p class=\"govuk-body\">Our offices and tribunal venues have audio induction loops, or if you contact us before your visit\n we can arrange a British Sign Language (BSL) interpreter. You can also request step-free access or a foreign language\n interpreter.</p>\n\n<p class=\"govuk-body\">If you have a question about accessibility in our Tribunal venues, you can contact the First-tier\n Tribunal enquiry line: +44 (0) 300 123 1711. You can <a target=\"_blank\"\n href=\"https://courttribunalfinder.service.gov.uk/search/\">find\n the contact details for court and tribunal venues</a>. </p>\n\n<p class=\"govuk-body\">You can also contact your service representative for more information.</p>\n\n<h1 class=\"govuk-heading-l\" id=\"Technical-information-about-this-website\u2019s-accessibility\">Technical information about\n this website\u2019s accessibility</h1>\n\n<p class=\"govuk-body\">HMCTS is committed to making its website accessible, in accordance with the Public Sector Bodies\n (Websites and Mobile Applications) (No.2) Accessibility Regulations 2018.</p>\n\n<p class=\"govuk-body\">This website is partially compliant with the <a rel=\"noopener noreferrer\" target=\"_blank\"\n href=\"https://www.w3.org/TR/WCAG21/\">Web Content\n Accessibility Guidelines version 2.1</a>, due to the non-compliances listed below.</p>\n\n<h1 class=\"govuk-heading-l\" id=\"Non-accessible-content\">Non-accessible content </h1>\n\n<p class=\"govuk-body\">The content listed below is non-compliant for the following reasons.</p>\n\n<h2 class=\"govuk-heading-l\" id=\"Non-compliance-with-the-accessibility-regulations\">Non-compliance with the accessibility\n regulations</h2>\n\n<p class=\"govuk-body\">Some pages cannot be navigated completely using just a keyboard, so some people won\u2019t be able to\n tab through the pages. This fails WCAG 2.1 success criterion 2.1 (keyboard accessible).</p>\n\n<p class=\"govuk-body\">Some pages can\u2019t be listened to in full using a screen reader, so some people won\u2019t be able to\n access the information. This fails WCAG 2.1 success criterion 1.2.5 (audio description \u2013 prerecorded).</p>\n\n<p class=\"govuk-body\">Some of the contrast ratios don\u2019t meet the current accessibility requirements. This fails WCAG 2.1\n success criterion 1.4.3 (contrast \u2013 minimum).</p>\n\n<h3 class=\"govuk-heading-m\" id=\"immigration\">Immigration and Asylum</h3>\n\n<p class=\"govuk-body\">Some of the images on the service include text and are not accessible for some low vision users.\n We have identified a solution for this issue that we will implement as soon as possible.</p>\n\n<h3 class=\"govuk-heading-m\" id=\"family\">Family Public Law </h3>\n\n<ol class=\"govuk-list govuk-list--alpha\">\n <li>The navigation system used in family public law cannot be rendered well by screen readers, so features can\u2019t be\n listened to in full\n </li>\n <li>Some essential functions within the family public law digital service cannot be accessed properly using screen\n readers\n </li>\n <li>Some complex forms within the service will not be rendered correctly or cannot be listened to by screen readers\n </li>\n</ol>\n\n<h2 class=\"govuk-heading-m\" id=\"Disproportionate burden \">Disproportionate burden </h2>\n\n<p class=\"govuk-body\">For Manage organisation, Register organisation, Approve organisations and Manage cases, we found\n the following issues that are currently being triaged to find out if there is a disproportionate burden:</p>\n\n<ol class=\"govuk-list govuk-list--alpha\">\n <li>Screen readers can\u2019t switch between headers, read content in tabs and buttons</li>\n <li>Screen readers can\u2019t tab between radio buttons, read links or content</li>\n <li>Colour contrast ratios uneven between page background and content</li>\n <li>Some labels, fields, error messages and other content can\u2019t be clearly identified by screen readers and voice\n activation software\n </li>\n <li>Some page headings and titles don\u2019t follow a logical structure for screen readers</li>\n <li>The navigation of some pages isn\u2019t clear</li>\n <li>Some headings, links and button labels aren\u2019t clearly descriptive</li>\n</ol>\n\n<h2 class=\"govuk-heading-m\" id=\"Content-that\u2019s-not-within-the-scope-of-the-accessibility-regulations\">Content that\u2019s not\n within the scope of the accessibility regulations </h2>\n\n<p class=\"govuk-body\">PDFs, documents and attachments to email notifications published before 23 September 2018 may not\n meet accessibility standards. For example, they may not be structured so they\u2019re accessible to a screen reader.</p>\n\n<p class=\"govuk-body\">Any new PDFs or Word documents we publish will meet accessibility standards.</p>\n\n<h1 class=\"govuk-heading-l\" id=\"what-to-improve-accessibility\">What we\u2019re doing to improve accessibility</h1>\n\n<p class=\"govuk-body\">We\u2019re committed to ensuring our services are accessible to all our users and that they comply with\n level AA of the Web Content Accessibility Guidelines \u2013 WCAG 2.1.</p>\n\n<p class=\"govuk-body\">We\u2019re actively working to improve the identified issues and make them AA-compliant by 23 September\n 2020. We\u2019re also continuing to improve all other AAA-level accessibility issues as we iterate the service.</p>\n\n<h1 class=\"govuk-heading-l\" id=\"preparation-of-this-accessibility-statement\">Preparation of this accessibility\n statement</h1>\n\n<p class=\"govuk-body\">This statement was prepared on 16 September 2019. It was last reviewed on 16 September 2020.</p>\n\n<p class=\"govuk-body\">This website was last tested on 19 May 2020. The test was carried out by the <a target=\"_blank\"\n href=\"https://digitalaccessibilitycentre.org/\">Digital\n Accessibility Centre (DAC)</a>.</p>\n\n<h3 class=\"govuk-heading-m\">Family Private Law:</h3>\n\n<p class=\"govuk-body\">This service has not yet been tested for accessibility issues. In the future, we will conduct an\n accessibility audit in order to find out if there are any accessibility issues. The accessibility statement will be\n updated with any relevant changes that we find.</p>\n\n<p class=\"govuk-body\">If there are any issues with accessing information or using this website please contact:</p>\n\n<ol class=\"govuk-list govuk-list--bullet\">\n <li>Nicola Whitcher - 02380 384324</li>\n <li>Hannah Townley - 02380 384313</li>\n</ol>",
42
+ template: "<h1 class=\"govuk-heading-xl\" id=\"Accessibility-statement-for-Expert-UI\">{{'Accessibility statement for Expert UI' | rpxTranslate}}</h1>\n\n<ul class=\"govuk-list\">\n <li><a href=\"accessibility#immigration\">{{'Immigration and Asylum' | rpxTranslate}}</a></li>\n <li><a href=\"accessibility#family\">{{'Family Public Law' | rpxTranslate}} </a></li>\n</ul>\n\n<p class=\"govuk-body\">{{'This website is run by HM Courts & Tribunals Service. We want as many people as possible to be\n able to use this website. For example, you should be able to:' | rpxTranslate}}</p>\n\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'change colours, contrast levels and fonts' | rpxTranslate}}</li>\n <li>{{'zoom in up to 300% without the text spilling off the screen' | rpxTranslate}}</li>\n <li>{{'navigate most of the website using just a keyboard' | rpxTranslate}}</li>\n <li>{{'navigate most of the website using speech recognition software' | rpxTranslate}}</li>\n <li>{{'listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and\n VoiceOver)' | rpxTranslate}}\n </li>\n</ul>\n\n<p class=\"govuk-body\">{{'We\\\u2019ve also made the website text as simple as possible to understand.' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\"><a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://mcmw.abilitynet.org.uk/\">{{'AbilityNet' | rpxTranslate}}</a>\n {{'has advice on making your device easier to use if you have a disability.' | rpxTranslate}}</p>\n\n<h2 class=\"govuk-heading-l\" id=\"How-accessible-this-website-is\">{{'How accessible this website is' | rpxTranslate}}</h2>\n\n<p class=\"govuk-body\">{{'We know some parts of the website are not fully accessible:' | rpxTranslate}}</p>\n\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'some pages are difficult to navigate using just a keyboard' | rpxTranslate}}</li>\n <li>{{'some pages can\\\u2019t be listened to in full using a screen reader' | rpxTranslate}}</li>\n <li>{{'some pages have problems with colour contrasts between text and background' | rpxTranslate}}</li>\n <li>{{'some PDFs may not be fully accessible to a screen reader' | rpxTranslate}}</li>\n</ul>\n\n<h2 class=\"govuk-heading-l\" id=\"What-to-do-if-you-cannot-access-parts-of-this-website\">{{'Feedback and contact\n information' | rpxTranslate}}</h2>\n\n<p class=\"govuk-body\">{{'If you need information on this website in a different format like accessible PDF, large print,\n easy read, audio recording or braille, you can:' | rpxTranslate}}</p>\n\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'email:' | rpxTranslate}} <a href=\"mailto:HMCTSforms@justice.gov.uk\"> HMCTSforms@justice.gov.uk</a></li>\n <li>{{'call:' | rpxTranslate}} +44 (0) 300 123 1711</li>\n <li>{{'contact your service representative' | rpxTranslate}}</li>\n</ul>\n\n<p class=\"govuk-body\">{{'We\\\u2019ll consider your request and get back to you in 10 working days.' | rpxTranslate}}</p>\n\n<h2 class=\"govuk-heading-l\" id=\"Reporting-accessibility-problems-with-this-website\">{{'Reporting accessibility problems\n with this website' | rpxTranslate}}</h2>\n\n<p class=\"govuk-body\">{{'We\\\u2019re always looking to improve the accessibility of this website. If you find any problems not\n listed on this page or think we\\\u2019re not meeting accessibility requirements, contact:' | rpxTranslate}}</p>\n\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'email:' | rpxTranslate}} <a href=\"mailto:customer.service@justice.gov.uk\"> customer.service@justice.gov.uk</a></li>\n <li>{{'telephone:' | rpxTranslate}} +44 (0) 300 123 1711</li>\n</ul>\n\n<h2 class=\"govuk-heading-l\" id=\"Enforcement-procedure \">{{'Enforcement procedure' | rpxTranslate}}</h2>\n\n<p class=\"govuk-body\">{{'The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector\n Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the \\\u2018accessibility\n regulations\\\u2019).' | rpxTranslate}} </p>\n\n<p class=\"govuk-body\">{{'If you\\\u2019re not happy with how we respond to your complaint,' | rpxTranslate}} <a rel=\"noopener noreferrer\"\n target=\"_blank\"\n href=\"https://www.equalityadvisoryservice.com/\">{{'contact\n the Equality Advisory and Support Service (EASS).' | rpxTranslate}}</a></p>\n\n<h1 class=\"govuk-heading-l\" id=\"Contacting-us-by-phone-or-visiting-us-in-person\">{{'Contacting us by phone or visiting us\n in person' | rpxTranslate}}</h1>\n\n<p class=\"govuk-body\">{{'We provide a text relay service for people who are D/deaf, hearing impaired or have a speech\n impediment.' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\">{{'Our offices and tribunal venues have audio induction loops, or if you contact us before your visit\n we can arrange a British Sign Language (BSL) interpreter. You can also request step-free access or a foreign language\n interpreter.' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\">{{'If you have a question about accessibility in our Tribunal venues, you can contact the First-tier\n Tribunal enquiry line:' | rpxTranslate}} +44 (0) 300 123 1711. You can <a target=\"_blank\"\n href=\"https://courttribunalfinder.service.gov.uk/search/\">{{'find\n the contact details for court and tribunal venues' | rpxTranslate}}</a>. </p>\n\n<p class=\"govuk-body\">{{'You can also contact your service representative for more information.' | rpxTranslate}}</p>\n\n<h1 class=\"govuk-heading-l\" id=\"Technical-information-about-this-website\u2019s-accessibility\">{{'Technical information about\n this website\\\u2019s accessibility' | rpxTranslate}}</h1>\n\n<p class=\"govuk-body\">{{'HMCTS is committed to making its website accessible, in accordance with the Public Sector Bodies\n (Websites and Mobile Applications) (No.2) Accessibility Regulations 2018.' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\">{{'This website is partially compliant with the' | rpxTranslate}} <a rel=\"noopener noreferrer\" target=\"_blank\"\n href=\"https://www.w3.org/TR/WCAG21/\">{{'Web Content\n Accessibility Guidelines version 2.1' | rpxTranslate}}</a>{{', due to the non-compliances listed below.' | rpxTranslate}}</p>\n\n<h1 class=\"govuk-heading-l\" id=\"Non-accessible-content\">{{'Non-accessible content' | rpxTranslate}} </h1>\n\n<p class=\"govuk-body\">{{'The content listed below is non-compliant for the following reasons.' | rpxTranslate}}</p>\n\n<h2 class=\"govuk-heading-l\" id=\"Non-compliance-with-the-accessibility-regulations\">{{'Non-compliance with the accessibility\n regulations' | rpxTranslate}}</h2>\n\n<p class=\"govuk-body\">{{'Some pages cannot be navigated completely using just a keyboard, so some people won\\\u2019t be able to\n tab through the pages. This fails WCAG 2.1 success criterion 2.1 (keyboard accessible).' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\">{{'Some pages can\\\u2019t be listened to in full using a screen reader, so some people won\\\u2019t be able to\n access the information. This fails WCAG 2.1 success criterion 1.2.5 (audio description \u2013 prerecorded).' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\">{{'Some of the contrast ratios don\\\u2019t meet the current accessibility requirements. This fails WCAG 2.1\n success criterion 1.4.3 (contrast \u2013 minimum).' | rpxTranslate}}</p>\n\n<h3 class=\"govuk-heading-m\" id=\"immigration\">{{'Immigration and Asylum' | rpxTranslate}}</h3>\n\n<p class=\"govuk-body\">{{'Some of the images on the service include text and are not accessible for some low vision users.\n We have identified a solution for this issue that we will implement as soon as possible.' | rpxTranslate}}</p>\n\n<h3 class=\"govuk-heading-m\" id=\"family\">{{'Family Public Law' | rpxTranslate}} </h3>\n\n<ol class=\"govuk-list govuk-list--alpha\">\n <li>{{'The navigation system used in family public law cannot be rendered well by screen readers, so features can\\\u2019t be\n listened to in full' | rpxTranslate}}\n </li>\n <li>{{'Some essential functions within the family public law digital service cannot be accessed properly using screen\n readers' | rpxTranslate}}\n </li>\n <li>{{'Some complex forms within the service will not be rendered correctly or cannot be listened to by screen readers' | rpxTranslate}}\n </li>\n</ol>\n\n<h2 class=\"govuk-heading-m\" id=\"Disproportionate burden \">{{'Disproportionate burden' | rpxTranslate}} </h2>\n\n<p class=\"govuk-body\">{{'For Manage organisation, Register organisation, Approve organisations and Manage cases, we found\n the following issues that are currently being triaged to find out if there is a disproportionate burden:' | rpxTranslate}}</p>\n\n<ol class=\"govuk-list govuk-list--alpha\">\n <li>{{'Screen readers can\\\u2019t switch between headers, read content in tabs and buttons' | rpxTranslate}}</li>\n <li>{{'Screen readers can\\\u2019t tab between radio buttons, read links or content' | rpxTranslate}}</li>\n <li>{{'Colour contrast ratios uneven between page background and content' | rpxTranslate}}</li>\n <li>{{'Some labels, fields, error messages and other content can\\\u2019t be clearly identified by screen readers and voice\n activation software' | rpxTranslate}}\n </li>\n <li>{{'Some page headings and titles don\\\u2019t follow a logical structure for screen readers' | rpxTranslate}}</li>\n <li>{{'The navigation of some pages isn\\\u2019t clear' | rpxTranslate}}</li>\n <li>{{'Some headings, links and button labels aren\\\u2019t clearly descriptive' | rpxTranslate}}</li>\n</ol>\n\n<h2 class=\"govuk-heading-m\" id=\"Content-that\u2019s-not-within-the-scope-of-the-accessibility-regulations\">{{'Content that\\\u2019s not\n within the scope of the accessibility regulations' | rpxTranslate}} </h2>\n\n<p class=\"govuk-body\">{{'PDFs, documents and attachments to email notifications published before 23 September 2018 may not\n meet accessibility standards. For example, they may not be structured so they\\\u2019re accessible to a screen reader.' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\">{{'Any new PDFs or Word documents we publish will meet accessibility standards.' | rpxTranslate}}</p>\n\n<h1 class=\"govuk-heading-l\" id=\"what-to-improve-accessibility\">{{'What we\\\u2019re doing to improve accessibility' | rpxTranslate}}</h1>\n\n<p class=\"govuk-body\">{{'We\\\u2019re committed to ensuring our services are accessible to all our users and that they comply with\n level AA of the Web Content Accessibility Guidelines \u2013 WCAG 2.1.' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\">{{'We\\\u2019re actively working to improve the identified issues and make them AA-compliant by 23 September\n 2020. We\\\u2019re also continuing to improve all other AAA-level accessibility issues as we iterate the service.' | rpxTranslate}}</p>\n\n<h1 class=\"govuk-heading-l\" id=\"preparation-of-this-accessibility-statement\">{{'Preparation of this accessibility\n statement' | rpxTranslate}}</h1>\n\n<p class=\"govuk-body\">{{'This statement was prepared on 16 September 2019. It was last reviewed on 16 September 2020.' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\">{{'This website was last tested on 19 May 2020. The test was carried out by the' | rpxTranslate}} <a target=\"_blank\"\n href=\"https://digitalaccessibilitycentre.org/\">{{'Digital\n Accessibility Centre (DAC)' | rpxTranslate}}</a>.</p>\n\n<h3 class=\"govuk-heading-m\">{{'Family Private Law:' | rpxTranslate}}</h3>\n\n<p class=\"govuk-body\">{{'This service has not yet been tested for accessibility issues. In the future, we will conduct an\n accessibility audit in order to find out if there are any accessibility issues. The accessibility statement will be\n updated with any relevant changes that we find.' | rpxTranslate}}</p>\n\n<p class=\"govuk-body\">{{'If there are any issues with accessing information or using this website please contact:' | rpxTranslate}}</p>\n\n<ol class=\"govuk-list govuk-list--bullet\">\n <li>Nicola Whitcher - 02380 384324</li>\n <li>Hannah Townley - 02380 384313</li>\n</ol>",
43
43
  styles: [".govuk-list--alpha{padding-left:20px;list-style-type:lower-alpha}"]
44
44
  },] }
45
45
  ];
@@ -373,7 +373,8 @@
373
373
  }
374
374
 
375
375
  var CheckboxListComponent = /** @class */ (function () {
376
- function CheckboxListComponent() {
376
+ function CheckboxListComponent(ref) {
377
+ this.ref = ref;
377
378
  /**
378
379
  * The options to show checkboxes for. Note that the type
379
380
  * within the array corresponds to the one for the component.
@@ -417,6 +418,10 @@
417
418
  // Now check the current selection to make sure it's valid.
418
419
  this.checkSelection();
419
420
  };
421
+ // checks the data projected into the component
422
+ CheckboxListComponent.prototype.ngAfterContentChecked = function () {
423
+ this.ref.detectChanges();
424
+ };
420
425
  Object.defineProperty(CheckboxListComponent.prototype, "hasOptions", {
421
426
  /**
422
427
  * Indicates whether or not there are any options to render.
@@ -558,11 +563,14 @@
558
563
  CheckboxListComponent.decorators = [
559
564
  { type: i0.Component, args: [{
560
565
  selector: 'xuilib-checkbox-list',
561
- template: "<div class=\"xui-checkbox-list govuk-checkboxes govuk-checkboxes--small\" *ngIf=\"isFunctional\">\n <div class=\"select-all govuk-checkboxes__item\">\n <input type=\"checkbox\" id=\"select_all\" class=\"govuk-checkboxes__input\" [checked]=\"allSelected\"\n (change)=\"toggleSelectAll()\" />\n <label for=\"select_all\" class=\"govuk-label govuk-checkboxes__label\">Select all / Deselect all</label>\n </div>\n <div class=\"checkbox-items\">\n <div *ngFor=\"let item of options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" [id]=\"'select_' + i\" class=\"govuk-checkboxes__input\" [checked]=\"isSelected(item)\"\n (change)=\"toggleItemSelection(item)\" />\n <label [for]=\"'select_' + i\" class=\"govuk-label govuk-checkboxes__label\">{{labelFunction(item)}}</label>\n </div>\n </div>\n</div>\n",
566
+ template: "<div class=\"xui-checkbox-list govuk-checkboxes govuk-checkboxes--small\" *ngIf=\"isFunctional\">\n <div class=\"select-all govuk-checkboxes__item\">\n <input type=\"checkbox\" id=\"select_all\" class=\"govuk-checkboxes__input\" [checked]=\"allSelected\"\n (change)=\"toggleSelectAll()\" />\n <label for=\"select_all\" class=\"govuk-label govuk-checkboxes__label\">{{'Select all / Deselect all' | rpxTranslate}}</label>\n </div>\n <div class=\"checkbox-items\">\n <div *ngFor=\"let item of options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" [id]=\"'select_' + i\" class=\"govuk-checkboxes__input\" [checked]=\"isSelected(item)\"\n (change)=\"toggleItemSelection(item)\" />\n <label [for]=\"'select_' + i\" class=\"govuk-label govuk-checkboxes__label\">{{labelFunction(item) | rpxTranslate}}</label>\n </div>\n </div>\n</div>\n",
562
567
  encapsulation: i0.ViewEncapsulation.None,
563
568
  styles: [".xui-checkbox-list .select-all{margin-bottom:10px}.xui-checkbox-list .checkbox-items{display:flex;flex-direction:column;flex-wrap:wrap;height:100%;max-height:100%;align-items:flex-start;align-content:flex-start;width:100%;max-width:100%;overflow-x:scroll}"]
564
569
  },] }
565
570
  ];
571
+ CheckboxListComponent.ctorParameters = function () { return [
572
+ { type: i0.ChangeDetectorRef }
573
+ ]; };
566
574
  CheckboxListComponent.propDecorators = {
567
575
  options: [{ type: i0.Input }],
568
576
  preselection: [{ type: i0.Input }],
@@ -579,7 +587,7 @@
579
587
  ContactDetailsComponent.decorators = [
580
588
  { type: i0.Component, args: [{
581
589
  selector: 'xuilib-contact-details',
582
- template: "<div class=\"contact-details\" *ngIf=\"data\">\n <h3 class=\"govuk-heading-m\" *ngIf=\"data.title\">{{ data.title }}</h3>\n <p *ngIf=\"data.badgeText\"><span [className]=\"'hmcts-badge ' + data.badgeColour\">{{ data.badgeText }}</span></p>\n <div class=\"email\" *ngIf=\"data.email\"><span class=\"govuk-!-font-weight-bold\">Email: </span> <a href=\"mailto:{{ data.email }}\">{{ data.email }}</a></div>\n <div class=\"phone\" *ngIf=\"data.phone\"><span class=\"govuk-!-font-weight-bold\">Phone: </span>{{ data.phone }}</div>\n <div class=\"opening-times\" *ngIf=\"data.openingTimes\"><span class=\"govuk-!-font-weight-bold\">Opening times: </span>{{ data.openingTimes}}</div>\n</div>\n\n",
590
+ template: "<div class=\"contact-details\" *ngIf=\"data\">\n <h3 class=\"govuk-heading-m\" *ngIf=\"data.title\">{{ data.title }}</h3>\n <p *ngIf=\"data.badgeText\"><span [className]=\"'hmcts-badge ' + data.badgeColour\">{{ data.badgeText }}</span></p>\n <div class=\"email\" *ngIf=\"data.email\"><span class=\"govuk-!-font-weight-bold\">{{'Email:' | rpxTranslate}} </span> <a href=\"mailto:{{ data.email }}\">{{ data.email }}</a></div>\n <div class=\"phone\" *ngIf=\"data.phone\"><span class=\"govuk-!-font-weight-bold\">{{'Phone:' | rpxTranslate}} </span>{{ data.phone }}</div>\n <div class=\"opening-times\" *ngIf=\"data.openingTimes\"><span class=\"govuk-!-font-weight-bold\">{{'Opening times:' | rpxTranslate }} </span>{{ data.openingTimes}}</div>\n</div>\n\n",
583
591
  styles: [".contact-details{margin-top:30px}.contact-details h3,.contact-details p{margin-bottom:10px}"]
584
592
  },] }
585
593
  ];
@@ -597,7 +605,8 @@
597
605
  var SECONDS_IN_A_DAY = 60 * 60 * 24;
598
606
 
599
607
  var DueDateComponent = /** @class */ (function () {
600
- function DueDateComponent() {
608
+ function DueDateComponent(ref) {
609
+ this.ref = ref;
601
610
  /**
602
611
  * This should be considered HIGH urgency if there are fewer than this
603
612
  * many days until the due date.
@@ -661,6 +670,10 @@
661
670
  DueDateComponent.prototype.ngOnChanges = function () {
662
671
  this.handleInputChanges();
663
672
  };
673
+ // checks the data projected into the component
674
+ DueDateComponent.prototype.ngAfterContentChecked = function () {
675
+ this.ref.detectChanges();
676
+ };
664
677
  // Set up the label, urgency class, and accessibility fields.
665
678
  DueDateComponent.prototype.handleInputChanges = function () {
666
679
  // If we don't have a dueDate, skip out of here.
@@ -714,11 +727,14 @@
714
727
  DueDateComponent.decorators = [
715
728
  { type: i0.Component, args: [{
716
729
  selector: 'xuilib-due-date',
717
- template: "<span *ngIf=\"dueDate\" class=\"due-date hmcts-badge\" [ngClass]=\"badge\"\n [title]=\"accessibleLabel\" [attr.aria-label]=\"accessibleLabel\">\n {{label}}\n</span>",
730
+ template: "<span *ngIf=\"dueDate\" class=\"due-date hmcts-badge\" [ngClass]=\"badge\"\n [title]=\"accessibleLabel | rpxTranslate\" [attr.aria-label]=\"accessibleLabel | rpxTranslate\">\n {{label | rpxTranslate}}\n</span>",
718
731
  encapsulation: i0.ViewEncapsulation.None,
719
732
  styles: [".due-date{white-space:nowrap}.due-date.hmcts-badge--orange{color:#f47738;border-color:#f47738}"]
720
733
  },] }
721
734
  ];
735
+ DueDateComponent.ctorParameters = function () { return [
736
+ { type: i0.ChangeDetectorRef }
737
+ ]; };
722
738
  DueDateComponent.propDecorators = {
723
739
  dueDate: [{ type: i0.Input }],
724
740
  highUrgencyCutoff: [{ type: i0.Input }],
@@ -841,6 +857,235 @@
841
857
  },] }
842
858
  ];
843
859
 
860
+ exports.AddressMessageEnum = void 0;
861
+ (function (AddressMessageEnum) {
862
+ AddressMessageEnum["NO_OPTION_SELECTED"] = "Please select an answer";
863
+ AddressMessageEnum["NO_STREET_SELECTED"] = "Enter building and street";
864
+ AddressMessageEnum["NO_CITY_SELECTED"] = "Enter town or city";
865
+ AddressMessageEnum["NO_COUNTRY_SELECTED"] = "Enter country";
866
+ AddressMessageEnum["NO_POSTCODE_SELECTED"] = "Enter a valid postcode";
867
+ AddressMessageEnum["SELECT_ADDRESS"] = "Select an address";
868
+ AddressMessageEnum["INVALID_POSTCODE"] = "Enter valid postcode";
869
+ })(exports.AddressMessageEnum || (exports.AddressMessageEnum = {}));
870
+
871
+ var AddressOption = /** @class */ (function () {
872
+ function AddressOption(addressModel, description) {
873
+ if (description === null) {
874
+ this.value = addressModel;
875
+ this.description = this.getDescription();
876
+ }
877
+ else {
878
+ this.description = description;
879
+ }
880
+ }
881
+ AddressOption.prototype.getDescription = function () {
882
+ return this.removeInitialCommaIfPresent("" + (this.value.addressLine1 === undefined ? '' : this.value.addressLine1) + this.prefixWithCommaIfPresent(this.value.addressLine2) + this.prefixWithCommaIfPresent(this.value.addressLine3) + ", " + this.value.postTown);
883
+ };
884
+ AddressOption.prototype.prefixWithCommaIfPresent = function (value) {
885
+ return value ? ", " + value : value;
886
+ };
887
+ AddressOption.prototype.removeInitialCommaIfPresent = function (value) {
888
+ return value.replace(new RegExp('^,', 'gi'), '');
889
+ };
890
+ return AddressOption;
891
+ }());
892
+
893
+ // tslint:disable:variable-name
894
+ var AddressModel = /** @class */ (function () {
895
+ function AddressModel() {
896
+ }
897
+ return AddressModel;
898
+ }());
899
+
900
+ exports.SharedCaseErrorMessages = void 0;
901
+ (function (SharedCaseErrorMessages) {
902
+ SharedCaseErrorMessages["OneCaseMustBeSelected"] = "At least one case must be selected";
903
+ SharedCaseErrorMessages["NoChangesRequested"] = "You have not requested any changes to case sharing";
904
+ SharedCaseErrorMessages["OnePersonMustBeAssigned"] = "At least one person must be assigned to each case";
905
+ })(exports.SharedCaseErrorMessages || (exports.SharedCaseErrorMessages = {}));
906
+
907
+ exports.BadgeColour = void 0;
908
+ (function (BadgeColour) {
909
+ BadgeColour["BADGE_RED"] = "hmcts-badge--red";
910
+ BadgeColour["BADGE_BLUE"] = "hmcts-badge--blue";
911
+ BadgeColour["BADGE_GREEN"] = "hmcts-badge--green";
912
+ })(exports.BadgeColour || (exports.BadgeColour = {}));
913
+
914
+ var AnonymousFeatureUser = /** @class */ (function () {
915
+ function AnonymousFeatureUser() {
916
+ }
917
+ return AnonymousFeatureUser;
918
+ }());
919
+ var LoggedInFeatureUser = /** @class */ (function () {
920
+ function LoggedInFeatureUser() {
921
+ }
922
+ return LoggedInFeatureUser;
923
+ }());
924
+
925
+ var RadioFilterFieldConfig = /** @class */ (function () {
926
+ function RadioFilterFieldConfig() {
927
+ }
928
+ return RadioFilterFieldConfig;
929
+ }());
930
+
931
+ exports.BookingCheckType = void 0;
932
+ (function (BookingCheckType) {
933
+ BookingCheckType["NO_CHECK"] = "NO_CHECK";
934
+ BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
935
+ BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
936
+ })(exports.BookingCheckType || (exports.BookingCheckType = {}));
937
+
938
+ exports.PersonRole = void 0;
939
+ (function (PersonRole) {
940
+ PersonRole["JUDICIAL"] = "Judicial";
941
+ PersonRole["CASEWORKER"] = "Legal Ops";
942
+ PersonRole["ADMIN"] = "Admin";
943
+ PersonRole["CTSC"] = "CTSC";
944
+ PersonRole["ALL"] = "All";
945
+ })(exports.PersonRole || (exports.PersonRole = {}));
946
+ // Note: RoleCategory could replace PersonRole possibly
947
+ // However a lot of webapp logic is based on current PersonRole understanding
948
+ exports.RoleCategory = void 0;
949
+ (function (RoleCategory) {
950
+ RoleCategory["JUDICIAL"] = "JUDICIAL";
951
+ RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
952
+ RoleCategory["ADMIN"] = "ADMIN";
953
+ RoleCategory["CTSC"] = "CTSC";
954
+ RoleCategory["ALL"] = "ALL";
955
+ })(exports.RoleCategory || (exports.RoleCategory = {}));
956
+
957
+ var AddressType;
958
+ (function (AddressType) {
959
+ AddressType["DPA"] = "DPA";
960
+ AddressType["UK"] = "United Kingdom";
961
+ AddressType["RD06"] = "RD06";
962
+ })(AddressType || (AddressType = {}));
963
+
964
+ /**
965
+ * Moving all this logic here into Address Parser class, so that it
966
+ * will be easier for us when we move this parsing logic to into
967
+ * `Shim` java service.
968
+ */
969
+ var AddressParser = /** @class */ (function () {
970
+ function AddressParser() {
971
+ }
972
+ AddressParser.prototype.parse = function (address) {
973
+ var classification = "" + address.CLASSIFICATION_CODE;
974
+ var addressModel = new AddressModel();
975
+ addressModel.addressLine1 = this.parseAddressLine1(classification, address);
976
+ addressModel.addressLine2 = this.parseAddressLine2(classification, address);
977
+ addressModel.addressLine3 = this.parseAddressLine3(classification, address);
978
+ addressModel.postCode = address.POSTCODE;
979
+ addressModel.postTown = address.POST_TOWN;
980
+ addressModel.country = AddressType.UK;
981
+ return addressModel;
982
+ };
983
+ AddressParser.prototype.parseAddressLine1 = function (classification, address) {
984
+ var addressLine;
985
+ if (classification === AddressType.RD06) {
986
+ addressLine =
987
+ address.SUB_BUILDING_NAME + " " + address.ORGANISATION_NAME + " " + address.DEPARTMENT_NAME + " " + address.PO_BOX_NUMBER;
988
+ }
989
+ else {
990
+ addressLine =
991
+ "" + address.ORGANISATION_NAME + this.prefixWithCommaIfPresent(address.BUILDING_NAME) +
992
+ (address.DEPARTMENT_NAME + " " + address.PO_BOX_NUMBER);
993
+ }
994
+ return this.removeNonAddressValues(addressLine);
995
+ };
996
+ AddressParser.prototype.parseAddressLine2 = function (classification, address) {
997
+ var addressLine;
998
+ if (classification === AddressType.RD06) {
999
+ addressLine = address.BUILDING_NAME + " ";
1000
+ }
1001
+ else {
1002
+ addressLine =
1003
+ address.SUB_BUILDING_NAME + " " + address.BUILDING_NUMBER + " " + address.THOROUGHFARE_NAME;
1004
+ }
1005
+ return this.removeNonAddressValues(addressLine);
1006
+ };
1007
+ AddressParser.prototype.parseAddressLine3 = function (classification, address) {
1008
+ var addressLine;
1009
+ if (classification === AddressType.RD06) {
1010
+ addressLine =
1011
+ address.BUILDING_NUMBER + " " + address.THOROUGHFARE_NAME;
1012
+ }
1013
+ else {
1014
+ addressLine =
1015
+ address.DEPENDENT_LOCALITY + " " + address.DOUBLE_DEPENDENT_LOCALITY + " " + address.DEPENDENT_THOROUGHFARE_NAME;
1016
+ }
1017
+ return this.removeNonAddressValues(addressLine);
1018
+ };
1019
+ AddressParser.prototype.removeNonAddressValues = function (line) {
1020
+ line = line.replace(' null', ' ').replace('null ', ' ');
1021
+ line = this.removeUndefinedString(line);
1022
+ line = this.removeInitialComma(line);
1023
+ line = this.removeEmptySpaces(line);
1024
+ return line;
1025
+ };
1026
+ AddressParser.prototype.removeUndefinedString = function (value) {
1027
+ return value.replace(new RegExp('undefined', 'gi'), '');
1028
+ };
1029
+ AddressParser.prototype.removeEmptySpaces = function (value) {
1030
+ return value.replace(new RegExp(' +', 'gi'), ' ').trim();
1031
+ };
1032
+ AddressParser.prototype.removeInitialComma = function (value) {
1033
+ return value.replace(new RegExp('^,', 'gi'), '');
1034
+ };
1035
+ AddressParser.prototype.prefixWithCommaIfPresent = function (value) {
1036
+ return value ? ", " + value : value;
1037
+ };
1038
+ return AddressParser;
1039
+ }());
1040
+
1041
+ var AddressService = /** @class */ (function () {
1042
+ function AddressService(http) {
1043
+ this.http = http;
1044
+ }
1045
+ AddressService.prototype.getAddressesForPostcode = function (postcode) {
1046
+ var _this = this;
1047
+ return this.http
1048
+ .get('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined)
1049
+ .pipe(operators.map(function (res) { return res.results; }))
1050
+ .pipe(operators.map(function (output) { return output ? output.map(function (addresses) { return _this.format(new AddressParser().parse(addresses[AddressType.DPA])); }) : []; }));
1051
+ };
1052
+ AddressService.prototype.format = function (addressModel) {
1053
+ return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));
1054
+ };
1055
+ AddressService.prototype.formatAddressLines = function (addressModel) {
1056
+ var _this = this;
1057
+ ['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach(function (value) {
1058
+ addressModel[value] = _this.toCapitalCase(addressModel[value]);
1059
+ });
1060
+ return addressModel;
1061
+ };
1062
+ AddressService.prototype.shiftAddressLinesUp = function (addressModel) {
1063
+ if (addressModel.addressLine2 === '') {
1064
+ addressModel.addressLine2 = addressModel.addressLine3;
1065
+ addressModel.addressLine3 = '';
1066
+ }
1067
+ if (addressModel.addressLine1 === '') {
1068
+ addressModel.addressLine1 = addressModel.addressLine2;
1069
+ addressModel.addressLine2 = '';
1070
+ }
1071
+ return addressModel;
1072
+ };
1073
+ AddressService.prototype.toCapitalCase = function (sentence) {
1074
+ sentence = sentence.toLowerCase();
1075
+ sentence.split(' ').forEach(function (value) {
1076
+ sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));
1077
+ });
1078
+ return sentence;
1079
+ };
1080
+ return AddressService;
1081
+ }());
1082
+ AddressService.decorators = [
1083
+ { type: i0.Injectable }
1084
+ ];
1085
+ AddressService.ctorParameters = function () { return [
1086
+ { type: i1$1.HttpClient }
1087
+ ]; };
1088
+
844
1089
  var windowToken = new i0.InjectionToken('Window');
845
1090
  function windowProvider() { return window; }
846
1091
 
@@ -972,7 +1217,7 @@
972
1217
  var _this = this;
973
1218
  this.idle.setIdleName(idleConfig.idleServiceName);
974
1219
  this.idle.setTimeout(idleConfig.timeout);
975
- var interrupt = new i1$1.DocumentInterruptSource('mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll');
1220
+ var interrupt = new i1$2.DocumentInterruptSource('mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll');
976
1221
  this.idle.setInterrupts([interrupt]);
977
1222
  // adding delay so that user can click on sign out before the modal shuts
978
1223
  this.idle.onIdleEnd.pipe(operators.delay(250)).subscribe(function () {
@@ -1004,7 +1249,7 @@
1004
1249
  },] }
1005
1250
  ];
1006
1251
  ManageSessionServices.ctorParameters = function () { return [
1007
- { type: i1$1.Idle },
1252
+ { type: i1$2.Idle },
1008
1253
  { type: i2$1.Keepalive }
1009
1254
  ]; };
1010
1255
 
@@ -1012,7 +1257,7 @@
1012
1257
  * TimeoutNotificationsService
1013
1258
  *
1014
1259
  * The Timeout Notification Service allows your application to receive notifications
1015
- * when a User is approaching the the total time that a User has been idle for.
1260
+ * when a User is approaching the total time that a User has been idle for.
1016
1261
  *
1017
1262
  * This can be set by your application using the Timeout Notification Config object.
1018
1263
  *
@@ -1026,6 +1271,7 @@
1026
1271
  function TimeoutNotificationsService(idle, keepalive) {
1027
1272
  this.idle = idle;
1028
1273
  this.keepalive = keepalive;
1274
+ this.subs = [];
1029
1275
  /**
1030
1276
  * Convert milliseconds to seconds.
1031
1277
  *
@@ -1060,25 +1306,33 @@
1060
1306
  var idleModalDisplayTimeInSeconds = this.millisecondsToSeconds(idleModalDisplayTime);
1061
1307
  var totalIdleTimeInSeconds = this.millisecondsToSeconds(totalIdleTime);
1062
1308
  this.idle.setTimeout(idleModalDisplayTimeInSeconds);
1063
- var docInterrupts = new i1$1.DocumentInterruptSource(DOCUMENT_INTERRUPTS);
1064
- var windowInterrupts = new i1$1.WindowInterruptSource(DOCUMENT_INTERRUPTS);
1309
+ var docInterrupts = new i1$2.DocumentInterruptSource(DOCUMENT_INTERRUPTS);
1310
+ var windowInterrupts = new i1$2.WindowInterruptSource(DOCUMENT_INTERRUPTS);
1065
1311
  this.idle.setInterrupts([docInterrupts, windowInterrupts]);
1066
- this.idle.onTimeout.subscribe(function () {
1312
+ this.subs.push(this.idle.onTimeout.subscribe(function () {
1067
1313
  _this.eventEmitter.next({ eventType: SIGNOUT_EVENT });
1068
- });
1069
- this.idle.onTimeoutWarning.pipe(operators.map(function (sec) { return (sec > 60) ? Math.ceil(sec / 60) + MINUTES : sec + SECONDS; }), operators.distinctUntilChanged()).subscribe(function (countdown) {
1314
+ }));
1315
+ this.subs.push(this.idle.onTimeoutWarning.pipe(operators.map(function (sec) { return (sec > 60) ? Math.ceil(sec / 60) + MINUTES : sec + SECONDS; }), operators.distinctUntilChanged()).subscribe(function (countdown) {
1070
1316
  _this.eventEmitter.next({ eventType: COUNTDOWN_EVENT, readableCountdown: countdown });
1071
- });
1072
- this.idle.onIdleStart.subscribe(function () { return console.log('You\'ve gone idle!'); });
1073
- this.idle.onIdleEnd.subscribe(function () { return console.log('You\'re no longer idle!'); });
1317
+ }));
1318
+ this.subs.push(this.idle.onIdleStart.subscribe(function () { return console.log('You\'ve gone idle!'); }));
1319
+ this.subs.push(this.idle.onIdleEnd.subscribe(function () { return console.log('You\'re no longer idle!'); }));
1074
1320
  this.keepalive.interval(15);
1075
- this.keepalive.onPing.subscribe(function () {
1321
+ this.subs.push(this.keepalive.onPing.subscribe(function () {
1076
1322
  _this.eventEmitter.next({ eventType: KEEP_ALIVE_EVENT });
1077
- });
1323
+ }));
1078
1324
  var idleInSeconds = Math.floor(totalIdleTimeInSeconds) - idleModalDisplayTimeInSeconds;
1079
1325
  this.idle.setIdle(idleInSeconds);
1080
1326
  this.idle.watch();
1081
1327
  };
1328
+ TimeoutNotificationsService.prototype.reset = function () {
1329
+ this.idle.watch();
1330
+ };
1331
+ TimeoutNotificationsService.prototype.close = function () {
1332
+ this.subs.forEach(function (s) { return s.unsubscribe(); });
1333
+ this.idle.stop();
1334
+ this.idle.clearInterrupts();
1335
+ };
1082
1336
  /**
1083
1337
  * Expose the notification events, so that a 3rd party service can listen to the notifications.
1084
1338
  */
@@ -1094,7 +1348,7 @@
1094
1348
  },] }
1095
1349
  ];
1096
1350
  TimeoutNotificationsService.ctorParameters = function () { return [
1097
- { type: i1$1.Idle },
1351
+ { type: i1$2.Idle },
1098
1352
  { type: i2$1.Keepalive }
1099
1353
  ]; };
1100
1354
 
@@ -1348,7 +1602,7 @@
1348
1602
  return this.http.get(RefDataDataAccessService.refDataUrl + "/regions");
1349
1603
  };
1350
1604
  RefDataDataAccessService.prototype.getLocationsByServiceCode = function (serviceCode) {
1351
- var httpParams = new i1$2.HttpParams()
1605
+ var httpParams = new i1$1.HttpParams()
1352
1606
  .append('service_code', serviceCode);
1353
1607
  return this.http.get(RefDataDataAccessService.refDataUrl + "/locations-by-service-code", { params: httpParams });
1354
1608
  };
@@ -1365,7 +1619,7 @@
1365
1619
  },] }
1366
1620
  ];
1367
1621
  RefDataDataAccessService.ctorParameters = function () { return [
1368
- { type: i1$2.HttpClient }
1622
+ { type: i1$1.HttpClient }
1369
1623
  ]; };
1370
1624
 
1371
1625
  var RefDataService = /** @class */ (function () {
@@ -2151,7 +2405,7 @@
2151
2405
  GenericFilterComponent.decorators = [
2152
2406
  { type: i0.Component, args: [{
2153
2407
  selector: 'xuilib-generic-filter',
2154
- template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'group-title'\">\n <div [class]=\"field.titleClasses ? field.titleClasses: 'govuk-label govuk-label--m govuk-!-margin-bottom-4'\">\n {{ field.name | capitalize }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength || form.get(field.name).errors?.maxLength)}\">\n <div *ngIf=\"field.title\" class=\"xui-generic-filter__field-title\">\n <h3 [class]=\"field.titleClasses ? field.titleClasses : 'govuk-heading-s'\" style=\"margin-bottom: 0!important\">\n {{field.title | capitalize}}\n </h3>\n <div *ngIf=\"field?.titleHint\" class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n </div>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <div *ngIf=\"field.hintText\"\n [id]=\"field.hintText + '-hint'\" class=\"govuk-hint\">\n {{ field.hintText }}\n </div>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength)\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.minSelectedError}}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.maxSelectedError}}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n *ngIf=\"field.emailError && submitted && form.get(field.name).errors?.email\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.emailError}}\n </span>\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'group-select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <optgroup *ngFor = 'let grp of filteredSkillsByServices' label=\"{{grp.group | titlecase}}\">\n <option *ngFor = 'let item of grp.options' [value]=\"item.key\">{{item.label}}</option>\n </optgroup>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <div class=\"govuk-radios\">\n <div *ngFor=\"let item of field.options\" class=\"govuk-radios__item\">\n <input type=\"radio\"\n [formControlName]=\"field.name\"\n [id]=\"'radio_' + item.key\"\n [attr.disabled]=\"disabled(field, form)\"\n [checked]=\"item.key === form.get(field.name).value\"\n class=\"govuk-radios__input\"\n [value]=\"item.key\"\n (change)=\"fieldChanged(field, form)\"\n />\n <label [for]=\"'radio_' + item.key\" class=\"govuk-label govuk-radios__label\">{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-task-name'\">\n <xuilib-find-task-name subTitle=\"\" (taskNameSelected)=\"updateTaskNameControls($event, field)\"\n (taskNameFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findTaskNameGroup]=\"form\"\n [selectedTaskName]=\"form.get(field.name)?.value?.task_type_name\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputServiceChanged(field)\"\n [field]=\"field\"\n [form]=\"form\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n [disabled]=\"disabled(field, form)\">\n </xuilib-find-service>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text-input'\">\n <input class=\"govuk-input\" type=\"text\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [attr.maxlength]=\"field.maxlength ? field.maxlength : null\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'email-input'\">\n <input class=\"govuk-input\" type=\"email\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ng-container>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{config.applyButtonText || 'Apply'}}</button>\n <button *ngIf=\"config.showCancelFilterButton\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n type=\"button\"\n id=\"cancelFilter\"\n (click)=\"cancelFilter()\">{{ config.cancelButtonText || 'Cancel'}}</button>\n </div>\n </div>\n</form>\n",
2408
+ template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'group-title'\">\n <div [class]=\"field.titleClasses ? field.titleClasses: 'govuk-label govuk-label--m govuk-!-margin-bottom-4'\">\n {{ field.name | capitalize }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength || form.get(field.name).errors?.maxLength)}\">\n <div *ngIf=\"field.title\" class=\"xui-generic-filter__field-title\">\n <h3 [class]=\"field.titleClasses ? field.titleClasses : 'govuk-heading-s'\" style=\"margin-bottom: 0!important\">\n {{field.title | capitalize}}\n </h3>\n <div *ngIf=\"field?.titleHint\" class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n </div>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <div *ngIf=\"field.hintText\"\n [id]=\"field.hintText + '-hint'\" class=\"govuk-hint\">\n {{ field.hintText | rpxTranslate }}\n </div>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength)\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.minSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.maxSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n *ngIf=\"field.emailError && submitted && form.get(field.name).errors?.email\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span> {{field.emailError | rpxTranslate }}\n </span>\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'group-select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <optgroup *ngFor = 'let grp of filteredSkillsByServices' label=\"{{grp.group | titlecase}}\">\n <option *ngFor = 'let item of grp.options' [value]=\"item.key\">{{item.label}}</option>\n </optgroup>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <div class=\"govuk-radios\">\n <div *ngFor=\"let item of field.options\" class=\"govuk-radios__item\">\n <input type=\"radio\"\n [formControlName]=\"field.name\"\n [id]=\"'radio_' + item.key\"\n [attr.disabled]=\"disabled(field, form)\"\n [checked]=\"item.key === form.get(field.name).value\"\n class=\"govuk-radios__input\"\n [value]=\"item.key\"\n (change)=\"fieldChanged(field, form)\"\n />\n <label [for]=\"'radio_' + item.key\" class=\"govuk-label govuk-radios__label\">{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-task-name'\">\n <xuilib-find-task-name subTitle=\"\" (taskNameSelected)=\"updateTaskNameControls($event, field)\"\n (taskNameFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findTaskNameGroup]=\"form\"\n [selectedTaskName]=\"form.get(field.name)?.value?.task_type_name\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputServiceChanged(field)\"\n [field]=\"field\"\n [form]=\"form\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n [disabled]=\"disabled(field, form)\">\n </xuilib-find-service>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text-input'\">\n <input class=\"govuk-input\" type=\"text\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [attr.maxlength]=\"field.maxlength ? field.maxlength : null\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'email-input'\">\n <input class=\"govuk-input\" type=\"email\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ng-container>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{(config.applyButtonText || 'Apply') | rpxTranslate}}</button>\n <button *ngIf=\"config.showCancelFilterButton\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n type=\"button\"\n id=\"cancelFilter\"\n (click)=\"cancelFilter()\">{{ (config.cancelButtonText || 'Cancel') | rpxTranslate}}</button>\n </div>\n </div>\n</form>\n",
2155
2409
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2156
2410
  encapsulation: i0.ViewEncapsulation.None,
2157
2411
  styles: [".contain-classes .elevated-break{margin-bottom:20px}@media (min-width:40.0625em){.contain-classes .elevated-break{margin-bottom:30px}}.contain-classes .govuk-body--maxWidth480px{max-width:480px}.contain-classes .xui-generic-filter .select-all{margin-bottom:10px}.contain-classes .xui-generic-filter .govuk-checkboxes{display:flex;flex-direction:column;flex-wrap:wrap}.contain-classes .xui-generic-filter .govuk-checkboxes>div{flex-grow:1;flex-shrink:0}.contain-classes .xui-generic-filter__field-title{display:flex;align-items:center;margin-bottom:10px}.contain-classes .govuk-select{width:100%}"]
@@ -2183,7 +2437,7 @@
2183
2437
  HmctsSessionDialogComponent.decorators = [
2184
2438
  { type: i0.Component, args: [{
2185
2439
  selector: 'xuilib-session-dialog',
2186
- template: "<div class=\"gem-c-modal-dialogue\" data-module=\"modal-dialogue\" id=\"modal-default\" style=\"display: block;\">\n <div class=\"gem-c-modal-dialogue__overlay\"></div>\n <dialog class=\"gem-c-modal-dialogue__box\" aria-modal=\"true\" role=\"dialog\" tabindex=\"0\" [ngStyle]=\"{'margin-top': positionTop}\">\n <div class=\"gem-c-modal-dialogue__header\">\n <svg role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 38 38\" height=\"33\" width=\"33\">\n <style type=\"text/css\">\n .st0{fill:#FFFFFF;}\n </style>\n <g id=\"_4_-_granular_components_warning_icon\" transform=\"translate(0.5 0.5)\">\n <g id=\"Warning_icon\" transform=\"translate(0)\">\n <path id=\"Exclusion_1\" class=\"st0\" d=\"M18.5,37.5c-5.04,0.01-9.88-1.99-13.44-5.57C1.49,28.38-0.51,23.54-0.5,18.5\n c-0.01-5.04,1.99-9.88,5.56-13.43C8.62,1.49,13.46-0.51,18.5-0.5c5.04-0.01,9.88,1.99,13.44,5.56c3.57,3.56,5.58,8.39,5.56,13.44\n c0.01,5.04-1.99,9.88-5.56,13.44C28.38,35.51,23.54,37.51,18.5,37.5z M18.52,24.29c-0.4,0-0.8,0.08-1.17,0.23\n c-0.36,0.15-0.69,0.37-0.97,0.64c-0.28,0.27-0.5,0.59-0.65,0.95c-0.16,0.36-0.24,0.76-0.23,1.15c0,0.4,0.08,0.8,0.23,1.17\n c0.15,0.36,0.37,0.68,0.65,0.96c0.28,0.27,0.61,0.49,0.97,0.64c0.37,0.16,0.77,0.24,1.17,0.24c0.4,0,0.79-0.08,1.15-0.24\n c0.35-0.15,0.67-0.37,0.95-0.64c0.27-0.27,0.49-0.6,0.64-0.96c0.16-0.37,0.24-0.77,0.23-1.17c0-0.4-0.08-0.79-0.23-1.15\n c-0.15-0.35-0.37-0.67-0.64-0.95c-0.27-0.27-0.6-0.49-0.95-0.64C19.31,24.37,18.92,24.29,18.52,24.29L18.52,24.29z M16.11,7.5\n l0.42,14.87h3.91L20.86,7.5H16.11z\"/>\n </g>\n </g>\n </svg>\n <div class=\"gem-c-modal-dialogue__title\">We are about to sign you out</div>\n </div>\n <div class=\"gem-c-modal-dialogue__content\">\n <ng-content></ng-content>\n </div>\n </dialog>\n</div>\n",
2440
+ template: "<div class=\"gem-c-modal-dialogue\" data-module=\"modal-dialogue\" id=\"modal-default\" style=\"display: block;\">\n <div class=\"gem-c-modal-dialogue__overlay\"></div>\n <dialog class=\"gem-c-modal-dialogue__box\" aria-modal=\"true\" role=\"dialog\" tabindex=\"0\" [ngStyle]=\"{'margin-top': positionTop}\">\n <div class=\"gem-c-modal-dialogue__header\">\n <svg role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 38 38\" height=\"33\" width=\"33\">\n <style type=\"text/css\">\n .st0{fill:#FFFFFF;}\n </style>\n <g id=\"_4_-_granular_components_warning_icon\" transform=\"translate(0.5 0.5)\">\n <g id=\"Warning_icon\" transform=\"translate(0)\">\n <path id=\"Exclusion_1\" class=\"st0\" d=\"M18.5,37.5c-5.04,0.01-9.88-1.99-13.44-5.57C1.49,28.38-0.51,23.54-0.5,18.5\n c-0.01-5.04,1.99-9.88,5.56-13.43C8.62,1.49,13.46-0.51,18.5-0.5c5.04-0.01,9.88,1.99,13.44,5.56c3.57,3.56,5.58,8.39,5.56,13.44\n c0.01,5.04-1.99,9.88-5.56,13.44C28.38,35.51,23.54,37.51,18.5,37.5z M18.52,24.29c-0.4,0-0.8,0.08-1.17,0.23\n c-0.36,0.15-0.69,0.37-0.97,0.64c-0.28,0.27-0.5,0.59-0.65,0.95c-0.16,0.36-0.24,0.76-0.23,1.15c0,0.4,0.08,0.8,0.23,1.17\n c0.15,0.36,0.37,0.68,0.65,0.96c0.28,0.27,0.61,0.49,0.97,0.64c0.37,0.16,0.77,0.24,1.17,0.24c0.4,0,0.79-0.08,1.15-0.24\n c0.35-0.15,0.67-0.37,0.95-0.64c0.27-0.27,0.49-0.6,0.64-0.96c0.16-0.37,0.24-0.77,0.23-1.17c0-0.4-0.08-0.79-0.23-1.15\n c-0.15-0.35-0.37-0.67-0.64-0.95c-0.27-0.27-0.6-0.49-0.95-0.64C19.31,24.37,18.92,24.29,18.52,24.29L18.52,24.29z M16.11,7.5\n l0.42,14.87h3.91L20.86,7.5H16.11z\"/>\n </g>\n </g>\n </svg>\n <div class=\"gem-c-modal-dialogue__title\">{{'We are about to sign you out' | rpxTranslate}}</div>\n </div>\n <div class=\"gem-c-modal-dialogue__content\">\n <ng-content></ng-content>\n </div>\n </dialog>\n</div>\n",
2187
2441
  styles: [".gem-c-modal-dialogue{display:none;z-index:1000;overflow-x:hidden;overflow-y:scroll;outline:0}.gem-c-modal-dialogue,.gem-c-modal-dialogue__box{position:fixed;top:0;left:0;width:100%;height:100%}.gem-c-modal-dialogue__box{display:block;background:#fff;right:0;bottom:0;margin:0;padding:0;overflow-y:auto;border:0;font-family:GDS Transport,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c}.gem-c-modal-dialogue__box:focus{outline:3px solid #fd0}@media print{.gem-c-modal-dialogue__box{font-family:sans-serif}}@media (min-width:40.0625em){.gem-c-modal-dialogue__box{font-size:1.1875rem;line-height:1.3157894737}}@media print{.gem-c-modal-dialogue__box{font-size:14pt;line-height:1.15;color:#000}}@media (min-width:40.0625em){.gem-c-modal-dialogue__box{position:relative;top:inherit;right:inherit;bottom:inherit;left:inherit;width:auto;max-width:640px;height:auto;margin:30px auto;border:2px solid #0b0c0c}}@media (min-width:40.0625em){.gem-c-modal-dialogue__box--wide{max-width:960px}}@media (min-width:40.0625em) and (max-width:64em){.gem-c-modal-dialogue__box--wide{margin:30px}}.gem-c-modal-dialogue__overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.8;background:#0b0c0c;pointer-events:none;touch-action:none}@media screen{.gem-o-template--modal{overflow-y:inherit}}.gem-o-template__body--modal{overflow:hidden}.gem-o-template__body--blur .govuk-footer,.gem-o-template__body--blur .govuk-header,.gem-o-template__body--blur .govuk-main-wrapper,.gem-o-template__body--blur .govuk-phase-banner,.gem-o-template__body--blur .govuk-skip-link,.gem-o-template__body--blur .govuk-width-container .govuk-back-link{filter:blur(2px)}.govuk-warning-text__icon{margin:0 0 0 12px}.gem-c-modal-dialogue__header{padding:9px 15px 10px;color:#fff;background:#d4351d;display:flex}.gem-c-modal-dialogue__title{margin:5px 0 4px 12px}.gem-c-modal-dialogue__logotype-crown{fill:currentColor;vertical-align:middle}.gem-c-modal-dialogue__logotype-crown-fallback-image{width:30px;height:26px;border:0;vertical-align:middle}.gem-c-modal-dialogue__content{padding:15px;background:#fff}.gem-c-modal-dialogue__close-button{position:absolute;top:0;right:0;width:44px;height:44px;border:0;color:#fff;background:none;cursor:pointer;font-family:GDS Transport,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1.5rem;line-height:1.3}@media print{.gem-c-modal-dialogue__close-button{font-family:sans-serif}}@media (min-width:40.0625em){.gem-c-modal-dialogue__close-button{font-size:2.25rem;line-height:1.3}}@media print{.gem-c-modal-dialogue__close-button{font-size:24pt;line-height:1.3}}@media (max-width:40.0525em){.gem-c-modal-dialogue__close-button{font-size:36px;line-height:1.3}}.gem-c-modal-dialogue__close-button:focus,.gem-c-modal-dialogue__close-button:hover{color:#0b0c0c;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;outline:none;background:#fd0}"]
2188
2442
  },] }
2189
2443
  ];
@@ -2246,19 +2500,27 @@
2246
2500
  };
2247
2501
 
2248
2502
  var LoadingSpinnerComponent = /** @class */ (function () {
2249
- function LoadingSpinnerComponent() {
2503
+ function LoadingSpinnerComponent(ref) {
2504
+ this.ref = ref;
2250
2505
  this.loadingText = 'Loading';
2251
2506
  }
2507
+ // checks the data projected into the component
2508
+ LoadingSpinnerComponent.prototype.ngAfterContentChecked = function () {
2509
+ this.ref.detectChanges();
2510
+ };
2252
2511
  return LoadingSpinnerComponent;
2253
2512
  }());
2254
2513
  LoadingSpinnerComponent.decorators = [
2255
2514
  { type: i0.Component, args: [{
2256
2515
  selector: 'xuilib-loading-spinner',
2257
- template: "<div class=\"spinner-container\">\n <div class=\"spinner-inner-container\">\n <p>{{loadingText}}</p>\n <div class=\"spinner\" style=\"margin: auto;\"></div>\n </div>\n</div>\n",
2516
+ template: "<div class=\"spinner-container\">\n <div class=\"spinner-inner-container\">\n <p>{{loadingText | rpxTranslate}}</p>\n <div class=\"spinner\" style=\"margin: auto;\"></div>\n </div>\n</div>\n",
2258
2517
  encapsulation: i0.ViewEncapsulation.None,
2259
2518
  styles: [".spinner-container{position:fixed;top:0;left:0;height:100%;width:100%;display:flex;justify-content:center;align-items:center;background:hsla(0,0%,100%,.5);z-index:99}.spinner-container .spinner-inner-container p{text-align:center}.spinner-container .spinner-inner-container .spinner{border:10px solid #ddd;border-top-color:#000;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}"]
2260
2519
  },] }
2261
2520
  ];
2521
+ LoadingSpinnerComponent.ctorParameters = function () { return [
2522
+ { type: i0.ChangeDetectorRef }
2523
+ ]; };
2262
2524
  LoadingSpinnerComponent.propDecorators = {
2263
2525
  loadingText: [{ type: i0.Input }]
2264
2526
  };
@@ -2479,7 +2741,7 @@
2479
2741
  SelectedCaseConfirmComponent.decorators = [
2480
2742
  { type: i0.Component, args: [{
2481
2743
  selector: 'xuilib-selected-case-confirm',
2482
- template: "<div id=\"user-access-block-{{ sharedCase.caseId }}\" *ngIf=\"showUserAccessBlock()\">\n <h2 class=\"govuk-heading-m case-share-confirm__title\">{{ sharedCase.caseTitle }}</h2>\n <div class=\"case-share-confirm__caption-area\">\n <div class=\"govuk-caption-m case-share-confirm__caption\">\n {{ sharedCase.caseId }}\n </div>\n <a [routerLink]=\"changeLink\" class=\"case-share-confirm__change-link govuk-link govuk-!-font-size-19\">Change</a>\n </div>\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingShares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingUnshares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
2744
+ template: "<div id=\"user-access-block-{{ sharedCase.caseId }}\" *ngIf=\"showUserAccessBlock()\">\n <h2 class=\"govuk-heading-m case-share-confirm__title\">{{ sharedCase.caseTitle }}</h2>\n <div class=\"case-share-confirm__caption-area\">\n <div class=\"govuk-caption-m case-share-confirm__caption\">\n {{ sharedCase.caseId }}\n </div>\n <a [routerLink]=\"changeLink\" class=\"case-share-confirm__change-link govuk-link govuk-!-font-size-19\">{{'Change' | rpxTranslate}}</a>\n </div>\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Name' | rpxTranslate}}</th>\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Email address' | rpxTranslate}}</th>\n <th class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">{{'Actions' | rpxTranslate}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingShares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge\">{{'To be added' | rpxTranslate}}</span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingUnshares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge hmcts-badge--red\">\n {{'To be removed' | rpxTranslate}}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
2483
2745
  styles: [".case-share-confirm__title{margin-bottom:0}.case-share-confirm__caption-area{border-bottom:1px solid #b1b4b6;padding-bottom:10px;display:inline-block;width:100%;clear:both}.case-share-confirm__caption{float:left}.case-share-confirm__change-link{float:right}.govuk-table-column-header{width:45%}.govuk-table-column-actions{width:10%}"]
2484
2746
  },] }
2485
2747
  ];
@@ -2721,7 +2983,7 @@
2721
2983
  SelectedCaseComponent.decorators = [
2722
2984
  { type: i0.Component, args: [{
2723
2985
  selector: 'xuilib-selected-case',
2724
- template: "<div id=\"{{buildElementId('govuk-accordion__section')}}\" class=\"govuk-accordion__section\">\n <div class=\"govuk-grid-row govuk-case-header\">\n <div class=\"govuk-grid-column-three-quarters\">\n <h3 id=\"{{buildElementId('case-title')}}\" class=\"govuk-case-title\">{{ sharedCase.caseTitle }}</h3>\n <h1 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId }}</h1>\n </div>\n <div class=\"govuk-grid-column-twenty-percent\">\n <button *ngIf=\"caseCount > 1\"\n id=\"{{buildElementId('btn-deselect-case')}}\" \n class=\"govuk-button hmcts-button--secondary\" \n (click)=\"onDeselect(sharedCase)\" \n title=\"Deselect case\">Deselect case\n </button>\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-five-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n aria-controls=\"accordion-with-summary-sections-content-1\" class=\"govuk-accordion__section-button\"\n aria-describedby=\"accordion-with-summary-sections-summary-1\" aria-expanded=\"false\" title=\"Expand or Collapse\">\n <span class=\"govuk-accordion__icon\" aria-hidden=\"true\"></span></button>\n </div>\n </div>\n </div>\n <div id=\"{{buildElementId('accordion-with-summary-sections-content')}}\" class=\"govuk-accordion__section-content\"\n aria-labelledby=\"buildElementId('accordion-with-summary-sections-heading')\" >\n <div class=\"govuk-grid-row\" *ngIf=\"showNoUsersAccessInfo()\">\n <span id=\"{{buildElementId('access-info-no-user')}}\" class=\"govuk-div-align-left\">No users from your organisation currently have access to this case.</span>\n </div>\n <div class=\"govuk-grid-row\" *ngIf=\"showUserHasAccessInfo()\">\n <span id=\"{{buildElementId('access-info-has-users')}}\" class=\"govuk-div-align-left\">Users from your organisation with access to this case.</span>\n </div>\n <table class=\"govuk-table\" *ngIf=\"showUserAccessTable()\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th id=\"{{buildElementId('name-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th id=\"{{buildElementId('email-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th id=\"{{buildElementId('action-heading')}}\" class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n <th id=\"{{buildElementId('label-heading')}}\" class=\"govuk-table__header govuk-table-column-label\" scope=\"col\">Status</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of combinedSortedShares; index as idx; trackBy: trackByUserId\">\n <td id=\"user-full-name-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td id=\"user-email-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <a *ngIf=\"canRemove(sharedCase.caseId, user) | async\" (click)=\"onRemove(user, sharedCase)\" href=\"javascript:void(0);\">Remove <span class=\"govuk-visually-hidden\">{{ user.firstName + ' ' + user.lastName }} from case</span></a>\n <a *ngIf=\"canCancel(sharedCase.caseId, user) | async\" (click)=\"onCancel(user, sharedCase)\" href=\"javascript:void(0);\">Cancel <span class=\"govuk-visually-hidden\">adding {{ user.firstName + ' ' + user.lastName }} to case</span></a>\n </td>\n <td class=\"govuk-table__cell\">\n <span *ngIf=\"isToBeRemoved(sharedCase.caseId, user) | async\" class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n <span *ngIf=\"isToBeAdded(sharedCase.caseId, user) | async\" class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n",
2986
+ template: "<div id=\"{{buildElementId('govuk-accordion__section')}}\" class=\"govuk-accordion__section\">\n <div class=\"govuk-grid-row govuk-case-header\">\n <div class=\"govuk-grid-column-three-quarters\">\n <h3 id=\"{{buildElementId('case-title')}}\" class=\"govuk-case-title\">{{ sharedCase.caseTitle | rpxTranslate }}</h3>\n <h1 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId | rpxTranslate }}</h1>\n </div>\n <div class=\"govuk-grid-column-twenty-percent\">\n <button *ngIf=\"caseCount > 1\"\n id=\"{{buildElementId('btn-deselect-case')}}\"\n class=\"govuk-button hmcts-button--secondary\"\n (click)=\"onDeselect(sharedCase)\" title=\"Deselect case\">\n {{'Deselect case' | rpxTranslate}}\n </button>\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-five-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n aria-controls=\"accordion-with-summary-sections-content-1\" class=\"govuk-accordion__section-button\"\n aria-describedby=\"accordion-with-summary-sections-summary-1\" aria-expanded=\"false\" [title]=\"'Expand or Collapse' | rpxTranslate\">\n <span class=\"govuk-accordion__icon\" aria-hidden=\"true\"></span></button>\n </div>\n </div>\n </div>\n <div id=\"{{buildElementId('accordion-with-summary-sections-content')}}\" class=\"govuk-accordion__section-content\"\n aria-labelledby=\"buildElementId('accordion-with-summary-sections-heading')\" >\n <div class=\"govuk-grid-row\" *ngIf=\"showNoUsersAccessInfo()\">\n <span id=\"{{buildElementId('access-info-no-user')}}\" class=\"govuk-div-align-left\">\n {{'No users from your organisation currently have access to this case.' | rpxTranslate}}\n </span>\n </div>\n <div class=\"govuk-grid-row\" *ngIf=\"showUserHasAccessInfo()\">\n <span id=\"{{buildElementId('access-info-has-users')}}\" class=\"govuk-div-align-left\">\n {{'Users from your organisation with access to this case.' | rpxTranslate}}\n </span>\n </div>\n <table class=\"govuk-table\" *ngIf=\"showUserAccessTable()\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th id=\"{{buildElementId('name-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Name' | rpxTranslate}}</th>\n <th id=\"{{buildElementId('email-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Email address' | rpxTranslate}}</th>\n <th id=\"{{buildElementId('action-heading')}}\" class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">{{'Actions' | rpxTranslate}}</th>\n <th id=\"{{buildElementId('label-heading')}}\" class=\"govuk-table__header govuk-table-column-label\" scope=\"col\">{{ 'Status' | rpxTranslate }}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of combinedSortedShares; index as idx; trackBy: trackByUserId\">\n <td id=\"user-full-name-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td id=\"user-email-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <a *ngIf=\"canRemove(sharedCase.caseId, user) | async\" (click)=\"onRemove(user, sharedCase)\" href=\"javascript:void(0);\">{{'Remove' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{ user.firstName + ' ' + user.lastName }} {{'from case' | rpxTranslate}}</span></a>\n <a *ngIf=\"canCancel(sharedCase.caseId, user) | async\" (click)=\"onCancel(user, sharedCase)\" href=\"javascript:void(0);\">{{'Cancel' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'adding' | rpxTranslate}} {{ user.firstName + ' ' + user.lastName }} {{'to case' | rpxTranslate}}</span></a>\n </td>\n <td class=\"govuk-table__cell\">\n <span *ngIf=\"isToBeRemoved(sharedCase.caseId, user) | async\" class=\"hmcts-badge hmcts-badge--red\">{{'To be removed' | rpxTranslate}}</span>\n <span *ngIf=\"isToBeAdded(sharedCase.caseId, user) | async\" class=\"hmcts-badge\">{{'To be added' | rpxTranslate}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n",
2725
2987
  styles: [".govuk-case-header{border-top:1px solid #bfc1c3}.govuk-case-title{font-size:24px;color:#005ea5;font-weight:700}.govuk-case-sub-title,.govuk-case-title{font-family:nta,Arial,sans-serif;padding-left:0}.govuk-case-sub-title{font-size:1rem!important;color:#6f777b;font-weight:400}.govuk-grid-row{margin-left:0;margin-right:0}.govuk-grid-column-three-quarters{padding-top:5px;padding-left:0}.govuk-grid-column-twenty-percent{box-sizing:border-box;padding-top:10px;width:20%;float:left}.govuk-grid-column-five-percent{box-sizing:border-box;padding-top:15px;width:5%;float:left}.govuk-table-column-header{width:38%}.govuk-table-column-actions,.govuk-table-column-label{width:12%}.govuk-div-align-left{font-family:nta,Arial,sans-serif;font-size:1.1875rem!important;line-height:1.31579!important;text-align:left;margin-bottom:20px;padding-left:0;color:#0b0c0c}.govuk-accordion__section-header{border-top:0}.govuk-accordion__section-content{padding-top:0}"]
2726
2988
  },] }
2727
2989
  ];
@@ -2750,7 +3012,7 @@
2750
3012
  ServiceMessageComponent.decorators = [
2751
3013
  { type: i0.Component, args: [{
2752
3014
  selector: 'xuilib-service-message',
2753
- template: "<div class=\"hmcts-banner hmcts-banner--warning\">\n\n <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\" />\n </svg>\n\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">Warning</span>\n <h2 class=\"govuk-heading-s\" [innerHTML]=\"message\"></h2>\n <a [routerLink]=\"\" class=\"govuk-link--no-visited-state\" (click)=\"onHideMessageEvent(key)\">Hide message</a>\n </div>\n\n</div>"
3015
+ template: "<div class=\"hmcts-banner hmcts-banner--warning\">\n\n <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\" />\n </svg>\n\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">{{'Warning' | rpxTranslate}}</span>\n <h2 class=\"govuk-heading-s\" [innerHTML]=\"message | rpxTranslate\"></h2>\n <a [routerLink]=\"\" class=\"govuk-link--no-visited-state\" (click)=\"onHideMessageEvent(key)\">{{'Hide message' | rpxTranslate}}</a>\n </div>\n\n</div>"
2754
3016
  },] }
2755
3017
  ];
2756
3018
  ServiceMessageComponent.ctorParameters = function () { return []; };
@@ -2797,7 +3059,7 @@
2797
3059
  ServiceMessagesComponent.decorators = [
2798
3060
  { type: i0.Component, args: [{
2799
3061
  selector: 'xuilib-service-messages',
2800
- template: "<div *ngIf=\"filteredMessages?.size > 0\" class=\"govuk-width-container govuk-!-margin-top-6\">\n <xuilib-service-message *ngFor=\"let message of filteredMessages | keyvalue\" [key]=\"message.key\"\n [message]=\"message.value\" (hideMessage)=\"hideMessage($event)\"></xuilib-service-message>\n</div>"
3062
+ template: "<div *ngIf=\"filteredMessages?.size > 0\" class=\"govuk-width-container govuk-!-margin-top-6\">\n <xuilib-service-message *ngFor=\"let message of filteredMessages | keyvalue\" [key]=\"message.key\"\n [message]=\"message.value | rpxTranslate\" (hideMessage)=\"hideMessage($event)\"></xuilib-service-message>\n</div>"
2801
3063
  },] }
2802
3064
  ];
2803
3065
  ServiceMessagesComponent.ctorParameters = function () { return [
@@ -2829,7 +3091,7 @@
2829
3091
  ShareCaseConfirmComponent.decorators = [
2830
3092
  { type: i0.Component, args: [{
2831
3093
  selector: 'xuilib-share-case-confirm',
2832
- template: "<div id=\"casesToConfirm\">\n <h3 class=\"govuk-heading-l\">Cases</h3>\n <div *ngIf=\"shareCases && shareCases.length > 0\" id=\"summarySections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [toConfirm]=\"true\"\n [changeLink]=\"changeLink\">\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\">\n No cases to display.\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" *ngIf=\"shareCases && shareCases.length > 0\">\n <button class=\"govuk-button\" title=\"Confirm\" [routerLink]=\"completeLink\">Confirm</button>\n</div>\n",
3094
+ template: "<div id=\"casesToConfirm\">\n <h3 class=\"govuk-heading-l\">{{'Cases' | rpxTranslate}}</h3>\n <div *ngIf=\"shareCases && shareCases.length > 0\" id=\"summarySections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [toConfirm]=\"true\"\n [changeLink]=\"changeLink\">\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" *ngIf=\"shareCases && shareCases.length > 0\">\n <button class=\"govuk-button\" title=\"Confirm\" [routerLink]=\"completeLink\">{{'Confirm' | rpxTranslate}}</button>\n</div>\n",
2833
3095
  styles: [""]
2834
3096
  },] }
2835
3097
  ];
@@ -2842,13 +3104,6 @@
2842
3104
  completeLink: [{ type: i0.Input }]
2843
3105
  };
2844
3106
 
2845
- exports.SharedCaseErrorMessages = void 0;
2846
- (function (SharedCaseErrorMessages) {
2847
- SharedCaseErrorMessages["OneCaseMustBeSelected"] = "At least one case must be selected";
2848
- SharedCaseErrorMessages["NoChangesRequested"] = "You have not requested any changes to case sharing";
2849
- SharedCaseErrorMessages["OnePersonMustBeAssigned"] = "At least one person must be assigned to each case";
2850
- })(exports.SharedCaseErrorMessages || (exports.SharedCaseErrorMessages = {}));
2851
-
2852
3107
  var UserSelectComponent = /** @class */ (function () {
2853
3108
  function UserSelectComponent() {
2854
3109
  this.selected = new i0.EventEmitter();
@@ -2896,7 +3151,7 @@
2896
3151
  UserSelectComponent.decorators = [
2897
3152
  { type: i0.Component, args: [{
2898
3153
  selector: 'xuilib-user-select',
2899
- template: "<input class=\"govuk-input\" type=\"text\" [matAutocomplete]=\"dropdown\" [formControl]=\"control\" (ngModelChange)=\"onUserChange($event)\" aria-labelledby=\"add-user-hint\">\n\n<mat-autocomplete #dropdown=\"matAutocomplete\" [displayWith]=\"displayValue\" autoActiveFirstOption (optionSelected)=\"onSelected($event)\">\n <mat-option *ngFor=\"let user of filteredUsers | async\" [value]=\"user\">\n {{ user.firstName }} {{ user.lastName }} - {{ user.email }}\n </mat-option>\n</mat-autocomplete>",
3154
+ template: "<input class=\"govuk-input\" type=\"text\" [matAutocomplete]=\"dropdown\" [formControl]=\"control\" (ngModelChange)=\"onUserChange($event)\"\n [attr.aria-labelledby]=\"'add-user-hint' | rpxTranslate\">\n\n<mat-autocomplete #dropdown=\"matAutocomplete\" [displayWith]=\"displayValue\" autoActiveFirstOption (optionSelected)=\"onSelected($event)\">\n <mat-option *ngFor=\"let user of filteredUsers | async\" [value]=\"user\">\n {{ user.firstName | rpxTranslate }} {{ user.lastName | rpxTranslate }} - {{ user.email }}\n </mat-option>\n</mat-autocomplete>\n",
2900
3155
  styles: [""]
2901
3156
  },] }
2902
3157
  ];
@@ -3106,7 +3361,7 @@
3106
3361
  ShareCaseComponent.decorators = [
3107
3362
  { type: i0.Component, args: [{
3108
3363
  selector: 'xuilib-share-case',
3109
- template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle}}</span>\n {{title}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n Search by name or email address. You can share access with as many people as you need.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\" class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\" title=\"Add user to selected cases\">Add</button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n Can't find an email address?\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n If you can't find your colleague's email address, they will need to complete their registration. Contact your\n administrator for help.\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">Remove a person from all cases</label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n Select a person to remove them from all selected cases.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [(ngModel)]=\"selectedUserToRemove\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"Remove user from selected cases\">Remove</button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">Selected cases</h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n No cases to display.\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"Continue\">Continue</button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"Cancel\" [routerLink]=\"cancelLink\">Cancel</button>\n</div>\n",
3364
+ template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n {{title | rpxTranslate}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel | rpxTranslate}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n {{'Search by name or email address. You can share access with as many people as you need.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\"\n class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\"\n title=\"{{'Add user to selected cases' | rpxTranslate}}\">\n {{'Add' | rpxTranslate}}\n </button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n {{\"Can't find an email address?\" | rpxTranslate}}\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n {{\"If you can't find your colleague's email address, they will need to complete their registration. Contact your administrator for help.\" | rpxTranslate}}\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">\n {{'Remove a person from all cases' | rpxTranslate}}\n </label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n {{'Select a person to remove them from all selected cases.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [(ngModel)]=\"selectedUserToRemove\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"{{'Remove user from selected cases' | rpxTranslate}}\">\n {{'Remove' | rpxTranslate}}\n </button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">\n {{'Selected cases' | rpxTranslate}}\n </h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"{{'Continue' | rpxTranslate}}\">\n {{'Continue' | rpxTranslate}}\n </button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"{{'Cancel' | rpxTranslate}}\" [routerLink]=\"cancelLink\">\n {{'Cancel' | rpxTranslate}}\n </button>\n</div>\n",
3110
3365
  styles: ["select{width:100%}"]
3111
3366
  },] }
3112
3367
  ];
@@ -3141,7 +3396,7 @@
3141
3396
  TabComponent.decorators = [
3142
3397
  { type: i0.Component, args: [{
3143
3398
  selector: 'xuilib-tab',
3144
- template: "<mat-tab-group animationDuration=\"0ms\" (selectedTabChange)=\"tabChanged($event)\">\n <mat-tab *ngFor=\"let tabItem of tabItems; let last = last;\" [label]=\"tabItem.text\">\n </mat-tab>\n</mat-tab-group>"
3399
+ template: "<mat-tab-group animationDuration=\"0ms\" (selectedTabChange)=\"tabChanged($event)\">\n <mat-tab *ngFor=\"let tabItem of tabItems; let last = last;\" [label]=\"tabItem.text | rpxTranslate\">\n </mat-tab>\n</mat-tab-group>"
3145
3400
  },] }
3146
3401
  ];
3147
3402
  TabComponent.ctorParameters = function () { return []; };
@@ -3162,7 +3417,7 @@
3162
3417
  TcConfirmComponent.decorators = [
3163
3418
  { type: i0.Component, args: [{
3164
3419
  selector: 'xuilib-tc-confirm',
3165
- template: "<div class=\"govuk-width-container\">\n <main role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <div class=\"column-two-thirds\">\n <h1 class=\"govuk-heading-xl\">Using this service</h1>\n <h2 class=\"govuk-heading-m\">Terms and conditions</h2>\n <p>We've recently updated the\n <a\n routerLink=\"/terms-and-conditions\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >terms and conditions</a\n >.\n </p>\n <p>You must review and accept them.\n </p>\n <p>\n <button class=\"govuk-button\" (click)=\"onClick()\">\n {{ buttonText }}\n </button>\n </p>\n </div>\n </div>\n </div>\n <div class=\"govuk-grid-column-one-third\"></div>\n </main>\n</div>\n",
3420
+ template: "<div class=\"govuk-width-container\">\n <main role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <div class=\"column-two-thirds\">\n <h1 class=\"govuk-heading-xl\">{{'Using this service' | rpxTranslate}}</h1>\n <h2 class=\"govuk-heading-m\">{{'Terms and conditions' | rpxTranslate}}</h2>\n <p>{{'We\\'ve recently updated the' | rpxTranslate}}\n <a\n routerLink=\"/terms-and-conditions\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >{{'terms and conditions' | rpxTranslate}}</a\n >.\n </p>\n <p>{{'You must review and accept them.' | rpxTranslate}}\n </p>\n <p>\n <button class=\"govuk-button\" (click)=\"onClick()\">\n {{ buttonText | rpxTranslate }}\n </button>\n </p>\n </div>\n </div>\n </div>\n <div class=\"govuk-grid-column-one-third\"></div>\n </main>\n</div>\n",
3166
3421
  styles: [""]
3167
3422
  },] }
3168
3423
  ];
@@ -3208,7 +3463,7 @@
3208
3463
  TermsAndConditionsComponent.decorators = [
3209
3464
  { type: i0.Component, args: [{
3210
3465
  selector: 'xuilib-terms-and-conditions',
3211
- template: "<ng-container [ngSwitch]=\"document.mimeType\">\n <xuilib-tc-display-html *ngSwitchCase=\"'text/html'\">\n <div [innerHTML]=\"document.content\"></div>\n </xuilib-tc-display-html>\n <xuilib-tc-display-plain *ngSwitchCase=\"'text/plain'\">\n {{ document.content }}\n </xuilib-tc-display-plain>\n <div *ngSwitchDefault>\n An error occured. Please try again.\n </div>\n</ng-container>\n",
3466
+ template: "<ng-container [ngSwitch]=\"document.mimeType\">\n <xuilib-tc-display-html *ngSwitchCase=\"'text/html'\">\n <div [innerHTML]=\"document.content | rpxTranslate\"></div>\n </xuilib-tc-display-html>\n <xuilib-tc-display-plain *ngSwitchCase=\"'text/plain'\">\n {{ document.content | rpxTranslate}}\n </xuilib-tc-display-plain>\n <div *ngSwitchDefault>\n {{'An error occured. Please try again.' | rpxTranslate}}\n </div>\n</ng-container>\n",
3212
3467
  styles: [":host{display:block;width:100%}"]
3213
3468
  },] }
3214
3469
  ];
@@ -3242,7 +3497,7 @@
3242
3497
  UserDetailsComponent.decorators = [
3243
3498
  { type: i0.Component, args: [{
3244
3499
  selector: 'xuilib-user-details',
3245
- template: "<div class=\"govuk-warning-text\" *ngIf=\"warningTitle && warningTitle !== ''\">\n<span class=\"govuk-warning-text__icon\">!</span>\n<strong class=\"govuk-warning-text__text\">\n {{ warningTitle }}\n</strong>\n</div>\n<table class=\"govuk-table\" *ngIf=\"user\">\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"row\">Name</th>\n <td class=\"govuk-table__cell\">{{user.fullName}}</td>\n <td class=\"govuk-table__cell\"></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"row\">Email address</th>\n <td class=\"govuk-table__cell\">{{user.email}}</td>\n <td class=\"govuk-table__cell\"></td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"!user.resendInvite\">\n <th class=\"govuk-table__header\" scope=\"row\">Permissions</th>\n <td class=\"govuk-table__cell\">\n <div *ngIf=\"user.manageOrganisations === 'Yes'\">Manage organisations</div>\n <div *ngIf=\"user.manageUsers === 'Yes'\">Manage users</div>\n <div *ngIf=\"user.manageCases === 'Yes'\">Manage cases</div>\n <div *ngIf=\"userHasRole('pui-caa')\">Case access administrator</div>\n <div *ngIf=\"userHasRole('pui-finance-manager')\">Manage fee accounts</div>\n </td>\n <td class=\"govuk-table__cell\"><a *ngIf=\"editPermissionRouterLink && showEditLink\" [routerLink]=\"editPermissionRouterLink\">Change <span class=\"govuk-visually-hidden\">roles</span></a></td>\n </tr>\n </tbody>\n</table>\n<button *ngIf=\"showSuspendUserButton\" class=\"govuk-button govuk-button--warning\" (click)=\"suspendUser(user)\">\n Suspend account\n</button>\n<div *ngIf=\"user && user.resendInvite\">\n <div class=\"govuk-inset-text\">\n <p>This user has already been invited but has not activated their account.</p>\n <p>If you resend an invitation, they'll receive an email from HM Courts and Tribunals to finish setting up their account.</p>\n <p>You can't invite the same user more than once an hour.</p>\n </div>\n <a role=\"button\" draggable=\"false\" class=\"govuk-button\" (click)=\"reinviteClick(user)\" id=\"resend-invite-button\">\n Resend invitation\n </a>\n</div>\n<p class=\"govuk-body\" *ngIf=\"showHelpLink && suspendHelpLink\"><a [routerLink]=\"suspendHelpLink\" target=\"_blank\">Get help</a> to reactivate this account.</p>\n",
3500
+ template: "<div class=\"govuk-warning-text\" *ngIf=\"warningTitle && warningTitle !== ''\">\n<span class=\"govuk-warning-text__icon\">!</span>\n<strong class=\"govuk-warning-text__text\">\n {{ warningTitle | rpxTranslate}}\n</strong>\n</div>\n<table class=\"govuk-table\" *ngIf=\"user\">\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"row\">{{'Name' | rpxTranslate}}</th>\n <td class=\"govuk-table__cell\">{{user.fullName | rpxTranslate}}</td>\n <td class=\"govuk-table__cell\"></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"row\">{{'Email address' | rpxTranslate}}</th>\n <td class=\"govuk-table__cell\">{{user.email}}</td>\n <td class=\"govuk-table__cell\"></td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"!user.resendInvite\">\n <th class=\"govuk-table__header\" scope=\"row\">{{'Permissions' | rpxTranslate}}</th>\n <td class=\"govuk-table__cell\">\n <div *ngIf=\"user.manageOrganisations === 'Yes'\">{{'Manage organisations' | rpxTranslate}}</div>\n <div *ngIf=\"user.manageUsers === 'Yes'\">{{'Manage users' | rpxTranslate}}</div>\n <div *ngIf=\"user.manageCases === 'Yes'\">{{'Manage cases' | rpxTranslate}}</div>\n <div *ngIf=\"userHasRole('pui-caa')\">{{'Case access administrator' | rpxTranslate}}</div>\n <div *ngIf=\"userHasRole('pui-finance-manager')\">{{'Manage fee accounts' | rpxTranslate}}</div>\n </td>\n <td class=\"govuk-table__cell\"><a *ngIf=\"editPermissionRouterLink && showEditLink\" [routerLink]=\"editPermissionRouterLink\">{{'Change' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'roles' | rpxTranslate}}</span></a></td>\n </tr>\n </tbody>\n</table>\n<button *ngIf=\"showSuspendUserButton\" class=\"govuk-button govuk-button--warning\" (click)=\"suspendUser(user)\">\n {{'Suspend account' | rpxTranslate}}\n</button>\n<div *ngIf=\"user && user.resendInvite\">\n <div class=\"govuk-inset-text\">\n <p>{{'This user has already been invited but has not activated their account.' | rpxTranslate}}</p>\n <p>{{'If you resend an invitation, they\\'ll receive an email from HM Courts and Tribunals to finish setting up their account.' | rpxTranslate}}</p>\n <p>{{'You can\\'t invite the same user more than once an hour.' | rpxTranslate}}</p>\n </div>\n <a role=\"button\" draggable=\"false\" class=\"govuk-button\" (click)=\"reinviteClick(user)\" id=\"resend-invite-button\">\n {{'Resend invitation' | rpxTranslate}}\n </a>\n</div>\n<p class=\"govuk-body\" *ngIf=\"showHelpLink && suspendHelpLink\"><a [routerLink]=\"suspendHelpLink\" target=\"_blank\">{{'Get help' | rpxTranslate}}</a> {{'to reactivate this account.' | rpxTranslate}}</p>\n",
3246
3501
  styles: [":host{display:block}"]
3247
3502
  },] }
3248
3503
  ];
@@ -3279,7 +3534,7 @@
3279
3534
  UserListComponent.decorators = [
3280
3535
  { type: i0.Component, args: [{
3281
3536
  selector: 'xuilib-user-list',
3282
- template: "<table class=\"govuk-table\">\n\n <thead clas=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\">Name</th>\n <th class=\"govuk-table__header\" scope=\"col\">Email</th>\n <th class=\"govuk-table__header\" scope=\"col\">Status</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-container *ngFor=\"let u of users | paginate: { itemsPerPage: pagination.itemsPerPage, currentPage: currentPageNumber, totalItems: pagination.totalItems }\">\n <tr class=\"govuk-table__row\" data-selector=\"table-row\">\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">\n <a class=\"govuk-link\" [attr.title]=\"u.routerLinkTitle\" [routerLink]=\"u.routerLink\" (click)=\"onUserClick(u)\">{{ u.fullName }}</a>\n </td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.email }}</td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.status }}</td>\n </tr>\n </ng-container>\n </tbody>\n</table>\n<xuilib-hmcts-pagination (pageChange)=\"emitPageClickEvent($event)\" [pageSize]=\"pagination.itemsPerPage\"></xuilib-hmcts-pagination>\n",
3537
+ template: "<table class=\"govuk-table\">\n\n <thead clas=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\">{{'Name' | rpxTranslate}}</th>\n <th class=\"govuk-table__header\" scope=\"col\">{{'Email' | rpxTranslate}}</th>\n <th class=\"govuk-table__header\" scope=\"col\">{{'Status' | rpxTranslate}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-container *ngFor=\"let u of users | paginate: { itemsPerPage: pagination.itemsPerPage, currentPage: currentPageNumber, totalItems: pagination.totalItems }\">\n <tr class=\"govuk-table__row\" data-selector=\"table-row\">\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">\n <a class=\"govuk-link\" [attr.title]=\"u.routerLinkTitle\" [routerLink]=\"u.routerLink\" (click)=\"onUserClick(u)\">{{ u.fullName }}</a>\n </td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.email }}</td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.status }}</td>\n </tr>\n </ng-container>\n </tbody>\n</table>\n<xuilib-hmcts-pagination (pageChange)=\"emitPageClickEvent($event)\" [pageSize]=\"pagination.itemsPerPage\"></xuilib-hmcts-pagination>\n",
3283
3538
  styles: [":host{display:block}"]
3284
3539
  },] }
3285
3540
  ];
@@ -3344,7 +3599,7 @@
3344
3599
  CookieBannerComponent.decorators = [
3345
3600
  { type: i0.Component, args: [{
3346
3601
  selector: 'xuilib-cookie-banner',
3347
- template: "<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">Cookies on {{appName}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>We use some essential cookies to make this service work.</p>\n <p>We\u2019d also like to use analytics cookies so we can understand how you use the service and make improvements.</p>\n </div>\n </div>\n </div>\n\n <div class=\"govuk-button-group\">\n <button value=\"accept\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"acceptCookie()\">\n Accept analytics cookies\n </button>\n <button value=\"reject\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"rejectCookie()\">\n Reject analytics cookies\n </button>\n <a class=\"govuk-link\" routerLink=\"/cookies\">View cookies</a>\n </div>\n </div>\n</div>"
3602
+ template: "<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">{{'Cookies on' | rpxTranslate}} {{appName | rpxTranslate}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>{{'We use some essential cookies to make this service work.' | rpxTranslate}}</p>\n <p>{{'We\\\u2019d also like to use analytics cookies so we can understand how you use the service and make improvements.' | rpxTranslate}}</p>\n </div>\n </div>\n </div>\n\n <div class=\"govuk-button-group\">\n <button value=\"accept\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"acceptCookie()\">\n {{'Accept analytics cookies' | rpxTranslate}}\n </button>\n <button value=\"reject\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"rejectCookie()\">\n {{'Reject analytics cookies' | rpxTranslate}}\n </button>\n <a class=\"govuk-link\" routerLink=\"/cookies\">{{'View cookies' | rpxTranslate}}</a>\n </div>\n </div>\n</div>\n"
3348
3603
  },] }
3349
3604
  ];
3350
3605
  CookieBannerComponent.ctorParameters = function () { return [
@@ -3507,7 +3762,7 @@
3507
3762
  FindServiceComponent.decorators = [
3508
3763
  { type: i0.Component, args: [{
3509
3764
  selector: 'xuilib-find-service',
3510
- template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle }}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addOption(tempSelectedService)\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n Add\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label }}\n </a>\n </li>\n </ul>\n</div>\n",
3765
+ template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle | rpxTranslate}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addOption(tempSelectedService)\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n {{ 'Add' | rpxTranslate}}\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label | rpxTranslate }}\n </a>\n </li>\n </ul>\n</div>\n",
3511
3766
  styles: ["#add-service{background-color:#ddd}"]
3512
3767
  },] }
3513
3768
  ];
@@ -3521,56 +3776,6 @@
3521
3776
  serviceFieldChanged: [{ type: i0.Output }]
3522
3777
  };
3523
3778
 
3524
- exports.BadgeColour = void 0;
3525
- (function (BadgeColour) {
3526
- BadgeColour["BADGE_RED"] = "hmcts-badge--red";
3527
- BadgeColour["BADGE_BLUE"] = "hmcts-badge--blue";
3528
- BadgeColour["BADGE_GREEN"] = "hmcts-badge--green";
3529
- })(exports.BadgeColour || (exports.BadgeColour = {}));
3530
-
3531
- var AnonymousFeatureUser = /** @class */ (function () {
3532
- function AnonymousFeatureUser() {
3533
- }
3534
- return AnonymousFeatureUser;
3535
- }());
3536
- var LoggedInFeatureUser = /** @class */ (function () {
3537
- function LoggedInFeatureUser() {
3538
- }
3539
- return LoggedInFeatureUser;
3540
- }());
3541
-
3542
- var RadioFilterFieldConfig = /** @class */ (function () {
3543
- function RadioFilterFieldConfig() {
3544
- }
3545
- return RadioFilterFieldConfig;
3546
- }());
3547
-
3548
- exports.BookingCheckType = void 0;
3549
- (function (BookingCheckType) {
3550
- BookingCheckType["NO_CHECK"] = "NO_CHECK";
3551
- BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
3552
- BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
3553
- })(exports.BookingCheckType || (exports.BookingCheckType = {}));
3554
-
3555
- exports.PersonRole = void 0;
3556
- (function (PersonRole) {
3557
- PersonRole["JUDICIAL"] = "Judicial";
3558
- PersonRole["CASEWORKER"] = "Legal Ops";
3559
- PersonRole["ADMIN"] = "Admin";
3560
- PersonRole["CTSC"] = "CTSC";
3561
- PersonRole["ALL"] = "All";
3562
- })(exports.PersonRole || (exports.PersonRole = {}));
3563
- // Note: RoleCategory could replace PersonRole possibly
3564
- // However a lot of webapp logic is based on current PersonRole understanding
3565
- exports.RoleCategory = void 0;
3566
- (function (RoleCategory) {
3567
- RoleCategory["JUDICIAL"] = "JUDICIAL";
3568
- RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
3569
- RoleCategory["ADMIN"] = "ADMIN";
3570
- RoleCategory["CTSC"] = "CTSC";
3571
- RoleCategory["ALL"] = "ALL";
3572
- })(exports.RoleCategory || (exports.RoleCategory = {}));
3573
-
3574
3779
  var LocationService = /** @class */ (function () {
3575
3780
  function LocationService(http) {
3576
3781
  this.http = http;
@@ -3582,11 +3787,8 @@
3582
3787
  * @param searchTerm: any search term for postcode | site name | venue name |court name | court address etc.
3583
3788
  * @return Observable<LocationByEPIMMSModel[]>: Array of locationModel in Observable
3584
3789
  */
3585
- // EUI-7909 - replace definition
3586
- /* public getAllLocations(serviceIds: string, locationType: string, searchTerm: string, userLocations: LocationsByService[]): Observable<LocationByEPIMMSModel[]> {
3587
- return this.http.post<LocationByEPIMMSModel[]>(`api/locations/getLocations`, {serviceIds, locationType, searchTerm, userLocations}); */
3588
- LocationService.prototype.getAllLocations = function (serviceIds, locationType, searchTerm, userLocations, bookingLocations) {
3589
- return this.http.post("api/locations/getLocations", { serviceIds: serviceIds, locationType: locationType, searchTerm: searchTerm, userLocations: userLocations, bookingLocations: bookingLocations });
3790
+ LocationService.prototype.getAllLocations = function (locationUrl, serviceIds, locationType, searchTerm, userLocations) {
3791
+ return this.http.post(locationUrl, { serviceIds: serviceIds, locationType: locationType, searchTerm: searchTerm, userLocations: userLocations });
3590
3792
  };
3591
3793
  /**
3592
3794
  * @description searchLocations from service Ids/location type/search term
@@ -3607,7 +3809,7 @@
3607
3809
  },] }
3608
3810
  ];
3609
3811
  LocationService.ctorParameters = function () { return [
3610
- { type: i1$2.HttpClient }
3812
+ { type: i1$1.HttpClient }
3611
3813
  ]; };
3612
3814
 
3613
3815
  var SessionStorageService = /** @class */ (function () {
@@ -3727,50 +3929,22 @@
3727
3929
  };
3728
3930
  SearchLocationComponent.prototype.getLocations = function (term) {
3729
3931
  var userLocations;
3730
- // EUI-7909 - remove line below
3731
- var bookingLocations;
3732
3932
  // Booking type info - can create more
3733
3933
  // NO_CHECK - All work - Do not filter out locations - Default assumption
3734
3934
  // BOOKINGS_AND_BASE - My work - Try to only show base locations/regions
3735
3935
  // POSSIBLE_BOOKINGS - Create booking screen - Show only potential bookings
3736
3936
  if (this.bookingCheck === exports.BookingCheckType.BOOKINGS_AND_BASE) {
3737
3937
  userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations'));
3738
- // EUI - 7909 remove up to next reference of 7909
3739
- bookingLocations = JSON.parse(this.sessionStorageService.getItem('bookingLocations'));
3740
- var bookableServices = JSON.parse(this.sessionStorageService.getItem('bookableServices'));
3741
- var knownBookableServices_1 = [];
3742
- // we do below in order to enable booking locations to be searched for bookable role assignments without base location or region
3743
- // first get all bookable services existing in userLocations
3744
- userLocations.forEach(function (userLocation) {
3745
- if (userLocation.bookable) {
3746
- knownBookableServices_1.push(userLocation.service);
3747
- }
3748
- });
3749
- // then, from the full list of bookable services, add ones that are missing
3750
- // this is so that booking locations will be checked for all relevant services
3751
- bookableServices.forEach(function (bookableService) {
3752
- if (!knownBookableServices_1.includes(bookableService)) {
3753
- userLocations.push({ service: bookableService, locations: [], bookable: true });
3754
- }
3755
- });
3756
- // EUI-7909
3757
3938
  }
3758
3939
  else if (this.bookingCheck === exports.BookingCheckType.POSSIBLE_BOOKINGS) {
3759
3940
  this.serviceIds = this.serviceIds && this.serviceIds.length ? this.serviceIds : JSON.parse(this.sessionStorageService.getItem('bookableServices'));
3760
- // EUI-7909 - remove next three lines
3761
- userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations'));
3762
- // filter out any non-bookable services
3763
- userLocations = userLocations.filter(function (userLocation) { return userLocation.bookable; });
3764
- // EUI-7909 - uncomment out line below
3765
- // userLocations = JSON.parse(this.sessionStorageService.getItem('bookableUserLocations')) as LocationsByService[];
3941
+ userLocations = JSON.parse(this.sessionStorageService.getItem('bookableUserLocations'));
3766
3942
  }
3767
3943
  // get all locations will resolve filter setting using objects above
3768
3944
  // if no userLocations, NO_CHECK
3769
3945
  // if just getting all substantive user locations, BOOKINGS_AND_BASE
3770
3946
  // fee paid user locations are used for POSSIBLE_BOOKINGS
3771
- // EUI-7909 - swap lines below
3772
- // return this.locationService.getAllLocations(this.serviceIds, this.locationType, term, userLocations);
3773
- return this.locationService.getAllLocations(this.serviceIds, this.locationType, term, userLocations, bookingLocations);
3947
+ return this.locationService.getAllLocations(SearchLocationComponent.allLocationAPI, this.serviceIds, this.locationType, term, userLocations);
3774
3948
  };
3775
3949
  SearchLocationComponent.prototype.resetSearchTerm = function () {
3776
3950
  this.searchTermFormControl.setValue('');
@@ -3784,10 +3958,11 @@
3784
3958
  };
3785
3959
  return SearchLocationComponent;
3786
3960
  }());
3961
+ SearchLocationComponent.allLocationAPI = "api/locations/getLocations";
3787
3962
  SearchLocationComponent.decorators = [
3788
3963
  { type: i0.Component, args: [{
3789
3964
  selector: 'exui-search-location',
3790
- template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputLocationSearch\"\n (input)=\"onInput()\"\n [formControl]=\"searchTermFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <ng-container *ngIf=\"filteredList$ | async as filteredList\">\n <ng-container *ngIf=\"filteredList && filteredList.length >= 0\">\n <mat-option *ngFor=\"let location of filteredList\" (onSelectionChange)=\"onSelectedLocation(location)\">\n {{ location[propertyNameFilter] }}\n </mat-option>\n <mat-option *ngIf=\"filteredList.length === 0\">No results found</mat-option>\n </ng-container>\n </ng-container>\n </mat-autocomplete>\n</div>\n",
3965
+ template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputLocationSearch\"\n (input)=\"onInput()\"\n [formControl]=\"searchTermFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <ng-container *ngIf=\"filteredList$ | async as filteredList\">\n <ng-container *ngIf=\"filteredList && filteredList.length >= 0\">\n <mat-option *ngFor=\"let location of filteredList\" (onSelectionChange)=\"onSelectedLocation(location)\">\n {{ location[propertyNameFilter] }}\n </mat-option>\n <mat-option *ngIf=\"filteredList.length === 0\">{{'No results found' | rpxTranslate}}</mat-option>\n </ng-container>\n </ng-container>\n </mat-autocomplete>\n</div>\n",
3791
3966
  styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{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>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{display:inline-block;margin-right:4px;width:calc(100% - 4px)}.autocomplete__input{line-height:24px;font-size:19px}"]
3792
3967
  },] }
3793
3968
  ];
@@ -4001,7 +4176,7 @@
4001
4176
  PaginationComponent.decorators = [
4002
4177
  { type: i0.Component, args: [{
4003
4178
  selector: 'xuilib-pagination',
4004
- template: "<nav class=\"hmcts-pagination\" id=\"pagination-label\">\n\n <p class=\"govuk-visually-hidden\" aria-labelledby=\"pagination-label\">Pagination navigation</p>\n\n <ul class=\"hmcts-pagination__list\">\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\">\n <a *ngIf=\"firstRecord > 1; else noPrevious\" class=\"hmcts-pagination__link\" (click)=\"onPrevious()\" href=\"javascript:void(0)\">\n Previous page\n </a>\n <ng-template #noPrevious>\n <span class=\"hmcts-pagination__link\">Previous page</span>\n </ng-template>\n </li>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\">\n <a *ngIf=\"moreItems; else noNext\" class=\"hmcts-pagination__link\" (click)=\"onNext()\" href=\"javascript:void(0)\">Next page</a>\n <ng-template #noNext>\n <span class=\"hmcts-pagination__link\">Next page</span>\n </ng-template>\n </li>\n </ul>\n</nav>\n",
4179
+ template: "<nav class=\"hmcts-pagination\" id=\"pagination-label\">\n\n <p class=\"govuk-visually-hidden\" aria-labelledby=\"pagination-label\">{{'Pagination navigation' | rpxTranslate}}</p>\n\n <ul class=\"hmcts-pagination__list\">\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\">\n <a *ngIf=\"firstRecord > 1; else noPrevious\" class=\"hmcts-pagination__link\" (click)=\"onPrevious()\" href=\"javascript:void(0)\">\n {{'Previous page' | rpxTranslate}}\n </a>\n <ng-template #noPrevious>\n <span class=\"hmcts-pagination__link\">{{'Previous page' | rpxTranslate}}</span>\n </ng-template>\n </li>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\">\n <a *ngIf=\"moreItems; else noNext\" class=\"hmcts-pagination__link\" (click)=\"onNext()\" href=\"javascript:void(0)\">{{'Next page' | rpxTranslate}}</a>\n <ng-template #noNext>\n <span class=\"hmcts-pagination__link\">{{'Next page' | rpxTranslate}}</span>\n </ng-template>\n </li>\n </ul>\n</nav>\n",
4005
4180
  styles: ["span.hmcts-pagination__link:hover{color:revert}"]
4006
4181
  },] }
4007
4182
  ];
@@ -4175,7 +4350,8 @@
4175
4350
  }
4176
4351
  this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
4177
4352
  return this.http.post('/workallocation/findPerson', { searchOptions: searchOptions })
4178
- .pipe(operators.map(function (judiciary) { return judiciary.filter(function (judge) { return !([_this.assignedUser, _this.userId].includes(judge.id)); }); }));
4353
+ .pipe(operators.map(function (judiciary) { return judiciary.filter(function (judge) { return !([_this.assignedUser].includes(judge.id)); }); }));
4354
+ // Removed the current user id to fix EUI-8465.
4179
4355
  };
4180
4356
  FindAPersonService.prototype.findCaseworkers = function (searchOptions) {
4181
4357
  var _this = this;
@@ -4265,7 +4441,7 @@
4265
4441
  },] }
4266
4442
  ];
4267
4443
  FindAPersonService.ctorParameters = function () { return [
4268
- { type: i1$2.HttpClient },
4444
+ { type: i1$1.HttpClient },
4269
4445
  { type: SessionStorageService }
4270
4446
  ]; };
4271
4447
 
@@ -4490,7 +4666,7 @@
4490
4666
  FindPersonComponent.decorators = [
4491
4667
  { type: i0.Component, args: [{
4492
4668
  selector: 'xuilib-find-person',
4493
- template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\"\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option)}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n",
4669
+ template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title | rpxTranslate}}</span>\n {{boldTitle | rpxTranslate}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle | rpxTranslate}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\"\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option) | rpxTranslate}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">{{'No results found' | rpxTranslate}}</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n",
4494
4670
  styles: [".mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}.hide-autocomplete{display:none}"]
4495
4671
  },] }
4496
4672
  ];
@@ -4547,7 +4723,7 @@
4547
4723
  },] }
4548
4724
  ];
4549
4725
  TaskNameService.ctorParameters = function () { return [
4550
- { type: i1$2.HttpClient },
4726
+ { type: i1$1.HttpClient },
4551
4727
  { type: SessionStorageService }
4552
4728
  ]; };
4553
4729
 
@@ -4663,7 +4839,7 @@
4663
4839
  ExuiPageWrapperComponent.decorators = [
4664
4840
  { type: i0.Component, args: [{
4665
4841
  selector: 'exui-page-wrapper',
4666
- template: "<div class=\"page\">\n <a *ngIf=\"backLink\" [routerLink]=\"backLink\" class=\"govuk-back-link\">Back</a>\n <div class=\"govuk-width-container\">\n <main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <h1 *ngIf=\"title\" class=\"govuk-heading-xl\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle}}</span>\n {{title}}\n </h1>\n <ng-content>\n\n </ng-content>\n </div>\n </main>\n </div>\n</div>\n",
4842
+ template: "<div class=\"page\">\n <a *ngIf=\"backLink\" [routerLink]=\"backLink\" class=\"govuk-back-link\">{{'Back' | rpxTranslate}}</a>\n <div class=\"govuk-width-container\">\n <main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <h1 *ngIf=\"title\" class=\"govuk-heading-xl\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n {{title | rpxTranslate}}\n </h1>\n <ng-content>\n\n </ng-content>\n </div>\n </main>\n </div>\n</div>\n",
4667
4843
  styles: [".page{width:100%}"]
4668
4844
  },] }
4669
4845
  ];
@@ -4674,6 +4850,213 @@
4674
4850
  fnTitle: [{ type: i0.Input }]
4675
4851
  };
4676
4852
 
4853
+ var WriteAddressFieldComponent = /** @class */ (function () {
4854
+ function WriteAddressFieldComponent(addressesService) {
4855
+ this.addressesService = addressesService;
4856
+ this.internationalMode = false;
4857
+ this.submissionAttempted = false;
4858
+ this.addressChosen = false;
4859
+ this.postcodeOptionSelected = new i0.EventEmitter();
4860
+ this.internationalModeStart = new i0.EventEmitter();
4861
+ this.ukAddressOptionSelected = new i0.EventEmitter();
4862
+ // indicated what error to display to user
4863
+ this.canSelectAddress = new i0.EventEmitter();
4864
+ // tells parent to reset submission attempted field
4865
+ // only relevant to when user re-clicks find address
4866
+ this.resetSubmission = new i0.EventEmitter();
4867
+ this.addressField = {
4868
+ addressLine1: '',
4869
+ addressLine2: '',
4870
+ addressLine3: '',
4871
+ postCode: '',
4872
+ postTown: '',
4873
+ country: '',
4874
+ county: ''
4875
+ };
4876
+ this.optionErrorsPresent = false;
4877
+ this.addressSelectable = false;
4878
+ this.missingPostcode = false;
4879
+ this.optionErrorMessage = exports.AddressMessageEnum.NO_OPTION_SELECTED;
4880
+ this.postcodeErrorMessage = exports.AddressMessageEnum.NO_POSTCODE_SELECTED;
4881
+ this.selectErrorMessage = exports.AddressMessageEnum.SELECT_ADDRESS;
4882
+ }
4883
+ WriteAddressFieldComponent.prototype.ngOnInit = function () {
4884
+ if (!this.formGroup.get('address')) {
4885
+ this.formGroup.addControl('address', new forms.FormControl({}));
4886
+ }
4887
+ // set the form group relevant to only the external parent component
4888
+ this.addressFormGroup = new forms.FormGroup({
4889
+ // relevant to international mode
4890
+ ukAddress: new forms.FormControl(this.isInternational !== undefined ? (this.isInternational ? 'no' : 'yes') : null),
4891
+ // relevant to postocode lookup
4892
+ postcode: new forms.FormControl(''),
4893
+ addressList: new forms.FormControl('')
4894
+ });
4895
+ this.setPostcodeForm();
4896
+ };
4897
+ WriteAddressFieldComponent.prototype.findAddress = function () {
4898
+ var _this = this;
4899
+ this.resetSubmission.emit();
4900
+ if (!this.addressFormGroup.get('postcode').value) {
4901
+ this.missingPostcode = true;
4902
+ this.canSelectAddress.emit(false);
4903
+ }
4904
+ else {
4905
+ this.missingPostcode = false;
4906
+ this.addressField = null;
4907
+ var postcode_1 = this.addressFormGroup.get('postcode').value;
4908
+ this.addressOptions = [];
4909
+ this.addressesService.getAddressesForPostcode(postcode_1.replace(' ', '').toUpperCase()).subscribe(function (result) {
4910
+ result.forEach(function (address) {
4911
+ _this.addressOptions.push(new AddressOption(address, null));
4912
+ });
4913
+ _this.addressOptions.unshift(new AddressOption(undefined, _this.defaultLabel(_this.addressOptions.length)));
4914
+ }, function (error) {
4915
+ // Edited this so that errors not produced if there are no results for a postcode
4916
+ console.log("An error occurred retrieving addresses for postcode " + postcode_1 + ". " + error);
4917
+ _this.addressOptions.unshift(new AddressOption(undefined, _this.defaultLabel(_this.addressOptions.length)));
4918
+ });
4919
+ this.addressFormGroup.get('addressList').setValue(undefined);
4920
+ }
4921
+ };
4922
+ WriteAddressFieldComponent.prototype.blankAddress = function () {
4923
+ this.setFormValue();
4924
+ this.resetSubmission.emit();
4925
+ if (this.internationalMode) {
4926
+ this.internationalModeStart.emit();
4927
+ }
4928
+ };
4929
+ WriteAddressFieldComponent.prototype.shouldShowDetailFields = function () {
4930
+ if (!this.formGroup.get('address')) {
4931
+ return false;
4932
+ }
4933
+ var address = this.formGroup.get('address').value;
4934
+ var hasAddress = false;
4935
+ if (address) {
4936
+ Object.keys(address).forEach(function (key) {
4937
+ if (address[key] !== null) {
4938
+ hasAddress = true;
4939
+ }
4940
+ });
4941
+ }
4942
+ return hasAddress;
4943
+ };
4944
+ WriteAddressFieldComponent.prototype.addressSelected = function () {
4945
+ this.missingPostcode = false;
4946
+ this.addressField = this.addressFormGroup.get('addressList').value;
4947
+ this.addressChosen = true;
4948
+ this.setFormValue();
4949
+ this.postcodeOptionSelected.emit();
4950
+ };
4951
+ WriteAddressFieldComponent.prototype.ngOnChanges = function (changes) {
4952
+ var addressChange = changes['addressField'];
4953
+ var internationalChange = changes['isInternational'];
4954
+ if (addressChange) {
4955
+ this.setFormValue();
4956
+ }
4957
+ if (internationalChange && this.addressFormGroup && this.addressFormGroup.get('ukAddress')) {
4958
+ this.addressFormGroup.get('ukAddress').patchValue(this.isInternational ? 'no' : 'yes');
4959
+ }
4960
+ if (!this.addressChosen && this.addressFormGroup && this.addressFormGroup.get('addressList')) {
4961
+ // resets address options on internal back
4962
+ this.addressFormGroup.get('addressList').patchValue(undefined);
4963
+ }
4964
+ this.checkIfErrorsNeeded();
4965
+ };
4966
+ WriteAddressFieldComponent.prototype.checkIfErrorsNeeded = function () {
4967
+ if (this.submissionAttempted && this.internationalMode && !this.postcodeLookupVisible()) {
4968
+ // ensure errors present when submission attmempted on international radio buttons
4969
+ this.optionErrorsPresent = true;
4970
+ this.optionErrorMessage = exports.AddressMessageEnum.NO_OPTION_SELECTED;
4971
+ }
4972
+ else {
4973
+ this.optionErrorsPresent = false;
4974
+ }
4975
+ if (this.optionErrorsPresent && (this.addressChosen || this.isInternational !== undefined)) {
4976
+ // ensure parent errors not present when the child form group is present
4977
+ this.optionErrorsPresent = false;
4978
+ }
4979
+ };
4980
+ WriteAddressFieldComponent.prototype.setInternationalAddress = function (isInternational) {
4981
+ this.isInternational = isInternational;
4982
+ this.ukAddressOptionSelected.emit(this.isInternational);
4983
+ };
4984
+ WriteAddressFieldComponent.prototype.postcodeErrorPresent = function (isPostcodeField) {
4985
+ var checkForField = isPostcodeField ? !this.addressSelectable : this.addressSelectable;
4986
+ return this.submissionAttempted && checkForField;
4987
+ };
4988
+ WriteAddressFieldComponent.prototype.postcodeLookupVisible = function () {
4989
+ return !this.shouldShowDetailFields() || (!this.startedInternational && !this.addressChosen);
4990
+ };
4991
+ WriteAddressFieldComponent.prototype.defaultLabel = function (numberOfAddresses) {
4992
+ this.addressSelectable = numberOfAddresses > 0 ? true : false;
4993
+ this.canSelectAddress.emit(this.addressSelectable);
4994
+ return numberOfAddresses === 0 ? 'No address found'
4995
+ : "" + numberOfAddresses + (numberOfAddresses === 1 ? ' address ' : ' addresses ') + "found";
4996
+ };
4997
+ WriteAddressFieldComponent.prototype.setFormValue = function () {
4998
+ if (this.formGroup) {
4999
+ this.formGroup.get('address').patchValue(this.addressField);
5000
+ }
5001
+ };
5002
+ WriteAddressFieldComponent.prototype.setPostcodeForm = function () {
5003
+ var postcodeNeeded = this.isInternational === undefined && this.formGroup.get('address') && this.formGroup.get('address').get('postCode');
5004
+ this.addressFormGroup.get('postcode').patchValue(postcodeNeeded ? this.formGroup.get('address').get('postCode').value : '');
5005
+ };
5006
+ return WriteAddressFieldComponent;
5007
+ }());
5008
+ WriteAddressFieldComponent.decorators = [
5009
+ { type: i0.Component, args: [{
5010
+ selector: 'xuilib-write-address-field',
5011
+ template: "<div class=\"govuk-form-group\" [formGroup]=\"addressFormGroup\" [ngClass]=\"{'govuk-form-group--error': optionErrorsPresent}\">\n <p class=\"govuk-error-message\" *ngIf=\"optionErrorsPresent\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{optionErrorMessage}}\n </p>\n <div *ngIf=\"postcodeLookupVisible()\">\n <div class=\"govuk-form-group postcodeLookup\" id=\"addressLookup\">\n <label for=\"postcodeInput\">\n <span class=\"govuk-label\"><b>Provide address details</b></span>\n <span class=\"govuk-label\">Enter a UK postcode</span>\n </label>\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': missingPostcode || postcodeErrorPresent(true)}\">\n <p class=\"govuk-error-message\" *ngIf=\"missingPostcode || postcodeErrorPresent(true)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{postcodeErrorMessage}}\n </p>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\" id=\"postcodeInput\" name=\"postcode\"\n class=\"govuk-input govuk-!-width-two-thirds postcodeinput inline-block\" formControlName=\"postcode\">\n <button type=\"button\" class=\"govuk-button\" (click)=\"findAddress()\">Find address</button>\n </div>\n </div>\n\n <div class=\"govuk-form-group\"\n *ngIf=\"addressOptions\" id=\"selectAddress\">\n <label class=\"govuk-label\" for=\"addressList\">\n <span class=\"form-label\">Select an address</span>\n </label>\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': postcodeErrorPresent(false)}\">\n <p class=\"govuk-error-message\" *ngIf=\"postcodeErrorPresent(false)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{selectErrorMessage}}\n </p>\n <select class=\"form-control govuk-select ccd-dropdown addressList\" id=\"addressList\" name=\"address\"\n formControlName=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n </div>\n\n <a class=\"manual-link govuk-link\" *ngIf=\"!shouldShowDetailFields() || (!startedInternational && !addressChosen)\" (click)=\"blankAddress()\"\n href=\"javascript:void(0)\">I can't enter a UK postcode</a>\n </div>\n\n <div class=\"govuk-radios\" data-module=\"govuk-radios\"\n *ngIf=\"shouldShowDetailFields() && internationalMode && startedInternational && !addressChosen\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"yes\" value=\"yes\" name=\"ukAddress\" type=\"radio\" data-aria-controls=\"address-fields\"\n (click)=\"setInternationalAddress(false)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"yes\">\n Yes\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"no\" value=\"no\" name=\"ukAddress\" type=\"radio\" data-aria-controls=\"address-fields\"\n (click)=\"setInternationalAddress(true)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"no\">\n No\n </label>\n </div>\n <div class=\"govuk-radios__conditional\" id=\"address-fields\">\n <xuilib-write-address-inputs *ngIf=\"isInternational !== undefined\" [formGroup]=\"formGroup\" [isInternational]=\"isInternational\"\n [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n </div>\n </div>\n\n <xuilib-write-address-inputs *ngIf=\"shouldShowDetailFields() && (addressChosen || !internationalMode)\"\n [formGroup]=\"formGroup\" [isInternational]=\"false\" [submissionAttempted]=\"submissionAttempted\"></xuilib-write-address-inputs>\n\n</div>",
5012
+ styles: [".manual-link{cursor:pointer;text-decoration:underline;margin-top:10px}.manual-link,:host{display:block}"]
5013
+ },] }
5014
+ ];
5015
+ WriteAddressFieldComponent.ctorParameters = function () { return [
5016
+ { type: AddressService }
5017
+ ]; };
5018
+ WriteAddressFieldComponent.propDecorators = {
5019
+ formGroup: [{ type: i0.Input }],
5020
+ internationalMode: [{ type: i0.Input }],
5021
+ isInternational: [{ type: i0.Input }],
5022
+ submissionAttempted: [{ type: i0.Input }],
5023
+ startedInternational: [{ type: i0.Input }],
5024
+ addressChosen: [{ type: i0.Input }],
5025
+ postcodeOptionSelected: [{ type: i0.Output }],
5026
+ internationalModeStart: [{ type: i0.Output }],
5027
+ ukAddressOptionSelected: [{ type: i0.Output }],
5028
+ canSelectAddress: [{ type: i0.Output }],
5029
+ resetSubmission: [{ type: i0.Output }]
5030
+ };
5031
+
5032
+ var WriteAddressInputsComponent = /** @class */ (function () {
5033
+ function WriteAddressInputsComponent() {
5034
+ this.MESSAGE_ENUM = exports.AddressMessageEnum;
5035
+ this.isInternational = false;
5036
+ this.submissionAttempted = false;
5037
+ this.missingPostcode = false;
5038
+ this.errorsPresent = false;
5039
+ }
5040
+ WriteAddressInputsComponent.prototype.ngOnChanges = function () {
5041
+ var addressGroup = this.formGroup.get('address');
5042
+ // if there is an issue with the formgroup, ensure error styling is displayed
5043
+ this.errorsPresent = !addressGroup.valid;
5044
+ };
5045
+ return WriteAddressInputsComponent;
5046
+ }());
5047
+ WriteAddressInputsComponent.decorators = [
5048
+ { type: i0.Component, args: [{
5049
+ selector: 'xuilib-write-address-inputs',
5050
+ template: "<ng-container>\n <form [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" formGroupName=\"address\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && errorsPresent}\">\n <label class=\"govuk-label govuk-!-font-weight-bold\">\n Enter address details\n </label>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"addressLine1\">\n Building and Street\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('addressLine1').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_STREET_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine1\" name=\"addressLine1\" type=\"text\"\n formControlName=\"addressLine1\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"addressLine2\">\n Address line 2 (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine2\" name=\"addressLine2\" type=\"text\"\n formControlName=\"addressLine2\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"addressLine3\">\n Address line 3 (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine3\" name=\"addressLine3\" type=\"text\"\n formControlName=\"addressLine3\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"postTown\">\n Town or City\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('postTown').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_CITY_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"postTown\" name=\"postTown\" type=\"text\"\n formControlName=\"postTown\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"county\">\n County{{this.isInternational ? '/ State/ Province' : ''}} (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"county\" name=\"county\" type=\"text\"\n formControlName=\"county\">\n </div>\n\n <div *ngIf=\"isInternational\" class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"country\">\n Country\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('country').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_COUNTRY_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"country\" name=\"country\" type=\"text\"\n formControlName=\"country\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"postCode\">\n Postcode{{this.isInternational ? ' (Optional)' : ''}}\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('required')\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_POSTCODE_SELECTED}}\n </p>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('invalidPostcode')\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.INVALID_POSTCODE}}\n </p>\n <input class=\"govuk-input govuk-!-width-one-third\" id=\"postCode\" name=\"postCode\" type=\"text\"\n formControlName=\"postCode\">\n </div>\n </div>\n</form>\n</ng-container>"
5051
+ },] }
5052
+ ];
5053
+ WriteAddressInputsComponent.ctorParameters = function () { return []; };
5054
+ WriteAddressInputsComponent.propDecorators = {
5055
+ formGroup: [{ type: i0.Input }],
5056
+ isInternational: [{ type: i0.Input }],
5057
+ submissionAttempted: [{ type: i0.Input }]
5058
+ };
5059
+
4677
5060
  var FeatureToggleDirective = /** @class */ (function () {
4678
5061
  function FeatureToggleDirective(service, viewContainer, templateRef) {
4679
5062
  this.service = service;
@@ -4775,7 +5158,7 @@
4775
5158
  GovUkCheckboxComponent.decorators = [
4776
5159
  { type: i0.Component, args: [{
4777
5160
  selector: 'xuilib-gov-checkbox',
4778
- template: "<div class=\"govuk-checkboxes__item\" [formGroup]=\"group\">\n <input class=\"govuk-checkboxes__input\" type=\"checkbox\" [attr.aria-describedby]=\"config.hint ? config.value+'-item-hint' : null\"\n [id]=\"config.id\" [name]=\"config.name\" [formControlName]=\"config.value\" [checked]=\"isChecked\">\n <xuilib-gov-label appRemoveHost [config]=\"config\"></xuilib-gov-label>\n <span [id]=\"config.value+'-item-hint'\" class=\"govuk-hint govuk-checkboxes__hint\">\n {{config.hint}}\n </span>\n</div>"
5161
+ template: "<div class=\"govuk-checkboxes__item\" [formGroup]=\"group\">\n <input class=\"govuk-checkboxes__input\" type=\"checkbox\" [attr.aria-describedby]=\"config.hint ? config.value+'-item-hint' : null\"\n [id]=\"config.id\" [name]=\"config.name\" [formControlName]=\"config.value\" [checked]=\"isChecked\">\n <xuilib-gov-label appRemoveHost [config]=\"config\"></xuilib-gov-label>\n <span [id]=\"config.value+'-item-hint'\" class=\"govuk-hint govuk-checkboxes__hint\">\n {{config.hint | rpxTranslate}}\n </span>\n</div>\n"
4779
5162
  },] }
4780
5163
  ];
4781
5164
  GovUkCheckboxComponent.ctorParameters = function () { return []; };
@@ -4949,7 +5332,7 @@
4949
5332
  GovUkErrorMessageComponent.decorators = [
4950
5333
  { type: i0.Component, args: [{
4951
5334
  selector: ' xuilib-gov-uk-error-message',
4952
- template: "<span class=\"govuk-error-message\" [id]=\"config.id + '-error'\" *ngFor=\"let message of errorMessage?.messages\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{message}}\n</span>"
5335
+ template: "<span class=\"govuk-error-message\" [id]=\"config.id + '-error'\" *ngFor=\"let message of errorMessage?.messages\">\n <span class=\"govuk-visually-hidden\">{{'Error' | rpxTranslate}}:</span>{{message | rpxTranslate}}\n</span>\n"
4953
5336
  },] }
4954
5337
  ];
4955
5338
  GovUkErrorMessageComponent.ctorParameters = function () { return []; };
@@ -4977,7 +5360,7 @@
4977
5360
  GovUkFieldsetComponent.decorators = [
4978
5361
  { type: i0.Component, args: [{
4979
5362
  selector: 'xuilib-gov-uk-fieldset',
4980
- template: "<fieldset class=\"govuk-fieldset\" [attr.aria-describedby]=\"setDescribedBy()\">\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"!config.isPageHeading\">\n {{config.legend}}\n </legend>\n\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"config.isPageHeading\">\n <h1>{{config.legend}}</h1>\n </legend>\n\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\" *ngIf=\"config.hint\">\n {{config.hint}}\n </span>\n <ng-content></ng-content>\n</fieldset>"
5363
+ template: "<fieldset class=\"govuk-fieldset\" [attr.aria-describedby]=\"setDescribedBy()\">\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"!config.isPageHeading\">\n {{config.legend | rpxTranslate}}\n </legend>\n\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"config.isPageHeading\">\n <h1>{{config.legend | rpxTranslate}}</h1>\n </legend>\n\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\" *ngIf=\"config.hint\">\n {{config.hint | rpxTranslate}}\n </span>\n <ng-content></ng-content>\n</fieldset>\n"
4981
5364
  },] }
4982
5365
  ];
4983
5366
  GovUkFieldsetComponent.ctorParameters = function () { return []; };
@@ -5009,7 +5392,7 @@
5009
5392
  GovUkFileUploadComponent.decorators = [
5010
5393
  { type: i0.Component, args: [{
5011
5394
  selector: 'xuilib-gov-uk-file-upload',
5012
- template: "<div class=\"govuk-form-group\" [formGroup]=\"group\"\n [ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n <xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n <span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n </span>\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n <input class=\"govuk-file-upload\"\n *ngIf=\"reloadInput\"\n [formControlName]=\"config.id\"\n [ngClass]=\"{'govuk-file-upload--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\" [name]=\"config.name\"\n [attr.aria-describedby]=\"setDescribedBy()\"\n type=\"file\">\n </div>"
5395
+ template: "<div class=\"govuk-form-group\" [formGroup]=\"group\"\n [ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n <xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n <span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n </span>\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n <input class=\"govuk-file-upload\"\n *ngIf=\"reloadInput\"\n [formControlName]=\"config.id\"\n [ngClass]=\"{'govuk-file-upload--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\" [name]=\"config.name\"\n [attr.aria-describedby]=\"setDescribedBy()\"\n type=\"file\">\n</div>\n"
5013
5396
  },] }
5014
5397
  ];
5015
5398
  GovUkFileUploadComponent.ctorParameters = function () { return []; };
@@ -5065,7 +5448,7 @@
5065
5448
  GovUkInputComponent.decorators = [
5066
5449
  { type: i0.Component, args: [{
5067
5450
  selector: 'xuilib-gov-uk-input',
5068
- template: "<div class=\"govuk-form-group gov-uk-input\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<input class=\"govuk-input\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\"\n [name]=\"config.name\"\n [type]=\"config.type\"\n [attr.aria-invalid]=\"errorMessage?.isInvalid\"\n [formControlName]=\"config.name\"\n [attr.aria-describedby]='setDescribedBy()'>\n</div>\n",
5451
+ template: "<div class=\"govuk-form-group gov-uk-input\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n</span>\n\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<input class=\"govuk-input\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\"\n [name]=\"config.name\"\n [type]=\"config.type\"\n [attr.aria-invalid]=\"errorMessage?.isInvalid\"\n [formControlName]=\"config.name\"\n [attr.aria-describedby]='setDescribedBy()'>\n</div>\n",
5069
5452
  styles: [".gov-uk-input input:disabled{background:#b1b4b6}"]
5070
5453
  },] }
5071
5454
  ];
@@ -5090,7 +5473,7 @@
5090
5473
  GovUkLabelComponent.decorators = [
5091
5474
  { type: i0.Component, args: [{
5092
5475
  selector: 'xuilib-gov-label',
5093
- template: "<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</h1>\n<ng-template #noHeading>\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</ng-template>\n",
5476
+ template: "<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label | rpxTranslate }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</h1>\n<ng-template #noHeading>\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</ng-template>\n",
5094
5477
  styles: [".govuk-label{display:flex;align-items:center;flex-wrap:wrap}.govuk-label__optional{font-weight:400;font-size:16px;display:inline-block;margin-left:.75rem}"]
5095
5478
  },] }
5096
5479
  ];
@@ -5123,7 +5506,7 @@
5123
5506
  GovUkRadioComponent.decorators = [
5124
5507
  { type: i0.Component, args: [{
5125
5508
  selector: 'xuilib-gov-radio',
5126
- template: "<div class=\"govuk-radios__item\" [formGroup]=\"group\">\n <input [className]=\"'govuk-radios__input ' + config.classes\"\n [id]=\"config.id\"\n [value]=\"config.value\" type=\"radio\"\n [attr.data-aria-controls]=\"config.id\"\n [name]=\"config.name\"\n [formControl]=\"group.controls[config.name]\">\n <xuilib-gov-label appRemoveHost [config]=\"config\"></xuilib-gov-label>\n</div>"
5509
+ template: "<div class=\"govuk-radios__item\" [formGroup]=\"group\">\n <input [className]=\"'govuk-radios__input ' + config.classes\"\n [id]=\"config.id\"\n [value]=\"config.value\" type=\"radio\"\n [attr.data-aria-controls]=\"config.id\"\n [name]=\"config.name\"\n [formControl]=\"group.controls[config.name]\">\n <xuilib-gov-label appRemoveHost [config]=\"config\"></xuilib-gov-label>\n</div>\n"
5127
5510
  },] }
5128
5511
  ];
5129
5512
  GovUkRadioComponent.ctorParameters = function () { return []; };
@@ -5170,7 +5553,7 @@
5170
5553
  GovUkSelectComponent.decorators = [
5171
5554
  { type: i0.Component, args: [{
5172
5555
  selector: 'xuilib-gov-select',
5173
- template: "<div class=\"govuk-form-group\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<select class=\"govuk-select\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [id]=\"config.id\" [name]=\"config.id\" [formControlName]=\"config.id\" [attr.aria-describedby]='setDescribedBy()'>\n <option value=\"{{item.value}}\" *ngFor=\"let item of items\">{{item.label}}</option>\n</select>\n</div>\n"
5556
+ template: "<div class=\"govuk-form-group\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n</span>\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<select class=\"govuk-select\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [id]=\"config.id\" [name]=\"config.id\" [formControlName]=\"config.id\" [attr.aria-describedby]='setDescribedBy()'>\n <option value=\"{{item.value}}\" *ngFor=\"let item of items\">{{item.label | rpxTranslate}}</option>\n</select>\n</div>\n"
5174
5557
  },] }
5175
5558
  ];
5176
5559
  GovUkSelectComponent.ctorParameters = function () { return []; };
@@ -5199,7 +5582,7 @@
5199
5582
  GovukTableComponent.decorators = [
5200
5583
  { type: i0.Component, args: [{
5201
5584
  selector: 'xuilib-gov-uk-table',
5202
- template: "<table class=\"{{'govuk-table ' + classes}}\">\n <caption class=\"govuk-table__caption\">{{caption}}</caption>\n <thead class=\"govuk-table__head\" >\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\" *ngFor=\"let h of columnConfig\">{{h.header}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr data-selector=\"table-row\" class=\"govuk-table__row\" *ngFor=\"let r of rows\">\n <ng-container *ngFor=\"let col of columnConfig; first as isFirst\">\n <th data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" *ngIf=\"isFirst && firstCellIsHeader\">\n <ng-container *ngIf=\"!col.type || col.type === 'text' || !r.routerLink\">{{r[col.key]}}</ng-container>\n <ng-container *ngIf=\"col.type === 'link' && r.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key]}}</a>\n </ng-container>\n </th>\n <td data-selector=\"table-cell\" class=\"govuk-table__cell\" *ngIf=\"!(isFirst && firstCellIsHeader)\">\n <ng-container *ngIf=\"col.type === 'date'\">{{formatDate(r[col.key])}}</ng-container>\n <ng-container *ngIf=\"!col.type || col.type === 'text' || !r.routerLink\">{{r[col.key]}}</ng-container>\n <ng-container *ngIf=\"col.type === 'link' && r.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key]}}</a>\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </tbody>\n</table>\n",
5585
+ template: "<table class=\"{{'govuk-table ' + classes}}\">\n <caption class=\"govuk-table__caption\">{{caption | rpxTranslate}}</caption>\n <thead class=\"govuk-table__head\" >\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\" *ngFor=\"let h of columnConfig\">{{h.header | rpxTranslate}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr data-selector=\"table-row\" class=\"govuk-table__row\" *ngFor=\"let r of rows\">\n <ng-container *ngFor=\"let col of columnConfig; first as isFirst\">\n <th data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" *ngIf=\"isFirst && firstCellIsHeader\">\n <ng-container *ngIf=\"!col.type || col.type === 'text' || !r.routerLink\">{{r[col.key] | rpxTranslate}}</ng-container>\n <ng-container *ngIf=\"col.type === 'link' && r.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key] | rpxTranslate}}</a>\n </ng-container>\n </th>\n <td data-selector=\"table-cell\" class=\"govuk-table__cell\" *ngIf=\"!(isFirst && firstCellIsHeader)\">\n <ng-container *ngIf=\"col.type === 'date'\">{{formatDate(r[col.key]) | rpxTranslate}}</ng-container>\n <ng-container *ngIf=\"!col.type || col.type === 'text' || !r.routerLink\">{{r[col.key] | rpxTranslate}}</ng-container>\n <ng-container *ngIf=\"col.type === 'link' && r.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key] | rpxTranslate}}</a>\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </tbody>\n</table>\n",
5203
5586
  styles: [""]
5204
5587
  },] }
5205
5588
  ];
@@ -5238,7 +5621,7 @@
5238
5621
  GovUkTextareaComponent.decorators = [
5239
5622
  { type: i0.Component, args: [{
5240
5623
  selector: 'xuilib-gov-uk-textarea',
5241
- template: "<div [formGroup]=\"group\" \nclass=\"govuk-form-group\" [ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n<span id=\"more-detail-hint\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n<textarea\n class=\"govuk-textarea\" [formControlName]=\"config.key\"\n [ngClass]=\"{'govuk-textarea--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\" name=\"more-detail\" [rows]=\"config.rows\" [attr.aria-describedby]=\"setDescribedBy()\"></textarea>\n</div>"
5624
+ template: "<div [formGroup]=\"group\"\nclass=\"govuk-form-group\" [ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n<span id=\"more-detail-hint\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n</span>\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n<textarea\n class=\"govuk-textarea\" [formControlName]=\"config.key\"\n [ngClass]=\"{'govuk-textarea--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\" name=\"more-detail\" [rows]=\"config.rows\" [attr.aria-describedby]=\"setDescribedBy()\"></textarea>\n</div>\n"
5242
5625
  },] }
5243
5626
  ];
5244
5627
  GovUkTextareaComponent.propDecorators = {
@@ -5258,7 +5641,7 @@
5258
5641
  HmctsBannerComponent.decorators = [
5259
5642
  { type: i0.Component, args: [{
5260
5643
  selector: 'xuilib-hmcts-banner',
5261
- template: "<ng-container *ngIf=\"message && type\">\n <div *ngIf=\"title\"\n class=\"hmcts-banner-title hmcts-banner-title--{{ type }}\">\n {{ title }}\n </div>\n <div class=\"hmcts-banner hmcts-banner--{{ type }}\">\n <ng-container *ngIf=\"showMessageIcon\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'warning'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--warning\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\"></path>\n </svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'success'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--success\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z\"></path>\n </svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'information'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--information\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\"></path>\n </svg>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div class=\"hmcts-banner__message\" [class.hmcts-banner__message--bold]=\"messageBoldText\">\n <span class=\"hmcts-banner__assistive\">{{ type }}</span>\n <span class=\"hmcts-banner__message-text govuk-!-font-weight-bold\">{{ message }}</span>\n </div>\n </div>\n</ng-container>\n",
5644
+ template: "<ng-container *ngIf=\"message && type\">\n <div *ngIf=\"title\"\n class=\"hmcts-banner-title hmcts-banner-title--{{ type }}\">\n {{ title }}\n </div>\n <div class=\"hmcts-banner hmcts-banner--{{ type }}\">\n <ng-container *ngIf=\"showMessageIcon\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'warning'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--warning\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\"></path>\n </svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'success'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--success\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z\"></path>\n </svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'information'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--information\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\"></path>\n </svg>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div class=\"hmcts-banner__message\" [class.hmcts-banner__message--bold]=\"messageBoldText\">\n <span class=\"hmcts-banner__assistive\">{{type | rpxTranslate}}</span>\n <span class=\"hmcts-banner__message-text govuk-!-font-weight-bold\">{{message | rpxTranslate}}</span>\n </div>\n </div>\n</ng-container>\n",
5262
5645
  styles: [".hmcts-banner-title{color:#fff;background-color:#1d70b8;font-weight:700;padding:10px 15px 5px}.hmcts-banner-title--success{background-color:#00703c}.hmcts-banner-title--warning{background-color:#d4351c}.hmcts-banner__message--bold{font-weight:700}"]
5263
5646
  },] }
5264
5647
  ];
@@ -5309,7 +5692,7 @@
5309
5692
  HmctsErrorSummaryComponent.decorators = [
5310
5693
  { type: i0.Component, args: [{
5311
5694
  selector: 'xuilib-hmcts-error-summary',
5312
- template: "<div *ngIf=\"!showWarningMessage && messages && messages.length > 0\" id=\"errorSummary\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{header}}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li *ngFor=\"let message of messages\">\n <a (click)=\"scrollTo(message['id'])\" [routerLink]=\"\" [fragment]=\"message['id']\"\n *ngIf=\"hasElement(message['id'])\">{{message['message']}}</a>\n <span *ngIf=\"!hasElement(message['id'])\">{{message['message']}}</span>\n </li>\n </ul>\n </div>\n</div>\n<div *ngIf=\"showWarningMessage\" class=\"hmcts-banner hmcts-banner--warning\">\n <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\" /></svg>\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">Warning</span>\n <p class=\"govuk-body\" *ngFor=\"let message of messages\">{{ message['message'] }}</p>\n </div>\n</div>"
5695
+ template: "<div *ngIf=\"!showWarningMessage && messages && messages.length > 0\" id=\"errorSummary\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{header | rpxTranslate}}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li *ngFor=\"let message of messages\">\n <a (click)=\"scrollTo(message['id'])\" [routerLink]=\"\" [fragment]=\"message['id']\"\n *ngIf=\"hasElement(message['id'])\">{{message['message'] | rpxTranslate}}</a>\n <span *ngIf=\"!hasElement(message['id'])\">{{message['message'] | rpxTranslate}}</span>\n </li>\n </ul>\n </div>\n</div>\n<div *ngIf=\"showWarningMessage\" class=\"hmcts-banner hmcts-banner--warning\">\n <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\" /></svg>\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">{{'Warning' | rpxTranslate}}</span>\n <p class=\"govuk-body\" *ngFor=\"let message of messages\">{{ message['message'] | rpxTranslate}}</p>\n </div>\n</div>\n"
5313
5696
  },] }
5314
5697
  ];
5315
5698
  HmctsErrorSummaryComponent.ctorParameters = function () { return [
@@ -5336,7 +5719,7 @@
5336
5719
  HmctsIdentityBarComponent.decorators = [
5337
5720
  { type: i0.Component, args: [{
5338
5721
  selector: 'xuilib-hmcts-identity-bar',
5339
- template: "<div class=\"hmcts-identity-bar\" *ngIf=\"value\">\n\n <div class=\"hmcts-identity-bar__container\">\n\n <div class=\"hmcts-identity-bar__details\">\n \n <span class=\"hmcts-identity-bar__title\">{{value}}</span>\n \n </div> \n\n </div>\n\n</div>",
5722
+ template: "<div class=\"hmcts-identity-bar\" *ngIf=\"value\">\n\n <div class=\"hmcts-identity-bar__container\">\n\n <div class=\"hmcts-identity-bar__details\">\n\n <span class=\"hmcts-identity-bar__title\">{{value | rpxTranslate}}</span>\n\n </div>\n\n </div>\n\n</div>\n",
5340
5723
  styles: [""]
5341
5724
  },] }
5342
5725
  ];
@@ -5376,7 +5759,7 @@
5376
5759
  HmctsMainWrapperComponent.decorators = [
5377
5760
  { type: i0.Component, args: [{
5378
5761
  selector: 'xuilib-hmcts-main-wrapper',
5379
- template: "<a *ngIf=\"hasBackLink\" [routerLink]=\"backLink\" (click)=\"onGoBack()\" class=\"govuk-back-link\">Back</a>\n<main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-hmcts-error-summary\n *ngIf=\"summaryErrors && !summaryErrors.isFromValid\"\n [errorMessages]=\"summaryErrors.items\"\n [header]=\"summaryErrors.header\"\n [showWarningMessage]=\"showWarningMessage\">\n </xuilib-hmcts-error-summary>\n <xuilib-hmcts-banner *ngIf=\"bannerData\"\n [type]=\"bannerData.type\"\n [message]=\"bannerData.message\"\n ></xuilib-hmcts-banner>\n <h1 *ngIf=\"title\" class=\"govuk-heading-xl\">{{title}}</h1>\n <ng-content></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-third\" *ngIf=\"actionButtons?.length > 0\">\n <div class=\"hmcts-page-heading__actions-wrapper\">\n <a\n *ngFor=\"let actionButton of actionButtons\"\n (click)=\"actionButton.action()\"\n role=\"button\"\n draggable=\"false\"\n class=\"govuk-button {{ actionButton.class }}\"\n >{{ actionButton.name }}</a>\n </div>\n </div>\n </div>\n</main>\n"
5762
+ template: "<a *ngIf=\"hasBackLink\" [routerLink]=\"backLink\" (click)=\"onGoBack()\" class=\"govuk-back-link\">{{'Back' | rpxTranslate}}</a>\n<main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-hmcts-error-summary\n *ngIf=\"summaryErrors && !summaryErrors.isFromValid\"\n [errorMessages]=\"summaryErrors.items\"\n [header]=\"summaryErrors.header\"\n [showWarningMessage]=\"showWarningMessage\">\n </xuilib-hmcts-error-summary>\n <xuilib-hmcts-banner *ngIf=\"bannerData\"\n [type]=\"bannerData.type\"\n [message]=\"bannerData.message\"\n ></xuilib-hmcts-banner>\n <h1 *ngIf=\"title\" class=\"govuk-heading-xl\">{{title | rpxTranslate}}</h1>\n <ng-content></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-third\" *ngIf=\"actionButtons?.length > 0\">\n <div class=\"hmcts-page-heading__actions-wrapper\">\n <a\n *ngFor=\"let actionButton of actionButtons\"\n (click)=\"actionButton.action()\"\n role=\"button\"\n draggable=\"false\"\n class=\"govuk-button {{ actionButton.class }}\"\n >{{ actionButton.name | rpxTranslate }}</a>\n </div>\n </div>\n </div>\n</main>\n"
5380
5763
  },] }
5381
5764
  ];
5382
5765
  HmctsMainWrapperComponent.ctorParameters = function () { return []; };
@@ -5404,7 +5787,7 @@
5404
5787
  HmctsPaginationComponent.decorators = [
5405
5788
  { type: i0.Component, args: [{
5406
5789
  selector: 'xuilib-hmcts-pagination',
5407
- template: "<pagination-template #p=\"paginationApi\" [id]=\"id\" [maxSize]=\"maxSize\" (pageChange)=\"pageChange.emit($event)\"\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\">\n\n <nav class=\"hmcts-pagination\" id=\"pagination-label\">\n <p class=\"govuk-visually-hidden\" aria-labelledby=\"pagination-label\">Pagination navigation</p>\n <ul class=\"hmcts-pagination__list\" *ngIf=\"!(p.pages.length <= 1)\">\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\" [class.disabled]=\"p.isFirstPage()\">\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" *ngIf=\"1 < p.getCurrent()\" (keyup.enter)=\"p.previous()\"\n (click)=\"p.previous()\">Previous <span class=\"govuk-visually-hidden\">set of pages</span></a>\n </li>\n\n <ng-container *ngIf=\"showPageNumbers\">\n <li class=\"hmcts-pagination__item\" [class.hmcts-pagination__item--active]=\"p.getCurrent() === page.value\"\n [class.hmcts-pagination__item--dots]=\"page.label === '...'\" *ngFor=\"let page of p.pages\">\n <a class=\"hmcts-pagination__link\" [routerLink]=\"\" (keyup.enter)=\"p.setCurrent(page.value)\"\n (click)=\"p.setCurrent(page.value)\" *ngIf=\"p.getCurrent() !== page.value\">\n <span class=\"govuk-visually-hidden\">page </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </a>\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </ng-container>\n </li>\n </ng-container>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\" [class.disabled]=\"p.isLastPage()\">\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" *ngIf=\"!p.isLastPage()\" (keyup.enter)=\"p.next()\"\n (click)=\"p.next()\">Next<span class=\"govuk-visually-hidden\"> page</span></a>\n </li>\n\n </ul>\n <p class=\"hmcts-pagination__results\" *ngIf=\"showResultCount\">Showing <b>{{(p.getCurrent() * pageSize) - pageSize + 1}}</b>\n to <b>{{ p.getCurrent() * pageSize > p.getTotalItems() ? p.getTotalItems() : p.getCurrent() *\n pageSize}}</b> of <b>{{p.getTotalItems()}}</b> results</p>\n </nav>\n\n</pagination-template>",
5790
+ template: "<pagination-template #p=\"paginationApi\" [id]=\"id\" [maxSize]=\"maxSize\" (pageChange)=\"pageChange.emit($event)\"\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\">\n\n <nav class=\"hmcts-pagination\" id=\"pagination-label\">\n <p class=\"govuk-visually-hidden\" aria-labelledby=\"pagination-label\">{{'Pagination navigation' | rpxTranslate}}</p>\n <ul class=\"hmcts-pagination__list\" *ngIf=\"!(p.pages.length <= 1)\">\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\" [class.disabled]=\"p.isFirstPage()\">\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" *ngIf=\"1 < p.getCurrent()\" (keyup.enter)=\"p.previous()\"\n (click)=\"p.previous()\">{{'Previous' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'set of pages' | rpxTranslate}}</span></a>\n </li>\n\n <ng-container *ngIf=\"showPageNumbers\">\n <li class=\"hmcts-pagination__item\" [class.hmcts-pagination__item--active]=\"p.getCurrent() === page.value\"\n [class.hmcts-pagination__item--dots]=\"page.label === '...'\" *ngFor=\"let page of p.pages\">\n <a class=\"hmcts-pagination__link\" [routerLink]=\"\" (keyup.enter)=\"p.setCurrent(page.value)\"\n (click)=\"p.setCurrent(page.value)\" *ngIf=\"p.getCurrent() !== page.value\">\n <span class=\"govuk-visually-hidden\">{{'page' | rpxTranslate}} </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </a>\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </ng-container>\n </li>\n </ng-container>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\" [class.disabled]=\"p.isLastPage()\">\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" *ngIf=\"!p.isLastPage()\" (keyup.enter)=\"p.next()\"\n (click)=\"p.next()\">{{'Next' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'page' | rpxTranslate}}</span></a>\n </li>\n\n </ul>\n <p class=\"hmcts-pagination__results\" *ngIf=\"showResultCount\">{{'Showing' | rpxTranslate}} <b>{{(p.getCurrent() * pageSize) - pageSize + 1}}</b>\n {{'to' | rpxTranslate}} <b>{{ p.getCurrent() * pageSize > p.getTotalItems() ? p.getTotalItems() : p.getCurrent() *\n pageSize}}</b> {{'of' | rpxTranslate}} <b>{{p.getTotalItems()}}</b> {{'results' | rpxTranslate}}</p>\n </nav>\n\n</pagination-template>\n",
5408
5791
  styles: [".hmcts-pagination__results{float:right}"]
5409
5792
  },] }
5410
5793
  ];
@@ -5433,7 +5816,7 @@
5433
5816
  HmctsPrimaryNavigationComponent.decorators = [
5434
5817
  { type: i0.Component, args: [{
5435
5818
  selector: 'xuilib-hmcts-primary-navigation',
5436
- template: "<nav *ngIf=\"isUserLoggedIn\" class=\"hmcts-primary-navigation\" [attr.aria-label]=\"label\">\n <div class=\"hmcts-primary-navigation__container\">\n <div class=\"govuk-header__logo\" *ngIf=\"isBrandedHeader\"></div>\n <ul class=\"hmcts-primary-navigation__list\">\n <li class=\"hmcts-primary-navigation__item\" *ngFor=\"let item of items\">\n <a class=\"hmcts-primary-navigation__link\" [attr.aria-current]=\"item.active ? true: null\" [routerLink]=\"item.href\" [innerHTML]=\"item.text\"></a>\n </li>\n </ul>\n </div>\n</nav>\n",
5819
+ template: "<nav *ngIf=\"isUserLoggedIn\" class=\"hmcts-primary-navigation\" [attr.aria-label]=\"label\">\n <div class=\"hmcts-primary-navigation__container\">\n <div class=\"govuk-header__logo\" *ngIf=\"isBrandedHeader\"></div>\n <ul class=\"hmcts-primary-navigation__list\">\n <li class=\"hmcts-primary-navigation__item\" *ngFor=\"let item of items\">\n <a class=\"hmcts-primary-navigation__link\" [attr.aria-current]=\"item.active ? true: null\" [routerLink]=\"item.href\" [innerHTML]=\"item.text | rpxTranslate\"></a>\n </li>\n </ul>\n </div>\n</nav>\n",
5437
5820
  styles: [""]
5438
5821
  },] }
5439
5822
  ];
@@ -5453,7 +5836,7 @@
5453
5836
  HmctsSubNavigationComponent.decorators = [
5454
5837
  { type: i0.Component, args: [{
5455
5838
  selector: 'xuilib-hmcts-sub-navigation',
5456
- template: "<nav class=\"hmcts-sub-navigation\" attr.aria-label=\"{{label}}\" role=\"navigation\" *ngIf=\"items\">\n <ul class=\"hmcts-sub-navigation__list\">\n <li class=\"hmcts-sub-navigation__item\" *ngFor=\"let item of items\">\n <a data-selector=\"sub-nav-link\" class=\"hmcts-sub-navigation__link\" [routerLink]=\"item.href\"\n [attr.aria-current]=\"item.active ? 'page' : null\">\n {{item.text}}\n\n <span *ngIf=\"item.roundel && item.roundel > 0 \" class=\"xui-alert-link__number\"> {{item.roundel}} </span>\n </a>\n </li>\n </ul>\n</nav>\n",
5839
+ template: "<nav class=\"hmcts-sub-navigation\" attr.aria-label=\"{{label}}\" role=\"navigation\" *ngIf=\"items\">\n <ul class=\"hmcts-sub-navigation__list\">\n <li class=\"hmcts-sub-navigation__item\" *ngFor=\"let item of items\">\n <a data-selector=\"sub-nav-link\" class=\"hmcts-sub-navigation__link\" [routerLink]=\"item.href\"\n [attr.aria-current]=\"item.active ? 'page' : null\">\n {{item.text | rpxTranslate}}\n <span *ngIf=\"item.roundel && item.roundel > 0 \" class=\"xui-alert-link__number\"> {{item.roundel}} </span>\n </a>\n </li>\n </ul>\n</nav>\n",
5457
5840
  styles: [".xui-alert-link__number{font-family:nta,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:14px;font-size:.875rem;line-height:1.78571;border-radius:50%;background-color:#1d70b8;color:#fff;font-weight:700;width:25px;height:25px;margin-left:5px;text-align:center;display:inline-block;text-decoration:none}"]
5458
5841
  },] }
5459
5842
  ];
@@ -5541,7 +5924,9 @@
5541
5924
  FindServiceComponent,
5542
5925
  SearchServiceComponent,
5543
5926
  SearchVenueComponent,
5544
- PaginationComponent
5927
+ PaginationComponent,
5928
+ WriteAddressFieldComponent,
5929
+ WriteAddressInputsComponent
5545
5930
  ];
5546
5931
  var GOV_UI_COMPONENTS = [
5547
5932
  HmctsIdentityBarComponent,
@@ -5587,7 +5972,8 @@
5587
5972
  autocomplete.MatAutocompleteModule,
5588
5973
  tabs.MatTabsModule,
5589
5974
  input.MatInputModule,
5590
- ngxPagination.NgxPaginationModule
5975
+ ngxPagination.NgxPaginationModule,
5976
+ rpxXuiTranslation.RpxTranslationModule.forChild()
5591
5977
  ],
5592
5978
  providers: [
5593
5979
  { provide: windowToken, useFactory: ɵ0 }
@@ -5677,6 +6063,9 @@
5677
6063
  */
5678
6064
 
5679
6065
  exports.AccessibilityComponent = AccessibilityComponent;
6066
+ exports.AddressModel = AddressModel;
6067
+ exports.AddressOption = AddressOption;
6068
+ exports.AddressService = AddressService;
5680
6069
  exports.AnonymousFeatureUser = AnonymousFeatureUser;
5681
6070
  exports.COMMON_COMPONENTS = COMMON_COMPONENTS;
5682
6071
  exports.CapitalizePipe = CapitalizePipe;
@@ -5760,6 +6149,8 @@
5760
6149
  exports.UserDetailsComponent = UserDetailsComponent;
5761
6150
  exports.UserListComponent = UserListComponent;
5762
6151
  exports.UserSelectComponent = UserSelectComponent;
6152
+ exports.WriteAddressFieldComponent = WriteAddressFieldComponent;
6153
+ exports.WriteAddressInputsComponent = WriteAddressInputsComponent;
5763
6154
  exports.checkboxesBeCheckedValidator = checkboxesBeCheckedValidator;
5764
6155
  exports.dateValidator = dateValidator;
5765
6156
  exports.radioGroupValidator = radioGroupValidator;
@@ -5789,30 +6180,33 @@
5789
6180
  exports["ɵbs"] = SearchServiceComponent;
5790
6181
  exports["ɵbt"] = SearchVenueComponent;
5791
6182
  exports["ɵbu"] = PaginationComponent;
5792
- exports["ɵbv"] = HmctsIdentityBarComponent;
5793
- exports["ɵbw"] = HmctsPaginationComponent;
5794
- exports["ɵbx"] = HmctsSubNavigationComponent;
5795
- exports["ɵby"] = HmctsPrimaryNavigationComponent;
5796
- exports["ɵbz"] = HmctsErrorSummaryComponent;
6183
+ exports["ɵbv"] = WriteAddressFieldComponent;
6184
+ exports["ɵbw"] = AddressService;
6185
+ exports["ɵbx"] = WriteAddressInputsComponent;
6186
+ exports["ɵby"] = HmctsIdentityBarComponent;
6187
+ exports["ɵbz"] = HmctsPaginationComponent;
5797
6188
  exports["ɵc"] = TcDisplayHtmlComponent;
5798
- exports["ɵca"] = HmctsMainWrapperComponent;
5799
- exports["ɵcb"] = HmctsBannerComponent;
5800
- exports["ɵcc"] = GovukTableComponent;
5801
- exports["ɵcd"] = GovUkInputComponent;
5802
- exports["ɵce"] = GovUkCheckboxComponent;
5803
- exports["ɵcf"] = GovUkFormGroupWrapperComponent;
5804
- exports["ɵcg"] = GovUkLabelComponent;
5805
- exports["ɵch"] = GovUkErrorMessageComponent;
5806
- exports["ɵci"] = GovUkFieldsetComponent;
5807
- exports["ɵcj"] = GovUkDateComponent;
5808
- exports["ɵck"] = GovUkCheckboxesComponent;
5809
- exports["ɵcl"] = GovUkRadioComponent;
5810
- exports["ɵcm"] = GovUkRadiosComponent;
5811
- exports["ɵcn"] = GovUkSelectComponent;
5812
- exports["ɵco"] = GovUkTextareaComponent;
5813
- exports["ɵcp"] = GovUkFileUploadComponent;
5814
- exports["ɵcq"] = RemoveHostDirective;
5815
- exports["ɵcr"] = CapitalizePipe;
6189
+ exports["ɵca"] = HmctsSubNavigationComponent;
6190
+ exports["ɵcb"] = HmctsPrimaryNavigationComponent;
6191
+ exports["ɵcc"] = HmctsErrorSummaryComponent;
6192
+ exports["ɵcd"] = HmctsMainWrapperComponent;
6193
+ exports["ɵce"] = HmctsBannerComponent;
6194
+ exports["ɵcf"] = GovukTableComponent;
6195
+ exports["ɵcg"] = GovUkInputComponent;
6196
+ exports["ɵch"] = GovUkCheckboxComponent;
6197
+ exports["ɵci"] = GovUkFormGroupWrapperComponent;
6198
+ exports["ɵcj"] = GovUkLabelComponent;
6199
+ exports["ɵck"] = GovUkErrorMessageComponent;
6200
+ exports["ɵcl"] = GovUkFieldsetComponent;
6201
+ exports["ɵcm"] = GovUkDateComponent;
6202
+ exports["ɵcn"] = GovUkCheckboxesComponent;
6203
+ exports["ɵco"] = GovUkRadioComponent;
6204
+ exports["ɵcp"] = GovUkRadiosComponent;
6205
+ exports["ɵcq"] = GovUkSelectComponent;
6206
+ exports["ɵcr"] = GovUkTextareaComponent;
6207
+ exports["ɵcs"] = GovUkFileUploadComponent;
6208
+ exports["ɵct"] = RemoveHostDirective;
6209
+ exports["ɵcu"] = CapitalizePipe;
5816
6210
  exports["ɵd"] = TcDisplayPlainComponent;
5817
6211
  exports["ɵe"] = TcConfirmComponent;
5818
6212
  exports["ɵf"] = ContactDetailsComponent;