@hmcts/rpx-xui-common-lib 1.9.0-consume-jrd-e-links-api-new-version-v2 → 1.9.0-postcode-validation
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/hmcts-rpx-xui-common-lib.umd.js +546 -188
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
- package/esm2015/hmcts-rpx-xui-common-lib.js +27 -24
- package/esm2015/lib/components/accessibility/accessibility.component.js +2 -2
- package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +12 -4
- package/esm2015/lib/components/contact-details/contact-details.component.js +2 -2
- package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +2 -2
- package/esm2015/lib/components/due-date/due-date.component.js +12 -4
- package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +2 -2
- package/esm2015/lib/components/find-person/find-person.component.js +2 -2
- package/esm2015/lib/components/find-service/find-service.component.js +2 -2
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +2 -2
- package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +2 -2
- package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +12 -4
- package/esm2015/lib/components/pagination/pagination.component.js +2 -2
- package/esm2015/lib/components/public_api.js +3 -1
- package/esm2015/lib/components/search-location/search-location.component.js +5 -32
- package/esm2015/lib/components/selected-case/selected-case.component.js +2 -2
- package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +2 -2
- package/esm2015/lib/components/service-message/service-message.component.js +2 -2
- package/esm2015/lib/components/service-messages/service-messages.component.js +2 -2
- package/esm2015/lib/components/share-case/share-case.component.js +2 -2
- package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +2 -2
- package/esm2015/lib/components/tab/tab.component.js +2 -2
- package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +2 -2
- package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +2 -2
- package/esm2015/lib/components/user-details/user-details.component.js +2 -2
- package/esm2015/lib/components/user-list/user-list.component.js +2 -2
- package/esm2015/lib/components/user-select/user-select.component.js +2 -2
- package/esm2015/lib/components/write-address/write-address.component.js +147 -0
- package/esm2015/lib/components/write-address-inputs/write-address-inputs.component.js +30 -0
- package/esm2015/lib/exui-common-lib.module.js +9 -3
- package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +2 -2
- package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +2 -2
- package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +2 -2
- package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +2 -2
- package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +2 -2
- package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +2 -2
- package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +2 -2
- package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
- package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +2 -2
- package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +2 -2
- package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +2 -2
- package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +2 -2
- package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +2 -2
- package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -2
- package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +2 -2
- package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +2 -2
- package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +2 -2
- package/esm2015/lib/models/address-message.enum.js +10 -0
- package/esm2015/lib/models/address-option.model.js +21 -0
- package/esm2015/lib/models/address.model.js +4 -0
- package/esm2015/lib/models/index.js +4 -1
- package/esm2015/lib/models/location.model.js +1 -1
- package/esm2015/lib/models/person.model.js +1 -1
- package/esm2015/lib/services/address/address-parser.js +76 -0
- package/esm2015/lib/services/address/address-type.enum.js +7 -0
- package/esm2015/lib/services/address/address.service.js +50 -0
- package/esm2015/lib/services/find-person/find-person.service.js +3 -2
- package/esm2015/lib/services/locations/location.service.js +3 -6
- package/esm2015/lib/services/public-api.js +2 -1
- package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +19 -10
- package/fesm2015/hmcts-rpx-xui-common-lib.js +482 -144
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/hmcts-rpx-xui-common-lib.d.ts +26 -23
- package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
- package/lib/components/checkbox-list/checkbox-list.component.d.ts +5 -2
- package/lib/components/due-date/due-date.component.d.ts +5 -2
- package/lib/components/loading-spinner/loading-spinner.component.d.ts +5 -1
- package/lib/components/public_api.d.ts +2 -0
- package/lib/components/search-location/search-location.component.d.ts +1 -0
- package/lib/components/write-address/write-address.component.d.ts +34 -0
- package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +13 -0
- package/lib/exui-common-lib.module.d.ts +5 -1
- package/lib/models/address-message.enum.d.ts +8 -0
- package/lib/models/address-option.model.d.ts +9 -0
- package/lib/models/address.model.d.ts +9 -0
- package/lib/models/index.d.ts +3 -0
- package/lib/models/location.model.d.ts +5 -5
- package/lib/models/person.model.d.ts +8 -7
- package/lib/services/address/address-parser.d.ts +17 -0
- package/lib/services/address/address-type.enum.d.ts +5 -0
- package/lib/services/address/address.service.d.ts +12 -0
- package/lib/services/locations/location.service.d.ts +1 -1
- package/lib/services/public-api.d.ts +1 -0
- package/lib/services/timeout-notifications/timeout-notifications.service.d.ts +5 -2
- package/package.json +3 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, EventEmitter, ViewEncapsulation, Input, Output, Injectable, InjectionToken, Inject, ChangeDetectionStrategy, ViewChild, ElementRef,
|
|
2
|
+
import { Component, EventEmitter, ViewEncapsulation, ChangeDetectorRef, Input, Output, Injectable, InjectionToken, Inject, ChangeDetectionStrategy, ViewChild, ElementRef, Directive, ViewContainerRef, TemplateRef, Pipe, NgModule } from '@angular/core';
|
|
3
3
|
import * as i4 from '@angular/common';
|
|
4
4
|
import { formatDate, DOCUMENT, CommonModule } from '@angular/common';
|
|
5
5
|
import { Validators, FormArray, FormGroup, FormControl, FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -8,19 +8,20 @@ import * as i1 from '@angular/router';
|
|
|
8
8
|
import { Router, NavigationEnd, RouterModule } from '@angular/router';
|
|
9
9
|
import { map, filter, distinctUntilChanged, delay, skipWhile, shareReplay, catchError, take, tap, switchMap, debounceTime, mergeMap } from 'rxjs/operators';
|
|
10
10
|
import * as LDClient from 'launchdarkly-js-client-sdk';
|
|
11
|
+
import * as i1$2 from '@angular/common/http';
|
|
12
|
+
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
11
13
|
import * as i2 from '@angular/platform-browser';
|
|
12
14
|
import { Title } from '@angular/platform-browser';
|
|
13
15
|
import * as i1$1 from '@ng-idle/core';
|
|
14
16
|
import { DocumentInterruptSource, Idle, WindowInterruptSource } from '@ng-idle/core';
|
|
15
17
|
import * as i2$1 from '@ng-idle/keepalive';
|
|
16
18
|
import { Keepalive } from '@ng-idle/keepalive';
|
|
17
|
-
import * as i1$2 from '@angular/common/http';
|
|
18
|
-
import { HttpParams, HttpClient } from '@angular/common/http';
|
|
19
19
|
import { of as of$1 } from 'rxjs/internal/observable/of';
|
|
20
20
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
21
21
|
import { MatInputModule } from '@angular/material/input';
|
|
22
22
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
23
23
|
import { NgxPaginationModule, PaginatePipe } from 'ngx-pagination';
|
|
24
|
+
import { RpxTranslationModule } from 'rpx-xui-translation';
|
|
24
25
|
|
|
25
26
|
class AccessibilityComponent {
|
|
26
27
|
constructor() {
|
|
@@ -29,14 +30,15 @@ class AccessibilityComponent {
|
|
|
29
30
|
AccessibilityComponent.decorators = [
|
|
30
31
|
{ type: Component, args: [{
|
|
31
32
|
selector: 'xuilib-accessibility',
|
|
32
|
-
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>",
|
|
33
|
+
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>",
|
|
33
34
|
styles: [".govuk-list--alpha{padding-left:20px;list-style-type:lower-alpha}"]
|
|
34
35
|
},] }
|
|
35
36
|
];
|
|
36
37
|
AccessibilityComponent.ctorParameters = () => [];
|
|
37
38
|
|
|
38
39
|
class CheckboxListComponent {
|
|
39
|
-
constructor() {
|
|
40
|
+
constructor(ref) {
|
|
41
|
+
this.ref = ref;
|
|
40
42
|
/**
|
|
41
43
|
* The options to show checkboxes for. Note that the type
|
|
42
44
|
* within the array corresponds to the one for the component.
|
|
@@ -72,6 +74,10 @@ class CheckboxListComponent {
|
|
|
72
74
|
// Now check the current selection to make sure it's valid.
|
|
73
75
|
this.checkSelection();
|
|
74
76
|
}
|
|
77
|
+
// checks the data projected into the component
|
|
78
|
+
ngAfterContentChecked() {
|
|
79
|
+
this.ref.detectChanges();
|
|
80
|
+
}
|
|
75
81
|
/**
|
|
76
82
|
* Indicates whether or not there are any options to render.
|
|
77
83
|
*/
|
|
@@ -198,11 +204,14 @@ class CheckboxListComponent {
|
|
|
198
204
|
CheckboxListComponent.decorators = [
|
|
199
205
|
{ type: Component, args: [{
|
|
200
206
|
selector: 'xuilib-checkbox-list',
|
|
201
|
-
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",
|
|
207
|
+
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",
|
|
202
208
|
encapsulation: ViewEncapsulation.None,
|
|
203
209
|
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}"]
|
|
204
210
|
},] }
|
|
205
211
|
];
|
|
212
|
+
CheckboxListComponent.ctorParameters = () => [
|
|
213
|
+
{ type: ChangeDetectorRef }
|
|
214
|
+
];
|
|
206
215
|
CheckboxListComponent.propDecorators = {
|
|
207
216
|
options: [{ type: Input }],
|
|
208
217
|
preselection: [{ type: Input }],
|
|
@@ -218,7 +227,7 @@ class ContactDetailsComponent {
|
|
|
218
227
|
ContactDetailsComponent.decorators = [
|
|
219
228
|
{ type: Component, args: [{
|
|
220
229
|
selector: 'xuilib-contact-details',
|
|
221
|
-
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",
|
|
230
|
+
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",
|
|
222
231
|
styles: [".contact-details{margin-top:30px}.contact-details h3,.contact-details p{margin-bottom:10px}"]
|
|
223
232
|
},] }
|
|
224
233
|
];
|
|
@@ -236,7 +245,8 @@ var DateBadgeColour;
|
|
|
236
245
|
const SECONDS_IN_A_DAY = 60 * 60 * 24;
|
|
237
246
|
|
|
238
247
|
class DueDateComponent {
|
|
239
|
-
constructor() {
|
|
248
|
+
constructor(ref) {
|
|
249
|
+
this.ref = ref;
|
|
240
250
|
/**
|
|
241
251
|
* This should be considered HIGH urgency if there are fewer than this
|
|
242
252
|
* many days until the due date.
|
|
@@ -284,6 +294,10 @@ class DueDateComponent {
|
|
|
284
294
|
ngOnChanges() {
|
|
285
295
|
this.handleInputChanges();
|
|
286
296
|
}
|
|
297
|
+
// checks the data projected into the component
|
|
298
|
+
ngAfterContentChecked() {
|
|
299
|
+
this.ref.detectChanges();
|
|
300
|
+
}
|
|
287
301
|
// Set up the label, urgency class, and accessibility fields.
|
|
288
302
|
handleInputChanges() {
|
|
289
303
|
// If we don't have a dueDate, skip out of here.
|
|
@@ -336,11 +350,14 @@ class DueDateComponent {
|
|
|
336
350
|
DueDateComponent.decorators = [
|
|
337
351
|
{ type: Component, args: [{
|
|
338
352
|
selector: 'xuilib-due-date',
|
|
339
|
-
template: "<span *ngIf=\"dueDate\" class=\"due-date hmcts-badge\" [ngClass]=\"badge\"\n [title]=\"accessibleLabel\" [attr.aria-label]=\"accessibleLabel\">\n {{label}}\n</span>",
|
|
353
|
+
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>",
|
|
340
354
|
encapsulation: ViewEncapsulation.None,
|
|
341
355
|
styles: [".due-date{white-space:nowrap}.due-date.hmcts-badge--orange{color:#f47738;border-color:#f47738}"]
|
|
342
356
|
},] }
|
|
343
357
|
];
|
|
358
|
+
DueDateComponent.ctorParameters = () => [
|
|
359
|
+
{ type: ChangeDetectorRef }
|
|
360
|
+
];
|
|
344
361
|
DueDateComponent.propDecorators = {
|
|
345
362
|
dueDate: [{ type: Input }],
|
|
346
363
|
highUrgencyCutoff: [{ type: Input }],
|
|
@@ -453,6 +470,215 @@ LaunchDarklyService.decorators = [
|
|
|
453
470
|
},] }
|
|
454
471
|
];
|
|
455
472
|
|
|
473
|
+
var AddressMessageEnum;
|
|
474
|
+
(function (AddressMessageEnum) {
|
|
475
|
+
AddressMessageEnum["NO_OPTION_SELECTED"] = "Please select an answer";
|
|
476
|
+
AddressMessageEnum["NO_STREET_SELECTED"] = "Enter building and street";
|
|
477
|
+
AddressMessageEnum["NO_CITY_SELECTED"] = "Enter town or city";
|
|
478
|
+
AddressMessageEnum["NO_COUNTRY_SELECTED"] = "Enter country";
|
|
479
|
+
AddressMessageEnum["NO_POSTCODE_SELECTED"] = "Enter postcode";
|
|
480
|
+
AddressMessageEnum["INVALID_POSTCODE"] = "Enter valid postcode";
|
|
481
|
+
})(AddressMessageEnum || (AddressMessageEnum = {}));
|
|
482
|
+
|
|
483
|
+
class AddressOption {
|
|
484
|
+
constructor(addressModel, description) {
|
|
485
|
+
if (description === null) {
|
|
486
|
+
this.value = addressModel;
|
|
487
|
+
this.description = this.getDescription();
|
|
488
|
+
}
|
|
489
|
+
else {
|
|
490
|
+
this.description = description;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
getDescription() {
|
|
494
|
+
return this.removeInitialCommaIfPresent(`${this.value.addressLine1 === undefined ? '' : this.value.addressLine1}${this.prefixWithCommaIfPresent(this.value.addressLine2)}${this.prefixWithCommaIfPresent(this.value.addressLine3)}, ${this.value.postTown}`);
|
|
495
|
+
}
|
|
496
|
+
prefixWithCommaIfPresent(value) {
|
|
497
|
+
return value ? `, ${value}` : value;
|
|
498
|
+
}
|
|
499
|
+
removeInitialCommaIfPresent(value) {
|
|
500
|
+
return value.replace(new RegExp('^,', 'gi'), '');
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
// tslint:disable:variable-name
|
|
505
|
+
class AddressModel {
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
var SharedCaseErrorMessages;
|
|
509
|
+
(function (SharedCaseErrorMessages) {
|
|
510
|
+
SharedCaseErrorMessages["OneCaseMustBeSelected"] = "At least one case must be selected";
|
|
511
|
+
SharedCaseErrorMessages["NoChangesRequested"] = "You have not requested any changes to case sharing";
|
|
512
|
+
SharedCaseErrorMessages["OnePersonMustBeAssigned"] = "At least one person must be assigned to each case";
|
|
513
|
+
})(SharedCaseErrorMessages || (SharedCaseErrorMessages = {}));
|
|
514
|
+
|
|
515
|
+
var BadgeColour;
|
|
516
|
+
(function (BadgeColour) {
|
|
517
|
+
BadgeColour["BADGE_RED"] = "hmcts-badge--red";
|
|
518
|
+
BadgeColour["BADGE_BLUE"] = "hmcts-badge--blue";
|
|
519
|
+
BadgeColour["BADGE_GREEN"] = "hmcts-badge--green";
|
|
520
|
+
})(BadgeColour || (BadgeColour = {}));
|
|
521
|
+
|
|
522
|
+
class AnonymousFeatureUser {
|
|
523
|
+
}
|
|
524
|
+
class LoggedInFeatureUser {
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
class RadioFilterFieldConfig {
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
var BookingCheckType;
|
|
531
|
+
(function (BookingCheckType) {
|
|
532
|
+
BookingCheckType["NO_CHECK"] = "NO_CHECK";
|
|
533
|
+
BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
|
|
534
|
+
BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
|
|
535
|
+
})(BookingCheckType || (BookingCheckType = {}));
|
|
536
|
+
|
|
537
|
+
var PersonRole;
|
|
538
|
+
(function (PersonRole) {
|
|
539
|
+
PersonRole["JUDICIAL"] = "Judicial";
|
|
540
|
+
PersonRole["CASEWORKER"] = "Legal Ops";
|
|
541
|
+
PersonRole["ADMIN"] = "Admin";
|
|
542
|
+
PersonRole["CTSC"] = "CTSC";
|
|
543
|
+
PersonRole["ALL"] = "All";
|
|
544
|
+
})(PersonRole || (PersonRole = {}));
|
|
545
|
+
// Note: RoleCategory could replace PersonRole possibly
|
|
546
|
+
// However a lot of webapp logic is based on current PersonRole understanding
|
|
547
|
+
var RoleCategory;
|
|
548
|
+
(function (RoleCategory) {
|
|
549
|
+
RoleCategory["JUDICIAL"] = "JUDICIAL";
|
|
550
|
+
RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
|
|
551
|
+
RoleCategory["ADMIN"] = "ADMIN";
|
|
552
|
+
RoleCategory["CTSC"] = "CTSC";
|
|
553
|
+
RoleCategory["ALL"] = "ALL";
|
|
554
|
+
})(RoleCategory || (RoleCategory = {}));
|
|
555
|
+
|
|
556
|
+
var AddressType;
|
|
557
|
+
(function (AddressType) {
|
|
558
|
+
AddressType["DPA"] = "DPA";
|
|
559
|
+
AddressType["UK"] = "United Kingdom";
|
|
560
|
+
AddressType["RD06"] = "RD06";
|
|
561
|
+
})(AddressType || (AddressType = {}));
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Moving all this logic here into Address Parser class, so that it
|
|
565
|
+
* will be easier for us when we move this parsing logic to into
|
|
566
|
+
* `Shim` java service.
|
|
567
|
+
*/
|
|
568
|
+
class AddressParser {
|
|
569
|
+
parse(address) {
|
|
570
|
+
const classification = `${address.CLASSIFICATION_CODE}`;
|
|
571
|
+
const addressModel = new AddressModel();
|
|
572
|
+
addressModel.addressLine1 = this.parseAddressLine1(classification, address);
|
|
573
|
+
addressModel.addressLine2 = this.parseAddressLine2(classification, address);
|
|
574
|
+
addressModel.addressLine3 = this.parseAddressLine3(classification, address);
|
|
575
|
+
addressModel.postCode = address.POSTCODE;
|
|
576
|
+
addressModel.postTown = address.POST_TOWN;
|
|
577
|
+
addressModel.country = AddressType.UK;
|
|
578
|
+
return addressModel;
|
|
579
|
+
}
|
|
580
|
+
parseAddressLine1(classification, address) {
|
|
581
|
+
let addressLine;
|
|
582
|
+
if (classification === AddressType.RD06) {
|
|
583
|
+
addressLine =
|
|
584
|
+
`${address.SUB_BUILDING_NAME} ${address.ORGANISATION_NAME} ${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
|
|
585
|
+
}
|
|
586
|
+
else {
|
|
587
|
+
addressLine =
|
|
588
|
+
`${address.ORGANISATION_NAME}${this.prefixWithCommaIfPresent(address.BUILDING_NAME)}` +
|
|
589
|
+
`${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
|
|
590
|
+
}
|
|
591
|
+
return this.removeNonAddressValues(addressLine);
|
|
592
|
+
}
|
|
593
|
+
parseAddressLine2(classification, address) {
|
|
594
|
+
let addressLine;
|
|
595
|
+
if (classification === AddressType.RD06) {
|
|
596
|
+
addressLine = `${address.BUILDING_NAME} `;
|
|
597
|
+
}
|
|
598
|
+
else {
|
|
599
|
+
addressLine =
|
|
600
|
+
`${address.SUB_BUILDING_NAME} ${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
|
|
601
|
+
}
|
|
602
|
+
return this.removeNonAddressValues(addressLine);
|
|
603
|
+
}
|
|
604
|
+
parseAddressLine3(classification, address) {
|
|
605
|
+
let addressLine;
|
|
606
|
+
if (classification === AddressType.RD06) {
|
|
607
|
+
addressLine =
|
|
608
|
+
`${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
|
|
609
|
+
}
|
|
610
|
+
else {
|
|
611
|
+
addressLine =
|
|
612
|
+
`${address.DEPENDENT_LOCALITY} ${address.DOUBLE_DEPENDENT_LOCALITY} ${address.DEPENDENT_THOROUGHFARE_NAME}`;
|
|
613
|
+
}
|
|
614
|
+
return this.removeNonAddressValues(addressLine);
|
|
615
|
+
}
|
|
616
|
+
removeNonAddressValues(line) {
|
|
617
|
+
line = line.replace(' null', ' ').replace('null ', ' ');
|
|
618
|
+
line = this.removeUndefinedString(line);
|
|
619
|
+
line = this.removeInitialComma(line);
|
|
620
|
+
line = this.removeEmptySpaces(line);
|
|
621
|
+
return line;
|
|
622
|
+
}
|
|
623
|
+
removeUndefinedString(value) {
|
|
624
|
+
return value.replace(new RegExp('undefined', 'gi'), '');
|
|
625
|
+
}
|
|
626
|
+
removeEmptySpaces(value) {
|
|
627
|
+
return value.replace(new RegExp(' +', 'gi'), ' ').trim();
|
|
628
|
+
}
|
|
629
|
+
removeInitialComma(value) {
|
|
630
|
+
return value.replace(new RegExp('^,', 'gi'), '');
|
|
631
|
+
}
|
|
632
|
+
prefixWithCommaIfPresent(value) {
|
|
633
|
+
return value ? `, ${value}` : value;
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
class AddressService {
|
|
638
|
+
constructor(http) {
|
|
639
|
+
this.http = http;
|
|
640
|
+
}
|
|
641
|
+
getAddressesForPostcode(postcode) {
|
|
642
|
+
return this.http
|
|
643
|
+
.get('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined)
|
|
644
|
+
.pipe(map((res) => res.results))
|
|
645
|
+
.pipe(map(output => output.map((addresses) => this.format(new AddressParser().parse(addresses[AddressType.DPA])))));
|
|
646
|
+
}
|
|
647
|
+
format(addressModel) {
|
|
648
|
+
return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));
|
|
649
|
+
}
|
|
650
|
+
formatAddressLines(addressModel) {
|
|
651
|
+
['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach((value) => {
|
|
652
|
+
addressModel[value] = this.toCapitalCase(addressModel[value]);
|
|
653
|
+
});
|
|
654
|
+
return addressModel;
|
|
655
|
+
}
|
|
656
|
+
shiftAddressLinesUp(addressModel) {
|
|
657
|
+
if (addressModel.addressLine2 === '') {
|
|
658
|
+
addressModel.addressLine2 = addressModel.addressLine3;
|
|
659
|
+
addressModel.addressLine3 = '';
|
|
660
|
+
}
|
|
661
|
+
if (addressModel.addressLine1 === '') {
|
|
662
|
+
addressModel.addressLine1 = addressModel.addressLine2;
|
|
663
|
+
addressModel.addressLine2 = '';
|
|
664
|
+
}
|
|
665
|
+
return addressModel;
|
|
666
|
+
}
|
|
667
|
+
toCapitalCase(sentence) {
|
|
668
|
+
sentence = sentence.toLowerCase();
|
|
669
|
+
sentence.split(' ').forEach((value) => {
|
|
670
|
+
sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));
|
|
671
|
+
});
|
|
672
|
+
return sentence;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
AddressService.decorators = [
|
|
676
|
+
{ type: Injectable }
|
|
677
|
+
];
|
|
678
|
+
AddressService.ctorParameters = () => [
|
|
679
|
+
{ type: HttpClient }
|
|
680
|
+
];
|
|
681
|
+
|
|
456
682
|
const windowToken = new InjectionToken('Window');
|
|
457
683
|
function windowProvider() { return window; }
|
|
458
684
|
|
|
@@ -623,7 +849,7 @@ ManageSessionServices.ctorParameters = () => [
|
|
|
623
849
|
* TimeoutNotificationsService
|
|
624
850
|
*
|
|
625
851
|
* The Timeout Notification Service allows your application to receive notifications
|
|
626
|
-
* when a User is approaching the
|
|
852
|
+
* when a User is approaching the total time that a User has been idle for.
|
|
627
853
|
*
|
|
628
854
|
* This can be set by your application using the Timeout Notification Config object.
|
|
629
855
|
*
|
|
@@ -637,6 +863,7 @@ class TimeoutNotificationsService {
|
|
|
637
863
|
constructor(idle, keepalive) {
|
|
638
864
|
this.idle = idle;
|
|
639
865
|
this.keepalive = keepalive;
|
|
866
|
+
this.subs = [];
|
|
640
867
|
/**
|
|
641
868
|
* Convert milliseconds to seconds.
|
|
642
869
|
*
|
|
@@ -673,22 +900,30 @@ class TimeoutNotificationsService {
|
|
|
673
900
|
const docInterrupts = new DocumentInterruptSource(DOCUMENT_INTERRUPTS);
|
|
674
901
|
const windowInterrupts = new WindowInterruptSource(DOCUMENT_INTERRUPTS);
|
|
675
902
|
this.idle.setInterrupts([docInterrupts, windowInterrupts]);
|
|
676
|
-
this.idle.onTimeout.subscribe(() => {
|
|
903
|
+
this.subs.push(this.idle.onTimeout.subscribe(() => {
|
|
677
904
|
this.eventEmitter.next({ eventType: SIGNOUT_EVENT });
|
|
678
|
-
});
|
|
679
|
-
this.idle.onTimeoutWarning.pipe(map(sec => (sec > 60) ? Math.ceil(sec / 60) + MINUTES : sec + SECONDS), distinctUntilChanged()).subscribe((countdown) => {
|
|
905
|
+
}));
|
|
906
|
+
this.subs.push(this.idle.onTimeoutWarning.pipe(map(sec => (sec > 60) ? Math.ceil(sec / 60) + MINUTES : sec + SECONDS), distinctUntilChanged()).subscribe((countdown) => {
|
|
680
907
|
this.eventEmitter.next({ eventType: COUNTDOWN_EVENT, readableCountdown: countdown });
|
|
681
|
-
});
|
|
682
|
-
this.idle.onIdleStart.subscribe(() => console.log('You\'ve gone idle!'));
|
|
683
|
-
this.idle.onIdleEnd.subscribe(() => console.log('You\'re no longer idle!'));
|
|
908
|
+
}));
|
|
909
|
+
this.subs.push(this.idle.onIdleStart.subscribe(() => console.log('You\'ve gone idle!')));
|
|
910
|
+
this.subs.push(this.idle.onIdleEnd.subscribe(() => console.log('You\'re no longer idle!')));
|
|
684
911
|
this.keepalive.interval(15);
|
|
685
|
-
this.keepalive.onPing.subscribe(() => {
|
|
912
|
+
this.subs.push(this.keepalive.onPing.subscribe(() => {
|
|
686
913
|
this.eventEmitter.next({ eventType: KEEP_ALIVE_EVENT });
|
|
687
|
-
});
|
|
914
|
+
}));
|
|
688
915
|
const idleInSeconds = Math.floor(totalIdleTimeInSeconds) - idleModalDisplayTimeInSeconds;
|
|
689
916
|
this.idle.setIdle(idleInSeconds);
|
|
690
917
|
this.idle.watch();
|
|
691
918
|
}
|
|
919
|
+
reset() {
|
|
920
|
+
this.idle.watch();
|
|
921
|
+
}
|
|
922
|
+
close() {
|
|
923
|
+
this.subs.forEach(s => s.unsubscribe());
|
|
924
|
+
this.idle.stop();
|
|
925
|
+
this.idle.clearInterrupts();
|
|
926
|
+
}
|
|
692
927
|
/**
|
|
693
928
|
* Expose the notification events, so that a 3rd party service can listen to the notifications.
|
|
694
929
|
*/
|
|
@@ -1617,7 +1852,7 @@ class GenericFilterComponent {
|
|
|
1617
1852
|
GenericFilterComponent.decorators = [
|
|
1618
1853
|
{ type: Component, args: [{
|
|
1619
1854
|
selector: 'xuilib-generic-filter',
|
|
1620
|
-
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",
|
|
1855
|
+
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",
|
|
1621
1856
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1622
1857
|
encapsulation: ViewEncapsulation.None,
|
|
1623
1858
|
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%}"]
|
|
@@ -1648,7 +1883,7 @@ class HmctsSessionDialogComponent {
|
|
|
1648
1883
|
HmctsSessionDialogComponent.decorators = [
|
|
1649
1884
|
{ type: Component, args: [{
|
|
1650
1885
|
selector: 'xuilib-session-dialog',
|
|
1651
|
-
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",
|
|
1886
|
+
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",
|
|
1652
1887
|
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}"]
|
|
1653
1888
|
},] }
|
|
1654
1889
|
];
|
|
@@ -1705,18 +1940,26 @@ InviteUserPermissionComponent.propDecorators = {
|
|
|
1705
1940
|
};
|
|
1706
1941
|
|
|
1707
1942
|
class LoadingSpinnerComponent {
|
|
1708
|
-
constructor() {
|
|
1943
|
+
constructor(ref) {
|
|
1944
|
+
this.ref = ref;
|
|
1709
1945
|
this.loadingText = 'Loading';
|
|
1710
1946
|
}
|
|
1947
|
+
// checks the data projected into the component
|
|
1948
|
+
ngAfterContentChecked() {
|
|
1949
|
+
this.ref.detectChanges();
|
|
1950
|
+
}
|
|
1711
1951
|
}
|
|
1712
1952
|
LoadingSpinnerComponent.decorators = [
|
|
1713
1953
|
{ type: Component, args: [{
|
|
1714
1954
|
selector: 'xuilib-loading-spinner',
|
|
1715
|
-
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",
|
|
1955
|
+
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",
|
|
1716
1956
|
encapsulation: ViewEncapsulation.None,
|
|
1717
1957
|
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)}}"]
|
|
1718
1958
|
},] }
|
|
1719
1959
|
];
|
|
1960
|
+
LoadingSpinnerComponent.ctorParameters = () => [
|
|
1961
|
+
{ type: ChangeDetectorRef }
|
|
1962
|
+
];
|
|
1720
1963
|
LoadingSpinnerComponent.propDecorators = {
|
|
1721
1964
|
loadingText: [{ type: Input }]
|
|
1722
1965
|
};
|
|
@@ -1896,7 +2139,7 @@ class SelectedCaseConfirmComponent {
|
|
|
1896
2139
|
SelectedCaseConfirmComponent.decorators = [
|
|
1897
2140
|
{ type: Component, args: [{
|
|
1898
2141
|
selector: 'xuilib-selected-case-confirm',
|
|
1899
|
-
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\"
|
|
2142
|
+
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",
|
|
1900
2143
|
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%}"]
|
|
1901
2144
|
},] }
|
|
1902
2145
|
];
|
|
@@ -2092,7 +2335,7 @@ class SelectedCaseComponent {
|
|
|
2092
2335
|
SelectedCaseComponent.decorators = [
|
|
2093
2336
|
{ type: Component, args: [{
|
|
2094
2337
|
selector: 'xuilib-selected-case',
|
|
2095
|
-
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')}}\"
|
|
2338
|
+
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",
|
|
2096
2339
|
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}"]
|
|
2097
2340
|
},] }
|
|
2098
2341
|
];
|
|
@@ -2120,7 +2363,7 @@ class ServiceMessageComponent {
|
|
|
2120
2363
|
ServiceMessageComponent.decorators = [
|
|
2121
2364
|
{ type: Component, args: [{
|
|
2122
2365
|
selector: 'xuilib-service-message',
|
|
2123
|
-
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>"
|
|
2366
|
+
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>"
|
|
2124
2367
|
},] }
|
|
2125
2368
|
];
|
|
2126
2369
|
ServiceMessageComponent.ctorParameters = () => [];
|
|
@@ -2164,7 +2407,7 @@ class ServiceMessagesComponent {
|
|
|
2164
2407
|
ServiceMessagesComponent.decorators = [
|
|
2165
2408
|
{ type: Component, args: [{
|
|
2166
2409
|
selector: 'xuilib-service-messages',
|
|
2167
|
-
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>"
|
|
2410
|
+
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>"
|
|
2168
2411
|
},] }
|
|
2169
2412
|
];
|
|
2170
2413
|
ServiceMessagesComponent.ctorParameters = () => [
|
|
@@ -2194,7 +2437,7 @@ class ShareCaseConfirmComponent {
|
|
|
2194
2437
|
ShareCaseConfirmComponent.decorators = [
|
|
2195
2438
|
{ type: Component, args: [{
|
|
2196
2439
|
selector: 'xuilib-share-case-confirm',
|
|
2197
|
-
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
|
|
2440
|
+
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",
|
|
2198
2441
|
styles: [""]
|
|
2199
2442
|
},] }
|
|
2200
2443
|
];
|
|
@@ -2207,13 +2450,6 @@ ShareCaseConfirmComponent.propDecorators = {
|
|
|
2207
2450
|
completeLink: [{ type: Input }]
|
|
2208
2451
|
};
|
|
2209
2452
|
|
|
2210
|
-
var SharedCaseErrorMessages;
|
|
2211
|
-
(function (SharedCaseErrorMessages) {
|
|
2212
|
-
SharedCaseErrorMessages["OneCaseMustBeSelected"] = "At least one case must be selected";
|
|
2213
|
-
SharedCaseErrorMessages["NoChangesRequested"] = "You have not requested any changes to case sharing";
|
|
2214
|
-
SharedCaseErrorMessages["OnePersonMustBeAssigned"] = "At least one person must be assigned to each case";
|
|
2215
|
-
})(SharedCaseErrorMessages || (SharedCaseErrorMessages = {}));
|
|
2216
|
-
|
|
2217
2453
|
class UserSelectComponent {
|
|
2218
2454
|
constructor() {
|
|
2219
2455
|
this.selected = new EventEmitter();
|
|
@@ -2259,7 +2495,7 @@ class UserSelectComponent {
|
|
|
2259
2495
|
UserSelectComponent.decorators = [
|
|
2260
2496
|
{ type: Component, args: [{
|
|
2261
2497
|
selector: 'xuilib-user-select',
|
|
2262
|
-
template: "<input class=\"govuk-input\" type=\"text\" [matAutocomplete]=\"dropdown\" [formControl]=\"control\" (ngModelChange)=\"onUserChange($event)\"
|
|
2498
|
+
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",
|
|
2263
2499
|
styles: [""]
|
|
2264
2500
|
},] }
|
|
2265
2501
|
];
|
|
@@ -2444,7 +2680,7 @@ class ShareCaseComponent {
|
|
|
2444
2680
|
ShareCaseComponent.decorators = [
|
|
2445
2681
|
{ type: Component, args: [{
|
|
2446
2682
|
selector: 'xuilib-share-case',
|
|
2447
|
-
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
|
|
2683
|
+
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",
|
|
2448
2684
|
styles: ["select{width:100%}"]
|
|
2449
2685
|
},] }
|
|
2450
2686
|
];
|
|
@@ -2478,7 +2714,7 @@ class TabComponent {
|
|
|
2478
2714
|
TabComponent.decorators = [
|
|
2479
2715
|
{ type: Component, args: [{
|
|
2480
2716
|
selector: 'xuilib-tab',
|
|
2481
|
-
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>"
|
|
2717
|
+
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>"
|
|
2482
2718
|
},] }
|
|
2483
2719
|
];
|
|
2484
2720
|
TabComponent.ctorParameters = () => [];
|
|
@@ -2498,7 +2734,7 @@ class TcConfirmComponent {
|
|
|
2498
2734
|
TcConfirmComponent.decorators = [
|
|
2499
2735
|
{ type: Component, args: [{
|
|
2500
2736
|
selector: 'xuilib-tc-confirm',
|
|
2501
|
-
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
|
|
2737
|
+
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",
|
|
2502
2738
|
styles: [""]
|
|
2503
2739
|
},] }
|
|
2504
2740
|
];
|
|
@@ -2538,7 +2774,7 @@ class TermsAndConditionsComponent {
|
|
|
2538
2774
|
TermsAndConditionsComponent.decorators = [
|
|
2539
2775
|
{ type: Component, args: [{
|
|
2540
2776
|
selector: 'xuilib-terms-and-conditions',
|
|
2541
|
-
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
|
|
2777
|
+
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",
|
|
2542
2778
|
styles: [":host{display:block;width:100%}"]
|
|
2543
2779
|
},] }
|
|
2544
2780
|
];
|
|
@@ -2571,7 +2807,7 @@ class UserDetailsComponent {
|
|
|
2571
2807
|
UserDetailsComponent.decorators = [
|
|
2572
2808
|
{ type: Component, args: [{
|
|
2573
2809
|
selector: 'xuilib-user-details',
|
|
2574
|
-
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
|
|
2810
|
+
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",
|
|
2575
2811
|
styles: [":host{display:block}"]
|
|
2576
2812
|
},] }
|
|
2577
2813
|
];
|
|
@@ -2607,7 +2843,7 @@ class UserListComponent {
|
|
|
2607
2843
|
UserListComponent.decorators = [
|
|
2608
2844
|
{ type: Component, args: [{
|
|
2609
2845
|
selector: 'xuilib-user-list',
|
|
2610
|
-
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",
|
|
2846
|
+
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",
|
|
2611
2847
|
styles: [":host{display:block}"]
|
|
2612
2848
|
},] }
|
|
2613
2849
|
];
|
|
@@ -2670,7 +2906,7 @@ class CookieBannerComponent {
|
|
|
2670
2906
|
CookieBannerComponent.decorators = [
|
|
2671
2907
|
{ type: Component, args: [{
|
|
2672
2908
|
selector: 'xuilib-cookie-banner',
|
|
2673
|
-
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
|
|
2909
|
+
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"
|
|
2674
2910
|
},] }
|
|
2675
2911
|
];
|
|
2676
2912
|
CookieBannerComponent.ctorParameters = () => [
|
|
@@ -2820,7 +3056,7 @@ class FindServiceComponent {
|
|
|
2820
3056
|
FindServiceComponent.decorators = [
|
|
2821
3057
|
{ type: Component, args: [{
|
|
2822
3058
|
selector: 'xuilib-find-service',
|
|
2823
|
-
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",
|
|
3059
|
+
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",
|
|
2824
3060
|
styles: ["#add-service{background-color:#ddd}"]
|
|
2825
3061
|
},] }
|
|
2826
3062
|
];
|
|
@@ -2834,47 +3070,6 @@ FindServiceComponent.propDecorators = {
|
|
|
2834
3070
|
serviceFieldChanged: [{ type: Output }]
|
|
2835
3071
|
};
|
|
2836
3072
|
|
|
2837
|
-
var BadgeColour;
|
|
2838
|
-
(function (BadgeColour) {
|
|
2839
|
-
BadgeColour["BADGE_RED"] = "hmcts-badge--red";
|
|
2840
|
-
BadgeColour["BADGE_BLUE"] = "hmcts-badge--blue";
|
|
2841
|
-
BadgeColour["BADGE_GREEN"] = "hmcts-badge--green";
|
|
2842
|
-
})(BadgeColour || (BadgeColour = {}));
|
|
2843
|
-
|
|
2844
|
-
class AnonymousFeatureUser {
|
|
2845
|
-
}
|
|
2846
|
-
class LoggedInFeatureUser {
|
|
2847
|
-
}
|
|
2848
|
-
|
|
2849
|
-
class RadioFilterFieldConfig {
|
|
2850
|
-
}
|
|
2851
|
-
|
|
2852
|
-
var BookingCheckType;
|
|
2853
|
-
(function (BookingCheckType) {
|
|
2854
|
-
BookingCheckType["NO_CHECK"] = "NO_CHECK";
|
|
2855
|
-
BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
|
|
2856
|
-
BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
|
|
2857
|
-
})(BookingCheckType || (BookingCheckType = {}));
|
|
2858
|
-
|
|
2859
|
-
var PersonRole;
|
|
2860
|
-
(function (PersonRole) {
|
|
2861
|
-
PersonRole["JUDICIAL"] = "Judicial";
|
|
2862
|
-
PersonRole["CASEWORKER"] = "Legal Ops";
|
|
2863
|
-
PersonRole["ADMIN"] = "Admin";
|
|
2864
|
-
PersonRole["CTSC"] = "CTSC";
|
|
2865
|
-
PersonRole["ALL"] = "All";
|
|
2866
|
-
})(PersonRole || (PersonRole = {}));
|
|
2867
|
-
// Note: RoleCategory could replace PersonRole possibly
|
|
2868
|
-
// However a lot of webapp logic is based on current PersonRole understanding
|
|
2869
|
-
var RoleCategory;
|
|
2870
|
-
(function (RoleCategory) {
|
|
2871
|
-
RoleCategory["JUDICIAL"] = "JUDICIAL";
|
|
2872
|
-
RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
|
|
2873
|
-
RoleCategory["ADMIN"] = "ADMIN";
|
|
2874
|
-
RoleCategory["CTSC"] = "CTSC";
|
|
2875
|
-
RoleCategory["ALL"] = "ALL";
|
|
2876
|
-
})(RoleCategory || (RoleCategory = {}));
|
|
2877
|
-
|
|
2878
3073
|
class LocationService {
|
|
2879
3074
|
constructor(http) {
|
|
2880
3075
|
this.http = http;
|
|
@@ -2886,11 +3081,8 @@ class LocationService {
|
|
|
2886
3081
|
* @param searchTerm: any search term for postcode | site name | venue name |court name | court address etc.
|
|
2887
3082
|
* @return Observable<LocationByEPIMMSModel[]>: Array of locationModel in Observable
|
|
2888
3083
|
*/
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
return this.http.post<LocationByEPIMMSModel[]>(`api/locations/getLocations`, {serviceIds, locationType, searchTerm, userLocations}); */
|
|
2892
|
-
getAllLocations(serviceIds, locationType, searchTerm, userLocations, bookingLocations) {
|
|
2893
|
-
return this.http.post(`api/locations/getLocations`, { serviceIds, locationType, searchTerm, userLocations, bookingLocations });
|
|
3084
|
+
getAllLocations(locationUrl, serviceIds, locationType, searchTerm, userLocations) {
|
|
3085
|
+
return this.http.post(locationUrl, { serviceIds, locationType, searchTerm, userLocations });
|
|
2894
3086
|
}
|
|
2895
3087
|
/**
|
|
2896
3088
|
* @description searchLocations from service Ids/location type/search term
|
|
@@ -3021,50 +3213,22 @@ class SearchLocationComponent {
|
|
|
3021
3213
|
}
|
|
3022
3214
|
getLocations(term) {
|
|
3023
3215
|
let userLocations;
|
|
3024
|
-
// EUI-7909 - remove line below
|
|
3025
|
-
let bookingLocations;
|
|
3026
3216
|
// Booking type info - can create more
|
|
3027
3217
|
// NO_CHECK - All work - Do not filter out locations - Default assumption
|
|
3028
3218
|
// BOOKINGS_AND_BASE - My work - Try to only show base locations/regions
|
|
3029
3219
|
// POSSIBLE_BOOKINGS - Create booking screen - Show only potential bookings
|
|
3030
3220
|
if (this.bookingCheck === BookingCheckType.BOOKINGS_AND_BASE) {
|
|
3031
3221
|
userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations'));
|
|
3032
|
-
// EUI - 7909 remove up to next reference of 7909
|
|
3033
|
-
bookingLocations = JSON.parse(this.sessionStorageService.getItem('bookingLocations'));
|
|
3034
|
-
const bookableServices = JSON.parse(this.sessionStorageService.getItem('bookableServices'));
|
|
3035
|
-
const knownBookableServices = [];
|
|
3036
|
-
// we do below in order to enable booking locations to be searched for bookable role assignments without base location or region
|
|
3037
|
-
// first get all bookable services existing in userLocations
|
|
3038
|
-
userLocations.forEach(userLocation => {
|
|
3039
|
-
if (userLocation.bookable) {
|
|
3040
|
-
knownBookableServices.push(userLocation.service);
|
|
3041
|
-
}
|
|
3042
|
-
});
|
|
3043
|
-
// then, from the full list of bookable services, add ones that are missing
|
|
3044
|
-
// this is so that booking locations will be checked for all relevant services
|
|
3045
|
-
bookableServices.forEach(bookableService => {
|
|
3046
|
-
if (!knownBookableServices.includes(bookableService)) {
|
|
3047
|
-
userLocations.push({ service: bookableService, locations: [], bookable: true });
|
|
3048
|
-
}
|
|
3049
|
-
});
|
|
3050
|
-
// EUI-7909
|
|
3051
3222
|
}
|
|
3052
3223
|
else if (this.bookingCheck === BookingCheckType.POSSIBLE_BOOKINGS) {
|
|
3053
3224
|
this.serviceIds = this.serviceIds && this.serviceIds.length ? this.serviceIds : JSON.parse(this.sessionStorageService.getItem('bookableServices'));
|
|
3054
|
-
|
|
3055
|
-
userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations'));
|
|
3056
|
-
// filter out any non-bookable services
|
|
3057
|
-
userLocations = userLocations.filter((userLocation) => userLocation.bookable);
|
|
3058
|
-
// EUI-7909 - uncomment out line below
|
|
3059
|
-
// userLocations = JSON.parse(this.sessionStorageService.getItem('bookableUserLocations')) as LocationsByService[];
|
|
3225
|
+
userLocations = JSON.parse(this.sessionStorageService.getItem('bookableUserLocations'));
|
|
3060
3226
|
}
|
|
3061
3227
|
// get all locations will resolve filter setting using objects above
|
|
3062
3228
|
// if no userLocations, NO_CHECK
|
|
3063
3229
|
// if just getting all substantive user locations, BOOKINGS_AND_BASE
|
|
3064
3230
|
// fee paid user locations are used for POSSIBLE_BOOKINGS
|
|
3065
|
-
|
|
3066
|
-
// return this.locationService.getAllLocations(this.serviceIds, this.locationType, term, userLocations);
|
|
3067
|
-
return this.locationService.getAllLocations(this.serviceIds, this.locationType, term, userLocations, bookingLocations);
|
|
3231
|
+
return this.locationService.getAllLocations(SearchLocationComponent.allLocationAPI, this.serviceIds, this.locationType, term, userLocations);
|
|
3068
3232
|
}
|
|
3069
3233
|
resetSearchTerm() {
|
|
3070
3234
|
this.searchTermFormControl.setValue('');
|
|
@@ -3076,10 +3240,11 @@ class SearchLocationComponent {
|
|
|
3076
3240
|
return locations.filter(location => !selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(location.epimms_id) && location[this.propertyNameFilter]);
|
|
3077
3241
|
}
|
|
3078
3242
|
}
|
|
3243
|
+
SearchLocationComponent.allLocationAPI = `api/locations/getLocations`;
|
|
3079
3244
|
SearchLocationComponent.decorators = [
|
|
3080
3245
|
{ type: Component, args: [{
|
|
3081
3246
|
selector: 'exui-search-location',
|
|
3082
|
-
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",
|
|
3247
|
+
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",
|
|
3083
3248
|
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}"]
|
|
3084
3249
|
},] }
|
|
3085
3250
|
];
|
|
@@ -3262,7 +3427,7 @@ class PaginationComponent {
|
|
|
3262
3427
|
PaginationComponent.decorators = [
|
|
3263
3428
|
{ type: Component, args: [{
|
|
3264
3429
|
selector: 'xuilib-pagination',
|
|
3265
|
-
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",
|
|
3430
|
+
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",
|
|
3266
3431
|
styles: ["span.hmcts-pagination__link:hover{color:revert}"]
|
|
3267
3432
|
},] }
|
|
3268
3433
|
];
|
|
@@ -3427,7 +3592,8 @@ class FindAPersonService {
|
|
|
3427
3592
|
}
|
|
3428
3593
|
this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
|
|
3429
3594
|
return this.http.post('/workallocation/findPerson', { searchOptions })
|
|
3430
|
-
.pipe(map(judiciary => judiciary.filter(judge => !([this.assignedUser
|
|
3595
|
+
.pipe(map(judiciary => judiciary.filter(judge => !([this.assignedUser].includes(judge.id)))));
|
|
3596
|
+
// Removed the current user id to fix EUI-8465.
|
|
3431
3597
|
}
|
|
3432
3598
|
findCaseworkers(searchOptions) {
|
|
3433
3599
|
const userInfoStr = this.sessionStorageService.getItem('userDetails');
|
|
@@ -3722,7 +3888,7 @@ class FindPersonComponent {
|
|
|
3722
3888
|
FindPersonComponent.decorators = [
|
|
3723
3889
|
{ type: Component, args: [{
|
|
3724
3890
|
selector: 'xuilib-find-person',
|
|
3725
|
-
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
|
|
3891
|
+
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",
|
|
3726
3892
|
styles: [".mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}.hide-autocomplete{display:none}"]
|
|
3727
3893
|
},] }
|
|
3728
3894
|
];
|
|
@@ -3889,7 +4055,7 @@ class ExuiPageWrapperComponent {
|
|
|
3889
4055
|
ExuiPageWrapperComponent.decorators = [
|
|
3890
4056
|
{ type: Component, args: [{
|
|
3891
4057
|
selector: 'exui-page-wrapper',
|
|
3892
|
-
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",
|
|
4058
|
+
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",
|
|
3893
4059
|
styles: [".page{width:100%}"]
|
|
3894
4060
|
},] }
|
|
3895
4061
|
];
|
|
@@ -3900,6 +4066,175 @@ ExuiPageWrapperComponent.propDecorators = {
|
|
|
3900
4066
|
fnTitle: [{ type: Input }]
|
|
3901
4067
|
};
|
|
3902
4068
|
|
|
4069
|
+
class WriteAddressFieldComponent {
|
|
4070
|
+
constructor(addressesService) {
|
|
4071
|
+
this.addressesService = addressesService;
|
|
4072
|
+
this.internationalMode = false;
|
|
4073
|
+
this.submissionAttempted = false;
|
|
4074
|
+
this.postcodeOptionSelected = new EventEmitter();
|
|
4075
|
+
this.internationalModeStart = new EventEmitter();
|
|
4076
|
+
this.ukAddressOptionSelected = new EventEmitter();
|
|
4077
|
+
this.addressField = {
|
|
4078
|
+
addressLine1: '',
|
|
4079
|
+
addressLine2: '',
|
|
4080
|
+
addressLine3: '',
|
|
4081
|
+
postCode: '',
|
|
4082
|
+
postTown: '',
|
|
4083
|
+
country: '',
|
|
4084
|
+
county: ''
|
|
4085
|
+
};
|
|
4086
|
+
this.optionErrorsPresent = false;
|
|
4087
|
+
this.addressChosen = false;
|
|
4088
|
+
this.missingPostcode = false;
|
|
4089
|
+
this.optionErrorMessage = AddressMessageEnum.NO_OPTION_SELECTED;
|
|
4090
|
+
}
|
|
4091
|
+
ngOnInit() {
|
|
4092
|
+
if (!this.formGroup.get('address')) {
|
|
4093
|
+
this.formGroup.addControl('address', new FormControl({}));
|
|
4094
|
+
}
|
|
4095
|
+
// set the form group relevant to only the external parent component
|
|
4096
|
+
this.addressFormGroup = new FormGroup({
|
|
4097
|
+
// relevant to international mode
|
|
4098
|
+
ukAddress: new FormControl(this.isInternational !== undefined ? (this.isInternational ? 'no' : 'yes') : null),
|
|
4099
|
+
// relevant to postocode lookup
|
|
4100
|
+
postcode: new FormControl(''),
|
|
4101
|
+
addressList: new FormControl('')
|
|
4102
|
+
});
|
|
4103
|
+
}
|
|
4104
|
+
findAddress() {
|
|
4105
|
+
if (!this.addressFormGroup.get('postcode').value) {
|
|
4106
|
+
this.missingPostcode = true;
|
|
4107
|
+
}
|
|
4108
|
+
else {
|
|
4109
|
+
this.missingPostcode = false;
|
|
4110
|
+
this.addressField = null;
|
|
4111
|
+
const postcode = this.addressFormGroup.get('postcode').value;
|
|
4112
|
+
this.addressOptions = [];
|
|
4113
|
+
this.addressesService.getAddressesForPostcode(postcode.replace(' ', '').toUpperCase()).subscribe(result => {
|
|
4114
|
+
result.forEach(address => {
|
|
4115
|
+
this.addressOptions.push(new AddressOption(address, null));
|
|
4116
|
+
});
|
|
4117
|
+
this.addressOptions.unshift(new AddressOption(undefined, this.defaultLabel(this.addressOptions.length)));
|
|
4118
|
+
}, (error) => {
|
|
4119
|
+
console.log(`An error occurred retrieving addresses for postcode ${postcode}. ${error}`);
|
|
4120
|
+
this.addressOptions.unshift(new AddressOption(undefined, this.defaultLabel(this.addressOptions.length)));
|
|
4121
|
+
});
|
|
4122
|
+
this.addressFormGroup.get('addressList').setValue(undefined);
|
|
4123
|
+
}
|
|
4124
|
+
}
|
|
4125
|
+
blankAddress() {
|
|
4126
|
+
this.setFormValue();
|
|
4127
|
+
if (this.internationalMode) {
|
|
4128
|
+
this.internationalModeStart.emit();
|
|
4129
|
+
}
|
|
4130
|
+
}
|
|
4131
|
+
shouldShowDetailFields() {
|
|
4132
|
+
if (!this.formGroup.get('address')) {
|
|
4133
|
+
return false;
|
|
4134
|
+
}
|
|
4135
|
+
const address = this.formGroup.get('address').value;
|
|
4136
|
+
let hasAddress = false;
|
|
4137
|
+
if (address) {
|
|
4138
|
+
Object.keys(address).forEach((key) => {
|
|
4139
|
+
if (address[key] !== null) {
|
|
4140
|
+
hasAddress = true;
|
|
4141
|
+
}
|
|
4142
|
+
});
|
|
4143
|
+
}
|
|
4144
|
+
return hasAddress;
|
|
4145
|
+
}
|
|
4146
|
+
addressSelected() {
|
|
4147
|
+
this.addressField = this.addressFormGroup.get('addressList').value;
|
|
4148
|
+
this.addressChosen = true;
|
|
4149
|
+
this.setFormValue();
|
|
4150
|
+
this.postcodeOptionSelected.emit();
|
|
4151
|
+
}
|
|
4152
|
+
ngOnChanges(changes) {
|
|
4153
|
+
const addressChange = changes['addressField'];
|
|
4154
|
+
const internationalChange = changes['isInternational'];
|
|
4155
|
+
if (addressChange) {
|
|
4156
|
+
this.setFormValue();
|
|
4157
|
+
}
|
|
4158
|
+
if (internationalChange && this.addressFormGroup && this.addressFormGroup.get('ukAddress')) {
|
|
4159
|
+
this.addressFormGroup.get('ukAddress').patchValue(this.isInternational ? 'no' : 'yes');
|
|
4160
|
+
}
|
|
4161
|
+
this.checkIfErrorsNeeded();
|
|
4162
|
+
}
|
|
4163
|
+
checkIfErrorsNeeded() {
|
|
4164
|
+
if (this.submissionAttempted && this.shouldShowDetailFields() && this.internationalMode && !this.addressChosen) {
|
|
4165
|
+
// ensure errors present when submission attmempted on international radio buttons
|
|
4166
|
+
this.optionErrorsPresent = true;
|
|
4167
|
+
}
|
|
4168
|
+
else {
|
|
4169
|
+
this.optionErrorsPresent = false;
|
|
4170
|
+
}
|
|
4171
|
+
if (this.optionErrorsPresent && (this.addressChosen || this.isInternational !== undefined)) {
|
|
4172
|
+
// ensure parent errors not present when the child form group is present
|
|
4173
|
+
this.optionErrorsPresent = false;
|
|
4174
|
+
}
|
|
4175
|
+
}
|
|
4176
|
+
setInternationalAddress(isInternational) {
|
|
4177
|
+
this.isInternational = isInternational;
|
|
4178
|
+
this.ukAddressOptionSelected.emit(this.isInternational);
|
|
4179
|
+
}
|
|
4180
|
+
defaultLabel(numberOfAddresses) {
|
|
4181
|
+
return numberOfAddresses === 0 ? 'No address found'
|
|
4182
|
+
: `${numberOfAddresses}${numberOfAddresses === 1 ? ' address ' : ' addresses '}found`;
|
|
4183
|
+
}
|
|
4184
|
+
setFormValue() {
|
|
4185
|
+
if (this.formGroup) {
|
|
4186
|
+
this.formGroup.get('address').patchValue(this.addressField);
|
|
4187
|
+
}
|
|
4188
|
+
}
|
|
4189
|
+
}
|
|
4190
|
+
WriteAddressFieldComponent.decorators = [
|
|
4191
|
+
{ type: Component, args: [{
|
|
4192
|
+
selector: 'xuilib-write-address-field',
|
|
4193
|
+
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=\"!shouldShowDetailFields() || (!startedInternational && !addressChosen)\">\n <div class=\"govuk-form-group postcodeLookup\" id=\"addressLookup\"\n [ngClass]=\"{'form-group-error': missingPostcode}\">\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 <span class=\"error-message\" *ngIf=\"missingPostcode\">Enter the Postcode</span>\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\n <div class=\"govuk-form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\">\n <label class=\"govuk-label\" for=\"addressList\">\n <span class=\"form-label\">Select an address</span>\n </label>\n\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\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>",
|
|
4194
|
+
styles: [".manual-link{cursor:pointer;text-decoration:underline}.manual-link,:host{display:block}"]
|
|
4195
|
+
},] }
|
|
4196
|
+
];
|
|
4197
|
+
WriteAddressFieldComponent.ctorParameters = () => [
|
|
4198
|
+
{ type: AddressService }
|
|
4199
|
+
];
|
|
4200
|
+
WriteAddressFieldComponent.propDecorators = {
|
|
4201
|
+
formGroup: [{ type: Input }],
|
|
4202
|
+
internationalMode: [{ type: Input }],
|
|
4203
|
+
isInternational: [{ type: Input }],
|
|
4204
|
+
submissionAttempted: [{ type: Input }],
|
|
4205
|
+
startedInternational: [{ type: Input }],
|
|
4206
|
+
postcodeOptionSelected: [{ type: Output }],
|
|
4207
|
+
internationalModeStart: [{ type: Output }],
|
|
4208
|
+
ukAddressOptionSelected: [{ type: Output }]
|
|
4209
|
+
};
|
|
4210
|
+
|
|
4211
|
+
class WriteAddressInputsComponent {
|
|
4212
|
+
constructor() {
|
|
4213
|
+
this.MESSAGE_ENUM = AddressMessageEnum;
|
|
4214
|
+
this.isInternational = false;
|
|
4215
|
+
this.submissionAttempted = false;
|
|
4216
|
+
this.missingPostcode = false;
|
|
4217
|
+
this.errorsPresent = false;
|
|
4218
|
+
}
|
|
4219
|
+
ngOnChanges() {
|
|
4220
|
+
const addressGroup = this.formGroup.get('address');
|
|
4221
|
+
// if there is an issue with the formgroup, ensure error styling is displayed
|
|
4222
|
+
this.errorsPresent = !addressGroup.valid;
|
|
4223
|
+
}
|
|
4224
|
+
}
|
|
4225
|
+
WriteAddressInputsComponent.decorators = [
|
|
4226
|
+
{ type: Component, args: [{
|
|
4227
|
+
selector: 'xuilib-write-address-inputs',
|
|
4228
|
+
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>"
|
|
4229
|
+
},] }
|
|
4230
|
+
];
|
|
4231
|
+
WriteAddressInputsComponent.ctorParameters = () => [];
|
|
4232
|
+
WriteAddressInputsComponent.propDecorators = {
|
|
4233
|
+
formGroup: [{ type: Input }],
|
|
4234
|
+
isInternational: [{ type: Input }],
|
|
4235
|
+
submissionAttempted: [{ type: Input }]
|
|
4236
|
+
};
|
|
4237
|
+
|
|
3903
4238
|
class FeatureToggleDirective {
|
|
3904
4239
|
constructor(service, viewContainer, templateRef) {
|
|
3905
4240
|
this.service = service;
|
|
@@ -3988,7 +4323,7 @@ class GovUkCheckboxComponent {
|
|
|
3988
4323
|
GovUkCheckboxComponent.decorators = [
|
|
3989
4324
|
{ type: Component, args: [{
|
|
3990
4325
|
selector: 'xuilib-gov-checkbox',
|
|
3991
|
-
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
|
|
4326
|
+
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"
|
|
3992
4327
|
},] }
|
|
3993
4328
|
];
|
|
3994
4329
|
GovUkCheckboxComponent.ctorParameters = () => [];
|
|
@@ -4152,7 +4487,7 @@ class GovUkErrorMessageComponent {
|
|
|
4152
4487
|
GovUkErrorMessageComponent.decorators = [
|
|
4153
4488
|
{ type: Component, args: [{
|
|
4154
4489
|
selector: ' xuilib-gov-uk-error-message',
|
|
4155
|
-
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
|
|
4490
|
+
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"
|
|
4156
4491
|
},] }
|
|
4157
4492
|
];
|
|
4158
4493
|
GovUkErrorMessageComponent.ctorParameters = () => [];
|
|
@@ -4178,7 +4513,7 @@ class GovUkFieldsetComponent {
|
|
|
4178
4513
|
GovUkFieldsetComponent.decorators = [
|
|
4179
4514
|
{ type: Component, args: [{
|
|
4180
4515
|
selector: 'xuilib-gov-uk-fieldset',
|
|
4181
|
-
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
|
|
4516
|
+
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"
|
|
4182
4517
|
},] }
|
|
4183
4518
|
];
|
|
4184
4519
|
GovUkFieldsetComponent.ctorParameters = () => [];
|
|
@@ -4209,7 +4544,7 @@ class GovUkFileUploadComponent {
|
|
|
4209
4544
|
GovUkFileUploadComponent.decorators = [
|
|
4210
4545
|
{ type: Component, args: [{
|
|
4211
4546
|
selector: 'xuilib-gov-uk-file-upload',
|
|
4212
|
-
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
|
|
4547
|
+
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"
|
|
4213
4548
|
},] }
|
|
4214
4549
|
];
|
|
4215
4550
|
GovUkFileUploadComponent.ctorParameters = () => [];
|
|
@@ -4261,7 +4596,7 @@ class GovUkInputComponent {
|
|
|
4261
4596
|
GovUkInputComponent.decorators = [
|
|
4262
4597
|
{ type: Component, args: [{
|
|
4263
4598
|
selector: 'xuilib-gov-uk-input',
|
|
4264
|
-
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",
|
|
4599
|
+
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",
|
|
4265
4600
|
styles: [".gov-uk-input input:disabled{background:#b1b4b6}"]
|
|
4266
4601
|
},] }
|
|
4267
4602
|
];
|
|
@@ -4284,7 +4619,7 @@ class GovUkLabelComponent {
|
|
|
4284
4619
|
GovUkLabelComponent.decorators = [
|
|
4285
4620
|
{ type: Component, args: [{
|
|
4286
4621
|
selector: 'xuilib-gov-label',
|
|
4287
|
-
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",
|
|
4622
|
+
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",
|
|
4288
4623
|
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}"]
|
|
4289
4624
|
},] }
|
|
4290
4625
|
];
|
|
@@ -4315,7 +4650,7 @@ class GovUkRadioComponent {
|
|
|
4315
4650
|
GovUkRadioComponent.decorators = [
|
|
4316
4651
|
{ type: Component, args: [{
|
|
4317
4652
|
selector: 'xuilib-gov-radio',
|
|
4318
|
-
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
|
|
4653
|
+
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"
|
|
4319
4654
|
},] }
|
|
4320
4655
|
];
|
|
4321
4656
|
GovUkRadioComponent.ctorParameters = () => [];
|
|
@@ -4357,7 +4692,7 @@ class GovUkSelectComponent {
|
|
|
4357
4692
|
GovUkSelectComponent.decorators = [
|
|
4358
4693
|
{ type: Component, args: [{
|
|
4359
4694
|
selector: 'xuilib-gov-select',
|
|
4360
|
-
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"
|
|
4695
|
+
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"
|
|
4361
4696
|
},] }
|
|
4362
4697
|
];
|
|
4363
4698
|
GovUkSelectComponent.ctorParameters = () => [];
|
|
@@ -4385,7 +4720,7 @@ class GovukTableComponent {
|
|
|
4385
4720
|
GovukTableComponent.decorators = [
|
|
4386
4721
|
{ type: Component, args: [{
|
|
4387
4722
|
selector: 'xuilib-gov-uk-table',
|
|
4388
|
-
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",
|
|
4723
|
+
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",
|
|
4389
4724
|
styles: [""]
|
|
4390
4725
|
},] }
|
|
4391
4726
|
];
|
|
@@ -4420,7 +4755,7 @@ class GovUkTextareaComponent {
|
|
|
4420
4755
|
GovUkTextareaComponent.decorators = [
|
|
4421
4756
|
{ type: Component, args: [{
|
|
4422
4757
|
selector: 'xuilib-gov-uk-textarea',
|
|
4423
|
-
template: "<div [formGroup]=\"group\"
|
|
4758
|
+
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"
|
|
4424
4759
|
},] }
|
|
4425
4760
|
];
|
|
4426
4761
|
GovUkTextareaComponent.propDecorators = {
|
|
@@ -4439,7 +4774,7 @@ class HmctsBannerComponent {
|
|
|
4439
4774
|
HmctsBannerComponent.decorators = [
|
|
4440
4775
|
{ type: Component, args: [{
|
|
4441
4776
|
selector: 'xuilib-hmcts-banner',
|
|
4442
|
-
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\">{{
|
|
4777
|
+
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",
|
|
4443
4778
|
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}"]
|
|
4444
4779
|
},] }
|
|
4445
4780
|
];
|
|
@@ -4485,7 +4820,7 @@ class HmctsErrorSummaryComponent {
|
|
|
4485
4820
|
HmctsErrorSummaryComponent.decorators = [
|
|
4486
4821
|
{ type: Component, args: [{
|
|
4487
4822
|
selector: 'xuilib-hmcts-error-summary',
|
|
4488
|
-
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
|
|
4823
|
+
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"
|
|
4489
4824
|
},] }
|
|
4490
4825
|
];
|
|
4491
4826
|
HmctsErrorSummaryComponent.ctorParameters = () => [
|
|
@@ -4506,7 +4841,7 @@ class HmctsIdentityBarComponent {
|
|
|
4506
4841
|
HmctsIdentityBarComponent.decorators = [
|
|
4507
4842
|
{ type: Component, args: [{
|
|
4508
4843
|
selector: 'xuilib-hmcts-identity-bar',
|
|
4509
|
-
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
|
|
4844
|
+
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",
|
|
4510
4845
|
styles: [""]
|
|
4511
4846
|
},] }
|
|
4512
4847
|
];
|
|
@@ -4541,7 +4876,7 @@ class HmctsMainWrapperComponent {
|
|
|
4541
4876
|
HmctsMainWrapperComponent.decorators = [
|
|
4542
4877
|
{ type: Component, args: [{
|
|
4543
4878
|
selector: 'xuilib-hmcts-main-wrapper',
|
|
4544
|
-
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"
|
|
4879
|
+
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"
|
|
4545
4880
|
},] }
|
|
4546
4881
|
];
|
|
4547
4882
|
HmctsMainWrapperComponent.ctorParameters = () => [];
|
|
@@ -4568,7 +4903,7 @@ class HmctsPaginationComponent {
|
|
|
4568
4903
|
HmctsPaginationComponent.decorators = [
|
|
4569
4904
|
{ type: Component, args: [{
|
|
4570
4905
|
selector: 'xuilib-hmcts-pagination',
|
|
4571
|
-
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
|
|
4906
|
+
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",
|
|
4572
4907
|
styles: [".hmcts-pagination__results{float:right}"]
|
|
4573
4908
|
},] }
|
|
4574
4909
|
];
|
|
@@ -4592,7 +4927,7 @@ class HmctsPrimaryNavigationComponent {
|
|
|
4592
4927
|
HmctsPrimaryNavigationComponent.decorators = [
|
|
4593
4928
|
{ type: Component, args: [{
|
|
4594
4929
|
selector: 'xuilib-hmcts-primary-navigation',
|
|
4595
|
-
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",
|
|
4930
|
+
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",
|
|
4596
4931
|
styles: [""]
|
|
4597
4932
|
},] }
|
|
4598
4933
|
];
|
|
@@ -4609,7 +4944,7 @@ class HmctsSubNavigationComponent {
|
|
|
4609
4944
|
HmctsSubNavigationComponent.decorators = [
|
|
4610
4945
|
{ type: Component, args: [{
|
|
4611
4946
|
selector: 'xuilib-hmcts-sub-navigation',
|
|
4612
|
-
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
|
|
4947
|
+
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",
|
|
4613
4948
|
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}"]
|
|
4614
4949
|
},] }
|
|
4615
4950
|
];
|
|
@@ -4693,7 +5028,9 @@ const COMMON_COMPONENTS = [
|
|
|
4693
5028
|
FindServiceComponent,
|
|
4694
5029
|
SearchServiceComponent,
|
|
4695
5030
|
SearchVenueComponent,
|
|
4696
|
-
PaginationComponent
|
|
5031
|
+
PaginationComponent,
|
|
5032
|
+
WriteAddressFieldComponent,
|
|
5033
|
+
WriteAddressInputsComponent
|
|
4697
5034
|
];
|
|
4698
5035
|
const GOV_UI_COMPONENTS = [
|
|
4699
5036
|
HmctsIdentityBarComponent,
|
|
@@ -4740,7 +5077,8 @@ ExuiCommonLibModule.decorators = [
|
|
|
4740
5077
|
MatAutocompleteModule,
|
|
4741
5078
|
MatTabsModule,
|
|
4742
5079
|
MatInputModule,
|
|
4743
|
-
NgxPaginationModule
|
|
5080
|
+
NgxPaginationModule,
|
|
5081
|
+
RpxTranslationModule.forChild()
|
|
4744
5082
|
],
|
|
4745
5083
|
providers: [
|
|
4746
5084
|
{ provide: windowToken, useFactory: ɵ0 }
|
|
@@ -4829,5 +5167,5 @@ function radioGroupValidator() {
|
|
|
4829
5167
|
* Generated bundle index. Do not edit.
|
|
4830
5168
|
*/
|
|
4831
5169
|
|
|
4832
|
-
export { AccessibilityComponent, AnonymousFeatureUser, BadgeColour, BookingCheckType, COMMON_COMPONENTS, CapitalizePipe, CheckboxListComponent, ContactDetailsComponent, CookieBannerComponent, CookieService, DateBadgeColour, DueDateComponent, ExuiCommonLibModule, ExuiPageWrapperComponent, FeatureToggleDirective, FeatureToggleGuard, FeatureToggleService, FilterService, FindLocationComponent, FindPersonComponent, FindServiceComponent, FindTaskNameComponent, GOV_UI_COMPONENTS, GenericFilterComponent, GoogleAnalyticsService, GoogleTagManagerService, GovUiService, GovUkCheckboxComponent, GovUkCheckboxesComponent, GovUkDateComponent, GovUkErrorMessageComponent, GovUkFieldsetComponent, GovUkFileUploadComponent, GovUkFormGroupWrapperComponent, GovUkInputComponent, GovUkLabelComponent, GovUkRadioComponent, GovUkRadiosComponent, GovUkSelectComponent, GovUkTextareaComponent, GovukTableColumnConfig, GovukTableComponent, HasLoadingState, HmctsBannerComponent, HmctsErrorSummaryComponent, HmctsIdentityBarComponent, HmctsMainWrapperComponent, HmctsPaginationComponent, HmctsPrimaryNavigationComponent, HmctsSessionDialogComponent, HmctsSubNavigationComponent, InviteUserFormComponent, InviteUserPermissionComponent, LaunchDarklyService, LetContext, LetDirective, LoadingService, LoadingSpinnerComponent, LoggedInFeatureUser, ManageSessionServices, PaginationComponent, PersonRole, RadioFilterFieldConfig, RefDataService, RemoveHostDirective, RoleCategory, RoleGuard, RoleMatching, RoleService, SECONDS_IN_A_DAY, SearchJudicialsComponent, SearchLocationComponent, SearchServiceComponent, SearchVenueComponent, SelectedCaseComponent, SelectedCaseConfirmComponent, SelectedCaseListComponent, ServiceMessageComponent, ServiceMessagesComponent, ShareCaseComponent, ShareCaseConfirmComponent, SharedCaseErrorMessages, TabComponent, TcConfirmComponent, TcDisplayHtmlComponent, TcDisplayPlainComponent, TermsAndConditionsComponent, TimeoutNotificationsService, UserDetailsComponent, UserListComponent, UserSelectComponent, checkboxesBeCheckedValidator, dateValidator, radioGroupValidator, windowProvider, windowToken, ɵ0, ExuiPageWrapperComponent as ɵa, TermsAndConditionsComponent as ɵb, ServiceMessageComponent as ɵba, ServiceMessagesComponent as ɵbb, LoadingSpinnerComponent as ɵbc, GenericFilterComponent as ɵbd, FilterService as ɵbe, CookieBannerComponent as ɵbf, CookieService as ɵbg, FindPersonComponent as ɵbh, FindAPersonService as ɵbi, SessionStorageService as ɵbj, SearchJudicialsComponent as ɵbk, FindLocationComponent as ɵbl, SearchLocationComponent as ɵbm, LocationService as ɵbn, RefDataService as ɵbo, FindTaskNameComponent as ɵbp, TaskNameService as ɵbq, FindServiceComponent as ɵbr, SearchServiceComponent as ɵbs, SearchVenueComponent as ɵbt, PaginationComponent as ɵbu,
|
|
5170
|
+
export { AccessibilityComponent, AddressMessageEnum, AddressModel, AddressOption, AddressService, AnonymousFeatureUser, BadgeColour, BookingCheckType, COMMON_COMPONENTS, CapitalizePipe, CheckboxListComponent, ContactDetailsComponent, CookieBannerComponent, CookieService, DateBadgeColour, DueDateComponent, ExuiCommonLibModule, ExuiPageWrapperComponent, FeatureToggleDirective, FeatureToggleGuard, FeatureToggleService, FilterService, FindLocationComponent, FindPersonComponent, FindServiceComponent, FindTaskNameComponent, GOV_UI_COMPONENTS, GenericFilterComponent, GoogleAnalyticsService, GoogleTagManagerService, GovUiService, GovUkCheckboxComponent, GovUkCheckboxesComponent, GovUkDateComponent, GovUkErrorMessageComponent, GovUkFieldsetComponent, GovUkFileUploadComponent, GovUkFormGroupWrapperComponent, GovUkInputComponent, GovUkLabelComponent, GovUkRadioComponent, GovUkRadiosComponent, GovUkSelectComponent, GovUkTextareaComponent, GovukTableColumnConfig, GovukTableComponent, HasLoadingState, HmctsBannerComponent, HmctsErrorSummaryComponent, HmctsIdentityBarComponent, HmctsMainWrapperComponent, HmctsPaginationComponent, HmctsPrimaryNavigationComponent, HmctsSessionDialogComponent, HmctsSubNavigationComponent, InviteUserFormComponent, InviteUserPermissionComponent, LaunchDarklyService, LetContext, LetDirective, LoadingService, LoadingSpinnerComponent, LoggedInFeatureUser, ManageSessionServices, PaginationComponent, PersonRole, RadioFilterFieldConfig, RefDataService, RemoveHostDirective, RoleCategory, RoleGuard, RoleMatching, RoleService, SECONDS_IN_A_DAY, SearchJudicialsComponent, SearchLocationComponent, SearchServiceComponent, SearchVenueComponent, SelectedCaseComponent, SelectedCaseConfirmComponent, SelectedCaseListComponent, ServiceMessageComponent, ServiceMessagesComponent, ShareCaseComponent, ShareCaseConfirmComponent, SharedCaseErrorMessages, TabComponent, TcConfirmComponent, TcDisplayHtmlComponent, TcDisplayPlainComponent, TermsAndConditionsComponent, TimeoutNotificationsService, UserDetailsComponent, UserListComponent, UserSelectComponent, WriteAddressFieldComponent, WriteAddressInputsComponent, checkboxesBeCheckedValidator, dateValidator, radioGroupValidator, windowProvider, windowToken, ɵ0, ExuiPageWrapperComponent as ɵa, TermsAndConditionsComponent as ɵb, ServiceMessageComponent as ɵba, ServiceMessagesComponent as ɵbb, LoadingSpinnerComponent as ɵbc, GenericFilterComponent as ɵbd, FilterService as ɵbe, CookieBannerComponent as ɵbf, CookieService as ɵbg, FindPersonComponent as ɵbh, FindAPersonService as ɵbi, SessionStorageService as ɵbj, SearchJudicialsComponent as ɵbk, FindLocationComponent as ɵbl, SearchLocationComponent as ɵbm, LocationService as ɵbn, RefDataService as ɵbo, FindTaskNameComponent as ɵbp, TaskNameService as ɵbq, FindServiceComponent as ɵbr, SearchServiceComponent as ɵbs, SearchVenueComponent as ɵbt, PaginationComponent as ɵbu, WriteAddressFieldComponent as ɵbv, AddressService as ɵbw, WriteAddressInputsComponent as ɵbx, HmctsIdentityBarComponent as ɵby, HmctsPaginationComponent as ɵbz, TcDisplayHtmlComponent as ɵc, HmctsSubNavigationComponent as ɵca, HmctsPrimaryNavigationComponent as ɵcb, HmctsErrorSummaryComponent as ɵcc, HmctsMainWrapperComponent as ɵcd, HmctsBannerComponent as ɵce, GovukTableComponent as ɵcf, GovUkInputComponent as ɵcg, GovUkCheckboxComponent as ɵch, GovUkFormGroupWrapperComponent as ɵci, GovUkLabelComponent as ɵcj, GovUkErrorMessageComponent as ɵck, GovUkFieldsetComponent as ɵcl, GovUkDateComponent as ɵcm, GovUkCheckboxesComponent as ɵcn, GovUkRadioComponent as ɵco, GovUkRadiosComponent as ɵcp, GovUkSelectComponent as ɵcq, GovUkTextareaComponent as ɵcr, GovUkFileUploadComponent as ɵcs, RemoveHostDirective as ɵct, CapitalizePipe as ɵcu, TcDisplayPlainComponent as ɵd, TcConfirmComponent as ɵe, ContactDetailsComponent as ɵf, FeatureToggleDirective as ɵg, FeatureToggleService as ɵh, LetContext as ɵi, LetDirective as ɵj, HmctsSessionDialogComponent as ɵk, UserListComponent as ɵl, UserDetailsComponent as ɵm, InviteUserPermissionComponent as ɵn, InviteUserFormComponent as ɵo, ShareCaseComponent as ɵp, UserSelectComponent as ɵq, CaseSharingStateService as ɵr, ShareCaseConfirmComponent as ɵs, SelectedCaseListComponent as ɵt, SelectedCaseComponent as ɵu, SelectedCaseConfirmComponent as ɵv, TabComponent as ɵw, AccessibilityComponent as ɵx, DueDateComponent as ɵy, CheckboxListComponent as ɵz };
|
|
4833
5171
|
//# sourceMappingURL=hmcts-rpx-xui-common-lib.js.map
|