@hmcts/rpx-xui-common-lib 3.2.1-angular-20.3.14 → 3.2.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"hmcts-rpx-xui-common-lib.mjs","sources":["../../../projects/exui-common-lib/src/lib/components/accessibility/accessibility.component.html","../../../projects/exui-common-lib/src/lib/components/accessibility/accessibility.component.ts","../../../projects/exui-common-lib/src/lib/components/checkbox-list/checkbox-list.component.html","../../../projects/exui-common-lib/src/lib/components/checkbox-list/checkbox-list.component.ts","../../../projects/exui-common-lib/src/lib/components/contact-details/contact-details.component.html","../../../projects/exui-common-lib/src/lib/components/contact-details/contact-details.component.ts","../../../projects/exui-common-lib/src/lib/models/due-date.model.ts","../../../projects/exui-common-lib/src/lib/components/due-date/due-date.component.html","../../../projects/exui-common-lib/src/lib/components/due-date/due-date.component.ts","../../../projects/exui-common-lib/src/lib/services/feature-toggle/feature-toggle.service.ts","../../../projects/exui-common-lib/src/lib/services/feature-toggle/feature-toggle.guard.ts","../../../projects/exui-common-lib/src/lib/services/feature-toggle/launch-darkly.service.ts","../../../projects/exui-common-lib/src/lib/models/address-message.enum.ts","../../../projects/exui-common-lib/src/lib/models/address-option.model.ts","../../../projects/exui-common-lib/src/lib/models/address.model.ts","../../../projects/exui-common-lib/src/lib/models/case-share.model.ts","../../../projects/exui-common-lib/src/lib/models/contact-details.model.ts","../../../projects/exui-common-lib/src/lib/models/feature-user.ts","../../../projects/exui-common-lib/src/lib/models/filter.model.ts","../../../projects/exui-common-lib/src/lib/models/location.model.ts","../../../projects/exui-common-lib/src/lib/models/person.model.ts","../../../projects/exui-common-lib/src/lib/services/address/address-type.enum.ts","../../../projects/exui-common-lib/src/lib/services/address/address-parser.ts","../../../projects/exui-common-lib/src/lib/services/address/address.service.ts","../../../projects/exui-common-lib/src/lib/window.ts","../../../projects/exui-common-lib/src/lib/services/google-analytics/google-analytics.service.ts","../../../projects/exui-common-lib/src/lib/services/google-tag-manager/google-tag-manager.service.ts","../../../projects/exui-common-lib/src/lib/services/manage-session/manage-session.services.ts","../../../projects/exui-common-lib/src/lib/services/timeout-notifications/timeout-notifications.service.ts","../../../projects/exui-common-lib/src/lib/services/role-guard/role.service.ts","../../../projects/exui-common-lib/src/lib/services/role-guard/role.guard.ts","../../../projects/exui-common-lib/src/lib/services/cookie/cookie.service.ts","../../../projects/exui-common-lib/src/lib/services/loading/loading.service.ts","../../../projects/exui-common-lib/src/lib/services/filter/filter.service.ts","../../../projects/exui-common-lib/src/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.ts","../../../projects/exui-common-lib/src/lib/services/ref-data/ref-data.service.ts","../../../projects/exui-common-lib/src/lib/services/public-api.ts","../../../projects/exui-common-lib/src/lib/components/generic-filter/generic-filter-utils.ts","../../../projects/exui-common-lib/src/lib/services/storage/session-storage/session-storage.service.ts","../../../projects/exui-common-lib/src/lib/services/find-person/find-person.service.ts","../../../projects/exui-common-lib/src/lib/components/find-person/find-person.component.html","../../../projects/exui-common-lib/src/lib/components/find-person/find-person.component.ts","../../../projects/exui-common-lib/src/lib/services/locations/location.service.ts","../../../projects/exui-common-lib/src/lib/components/search-location/search-location.component.html","../../../projects/exui-common-lib/src/lib/components/search-location/search-location.component.ts","../../../projects/exui-common-lib/src/lib/components/find-location/find-location.component.html","../../../projects/exui-common-lib/src/lib/components/find-location/find-location.component.ts","../../../projects/exui-common-lib/src/lib/services/task-name/task-name.service.ts","../../../projects/exui-common-lib/src/lib/components/find-task-name/find-task-name.component.html","../../../projects/exui-common-lib/src/lib/components/find-task-name/find-task-name.component.ts","../../../projects/exui-common-lib/src/lib/components/search-service/search-service.component.html","../../../projects/exui-common-lib/src/lib/components/search-service/search-service.component.ts","../../../projects/exui-common-lib/src/lib/components/find-service/find-service.component.html","../../../projects/exui-common-lib/src/lib/components/find-service/find-service.component.ts","../../../projects/exui-common-lib/src/lib/pipes/capitalize/capitalize.pipe.ts","../../../projects/exui-common-lib/src/lib/components/generic-filter/generic-filter.component.html","../../../projects/exui-common-lib/src/lib/components/generic-filter/generic-filter.component.ts","../../../projects/exui-common-lib/src/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.ts","../../../projects/exui-common-lib/src/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/directives/remove-host.directive.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/util/helpers/html-templates.helper.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.html","../../../projects/exui-common-lib/src/lib/components/invite-user-permissions/invite-user-permission.component.ts","../../../projects/exui-common-lib/src/lib/components/invite-user-permissions/invite-user-permission.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.ts","../../../projects/exui-common-lib/src/lib/components/invite-user-form/invite-user-form.component.ts","../../../projects/exui-common-lib/src/lib/components/invite-user-form/invite-user-form.component.html","../../../projects/exui-common-lib/src/lib/components/loading-spinner/loading-spinner.component.ts","../../../projects/exui-common-lib/src/lib/components/loading-spinner/loading-spinner.component.html","../../../projects/exui-common-lib/src/lib/services/case-sharing-state/case-sharing-state.service.ts","../../../projects/exui-common-lib/src/lib/components/selected-case-confirm/selected-case-confirm.component.html","../../../projects/exui-common-lib/src/lib/components/selected-case-confirm/selected-case-confirm.component.ts","../../../projects/exui-common-lib/src/lib/components/selected-case/selected-case.component.html","../../../projects/exui-common-lib/src/lib/components/selected-case/selected-case.component.ts","../../../projects/exui-common-lib/src/lib/components/selected-case-list/selected-case-list.component.html","../../../projects/exui-common-lib/src/lib/components/selected-case-list/selected-case-list.component.ts","../../../projects/exui-common-lib/src/lib/components/service-message/service-message.component.html","../../../projects/exui-common-lib/src/lib/components/service-message/service-message.component.ts","../../../projects/exui-common-lib/src/lib/components/service-messages/service-messages.component.html","../../../projects/exui-common-lib/src/lib/components/service-messages/service-messages.component.ts","../../../projects/exui-common-lib/src/lib/components/share-case-confirm/share-case-confirm.component.html","../../../projects/exui-common-lib/src/lib/components/share-case-confirm/share-case-confirm.component.ts","../../../projects/exui-common-lib/src/lib/components/user-select/user-select.component.html","../../../projects/exui-common-lib/src/lib/components/user-select/user-select.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.ts","../../../projects/exui-common-lib/src/lib/components/share-case/share-case.component.html","../../../projects/exui-common-lib/src/lib/components/share-case/share-case.component.ts","../../../projects/exui-common-lib/src/lib/components/tab/tab.component.html","../../../projects/exui-common-lib/src/lib/components/tab/tab.component.ts","../../../projects/exui-common-lib/src/lib/components/tc-confirm/tc-confirm.component.ts","../../../projects/exui-common-lib/src/lib/components/tc-confirm/tc-confirm.component.html","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.ts","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.html","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.ts","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.html","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/terms-and-conditions.component.html","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/terms-and-conditions.component.ts","../../../projects/exui-common-lib/src/lib/components/user-details/user-details.component.html","../../../projects/exui-common-lib/src/lib/components/user-details/user-details.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.ts","../../../projects/exui-common-lib/src/lib/components/user-list/user-list.component.html","../../../projects/exui-common-lib/src/lib/components/user-list/user-list.component.ts","../../../projects/exui-common-lib/src/lib/components/cookie-banner/cookie-banner.component.html","../../../projects/exui-common-lib/src/lib/components/cookie-banner/cookie-banner.component.ts","../../../projects/exui-common-lib/src/lib/components/pagination/pagination.component.html","../../../projects/exui-common-lib/src/lib/components/pagination/pagination.component.ts","../../../projects/exui-common-lib/src/lib/components/search-venue/search-venue.component.html","../../../projects/exui-common-lib/src/lib/components/search-venue/search-venue.component.ts","../../../projects/exui-common-lib/src/lib/components/search-judicials/search-judicials.component.html","../../../projects/exui-common-lib/src/lib/components/search-judicials/search-judicials.component.ts","../../../projects/exui-common-lib/src/lib/components/exui-main-wrapper/exui-page-wrapper.component.html","../../../projects/exui-common-lib/src/lib/components/exui-main-wrapper/exui-page-wrapper.component.ts","../../../projects/exui-common-lib/src/lib/components/write-address-inputs/write-address-inputs.component.html","../../../projects/exui-common-lib/src/lib/components/write-address-inputs/write-address-inputs.component.ts","../../../projects/exui-common-lib/src/lib/components/write-address/write-address.component.html","../../../projects/exui-common-lib/src/lib/components/write-address/write-address.component.ts","../../../projects/exui-common-lib/src/lib/directives/feature-toggle/feature-toggle.directive.ts","../../../projects/exui-common-lib/src/lib/directives/let/let.directive.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.ts","../../../projects/exui-common-lib/src/lib/exui-common-lib.module.ts","../../../projects/exui-common-lib/src/lib/gov-ui/gov-ui.service.ts","../../../projects/exui-common-lib/src/lib/gov-ui/validators/checkboxes-be-checked.validator.ts","../../../projects/exui-common-lib/src/lib/gov-ui/validators/date.validator.ts","../../../projects/exui-common-lib/src/lib/gov-ui/validators/radio-group.validator.ts","../../../projects/exui-common-lib/src/lib/gov-ui/validators/public_api.ts","../../../projects/exui-common-lib/src/lib/gov-ui/models/public_api.ts","../../../projects/exui-common-lib/src/lib/gov-ui/public_api.ts","../../../projects/exui-common-lib/src/public-api.ts","../../../projects/exui-common-lib/src/hmcts-rpx-xui-common-lib.ts"],"sourcesContent":["<h1 class=\"govuk-heading-xl\">\n {{'Accessibility statement for MyHMCTS' | rpxTranslate }} {{isEndpointMC ? 'Manage Cases' : 'Manage\nOrganisation' | rpxTranslate}}</h1>\n<p class=\"govuk-body\">{{'MyHMCTS' |rpxTranslate}} {{isEndpointMC ? 'Manage Cases' : 'Manage Organisation' |\n rpxTranslate}} {{'is used across several services. Please use links to find contact information for each\nservice.' | rpxTranslate}}</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li><a href=\"accessibility#immigration\">{{'Immigration and Asylum' | rpxTranslate}}</a></li>\n <li><a href=\"accessibility#family-public-law\">{{'Family Public Law' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#adoption\">{{'adoption' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#civil-damages\">{{'Civil Damages' | rpxTranslate}}</a></li>\n <li><a href=\"accessibility#divorce\">{{'Divorce and financial remeduies' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#civil-money-claims\">{{'Civil Money Claims' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#private-law\">{{'Private Law' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#probate\">{{'Probate' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#social-security#\">{{'Social Security and Child Support' | rpxTranslate}} </a></li>\n</ul>\n<p class=\"govuk-body\">{{'This website is run by HM Courts & Tribunals Service. We want as many people as possible to be able to use this website. For example, you should be able to:' | rpxTranslate}}</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'change colours, contrast levels and fonts using browser or device settings' | rpxTranslate}}</li>\n <li>{{'navigate most of the website using a keyboard or speech recognition software' | rpxTranslate}}</li>\n <li>{{'listen to most of the website using a screen reader (including the most recent versions of JAWS,\n NVDA and VoiceOver)' | rpxTranslate}}\n </li>\n</ul>\n<p class=\"govuk-body\">{{'We\\’ve also made the website text as simple as possible to understand.' |\nrpxTranslate}}</p>\n<p class=\"govuk-body\">\n <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://mcmw.abilitynet.org.uk/\">{{'AbilityNet' |\n rpxTranslate}}</a> {{'has advice on making your device easier to use if you have a disability.' |\n rpxTranslate}}\n</p>\n\n<h2 class=\"govuk-heading-l\">{{'How accessible this website is' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'We know some parts of the website are not fully accessible:' | rpxTranslate}}</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'some pages can\\'t be zoomed in to 400% without content overlapping' | rpxTranslate}}</li>\n <li>{{'some page titles aren\\'t page specific' | rpxTranslate}}</li>\n <li>{{'it may be difficult to navigate between pages' | rpxTranslate}}</li>\n <li>{{'some headings and labels aren\\'t specific enough' | rpxTranslate}}</li>\n <li>{{'some PDFs may not be fully accessible to a screen reader' | rpxTranslate}}</li>\n <li>{{'some buttons may not communicate collapsed status on mobile' | rpxTranslate}}</li>\n</ul>\n\n<h2 class=\"govuk-heading-l\">{{'Feedback and contact information' | rpxTranslate }}</h2>\n<p class=\"govuk-body\">If you're a legal professional and need information on this website\nin a different format like accessible PDF, large print, easy read, audio recording or braille, you can:</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>email: <a href=\"mailto:HMCTSforms@justice.gov.uk\">HMCTSforms&#64;justice.gov.uk</a></li>\n <li>call the service you require, as listed below.</li>\n</ul>\n<h3 class=\"govuk-heading-l\" id=\"adoption\">{{'Adoption' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 01634 887900' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"civil-damages\">{{'Civil Damages Service' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 123 1372' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"divorce\">{{'Divorce and Financial Remedy' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 303 0642' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"family-public-law\">{{'Family Public Law' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0330 808 4424' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"immigration\">{{'Immigration and Asylum Chamber' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 123 1711' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"civil-money-claims\">{{'Online Civil Money Claims' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 123 7050' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"private-law\">{{'Private Law' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 323 0185' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"probate\">{{'Probate' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 303 0648' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"social-security\">{{'Social Security and Child Support' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 123 1142' | rpxTranslate}}</li></ul>\n<p class=\"govuk-body\">{{'We\\'ll consider your request and get back to you in 10 working days.' | rpxTranslate}}\n</p>\n@if (isEndpointMC) {\n <p class=\"govuk-body\">\n {{'If you are member of HMCTS staff or the Judiciary speak to your line manager or equivalent in the first instance.' | rpxTranslate}}</p>\n}\n\n<h2 class=\"govuk-heading-l\">{{'Reporting accessibility problems with this website' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'We\\'re always looking to improve the accessibility of this website. If you\\'re a legal\n professional and find any problems not listed on this page or think we’re not meeting accessibility\nrequirements, contact:' | rpxTranslate}}</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>\n email: <a href=\"mailto:customer.service@justice.gov.uk\">customer.service&#64;justice.gov.uk</a>\n </li>\n <li>call the service you require as listed above.</li>\n</ul>\n<p class=\"govuk-body\">{{'We\\'ll consider your request and get back to you in 10 working days.' | rpxTranslate}}\n <p class=\"govuk-body\">{{'If you are member of HMCTS staff or the Judiciary speak to your line manager or\n equivalent in the first instance.' | rpxTranslate}}</p>\n\n <h2 class=\"govuk-heading-l\">{{'Enforcement procedure' | rpxTranslate}}</h2>\n <p class=\"govuk-body\">{{'The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public\n Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility\n regulations’).' | rpxTranslate}} </p>\n <p class=\"govuk-body\">{{'If you\\’re not happy with how we respond to your complaint,' | rpxTranslate}}\n <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.equalityadvisoryservice.com/\">{{'contact the\n Equality Advisory and Support Service (EASS).' | rpxTranslate}}</a>\n </p>\n\n <h2 class=\"govuk-heading-l\">{{'Technical information about this website\\’s accessibility' | rpxTranslate}}</h2>\n <p class=\"govuk-body\">{{'HM Courts & Tribunals Service is committed to making its website accessible, in accordance with the Public\n Sector Bodies (Websites and Mobile Applications) (No.2) Accessibility Regulations 2018.' | rpxTranslate}}</p>\n\n <h2 class=\"govuk-heading-l\">{{'Compliance Status' | rpxTranslate}}</h2>\n <p class=\"govuk-body\">{{'This website is partially compliant with the ' | rpxTranslate}}<a target=\"_blank\"\n href=\"https://www.w3.org/TR/WCAG22/\">\n {{'Web Content Accessibility Guidelines version 2.2 ' | rpxTranslate}}</a>\n {{'to AA standard, due to the non-compliances listed below.' | rpxTranslate}}\n</p>\n\n<h2 class=\"govuk-heading-l\">{{'Non-accessible content' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'The content listed below is non-compliant for the following reasons.' | rpxTranslate}}\n</p>\n<h2 class=\"govuk-heading-l\">{{'Non-accessible content' | rpxTranslate}}</h2>\n<h3 class=\"govuk-heading-l\">{{'Non-compliance with the accessibility regulations' | rpxTranslate}}</h3>\n<p class=\"govuk-body\">{{'The content listed below is non-compliant for the following reasons.' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'There were navigation lists present that were not marked up correctly and so assistive technology may\nhave difficulty reading the content.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A) and 4.1.2 Name, Role, Value (Level A).' | rpxTranslate}}\n</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'For screen reader users, it will be difficult for the user to distinguish which form\nelements are related to each document as they don’t have a shared or common label.' | rpxTranslate}}</span>{{' This fails WCAG\nv2.2, 1.3.1 Info and Relationships (Level A) and 3.3.2 Labels or Instructions (Level A).' | rpxTranslate}}\n</p>\n<p class=\"govuk-body\">\n <span class=\"govuk-!-font-weight-bold\">{{'Links were found that did not have a distinct meaning which could mean that screen reader users may be\n unable to determine their purpose.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 2.4.4 Link Purpose (In Context) (Level A) and 2.4.9\nLink Purpose (Link Only) (Level AAA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'A string of text that visually named an element was not part of the programmatic accessible\n name. When using assistive technology, it may be problematic for the user to interact with the element using their\nvoice.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 2.5.3 Label in Name (Level A). ' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'A submit button is not provided for a text input element so entering text into the input used\n to search documents causes the documents context to change automatically, which can be disruptive for assistive\ntechnology users.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 3.2.2 On Input (Level A). ' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Visual headings were found, but they were not marked up with a semantic heading tag. Using Assistive\n technology, a screen reader user may not be aware that the text is a heading, which means they may struggle to navigate\nusing headings and understand the correct hierarchy of the content.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Active elements are nested which can cause random results from assistive technology.\n This means users might be unable to accurately interact with the content or they could be missing content.\n' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 4.1.2 Name, Role, Value (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'The state of content that can be expanded or collapsed is not announced or not correctly announced to screen reader users,\nthis means screen reading software will only announce a collapsed state.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 4.1.2 Name, Role, Value (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Asterisks are used to denote a required field. The asterisk is not clearly communicated to enable a user to understand\nthat it denotes a required field.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A) and 3.3.2 Labels or Instructions (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some headings are contained within a description list which may cause some confusion to a screen reader user.\n' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'When a user chooses an option from a search field, the chosen option will be added to the service webpage.\n Users can remove the options by activating an interactive element. When using assistive technology the user may not know that the new interactive\nelement is used to remove the added option as it does not have a descriptive alternative.' | rpxTranslate}}</span>{{' This fails WCAG v2.2 1.3.1 Info and Relationships (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Typing into the text input causes a list box to appear and show options that the user can choose from. If the user is using keyboard inputs to navigate\nthe service webpage, the user will have difficulties selecting an option.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 2.1.1 Keyboard (Level A) and 2.1.3 Keyboard\n(No Exception) (Level AAA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Using mouse inputs to activate the tab elements will cause the service webpage contents to change.\nIt is not possible for a keyboard-only user to navigate or activate the tabs.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A),\n2.1.1 Keyboard (Level A), 4.1.2 Name, Role, Value Level (A) and 2.1.3 Keyboard (No Exception) (Level AAA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Headings on the page were found to not follow a hierarchical heading structure which means assistive technology may\nstruggle to communicate a logical heading order to the user.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some images were decorative but the descriptions were not accurate for assistive technology users.\n' | rpxTranslate}}</span>{{' This fails WCAG v2.2 1.1.1 Non-text Content (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Elements are present that do not contain a descriptive name or label for users. Assistive technology users may not be able\nto accurately identify their differences.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 2.4.6 Headings and Labels (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Assistive technology does not announce the important messages shown if there are no results and this means that a screen\nreader user might not know that there are no results available.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 4.1.3 Status Messages (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some of the colour combinations found on the website are low contrast and are likely\nto be difficult for people with low vision to distinguish.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.11 Non-text Contrast\n(Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Content is lost or obscured on the page when the browser dimensions are set to 1280 x\n 1024 and magnified to 400. The user will need to modify their settings and this could make it difficult to\nread the service webpage.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.10 Reflow (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Text on the website cannot be resized to 200% without loss of content/ functionality.\n' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.4 Resize text (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some of the text colour combinations found on the site do not meet contrast guidelines.\n The change in colour may make it difficult for the user to read the text as the contrast is less than the\nminimum required.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.3 Contrast (Minimum) (Level AA) and 1.4.6 Contrast (Enhanced)\n(Level AAA). ' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Modifying the text spacing to make the text easier to read will cause the ‘Zoom in’\n button to be obscured. The user will need to change their settings and this could make the text difficult to\nread.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.12 Text Spacing (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Abbreviations are not expanded in the first instance or explained and may be difficult\nfor users with cognitive impairments to understand.' | rpxTranslate}}</span>{{' This fails WCAG v2.2 3.1.4 Abbreviations (Level AAA). ' |\nrpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'There are elements which open in a new window without informing the users first. If the\n user is not aware a new window/ tab will open, the user may be disoriented and have difficulties returning to\nthe previous page.' | rpxTranslate}}</span>{{' This fails WCAG v2.2 3.2.5 Change on Request (Level AAA).' | rpxTranslate}}\n</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some links were not descriptive enough for Assistive technology to convey the context\nto the user.' | rpxTranslate}}</span>{{' This fails WCAG v2.2 2.4.9 Link Purpose (Link Only) (Level AAA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Text colour combinations found on the service do not meet enhanced contrasts and are\nlikely to be difficult for people with vision colour deficiencies to read.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.6\nContrast (Enhanced) (Level AAA).' | rpxTranslate}}</p>\n\n<ng-container>\n <h3 class=\"govuk-heading-m\">{{'Disproportionate burden on accessibility regulations' | rpxTranslate}}</h3>\n <p class=\"govuk-body\">{{'There are areas which have been classified as disproportionate burden.' | rpxTranslate}}</p>\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'We have identified some issues which we believe to constitute a disproportionate burden. One issue is around mobile view support and another is\n around having multiple ways to navigate the service. Both issues stem from business decisions taken at the very beginning of the development process\n for Expert UI, a tool for professional users. We know from Google Analytics stats that there are very low numbers of users attempting to use Manage Case from mobile phones.\n To resolve both issues would take a substantial UI design effort to build a new UI concept, a large technical design effort to create and a vast\n development effort to implement and test the solution, and for these reasons we think disproportionate burden is relevant. ' | rpxTranslate}}</li>\n </ul>\n <p class=\"govuk-body\">{{ 'A further review will take place in 12 months to review the current position' | rpxTranslate}}</p>\n</ng-container>\n\n<h3 class=\"govuk-heading-m\">{{'Content that’s not within the scope of the accessibility regulations' | rpxTranslate }}</h3>\n<p class=\"govuk-body\">{{'PDFs and other documents' | rpxTranslate}}</p>\n<p class=\"govuk-body\">{{'The accessibility regulations do not require us to fix PDFs or other documents\npublished before 23 September 2018 if they’re not essential to providing our services.' | rpxTranslate}}</p>\n<p class=\"govuk-body\">{{'Any new PDFs or Word documents we publish will meet accessibility standards.' |\nrpxTranslate}}</p>\n\n<h2 class=\"govuk-heading-l\">{{'What we\\’re doing to improve accessibility' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'We\\’re committed to ensuring our services are accessible to all our users\nand that they comply with level AA of the Web Content Accessibility Guidelines – WCAG 2.2.' | rpxTranslate}}</p>\n<p class=\"govuk-body\">{{'We\\’re currently working through the issues from an external audit carried out by the Digital\n Accessibility Centre (DAC) which we expect to fix by Jan 2026.' | rpxTranslate}}\n</p>\n\n<h2 class=\"govuk-heading-l\">{{'Preparation of this accessibility statement' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'This statement was prepared on 16 September 2019. It was last reviewed on 26 March 2025.' | rpxTranslate}}</p>\n<p class=\"govuk-body\">{{'This website was tested by' | rpxTranslate}}\n <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://digitalaccessibilitycentre.org/\">{{'Digital Accessibility Centre (DAC)' | rpxTranslate}}</a> {{' in 19 February 2024' | rpxTranslate}}\n</p>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'xuilib-accessibility',\n templateUrl: './accessibility.component.html',\n styleUrls: ['./accessibility.component.scss'],\n standalone: false\n})\n\nexport class AccessibilityComponent implements OnInit {\n public isEndpointMC: boolean;\n constructor() {\n }\n\n public ngOnInit(): void {\n const urlRef = window.location.href;\n // pointing to MC & preview. May need to refactor this if\n // more applications added than MO & MC\n if (urlRef.includes('manage-case')\n || urlRef.includes('xui-webapp')\n && !urlRef.includes('xui-mo-webapp')) {\n this.isEndpointMC = true;\n } else {\n this.isEndpointMC = false;\n }\n }\n}\n","@if (isFunctional) {\n <div class=\"xui-checkbox-list govuk-checkboxes govuk-checkboxes--small\">\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 @for (item of options; track item; let i = $index) {\n <div 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 }\n </div>\n </div>\n}\n","import { AfterContentChecked, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'xuilib-checkbox-list',\n templateUrl: 'checkbox-list.component.html',\n styleUrls: ['checkbox-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class CheckboxListComponent<T> implements OnChanges, AfterContentChecked {\n\n constructor(private readonly ref: ChangeDetectorRef) {\n }\n\n /**\n * The options to show checkboxes for. Note that the type\n * within the array corresponds to the one for the component.\n */\n @Input() public options: T[] = [];\n\n /**\n * The initially-selected values to use. When the component renders,\n * the checkboxes that correspond to these values will be checked.\n */\n @Input() public preselection: T[];\n\n /**\n * This function is invoked for each item to display the appropriate\n * label beside the checkbox.\n */\n @Input() public labelFunction: (item: T) => string;\n\n /**\n * Whenever the selection changes, this event fires. What is dispatched\n * is the current selection, also retrievable from .selection.\n */\n @Output() public selectionChange: EventEmitter<T[]> = new EventEmitter<T[]>();\n\n /**\n * The currently selected values.\n * Note: This array is immutable, which means pushing and popping will\n * have no effect on which checkboxes are selected.\n */\n @Input()\n public get selection(): T[] {\n return this.pSelection ? [ ...this.pSelection ] : [];\n }\n public set selection(value: T[]) {\n this.pSelection = this.getSelection(value);\n }\n private pSelection: T[];\n private pSelectionMade: boolean;\n\n /**\n * Indicates whether or not all of the items are selected.\n */\n public get allSelected(): boolean {\n return this.selection.length === this.options.length;\n }\n\n // Catch any changes to any of the Input() properties.\n public ngOnChanges(): void {\n // Set up the pre-selected values.\n this.setupPreselection();\n // Now check the current selection to make sure it's valid.\n this.checkSelection();\n }\n\n // checks the data projected into the component\n public ngAfterContentChecked(): void {\n this.ref.detectChanges();\n }\n\n /**\n * Indicates whether or not there are any options to render.\n */\n public get hasOptions(): boolean {\n return this.options && this.options.length > 0;\n }\n\n public get isFunctional(): boolean {\n return this.labelFunction && this.hasOptions;\n }\n\n /**\n * Indicates whether or not an item is part of the current selection.\n * @param item The item in question.\n */\n public isSelected(item: T): boolean {\n return this.selection.includes(item);\n }\n\n /**\n * If an item is already selected, it will be removed from the selection.\n * Otherwise, it will be added to the selection..\n */\n public toggleItemSelection(item: T): void {\n if (this.pSelection === undefined) {\n // If we don't have any selection at all yet, make it just this item.\n this.pSelection = [ item ];\n } else if (this.isSelected(item)) {\n // If this item is already selected, remove it.\n this.pSelection.splice(this.pSelection.indexOf(item), 1);\n } else {\n // If it's not selected, add it.\n this.pSelection.push(item);\n }\n\n // Indicate that the user has now made an active selection.\n this.pSelectionMade = true;\n\n // Now emit an event so any containers know about the change to selection.\n this.selectionChange.emit(this.selection);\n }\n\n /**\n * If all of the items are selected, deselect them all.\n * Otherwise, select them all.\n */\n public toggleSelectAll(): void {\n // Do we already have them all selected?\n if (this.allSelected) {\n // If so, clear out the selection.\n this.pSelection = [];\n } else {\n // If not, select all of them.\n this.pSelection = [ ...this.options ];\n }\n\n // Indicate that the user has now made an active selection.\n this.pSelectionMade = true;\n\n // Now emit an event so any containers know about the change to selection.\n this.selectionChange.emit(this.pSelection);\n }\n\n /**\n * Use the labelFunction to determine whether the options include the item.\n * This is to handle partial objects being set in the pre-selection where\n * they may not be available by the same mechanism as the options.\n *\n * @param items The array of items in which to look for the item.\n * @param item The item to check in the options.\n */\n public containsItem(items: T[], item: T): boolean {\n if (this.isFunctional) {\n const itemLabel: string = this.labelFunction(item);\n return items.some(opt => {\n return this.labelFunction(opt) === itemLabel;\n });\n }\n return false;\n }\n\n // Simple utility function to indicate whether there is an active preselection.\n private get hasPreselection(): boolean {\n return this.preselection && this.preselection.length > 0;\n }\n\n // Set up the initially selected values.\n // NOTE: If the preselection changes and the user has NOT made an active selection,\n // the current selection will also be changed. As soon as the user has made an\n // active selection, however, the preselection is no longer relevant.\n private setupPreselection(): void {\n if (this.isFunctional && !this.pSelectionMade && this.hasPreselection) {\n let changed = true; // Assume this is a change.\n if (this.pSelection) {\n // If there is no difference between the arrays, this is not a change.\n changed = this.pSelection.filter((item: T) => {\n return !this.containsItem(this.preselection, item);\n }).length > 0;\n }\n\n // If this is a change, update the selection and then emit an\n // event so any containers know about the change to selection.\n if (changed) {\n this.pSelection = this.getSelection(this.preselection);\n this.selectionChange.emit(this.selection);\n }\n }\n }\n\n private getSelection(items: T[]): T[] {\n return [\n ...this.options.filter(opt => {\n return this.containsItem(items, opt);\n })\n ];\n }\n\n // The options have changed. Let's make sure the selection\n // doesn't contain anything that's not currently an option.\n private checkSelection(): void {\n if (this.isFunctional) {\n // Check which of the currently selected items are actually options.\n const allowedSelection: T[] = this.selection.filter((item: T) => {\n return this.containsItem(this.options, item);\n });\n\n // If any have dropped out, change the selection.\n if (allowedSelection.length !== this.selection.length) {\n this.pSelection = [ ...allowedSelection ];\n\n // And emit an event so any containers know about the change to selection.\n this.selectionChange.emit(this.selection);\n }\n }\n }\n}\n","@if (data) {\n <div class=\"contact-details\">\n @if (data.title) {\n <h3 class=\"govuk-heading-m\">{{ data.title }}</h3>\n }\n @if (data.badgeText) {\n <p><span [className]=\"'hmcts-badge ' + data.badgeColour\">{{ data.badgeText }}</span></p>\n }\n @if (data.email) {\n <div class=\"email\"><span class=\"govuk-!-font-weight-bold\">{{'Email:' | rpxTranslate}} </span> <a href=\"mailto:{{ data.email }}\">{{ data.email }}</a></div>\n }\n @if (data.contactDetails) {\n <div class=\"contactDetails\"><span class=\"govuk-!-font-weight-bold\">{{'Contact:' | rpxTranslate}} </span> <a rel=\"external\" href=\"{{ data.contactDetails.contactLink }}\">{{ data.contactDetails.name }}</a></div>\n }\n @if (data.phone) {\n <div class=\"phone\"><span class=\"govuk-!-font-weight-bold\">{{'Phone:' | rpxTranslate}} </span>{{ data.phone }}</div>\n }\n @if (data.openingTimes) {\n <div class=\"opening-times\"><span class=\"govuk-!-font-weight-bold\">{{'Opening times:' | rpxTranslate }} </span>{{ data.openingTimes}}</div>\n }\n </div>\n}","import { Component, Input } from '@angular/core';\nimport { ContactDetailsDataModel } from '../../models';\n\n@Component({\n selector: 'xuilib-contact-details',\n templateUrl: './contact-details.component.html',\n styleUrls: ['contact-details.component.scss'],\n standalone: false\n})\nexport class ContactDetailsComponent {\n\n @Input() public data: ContactDetailsDataModel;\n\n constructor() {\n }\n}\n","export enum DateBadgeColour {\n RED = 'hmcts-badge--red',\n ORANGE = 'hmcts-badge--orange',\n GREEN = 'hmcts-badge--green',\n}\n\nexport const SECONDS_IN_A_DAY: number = 60 * 60 * 24;\n","@if (dueDate) {\n <span class=\"due-date hmcts-badge\" [ngClass]=\"badge\"\n [title]=\"accessibleLabel | rpxTranslate\" [attr.aria-label]=\"accessibleLabel | rpxTranslate\">\n {{label | rpxTranslate}}\n </span>\n}","import { formatDate } from '@angular/common';\nimport { AfterContentChecked, ChangeDetectorRef, Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\n\nimport { DateBadgeColour, SECONDS_IN_A_DAY } from '../../models/due-date.model';\n\n@Component({\n selector: 'xuilib-due-date',\n templateUrl: 'due-date.component.html',\n styleUrls: ['due-date.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class DueDateComponent implements OnChanges, AfterContentChecked {\n\n constructor(private readonly ref: ChangeDetectorRef) {\n }\n\n\n /**\n * The due date to use as the basis for rendering this component. It is\n * compared to the current date and displayed accordingly.\n */\n @Input() public dueDate: Date;\n\n /**\n * This should be considered HIGH urgency if there are fewer than this\n * many days until the due date.\n * * Set to 0 if you want it to show HIGH if it was due yesterday.\n * * Set to 1 if you want it to show HIGH if it's due today.\n * * Set to 2 if you want it to show HIGH if it's due tomorrow.\n *\n * Defaults to 0 (ZERO), which means it won't show as HIGH urgency until the\n * due date is in the past.\n *\n * NOTE: If this is higher than the mediumUrgencyCutoff value, MEDIUM urgency\n * will never be shown.\n *\n * ALSO NOTE: Anything overdue is automatically considered HIGH urgency.\n */\n @Input() public highUrgencyCutoff: number = 0; // Default\n\n /**\n * This should be considered MEDIUM urgency if there are fewer than this\n * many days until the due date.\n * * Set to 1 if you want it to show MEDIUM if it's due today.\n * * Set to 2 if you want it to show MEDIUM if it's due tomorrow.\n * * Set to 3 if you want it to show MEDIUM if it's due the day after tomorrow.\n *\n * Defaults to 2, which means it won't show as MEDIUM urgency unless the\n * due date is today or tomorrow.\n *\n * NOTE: If this is lower than the highUrgencyCutoff value, MEDIUM urgency\n * will never be shown.\n */\n @Input() public mediumUrgencyCutoff: number = 2;\n\n // The HMCTS badge class, used for colouration.\n private pBadge: string;\n public get badge(): string {\n return this.pBadge;\n }\n\n // The textual label to display in the component.\n private pLabel: string;\n public get label(): string {\n return this.pLabel;\n }\n\n // The accessible label, which is also used for the tooltip.\n private pAccessibleLabel: string;\n public get accessibleLabel(): string {\n return this.pAccessibleLabel;\n }\n\n // How many days the dueDate varies from today.\n private pDaysDiff: number;\n public get daysDiff(): number {\n return this.pDaysDiff;\n }\n\n // Catch any changes to any of the Input() properties.\n public ngOnChanges(): void {\n this.handleInputChanges();\n }\n\n // checks the data projected into the component\n public ngAfterContentChecked(): void {\n this.ref.detectChanges();\n }\n\n // Set up the label, urgency class, and accessibility fields.\n private handleInputChanges() {\n // If we don't have a dueDate, skip out of here.\n if (!this.dueDate) {\n return;\n }\n\n // How many days from today is the due date?\n // Already happened means daysDiff > 0;\n // Today means daysDiff = 0;\n // Yet to come means daysDiff < 0;\n this.pDaysDiff = this.getDaysDifference(this.dueDate, new Date());\n\n // Is it overdue?\n if (this.daysDiff > 0) {\n this.pBadge = DateBadgeColour.RED;\n const daysLabel = this.daysDiff === 1 ? 'day' : 'days';\n this.pLabel = `+${this.daysDiff} ${daysLabel}`;\n this.pAccessibleLabel = `This task is ${this.daysDiff} ${daysLabel} past its due date`;\n } else {\n // Special label for \"Today\".\n if (this.daysDiff === 0) {\n this.pLabel = 'TODAY';\n this.pAccessibleLabel = 'This task is due to be completed today';\n } else {\n this.pLabel = `${formatDate(this.dueDate, 'd MMM', 'en-GB')}`;\n this.pAccessibleLabel = `This task is due to be completed by ${formatDate(this.dueDate, 'd MMMM y', 'en-GB')}`;\n }\n if (this.daysDiff + this.highUrgencyCutoff > 0) {\n this.pBadge = DateBadgeColour.RED;\n } else if (this.daysDiff + this.mediumUrgencyCutoff > 0) {\n this.pBadge = DateBadgeColour.ORANGE;\n } else {\n this.pBadge = DateBadgeColour.GREEN;\n }\n }\n }\n\n // This will return the difference between two dates.\n // If fromDate is BEFORE toDate, it will be a positive number.\n // If fromDate is AFTER toDate, it will be a negative number.\n private getDaysDifference(fromDate: Date, toDate: Date): number {\n const fromEpoch = fromDate.getTime();\n const toEpoch = toDate.getTime();\n const diffSecs = Math.floor((toEpoch - fromEpoch) / 1000);\n return Math.floor(diffSecs / SECONDS_IN_A_DAY);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { FeatureUser } from '../../models/feature-user';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeatureToggleService {\n // tslint:disable-next-line: variable-name\n public initialize(_user: FeatureUser, _clientId: string): void {\n throw new Error('Not implemented');\n }\n // tslint:disable-next-line: variable-name\n public isEnabled(_feature: string): Observable<boolean> {\n throw new Error('Not implemented');\n }\n // tslint:disable-next-line: variable-name\n public getValue<R>(_key: string, _defaultValue: R): Observable<R> {\n throw new Error('Not implemented');\n }\n\n // tslint:disable-next-line: variable-name\n public getValueOnce<R>(_key: string, _defaultValue: R): Observable<R> {\n throw new Error('Not implemented');\n }\n\n // tslint:disable-next-line: variable-name\n public getValueSync<R>(feature: string, defaultValue: R): R {\n throw new Error(`Not implemented ${feature}:${defaultValue}`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, UrlTree } from '@angular/router';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { FeatureToggleService } from './feature-toggle.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeatureToggleGuard {\n\n public constructor(\n private readonly featureToggleService: FeatureToggleService,\n private readonly router: Router\n ) {}\n\n // TEST-TODO\n /**\n * Usage: Add the FeatureToggleGuard as the Guard for a route, and provide the following\n * in the data array for the route:\n * - needsFeaturesEnabled: An array of feature keys that need to be enabled for this route\n * - featureDisabledRedirect: the URL to redirect to when the this route is not accessible due to disabled features\n * - expectFeatureEnabled: Sets whether a route should be enabled/disabled based on whether feature is present\n * @param route Automatically provided by Angular\n * Note: Per Angular 18, when a guard returns a UrlTree as a redirect,\n * the redirecting navigation will now use replaceUrl if the initial navigation was also using the replaceUrl option.\n */\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> {\n return combineLatest([...(route.data.needsFeaturesEnabled as string[]).map(\n feature => this.featureToggleService.getValueOnce<boolean>(feature, true)\n )]).pipe(\n map(featureStatuses => featureStatuses.every(status => status)),\n map(status => (route.data.expectFeatureEnabled !== false && status) || (route.data.expectFeatureEnabled === false && !status) || this.router.parseUrl(route.data.featureDisabledRedirect as string))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { initialize, LDClient, LDContext } from 'launchdarkly-js-client-sdk';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { FeatureUser } from '../../models/feature-user';\nimport { FeatureToggleService } from './feature-toggle.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LaunchDarklyService implements FeatureToggleService {\n private client: LDClient;\n private readonly ready: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private readonly features: Record<string, BehaviorSubject<any>> = {};\n private context: LDContext = { kind: 'user', anonymous: true };\n private clientId: string = '';\n\n public initialize(user: FeatureUser = { anonymous: true }, clientId: string): void {\n this.ready.next(false);\n this.context = { kind: 'user', ...user };\n this.clientId = clientId;\n this.client = initialize(this.clientId, this.context, { useReport: true });\n this.client.on('ready', () => {\n this.client.identify(this.context).then(() => this.ready.next(true));\n });\n\n this.client.on('error', (err: any) => {\n console.error('LaunchDarkly client network error:', err);\n // Allow the app to proceed by emitting true, so subscribers are not blocked\n this.ready.next(true);\n });\n }\n\n public isEnabled(feature: string, defaultValue: boolean = false): Observable<boolean> {\n return this.getValue<boolean>(feature, defaultValue);\n }\n\n public getArray<R = any>(feature: string): Observable<R[]> {\n return this.getValue<R[]>(feature, []);\n }\n\n // Note that this function always emits its default value first, which can lead to unexpected results\n public getValue<R>(feature: string, defaultValue: R): Observable<R> {\n if (!this.features.hasOwnProperty(feature)) {\n this.features[feature] = new BehaviorSubject<R>(defaultValue);\n this.ready.pipe(\n filter((ready) => ready),\n map(() => this.client.variation(feature, defaultValue))\n ).subscribe((value) => {\n this.features[feature].next(value);\n this.client.on(`change:${feature}`, (val: R) => {\n this.features[feature].next(val);\n });\n });\n }\n return this.features[feature].pipe(\n distinctUntilChanged()\n );\n }\n\n /**\n * This method returns an observable that will only get the state of the feature toggle\n * once. It calls the LD SDK directly, and should only be used in circumstances where\n * only one value should be emitted, that value coming directly from LD. This will likely\n * only apply for Guards, and should be used only when absolutely necessary.\n * @see getValue for regular usage.\n * @param feature string\n * @param defaultValue R\n */\n public getValueOnce<R>(feature: string, defaultValue: R): Observable<R> {\n return this.ready.pipe(\n filter((ready) => ready),\n map(() => this.client.variation(feature, defaultValue))\n );\n }\n\n public getValueSync<R>(feature: string, defaultValue: R): R {\n return this.client.variation(feature, defaultValue);\n }\n}\n","export enum AddressMessageEnum {\n NO_OPTION_SELECTED = 'Select an option',\n NO_STREET_SELECTED = 'Enter building and street',\n NO_CITY_SELECTED = 'Enter town or city',\n NO_COUNTRY_SELECTED = 'Enter country',\n NO_POSTCODE_SELECTED = 'Enter a valid postcode',\n SELECT_ADDRESS = 'Select an address',\n INVALID_POSTCODE = 'Enter valid postcode'\n }","import { AddressModel } from '.';\n\nexport class AddressOption {\n public description: string;\n public value: AddressModel;\n\n constructor (addressModel: AddressModel, description: string) {\n if (description === null) {\n this.value = addressModel;\n this.description = this.getDescription();\n } else {\n this.description = description;\n }\n }\n\n private getDescription() {\n return this.removeInitialCommaIfPresent(\n `${this.value.addressLine1 === undefined ? '' : this.value.addressLine1}${this.prefixWithCommaIfPresent(this.value.addressLine2)}${this.prefixWithCommaIfPresent(this.value.addressLine3)}, ${this.value.postTown}`\n );\n }\n\n private prefixWithCommaIfPresent(value: string) {\n return value ? `, ${value}` : value;\n }\n\n private removeInitialCommaIfPresent(value: string) {\n return value.replace(new RegExp('^,', 'gi'), '');\n }\n}\n","// tslint:disable:variable-name\nexport class AddressModel {\n public addressLine1: string;\n public addressLine2?: string;\n public addressLine3?: string;\n public postTown: string;\n public county?: string;\n public postCode: string;\n public country: string;\n}\n","import { UserDetails } from './user-details.model';\n\nexport interface SharedCase {\n caseId: string;\n caseTitle: string;\n caseTypeId?: string;\n roles?: string[];\n sharedWith?: UserDetails[];\n pendingShares?: UserDetails[];\n pendingUnshares?: UserDetails[];\n}\n\nexport enum SharedCaseErrorMessages {\n OneCaseMustBeSelected = 'At least one case must be selected',\n NoChangesRequested = 'You have not requested any changes to case sharing',\n OnePersonMustBeAssigned = 'At least one person must be assigned to each case'\n}\n","export enum BadgeColour {\n BADGE_RED = 'hmcts-badge--red',\n BADGE_BLUE = 'hmcts-badge--blue',\n BADGE_GREEN = 'hmcts-badge--green',\n}\n\nexport interface ContactDetailsDataModel {\n title?: string;\n badgeColour?: BadgeColour;\n badgeText?: string;\n email?: string;\n phone?: string;\n openingTimes?: string;\n contactDetails?: {\n name: string;\n contactLink: string;\n }\n}\n","export class AnonymousFeatureUser {\n public anonymous: true;\n}\n\nexport class LoggedInFeatureUser {\n public key: string;\n [key: string]: any;\n public roles: string[];\n public orgId: string;\n}\n\nexport type FeatureUser = AnonymousFeatureUser | LoggedInFeatureUser;\n","import { FormGroup } from '@angular/forms';\nimport { BookingCheckType } from './location.model';\nimport { PersonRole } from './person.model';\n\nexport type FilterFieldType = 'group-title' | 'checkbox' | 'radio' | 'select' | 'find-person' | 'find-location' | 'checkbox-large' | 'find-service' | 'text-input' | 'email-input' | 'group-select' | 'nested-checkbox' | 'find-task-name';\n\nexport type FilterPersistence = 'local' | 'session' | 'memory';\n\nexport interface FilterConfigOption {\n key: string;\n label: string;\n selectAll?: boolean;\n}\n\nexport interface FilterConfig {\n id: string;\n fields: FilterFieldConfig[];\n persistence: FilterPersistence;\n applyButtonText: string;\n enableDisabledButton?: boolean;\n cancelButtonText: string;\n cancelSetting?: FilterSetting;\n showCancelFilterButton?: boolean;\n preSelectedNestedCheckbox?: number[];\n cancelButtonCallback?(): void;\n applyButtonCallback?(): void;\n copyFields?(form: FormGroup): FormGroup;\n}\n\nexport interface FilterFieldOption {\n key: string;\n label: string;\n selectAll?: true;\n}\n\nexport interface FilterFieldConfig {\n name: string;\n options: FilterConfigOption[];\n minSelected: number;\n maxSelected: number;\n type: FilterFieldType;\n minSelectedError?: string;\n maxSelectedError?: string;\n displayMaxSelectedError?: boolean;\n displayMinSelectedError?: boolean;\n emailError?: string;\n lineBreakBefore?: boolean;\n showCondition?: string;\n enableCondition?: string;\n enableAddButton?: boolean;\n enableAddLocationButton?: boolean;\n enableAddTaskNameButton?: boolean;\n changeResetFields?: string[];\n findPersonField?: string;\n findLocationField?: string;\n findTaskNameField?: string;\n domainField?: string;\n disable?: boolean;\n disabledText?: string;\n domain?: PersonRole;\n title?: string;\n titleClasses?: string;\n titleHint?: string;\n subTitle?: string;\n locationTitle?: string;\n hintText?: string;\n radioSelectionChange?: string;\n bookingCheckType?: BookingCheckType;\n placeholderContent?: string;\n maxWidth480px?: boolean;\n maxRows?: number;\n groupOptions?: GroupOptions[];\n maxlength?: number;\n defaultOption?: FilterConfigOption;\n readonly?: boolean;\n servicesField?: string;\n services?: string[];\n propertyNameFilter?: string;\n}\n\nexport interface GroupOptions {\n group: string;\n options: FilterFieldOption[];\n placeholderContent?: string;\n}\n\nexport interface FilterSetting {\n id: string;\n idamId?: string;\n reset?: boolean;\n fields: { name: string, value: any[] }[];\n}\n\nexport class RadioFilterFieldConfig implements FilterFieldConfig {\n public name: string;\n public options: { key: string, label: string}[];\n public minSelected: 1;\n public maxSelected: 1;\n public type: 'radio';\n}\n\nexport interface FilterError {\n name: string;\n error: string;\n}\n","export interface LocationModel {\n court_venue_id: string;\n site_name: string;\n court_name?: string;\n epimms_id: string;\n open_for_public?: string;\n court_type_id: string;\n court_type: string;\n region_id: string;\n region: string;\n cluster_id?: string;\n cluster_name?: string;\n court_status?: string;\n court_open_date?: string;\n closed_date?: string;\n postcode?: string;\n court_address?: string;\n phone_number?: string;\n court_location_code?: string;\n dx_address?: string;\n welsh_site_name?: string;\n welsh_court_address?: string;\n venue_name?: string;\n is_case_management_location?: string;\n is_hearing_location?: string;\n}\n\nexport interface LocationByEPIMMSModel {\n epimms_id: string;\n site_name?: string;\n court_name?: string;\n open_for_public?: string;\n region_id?: string;\n region?: string;\n cluster_id?: string;\n cluster_name?: string;\n court_status?: string;\n court_open_date?: string;\n closed_date?: string;\n postcode?: string;\n court_address?: string;\n phone_number?: string;\n court_location_code?: string;\n dx_address?: string;\n welsh_site_name?: string;\n welsh_court_address?: string;\n venue_name?: string;\n is_case_management_location?: string;\n is_hearing_location?: string;\n}\n\nexport interface LocationsByService {\n service?: string;\n serviceCode?: string;\n bookable?: boolean;\n locations: LocationByEPIMMSModel[];\n}\n\nexport enum BookingCheckType {\n NO_CHECK = 'NO_CHECK',\n BOOKINGS_AND_BASE = 'BOOKINGS_AND_BASE',\n POSSIBLE_BOOKINGS = 'POSSIBLE_BOOKINGS',\n}\n","export interface Person {\n id: string;\n name: string;\n email?: string;\n domain: string;\n knownAs?: string;\n fullName?: string;\n}\n\nexport interface JudicialUserModel {\n emailId: string;\n fullName: string;\n idamId: string;\n isJudge: string;\n isMagistrate: string;\n isPanelMember: string;\n knownAs: string;\n personalCode: string;\n surname: string;\n title: string;\n}\n\nexport interface CaseworkersByService {\n service: string;\n caseworkers: Caseworker[];\n}\n\nexport interface Caseworker {\n idamId: string;\n firstName: string;\n lastName: string;\n email: string;\n knownAs?: string;\n roleCategory: string;\n}\n\n// used as settings for filters and components\nexport enum PersonRole {\n JUDICIAL = 'Judicial',\n LEGAL_OPERATIONS = 'Legal Ops',\n ADMIN = 'Admin',\n CTSC = 'CTSC',\n ALL = 'All',\n}\n\n// Role categories used in application\nexport enum RoleCategory {\n JUDICIAL = 'JUDICIAL',\n LEGAL_OPERATIONS = 'LEGAL_OPERATIONS',\n ADMIN = 'ADMIN',\n CTSC = 'CTSC',\n PROFESSIONAL = 'PROFESSIONAL',\n CITIZEN = 'CITIZEN',\n ALL = 'ALL'\n}\n","export enum AddressType {\n DPA = 'DPA',\n UK = 'United Kingdom',\n RD06 = 'RD06'\n}\n","import { AddressModel } from '../../models';\nimport { AddressType } from './address-type.enum';\n\n/**\n * Moving all this logic here into Address Parser class, so that it\n * will be easier for us when we move this parsing logic to into\n * `Shim` java service.\n */\n export class AddressParser {\n public parse(address: any) {\n const classification = `${address.CLASSIFICATION_CODE}`;\n const addressModel = new AddressModel();\n addressModel.addressLine1 = this.parseAddressLine1(classification, address);\n addressModel.addressLine2 = this.parseAddressLine2(classification, address);\n addressModel.addressLine3 = this.parseAddressLine3(classification, address);\n addressModel.postCode = address.POSTCODE;\n addressModel.postTown = address.POST_TOWN;\n addressModel.country = AddressType.UK;\n return addressModel;\n }\n\n private parseAddressLine1(classification: string, address: any) {\n let addressLine;\n if (classification === AddressType.RD06) {\n addressLine =\n `${address.SUB_BUILDING_NAME} ${address.ORGANISATION_NAME} ${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;\n } else {\n addressLine =\n `${address.ORGANISATION_NAME}${this.prefixWithCommaIfPresent(address.BUILDING_NAME)}` +\n `${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;\n }\n return this.removeNonAddressValues(addressLine);\n }\n\n private parseAddressLine2(classification: string, address: any) {\n let addressLine;\n if (classification === AddressType.RD06) {\n addressLine = `${address.BUILDING_NAME} `;\n } else {\n addressLine =\n `${address.SUB_BUILDING_NAME} ${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;\n }\n return this.removeNonAddressValues(addressLine);\n }\n\n private parseAddressLine3(classification: string, address: any) {\n let addressLine;\n if (classification === AddressType.RD06) {\n addressLine =\n `${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;\n } else {\n addressLine =\n `${address.DEPENDENT_LOCALITY} ${address.DOUBLE_DEPENDENT_LOCALITY} ${address.DEPENDENT_THOROUGHFARE_NAME}`;\n }\n return this.removeNonAddressValues(addressLine);\n }\n\n private removeNonAddressValues(line: string) {\n line = line.replace(' null', ' ').replace('null ', ' ');\n line = this.removeUndefinedString(line);\n line = this.removeInitialComma(line);\n line = this.removeEmptySpaces(line);\n return line;\n }\n\n private removeUndefinedString(value: string) {\n return value.replace(new RegExp('undefined', 'gi'), '');\n }\n\n private removeEmptySpaces(value: string) {\n return value.replace(new RegExp(' +', 'gi'), ' ').trim();\n }\n\n private removeInitialComma(value: string) {\n return value.replace(new RegExp('^,', 'gi'), '');\n }\n\n private prefixWithCommaIfPresent(value: string) {\n return value ? `, ${value}` : value;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { of } from 'rxjs/internal/observable/of';\nimport { map } from 'rxjs/operators';\nimport { AddressModel } from '../../models';\nimport { AddressParser } from './address-parser';\nimport { AddressType } from './address-type.enum';\n\n@Injectable()\nexport class AddressService {\n\n constructor(private readonly http: HttpClient) {\n }\n\n public getAddressesForPostcode(postcode: string): Observable<AddressModel[]> {\n if (!postcode) {\n return of([]);\n }\n return this.http\n .get<any>('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined as object)\n .pipe(\n map((res) => res.results))\n .pipe(\n map(output => output ? output.map((addresses: any) =>\n this.format(new AddressParser().parse(addresses[AddressType.DPA]))\n ) : [])\n );\n }\n\n private format(addressModel: AddressModel) {\n return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));\n }\n\n private formatAddressLines(addressModel: AddressModel) {\n ['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach((value: keyof typeof addressModel) => {\n addressModel[value] = this.toCapitalCase(addressModel[value]);\n });\n return addressModel;\n }\n\n private shiftAddressLinesUp(addressModel: AddressModel) {\n if (addressModel.addressLine2 === '') {\n addressModel.addressLine2 = addressModel.addressLine3;\n addressModel.addressLine3 = '';\n }\n if (addressModel.addressLine1 === '') {\n addressModel.addressLine1 = addressModel.addressLine2;\n addressModel.addressLine2 = '';\n }\n return addressModel;\n }\n\n private toCapitalCase(sentence: string) {\n sentence = sentence.toLowerCase();\n sentence.split(' ').forEach((value) => {\n sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));\n }\n );\n return sentence;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const windowToken = new InjectionToken('Window');\nexport function windowProvider() { return window; }\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { windowToken } from '../../window';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class GoogleAnalyticsService {\n\n private readonly document: Document;\n private readonly window: Window;\n\n public googleAnalyticsKey: string;\n constructor(\n private readonly router: Router,\n private readonly title: Title,\n @Inject(windowToken) window: any,\n @Inject(DOCUMENT) document: any,\n ) {\n this.window = window as Window;\n this.document = document as Document;\n\n }\n\n public init(googleAnalyticsKey: string) {\n this.googleAnalyticsKey = googleAnalyticsKey;\n try {\n const script1 = this.document.createElement('script');\n script1.async = true;\n script1.src = `https://www.googletagmanager.com/gtag/js?id=${this.googleAnalyticsKey}`;\n this.document.head.appendChild(script1);\n\n const script2 = this.document.createElement('script');\n script2.innerHTML = `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${this.googleAnalyticsKey}', {'send_page_view': false});\n `;\n this.document.head.appendChild(script2);\n } catch (ex) {\n console.error('Error appending google analytics');\n console.error(ex);\n }\n this.listenForRouteChanges();\n }\n\n private listenForRouteChanges() {\n if (this.googleAnalyticsKey) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n (this.window as any).gtag('config', this.googleAnalyticsKey, {\n page_path: event.urlAfterRedirects,\n page_title: this.title.getTitle(),\n });\n }\n });\n }\n }\n\n public event(eventName: string, params: Record<string, any>) {\n if (typeof (window as any).gtag === 'function') {\n (this.window as any).gtag('event', eventName, params);\n } else {\n console.warn('Google Analytics is not available.');\n }\n }\n}\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { windowToken } from '../../window';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleTagManagerService {\n private readonly document: Document;\n private readonly window: Window;\n\n public googleTagManagerKey: string;\n constructor(\n private readonly router: Router,\n private readonly title: Title,\n @Inject(windowToken) window: any,\n @Inject(DOCUMENT) document: any\n ) {\n this.window = window as Window;\n this.document = document as Document;\n }\n\n public init(googleTagManagerKey: string) {\n this.googleTagManagerKey = googleTagManagerKey;\n try {\n (this.window as any).dataLayer = (this.window as any).dataLayer || [];\n (this.window as any).dataLayer.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js'\n });\n\n const script = this.document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=${this.googleTagManagerKey}`;\n this.document.head.appendChild(script);\n } catch (ex) {\n console.error('Error appending google tag manager');\n console.error(ex);\n }\n this.listenForRouteChanges();\n }\n\n private listenForRouteChanges() {\n if (this.googleTagManagerKey) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n (this.window as any).dataLayer.push({\n event: 'pageview',\n page: {\n path: event.urlAfterRedirects,\n title: this.title.getTitle()\n }\n });\n }\n });\n }\n }\n\n public virtualPageView(eventName: string, path: string, title: string, metadata?: Record<string, any>) {\n if ((this.window as any).dataLayer) {\n (this.window as any).dataLayer.push({\n event: eventName,\n page: {\n path,\n title\n },\n ...metadata\n });\n }\n }\n\n public event(eventName: string, params: Record<string, any>) {\n if ((this.window as any).dataLayer) {\n (this.window as any).dataLayer.push({\n event: eventName,\n ...params\n });\n }\n }\n}","import { Injectable } from '@angular/core';\nimport {DocumentInterruptSource, Idle, } from '@ng-idle/core';\nimport {Keepalive} from '@ng-idle/keepalive';\nimport {Observable, Subject} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map\n} from 'rxjs/operators';\nimport {IdleConfigModel} from '../../models/idle-config.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ManageSessionServices {\n private readonly appStateEmitter: Subject<{type: string, countdown?: string; isVisible?: boolean}>;\n\n constructor(\n private readonly idle: Idle,\n private readonly keepalive: Keepalive,\n ) {\n this.appStateEmitter = new Subject();\n }\n\n public init(idleConfig: IdleConfigModel): void {\n\n this.idle.setIdleName(idleConfig.idleServiceName);\n this.idle.setTimeout(idleConfig.timeout);\n\n const interrupt =\n new DocumentInterruptSource('mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll');\n this.idle.setInterrupts([interrupt]);\n\n // adding delay so that user can click on sign out before the modal shuts\n this.idle.onIdleEnd.pipe(delay(250)).subscribe(() => {\n this.appStateEmitter.next({type: 'modal', countdown: undefined, isVisible: false});\n });\n\n this.idle.onTimeout.subscribe(() => {\n this.appStateEmitter.next({type: 'signout'});\n });\n\n this.idle.onTimeoutWarning.pipe(\n map(sec => (sec > 60) ? `${Math.ceil(sec / 60)} minutes` : `${sec} seconds`),\n distinctUntilChanged()\n ).subscribe((countdown) => {\n this.appStateEmitter.next({type: 'modal', countdown, isVisible: true});\n });\n\n this.keepalive.interval(idleConfig.keepAliveInSeconds);\n this.keepalive.onPing.subscribe(() => {\n this.appStateEmitter.next({type: 'keepalive'});\n });\n const idleInSeconds = Math.floor((idleConfig.idleMilliseconds / 1000)) - idleConfig.timeout;\n this.idle.setIdle(idleInSeconds);\n this.idle.watch();\n }\n\n public appStateChanges(): Observable<any> {\n return this.appStateEmitter.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport {DocumentInterruptSource, Idle, WindowInterruptSource} from '@ng-idle/core';\nimport {Keepalive} from '@ng-idle/keepalive';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport {\n distinctUntilChanged,\n map\n} from 'rxjs/operators';\nimport {TimeoutNotificationConfig} from '../../models';\n\n/**\n * TimeoutNotificationsService\n *\n * The Timeout Notification Service allows your application to receive notifications\n * when a User is approaching the total time that a User has been idle for.\n *\n * This can be set by your application using the Timeout Notification Config object.\n *\n * Your application will then have to listen to events coming from the Timeout Notification Service,\n * and handle these events within your application.\n *\n * @see README.md for implementation details and code, on how to implement the Timeout Notification\n * Service within your application.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class TimeoutNotificationsService {\n\n private readonly subs: Subscription[] = [];\n private readonly eventEmitter: Subject<{eventType: string, readableCountdown?: string; }>;\n\n constructor(\n private readonly idle: Idle,\n private readonly keepalive: Keepalive,\n ) {\n this.eventEmitter = new Subject();\n }\n\n /**\n * Convert milliseconds to seconds.\n *\n * @param milliseconds - 1000\n * @return seconds - 1\n */\n public millisecondsToSeconds = (milliseconds: number): number => milliseconds / 1000;\n\n /**\n * Initialise\n *\n * Initialise the Timeout Notification Events.\n *\n * I made the decision not to make ' minutes' and ' seconds' configurable via input parameters -\n * As I made an assumption that any Reform team would not need to change these to 'secs, mins' or 's, m'.\n *\n * idleModalDisplayTime and totalIdleTime need to be passed in, in milliseconds.\n *\n * @see README.md for more information on TimeoutNotificationService.\n */\n public initialise(config: TimeoutNotificationConfig): void {\n\n const DOCUMENT_INTERRUPTS = 'mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll';\n\n const MINUTES = ' minutes';\n const SECONDS = ' seconds';\n\n const SIGNOUT_EVENT = 'sign-out';\n const COUNTDOWN_EVENT = 'countdown';\n const KEEP_ALIVE_EVENT = 'keep-alive';\n\n const {idleServiceName, idleModalDisplayTime, totalIdleTime} = config;\n\n this.idle.setIdleName(idleServiceName);\n\n const idleModalDisplayTimeInSeconds = this.millisecondsToSeconds(idleModalDisplayTime);\n const totalIdleTimeInSeconds = this.millisecondsToSeconds(totalIdleTime);\n\n this.idle.setTimeout(idleModalDisplayTimeInSeconds);\n\n const docInterrupts = new DocumentInterruptSource(DOCUMENT_INTERRUPTS);\n const windowInterrupts = new WindowInterruptSource(DOCUMENT_INTERRUPTS);\n this.idle.setInterrupts([docInterrupts, windowInterrupts]);\n\n this.subs.push(this.idle.onTimeout.subscribe(() => {\n this.eventEmitter.next({eventType: SIGNOUT_EVENT});\n }));\n\n this.subs.push(this.idle.onTimeoutWarning.pipe(\n map(sec => (sec > 60) ? Math.ceil(sec / 60) + MINUTES : sec + SECONDS),\n distinctUntilChanged()\n ).subscribe((countdown) => {\n this.eventEmitter.next({eventType: COUNTDOWN_EVENT, readableCountdown: countdown});\n }));\n this.subs.push(this.idle.onIdleStart.subscribe(() => console.log('You\\'ve gone idle!')));\n this.subs.push(this.idle.onIdleEnd.subscribe(() => console.log('You\\'re no longer idle!')));\n\n this.keepalive.interval(15);\n this.subs.push(this.keepalive.onPing.subscribe(() => {\n this.eventEmitter.next({eventType: KEEP_ALIVE_EVENT});\n }));\n\n const idleInSeconds = Math.floor(totalIdleTimeInSeconds) - idleModalDisplayTimeInSeconds;\n this.idle.setIdle(idleInSeconds);\n this.idle.watch();\n }\n\n public reset(): void {\n this.idle.watch();\n }\n\n public close(): void {\n this.subs.forEach(s => s.unsubscribe());\n this.idle.stop();\n this.idle.clearInterrupts();\n }\n\n /**\n * Expose the notification events, so that a 3rd party service can listen to the notifications.\n */\n public notificationOnChange(): Observable<any> {\n return this.eventEmitter.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { skipWhile } from 'rxjs/operators';\n\n// use types so we can move to stricted typing later on\nexport type Role = string;\nexport type Roles = Role[];\n\n@Injectable({\n providedIn: 'root'\n })\nexport class RoleService {\n public readonly pRoles = new BehaviorSubject<Roles>(null);\n public roles$ = this.pRoles.asObservable().pipe(skipWhile(item => item === null));\n\n public set roles(roles: Roles) {\n this.pRoles.next(roles);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { RoleService } from './role.service';\n\nexport enum RoleMatching {\n ALL,\n ANY\n}\n\n@Injectable({\n providedIn: 'root'\n })\nexport class RoleGuard {\n\n public constructor(\n private readonly roleService: RoleService,\n private readonly router: Router\n ) {}\n\n // TEST-TODO\n /*\n * Note: Per Angular 18, when a guard returns a UrlTree as a redirect,\n * the redirecting navigation will now use replaceUrl if the initial navigation was also using the replaceUrl option.\n * */\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> {\n return this.roleService.roles$.pipe(\n map(roles => {\n const canActivateRoles = (route.data.needsRole as string[]);\n const check = (roleRegEx: string) => {\n const regex = new RegExp(roleRegEx);\n return roles.some(role => regex.test(role));\n };\n const match = route.data.roleMatching === RoleMatching.ALL ? canActivateRoles.every(check) : canActivateRoles.some(check);\n\n return match || this.router.parseUrl(route.data.noRoleMatchRedirect as string);\n })\n );\n }\n}\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CookieService {\n private readonly document?: Document;\n\n constructor(@Inject(DOCUMENT) doc?: any) {\n this.document = doc as Document;\n }\n\n public setCookie(key: string, value: string, expiryDate?: string): void {\n const expiry = expiryDate ? ` expires=${expiryDate}` : '';\n const cookie = `${key}=${value};${expiry};SameSite=Strict`;\n this.document.cookie = cookie;\n }\n\n public getCookie(key: string): string {\n const cookieValue = this.document.cookie\n .split('; ')\n .find(row => row.startsWith(`${key}=`))\n .split('=')[1];\n return cookieValue;\n }\n\n public deleteCookie(key: string, path?: string, domain?: string): void {\n const pathValue = path ? `; path=${path}` : '';\n const domainValue = domain ? `; domain=${domain}` : '';\n this.document.cookie = `${key}=${pathValue}${domainValue}; expires=Thu, 01 Jan 1970 00:00:01 GMT; max-age=0`;\n }\n\n public deleteCookieByPartialMatch(key: string, path?: string, domain?: string): void {\n this.document.cookie\n .split('; ')\n .filter(row => row.startsWith(`${key}`))\n .forEach(element => {\n this.deleteCookie(element.split('=')[0], path, domain);\n });\n }\n\n public checkCookie(key: string): boolean {\n return this.document.cookie.split('; ').some(item => item.trim().startsWith(`${key}=`));\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\n\nexport abstract class HasLoadingState {\n public get isLoading(): Observable<boolean> {\n return;\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingService implements HasLoadingState {\n private readonly registered = new Map<string, string>();\n private readonly loading = new BehaviorSubject<boolean>(false);\n\n public get isLoading(): Observable<boolean> {\n return this.loading.asObservable().pipe(distinctUntilChanged());\n }\n\n public register(): string {\n const token = this.generateToken();\n this.registered.set(token, token);\n this.loading.next(true);\n return token;\n }\n\n public unregister(token: string): void {\n this.registered.delete(token);\n this.loading.next(this.registered.size > 0);\n }\n\n private generateToken(): string {\n const timestamp = window.performance.now();\n return `common-lib-loading-${timestamp}`; // format: [source-library]-[unique incrementing number]\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { FilterError, FilterPersistence, FilterSetting } from '../../models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilterService {\n public givenErrors: BehaviorSubject<FilterError[]> = new BehaviorSubject(null);\n public isInitialSetting: boolean = false;\n private readonly filterSettings: { [id: string]: FilterSetting } = {};\n private readonly streams: { [id: string]: BehaviorSubject<FilterSetting> } = {};\n\n public persist(setting: FilterSetting, persistence: FilterPersistence): void {\n switch (persistence) {\n case 'local':\n this.persistLocal(setting);\n break;\n case 'session':\n this.persistSession(setting);\n break;\n default:\n break;\n }\n this.persistMemory(setting);\n this.updateStreams(setting);\n }\n\n public get(id: string): FilterSetting | null {\n if (this.filterSettings[id]) {\n return this.filterSettings[id];\n }\n if (sessionStorage.getItem(id)) {\n return JSON.parse(sessionStorage.getItem(id));\n }\n if (localStorage.getItem(id)) {\n if (this.isSameUser(id)) {\n return JSON.parse(window.localStorage.getItem(id));\n } else {\n return null;\n }\n }\n return null;\n }\n\n public isSameUser(id: string): boolean {\n const filterSetting: FilterSetting = JSON.parse(window.localStorage.getItem(id));\n return !!filterSetting.idamId && filterSetting.idamId === this.getUserId();\n }\n\n public getStream(id: string): Observable<FilterSetting> {\n if (!this.streams[id]) {\n this.streams[id] = new BehaviorSubject<FilterSetting>(this.get(id));\n }\n return this.streams[id].asObservable();\n }\n\n public clearSessionAndLocalPersistance(id: string) {\n sessionStorage.removeItem(id);\n localStorage.removeItem(id);\n if (this.filterSettings[id] !== undefined) {\n this.filterSettings[id] = null;\n }\n if (this.streams[id] !== undefined) {\n this.streams[id].next(null);\n }\n }\n\n private persistLocal(setting: FilterSetting): void {\n setting.idamId = this.getUserId();\n window.localStorage.setItem(setting.id, JSON.stringify(setting));\n }\n\n private persistSession(setting: FilterSetting): void {\n sessionStorage.setItem(setting.id, JSON.stringify(setting));\n }\n\n private persistMemory(setting: FilterSetting): void {\n this.filterSettings[setting.id] = setting;\n }\n\n private updateStreams(setting: FilterSetting): void {\n if (this.streams[setting.id]) {\n this.streams[setting.id].next(setting);\n }\n }\n\n public getUserId(): string {\n const userInfoStr = window.sessionStorage.getItem('userDetails');\n let userId: string;\n if (userInfoStr) {\n const userInfo = JSON.parse(userInfoStr);\n userId = userInfo.id ? userInfo.id : userInfo.uid;\n }\n return userId;\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { LocationModel } from '../../../models';\nimport { RefDataHMCTSService } from '../models/ref-data-htmcs-service.model';\nimport { RefDataRegion } from '../models/ref-data-region.model';\nimport {\n LocationModelsByServiceCodeResponse\n} from './models/ref-data-locations-by-service-code-response.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RefDataDataAccessService {\n public static refDataUrl: string = '/api/ref-data';\n public constructor(private readonly http: HttpClient) {}\n\n public getServices(): Observable<RefDataHMCTSService[]> {\n return this.http.get<RefDataHMCTSService[]>(`${RefDataDataAccessService.refDataUrl}/services`);\n }\n\n public getRegions(): Observable<RefDataRegion[]> {\n return this.http.get<RefDataRegion[]>(`${RefDataDataAccessService.refDataUrl}/regions`);\n }\n\n public getLocationsByServiceCode(serviceCode: string) {\n const httpParams = new HttpParams()\n .append('service_code', serviceCode);\n\n return this.http.get<LocationModelsByServiceCodeResponse>(`${RefDataDataAccessService.refDataUrl}/locations-by-service-code`, { params: httpParams });\n }\n\n public getLocations() {\n return this.http.get<LocationModel[]>(`${RefDataDataAccessService.refDataUrl}/locations`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay, take } from 'rxjs/operators';\nimport { LocationByEPIMMSModel } from '../../models';\nimport { RefDataHMCTSService } from './models/ref-data-htmcs-service.model';\nimport { RefDataRegion } from './models/ref-data-region.model';\nimport { RefDataDataAccessService } from './ref-data-data-access/ref-data-data-access.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RefDataService {\n public regions$: Observable<RefDataRegion[]>;\n public services$: Observable<RefDataHMCTSService[]>;\n public locations$: Observable<LocationByEPIMMSModel[]>;\n private readonly locationsByServiceCodesCache: {[serviceCode: string]: Observable<LocationByEPIMMSModel[]>} = {};\n\n constructor(private readonly refDataDataAccessService: RefDataDataAccessService) {\n this.regions$ = this.refDataDataAccessService.getRegions().pipe(shareReplay());\n this.services$ = this.refDataDataAccessService.getServices().pipe(shareReplay());\n this.locations$ = this.refDataDataAccessService.getLocations().pipe(shareReplay());\n }\n\n public getLocationsByServiceCodes(serviceCodes: string[]): Observable<LocationByEPIMMSModel[]> {\n const observables: Observable<LocationByEPIMMSModel[]>[] = [];\n serviceCodes.forEach(serviceCode => {\n if (!this.locationsByServiceCodesCache[serviceCode]) {\n this.locationsByServiceCodesCache[serviceCode] = this.refDataDataAccessService.getLocationsByServiceCode(serviceCode).pipe(\n catchError(() => of({ court_venues: [] })),\n map(responseData => responseData.court_venues),\n shareReplay()\n );\n }\n\n observables.push(this.locationsByServiceCodesCache[serviceCode]);\n });\n\n return forkJoin(observables).pipe(\n map((values) => values.reduce((acc, val) => acc.concat(val)), []),\n take(1)\n );\n }\n}\n","/*\n * Public API Surface of exui-common-lib\n */\nexport * from './feature-toggle/feature-toggle.guard';\nexport * from './feature-toggle/feature-toggle.service';\nexport * from './feature-toggle/launch-darkly.service';\nexport * from './address/address.service';\nexport * from './google-analytics/google-analytics.service';\nexport * from './google-tag-manager/google-tag-manager.service';\nexport * from './manage-session/manage-session.services';\nexport * from './timeout-notifications/timeout-notifications.service';\nexport * from './role-guard/role.guard';\nexport * from './role-guard/role.service';\nexport * from './cookie/cookie.service';\nexport * from './loading/loading.service';\nexport * from './filter/filter.service';\nexport * from './ref-data';\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { FilterConfigOption } from '../../models';\n\nexport function minSelectedValidator<T>(min: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const values = control.value as T[];\n return values.length && values.filter(value => value).length >= min ? null : {minlength: true};\n };\n}\n\nexport function maxSelectedValidator<T>(max: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const values = control.value as T[];\n return values.length && values.filter(value => value).length <= max ? null : {maxLength: true};\n };\n}\n\nexport function getValues(options: FilterConfigOption[], values: any[]): any[] {\n return options.reduce((acc: string[], option: { key: string, label: string }, index: number) => {\n if (values[index]) {\n return [...acc, option.key];\n }\n return acc;\n }, []);\n}\n\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionStorageService {\n\n /**\n * Get an item from the session storage.\n * If remove is true, the item will be removed once read\n * @param removeAfterRead removed the key once it has been read\n */\n public getItem(key: string, removeAfterRead: boolean = false): string {\n const item = sessionStorage.getItem(key);\n\n if (removeAfterRead) { this.removeItem(key); }\n\n return item;\n }\n\n /**\n * Set an item in the session storage.\n */\n public setItem(key: string, value: string): void {\n sessionStorage.setItem(key, value);\n }\n\n /**\n * Remove an item in the session storage.\n */\n public removeItem(key: string): void {\n sessionStorage.removeItem(key);\n }\n\n /**\n * Clear all the items held in session storage.\n */\n public clear(): void {\n sessionStorage.clear();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n Caseworker,\n JudicialUserModel,\n Person,\n PersonRole,\n RoleCategory,\n SearchOptions\n} from '../../models';\nimport { SessionStorageService } from '../storage/session-storage/session-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FindAPersonService {\n public static caseworkersKey: string = 'caseworkers';\n public userId: string;\n public assignedUser: string | string[] = [];\n\n constructor(private readonly http: HttpClient, private readonly sessionStorageService: SessionStorageService) {\n }\n\n public find(searchOptions: SearchOptions): Observable<Person[]> {\n const userInfoStr = this.sessionStorageService.getItem('userDetails');\n if (userInfoStr && !searchOptions.userIncluded) {\n const userInfo = JSON.parse(userInfoStr);\n this.userId = userInfo.id ? userInfo.id : userInfo.uid;\n }\n this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : [];\n let assignedUserToCompare = this.assignedUser;\n if (typeof(this.assignedUser) === 'string') {\n assignedUserToCompare = [this.assignedUser];\n }\n return this.http.post<Person[]>('/workallocation/findPerson', { searchOptions })\n .pipe(map((judiciary) => judiciary.filter((judge) => !(assignedUserToCompare.includes(judge.id)))));\n // Removed the current user id to fix EUI-8465.\n }\n\n public findCaseworkers(searchOptions: SearchOptions): Observable<Person[]> {\n const userInfoStr = this.sessionStorageService.getItem('userDetails');\n if (userInfoStr) {\n const userInfo = JSON.parse(userInfoStr);\n this.userId = userInfo.id ? userInfo.id : userInfo.uid;\n }\n this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : [];\n const fullServices = searchOptions.services;\n return this.http.post<Caseworker[]>('/workallocation/caseworker/getUsersByServiceName', { services: fullServices, term: searchOptions.searchTerm }).pipe(\n map((caseworkers) => {\n return this.searchInCaseworkers(caseworkers, searchOptions);\n })\n );\n }\n\n public mapCaseworkers(caseworkers: Caseworker[], roleCategory: string): Person[] {\n const people: Person[] = [];\n caseworkers.forEach((caseworker) => {\n const thisPerson: Person = {\n email: caseworker.email,\n name: `${caseworker.firstName} ${caseworker.lastName}`,\n id: caseworker.idamId,\n domain: caseworker.roleCategory === RoleCategory.LEGAL_OPERATIONS ? PersonRole.LEGAL_OPERATIONS : PersonRole.ADMIN\n // knownAs can be added if required\n };\n if (caseworker.roleCategory === roleCategory || roleCategory === RoleCategory.ALL || caseworker.idamId === this.userId) {\n people.push(thisPerson);\n }\n });\n return people;\n }\n\n public searchInCaseworkers(caseworkers: Caseworker[], searchOptions: SearchOptions): Person[] {\n let roleCategory = RoleCategory.ALL;\n if (!(searchOptions.userRole === PersonRole.ALL)) {\n if (searchOptions.userRole === PersonRole.LEGAL_OPERATIONS) {\n roleCategory = RoleCategory.LEGAL_OPERATIONS;\n } else if (searchOptions.userRole === PersonRole.ADMIN) {\n roleCategory = RoleCategory.ADMIN;\n } else if (searchOptions.userRole === PersonRole.CTSC) {\n roleCategory = RoleCategory.CTSC;\n }\n }\n const searchTerm = searchOptions && searchOptions.searchTerm ? searchOptions.searchTerm.toLowerCase() : '';\n const people = caseworkers ? this.mapCaseworkers(caseworkers, roleCategory) : [];\n const finalPeopleList = people.filter((person) => person && person.name && person.name.toLowerCase().includes(searchTerm));\n\n if (typeof(this.assignedUser) === 'string') {\n return finalPeopleList.filter((person) => person && person.id !== this.assignedUser);\n }\n return finalPeopleList.filter((person) => person && !this.assignedUser.includes(person.id));\n }\n\n public searchJudicial(value: string, serviceId: string): Observable<JudicialUserModel[]> {\n return this.http.post<JudicialUserModel[]>('api/prd/judicial/getJudicialUsersSearch',\n { searchString: value, serviceCode: serviceId });\n }\n}\n","@if (title && title.length) {\n <h1 class=\"govuk-heading-l\">\n <span class=\"govuk-caption-l\">{{title | rpxTranslate}}</span>\n {{boldTitle | rpxTranslate}}\n </h1>\n}\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 @if (subTitle && subTitle.length) {\n <div id=\"sub-title-hint\" class=\"govuk-hint\">\n {{subTitle | rpxTranslate}}\n </div>\n }\n @if (findPersonGroup && findPersonGroup.errors) {\n <span id=\"validation-error\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n }\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 @for (option of filteredOptions; track option) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option) | rpxTranslate}}\n </mat-option>\n }\n @if (isNoResultsShown && !filteredOptions.length && showAutocomplete) {\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\">{{'No results found' | rpxTranslate}}</mat-option>\n }\n </mat-autocomplete>\n </fieldset>\n</div>\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Observable, Subscription, zip } from 'rxjs';\nimport { of } from 'rxjs/internal/observable/of';\nimport { catchError, debounceTime, filter, map, switchMap, tap } from 'rxjs/operators';\nimport { Person, PersonRole } from '../../models';\nimport { FindAPersonService } from '../../services/find-person/find-person.service';\n\n@Component({\n selector: 'xuilib-find-person',\n templateUrl: './find-person.component.html',\n styleUrls: ['./find-person.component.scss'],\n standalone: false\n})\n\nexport class FindPersonComponent implements OnInit, OnDestroy {\n @Output() public personSelected = new EventEmitter<Person>();\n @Output() public personFieldChanged = new EventEmitter<void>();\n @Input() public title: string;\n @Input() public boldTitle = 'Find the person';\n @Input() public subTitle = 'Type the name of the person and select them.';\n @Input() public domain = PersonRole.ALL;\n @Input() public findPersonGroup: FormGroup = new FormGroup({});\n @Input() public selectedPerson: string;\n @Input() public submitted: boolean = true;\n @Input() public userIncluded?: boolean = false;\n @Input() public assignedUser?: string | string[];\n @Input() public placeholderContent: string = '';\n @Input() public isNoResultsShown: boolean = true;\n @Input() public showUpdatedColor: boolean = false;\n @Input() public selectedPersons: Person[] = [];\n @Input() public errorMessage: string = 'You must select a name';\n @Input() public idValue: string = '';\n @Input() public services: string = 'IA';\n @Input() public disabled: boolean = null;\n public showAutocomplete: boolean = false;\n public findPersonControl: FormControl;\n public filteredOptions: Person[] = [];\n public readonly minSearchCharacters = 2;\n private sub: Subscription;\n\n constructor(private readonly findPersonService: FindAPersonService, private readonly cd: ChangeDetectorRef) {\n }\n\n public ngOnDestroy() {\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n\n public ngOnInit(): void {\n this.findPersonControl = new FormControl(this.selectedPerson);\n this.findPersonGroup.addControl('findPersonControl', this.findPersonControl);\n this.sub = this.findPersonControl.valueChanges.pipe(\n tap(() => this.showAutocomplete = false),\n tap(() => this.filteredOptions = []),\n debounceTime(300),\n tap((searchTerm) => typeof searchTerm === 'string' ? this.personSelected.emit(null) : void 0),\n filter((searchTerm: string) => searchTerm && searchTerm.length > this.minSearchCharacters),\n switchMap((searchTerm: string) => this.filter(searchTerm).pipe(\n tap(() => this.showAutocomplete = true),\n catchError(() => this.handleFilterError()),\n ))\n ).subscribe((people: Person[]) => {\n this.filteredOptions = people;\n this.cd.detectChanges();\n });\n }\n\n public filter(searchTerm: string): Observable<Person[]> {\n const findJudicialOrCTSCPeople = this.findPersonService.find({ searchTerm, userRole: this.domain, services: [this.services], userIncluded: this.userIncluded, assignedUser: this.assignedUser });\n const findCaseworkersOrAdminsOrCtsc = this.findPersonService.findCaseworkers({ searchTerm, userRole: this.domain, services: [this.services], userIncluded: this.userIncluded, assignedUser: this.assignedUser });\n if (searchTerm && searchTerm.length > this.minSearchCharacters) {\n switch (this.domain) {\n case PersonRole.JUDICIAL: {\n return findJudicialOrCTSCPeople.pipe(map((persons) => {\n const ids: string[] = this.selectedPersons.map(({ id }) => id);\n return persons.filter(({ id }) => !ids.includes(id));\n }));\n }\n case PersonRole.ALL: {\n return zip(findJudicialOrCTSCPeople, findCaseworkersOrAdminsOrCtsc).pipe(map((separatePeople) => separatePeople[0].concat(separatePeople[1])));\n }\n case PersonRole.CTSC:\n case PersonRole.LEGAL_OPERATIONS:\n case PersonRole.ADMIN: {\n return findCaseworkersOrAdminsOrCtsc;\n }\n default: {\n return of([]);\n }\n }\n }\n return of([]);\n }\n\n public onSelectionChange(selectedPerson: Person): void {\n this.personSelected.emit(selectedPerson);\n this.findPersonControl.setValue(this.getDisplayName(selectedPerson), {emitEvent: false, onlySelf: true});\n }\n\n public getDisplayName(selectedPerson: Person): string {\n if (!selectedPerson) {\n return '';\n }\n if (selectedPerson.domain === PersonRole.JUDICIAL && selectedPerson.fullName) {\n return `${selectedPerson.fullName} (${selectedPerson.email})`;\n }\n return selectedPerson.email ? `${selectedPerson.name} (${selectedPerson.email})` : selectedPerson.name;\n }\n\n private handleFilterError(): Observable<Person[]> {\n this.filteredOptions = [];\n return of([]);\n }\n\n public onInput(): void {\n this.personFieldChanged.emit();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { LocationByEPIMMSModel, LocationsByService } from '../../models/location.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocationService {\n\n constructor(private readonly http: HttpClient) {\n }\n\n /**\n * @description getAllLocations from service Ids/location type/search term\n * @param serviceIds: SSCS | SSCS,IA split with ','\n * @param locationType: optional | hearing | case_management\n * @param searchTerm: any search term for postcode | site name | venue name |court name | court address etc.\n * @return Observable<LocationByEPIMMSModel[]>: Array of locationModel in Observable\n */\n public getAllLocations(locationUrl: string, serviceIds: string, locationType: string, searchTerm: string, userLocations: LocationsByService[]): Observable<LocationByEPIMMSModel[]> {\n return this.http.post<LocationByEPIMMSModel[]>(locationUrl, {serviceIds, locationType, searchTerm, userLocations});\n }\n\n /**\n * @description searchLocations from service Ids/location type/search term\n * @param serviceIds: BBA3 | BBA3,BFA1 split with ','\n * @param locationType: optional | hearing | case_management\n * @param searchTerm: any search term for postcode | site name | venue name |court name | court address etc.\n * @return Observable<LocationByEPIMMSModel[]>: Array of locationModel in Observable\n */\n public searchLocations(serviceIds: string, locationType: string, searchTerm: string): Observable<LocationByEPIMMSModel[]> {\n return this.http.get<LocationByEPIMMSModel[]>(`api/prd/location/getLocations?serviceIds=${serviceIds}&locationType=${locationType}&searchTerm=${searchTerm}`);\n }\n}\n","<div class=\"auto-complete-container\">\n <input\n id=\"inputLocationSearch\"\n #char\n (keydown)=\"removeInvalidString($event)\"\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 @if (filteredList$ | async; as filteredList) {\n @if (filteredList !== null) {\n @for (location of filteredList; track location) {\n <mat-option (onSelectionChange)=\"onSelectedLocation(location)\">\n {{ location[propertyNameFilter] }}\n </mat-option>\n }\n @if (filteredList.length === 0) {\n <mat-option>{{ 'No results found' | rpxTranslate }}</mat-option>\n }\n }\n }\n </mat-autocomplete>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { iif, Observable, of } from 'rxjs';\nimport { catchError, debounceTime, map, switchMap, tap } from 'rxjs/operators';\nimport {\n BookingCheckType, FilterConfigOption,\n FilterFieldConfig,\n LocationByEPIMMSModel,\n LocationsByService\n} from '../../models';\nimport { LocationService } from '../../services/locations/location.service';\nimport { RefDataService } from '../../services/ref-data';\nimport { SessionStorageService } from '../../services/storage/session-storage/session-storage.service';\n\n@Component({\n selector: 'exui-search-location',\n templateUrl: './search-location.component.html',\n styleUrls: ['./search-location.component.scss'],\n standalone: false\n})\nexport class SearchLocationComponent implements OnInit {\n private static readonly allLocationAPI = `api/locations/getLocations`;\n @Input() public form: FormGroup;\n @Input() public field: FilterFieldConfig;\n @Input() public disabled: boolean = null;\n @Input() public singleMode: boolean = false;\n @Input() public locationType: string = '';\n @Input() public serviceIds: string = '';\n @Input() public submitted?: boolean = true;\n @Input() public bookingCheck: BookingCheckType;\n @Input() public selectedLocations: LocationByEPIMMSModel[] = [];\n @Input() public propertyNameFilter: keyof LocationByEPIMMSModel = 'site_name';\n @Input() public delay?: number = 500;\n @Output() public locationSelected = new EventEmitter<LocationByEPIMMSModel>();\n @Output() public locationTermSearchInputChanged: EventEmitter<string> = new EventEmitter<string>();\n @Output() public searchLocationChanged: EventEmitter<void> = new EventEmitter<void>();\n public searchTermFormControl = new FormControl('');\n public readonly minSearchCharacters = 3;\n public term: string = '';\n private pReset: boolean = true;\n public filteredList$: Observable<LocationByEPIMMSModel[] | null>;\n private readonly debounceTimeInput = 300;\n public previousValue = '';\n\n public get reset(): boolean {\n return this.pReset;\n }\n\n @Input()\n public set reset(value: boolean) {\n this.pReset = value;\n this.resetSearchTerm();\n }\n\n constructor(private readonly locationService: LocationService,\n private readonly sessionStorageService: SessionStorageService,\n private readonly refDataService: RefDataService\n ) { }\n\n public ngOnInit(): void {\n const searchInputChanges$ = this.searchTermFormControl.valueChanges\n .pipe(\n tap((term) => this.locationTermSearchInputChanged.emit(term))\n );\n\n // if servicesField exists, then we should filter locations by the service codes\n if (this.field && this.field.servicesField) {\n this.filteredList$ = searchInputChanges$.pipe(\n switchMap((term: string) => iif(\n // display results for any length (>=0) when using cached service codes\n () => (!!term && term.length >= 0),\n this.refDataService.getLocationsByServiceCodes(\n (this.form.get(this.field.servicesField)?.value as FilterConfigOption[]).map((service) => service.key)\n ).pipe(\n // Filter locations by the search input term and the chosen property name\n map((locations) => locations\n .filter((location) => location[this.propertyNameFilter].toLowerCase().includes(term.toLowerCase()))),\n // Filter out locations that are already selected\n map((locations) => this.filterUnselectedLocations(locations, this.selectedLocations, this.singleMode)),\n // Filter out duplicate locations (by propertyNameFilter)\n map((locations) => locations.filter((location, index, array) =>\n index === array.findIndex((item) => item[this.propertyNameFilter] === location[this.propertyNameFilter])\n )),\n ),\n of(null)\n ))\n );\n } else {\n this.filteredList$ = searchInputChanges$.pipe(\n // Debounce needed to prevent multiple API calls being made\n debounceTime(this.debounceTimeInput),\n switchMap((term: string) => iif(\n () => (!!term && term.length >= this.minSearchCharacters),\n this.getLocations(term).pipe(\n map((locations) => this.filterUnselectedLocations(locations, this.selectedLocations, this.singleMode)),\n catchError(() => of(null))\n ),\n of(null)\n ))\n );\n }\n\n if (this.singleMode && this.selectedLocations.length > 0) {\n const location = this.selectedLocations[0];\n this.searchTermFormControl.patchValue(location[this.propertyNameFilter], { emitEvent: false, onlySelf: true });\n }\n }\n\n public onSelectedLocation(location: LocationByEPIMMSModel): void {\n this.searchTermFormControl.patchValue(location[this.propertyNameFilter], { emitEvent: false, onlySelf: true });\n this.locationSelected.emit(location);\n }\n public onInput(): void {\n this.searchLocationChanged.emit();\n }\n\n public getLocations(term: string): Observable<LocationByEPIMMSModel[]> {\n let userLocations;\n // Booking type info - can create more\n // NO_CHECK - All work - Do not filter out locations - Default assumption\n // BOOKINGS_AND_BASE - My work - Try to only show base locations/regions\n // POSSIBLE_BOOKINGS - Create booking screen - Show only potential bookings\n if (this.bookingCheck === BookingCheckType.BOOKINGS_AND_BASE) {\n userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations')) as LocationsByService[];\n } else if (this.bookingCheck === BookingCheckType.POSSIBLE_BOOKINGS) {\n this.serviceIds = this.serviceIds && this.serviceIds.length ? this.serviceIds : JSON.parse(this.sessionStorageService.getItem('bookableServices'));\n userLocations = JSON.parse(this.sessionStorageService.getItem('bookableUserLocations')) as LocationsByService[];\n }\n // get all locations will resolve filter setting using objects above\n // if no userLocations, NO_CHECK\n // if just getting all substantive user locations, BOOKINGS_AND_BASE\n // fee paid user locations are used for POSSIBLE_BOOKINGS\n return this.locationService.getAllLocations(SearchLocationComponent.allLocationAPI, this.serviceIds, this.locationType, term, userLocations);\n }\n\n public resetSearchTerm(): void {\n this.searchTermFormControl.setValue('');\n }\n\n private filterUnselectedLocations(\n locations: LocationByEPIMMSModel[],\n selectedLocations: LocationByEPIMMSModel[],\n singleMode: boolean\n ): LocationByEPIMMSModel[] {\n if (singleMode) {\n return locations;\n }\n return locations.filter(\n location => !selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(location.epimms_id) && location[this.propertyNameFilter]\n );\n }\n\n public removeInvalidString(formInputValue: KeyboardEvent) {\n if (!this.isCharacterValid(formInputValue)) {\n formInputValue.preventDefault();\n }\n }\n\n public isCharacterValid(event: KeyboardEvent): boolean {\n let pressed = undefined\n if (event.key !== undefined) {\n pressed = event.key;\n if (pressed.length > 1) {\n switch (pressed) {\n case 'Tab':\n return true;\n case 'ArrowRight':\n return true;\n case 'ArrowLeft':\n return true;\n case 'Backspace':\n return true;\n case 'Enter':\n return true;\n default: return false;\n }\n }\n } else if (event.keyCode !== undefined) {\n pressed = String.fromCharCode(event.keyCode);\n }\n return pressed && (/[a-zA-Z \\s'-]/).test(pressed);\n }\n\n}","<div class=\"location-picker-custom\">\n <div class=\"search-location\">\n <div>\n @if (locationTitle) {\n <label id=\"input-selected-location-label\">{{locationTitle}}</label>\n }\n </div>\n <exui-search-location class=\"search-location\"\n [form]=\"form\"\n [field]=\"field\"\n [selectedLocations]=\"selectedLocations\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [serviceIds]=\"serviceIds\"\n [propertyNameFilter]=\"propertyNameFilter\"\n (locationTermSearchInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\">\n </exui-search-location>\n </div>\n\n <div>\n @if (enableAddLocationButton) {\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button add-location-button\" data-module=\"govuk-button\">\n Add location\n </a>\n }\n </div>\n\n @if (field.maxSelected != 1) {\n <ul class=\"hmcts-filter-tags selection-container\">\n @for (selection of selectedLocations; track selection) {\n <li class=\"location-selection\" >\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection)\" href=\"javascript:void(0)\">\n {{ selection[propertyNameFilter] }}\n </a>\n </li>\n }\n </ul>\n }\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { FilterFieldConfig, LocationByEPIMMSModel } from '../../models';\nimport { getValues } from '../generic-filter/generic-filter-utils';\nimport { SearchLocationComponent } from '../search-location/search-location.component';\n\n@Component({\n selector: 'xuilib-find-location',\n templateUrl: './find-location.component.html',\n styleUrls: ['./find-location.component.scss'],\n standalone: false\n})\nexport class FindLocationComponent implements OnInit, OnDestroy {\n @Output() public locationFieldChanged = new EventEmitter<void>();\n @Input() public submitted: boolean = true;\n @Input() public enableAddLocationButton: boolean = true;\n @Input() public form: FormGroup;\n @Input() public field: FilterFieldConfig;\n @Input() public fields: FilterFieldConfig[];\n @Input() public locationTitle = 'Search for a location by name';\n @Input() public disableInputField = false;\n @Input() public formSubmissionEvent$: Subject<void>;\n public tempSelectedLocation: LocationByEPIMMSModel = null;\n public serviceIds: string = 'SSCS,IA';\n @ViewChild(SearchLocationComponent, { static: true }) public searchLocationComponent: SearchLocationComponent;\n private pServices: string[] = [];\n private pDisabled: boolean = false;\n private formSubmissionEventSubscription: Subscription;\n\n public get disabled(): boolean {\n return this.pDisabled;\n }\n\n @Input()\n public set disabled(value: boolean) {\n if (value) {\n this.searchLocationComponent.resetSearchTerm();\n this.removeSelectedValues();\n }\n this.pDisabled = this.disableInputField === true ? true : null;\n }\n\n public get services(): string[] {\n return this.pServices;\n }\n\n @Input()\n public set services(value: string[]) {\n this.pServices = value;\n const field = this.fields.find(f => {\n if (this.field) {\n return f.name === this.field.findLocationField;\n }\n });\n\n if (field) {\n if (typeof value === 'string') {\n this.serviceIds = value;\n } else {\n this.serviceIds = getValues(field.options, value).filter(x => x !== 'services_all').join(',');\n }\n }\n }\n\n public get selectedLocations() {\n return (this.form.get(this.field.name)?.value as LocationByEPIMMSModel[])?.filter(location => location.epimms_id);\n }\n\n public get propertyNameFilter(): keyof LocationByEPIMMSModel {\n const DEFAULT_PROPERTY_NAME = 'site_name';\n return this.field.propertyNameFilter ? this.field.propertyNameFilter as keyof LocationByEPIMMSModel\n : DEFAULT_PROPERTY_NAME;\n }\n\n public ngOnInit(): void {\n if (this.formSubmissionEvent$) {\n this.formSubmissionEventSubscription = this.formSubmissionEvent$.subscribe(() => {\n // Shouldn't reset search term if single mode and already has selected\n const oneSelectedAndMaxSelectedOne = this.selectedLocations.length === 1 && this.field.maxSelected === 1;\n if (!oneSelectedAndMaxSelectedOne) {\n this.searchLocationComponent.resetSearchTerm();\n }\n });\n }\n }\n\n public addLocation(): void {\n if (this.tempSelectedLocation) {\n this.addSelectedLocationsToForm([this.tempSelectedLocation]);\n this.tempSelectedLocation = null;\n this.searchLocationComponent.resetSearchTerm();\n }\n }\n\n public removeLocation(location: LocationByEPIMMSModel): void {\n if (location.epimms_id) {\n const formArray = this.form.get(this.field.name) as FormArray;\n const index = (formArray.value as LocationByEPIMMSModel[]).findIndex(selectedLocation => selectedLocation.epimms_id === location.epimms_id);\n if (index > -1) {\n formArray.removeAt(index);\n }\n }\n }\n\n public onInputChanged(term: string): void {\n // if the filter is in single mode clear the selected locations\n if (typeof term === 'string' && this.field.maxSelected === 1) {\n this.removeSelectedValues();\n }\n }\n\n public onSearchInputChanged(): void {\n this.locationFieldChanged.emit();\n }\n\n public onLocationSelected(location: LocationByEPIMMSModel): void {\n if (this.field.maxSelected === 1) {\n this.removeSelectedValues();\n this.addSelectedLocationsToForm([location]);\n } else {\n if (!this.selectedLocations.find(x => x.epimms_id === location.epimms_id)) {\n if (location.epimms_id) {\n this.tempSelectedLocation = location;\n }\n }\n }\n }\n\n private removeSelectedValues(): void {\n const formArray = this.form.get(this.field?.name) as FormArray;\n if (formArray) {\n for (let i = 0; i < formArray.length; i++) {\n formArray.removeAt(i);\n }\n }\n }\n\n private addSelectedLocationsToForm(locations: LocationByEPIMMSModel[]): void {\n const formArray = this.form.get(this.field.name) as FormArray;\n for (const location of locations) {\n formArray.push(new FormControl(location));\n }\n }\n\n public ngOnDestroy() {\n this.formSubmissionEventSubscription?.unsubscribe();\n }\n}\n","import {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {Observable, of} from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { TaskNameModel } from '../../models/task-name.model';\nimport { SessionStorageService } from '../storage/session-storage/session-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TaskNameService {\n public static taskNamesKey: string = 'taskNames';\n\n constructor(private readonly http: HttpClient, private readonly sessionStorageService: SessionStorageService) {\n }\n\n /**\n * @return Observable<any[]>: Array of taskName in Observable\n */\n public getTaskName(service: string): Observable<TaskNameModel[]> {\n const serviceTaskTypeKey = `${service}-${TaskNameService.taskNamesKey}`;\n if (this.sessionStorageService.getItem(serviceTaskTypeKey)) {\n const taskNames = JSON.parse(this.sessionStorageService.getItem(serviceTaskTypeKey));\n return of(taskNames as TaskNameModel[]);\n }\n return this.http.post<TaskNameModel[]>(`/workallocation/taskNames`, {service}).pipe(\n tap(taskNames => this.sessionStorageService.setItem(serviceTaskTypeKey, JSON.stringify(taskNames)))\n );\n }\n}\n","@if (title && title.length) {\n <h1 class=\"govuk-heading-l\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n </h1>\n}\n<div class=\"govuk-form-group\" [formGroup]=\"findTaskNameGroup\"\n [ngClass]=\"{'form-group-error': findTaskNameGroup.get('findTaskNameControl')?.invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n @if (subTitle && subTitle.length) {\n <div id=\"sub-title-hint\" class=\"govuk-hint\">\n {{subTitle}}\n </div>\n }\n @if (findTaskNameGroup && findTaskNameGroup.errors) {\n <span id=\"validation-error\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findTaskNameGroup.errors.error ? findTaskNameGroup.errors.error : errorMessage}}\n </span>\n }\n <input id=\"inputSelectTaskName{{idValue}}\" type=\"text\" aria-label=\"select a task name\"\n formControlName=\"findTaskNameControl\"\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 @for (option of filteredOptions; track option) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{ getTaskTypeName(option) }}\n </mat-option>\n }\n @if (isNoResultsShown && !filteredOptions.length && showAutocomplete) {\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\">No results found</mat-option>\n }\n </mat-autocomplete>\n </fieldset>\n</div>\n","import {ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {Observable, Subscription} from 'rxjs';\nimport {debounceTime, filter, mergeMap, tap} from 'rxjs/operators';\nimport {PersonRole} from '../../models';\nimport { TaskNameModel } from '../../models/task-name.model';\nimport { TaskNameService } from '../../services/task-name/task-name.service';\n\n@Component({\n selector: 'xuilib-find-task-name',\n templateUrl: './find-task-name.component.html',\n styleUrls: ['./find-task-name.component.scss'],\n standalone: false\n})\n\nexport class FindTaskNameComponent implements OnInit, OnDestroy {\n @Output() public taskNameSelected = new EventEmitter<any>();\n @Output() public taskNameFieldChanged = new EventEmitter<void>();\n @Input() public title: string;\n @Input() public boldTitle = 'Find the task name';\n @Input() public subTitle = 'Type the name of the task name and select them.';\n @Input() public domain = PersonRole.ALL;\n @Input() public findTaskNameGroup: FormGroup = new FormGroup({});\n @Input() public selectedTaskName: string;\n @Input() public submitted: boolean = true;\n @Input() public assignedUser?: string;\n @Input() public placeholderContent: string = '';\n @Input() public isNoResultsShown: boolean = true;\n @Input() public showUpdatedColor: boolean = false;\n @Input() public selectedTaskNames: TaskNameModel[] = [];\n @Input() public errorMessage: string = 'You must select a name';\n @Input() public idValue: string = '';\n @Input() public services: string = 'IA';\n @Input() public disabled: boolean = null;\n public showAutocomplete: boolean = false;\n public findTaskNameControl: FormControl;\n public filteredOptions: any[] = [];\n public readonly minSearchCharacters = 1;\n private sub: Subscription;\n public searchTerm: string = '';\n\n constructor(private readonly cd: ChangeDetectorRef, private readonly taskService: TaskNameService) {}\n\n public ngOnDestroy() {\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n\n public ngOnInit(): void {\n this.findTaskNameControl = new FormControl(this.selectedTaskName);\n this.findTaskNameGroup.addControl('findTaskNameControl', this.findTaskNameControl);\n this.sub = this.findTaskNameControl.valueChanges\n .pipe(\n tap(() => this.showAutocomplete = false),\n tap(() => this.filteredOptions = []),\n debounceTime(300),\n tap((searchTerm) => this.searchTerm = searchTerm),\n tap((searchTerm) => typeof searchTerm === 'string' ? this.taskNameSelected.emit('null') : void 0),\n filter((searchTerm: string) => searchTerm && searchTerm.length >= this.minSearchCharacters),\n mergeMap(() => this.getTaskName()),\n ).subscribe((taskNameModel: TaskNameModel[]) => {\n this.filteredOptions = taskNameModel ? taskNameModel : [];\n if (this.searchTerm) {\n this.filteredOptions = this.filteredOptions.filter((taskType) => taskType.task_type.task_type_name.toLocaleLowerCase().includes(this.searchTerm.toLocaleLowerCase())).map(taskType=> taskType);\n }\n this.cd.detectChanges();\n });\n }\n\n public getTaskName(): Observable<TaskNameModel[]> {\n return this.taskService.getTaskName(this.services);\n }\n\n public onSelectionChange(selectedTaskTypeName: any): void {\n if (selectedTaskTypeName) {\n this.taskNameSelected.emit(selectedTaskTypeName);\n this.findTaskNameControl.setValue(this.getTaskTypeName(selectedTaskTypeName), {emitEvent: false, onlySelf: true});\n }\n }\n\n public getTaskTypeName(selectedTaskType: any): string {\n if (!selectedTaskType) {\n return '';\n }\n return selectedTaskType.task_type.task_type_name;\n }\n\n public onInput(): void {\n this.taskNameFieldChanged.emit();\n }\n}\n","<div class=\"auto-complete-container\">\n <input id=\"inputServiceSearch\"\n class=\"govuk-input\"\n [value]=\"searchTerm\"\n (input)=\"onSearchTermChanged($event.target.value)\"\n [matAutocomplete]=\"autoSearchService\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n @for (service of filteredOptions; track service) {\n <mat-option (onSelectionChange)=\"onSelectionChanged($event)\" [value]=\"service.label\">\n {{ service.label }}\n </mat-option>\n }\n @if (!filteredOptions?.length && showAutocomplete) {\n <mat-option>\n No results found\n </mat-option>\n }\n </mat-autocomplete>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FilterConfigOption } from '../../models';\nimport { MatLegacyOptionSelectionChange as MatOptionSelectionChange } from '@angular/material/legacy-core';\n\n@Component({\n selector: 'exui-search-service',\n templateUrl: './search-service.component.html',\n styleUrls: ['./search-service.component.scss'],\n standalone: false\n})\nexport class SearchServiceComponent {\n @Input() public options: FilterConfigOption[];\n @Input() public selectedOptions: FilterConfigOption[];\n @Input() public disabled: any;\n @Input() public showAutocomplete: boolean = false;\n @Input() public searchTerm = ''; // Removed ngModel use here for Angular best practice\n @Output() public searchTermChange: EventEmitter<string> = new EventEmitter<string>(); // Emit changes to searchTerm\n @Output() public optionChanged: EventEmitter<FilterConfigOption> = new EventEmitter<FilterConfigOption>();\n public readonly MIN_SEARCH_CHARACTERS = 3;\n\n public get filteredOptions(): FilterConfigOption[] {\n const remainingServices = this.options.filter((s) => !this.selectedOptions.find((ss) => ss.key === s.key));\n\n return this.searchTerm?.length >= this.MIN_SEARCH_CHARACTERS ?\n remainingServices.filter((s) => s.label.toLowerCase().includes(this.searchTerm.toLowerCase()))\n : remainingServices;\n }\n\n // TEST-TODO\n public resetSearchTerm(): void {\n this.searchTerm = '';\n this.searchTermChange.emit(this.searchTerm); // Emit the reset value\n }\n\n // TEST-TODO\n // TODO: Confirm this works correctly post Angular 18 upgrade as has been changed\n public onSearchTermChanged(value: string): void {\n this.searchTerm = value;\n this.searchTermChange.emit(this.searchTerm); // Emit the updated value\n }\n\n public onSelectionChanged($event: MatOptionSelectionChange): void {\n const label = $event.source?.value;\n if (label && $event.source.selected) {\n const selectedService = this.options.find((s) => s.label === label);\n this.optionChanged.emit(selectedService);\n }\n }\n}\n","<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n @if (serviceTitle) {\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\">\n {{ serviceTitle | rpxTranslate}}\n </label>\n }\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 @if (field?.enableAddButton) {\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 id=\"add-service\">\n {{ 'Add' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'service' | rpxTranslate}}</span>\n </a>\n }\n </div>\n </div>\n @if (field.maxSelected != 1) {\n <ul class=\"hmcts-filter-tags selection-container\">\n @for (selection of selectedServices; track selection) {\n <li class=\"location-selection\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label | rpxTranslate }}\n </a>\n </li>\n }\n </ul>\n }\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { FilterConfigOption, FilterFieldConfig } from '../../models';\nimport { SearchServiceComponent } from '../search-service/search-service.component';\n\n@Component({\n selector: 'xuilib-find-service',\n templateUrl: './find-service.component.html',\n styleUrls: ['./find-service.component.scss'],\n standalone: false\n})\nexport class FindServiceComponent implements OnInit, OnDestroy {\n @Input() public field: FilterFieldConfig;\n @Input() public serviceTitle: string;\n @Input() public form: FormGroup;\n @Input() public disabled: boolean = false;\n @Input() public formSubmissionEvent$: Subject<void>;\n @ViewChild(SearchServiceComponent, { static: true }) public searchServiceComponent: SearchServiceComponent;\n @Output() public serviceFieldChanged = new EventEmitter();\n private isSelectedAll = false;\n private formSubmissionEventSubscription: Subscription;\n\n public tempSelectedService: FilterConfigOption = null;\n public get selectedServices(): FilterConfigOption[] {\n const selectAllValue = this.field.options.find(item => item.selectAll);\n return this.isSelectedAll ? [selectAllValue] : this.form.get(this.field.name)?.value;\n }\n\n public ngOnInit(): void {\n this.sortOptionsAlphabetically();\n\n // Patch Default Option\n if (this.field.defaultOption) {\n this.addOption(this.field.defaultOption);\n }\n if (this.formSubmissionEvent$) {\n this.formSubmissionEventSubscription = this.formSubmissionEvent$.subscribe(() => {\n const oneSelectedAndMaxSelectedOne = this.selectedServices.length === 1 && this.field.maxSelected === 1;\n if (!oneSelectedAndMaxSelectedOne) {\n this.searchServiceComponent.resetSearchTerm();\n }\n });\n }\n }\n\n public addOption(option: FilterConfigOption): void {\n if (option) {\n if (option.selectAll) {\n this.isSelectedAll = true;\n this.removeAllSelectedValues();\n this.field.options.forEach(item => {\n if (!item.selectAll) {\n this.addSelectedServiceToForm(item);\n }\n });\n } else {\n if (this.isSelectedAll) {\n this.removeAllSelectedValues();\n this.isSelectedAll = false;\n }\n this.addSelectedServiceToForm(option);\n }\n\n this.tempSelectedService = null;\n this.serviceFieldChanged.emit();\n this.searchServiceComponent.resetSearchTerm();\n }\n }\n\n public removeOption(service: FilterConfigOption): void {\n if (service.selectAll) {\n this.removeAllSelectedValues();\n this.isSelectedAll = false;\n } else if (service.key) {\n const formArray = this.form.get(this.field.name) as FormArray;\n const index = (formArray.value).findIndex((selectedService: FilterConfigOption) => selectedService.key.toLowerCase() === service.key.toLowerCase());\n if (index > -1) {\n formArray.removeAt(index);\n }\n this.serviceFieldChanged.emit();\n }\n }\n\n public onOptionSelected(option: FilterConfigOption): void {\n if (!this.field.enableAddButton && this.field.maxSelected === 1) {\n this.removeAllSelectedValues();\n this.addSelectedServiceToForm(option);\n this.serviceFieldChanged.emit();\n } else {\n this.tempSelectedService = option;\n }\n }\n\n private removeAllSelectedValues(): void {\n const formArray = this.form.get(this.field.name) as FormArray;\n formArray.clear();\n }\n\n private addSelectedServiceToForm(service: FilterConfigOption): void {\n const formArray = this.form.get(this.field.name) as FormArray;\n formArray.push(new FormControl(service));\n }\n\n private sortOptionsAlphabetically(): FilterConfigOption[] {\n return this.field.options.sort((a, b) => {\n return a.label.toLowerCase() > b.label.toLowerCase() ? 1 : (b.label.toLowerCase() > a.label.toLowerCase() ? -1 : 0);\n });\n }\n\n public ngOnDestroy() {\n this.formSubmissionEventSubscription?.unsubscribe();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'capitalize',\n standalone: false\n})\nexport class CapitalizePipe implements PipeTransform {\n public transform(value: string): string {\n const lowerCaseString = value.toLowerCase();\n return lowerCaseString.charAt(0).toUpperCase() + lowerCaseString.slice(1);\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n @for (field of config.fields; track field) {\n <div class=\"contain-classes\">\n @if (field.lineBreakBefore) {\n <hr class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n }\n @switch (field.type) {\n @case ('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 }\n @default {\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 @if (field.title) {\n <div 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 @if (field?.titleHint) {\n <div class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n }\n </div>\n }\n @if (field.subTitle) {\n <p class=\"govuk-body\">{{field.subTitle}}</p>\n }\n @if (field.hintText) {\n <div\n [id]=\"field.hintText + '-hint'\" class=\"govuk-hint\">\n {{ field.hintText | rpxTranslate }}\n </div>\n }\n @if (field.displayMinSelectedError && submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength)) {\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.minSelectedError | rpxTranslate }}\n </span>\n }\n @if (field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength) {\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.maxSelectedError | rpxTranslate }}\n </span>\n }\n @if (field.emailError && submitted && form.get(field.name).errors?.email) {\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n >\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span> {{field.emailError | rpxTranslate }}\n </span>\n }\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\">\n @switch (field.type) {\n @case ('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 @if (field.defaultOption) {\n <option [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n }\n @for (item of field.options; track item) {\n <option class=\"govuk-radios__item\" [value]=\"item.key\">{{item.label}}</option>\n }\n </select>\n }\n @case ('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 @if (field.defaultOption) {\n <option selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n }\n @for (grp of filteredSkillsByServices; track grp) {\n <optgroup label=\"{{grp.group | titlecase}}\">\n @for (item of grp.options; track item) {\n <option [value]=\"item.key\">{{item.label}}</option>\n }\n </optgroup>\n }\n </select>\n }\n @case ('checkbox') {\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n @for (item of field.options; track item; let i = $index) {\n <div 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 }\n </div>\n }\n @case ('nested-checkbox') {\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n @for (item of filteredSkillsByServicesCheckbox; track item; let i = $index) {\n <div 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 }\n </div>\n }\n @case ('checkbox-large') {\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n @for (item of field.options; track item; let i = $index) {\n <div 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 }\n </div>\n }\n @case ('radio') {\n <div class=\"govuk-radios\">\n @for (item of field.options; track item) {\n <div 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 }\n </div>\n }\n @case ('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 }\n @case ('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 }\n @case ('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 }\n @case ('find-service') {\n @if (isServiceSelected) {\n <span class=\"govuk-error-message\">{{serviceErrorMsg | rpxTranslate}}</span>\n }\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 }\n @case ('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 }\n @case ('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 }\n }\n </div>\n </div>\n }\n }\n </div>\n }\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 @if (config.showCancelFilterButton) {\n <button\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 }\n </div>\n </div>\n</form>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { FilterConfig, FilterConfigOption, FilterError, FilterFieldConfig, FilterSetting, GroupOptions } from '../../models';\nimport { FilterService } from '../../services';\nimport { getValues, maxSelectedValidator, minSelectedValidator } from './generic-filter-utils';\n\n@Component({\n selector: 'xuilib-generic-filter',\n templateUrl: 'generic-filter.component.html',\n styleUrls: ['generic-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class GenericFilterComponent implements OnInit, OnDestroy {\n public form: FormGroup;\n public submitted = false;\n public formSub: Subscription;\n public filteredSkillsByServices: GroupOptions[];\n public filteredSkillsByServicesCheckbox: FilterConfigOption[];\n public previousSelectedNestedCheckbox: string[] = [];\n public formSubmissionEvent$ = new Subject<void>();\n public isServiceSelected: boolean = false;\n public serviceErrorMsg = 'Please select a service';\n private selectedServices: string[] = [];\n\n constructor(private readonly filterService: FilterService, private readonly fb: FormBuilder, private readonly cdr: ChangeDetectorRef) { }\n\n // tslint:disable-next-line:variable-name\n private _config: FilterConfig;\n\n public get config(): FilterConfig {\n return this._config;\n }\n\n @Input()\n public set config(value: FilterConfig) {\n this._config = {\n ...value,\n fields: value.fields.map((field) => ({\n ...field,\n displayMinSelectedError: false,\n displayMaxSelectedError: false\n }))\n };\n this._config = value;\n }\n\n // tslint:disable-next-line:variable-name\n private _settings?: FilterSetting;\n\n public get settings(): FilterSetting {\n return this._settings;\n }\n\n @Input()\n public set settings(value: FilterSetting) {\n if (!value) {\n this.getSettings();\n }\n if (value && value.fields) {\n this.mergeDefaultFields(value);\n }\n this._settings = value;\n }\n\n private static addFormValidators(field: FilterFieldConfig): Validators {\n const validators = [];\n if (field && field.minSelected > 0) {\n validators.push(minSelectedValidator(field.minSelected));\n }\n\n if (field && field.maxSelected > 0) {\n validators.push(maxSelectedValidator(field.maxSelected));\n }\n\n return validators;\n }\n\n public ngOnInit(): void {\n if (!this.settings) {\n this.getSettings();\n }\n this.mergeDefaultFields(this.settings);\n this.buildForm(this.config, this.settings);\n\n if (this._config.copyFields) {\n this.form = this._config.copyFields(this.form);\n }\n\n this.formSub = this.form.valueChanges.subscribe(() => this.submitted = false);\n this.filterSkillsByServices(null, this.config);\n const services = this.config.fields.find((field) => field.name === 'user-services');\n if (services) {\n this.startFilterSkillsByServices(this.form, services);\n if (!this._config.copyFields) {\n this.initValuesFromCacheForSkillsByServices();\n }\n }\n // Note: the usage of this is ensure host binding updates (for Angular 18 usage of OnPush)\n this.cdr.markForCheck();\n }\n\n public ngOnDestroy(): void {\n this.filterService.givenErrors.next(null);\n\n if (this.formSub) {\n this.formSub.unsubscribe();\n }\n }\n\n public hidden(field: FilterFieldConfig, form: FormGroup): boolean {\n if (!field.showCondition) {\n return false;\n }\n if (typeof field.showCondition === 'string') {\n const control = form.get(field.name) as FormControl;\n const [name, value] = field.showCondition.split('=');\n if (form.value && form.value[name] === value) {\n if (field.type === 'find-person') {\n control.get('email').setValidators(Validators.required);\n control.get('email').updateValueAndValidity();\n } else {\n control.setValidators(Validators.required);\n control.updateValueAndValidity();\n }\n return false;\n }\n\n if (field.type === 'find-person') {\n control.get('email').clearValidators();\n control.get('email').updateValueAndValidity();\n } else {\n control.clearValidators();\n control.updateValueAndValidity();\n }\n }\n return true;\n }\n\n public disabled(field: FilterFieldConfig, form: FormGroup): boolean {\n if (!field.enableCondition) {\n return null;\n }\n if (typeof field.enableCondition === 'string') {\n const control = form.get(field.name) as FormControl;\n const [name, value] = field.enableCondition.split('=');\n if (form.value && form.value[name] === value) {\n if (field.type === 'find-person') {\n control.get('email').setValidators(Validators.required);\n control.get('email').updateValueAndValidity();\n } else {\n control.setValidators(Validators.required);\n control.updateValueAndValidity();\n }\n return null;\n }\n\n if (field.type === 'find-person') {\n control.get('email').clearValidators();\n control.get('email').updateValueAndValidity();\n } else {\n control.clearValidators();\n control.updateValueAndValidity();\n }\n }\n // find-location is special case where need to reset textbox (by existing disabling functionality)\n // field.disable referred to component itself\n if (field.type === 'find-location') {\n return true;\n }\n // Note: field.disable decides whether to actually disable or not\n return field.disable ? field.disable : null;\n }\n\n public applyFilter(form: FormGroup): void {\n this.formSubmissionEvent$.next();\n this.submitted = true;\n form.markAsTouched();\n if (form.valid) {\n this._settings = {\n id: this.config.id,\n idamId: this.filterService.getUserId(),\n fields: this.getSelectedValues(form.value, this.config)\n };\n this.cdr.markForCheck();\n this.filterService.givenErrors.next(null);\n const settings = { ...this.settings, reset: false };\n this.filterService.persist(settings, this.config.persistence);\n } else {\n this.emitFormErrors(form);\n }\n\n if (this._config.applyButtonCallback) {\n this._config.applyButtonCallback();\n }\n }\n\n // when domain changes ensure that person field is reset\n public fieldChanged(field: FilterFieldConfig, form: FormGroup): void {\n // TODO - Do similar with jurisdiction/service for caseworkers by services\n if (field.changeResetFields && field.changeResetFields.length) {\n for (const resetField of field.changeResetFields) {\n this.resetField(resetField, form);\n }\n }\n this.cdr.markForCheck();\n }\n\n // when user enters input change radio button\n public inputChanged(field: FilterFieldConfig): void {\n if (field.name === 'user-location') {\n if (!this.selectedServices.length) {\n this.isServiceSelected = true;\n } else {\n this.isServiceSelected = false;\n }\n }\n if (field.radioSelectionChange && typeof field.radioSelectionChange === 'string') {\n const [name, value] = field.enableCondition.split('=');\n this.form.get(name).patchValue(value);\n }\n }\n\n public inputServiceChanged(field: FilterFieldConfig): void {\n if (field.name === 'user-services') {\n this.selectedServices = this.getSelectedValuesForFields(this.form.controls, field);\n this.filterSkillsByServices(this.selectedServices, this.config);\n if (this.selectedServices.length) {\n this.isServiceSelected = false;\n } else {\n this.isServiceSelected = true;\n }\n this.cdr.markForCheck();\n }\n }\n\n public cancelFilter(): void {\n this.buildForm(this.config, this.settings, true);\n if (this.config && this.config.cancelSetting) {\n this._settings.fields = JSON.parse(JSON.stringify(this.config.cancelSetting.fields));\n }\n const settings = { ...this.settings, reset: true };\n this.filterService.persist(settings, this.config.persistence);\n this.filterService.givenErrors.next(null);\n this.submitted = false;\n this.cdr.markForCheck();\n\n if (this.config.cancelButtonCallback) {\n this.config.cancelButtonCallback();\n }\n }\n\n public updatePersonControls(values: any, field: FilterFieldConfig): void {\n let keys;\n if (!values) {\n keys = Object.keys(this.form.get(field.name).value);\n } else {\n keys = Object.keys(values);\n }\n for (const key of keys) {\n if (this.form.get(field.name) && this.form.get(field.name).get(key)) {\n const value = values && values[key] ? values[key] : null;\n this.form.get(field.name).get(key).patchValue(value);\n }\n }\n }\n\n public checkBoxChecked(field: any, i: number): any {\n const fa = this.form.get(field.name) as FormArray;\n return fa.controls[i].value;\n }\n\n // Helper used in templates (Angular 20 strict template inference)\n public isArray(val: unknown): val is unknown[] {\n return Array.isArray(val);\n }\n\n public updateTaskNameControls(values: any, field: FilterFieldConfig): void {\n let keys;\n if (!values) {\n keys = Object.keys(this.form.get(field.name).value);\n } else {\n keys = values.task_type ? Object.keys(values.task_type) : Object.keys(this.form.get(field.name).value);\n }\n for (const key of keys) {\n if (this.form.get(field.name) && this.form.get(field.name).get(key)) {\n const value = values.task_type && values.task_type[key] ? values.task_type[key] : null;\n this.form.get(field.name).get(key).patchValue(value);\n }\n }\n }\n\n // Adjusted parameter type to align with FilterConfigOption interface (selectAll?: boolean)\n public toggleSelectAll(event: any, form: FormGroup, item: FilterConfigOption, field: FilterFieldConfig): void {\n const isChecked = event.target.checked;\n const formArray: FormArray = form.get(field.name) as FormArray;\n if (!item.selectAll) {\n const allChecked = formArray.controls.every((control: AbstractControl) => control.value);\n let index: number = null;\n const hasSelectAllOption = field.options.find((option, i) => {\n if (option.hasOwnProperty('selectAll')) {\n index = i;\n return true;\n }\n return false;\n });\n // tslint:disable-next-line:variable-name\n const isAllCheckedExcludingTheSelectAllOption = formArray.controls.filter((_control: AbstractControl, i: number) => i !== index)\n .every((control: AbstractControl) => control.value);\n\n if (!allChecked && hasSelectAllOption && !isChecked) {\n formArray.controls.forEach((control: AbstractControl, i: number) => {\n if (index === i) {\n control.patchValue(false);\n return;\n }\n });\n } else if (hasSelectAllOption && !allChecked && isChecked && isAllCheckedExcludingTheSelectAllOption) {\n formArray.controls[index].patchValue(true);\n }\n } else {\n formArray.controls.forEach((control: AbstractControl) => {\n if (isChecked) {\n control.patchValue(true);\n } else {\n control.patchValue(false);\n }\n });\n }\n if (field.changeResetFields && field.changeResetFields.length) {\n for (const resetField of field.changeResetFields) {\n this.resetField(resetField, form);\n }\n }\n if (field.name === 'user-services') {\n this.startFilterSkillsByServices(form, field);\n } else if (field.name === 'user-skills') {\n if (isChecked) {\n const selectedIndex = field.options.findIndex((option) => Number(option.key) === Number(event.target.value));\n const selectedCheckbox = this.form.get('user-skills').value;\n selectedCheckbox[selectedIndex] = true;\n this.form.get('user-skills').setValue(selectedCheckbox);\n this.previousSelectedNestedCheckbox.push(event.target.value);\n } else {\n const index = this.previousSelectedNestedCheckbox.indexOf(event.target.value);\n if (index !== -1) {\n this.previousSelectedNestedCheckbox.splice(index, 1);\n }\n }\n }\n this.cdr.markForCheck();\n }\n\n private startFilterSkillsByServices(form: FormGroup, field: FilterFieldConfig) {\n const servicesArray: string[] = [];\n form.value[field.name].map((service: boolean, index: number) => {\n if (service) {\n servicesArray.push(field.options[index].key);\n }\n });\n this.filterSkillsByServices(servicesArray, this.config);\n }\n\n private resetField(resetField: string, form: FormGroup): void {\n const control = form.get(resetField);\n const defaultValue: { name: string, value: any[] } = this.config.cancelSetting.fields.find((f) => f.name === resetField);\n if (control instanceof FormArray) {\n for (let i = 0; i < control.length; i++) {\n control.removeAt(i);\n }\n } else if (control instanceof FormGroup) {\n const keys = Object.keys(control.value);\n for (const key of keys) {\n this.resetField(key, control);\n }\n } else if (control instanceof FormControl) {\n const value = defaultValue && defaultValue.value && defaultValue.value.length ? defaultValue.value[0] : null;\n control.setValue(value);\n }\n }\n\n private mergeDefaultFields(filter: FilterSetting): void {\n if (filter) {\n filter.fields = this.filterService.get(this.config.id) ? this.filterService.get(this.config.id).fields : filter.fields;\n } else if (this.config && this.config.cancelSetting) {\n this._settings = {\n id: this.config.id,\n fields: JSON.parse(JSON.stringify(this.config.cancelSetting.fields))\n };\n }\n }\n\n private getSettings(): void {\n this._settings = this.filterService.get(this.config.id);\n }\n\n private buildForm(config: FilterConfig, settings: FilterSetting, reset?: boolean): void {\n const findPersonControl = this.form ? this.form.get('findPersonControl') : null;\n const findTaskNameControl = this.form ? this.form.get('findTaskNameControl') : null;\n this.form = this.fb.group({});\n if (findPersonControl) {\n // in order to maintain find person component, control needs to be kept\n this.form.addControl('findPersonControl', findPersonControl);\n }\n if (findTaskNameControl) {\n this.form.addControl('findTaskNameControl', findTaskNameControl);\n }\n for (const field of config.fields) {\n if (field.type === 'checkbox' || field.type === 'checkbox-large' || field.type === 'nested-checkbox') {\n const formArray = this.buildCheckBoxFormArray(field, settings);\n this.form.addControl(field.name, formArray);\n } else if (field.type === 'find-location' || field.type === 'find-service') {\n const formArray = this.buildFormArray(field, settings);\n this.form.addControl(field.name, formArray);\n } else {\n const validators: ValidatorFn[] = [];\n if (field.minSelected && field.minSelected > 0) {\n validators.push(Validators.required);\n\n if (field.type === 'text-input') {\n validators.push(Validators.minLength(field.minSelected));\n }\n\n if (field.type === 'email-input') {\n validators.push(Validators.email);\n }\n }\n\n let defaultValue: any = null;\n if (reset && config.cancelSetting) {\n const cancelField = config.cancelSetting.fields.find((f) => f.name === field.name);\n defaultValue = cancelField && cancelField.value ? cancelField.value[0] : '';\n } else if (settings && settings.fields) {\n const lastSavedValue = settings.fields.find((f) => f.name === field.name);\n defaultValue = lastSavedValue && lastSavedValue ? lastSavedValue.value[0] : '';\n }\n // if field is find-person build a form group;\n if (field.type === 'find-person') {\n const formGroup = new FormGroup({\n domain: new FormControl(defaultValue && defaultValue.hasOwnProperty('domain') ? defaultValue.domain : ''),\n email: new FormControl(defaultValue && defaultValue.hasOwnProperty('email') ? defaultValue.email : '', validators),\n id: new FormControl(defaultValue && defaultValue.hasOwnProperty('id') ? defaultValue.id : ''),\n name: new FormControl(defaultValue && defaultValue.hasOwnProperty('name') ? defaultValue.name : ''),\n knownAs: new FormControl(defaultValue && defaultValue.hasOwnProperty('knownAs') ? defaultValue.knownAs : ''),\n });\n this.form.addControl(field.name, formGroup);\n } else if (field.type === 'find-task-name') {\n const formGroup = new FormGroup({\n task_type_id: new FormControl(defaultValue && defaultValue.hasOwnProperty('task_type_id') ? defaultValue.task_type_id : ''),\n task_type_name: new FormControl(defaultValue && defaultValue.hasOwnProperty('task_type_name') ? defaultValue.task_type_name : ''),\n });\n this.form.addControl(field.name, formGroup);\n if (!defaultValue || !defaultValue.task_type_id) {\n this.form.get('findTaskNameControl')?.patchValue('');\n }\n } else if (field.type !== 'group-title') {\n const control = new FormControl(defaultValue, validators);\n this.form.addControl(field.name, control);\n }\n\n // if field updates find person component set the initial domain\n if (field.findPersonField) {\n this.fieldChanged(field, this.form);\n }\n }\n }\n }\n\n private buildCheckBoxFormArray(field: FilterFieldConfig, settings: FilterSetting): FormArray {\n const validators = GenericFilterComponent.addFormValidators(field);\n const formArray = this.fb.array([], validators);\n let defaultValues;\n if (settings && settings.fields) {\n defaultValues = settings.fields.find((f) => f.name === field.name);\n }\n for (const option of field.options) {\n let checked = false;\n if (defaultValues && Array.isArray(defaultValues.value)) {\n checked = !!defaultValues.value.find((value) => value === option.key);\n }\n formArray.push(new FormControl(checked));\n }\n\n return formArray;\n }\n\n private buildFormArray(field: FilterFieldConfig, settings: FilterSetting): FormArray {\n const validators = GenericFilterComponent.addFormValidators(field);\n const formArray = this.fb.array([], validators);\n let defaultValues: { name: string; value: any[] };\n if (settings && settings.fields) {\n defaultValues = settings.fields.find((f) => f.name === field.name);\n if (defaultValues && defaultValues.value && defaultValues.value.length > 0) {\n for (const defaultValue of defaultValues.value) {\n formArray.push(new FormControl(defaultValue));\n }\n }\n }\n return formArray;\n }\n\n private getSelectedValues(formValues: any, config: FilterConfig): any {\n return Object.keys(formValues).map((name: string) => {\n const values = formValues[name];\n if (Array.isArray(values)) {\n const field = config.fields.find((f) => f.name === name);\n if (field.type === 'find-location' || field.type === 'find-service') {\n return { value: values, name };\n }\n return { value: getValues(field.options, values), name };\n }\n return { value: [values], name };\n });\n }\n\n private emitFormErrors(form: FormGroup): void {\n let errors: FilterError[] = [];\n for (const field of this.config.fields) {\n const fieldName = field.name;\n const formGroup = form.get(fieldName);\n if (formGroup && formGroup.errors && (formGroup.errors.minlength || formGroup.errors.required)) {\n errors.push({ name: fieldName, error: field.minSelectedError });\n }\n if (formGroup && formGroup.errors && formGroup.errors.maxlength) {\n errors.push({ name: fieldName, error: field.maxSelectedError });\n }\n }\n\n // remove duplicates\n errors = errors.filter((filterError, i, arr) => {\n return errors.indexOf(arr.find((item) => item.name === filterError.name)) === i;\n });\n\n if (errors.length) {\n this.filterService.givenErrors.next(errors);\n }\n }\n\n public initValuesFromCacheForSkillsByServices() {\n if (this.settings && this.settings.fields) {\n const cachedValues = this.filteredSkillsByServicesCheckbox.map((skill) => {\n let selected = false;\n let isSelectedUserSkill: number;\n const selectedUserSkills = this.settings.fields.find((setting) => setting.name === 'user-skills');\n if (selectedUserSkills && selectedUserSkills.value && selectedUserSkills.value.length > 0) {\n isSelectedUserSkill = selectedUserSkills.value.findIndex((val) => {\n return String(val) === String(skill.key);\n });\n selected = isSelectedUserSkill !== -1;\n }\n\n return selected;\n });\n\n if (cachedValues.length > 0) {\n this.form.get('user-skills').setValue(cachedValues);\n }\n }\n this.cdr.markForCheck();\n }\n\n public filterSkillsByServices(services: string[], config: FilterConfig) {\n this.filteredSkillsByServices = [];\n this.filteredSkillsByServicesCheckbox = [];\n const userSkillsSelectField = config.fields.find((f) => f.name === 'user-skills' && f.type === 'group-select');\n const userSkillsCheckboxField = config.fields.find((f) => f.name === 'user-skills' && f.type === 'nested-checkbox');\n\n if (userSkillsSelectField) {\n const userSkills = userSkillsSelectField.groupOptions;\n if (!services || services.length === 0) {\n this.filteredSkillsByServices = userSkills;\n } else {\n services.forEach(s => {\n const groupOption = userSkills.find(u => u.group.toLowerCase() === s.toLowerCase());\n if (groupOption) {\n this.filteredSkillsByServices.push(groupOption);\n }\n });\n }\n } else if (userSkillsCheckboxField) {\n const userSkills = userSkillsCheckboxField.groupOptions;\n if (!services || services.length === 0) {\n this.filteredSkillsByServices = userSkills;\n } else {\n services.forEach((s) => {\n const groupOption = userSkills.find((u) => u.group.toLowerCase() === s.toLowerCase());\n if (groupOption) {\n this.filteredSkillsByServices.push(groupOption);\n }\n });\n this.filteredSkillsByServicesCheckbox = this.filteredSkillsByServices.map((skill) => {\n return skill.options;\n }).reduce((a, b) => {\n return a.concat(b);\n }, []);\n userSkillsCheckboxField.options = [];\n userSkillsCheckboxField.options = this.filteredSkillsByServicesCheckbox;\n\n this.form.setControl('user-skills', new FormArray([]));\n\n if (!this._config.copyFields) {\n this.filteredSkillsByServicesCheckbox.forEach(() => {\n (this.form.get('user-skills') as FormArray).push(new FormControl(false));\n });\n\n const prevValues = this.filteredSkillsByServicesCheckbox.map((skill) => {\n let selected = false;\n if (this.settings && this.settings.fields) {\n if (this.previousSelectedNestedCheckbox.length > 0) {\n selected = this.previousSelectedNestedCheckbox.includes(skill.key);\n }\n let isSelectedUserSkill: number;\n const selectedUserSkills = this.settings.fields.find((setting) => setting.name === 'user-skills');\n if (selectedUserSkills && selectedUserSkills.value && selectedUserSkills.value.length > 0) {\n isSelectedUserSkill = selectedUserSkills.value.findIndex((val) => Number(val) === Number(skill.key));\n selected = isSelectedUserSkill !== -1;\n }\n if (this.previousSelectedNestedCheckbox.length > 0) {\n // Pick up from previous selected\n selected = this.previousSelectedNestedCheckbox.includes(String(skill.key));\n }\n }\n\n return selected;\n });\n\n this.form.get('user-skills').setValue(prevValues);\n } else {\n const preSelectedSkills: boolean[] = [];\n\n this.filteredSkillsByServicesCheckbox.map((skillsByServices, index) => {\n for (let i = 0; i < this._config.preSelectedNestedCheckbox.length; i++) {\n const skillCopyValue = this._config.preSelectedNestedCheckbox[i];\n\n if (skillCopyValue.toString() === skillsByServices.key.toString()) {\n preSelectedSkills[index] = true;\n break;\n } else {\n preSelectedSkills[index] = false;\n }\n }\n });\n\n if (preSelectedSkills.length > 0) {\n preSelectedSkills.forEach((h) => {\n (this.form.get('user-skills') as FormArray).push(new FormControl(h));\n });\n } else {\n this.filteredSkillsByServicesCheckbox.map(() => {\n (this.form.get('user-skills') as FormArray).push(new FormControl(false));\n });\n }\n }\n return this.filteredSkillsByServicesCheckbox;\n }\n this.cdr.markForCheck();\n }\n\n this.filteredSkillsByServices = this.sortGroupOptions(this.filteredSkillsByServices);\n\n return this.filteredSkillsByServices;\n }\n\n private getSelectedValuesForFields(formValues: any, field: FilterFieldConfig): string[] {\n const selectedValues: string[] = [];\n Object.keys(formValues).map((name: string) => {\n const values = formValues[name].value;\n if (name === field.name) {\n values.forEach((v: any) => {\n selectedValues.push(v.key);\n });\n }\n });\n return selectedValues;\n }\n\n private sortGroupOptions(groupOptions: GroupOptions[]): GroupOptions[] {\n const sortedResults: GroupOptions[] = [];\n const groups = groupOptions.map((go) => go.group);\n groups.sort().forEach((g) => {\n const options = groupOptions.find((go: any) => go.group === g).options;\n const sortedOptions = options.sort((a, b) => {\n return a.label.toLowerCase() > b.label.toLowerCase() ? 1 : (b.label.toLowerCase() > a.label.toLowerCase() ? -1 : 0);\n });\n const result = {\n group: g,\n options: sortedOptions\n };\n sortedResults.push(result);\n });\n return sortedResults;\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n/*\n* Gov UK Dialog Component\n* Responsible for displaying dialog layout\n* using ng-content to display content from parent\n* */\n@Component({\n selector: 'xuilib-session-dialog',\n templateUrl: './hmcts-session-dialog.component.html',\n styleUrls: ['./hmcts-session-dialog.component.scss'],\n standalone: false\n})\nexport class HmctsSessionDialogComponent {\n\n @Input() public positionTop: string;\n @Output() public close = new EventEmitter();\n constructor() {}\n\n public onClose(): void {\n this.close.emit();\n }\n\n}\n","<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","@if (config.isPageHeading) {\n <h1>\n @if (config.label) {\n <label [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label | rpxTranslate }}</span>\n @if (config.optional) {\n <span class=\"govuk-label__optional\">(optional)</span>\n }\n </label>\n }\n </h1>\n} @else {\n @if (config.label) {\n <label [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n @if (config.optional) {\n <span class=\"govuk-label__optional\">(optional)</span>\n }\n </label>\n }\n}\n","import {Component, Input} from '@angular/core';\n\n/*\n* Gov UK Label component\n* Responsible for displaying label tag\n* @prop isPageHading - boolean to display h1\n* @prop config - obj with properties\n* */\n@Component({\n selector: 'xuilib-gov-label',\n templateUrl: './gov-uk-label.component.html',\n styleUrls: ['./gov-uk-label.component.scss'],\n standalone: false\n})\nexport class GovUkLabelComponent {\n constructor() { }\n @Input() public config: { label: string, name: string; id: string, isPageHeading: boolean, classes: string, optional?: string };\n\n}\n","\nimport {Directive, ElementRef, OnInit} from '@angular/core';\n/*\n* Remove Host Directive\n* Used to remove native angular host tags tags\n* sometimes needed because of CSS dependencies\n* */\n@Directive({\n selector: '[appRemoveHost]',\n standalone: false\n})\nexport class RemoveHostDirective implements OnInit {\n\n constructor(private readonly el: ElementRef) {}\n\n public ngOnInit() {\n const nativeElement: HTMLElement = this.el.nativeElement;\n const parentElement: HTMLElement = nativeElement.parentElement;\n // move all children out of the element\n while (nativeElement.firstChild) {\n parentElement.insertBefore(nativeElement.firstChild, nativeElement);\n }\n parentElement.removeChild(nativeElement);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n* Gov Uk Checkbox Dumb Component responsible for\n* displaying checkbox input and hint\n*\n* */\n@Component({\n selector: 'xuilib-gov-checkbox',\n templateUrl: './gov-uk-checkbox.component.html',\n standalone: false\n})\n\nexport class GovUkCheckboxComponent implements OnInit {\n constructor() { }\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n @Input() public isChecked: boolean = false;\n // {value: string, label: string, hint: string; name: string; focusOn: string; id: string; classes: string};\n\n public id: string;\n\n public ngOnInit(): void {\n const id = this.config.focusOn ? this.config.focusOn : this.config.value;\n this.config.id = id;\n this.config.classes = this.config.classes ?\n this.config.classes.concat(' govuk-checkboxes__label') : 'govuk-checkboxes__label';\n }\n}\n","<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","@for (message of errorMessage?.messages; track message) {\n <span class=\"govuk-error-message\" [id]=\"config.id + '-error'\">\n <span class=\"govuk-visually-hidden\">{{'Error' | rpxTranslate}}:</span>{{message | rpxTranslate}}\n </span>\n}\n","import {Component, Input} from '@angular/core';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n* Gov UK Error Message\n* Responsible for displaying in-line error messages\n* @prop config - obj with properties\n* @prop errorMessage - all error bject with messages property that is arry of strings.\n* */\n@Component({\n selector: ' xuilib-gov-uk-error-message',\n templateUrl: './gov-uk-error-message.component.html',\n standalone: false\n})\nexport class GovUkErrorMessageComponent {\n constructor() { }\n @Input() public config: GovUiConfigModel;\n // { id: string };\n @Input() public errorMessage: ErrorMessagesModel;\n}\n","import { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n\n/*\n * Helper Class\n * Used for dynamic templates manipulation\n * */\n\nexport class HtmlTemplatesHelper {\n /*\n * Sets described by string depending if\n * there is an error, error and hit or nothing\n * */\n public static setDescribedBy(errorMessage: ErrorMessagesModel, config: GovUiConfigModel) {\n if (!errorMessage) {\n return config.hint ? `${config.id}-hint` : null;\n } else if (errorMessage && errorMessage.isInvalid) {\n return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;\n } else {\n return config.hint ? `${config.id}-hint` : null;\n }\n }\n}\n","<fieldset class=\"govuk-fieldset\" [attr.aria-describedby]=\"setDescribedBy()\">\n @if (!config.isPageHeading) {\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\">\n {{config.legend | rpxTranslate}}\n </legend>\n }\n\n @if (config.isPageHeading) {\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\">\n <h1>{{config.legend | rpxTranslate}}</h1>\n </legend>\n }\n\n @if (config.hint) {\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n </span>\n }\n <ng-content></ng-content>\n</fieldset>\n","import {Component, Input} from '@angular/core';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\nimport {HtmlTemplatesHelper} from '../../util/helpers/html-templates.helper';\n/*\n* Gov Uk Fieldset Component\n* Used to wrap group fieldset elements\n* it can conditionally display h1 tag\n* @param config\n* @param isHeading\n* @param errorMessage - used for aria tag\n* */\n@Component({\n selector: 'xuilib-gov-uk-fieldset',\n templateUrl: './gov-uk-fieldset.component.html',\n standalone: false\n})\nexport class GovUkFieldsetComponent {\n constructor() { }\n @Input() public config: GovUiConfigModel;\n // {legend: string; classes: string, id: string, hint: string, key: string, isPageHeading: boolean};\n // @Input() public isPageHeading: boolean;\n @Input() public errorMessage: ErrorMessagesModel;\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, Input} from '@angular/core';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n* Gov Uk Form Group Wrapper\n* Used to wrap group form elements in html tags below such as\n* gov-uk-checkboxes and radio buttons\n* and errorMessage messages\n* */\n@Component({\n selector: 'xuilib-gov-uk-form-group-wrapper',\n templateUrl: './gov-uk-form-group-wrapper.component.html',\n standalone: false\n})\nexport class GovUkFormGroupWrapperComponent {\n constructor() { }\n @Input() public error: ErrorMessagesModel;\n @Input() public group: string;\n @Input() public config: GovUiConfigModel;\n // {hint: string; legend: string, key: string, isPageHeading: boolean;}; // TODO create a global interface\n\n}\n\n","<div class=\"govuk-form-group\" [attr.formGroupName]=\"group\" [ngClass]=\"{'govuk-form-group--error': (error?.isInvalid)}\">\n <xuilib-gov-uk-fieldset\n [config]=\"{legend: config.legend, classes: 'govuk-label--m', id: config.key, hint: config.hint, isPageHeading: config.isPageHeading}\"\n [errorMessage]=\"error\">\n\n <xuilib-gov-uk-error-message [config]=\"{id: group}\" [errorMessage]=\"error\"></xuilib-gov-uk-error-message>\n\n <ng-content></ng-content>\n\n </xuilib-gov-uk-fieldset>\n</div>","import {Component, Input} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ErrorMessagesModel } from '../../gov-ui/models';\n\n@Component({\n selector: 'xuilib-invite-permission-form',\n templateUrl: './invite-user-permission.component.html',\n standalone: false\n})\n\n export class InviteUserPermissionComponent {\n @Input() public inviteUserForm: FormGroup;\n @Input() public isPuiCaseManager: boolean = false;\n @Input() public isPuiUserManager: boolean = false;\n @Input() public isPuiOrganisationManager: boolean = false;\n @Input() public isPuiFinanceManager: boolean = false;\n @Input() public errorMessages: ErrorMessagesModel;\n }\n"," <!--permissions -->\n <ng-container [formGroup]=\"inviteUserForm\">\n <xuilib-gov-uk-form-group-wrapper\n [config]=\"{hint: 'Choose what the user will be able to do. You can change this later.', legend: 'Permissions', key: 'roles'}\"\n [formGroupName]=\"'roles'\"\n [error]=\"errorMessages\">\n\n <div class=\"govuk-checkboxes\">\n <xuilib-gov-checkbox\n [group]=\"inviteUserForm.controls['roles']\"\n [isChecked]=\"isPuiCaseManager\"\n [config]=\"{value: 'pui-case-manager', label: 'Manage Cases', name: 'roles', hint: 'View, create and progress cases.', focusOn: 'roles'}\">\n </xuilib-gov-checkbox>\n\n <xuilib-gov-checkbox\n [group]=\"inviteUserForm.controls['roles']\"\n [isChecked]=\"isPuiUserManager\"\n [config]=\"{value: 'pui-user-manager', label: 'Manage Users', name: 'roles',\n hint: 'Invite users.'}\">\n </xuilib-gov-checkbox>\n\n <xuilib-gov-checkbox\n [group]=\"inviteUserForm.controls['roles']\"\n [isChecked]=\"isPuiOrganisationManager\"\n [config]=\"{value: 'pui-organisation-manager', label: 'Manage Organisation', name: 'roles',\n hint: 'View organisation name and addresses.'}\">\n </xuilib-gov-checkbox>\n\n <!-- <xuilib-gov-checkbox\n [group]=\"inviteUserForm.controls['roles']\"\n [isChecked]=\"isPuiFinanceManager\"\n [config]=\"{value: 'pui-finance-manager', label: 'Manage Payments', name: 'roles',\n hint: 'View account balances, available credit and transactions.'}\">\n </xuilib-gov-checkbox> -->\n </div>\n\n </xuilib-gov-uk-form-group-wrapper>\n</ng-container>","<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 @if (config.hint) {\n <span [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n </span>\n }\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","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ErrorMessagesModel, GovUiConfigModel } from '../../models';\nimport { HtmlTemplatesHelper } from '../../util/helpers/html-templates.helper';\n/*\n* Gov UK Input component\n* Responsible for displaying input, hint and error messages\n* @prop errorMessages - array of messages\n* @prop focusOn - passing the FormGroup\n* @prop config - adding configuration\n* */\n@Component({\n selector: 'xuilib-gov-uk-input',\n templateUrl: './gov-uk-input.component.html',\n styleUrls: ['./gov-uk-input.component.scss'],\n standalone: false\n})\nexport class GovUkInputComponent implements OnInit {\n constructor() { }\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n // { label: string, hint: string; name: string; id: string, type: string; isPageHeading: boolean, classes: string };\n\n public ngOnInit(): void {\n this.config.classes = typeof(this.config.classes) === 'string' ? this.config.classes : 'govuk-label govuk-label--m';\n }\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\n\n@Component({\n selector: 'xuilib-invite-user-form',\n templateUrl: './invite-user-form.component.html',\n standalone: false\n})\n\nexport class InviteUserFormComponent {\n\n public isInvalid: any;\n\n @Output() public submitForm = new EventEmitter();\n @Input() public inviteUserForm: FormGroup;\n @Input() public set errorMessages(value: any) {\n this.isInvalid = value || {} ;\n }\n\n public onSubmit() {\n this.submitForm.emit();\n }\n}\n","\n<form [formGroup]=\"inviteUserForm\" (ngSubmit)=\"onSubmit()\" >\n\n <xuilib-gov-uk-input\n [config]=\"{label: 'First name', hint: 'Include all middle names.', name: 'firstName', id: 'firstName', type: 'text', classes: 'testClass'}\"\n [errorMessage]=\"isInvalid.firstName\"\n [group]=\"inviteUserForm\">\n </xuilib-gov-uk-input>\n\n <xuilib-gov-uk-input\n [config]=\"{label: 'Last name', name: 'lastName', id: 'lastName', type: 'text'}\"\n [errorMessage]=\"isInvalid.lastName\"\n [group]=\"inviteUserForm\">\n </xuilib-gov-uk-input>\n\n <xuilib-gov-uk-input\n [config]=\"{label: 'Email address', name: 'email', id: 'email', type: 'email'}\"\n [errorMessage]=\"isInvalid.email\"\n [group]=\"inviteUserForm\">\n </xuilib-gov-uk-input>\n\n <xuilib-invite-permission-form [inviteUserForm]=\"inviteUserForm\" [errorMessages]=\"isInvalid.roles\">\n </xuilib-invite-permission-form>\n\n <button type=\"submit\" class=\"govuk-button\">\n Send invitation\n </button>\n</form>\n","import { AfterContentChecked, ChangeDetectorRef, Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'xuilib-loading-spinner',\n templateUrl: './loading-spinner.component.html',\n styleUrls: ['./loading-spinner.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\n\nexport class LoadingSpinnerComponent implements AfterContentChecked {\n @Input() public loadingText: string = 'Loading';\n\n constructor(private readonly ref: ChangeDetectorRef) {}\n\n // checks the data projected into the component\n public ngAfterContentChecked() {\n this.ref.detectChanges();\n }\n\n}\n","<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","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { SharedCase } from '../../models/case-share.model';\nimport { UserDetails } from '../../models/user-details.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CaseSharingStateService {\n\n private caseState: SharedCase[] = [];\n private readonly subject = new BehaviorSubject<SharedCase[]>(this.caseState);\n\n public get state() {\n return this.subject.asObservable().pipe(\n distinctUntilChanged()\n );\n }\n\n constructor() { }\n\n public setCases(cases: SharedCase[]): void {\n this.caseState = [];\n cases.forEach(aCase => {\n this.caseState.push({ caseId: aCase.caseId, caseTitle: aCase.caseTitle, caseTypeId: aCase.caseTypeId, roles: aCase.roles,\n sharedWith: aCase.sharedWith, pendingShares: aCase.pendingShares, pendingUnshares: aCase.pendingUnshares });\n });\n this.subject.next(this.caseState);\n }\n\n public getCases(): SharedCase[] {\n return this.caseState;\n }\n\n public requestShare(user: UserDetails): SharedCase[] {\n const oldSharedCases: SharedCase[] = this.caseState.slice();\n const newSharedCases: SharedCase[] = [];\n for (const sharedCase of oldSharedCases) {\n if (!sharedCase.pendingShares) {\n sharedCase.pendingShares = [];\n }\n const newPendingShares = sharedCase.pendingShares.slice();\n if (!sharedCase.pendingUnshares) {\n sharedCase.pendingUnshares = [];\n }\n const newPendingUnshares = sharedCase.pendingUnshares.slice();\n if (!this.userHasAccess(sharedCase, user)) {\n if (!newPendingShares.some(u => u.email === user.email)) {\n newPendingShares.push(user);\n }\n } else {\n for (let u = 0, ul = newPendingUnshares.length; u < ul; u++) {\n if (newPendingUnshares[u].email === user.email) {\n newPendingUnshares.splice(u, 1);\n break;\n }\n }\n }\n const newSharedCase = {\n ...sharedCase,\n pendingUnshares: newPendingUnshares,\n pendingShares: newPendingShares\n };\n newSharedCases.push(newSharedCase);\n }\n this.subject.next(newSharedCases);\n return newSharedCases;\n }\n\n public requestUnshare(user: UserDetails, caseId?: string): SharedCase[] {\n const newSharedCases: SharedCase[] = [];\n for (const sharedCase of this.caseState) {\n // If no caseId, then request unshare from all shared cases\n if (caseId === undefined || sharedCase.caseId === caseId) {\n if (!sharedCase.pendingUnshares) {\n sharedCase.pendingUnshares = [];\n }\n const newPendingUnshares = sharedCase.pendingUnshares.slice();\n // If the user is pending shared access, just remove them from pendingShares\n let newPendingShares;\n let indexOfPreviouslyAddedUser = -1;\n if (sharedCase.pendingShares) {\n indexOfPreviouslyAddedUser = sharedCase.pendingShares.findIndex(u => u.idamId === user.idamId);\n if (indexOfPreviouslyAddedUser > -1) {\n newPendingShares = sharedCase.pendingShares.slice();\n newPendingShares.splice(indexOfPreviouslyAddedUser, 1);\n }\n }\n // If the user does not exist in pendingShares, and already has shared access (i.e. exists in sharedWith),\n // request removal of shared access\n if (indexOfPreviouslyAddedUser === -1 && sharedCase.sharedWith && sharedCase.sharedWith.findIndex(\n u => u.idamId === user.idamId) > -1) {\n if (!newPendingUnshares.some(u => u.email === user.email)) {\n newPendingUnshares.push(user);\n }\n }\n const newSharedCase = {\n ...sharedCase,\n pendingUnshares: newPendingUnshares,\n ...(newPendingShares && {\n pendingShares: newPendingShares\n })\n };\n newSharedCases.push(newSharedCase);\n } else {\n newSharedCases.push(sharedCase);\n }\n }\n this.subject.next(newSharedCases);\n return newSharedCases;\n }\n\n public requestCancel(caseId: string, user: UserDetails): void {\n const newSharedCases: SharedCase[] = [];\n for (const sharedCase of this.caseState) {\n if (sharedCase.caseId === caseId) {\n if (!sharedCase.pendingUnshares) {\n sharedCase.pendingUnshares = [];\n }\n const newPendingUnshares = sharedCase.pendingUnshares.slice();\n for (let iPendingUnshares = 0; iPendingUnshares < newPendingUnshares.length; iPendingUnshares++) {\n if (newPendingUnshares[iPendingUnshares].email === user.email) {\n newPendingUnshares.splice(iPendingUnshares, 1);\n break;\n }\n }\n if (!sharedCase.pendingShares) {\n sharedCase.pendingShares = [];\n }\n const newPendingShares = sharedCase.pendingShares.slice();\n for (let iPendingShares = 0; iPendingShares < newPendingShares.length; iPendingShares++) {\n if (newPendingShares[iPendingShares].email === user.email) {\n newPendingShares.splice(iPendingShares, 1);\n break;\n }\n }\n const newSharedCase = {\n ...sharedCase,\n pendingUnshares: newPendingUnshares,\n pendingShares: newPendingShares\n };\n newSharedCases.push(newSharedCase);\n } else {\n newSharedCases.push(sharedCase);\n }\n }\n this.subject.next(newSharedCases);\n return;\n }\n\n public removeCase(caseId: string): void {\n if (this.caseState.length > 1) {\n for (let i = 0, l = this.caseState.length; i < l; i++) {\n if (this.caseState[i].caseId === caseId) {\n this.caseState.splice(i, 1);\n this.subject.next(this.caseState);\n return;\n }\n }\n }\n }\n\n public userHasAccess(c: SharedCase, user: UserDetails): boolean {\n if (!c.sharedWith) {\n return false;\n }\n for (let i = 0, l = c.sharedWith.length; i < l; i++) {\n if (c.sharedWith[i].email === user.email) {\n return true;\n }\n }\n return false;\n }\n}\n","@if (showUserAccessBlock()) {\n <div id=\"user-access-block-{{ sharedCase.caseId }}\">\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\">\n {{'Change' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'selected case' | rpxTranslate}}</span>\n </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 @for (user of sharedCase.pendingShares; track trackByUserId(user)) {\n <tr class=\"govuk-table__row\">\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 }\n @for (user of sharedCase.pendingUnshares; track trackByUserId(user)) {\n <tr class=\"govuk-table__row\">\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 }\n </tbody>\n </table>\n </div>\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SharedCase } from '../../models/case-share.model';\nimport { UserDetails } from '../../models/user-details.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\n\n@Component({\n selector: 'xuilib-selected-case-confirm',\n templateUrl: './selected-case-confirm.component.html',\n styleUrls: ['./selected-case-confirm.component.scss'],\n standalone: false\n})\nexport class SelectedCaseConfirmComponent implements OnInit {\n\n @Input() public sharedCase: SharedCase;\n @Input() public changeLink: string = '';\n\n public shareCases: SharedCase[];\n public shareCases$: Observable<SharedCase[]>;\n\n constructor(private readonly stateService: CaseSharingStateService) { }\n\n public ngOnInit() {\n this.shareCases$ = this.stateService.state;\n this.shareCases$.subscribe(shareCases => this.shareCases = shareCases);\n }\n\n public trackByUserId(user: UserDetails): string {\n return user.idamId;\n }\n\n public showUserAccessBlock(): boolean {\n if (this.sharedCase.pendingShares && this.sharedCase.pendingShares.length > 0) {\n return true;\n }\n return this.sharedCase.pendingUnshares && this.sharedCase.pendingUnshares.length > 0;\n }\n}\n","<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 <h3 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId | rpxTranslate }}</h3>\n </div>\n <div class=\"govuk-grid-column-ten-percent\">\n @if (caseCount > 1) {\n <button\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 }\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-ten-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n [attr.aria-controls]=\"'accordion-with-summary-sections-content' + buildElementId('accordion-with-summary-sections-heading')\" class=\"govuk-accordion__section-button\"\n 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 [attr.aria-labelledby]=\"buildElementId('accordion-with-summary-sections-heading')\" >\n @if (showNoUsersAccessInfo()) {\n <div class=\"govuk-grid-row\">\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 }\n @if (showUserHasAccessInfo()) {\n <div class=\"govuk-grid-row\">\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 }\n @if (showUserAccessTable()) {\n <table class=\"govuk-table\">\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 @for (user of combinedSortedShares; track trackByUserId(user); let idx = $index) {\n <tr class=\"govuk-table__row\">\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 @if (canRemove(sharedCase.caseId, user) | async) {\n <a (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 }\n @if (canCancel(sharedCase.caseId, user) | async) {\n <a (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 }\n </td>\n <td class=\"govuk-table__cell\">\n @if (isToBeRemoved(sharedCase.caseId, user) | async) {\n <span class=\"hmcts-badge hmcts-badge--red\">{{'To be removed' | rpxTranslate}}</span>\n }\n @if (isToBeAdded(sharedCase.caseId, user) | async) {\n <span class=\"hmcts-badge\">{{'To be added' | rpxTranslate}}</span>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n </div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { SharedCase } from '../../models/case-share.model';\nimport { UserDetails } from '../../models/user-details.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\n\n@Component({\n selector: 'xuilib-selected-case',\n templateUrl: './selected-case.component.html',\n styleUrls: ['./selected-case.component.scss'],\n standalone: false\n})\nexport class SelectedCaseComponent implements OnInit, OnChanges {\n\n @Input() public sharedCase: SharedCase;\n @Input() public selectedUser: UserDetails;\n @Input() public opened = false;\n @Input() public removeUserFromCaseToggleOn: boolean;\n @Input() public caseCount: number;\n\n @Output() public unselect = new EventEmitter<SharedCase>();\n @Output() public synchronizeStore = new EventEmitter<any>();\n\n public shareCases: SharedCase[];\n public shareCases$: Observable<SharedCase[]>;\n\n public combinedSortedShares: UserDetails[];\n\n constructor(private readonly stateService: CaseSharingStateService) { }\n\n public ngOnInit() {\n this.shareCases$ = this.stateService.state;\n this.shareCases$.subscribe(shareCases => this.shareCases = shareCases);\n\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.sharedCase) {\n const sharedWith = this.sharedCase.sharedWith ? this.sharedCase.sharedWith : [];\n const pendingShares = this.sharedCase.pendingShares ? this.sharedCase.pendingShares : [];\n this.combinedSortedShares = this.combineAndSortShares(sharedWith, pendingShares);\n }\n }\n\n public onDeselect(c: SharedCase): void {\n this.unselect.emit(c);\n }\n\n public trackByUserId(user: UserDetails): string {\n return user.idamId;\n }\n\n public canRemove(caseId: string, user: UserDetails): Observable<boolean> {\n return this.shareCases$.pipe(map(cases => {\n if (this.removeUserFromCaseToggleOn) {\n for (const aCase of cases) {\n if (aCase.caseId === caseId) {\n if (aCase.pendingUnshares && aCase.pendingUnshares.some(u => u.idamId === user.idamId)) {\n return false;\n }\n if (aCase.sharedWith && aCase.sharedWith.some(u => u.idamId === user.idamId)) {\n return true;\n }\n }\n }\n }\n return false;\n }));\n }\n\n public canCancel(caseId: string, user: UserDetails): Observable<boolean> {\n return this.shareCases$.pipe(map(cases => {\n for (const aCase of cases) {\n if (aCase.caseId === caseId) {\n if (aCase.pendingShares && aCase.pendingShares.some(u => u.idamId === user.idamId)) {\n return true;\n }\n if (aCase.pendingUnshares && aCase.pendingUnshares.some(u => u.idamId === user.idamId)) {\n return true;\n }\n return false;\n }\n }\n }));\n }\n\n public isToBeRemoved(caseId: string, user: UserDetails): Observable<boolean> {\n return this.shareCases$.pipe(map(cases => {\n for (const aCase of cases) {\n if (aCase.caseId === caseId) {\n return aCase.pendingUnshares && aCase.pendingUnshares.some(u => u.idamId === user.idamId);\n }\n }\n }));\n }\n\n public isToBeAdded(caseId: string, user: UserDetails): Observable<boolean> {\n return this.shareCases$.pipe(map(cases => {\n for (const aCase of cases) {\n if (aCase.caseId === caseId) {\n return aCase.pendingShares && aCase.pendingShares.some(u => u.idamId === user.idamId);\n }\n }\n }));\n }\n\n public onRemove(user: UserDetails, sharedCase: SharedCase): void {\n this.stateService.requestUnshare(user, sharedCase.caseId);\n this.synchronizeStore.emit(this.shareCases);\n }\n\n public onCancel(user: UserDetails, sharedCase: SharedCase): void {\n this.stateService.requestCancel(sharedCase.caseId, user);\n this.synchronizeStore.emit(this.shareCases);\n }\n\n public showNoUsersAccessInfo(): boolean {\n // A user is added to a case\n if (this.sharedCase.pendingShares) {\n if (this.sharedCase.pendingShares.length > 0) {\n return false;\n }\n }\n // A case has 0 users with access to it\n if (this.sharedCase.sharedWith) {\n if (this.sharedCase.sharedWith.length === 0) {\n return true;\n }\n }\n // Access to the last user is removed\n if (this.sharedCase.sharedWith && this.sharedCase.pendingUnshares) {\n if (this.sharedCase.pendingUnshares.length > 0\n && this.sharedCase.sharedWith.length === this.sharedCase.pendingUnshares.length) {\n return true;\n }\n }\n return false;\n }\n\n public showUserHasAccessInfo(): boolean {\n return !this.showNoUsersAccessInfo();\n }\n\n public showUserAccessTable(): boolean {\n if (this.sharedCase.pendingShares) {\n if (this.sharedCase.pendingShares.length > 0) {\n return true;\n }\n }\n if (this.sharedCase.sharedWith) {\n if (this.sharedCase.sharedWith.length > 0) {\n return true;\n }\n }\n return false;\n }\n\n public combineAndSortShares(sharedWith: UserDetails[], pendingShares: UserDetails[]): UserDetails[] {\n return [\n ...sharedWith,\n ...pendingShares\n ].sort((user1, user2) => {\n return user1.firstName.toLowerCase() > user2.firstName.toLowerCase() ? 1 : (user2.firstName.toLowerCase() > user1.firstName.toLowerCase() ? -1 : 0);\n });\n }\n\n public userIdSetter(isPending: boolean, id: number): string {\n return isPending ? `pendingShares-${id}` : `${id}`;\n }\n\n public buildElementId(elementName: string): string {\n return `${elementName}-${this.sharedCase.caseId}`;\n }\n}\n","@if (!toConfirm) {\n @for (sharedCase of (shareCases$ | async); track trackByCaseId(sharedCase)) {\n <xuilib-selected-case\n [sharedCase]=\"sharedCase\"\n [caseCount]=\"caseCount\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case>\n }\n}\n\n@if (toConfirm) {\n @for (sharedCase of (shareCases$ | async); track trackByCaseId(sharedCase)) {\n <xuilib-selected-case-confirm\n [sharedCase]=\"sharedCase\"\n [changeLink]=\"changeLink\">\n </xuilib-selected-case-confirm>\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SharedCase } from '../../models/case-share.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\n\n@Component({\n selector: 'xuilib-selected-case-list',\n templateUrl: './selected-case-list.component.html',\n styleUrls: ['./selected-case-list.component.scss'],\n standalone: false\n})\nexport class SelectedCaseListComponent implements OnInit {\n\n public shareCases: SharedCase[] = [];\n public caseCount: number;\n\n @Input() public shareCases$: Observable<SharedCase[]>;\n\n @Input() public removeUserFromCaseToggleOn: boolean;\n\n @Input() public toConfirm: boolean = false;\n\n @Input() public changeLink: string = '';\n\n @Output() public unselect = new EventEmitter<SharedCase>();\n @Output() public synchronizeStore = new EventEmitter<SharedCase>();\n\n constructor(private readonly stateService: CaseSharingStateService) { }\n\n public ngOnInit() {\n this.shareCases$ = this.stateService.state;\n this.shareCases$.subscribe((shareCases) => {\n this.shareCases = shareCases;\n this.caseCount = this.shareCases.length;\n });\n }\n\n public onUnselect(sharedCase: SharedCase): void {\n this.unselect.emit(sharedCase);\n this.caseCount = this.shareCases.length;\n }\n\n public onSynchronizeStore(event: any): void {\n this.synchronizeStore.emit(event);\n }\n\n public trackByCaseId(sharedCase: SharedCase): string {\n return sharedCase.caseId;\n }\n}\n","<div class=\"hmcts-banner hmcts-banner--warning\">\n\n <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"img\" aria-label=\"hmcts-warning-icon\" 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_en\"></h2>\n @if (message_cy) {\n <h2 class=\"govuk-heading-s\" [innerHTML]=\"message_cy\"></h2>\n }\n <a [routerLink]=\"\" tabindex=\"0\" class=\"govuk-link--no-visited-state\" (click)=\"onHideMessageEvent(key)\" (keyup.enter)=\"onHideMessageEvent(key)\">{{'Hide message' | rpxTranslate}}</a>\n </div>\n\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ServiceMessages } from '../../models/service-message.model';\n\n@Component({\n selector: 'xuilib-service-message',\n templateUrl: './service-message.component.html',\n styleUrls: ['./service-message.component.scss'],\n standalone: false\n})\nexport class ServiceMessageComponent {\n @Input() public message_en: string;\n @Input() public message_cy?: string;\n @Input() public key: ServiceMessages;\n @Output() public hideMessage = new EventEmitter<ServiceMessages>();\n constructor() { }\n\n public onHideMessageEvent(key: ServiceMessages) {\n this.hideMessage.emit(key);\n }\n}\n","@if (isBannerError) {\n <div class=\"govuk-width-container govuk-!-margin-top-6\">\n @for (errMsg of bannerErrorMsgs; track errMsg) {\n <div class=\"hmcts-banner hmcts-banner--warning\">\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 <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">{{'Warning' | rpxTranslate}}</span>\n <h2 class=\"govuk-heading-s\">Error:</h2>\n <p [innerHTML]=\"errMsg.message\"></p>\n </div>\n </div>\n }\n </div>\n}\n@if (filteredMessages?.length > 0) {\n <div class=\"govuk-width-container govuk-!-margin-top-6\">\n @for (message of filteredMessages; track message) {\n <xuilib-service-message [key]=\"message\"\n [message_en]=\"message?.message_en | rpxTranslate\"\n [message_cy]=\"message?.message_cy | rpxTranslate\"\n (hideMessage)=\"hideMessage($event)\">\n </xuilib-service-message>\n }\n </div>\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { FeatureToggleService } from '../../services/feature-toggle/feature-toggle.service';\nimport { ServiceMessages } from '../../models/service-message.model';\n\n\n@Component({\n selector: 'xuilib-service-messages',\n templateUrl: './service-messages.component.html',\n standalone: false\n})\nexport class ServiceMessagesComponent implements OnInit {\n public hiddenBanners: string[];\n public filteredMessages: ServiceMessages[] = [];\n public isBannerError: boolean;\n public bannerErrorMsgs: { message: string, index: number }[] = [];\n public originalMessages: ServiceMessages[] = [];\n\n @Input() public userRoles: string[];\n @Input() public featureToggleKey: string;\n @Input() public serviceMessageCookie: string;\n\n constructor(private readonly featureToggleService: FeatureToggleService) { }\n\n public ngOnInit() {\n this.getServiceMessages();\n }\n\n public getServiceMessages(): void {\n this.featureToggleService.getValue<ServiceMessages[]>(this.featureToggleKey, null)\n .subscribe(messages => {\n this.originalMessages = messages;\n if (!!messages) {\n this.createFilteredMessages(messages);\n }\n });\n }\n\n private createFilteredMessages(messages: ServiceMessages[]): void {\n this.hiddenBanners = this.getSessionCookie(this.serviceMessageCookie) || [];\n const messageCount = messages.length;\n this.filteredMessages = messages.filter((message) => {\n const { roles, message_en } = message;\n const regEx = new RegExp(roles);\n // If userRoles is empty or undefined, allow the message through\n const isRoleMatch =\n ((!this.userRoles || this.userRoles.length === 0) && messageCount === 1 && roles === '.+')\n || (this.userRoles && this.userRoles.some((role) => regEx.test(role)));\n\n return isRoleMatch &&\n this.compareDates(message) &&\n !this.hiddenBanners.includes(message_en);\n });\n }\n\n private compareDates(msg: ServiceMessages): boolean {\n let currentDateTime = new Date();\n let beginDate: Date | null = null;\n let endDate: Date | null = null;\n this.bannerErrorMsgs = [];\n\n // Parse beginDate if msg.begin is present and valid\n if (msg.begin && !isNaN(Date.parse(msg.begin))) {\n beginDate = new Date(msg.begin);\n }\n\n if (msg.end && !isNaN(Date.parse(msg.end))) {\n endDate = new Date(msg.end);\n }\n this.originalMessages.forEach(msg => {\n // Only check for errors if both beginDate and endDate are present and valid\n if ((msg.begin && !isNaN(Date.parse(msg.end))) && (msg.end && !isNaN(Date.parse(msg.end))) && new Date(msg.begin) > new Date(msg.end)) {\n this.isBannerError = true;\n this.bannerErrorMsgs.push({\n message: `The start date is greater than the end date. Message index: ${msg.index}`,\n index: msg.index\n });\n }\n \n // Check for invalid beginDate or endDate separately, if they are present\n if (msg.begin && isNaN(Date.parse(msg.begin))) {\n this.isBannerError = true;\n this.bannerErrorMsgs.push({\n message: `Invalid start date. Message index: ${msg.index}`,\n index: msg.index\n });\n }\n if (msg.end && isNaN(Date.parse(msg.end))) {\n this.isBannerError = true;\n this.bannerErrorMsgs.push({\n message: `Invalid end date. Message index: ${msg.index}`,\n index: msg.index\n });\n }\n });\n\n const beginDateOK = !msg.begin || (beginDate && beginDate < currentDateTime);\n const endDateOK = !msg.end || (endDate && endDate >= currentDateTime);\n\n return beginDateOK && endDateOK;\n }\n\n private setSessionCookie(name: string, value: any): void {\n document.cookie = `${name}=${encodeURIComponent(JSON.stringify(value))}; path=/; SameSite=Lax`;\n }\n\n public hideMessage(msg: ServiceMessages): void {\n this.filteredMessages = this.filteredMessages.filter((f) => f.index !== msg.index);\n this.hiddenBanners.push(msg.message_en);\n this.setSessionCookie(this.serviceMessageCookie, this.hiddenBanners);\n }\n\n private getSessionCookie(name: string): any {\n const cookies = document.cookie.split('; ');\n const cookie = cookies.find((row) => row.startsWith(name + '='));\n return cookie ? JSON.parse(decodeURIComponent(cookie.split('=')[1])) : [];\n }\n}\n","<div id=\"casesToConfirm\">\n <h3 class=\"govuk-heading-l\">{{'Cases' | rpxTranslate}}</h3>\n @if (shareCases && shareCases.length > 0) {\n <div 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\n @if (shareCases && shareCases.length === 0) {\n <div id=\"noCaseDisplay\" class=\"govuk-hint\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n }\n\n</div>\n\n@if (shareCases && shareCases.length > 0) {\n <div id=\"share-case-nav\">\n <button class=\"govuk-button\" title=\"Confirm\" [routerLink]=\"completeLink\">{{'Confirm' | rpxTranslate}}</button>\n </div>\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SharedCase } from '../../models/case-share.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\n\n@Component({\n selector: 'xuilib-share-case-confirm',\n templateUrl: './share-case-confirm.component.html',\n styleUrls: ['./share-case-confirm.component.scss'],\n standalone: false\n})\nexport class ShareCaseConfirmComponent implements OnInit {\n\n public shareCases: SharedCase[] = []; // cases selected for sharing\n\n @Input() public shareCases$: Observable<SharedCase[]>;\n @Input() public changeLink: string = '';\n @Input() public completeLink: string = '';\n\n public state$: Observable<SharedCase[]>;\n\n constructor(private readonly stateService: CaseSharingStateService) { }\n\n public ngOnInit() {\n this.shareCases$.subscribe(shareCases => {\n this.shareCases = shareCases;\n this.stateService.setCases(shareCases);\n });\n this.shareCases$ = this.stateService.state;\n }\n\n}\n","<input class=\"govuk-input\" type=\"text\" [matAutocomplete]=\"dropdown\" [formControl]=\"control\"\n [attr.aria-labelledby]=\"'add-user-hint' | rpxTranslate\">\n\n<mat-autocomplete #dropdown=\"matAutocomplete\" [displayWith]=\"displayValue\" autoActiveFirstOption (optionSelected)=\"onSelected($event)\">\n @for (user of filteredUsers | async; track user) {\n <mat-option [value]=\"user\">\n {{ user.firstName | rpxTranslate }} {{ user.lastName | rpxTranslate }} - {{ user.email }}\n </mat-option>\n }\n</mat-autocomplete>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatLegacyAutocompleteSelectedEvent as MatAutocompleteSelectedEvent } from '@angular/material/legacy-autocomplete';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UserDetails } from '../../models/user-details.model';\n\n@Component({\n selector: 'xuilib-user-select',\n templateUrl: './user-select.component.html',\n styleUrls: ['./user-select.component.scss'],\n standalone: false\n})\nexport class UserSelectComponent implements OnInit {\n\n @Input() public users: UserDetails[];\n\n @Output() public selected = new EventEmitter<UserDetails>();\n\n public filteredUsers: Observable<UserDetails[]>;\n\n public control = new FormControl();\n\n constructor() { }\n\n public ngOnInit() {\n this.filteredUsers = this.control.valueChanges.pipe(\n map(value => typeof value === typeof 'string' ? this.filterUsers(value) : this.users)\n );\n // TEST-TODO\n // these are changes made per ngModel 18 upgrade and may not be correct\n // TODO: Confirm changes are correctly picked up post Angular 18 upgrade\n this.control.valueChanges.subscribe(newUserValue => {\n if (!newUserValue || !newUserValue.email) {\n this.selected.emit(null);\n }\n });\n }\n\n public displayValue(user: UserDetails): string {\n return user ? `${user.firstName} ${user.lastName} - ${user.email}` : '';\n }\n\n public onSelected(e: MatAutocompleteSelectedEvent) {\n this.selected.emit(e.option.value);\n }\n\n public clear() {\n this.control.setValue(null);\n }\n\n private filterUsers(value: string): UserDetails[] {\n if (value) {\n value = value.toLowerCase();\n return this.users.filter(user => {\n if (user.firstName.toLowerCase().includes(value)) {\n return true;\n }\n if (user.lastName.toLowerCase().includes(value)) {\n return true;\n }\n if (user.email.toLowerCase().includes(value)) {\n return true;\n }\n return false;\n });\n }\n return [];\n }\n}\n","@if (!showWarningMessage && messages && messages.length > 0) {\n <div 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 @for (message of messages; track message) {\n <li>\n @if (hasElement(message.id)) {\n <a (click)=\"scrollTo(message.id)\" [routerLink]=\"\" [fragment]=\"message.id\"\n >{{message.message | rpxTranslate}}</a>\n }\n @if (!hasElement(message.id)) {\n <span>{{message.message | rpxTranslate}}</span>\n }\n </li>\n }\n </ul>\n </div>\n </div>\n}\n@if (showWarningMessage) {\n <div 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 @for (message of messages; track message) {\n <p class=\"govuk-body\">{{ message.message | rpxTranslate}}</p>\n }\n </div>\n </div>\n}\n","\nimport { AfterViewInit, Component, Inject, Input, OnChanges, SimpleChanges, DOCUMENT } from '@angular/core';\n/*\n Error Summary component\n State Less component\n @property errorMessages that is array of messages.\n Component is also responsible for scrolling. Up and Down the page when user click on links\n*/\nexport interface HmctsErrorMessage {\n id: string;\n message: string;\n}\n\n@Component({\n selector: 'xuilib-hmcts-error-summary',\n templateUrl: './hmcts-error-summary.component.html',\n standalone: false\n})\nexport class HmctsErrorSummaryComponent implements AfterViewInit, OnChanges {\n @Input() public set errorMessages(value: HmctsErrorMessage[]) {\n this.messages = value || [];\n }\n @Input() public header: string;\n @Input() public showWarningMessage: boolean;\n public messages: HmctsErrorMessage[] = [];\n\n constructor(@Inject(DOCUMENT) private readonly document: any) { }\n\n public ngAfterViewInit(): void {\n this.scrollTo('errorSummary');\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.errorMessages) {\n this.scrollTo('errorSummary');\n }\n }\n\n public scrollTo(selector: any) {\n if (this.document.querySelector(`#${selector}`)) {\n const el = this.document.querySelector(`#${selector}`);\n\n el.focus();\n }\n }\n\n public hasElement(selector: any) {\n return this.document.querySelector(`#${selector}`);\n }\n\n}\n","<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n@if (title) {\n <h1 class=\"govuk-heading-xl govuk-!-margin-top-2\">\n @if (fnTitle) {\n <span class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n }\n {{title | rpxTranslate}}\n </h1>\n}\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 <span class=\"govuk-visually-hidden\">{{'user' | rpxTranslate}}</span>\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 @if (showRemoveUsers) {\n <div class=\"govuk-form-group\">\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 [value]=\"selectedUserToRemove\" (change)=\"onSelectedUserToRemoveChanged($event.target.value)\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n @for (user of assignedUsers; track user) {\n <option [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n }\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 <span class=\"govuk-visually-hidden\"> {{'user' | rpxTranslate}}</span>\n </button>\n </div>\n </div>\n </div>\n }\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 @if (shareCases && shareCases.length > 0) {\n <div 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\n @if (shareCases && shareCases.length === 0) {\n <div id=\"noCaseDisplay\" 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\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","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { ErrorMessagesModel, GovUiConfigModel } from '../../gov-ui/models';\nimport { SharedCase, SharedCaseErrorMessages } from '../../models/case-share.model';\nimport { UserDetails } from '../../models/user-details.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\nimport { UserSelectComponent } from '../user-select/user-select.component';\n\n@Component({\n selector: 'xuilib-share-case',\n templateUrl: './share-case.component.html',\n styleUrls: ['./share-case.component.scss'],\n standalone: false\n})\nexport class ShareCaseComponent implements OnInit {\n\n public shareCases: SharedCase[] = []; // cases selected for sharing\n public selectedCasesErrorMessageConfig: GovUiConfigModel;\n public continueAllowed = false;\n public assignedUsers: UserDetails[];\n public selectedUserToRemove: UserDetails = null;\n\n @Input() public removeUserFromCaseToggleOn: boolean = false;\n\n @Input() public shareCases$: Observable<SharedCase[]>;\n @Input() public users: UserDetails[] = []; // users of this organisation the cases can be shared with\n\n @Input() public confirmLink: string = '';\n @Input() public cancelLink: string = '';\n @Input() public addUserLabel: string;\n @Input() public showRemoveUsers: boolean = false;\n @Input() public fnTitle: string = '';\n @Input() public title: string = '';\n\n @Output() public unselect = new EventEmitter<SharedCase>();\n @Output() public synchronizeStore = new EventEmitter<any>();\n\n private selectedUser: UserDetails;\n\n @ViewChild(UserSelectComponent, { static: true })\n private readonly userSelect: UserSelectComponent;\n\n public validationErrors: { id: string, message: string }[] = [];\n public shareCaseErrorMessage: ErrorMessagesModel;\n\n constructor(private readonly stateService: CaseSharingStateService,\n private readonly router: Router) { }\n\n public ngOnInit() {\n this.shareCases$\n .pipe(tap(sharedCases => {\n // Update the list of users assigned to at least one case\n this.getAssignedUsers(sharedCases.filter(sharedCase => sharedCase.sharedWith && sharedCase.sharedWith.length > 0));\n }))\n .subscribe(shareCases => {\n this.shareCases = shareCases;\n this.stateService.setCases(shareCases);\n // Set the config to be used by the xuilib-gov-uk-error-message component, in particular the element ID to\n // which the error message is associated\n if (shareCases) {\n this.selectedCasesErrorMessageConfig = {\n id: shareCases.length > 0 ? 'cases' : 'noCaseDisplay'\n };\n }\n });\n this.shareCases$ = this.stateService.state;\n this.shareCaseErrorMessage = { isInvalid: false, messages: [] };\n }\n\n public onUnselect(c: SharedCase): void {\n this.validationErrors = [];\n if (this.stateService.getCases().length === 1) {\n this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OneCaseMustBeSelected });\n this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OneCaseMustBeSelected] };\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\n } else {\n this.unselect.emit(c);\n this.stateService.removeCase(c.caseId);\n }\n }\n\n public onSynchronizeStore(event: any): void {\n this.synchronizeStore.emit(event);\n }\n\n public onSelectedUser(user: UserDetails) {\n this.selectedUser = user;\n }\n\n public addUser() {\n const newSharedCases = this.stateService.requestShare(this.selectedUser);\n this.selectedUser = null;\n if (this.userSelect) { this.userSelect.clear(); }\n this.synchronizeStore.emit(newSharedCases);\n // Update the list of assigned users (which includes pending users)\n this.getAssignedUsers(newSharedCases);\n }\n\n public removeUser() {\n if (this.selectedUserToRemove) {\n const newSharedCases = this.stateService.requestUnshare(this.selectedUserToRemove);\n this.synchronizeStore.emit(newSharedCases);\n }\n }\n\n public isDisabledAdd() {\n return this.selectedUser === null || this.shareCases.length === 0;\n }\n\n /**\n * Function originally used to set disabled state of \"Continue\" button, now called by the button click handler to\n * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made\n */\n public setContinueAllowed(): void {\n // Always start with continueAllowed = false. This covers the scenario where a user might add someone for sharing\n // a case (so, continueAllowed = true), then removes the same user before trying to continue. This would\n // erroneously leave continueAllowed as true\n this.continueAllowed = false;\n this.shareCases$.subscribe(shareCases => {\n for (const caseState of shareCases) {\n if (caseState.pendingShares && caseState.pendingShares.length > 0) {\n this.continueAllowed = true;\n break;\n }\n if (caseState.pendingUnshares && caseState.pendingUnshares.length > 0) {\n this.continueAllowed = true;\n break;\n }\n }\n });\n }\n\n public onDeselect(sharedCase: SharedCase): void {\n if (sharedCase !== null) {\n const updated = [];\n for (const element of this.shareCases) {\n if (element.caseId !== sharedCase.caseId) {\n updated.push(element);\n }\n }\n this.shareCases = updated;\n }\n this.stateService.setCases(this.shareCases);\n }\n\n public onContinue(): void {\n this.setContinueAllowed();\n // If continuation is not allowed, set an error message\n if (!this.continueAllowed) {\n this.validationErrors = [];\n this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.NoChangesRequested });\n this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.NoChangesRequested] };\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\n }\n // Navigate to confirmation page only if allowed to continue\n if (this.continueAllowed) {\n // Check that no case is left unassigned; a user can be removed only if there is another current user, or if at\n // least one user is to be added. Prevent navigation to confirmation page if there is at least one case left in\n // an unassigned state\n if (this.hasCasesLeftUnassigned(this.shareCases)) {\n this.validationErrors = [];\n this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OnePersonMustBeAssigned });\n this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OnePersonMustBeAssigned] };\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\n } else {\n this.router.navigate([this.confirmLink]);\n }\n }\n }\n\n /**\n * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case\n * @param sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with\n */\n public getAssignedUsers(sharedCases: SharedCase[]): void {\n const users: UserDetails[] = [];\n sharedCases.forEach(sharedCase => {\n if (sharedCase.sharedWith) {\n sharedCase.sharedWith.forEach(user => {\n if (!users.some(existingUser => user.idamId === existingUser.idamId)) {\n users.push(user);\n }\n });\n }\n if (sharedCase.pendingShares) {\n sharedCase.pendingShares.forEach(user => {\n if (!users.some(existingUser => user.idamId === existingUser.idamId)) {\n users.push(user);\n }\n });\n }\n });\n this.assignedUsers = users;\n }\n\n /**\n * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending\n * unshares equal to the number of current shares, and there are no pending shares.\n * @param sharedCases The array of shared cases to check\n * @returns `true` if at least one case has the condition described above; `false` otherwise\n */\n public hasCasesLeftUnassigned(sharedCases: SharedCase[]): boolean {\n return sharedCases.some(sharedCase => {\n return sharedCase.pendingUnshares && sharedCase.sharedWith &&\n sharedCase.pendingUnshares.length === sharedCase.sharedWith.length &&\n (!sharedCase.pendingShares || sharedCase.pendingShares.length === 0);\n });\n }\n\n // TEST-TODO\n // Another place where ngModel use is removed for Angular best practice\n // May cause issues but based on understanding should work\n // TODO: Confirm this works correctly after Angular 18 upgrade\n public onSelectedUserToRemoveChanged(value: string): void {\n this.selectedUserToRemove = this.assignedUsers.find(user => `${user.firstName} ${user.lastName} - ${user.email}` === value) || null;\n }\n}\n","<mat-tab-group animationDuration=\"0ms\" (selectedTabChange)=\"tabChanged($event)\">\n @for (tabItem of tabItems; track tabItem; let last = $last) {\n <mat-tab [label]=\"tabItem.text | rpxTranslate\">\n </mat-tab>\n }\n</mat-tab-group>","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface TabItem {\n text: string;\n}\n\n@Component({\n selector: 'xuilib-tab',\n templateUrl: './tab.component.html',\n standalone: false\n})\n\nexport class TabComponent {\n @Input() public tabItems: any [];\n @Output() public tabChange = new EventEmitter<void>();\n constructor() {}\n\n public tabChanged(event: any): void {\n this.tabChange.emit(event);\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'xuilib-tc-confirm',\n templateUrl: './tc-confirm.component.html',\n styleUrls: ['./tc-confirm.component.scss'],\n standalone: false\n})\nexport class TcConfirmComponent {\n\n @Input() public buttonText: string;\n @Output() public confirm = new EventEmitter<void>();\n\n constructor() {}\n\n public onClick(): void {\n this.confirm.emit();\n }\n\n}\n","<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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'xuilib-tc-display-html',\n templateUrl: './tc-display-html.component.html',\n styleUrls: ['./tc-display-html.component.scss'],\n standalone: false\n})\nexport class TcDisplayHtmlComponent {\n\n constructor() { }\n\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'xuilib-tc-display-plain',\n templateUrl: './tc-display-plain.component.html',\n styleUrls: ['./tc-display-plain.component.scss'],\n standalone: false\n})\nexport class TcDisplayPlainComponent {\n\n constructor() { }\n\n}\n","<ng-content></ng-content>","\n@switch (document.mimeType) {\n @case ('text/html') {\n <xuilib-tc-display-html>\n <div [innerHTML]=\"document.content | rpxTranslate\"></div>\n </xuilib-tc-display-html>\n }\n @case ('text/plain') {\n <xuilib-tc-display-plain>\n {{ document.content | rpxTranslate}}\n </xuilib-tc-display-plain>\n }\n @default {\n <div>\n {{'An error occured. Please try again.' | rpxTranslate}}\n </div>\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { TCDocument } from '../../models';\n\n@Component({\n selector: 'xuilib-terms-and-conditions',\n templateUrl: './terms-and-conditions.component.html',\n styleUrls: ['./terms-and-conditions.component.scss'],\n standalone: false\n})\nexport class TermsAndConditionsComponent {\n\n @Input() public document: TCDocument;\n\n constructor() { }\n\n}\n","@if (warningTitle && warningTitle !== '') {\n <div class=\"govuk-warning-text\">\n <span class=\"govuk-warning-text__icon\">!</span>\n <span class=\"govuk-visually-hidden\">Warning</span>\n <strong class=\"govuk-warning-text__text\">\n {{ warningTitle | rpxTranslate}}\n </strong>\n </div>\n}\n@if (user) {\n <dl class=\"govuk-table\" role=\"presentation\">\n <div class=\"govuk-table__body\">\n <div class=\"govuk-table__row\">\n <dt class=\"govuk-table__header\" scope=\"row\">{{'Name' | rpxTranslate}}</dt>\n <dd class=\"govuk-table__cell\">{{user.fullName | rpxTranslate}}</dd>\n <dd class=\"govuk-table__cell\"></dd>\n </div>\n <div class=\"govuk-table__row\">\n <dt class=\"govuk-table__header\" scope=\"row\">{{'Email address' | rpxTranslate}}</dt>\n <dd class=\"govuk-table__cell\">{{user.email}}</dd>\n <dd class=\"govuk-table__cell\"></dd>\n </div>\n @if (!user.resendInvite) {\n <div class=\"govuk-table__row\">\n <dt class=\"govuk-table__header\" scope=\"row\">{{'Permissions' | rpxTranslate}}</dt>\n <dd class=\"govuk-table__cell\">\n @if (user.manageOrganisations === 'Yes') {\n <div>{{'Manage organisations' | rpxTranslate}}</div>\n }\n @if (user.manageUsers === 'Yes') {\n <div>{{'Manage users' | rpxTranslate}}</div>\n }\n @if (user.manageCases === 'Yes') {\n <div>{{'Manage cases' | rpxTranslate}}</div>\n }\n @if (userHasRole('pui-caa')) {\n <div>{{'Case access administrator' | rpxTranslate}}</div>\n }\n @if (userHasRole('pui-finance-manager')) {\n <div>{{'Manage fee accounts' | rpxTranslate}}</div>\n }\n @for (accesstype of enabledAccessTypes; track accesstype) {\n <div>{{ accesstype | rpxTranslate}}</div>\n }\n </dd>\n <dd class=\"govuk-table__cell\">@if (editPermissionRouterLink && showEditLink) {\n <a role=\"link\" [routerLink]=\"editPermissionRouterLink\">{{'Change' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'roles' | rpxTranslate}}</span></a>\n }</dd>\n </div>\n }\n </div>\n </dl>\n}\n@if (showSuspendUserButton) {\n <button class=\"govuk-button govuk-button--warning\" tabindex=\"0\" (click)=\"suspendUser(user)\" (keyup.enter)=\"suspendUser(user)\">\n {{'Suspend account' | rpxTranslate}}\n </button>\n}\n@if (user && user.resendInvite) {\n <div>\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 <button class=\"govuk-button\" tabindex=\"0\" (click)=\"reinviteClick(user)\" (keyup.enter)=\"reinviteClick(user)\" id=\"resend-invite-button\">\n {{'Resend invitation' | rpxTranslate}}\n </button>\n </div>\n}\n@if (showHelpLink && suspendHelpLink) {\n <p class=\"govuk-body\"><a [routerLink]=\"suspendHelpLink\" target=\"_blank\">{{'Get help' | rpxTranslate}}</a> {{'to reactivate this account.' | rpxTranslate}}</p>\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { User } from '../../models';\n\n@Component({\n selector: 'xuilib-user-details',\n styleUrls: ['./user-details.component.scss'],\n templateUrl: './user-details.component.html',\n standalone: false\n})\nexport class UserDetailsComponent {\n @Input() public user: User;\n @Input() public enabledAccessTypes: string[] = [];\n @Input() public editPermissionRouterLink: string;\n @Input() public warningTitle: string;\n @Input() public showEditLink: boolean = false;\n @Input() public showHelpLink: boolean = false;\n @Input() public suspendHelpLink: string;\n @Output() public suspendUserEvent = new EventEmitter<User>();\n @Input() public showSuspendUserButton = false;\n @Output() public reinvite = new EventEmitter<User>();\n\n public reinviteClick(user: User): void {\n this.reinvite.emit(user);\n }\n\n public suspendUser(suspendUser: User): void {\n this.suspendUserEvent.emit(suspendUser);\n }\n\n public userHasRole(theRole: string): boolean {\n if (this.user && this.user.roles) {\n return this.user.roles.includes(theRole);\n }\n return false;\n }\n}\n","<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 @if (!(p.pages.length <= 1)) {\n <ul class=\"hmcts-pagination__list\">\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\" [class.disabled]=\"p.isFirstPage()\">\n @if (1 < p.getCurrent()) {\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" (keyup.enter)=\"p.previous()\"\n (click)=\"p.previous()\">{{'Previous' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'set of pages' | rpxTranslate}}</span></a>\n }\n </li>\n @if (showPageNumbers) {\n @for (page of p.pages; track page) {\n <li class=\"hmcts-pagination__item\" [class.hmcts-pagination__item--active]=\"p.getCurrent() === page.value\"\n [class.hmcts-pagination__item--dots]=\"page.label === '...'\">\n @if (p.getCurrent() !== page.value) {\n <a class=\"hmcts-pagination__link\" [routerLink]=\"\" (keyup.enter)=\"p.setCurrent(page.value)\"\n (click)=\"p.setCurrent(page.value)\">\n <span class=\"govuk-visually-hidden\">{{'page' | rpxTranslate}} </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </a>\n }\n @if (p.getCurrent() === page.value) {\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n }\n </li>\n }\n }\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\" [class.disabled]=\"p.isLastPage()\">\n @if (!p.isLastPage()) {\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" (keyup.enter)=\"p.next()\"\n (click)=\"p.next()\">{{'Next' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'page' | rpxTranslate}}</span></a>\n }\n </li>\n </ul>\n }\n @if (showResultCount) {\n <p class=\"hmcts-pagination__results\">{{'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 }\n </nav>\n\n </pagination-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-pagination',\n templateUrl: './hmcts-pagination.component.html',\n styleUrls: ['./hmcts-pagination.component.scss'],\n standalone: false\n})\nexport class HmctsPaginationComponent {\n\n @Input() public id: string;\n @Input() public maxSize: number = 7;\n @Input() public pageSize: number = 10;\n @Input() public showPageNumbers: boolean = true;\n @Input() public showResultCount: boolean = true;\n @Output() public pageChange: EventEmitter<number> = new EventEmitter<number>();\n @Output() public pageBoundsCorrection: EventEmitter<number> = new EventEmitter<number>();\n\n}\n","<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 @for (u of users | paginate: { itemsPerPage: pagination.itemsPerPage, currentPage: currentPageNumber, totalItems: pagination.totalItems }; track u) {\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 }\n </tbody>\n</table>\n<xuilib-hmcts-pagination (pageChange)=\"emitPageClickEvent($event)\" [pageSize]=\"pagination.itemsPerPage\"></xuilib-hmcts-pagination>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Pagination } from '../../models';\nimport { User } from '../../models/user.model';\n\n@Component({\n selector: 'xuilib-user-list',\n styleUrls: ['./user-list.component.scss'],\n templateUrl: './user-list.component.html',\n standalone: false\n})\nexport class UserListComponent implements OnInit {\n @Input() public users: User[] = [];\n @Input() public currentPageNumber?: number;\n @Input() public pageTotalSize?: any;\n @Output() public userClick = new EventEmitter<User>();\n @Output() public pageChange = new EventEmitter();\n\n public pagination: Pagination;\n\n public ngOnInit() {\n this.pagination = { itemsPerPage: 50, currentPage: this.currentPageNumber, totalItems: this.pageTotalSize};\n }\n\n public onUserClick(user: User) {\n this.userClick.emit(user);\n }\n\n public emitPageClickEvent(pageNumber: any) {\n this.currentPageNumber = pageNumber;\n this.pageChange.emit(pageNumber);\n }\n}\n","@if (isCookieBannerVisible) {\n <div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\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 <div class=\"govuk-cookie-banner__content\">\n <p>{{'We use some essential cookies to make this service work.' | rpxTranslate}}</p>\n <p>{{'We\\'d 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 <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}\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { CookieService } from '../../services/cookie/cookie.service';\nimport { windowToken } from '../../window';\n\n@Component({\n selector: 'xuilib-cookie-banner',\n templateUrl: './cookie-banner.component.html',\n standalone: false\n})\n\nexport class CookieBannerComponent implements OnInit {\n @Input() public identifier: string;\n @Input() public appName: string;\n @Input() public enableDynatrace: boolean = false;\n @Output() public rejectionNotifier = new EventEmitter<any>();\n @Output() public acceptanceNotifier = new EventEmitter<any>();\n\n public isCookieBannerVisible: boolean = false;\n public readonly window: any;\n\n constructor(\n private readonly cookieService: CookieService,\n @Inject(windowToken) window: any,\n ) {\n this.window = window;\n }\n\n public ngOnInit(): void {\n this.setState();\n }\n\n public acceptCookie(): void {\n this.cookieService.setCookie(this.identifier, 'true', this.getExpiryDate());\n this.setState(true);\n }\n\n public rejectCookie(): void {\n this.cookieService.setCookie(this.identifier, 'false', this.getExpiryDate());\n this.setState(true);\n }\n\n public setState(reload: boolean = false): void {\n this.isCookieBannerVisible = !this.cookieService.checkCookie(this.identifier);\n\n if (this.areCookiesAccepted()) {\n this.notifyAcceptance();\n } else {\n this.notifyRejection();\n }\n\n if (reload) { // reload if any of the buttons are pressed\n this.window.location.reload();\n }\n }\n\n public areCookiesAccepted(): boolean {\n return this.cookieService.checkCookie(this.identifier) && this.cookieService.getCookie(this.identifier) === 'true';\n }\n\n public notifyRejection(): void {\n this.rejectionNotifier.emit();\n }\n\n public notifyAcceptance(): void {\n if (this.enableDynatrace) {\n if (this.window.hasOwnProperty('dtrum')) {\n // @ts-ignore\n const dtrum = this.window['dtrum'];\n if (dtrum) {\n try {\n dtrum.enable();\n dtrum.enableSessionReplay(true);\n } catch (e) {\n console.error('Error enabling DynaTrace', e);\n }\n } else {\n console.info(\"DynaTrace not enabled on the server\");\n }\n } else {\n console.info(\"DynaTrace not enabled on the server\");\n }\n } else {\n console.info(\"Dyntrace RUM not enabled via component parameter\");\n }\n this.acceptanceNotifier.emit();\n }\n\n private getExpiryDate(): string {\n const now = new Date();\n const time = now.getTime();\n const expireTime = time + 31536000000; // in 365 days = 3600 * 1000 * 24 * 365\n now.setTime(expireTime);\n return now.toUTCString();\n }\n\n}\n","<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 @if (firstRecord > 1) {\n <a class=\"hmcts-pagination__link\" (click)=\"onPrevious()\" href=\"javascript:void(0)\">\n {{'Previous page' | rpxTranslate}}\n </a>\n } @else {\n <span class=\"hmcts-pagination__link\">{{'Previous page' | rpxTranslate}}</span>\n }\n </li>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\">\n @if (moreItems) {\n <a class=\"hmcts-pagination__link\" (click)=\"onNext()\" href=\"javascript:void(0)\">{{'Next page' | rpxTranslate}}</a>\n } @else {\n <span class=\"hmcts-pagination__link\">{{'Next page' | rpxTranslate}}</span>\n }\n </li>\n </ul>\n</nav>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'xuilib-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false\n})\nexport class PaginationComponent {\n\n @Input() public moreItems: boolean;\n @Input() public firstRecord: number;\n @Output() public previousPage: EventEmitter<any> = new EventEmitter();\n @Output() public nextPage: EventEmitter<any> = new EventEmitter();\n\n constructor() { }\n\n public onPrevious(): void {\n this.previousPage.emit(null);\n }\n\n public onNext(): void {\n this.nextPage.emit(null);\n }\n}\n","<div class=\"auto-complete-container\">\n @if (readyAfterContent) {\n <div class=\"autocomplete__wrapper\">\n <input\n [formControl]=\"findLocationFormGroup.controls.findLocationFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n id=\"searchVenueLocation\"\n (keydown)=\"onKeyDown()\"\n (keyup)=\"onKeyUp($event)\"\n class=\"autocomplete__input autocomplete__input--default search-box\"\n [attr.disabled]=\"!disabled ? null: disabled\"\n [value]=\"getControlCourtNameValue()\"\n #inputSelectedLocation>\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n @for (location of displayedLocationsDuplicationFiltered; track location) {\n <mat-option\n [value]=\"getDisplayName(location)\"\n (onSelectionChange)=\"onSelectionChange(location)\"\n [ngClass]=\"{'hide-autocomplete': showAutocomplete ? false : true}\">\n {{ getDisplayName(location) }}\n </mat-option>\n }\n @if (!displayedLocationsDuplicationFiltered?.length && showAutocomplete && !searchInProgress) {\n <mat-option>{{ 'No results found' }}</mat-option>\n }\n </mat-autocomplete>\n </div>\n }\n</div>\n","import {AfterContentInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {AbstractControl, FormArray, FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport {Observable, Subject} from 'rxjs';\nimport {debounceTime, mergeMap} from 'rxjs/operators';\nimport {LocationByEPIMMSModel} from '../../models/location.model';\nimport {LocationService} from '../../services/locations/location.service';\n\n@Component({\n selector: 'xuilib-search-venue',\n templateUrl: './search-venue.component.html',\n styleUrls: ['./search-venue.component.scss'],\n standalone: false\n})\nexport class SearchVenueComponent implements OnInit, AfterContentInit {\n @Input() public control: AbstractControl;\n @Input() public disabled: boolean = null;\n @Input() public locationType: string = '';\n @Input() public selectedLocations: LocationByEPIMMSModel[];\n @Input() public serviceIds: string = '';\n @Input() public submitted?: boolean = true;\n @ViewChild('inputSelectedLocation', { read: ElementRef }) public autoCompleteInputBox: ElementRef<HTMLInputElement>;\n public findLocationFormGroup: FormGroup;\n @Input() public showAutocomplete: boolean = false;\n @Input() public displayedLocations: LocationByEPIMMSModel[];\n @Output() public locationChanged = new EventEmitter<LocationByEPIMMSModel>();\n public selectedLocation: LocationByEPIMMSModel;\n private readonly minSearchCharacters = 3;\n public keyUpSubject$: Subject<string> = new Subject();\n public readyAfterContent: boolean = false;\n public searchInProgress: boolean = false;\n\n constructor(private readonly locationService: LocationService, fb: FormBuilder) {\n this.findLocationFormGroup = fb.group({\n findLocationFormControl: [null],\n locationSelectedFormControl: [null]\n });\n this.selectedLocations = [];\n }\n\n public ngAfterContentInit(): void {\n this.readyAfterContent = true;\n }\n\n public ngOnInit(): void {\n this.displayedLocations = [];\n if (this.control) {\n if (this.findLocationFormGroup && this.findLocationFormGroup.controls) {\n this.findLocationFormGroup.controls.locationSelectedFormControl = this.control;\n }\n }\n this.keyUpSubject$.pipe(debounceTime(500)).subscribe(searchValue => this.search(searchValue as string));\n }\n\n public onKeyDown(): void {\n this.locationChanged.emit();\n }\n\n public onKeyUp(event: any): void {\n if (event.code === `Key${event.key.toUpperCase()}`){\n this.keyUpSubject$.next(event.target.value);\n }\n }\n\n public get displayedLocationsDuplicationFiltered(): LocationByEPIMMSModel[] {\n return this.displayedLocations.filter(\n location => !this.selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(location.epimms_id) && location.court_name\n );\n }\n\n public filter(term: string): void {\n this.searchLocations(term).pipe(\n mergeMap((apiData: LocationByEPIMMSModel[]) => {\n const apiFilter = apiData.filter(\n apiLocation => !this.selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(apiLocation.epimms_id)\n );\n this.displayedLocations = apiFilter;\n this.searchInProgress = false;\n return apiFilter;\n })\n ).subscribe(location => {\n if (term === location.court_name) {\n this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(location);\n this.displayedLocations = [];\n this.locationChanged.emit(location);\n }\n this.searchInProgress = false;\n });\n }\n\n public onSelectionChange(selection?: LocationByEPIMMSModel): void {\n if (this.findLocationFormGroup.controls.findLocationFormControl instanceof FormArray) {\n (this.findLocationFormGroup.controls.locationSelectedFormControl as FormArray).push(new FormControl(selection.epimms_id));\n } else {\n this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(selection);\n }\n this.locationChanged.emit(selection);\n this.showAutocomplete = false;\n }\n\n public search(currentValue: string): void {\n this.searchInProgress = true;\n if (currentValue) {\n this.showAutocomplete = (currentValue.length >= this.minSearchCharacters) ? true : false;\n this.findLocationFormGroup.controls.locationSelectedFormControl.markAsDirty();\n } else {\n this.findLocationFormGroup.controls.locationSelectedFormControl.reset();\n }\n if (this.showAutocomplete) {\n this.filter(currentValue);\n } else {\n this.searchInProgress = false;\n }\n }\n\n public getDisplayName(selectedLocation: LocationByEPIMMSModel): string {\n return selectedLocation.court_name;\n }\n\n public searchLocations(term: string): Observable<LocationByEPIMMSModel[]> {\n return this.locationService.searchLocations(this.serviceIds, this.locationType, term);\n }\n\n public getControlCourtNameValue(): string {\n return this.findLocationFormGroup && this.findLocationFormGroup.controls && this.findLocationFormGroup.controls.locationSelectedFormControl.value ?\n (this.findLocationFormGroup.controls.locationSelectedFormControl.value as LocationByEPIMMSModel).court_name : '';\n }\n}\n","<div class=\"govuk-form-group\">\n <input id=\"inputSelectPerson{{idValue}}\" [placeholder]=\"placeholderContent\" [formControl]=\"formGroup.controls.formControl\"\n [matAutocomplete]=\"autoComplete\" (keydown)=\"onKeyDown()\" (keyup)=\"onKeyUp($event)\" (focus)=\"onFocus()\"\n class=\"govuk-input\" [attr.disabled]=\"!disabled ? null: disabled\" [value]=\"getControlValueDisplayText()\"\n #inputSelection>\n <mat-autocomplete autoActiveFirstOption #autoComplete=\"matAutocomplete\">\n @for (judicial of displayedJudicialsDuplicationFiltered; track judicial) {\n <mat-option class=\"select-option\"\n [value]=\"getDisplayName(judicial)\" (onSelectionChange)=\"onSelectionChange(judicial)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(judicial) }}\n </mat-option>\n }\n @if (!displayedJudicialsDuplicationFiltered?.length && showAutocomplete && !searchInProgress) {\n <mat-option class=\"select-option\"\n >\n {{ 'No results found' }}</mat-option>\n }\n </mat-autocomplete>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, mergeMap } from 'rxjs/operators';\nimport { JudicialUserModel } from '../../models';\nimport { FindAPersonService } from '../../services/find-person/find-person.service';\n\n@Component({\n selector: 'xuilib-search-judicials',\n templateUrl: './search-judicials.component.html',\n styleUrls: ['./search-judicials.component.scss'],\n standalone: false\n})\nexport class SearchJudicialsComponent implements OnInit {\n public formGroup: FormGroup;\n @Input() public control: AbstractControl;\n @Input() public disabled: boolean = null;\n @Input() public selectedJudicials: JudicialUserModel[] = [];\n @Input() public submitted?: boolean = true;\n @Input() public placeholderContent: string = '';\n @Input() public showAutocomplete: boolean = false;\n @Input() public displayedJudicials: JudicialUserModel[];\n @Output() public judicialChanged = new EventEmitter<JudicialUserModel>();\n @Input() public idValue: string = '';\n @Input() public errorMessage: string = 'You must select a name';\n @Input() public serviceId: string = '';\n @ViewChild('inputSelection', { read: ElementRef, static: true }) public autoCompleteInputBox: ElementRef<HTMLInputElement>;\n public selectedJudicial: JudicialUserModel;\n private readonly minSearchCharacters = 3;\n public keyUpSubject$: Subject<string> = new Subject();\n public searchInProgress: boolean = false;\n\n constructor(private readonly judicialService: FindAPersonService, fb: FormBuilder) {\n this.formGroup = fb.group({\n formControl: [null],\n selectedFormControl: [null]\n });\n }\n\n public ngOnInit(): void {\n this.displayedJudicials = [];\n if (this.control) {\n if (this.formGroup && this.formGroup.controls) {\n this.formGroup.controls.selectedFormControl = this.control;\n this.formGroup.controls.formControl.setValue(this.getControlValueDisplayText());\n }\n }\n this.keyUpSubject$.pipe(debounceTime(500)).subscribe(searchValue => this.search(searchValue as string));\n }\n\n public onKeyDown(): void {\n this.judicialChanged.emit();\n }\n\n public onKeyUp(event: any): void {\n this.showAutocomplete = false;\n this.keyUpSubject$.next(event.target.value);\n }\n\n public onFocus() {\n this.showAutocomplete = false;\n }\n\n public get displayedJudicialsDuplicationFiltered(): JudicialUserModel[] {\n return this.displayedJudicials.filter(\n judicial => !this.selectedJudicials.map(selectedJudicial => selectedJudicial.idamId).includes(judicial.idamId)\n );\n }\n\n public filter(term: string): void {\n this.searchJudicials(term, this.serviceId).pipe(\n mergeMap((apiData: JudicialUserModel[]) => {\n const apiFilter = apiData.filter(\n apiJudicial => !this.selectedJudicials.map(selectedJudicial => selectedJudicial.idamId).includes(apiJudicial.idamId)\n );\n this.displayedJudicials = apiFilter;\n this.searchInProgress = false;\n return apiFilter;\n })\n ).subscribe(judicial => {\n if (term === judicial.fullName) {\n this.formGroup.controls.selectedFormControl.setValue(judicial);\n this.displayedJudicials = [];\n this.judicialChanged.emit(judicial);\n this.showAutocomplete = false;\n }\n this.searchInProgress = false;\n });\n }\n\n public onSelectionChange(selection?: JudicialUserModel): void {\n if (this.formGroup.controls.formControl instanceof FormArray) {\n (this.formGroup.controls.selectedFormControl as FormArray).push(new FormControl(selection.idamId));\n } else {\n this.formGroup.controls.selectedFormControl.setValue(selection);\n }\n this.judicialChanged.emit(selection);\n }\n\n public search(currentValue: string): void {\n this.searchInProgress = true;\n this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);\n if (!!currentValue) {\n this.formGroup.controls.selectedFormControl.markAsDirty();\n } else {\n this.formGroup.controls.selectedFormControl.reset();\n }\n if (this.showAutocomplete) {\n this.filter(currentValue);\n } else {\n this.searchInProgress = false;\n }\n }\n\n public getDisplayName(selectedJudicial: JudicialUserModel): string {\n return `${selectedJudicial.fullName} (${selectedJudicial.emailId})`;\n }\n\n public searchJudicials(term: string, serviceId: string): Observable<JudicialUserModel[]> {\n return this.judicialService.searchJudicial(term, serviceId);\n }\n\n public getControlValueDisplayText(): string {\n return this.formGroup && this.formGroup.controls && this.formGroup.controls.selectedFormControl.value ?\n this.getDisplayName(this.formGroup.controls.selectedFormControl.value as JudicialUserModel) : '';\n }\n}\n","<div class=\"page\">\n @if (backLink) {\n <a [routerLink]=\"backLink\" class=\"govuk-back-link\">{{'Back' | rpxTranslate}}</a>\n }\n <div class=\"govuk-width-container\">\n <main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n @if (title) {\n <h1 class=\"govuk-heading-xl\">\n @if (fnTitle) {\n <span class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n }\n {{title | rpxTranslate}}\n </h1>\n }\n <ng-content>\n\n </ng-content>\n </div>\n </main>\n </div>\n</div>\n","import {Component, Input} from '@angular/core';\n/**\n * Main Page Wrapper\n * Responsible for:\n * Wrapping content within the gov-uk html elements bellow\n * @prop showBackLink - switch for back link\n * @prop appHeaderTitle = appHeaderTitle\n * @prop appFunctionalTitle = appFunctionalTitle\n * @prop summaryErrors list of errors\n * @prop back link, appHeaderTitle (appHeaderTitle), summaryErrors (array of errors)\n */\n@Component({\n selector: 'exui-page-wrapper',\n templateUrl: 'exui-page-wrapper.component.html',\n styleUrls: ['exui-page-wrapper.component.scss'],\n standalone: false\n})\nexport class ExuiPageWrapperComponent {\n\n @Input() public backLink: string;\n @Input() public title: string;\n @Input() public fnTitle: string;\n\n constructor() { }\n\n}\n","<ng-container>\n <form [formGroup]=\"formGroup\">\n <div class=\"govuk-body\" formGroupName=\"address\">\n <label class=\"govuk-label govuk-!-font-weight-bold\">\n Enter address details\n </label>\n\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && !formGroup.get('address').get('addressLine1').valid}\">\n <label class=\"govuk-label\" for=\"addressLine1\">\n Building and Street\n </label>\n @if (submissionAttempted && !formGroup.get('address').get('addressLine1').valid) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_STREET_SELECTED}}\n </p>\n }\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine1\" name=\"addressLine1\" maxlength=\"150\" type=\"text\"\n formControlName=\"addressLine1\">\n </div>\n\n <div class=\"govuk-body\">\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\" maxlength=\"150\" type=\"text\"\n formControlName=\"addressLine2\">\n </div>\n\n <div class=\"govuk-body\">\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\" maxlength=\"50\" type=\"text\"\n formControlName=\"addressLine3\">\n </div>\n\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && !formGroup.get('address').get('postTown').valid}\">\n <label class=\"govuk-label\" for=\"postTown\">\n Town or City\n </label>\n @if (submissionAttempted && !formGroup.get('address').get('postTown').valid) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_CITY_SELECTED}}\n </p>\n }\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-body\">\n <label class=\"govuk-label\" for=\"county\">\n County{{ 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 @if (isInternational) {\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && !formGroup.get('address').get('country').valid}\">\n <label class=\"govuk-label\" for=\"country\">\n Country\n </label>\n @if (submissionAttempted && !formGroup.get('address').get('country').valid) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_COUNTRY_SELECTED}}\n </p>\n }\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"country\" name=\"country\" type=\"text\"\n formControlName=\"country\">\n </div>\n }\n\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && !isInternational && !formGroup.get('address').get('postCode').valid}\">\n <label class=\"govuk-label\" for=\"postCode\">\n Postcode{{ isInternational ? ' (Optional)' : '' }}\n </label>\n @if (submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('required')) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_POSTCODE_SELECTED}}\n </p>\n }\n @if (submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('invalidPostcode')) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.INVALID_POSTCODE}}\n </p>\n }\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>","import { Component, Input, OnChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AddressMessageEnum } from '../../models';\n\n@Component({\n selector: 'xuilib-write-address-inputs',\n templateUrl: './write-address-inputs.component.html',\n standalone: false\n})\nexport class WriteAddressInputsComponent implements OnChanges {\n\n public MESSAGE_ENUM = AddressMessageEnum;\n\n @Input()\n public formGroup: FormGroup;\n\n @Input()\n public isInternational = false;\n\n @Input()\n public submissionAttempted = false;\n\n public missingPostcode = false;\n\n public errorsPresent = false;\n\n constructor() {\n }\n\n public ngOnChanges(): void {\n // if there is an issue with the formgroup, ensure error styling is displayed\n this.errorsPresent = !this.formGroup.get('address').valid;\n }\n\n}\n","<div class=\"govuk-form-group\" [formGroup]=\"addressFormGroup\"\n [ngClass]=\"{'govuk-form-group--error': optionErrorsPresent}\">\n @if (optionErrorsPresent) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{optionErrorMessage}}\n </p>\n }\n @if (postcodeLookupVisible()) {\n <div>\n <span class=\"govuk-label\"><strong>Provide address details</strong></span>\n <div class=\"govuk-body postcode-lookup\" id=\"addressLookup\"\n [ngClass]=\"{'govuk-form-group--error': missingPostcode || postcodeErrorPresent(true)}\">\n <label for=\"postcodeInput\">\n <span class=\"govuk-hint\">Enter a UK postcode</span>\n </label>\n @if (missingPostcode || postcodeErrorPresent(true)) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{postcodeErrorMessage}}\n </p>\n }\n <div class=\"govuk-body\">\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\" id=\"postcodeInput\" name=\"postcode\"\n class=\"govuk-input govuk-!-width-one-third postcodeinput inline-block\" formControlName=\"postcode\">\n <button type=\"button\" class=\"govuk-button find-address\" (click)=\"findAddress()\">Find address</button>\n </div>\n </div>\n @if (addressOptions) {\n <div class=\"govuk-body\" id=\"selectAddress\">\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': postcodeErrorPresent(false)}\">\n <label class=\"govuk-label\" for=\"addressList\">\n <span class=\"form-label\">Select an address</span>\n </label>\n @if (postcodeErrorPresent(false)) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{selectErrorMessage}}\n </p>\n }\n <select class=\"form-control govuk-select ccd-dropdown addressList\" id=\"addressList\" name=\"address\"\n formControlName=\"addressList\" (change)=\"addressSelected()\" focusElement>\n @for (addressOption of addressOptions; track addressOption) {\n <option [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n }\n </select>\n </div>\n </div>\n }\n @if (!shouldShowDetailFields() || (!startedInternational && !addressChosen)) {\n <a class=\"manual-link govuk-link\"\n (click)=\"blankAddress()\" href=\"javascript:void(0)\">I can't enter a UK postcode</a>\n }\n </div>\n }\n\n @if (shouldShowDetailFields() && internationalMode && startedInternational && !addressChosen) {\n <div id=\"govuk-radios\" class=\"govuk-radios\" data-module=\"govuk-radios\"\n >\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"yes\" value=\"yes\" name=\"ukAddress\" type=\"radio\"\n data-aria-controls=\"address-fields\" (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\"\n data-aria-controls=\"address-fields\" (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 @if (isInternational !== undefined) {\n <xuilib-write-address-inputs [formGroup]=\"formGroup\"\n [isInternational]=\"isInternational\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n }\n </div>\n </div>\n }\n\n @if (shouldShowDetailFields() && (addressChosen || !internationalMode)) {\n <xuilib-write-address-inputs\n [formGroup]=\"formGroup\" [isInternational]=\"false\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n }\n\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { AddressMessageEnum, AddressModel } from '../../models';\nimport { AddressOption } from '../../models/address-option.model';\nimport { AddressService } from '../../services/address/address.service';\n\n@Component({\n selector: 'xuilib-write-address-field',\n styleUrls: ['./write-address.component.scss'],\n templateUrl: './write-address.component.html',\n standalone: false\n})\nexport class WriteAddressFieldComponent implements OnInit, OnChanges {\n\n @Input()\n public formGroup: FormGroup;\n @Input()\n public internationalMode = false;\n @Input()\n public isInternational: boolean;\n @Input()\n public submissionAttempted = false;\n @Input()\n public startedInternational: boolean;\n @Input()\n public addressChosen = false;\n\n @Output() public postcodeOptionSelected = new EventEmitter<void>();\n @Output() public internationalModeStart = new EventEmitter<void>();\n @Output() public ukAddressOptionSelected = new EventEmitter<boolean>();\n // indicated what error to display to user\n @Output() public canSelectAddress = new EventEmitter<boolean>();\n // tells parent to reset submission attempted field\n // only relevant to when user re-clicks find address\n @Output() public resetSubmission = new EventEmitter<void>();\n\n public addressField: AddressModel = {\n addressLine1: '',\n addressLine2: '',\n addressLine3: '',\n postCode: '',\n postTown: '',\n country: '',\n county: ''\n };\n\n public optionErrorsPresent = false;\n public addressSelectable = false;\n\n public addressFormGroup: FormGroup;\n\n public addressOptions: AddressOption[];\n\n public missingPostcode = false;\n\n public optionErrorMessage = AddressMessageEnum.NO_OPTION_SELECTED;\n public postcodeErrorMessage = AddressMessageEnum.NO_POSTCODE_SELECTED;\n public selectErrorMessage = AddressMessageEnum.SELECT_ADDRESS;\n\n constructor(private readonly addressesService: AddressService) {\n }\n\n public ngOnInit(): void {\n if (!this.formGroup.get('address')) {\n this.formGroup.addControl('address', new FormControl({}));\n }\n // set the form group relevant to only the external parent component\n this.addressFormGroup = new FormGroup({\n // relevant to international mode\n ukAddress: new FormControl(this.isInternational !== undefined ? (this.isInternational ? 'no' : 'yes') : null),\n // relevant to postocode lookup\n postcode: new FormControl(''),\n addressList: new FormControl('')\n });\n this.setPostcodeForm();\n }\n\n public findAddress() {\n this.resetSubmission.emit();\n if (!this.addressFormGroup.get('postcode').value) {\n this.missingPostcode = true;\n this.canSelectAddress.emit(false);\n } else {\n this.missingPostcode = false;\n this.addressField = null;\n const postcode = this.addressFormGroup.get('postcode').value;\n this.addressOptions = [];\n this.addressesService.getAddressesForPostcode(postcode.replace(' ', '').toUpperCase()).subscribe(\n result => {\n result.forEach(\n address => {\n this.addressOptions.push(new AddressOption(address, null));\n }\n );\n this.addressOptions.unshift(\n new AddressOption(undefined, this.defaultLabel(this.addressOptions.length))\n );\n }, (error) => {\n // Edited this so that errors not produced if there are no results for a postcode\n console.log(`An error occurred retrieving addresses for postcode ${postcode}. ${error}`);\n this.addressOptions.unshift(\n new AddressOption(undefined, this.defaultLabel(this.addressOptions.length))\n );\n });\n this.addressFormGroup.get('addressList').setValue(undefined);\n }\n }\n\n public blankAddress() {\n this.setFormValue();\n this.resetSubmission.emit();\n if (this.internationalMode) {\n this.internationalModeStart.emit();\n }\n }\n\n public shouldShowDetailFields() {\n if (!this.formGroup.get('address')) {\n return false;\n }\n const address = this.formGroup.get('address').value;\n let hasAddress = false;\n if (address) {\n Object.keys(address).forEach((key) => {\n if (address[key] !== null) {\n hasAddress = true;\n }\n });\n }\n return hasAddress;\n }\n\n public addressSelected() {\n this.missingPostcode = false;\n this.addressField = this.addressFormGroup.get('addressList').value;\n this.addressChosen = true;\n this.setFormValue();\n this.postcodeOptionSelected.emit();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const addressChange = changes['addressField'];\n const internationalChange = changes['isInternational'];\n if (addressChange) {\n this.setFormValue();\n }\n if (internationalChange && this.addressFormGroup && this.addressFormGroup.get('ukAddress')) {\n this.addressFormGroup.get('ukAddress').patchValue(this.isInternational ? 'no' : 'yes');\n }\n if (!this.addressChosen && this.addressFormGroup && this.addressFormGroup.get('addressList')) {\n // resets address options on internal back\n this.addressFormGroup.get('addressList').patchValue(undefined);\n }\n this.checkIfErrorsNeeded();\n }\n\n private checkIfErrorsNeeded(): void {\n if (this.submissionAttempted && this.internationalMode && !this.postcodeLookupVisible()) {\n // ensure errors present when submission attmempted on international radio buttons\n this.optionErrorsPresent = true;\n this.optionErrorMessage = AddressMessageEnum.NO_OPTION_SELECTED;\n }\n else {\n this.optionErrorsPresent = false;\n }\n if (this.optionErrorsPresent && (this.addressChosen || this.isInternational !== undefined)) {\n // ensure parent errors not present when the child form group is present\n this.optionErrorsPresent = false;\n }\n }\n\n public setInternationalAddress(isInternational: boolean): void {\n this.isInternational = isInternational;\n this.ukAddressOptionSelected.emit(this.isInternational);\n }\n\n public postcodeErrorPresent(isPostcodeField: boolean): boolean {\n const checkForField = isPostcodeField ? !this.addressSelectable : this.addressSelectable;\n return this.submissionAttempted && checkForField;\n }\n\n public postcodeLookupVisible(): boolean {\n return !this.shouldShowDetailFields() || (!this.startedInternational && !this.addressChosen);\n }\n\n private defaultLabel(numberOfAddresses: number) {\n this.addressSelectable = numberOfAddresses > 0 ? true : false;\n this.canSelectAddress.emit(this.addressSelectable);\n return numberOfAddresses === 0 ? 'No address found'\n : `${numberOfAddresses}${numberOfAddresses === 1 ? ' address ' : ' addresses '}found`;\n }\n\n private setFormValue() {\n if (this.formGroup) {\n this.formGroup.get('address').patchValue(\n this.addressField\n );\n }\n }\n\n private setPostcodeForm(): void {\n const postcodeNeeded = this.isInternational === undefined && this.formGroup.get('address') && this.formGroup.get('address').get('postCode');\n this.addressFormGroup.get('postcode').patchValue(postcodeNeeded ? this.formGroup.get('address').get('postCode').value : '');\n }\n}\n","import { Directive, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FeatureToggleService } from '../../services/feature-toggle/feature-toggle.service';\n\n@Directive({\n selector: '[xuilibFeatureToggle]',\n standalone: false\n})\nexport class FeatureToggleDirective implements OnDestroy {\n private feature: string;\n private subscription: Subscription;\n\n @Input() public set xuilibFeatureToggle(feature: string) {\n this.feature = feature;\n this.updateSubscription();\n }\n\n constructor(\n private readonly service: FeatureToggleService,\n private readonly viewContainer: ViewContainerRef,\n private readonly templateRef: TemplateRef<any>\n ) {}\n\n public ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n private updateSubscription() {\n this.subscription = this.service.isEnabled(this.feature).subscribe(enabled => {\n if (enabled) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n });\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport class LetContext<T = any> {\n public $implicit: T = null;\n public xuilibLet: T = null;\n}\n\n@Directive({\n selector: '[xuilibLet]',\n standalone: false\n})\nexport class LetDirective<T = any> {\n private readonly context: LetContext<T> = new LetContext<T>();\n\n constructor(private readonly viewContainer: ViewContainerRef, templateRef: TemplateRef<LetContext<T>>) {\n this.viewContainer.createEmbeddedView(templateRef, this.context);\n }\n\n @Input() public set xuilibLet(condition: T) {\n this.context.$implicit = this.context.xuilibLet = condition;\n }\n}\n","<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 @if (config.hint) {\n <span [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n </span>\n }\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n <div class=\"govuk-checkboxes govuk-checkboxes--small govuk-checkboxes-multi-column\" data-module=\"govuk-checkboxes\">\n @for (columnItems of columns; track columnItems) {\n <div class=\"govuk-checkboxes-multi-column__single\">\n @for (item of columnItems; track item) {\n <div class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [id]=\"item.id\" [name]=\"item.id\" [checked]=\"isChecked(item.value)\" [value]=\"item.value\"\n [attr.aria-describedby]=\"setDescribedBy()\"\n (change)=\"onChecked($event.target.checked, item.value)\"\n >\n <label class=\"govuk-label govuk-checkboxes__label\" [for]=\"item.id\">\n {{ item.label }}\n </label>\n @if (item.hint) {\n <div class=\"govuk-hint govuk-checkboxes__hint\">\n {{ item.hint }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CheckboxesModel, ErrorMessagesModel, GovUiConfigModel } from '../../models';\nimport { HtmlTemplatesHelper } from '../../util/helpers/html-templates.helper';\n/*\n* CheckBox component - state less\n* Responsible for displaying a list of gov-uk-checkboxes\n* @param: options - object with data for wrapper (fieldset) and\n* array of items for gov-uk-checkboxes\n* @param: errors - array of error stings\n* */\n@Component({\n selector: 'xuilib-gov-uk-checkboxes',\n templateUrl: './gov-uk-checkboxes.component.html',\n styleUrls: ['./gov-uk-checkboxes.component.scss'],\n standalone: false\n})\n\nexport class GovUkCheckboxesComponent implements OnInit {\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n @Input() public items: CheckboxesModel[];\n @Input() public errorMessage: ErrorMessagesModel;\n\n public columns: CheckboxesModel[][];\n\n public ngOnInit() {\n this.columns = this.setColumns();\n }\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n\n public onChecked(checked: boolean, value: string) {\n const formControl = this.group.get(this.config.name);\n const array = formControl.value ? formControl.value : [];\n\n if (!checked) {\n const modifiedArray = array.filter((item: string) => item !== value);\n formControl.setValue(modifiedArray);\n } else {\n formControl.setValue([...array, value]);\n }\n }\n\n public isChecked(value: string) {\n const formControl = this.group.get(this.config.name);\n return formControl.value && formControl.value.includes(value);\n }\n\n private setColumns(): CheckboxesModel[][] {\n if (this.config.rows && this.config.rows > 1) {\n const array: CheckboxesModel[][] = [];\n\n for (let i = 0; i < this.items.length; i += this.config.rows) {\n const arrayChunk = this.items.slice(i, i + this.config.rows);\n array.push(arrayChunk);\n }\n\n return array;\n } else {\n return [this.items];\n }\n }\n}\n","<div class=\"govuk-form-group\" [ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\" [formGroup]=\"formGroup\">\n <div class=\"date-input-container\">\n <xuilib-gov-uk-fieldset\n [config]=\"{\n legend: config.label || 'Date component',\n classes: config.classes || 'govuk-label--m',\n id: config.id,\n hint: config.hint != null ? config.hint : 'For example, 12 11 2007',\n isPageHeading: config.isPageHeading || false}\"\n [errorMessage]=\"errorMessage\">\n @if (errorMessage) {\n <xuilib-gov-uk-error-message\n [config]=\"{id: 'passport'}\"\n [errorMessage]=\"errorMessage\">\n </xuilib-gov-uk-error-message>\n }\n <div class=\"govuk-date-input\" [id]=\"config.id+'-date'\">\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <xuilib-gov-label\n [config]=\"{label: 'Day' | rpxTranslate, name: config.id+'-day', id: config.id+'-day', classes: 'govuk-date-input__label'}\">\n </xuilib-gov-label>\n <input class=\"govuk-input govuk-date-input__input govuk-input--width-2\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id+'-day'\"\n [name]=\"config.id+'-day'\" type=\"text\" value=\"\" pattern=\"\\d*\" maxlength=\"2\"\n [formControlName]=\"config.id+'_day'\">\n </div>\n </div>\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <xuilib-gov-label\n [config]=\"{label: 'Month' | rpxTranslate, name: config.id+'-month', id: config.id+'-month', classes: 'govuk-date-input__label'}\">\n </xuilib-gov-label>\n <input class=\"govuk-input govuk-date-input__input govuk-input--width-2\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id+'-month'\"\n [name]=\"config.id+'-month'\" type=\"text\" value=\"\" pattern=\"\\d*\" maxlength=\"2\"\n [formControlName]=\"config.id+'_month'\">\n </div>\n </div>\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <xuilib-gov-label\n [config]=\"{label: 'Year' | rpxTranslate, name: config.id+'-year', id: config.id+'-year', classes: 'govuk-date-input__label'}\">\n </xuilib-gov-label>\n <input class=\"govuk-input govuk-date-input__input govuk-input--width-4\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id+'-year'\"\n [name]=\"config.id+'-year'\" type=\"text\" value=\"\" pattern=\"\\d*\" maxlength=\"4\"\n [formControlName]=\"config.id+'_year'\">\n </div>\n </div>\n </div>\n </xuilib-gov-uk-fieldset>\n </div>\n</div>\n","import {\n Component,\n Input,\n OnInit\n} from '@angular/core';\nimport { ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { ErrorMessagesModel } from '../../models/error-messages-model';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n * Gov UK Date Component\n * Responsible for displaying 3 input fields:\n * day / month / year\n * displaying errorMessage messages\n * */\n@Component({\n selector: 'xuilib-gov-uk-date',\n templateUrl: './gov-uk-date.component.html',\n styleUrls: ['./gov-uk-date.component.scss'],\n standalone: false\n})\nexport class GovUkDateComponent implements OnInit {\n constructor() {}\n @Input() public config: GovUiConfigModel;\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public formGroup: any;\n @Input() public isOptional: boolean = false;\n\n public month: any;\n public day: any;\n public year: any;\n\n public ngOnInit(): void {\n this.day = `${this.config.id}_day`;\n this.month = `${this.config.id}_month`;\n this.year = `${this.config.id}_year`;\n const dateValidator = this.DateValidator();\n this.formGroup.get(this.day).setValidators(dateValidator);\n }\n\n private isValidDate(d: Date, month: number, year: number): boolean {\n const dateCheck = !isNaN(d.getTime());\n // Month mismatch occurs if the provided day or month are invalid, or either is omitted. **Note:** This is insufficient for\n // checking date validity when the year is omitted because it defaults to 1900 - an extra check is required\n const monthMatch = d.getMonth() === month;\n const yearMatch = d.getFullYear() === year;\n return dateCheck && monthMatch && yearMatch;\n }\n\n private isEmpty(value: any) {\n // Note: Intentional use of == to check for null or undefined\n /* eslint-disable eqeqeq */\n /* tslint:disable:triple-equals */\n // NaN and < 0 checks required for month field\n return value == null || value === '' || isNaN(value) || value < 0;\n /* eslint-enable eqeqeq */\n /* tslint:enable:triple-equals */\n }\n\n public DateValidator(): ValidatorFn {\n return (): ValidationErrors | null => {\n const day = this.formGroup.get(this.day).value;\n const month = this.formGroup.get(this.month).value - 1;\n const year = this.formGroup.get(this.year).value;\n // Validation should pass if the date field is optional and day, month, and year are all empty\n if (this.isOptional && this.isEmpty(day) && this.isEmpty(month) && this.isEmpty(year)) {\n return null;\n }\n const validDay = this.formGroup.get(this.day).valid;\n const validMonth = this.formGroup.get(this.month).valid;\n const validYear = this.formGroup.get(this.year).valid;\n\n if (!validDay || !validMonth || !validYear) {\n return { dateComponent: true };\n }\n // + to coerce year to a number\n return !this.isValidDate(new Date(year, month, day), month, +year) ? { dateComponent: true } : null;\n };\n }\n}\n","<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 @if (config.hint) {\n <span [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n </span>\n }\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n @if (reloadInput) {\n <input class=\"govuk-file-upload\"\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 }\n</div>\n","import {Component, Input, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\nimport {HtmlTemplatesHelper} from '../../util/helpers/html-templates.helper';\n/*\n* Gov UK Input component\n* Responsible for displaying input, hint and error messages\n* @prop errorMessages - array of messages\n* @prop focusOn - passing the FormGroup\n* @prop config - adding configuration\n* */\n@Component({\n selector: 'xuilib-gov-uk-file-upload',\n templateUrl: './gov-uk-file-upload.component.html',\n standalone: false\n})\nexport class GovUkFileUploadComponent implements OnInit {\n constructor() { }\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n // { label: string, hint: string; name: string; id: string, type: string; isPageHeading: boolean, classes: string };\n\n public reloadInput = true;\n\n public ngOnInit(): void {\n this.config.classes = 'govuk-label--m';\n }\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n* Gov Uk Radio state-less Component responsible for\n* displaying radios input and hint\n*\n* */\n@Component({\n selector: 'xuilib-gov-radio',\n templateUrl: './gov-uk-radio.component.html',\n standalone: false\n})\nexport class GovUkRadioComponent implements OnInit {\n constructor() { }\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n // {value: string, label: string, hint: string; name: string; focusOn: string; id: string; classes: string}; // TODO create interface\n\n public id: string;\n /*\n * ngOnInIt\n * needed to manage the focus id if passed on in config\n * si it can focus on element when user clicks on error message in the header.\n **/\n public ngOnInit(): void {\n const id = this.config.focusOn ? this.config.focusOn : this.config.value;\n this.config.id = id;\n this.config.classes = this.config.classes ?\n this.config.classes.concat(' govuk-radios__label') : 'govuk-radios__label';\n }\n\n}\n","<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","<xuilib-gov-uk-form-group-wrapper\n [error]=\"errors\"\n [config]=\"options.config\"\n [group]=\"options.key\">\n <div class=\"govuk-radios\">\n @for (item of options.items; track item) {\n <xuilib-gov-radio\n appRemoveHost\n [group]=\"options.group\"\n [config]=\"item\">\n </xuilib-gov-radio>\n }\n </div>\n</xuilib-gov-uk-form-group-wrapper>","import { Component, Input } from '@angular/core';\nimport { ErrorMessagesModel } from '../../models';\nimport { RadioButtonsModel } from '../../models/radio-buttons.model';\n/*\n* Radios component - state less\n* Responsible for displaying a list of gov-uk-radio components\n* @param: options - object with data for wrapper (fieldset) and\n* array of items for gov-uk-checkboxes\n* @param: errors - array of error stings\n* */\n@Component({\n selector: 'xuilib-gov-uk-radios',\n templateUrl: './gov-uk-radios.component.html',\n standalone: false\n})\n\nexport class GovUkRadiosComponent {\n\n @Input() public options: RadioButtonsModel;\n @Input() public errors: ErrorMessagesModel;\n\n}\n","<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 @if (config.hint) {\n <span [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 <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 @for (item of items; track item) {\n <option value=\"{{item.value}}\">{{item.label | rpxTranslate}}</option>\n }\n </select>\n</div>\n","import {Component, Input} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\nimport {HtmlTemplatesHelper} from '../../util/helpers/html-templates.helper';\n/*\n* Gov Uk Select Dumb Component responsible for\n* dropdown input.\n* */\n@Component({\n selector: 'xuilib-gov-select',\n templateUrl: './gov-uk-select.component.html',\n standalone: false\n})\nexport class GovUkSelectComponent {\n constructor() {}\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n // {hint: string; name: string; id: string, isPageHeading: boolean, classes: string };\n @Input() public items: { label: string, value: string; id: string; }[];\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","<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 @for (h of columnConfig; track h) {\n <th class=\"govuk-table__header\" scope=\"col\">{{h.header | rpxTranslate}}</th>\n }\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n @for (r of rows; track r) {\n <tr data-selector=\"table-row\" class=\"govuk-table__row\">\n @for (col of columnConfig; track col; let isFirst = $first) {\n @if (isFirst && firstCellIsHeader) {\n <th data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" >\n @if (!col.type || col.type === 'text' || !r.routerLink) {\n {{r[col.key] | rpxTranslate}}\n }\n @if (col.type === 'link' && r.routerLink) {\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key] | rpxTranslate}}</a>\n }\n </th>\n }\n @if (!(isFirst && firstCellIsHeader)) {\n <td data-selector=\"table-cell\" class=\"govuk-table__cell\" >\n @if (col.type === 'date') {\n {{formatDate(r[col.key]) | rpxTranslate}}\n }\n @if (!col.type || col.type === 'text' || !r.routerLink) {\n {{r[col.key] | rpxTranslate}}\n }\n @if (col.type === 'link' && r.routerLink) {\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key] | rpxTranslate}}</a>\n }\n </td>\n }\n }\n </tr>\n }\n </tbody>\n</table>\n","import {formatDate} from '@angular/common';\nimport {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'xuilib-gov-uk-table',\n templateUrl: './gov-uk-table.component.html',\n styleUrls: ['./gov-uk-table.component.scss'],\n standalone: false\n})\nexport class GovukTableComponent {\n\n @Input() public classes = '';\n @Input() public caption = 'Dates and amounts';\n @Input() public firstCellIsHeader = true;\n @Input() public rows: any;\n @Input() public columnConfig: GovukTableColumnConfig[] = [\n { header: 'Date', key: 'date', type: 'text' },\n { header: 'Amount', key: 'amount' }\n ];\n\n constructor() { }\n\n public formatDate(date: Date): string {\n return formatDate(date, 'dd/MM/yyyy', 'en-UK');\n }\n\n}\n\nexport class GovukTableColumnConfig {\n public header: string;\n public key: string;\n public type?: string;\n constructor() {\n this.header = '';\n this.key = '';\n this.type = 'text';\n }\n }\n","import {Component, Input} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\nimport {HtmlTemplatesHelper} from '../../util/helpers/html-templates.helper';\n/*\n* CheckBox component - state less\n* Responsible for displaying a list of gov-uk-checkboxes\n* @param: options - object with data for wrapper (fieldset) and\n* array of items for gov-uk-checkboxes\n* @param: errors - array of errorMessage\n* */\n@Component({\n selector: 'xuilib-gov-uk-textarea',\n templateUrl: './gov-uk-textarea.component.html',\n standalone: false\n})\nexport class GovUkTextareaComponent {\n @Input() public config: GovUiConfigModel;\n // {label: string; classes: string; hint: string; key: string; rows: number, id: string};\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public group: FormGroup;\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n\n}\n","<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","@if (message && type) {\n @if (title) {\n <div\n class=\"hmcts-banner-title hmcts-banner-title--{{ type }}\">\n {{ title }}\n </div>\n }\n <div class=\"hmcts-banner hmcts-banner--{{ type }}\">\n @if (showMessageIcon) {\n @switch (type) {\n @case ('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 }\n @case ('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 }\n @case ('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 }\n }\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}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-banner',\n templateUrl: './hmcts-banner.component.html',\n styleUrls: ['./hmcts-banner.component.scss'],\n standalone: false\n})\nexport class HmctsBannerComponent {\n @Input() public message: string;\n @Input() public type: 'warning' | 'success' | 'information';\n @Input() public title?: string = '';\n @Input() public showMessageIcon?: boolean = false;\n @Input() public messageBoldText?: boolean = false;\n}\n","@if (value) {\n <div class=\"hmcts-identity-bar\">\n <div class=\"hmcts-identity-bar__container\">\n <div class=\"hmcts-identity-bar__details\">\n <span class=\"hmcts-identity-bar__title\">{{value | rpxTranslate}}</span>\n </div>\n </div>\n </div>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-identity-bar',\n templateUrl: './hmcts-identity-bar.component.html',\n styleUrls: ['./hmcts-identity-bar.component.scss'],\n standalone: false\n})\nexport class HmctsIdentityBarComponent {\n\n @Input() public set content(value: any) {\n this.value = value.name;\n }\n\n public value: string;\n\n constructor() { }\n}\n","@if (hasBackLink) {\n <a [routerLink]=\"backLink\" (click)=\"onGoBack()\" class=\"govuk-back-link\">{{'Back' | rpxTranslate}}</a>\n}\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 @if (summaryErrors && !summaryErrors.isFromValid) {\n <xuilib-hmcts-error-summary\n [errorMessages]=\"summaryErrors.items\"\n [header]=\"summaryErrors.header\"\n [showWarningMessage]=\"showWarningMessage\">\n </xuilib-hmcts-error-summary>\n }\n @if (bannerData) {\n <xuilib-hmcts-banner\n [type]=\"bannerData.type\"\n [message]=\"bannerData.message\"\n ></xuilib-hmcts-banner>\n }\n @if (title) {\n <h1 class=\"govuk-heading-xl\">{{title | rpxTranslate}}</h1>\n }\n <ng-content></ng-content>\n </div>\n @if (actionButtons?.length > 0) {\n <div class=\"govuk-grid-column-one-third\">\n <div class=\"hmcts-page-heading__actions-wrapper\">\n @for (actionButton of actionButtons; track actionButton) {\n <a\n (click)=\"actionButton.action()\"\n role=\"button\"\n draggable=\"false\"\n class=\"govuk-button {{ actionButton.class }}\"\n >{{ actionButton.name | rpxTranslate }}</a>\n }\n </div>\n </div>\n }\n </div>\n</main>\n","import {Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { HmctsBannerInfo } from '../hmcts-banner/hmcts-banner-info.interface';\n/*\n* Main Content wrapper\n* Responsible for:\n * Wrapping content within the gov-uk html elements bellow\n * @prop showBackLink - switch for back link\n * @prop title = title\n * @prop summaryErrors list of errors\n* @prop back link, title (title), summaryErrors (array of errors)\n* */\n@Component({\n selector: 'xuilib-hmcts-main-wrapper',\n templateUrl: './hmcts-main-wrapper.component.html',\n standalone: false\n})\nexport class HmctsMainWrapperComponent implements OnInit {\n public bannerData: HmctsBannerInfo;\n\n @Input() public backLink: string;\n @Input() public title: string;\n @Input() public summaryErrors: {header: string; isFromValid: boolean; items: { id: string; message: any; }[]};\n @Input() public set banner(value: HmctsBannerInfo) {\n this.bannerData = value;\n }\n @Input() public actionButtons: {name: string, class: string, action(): {}}[];\n @Input() public showWarningMessage: boolean;\n\n @Output() public backEvent = new EventEmitter<void>();\n public hasBackLink: boolean;\n\n constructor() {\n }\n\n public ngOnInit() {\n this.hasBackLink = this.backLink !== undefined || this.backEvent.observers.length > 0;\n }\n\n public onGoBack() {\n this.backEvent.emit();\n }\n}\n","@if (isUserLoggedIn) {\n <nav class=\"hmcts-primary-navigation\" [attr.aria-label]=\"label\">\n <div class=\"hmcts-primary-navigation__container\">\n @if (isBrandedHeader) {\n <div class=\"govuk-header__logo\"></div>\n }\n <ul class=\"hmcts-primary-navigation__list\">\n @for (item of items; track item) {\n <li class=\"hmcts-primary-navigation__item\" >\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 }\n </ul>\n </div>\n </nav>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-primary-navigation',\n templateUrl: './hmcts-primary-navigation.component.html',\n styleUrls: ['./hmcts-primary-navigation.component.scss'],\n standalone: false\n})\nexport class HmctsPrimaryNavigationComponent {\n\n @Input() public set userLoggedIn(value: any) {\n this.isUserLoggedIn = value;\n }\n\n @Input() public label: string;\n @Input() public items: {active: boolean, href: string, text: string}[];\n @Input() public isBrandedHeader: boolean;\n\n public isUserLoggedIn: boolean;\n constructor() {\n\n }\n\n}\n","@if (items) {\n <nav class=\"hmcts-sub-navigation\" attr.aria-label=\"{{label}}\" role=\"navigation\">\n <ul class=\"hmcts-sub-navigation__list\">\n @for (item of items; track item) {\n <li class=\"hmcts-sub-navigation__item\">\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 @if (item.roundel && item.roundel > 0 ) {\n <span class=\"xui-alert-link__number\"> {{item.roundel}} </span>\n }\n </a>\n </li>\n }\n </ul>\n </nav>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-sub-navigation',\n styleUrls: ['hmcts-sub-navigation.component.scss'],\n templateUrl: './hmcts-sub-navigation.component.html',\n standalone: false\n})\nexport class HmctsSubNavigationComponent {\n @Input() public label: string;\n @Input() public items: SubNavigation[];\n}\n\nexport interface SubNavigation {\n text: string;\n href: string;\n active: boolean;\n total?: number;\n roundel?: number;\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatLegacyAutocompleteModule as MatAutocompleteModule } from '@angular/material/legacy-autocomplete';\nimport { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';\nimport { MatLegacyTabsModule as MatTabsModule } from '@angular/material/legacy-tabs';\nimport { RouterModule } from '@angular/router';\nimport { NgxPaginationModule, PaginatePipe } from 'ngx-pagination';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { AccessibilityComponent } from './components/accessibility/accessibility.component';\nimport { CheckboxListComponent } from './components/checkbox-list/checkbox-list.component';\nimport { ContactDetailsComponent } from './components/contact-details/contact-details.component';\nimport { CookieBannerComponent } from './components/cookie-banner/cookie-banner.component';\nimport { DueDateComponent } from './components/due-date/due-date.component';\nimport { ExuiPageWrapperComponent } from './components/exui-main-wrapper/exui-page-wrapper.component';\nimport { FindLocationComponent } from './components/find-location/find-location.component';\nimport { FindPersonComponent } from './components/find-person/find-person.component';\nimport { FindServiceComponent } from './components/find-service/find-service.component';\nimport { FindTaskNameComponent } from './components/find-task-name/find-task-name.component';\nimport { GenericFilterComponent } from './components/generic-filter/generic-filter.component';\nimport { HmctsSessionDialogComponent } from './components/hmcts-session-dialog/hmcts-session-dialog.component';\nimport { InviteUserFormComponent } from './components/invite-user-form/invite-user-form.component';\nimport { InviteUserPermissionComponent } from './components/invite-user-permissions/invite-user-permission.component';\nimport { LoadingSpinnerComponent } from './components/loading-spinner/loading-spinner.component';\nimport { PaginationComponent } from './components/pagination/pagination.component';\nimport { SearchJudicialsComponent } from './components/search-judicials/search-judicials.component';\nimport { SearchLocationComponent } from './components/search-location/search-location.component';\nimport { SearchServiceComponent } from './components/search-service/search-service.component';\nimport { SearchVenueComponent } from './components/search-venue/search-venue.component';\nimport { SelectedCaseConfirmComponent } from './components/selected-case-confirm/selected-case-confirm.component';\nimport { SelectedCaseListComponent } from './components/selected-case-list/selected-case-list.component';\nimport { SelectedCaseComponent } from './components/selected-case/selected-case.component';\nimport { ServiceMessageComponent } from './components/service-message/service-message.component';\nimport { ServiceMessagesComponent } from './components/service-messages/service-messages.component';\nimport { ShareCaseConfirmComponent } from './components/share-case-confirm/share-case-confirm.component';\nimport { ShareCaseComponent } from './components/share-case/share-case.component';\nimport { TabComponent } from './components/tab/tab.component';\nimport { TcConfirmComponent } from './components/tc-confirm/tc-confirm.component';\nimport {\n TcDisplayHtmlComponent\n} from './components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component';\nimport {\n TcDisplayPlainComponent\n} from './components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component';\nimport { TermsAndConditionsComponent } from './components/terms-and-conditions/terms-and-conditions.component';\nimport { UserDetailsComponent } from './components/user-details/user-details.component';\nimport { UserListComponent } from './components/user-list/user-list.component';\nimport { UserSelectComponent } from './components/user-select/user-select.component';\nimport { WriteAddressInputsComponent } from './components/write-address-inputs/write-address-inputs.component';\nimport { WriteAddressFieldComponent } from './components/write-address/write-address.component';\nimport { FeatureToggleDirective } from './directives/feature-toggle/feature-toggle.directive';\nimport { LetDirective } from './directives/let/let.directive';\nimport { GovUkCheckboxComponent } from './gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component';\nimport { GovUkCheckboxesComponent } from './gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component';\nimport { GovUkDateComponent } from './gov-ui/components/gov-uk-date/gov-uk-date.component';\nimport { GovUkErrorMessageComponent } from './gov-ui/components/gov-uk-error-message/gov-uk-error-message.component';\nimport { GovUkFieldsetComponent } from './gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component';\nimport { GovUkFileUploadComponent } from './gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component';\nimport {\n GovUkFormGroupWrapperComponent\n} from './gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component';\nimport { GovUkInputComponent } from './gov-ui/components/gov-uk-input/gov-uk-input.component';\nimport { GovUkLabelComponent } from './gov-ui/components/gov-uk-label/gov-uk-label.component';\nimport { GovUkRadioComponent } from './gov-ui/components/gov-uk-radio/gov-uk-radio.component';\nimport { GovUkRadiosComponent } from './gov-ui/components/gov-uk-radios/gov-uk-radios.component';\nimport { GovUkSelectComponent } from './gov-ui/components/gov-uk-select/gov-uk-select.component';\nimport { GovukTableComponent } from './gov-ui/components/gov-uk-table/gov-uk-table.component';\nimport { GovUkTextareaComponent } from './gov-ui/components/gov-uk-textarea/gov-uk-textarea.component';\nimport { HmctsBannerComponent } from './gov-ui/components/hmcts-banner/hmcts-banner.component';\nimport { HmctsErrorSummaryComponent } from './gov-ui/components/hmcts-error-summary/hmcts-error-summary.component';\nimport { HmctsIdentityBarComponent } from './gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component';\nimport { HmctsMainWrapperComponent } from './gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component';\nimport { HmctsPaginationComponent } from './gov-ui/components/hmcts-pagination/hmcts-pagination.component';\nimport {\n HmctsPrimaryNavigationComponent\n} from './gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component';\nimport { HmctsSubNavigationComponent } from './gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component';\nimport { RemoveHostDirective } from './gov-ui/directives/remove-host.directive';\nimport { CapitalizePipe } from './pipes';\nimport { windowProvider, windowToken } from './window';\n\nexport const COMMON_COMPONENTS = [\n ExuiPageWrapperComponent,\n TermsAndConditionsComponent,\n TcDisplayHtmlComponent,\n TcDisplayPlainComponent,\n TcConfirmComponent,\n ContactDetailsComponent,\n FeatureToggleDirective,\n LetDirective,\n HmctsSessionDialogComponent,\n UserListComponent,\n UserDetailsComponent,\n InviteUserPermissionComponent,\n InviteUserFormComponent,\n ShareCaseComponent,\n ShareCaseConfirmComponent,\n SelectedCaseListComponent,\n SelectedCaseComponent,\n SelectedCaseConfirmComponent,\n UserSelectComponent,\n TabComponent,\n AccessibilityComponent,\n DueDateComponent,\n CheckboxListComponent,\n ServiceMessageComponent,\n ServiceMessagesComponent,\n LoadingSpinnerComponent,\n GenericFilterComponent,\n CookieBannerComponent,\n FindPersonComponent,\n SearchJudicialsComponent,\n FindLocationComponent,\n FindTaskNameComponent,\n SearchLocationComponent,\n FindServiceComponent,\n SearchServiceComponent,\n SearchVenueComponent,\n PaginationComponent,\n WriteAddressFieldComponent,\n WriteAddressInputsComponent\n];\n\nexport const GOV_UI_COMPONENTS = [\n HmctsIdentityBarComponent,\n HmctsPaginationComponent,\n HmctsSubNavigationComponent,\n HmctsPrimaryNavigationComponent,\n HmctsErrorSummaryComponent,\n HmctsMainWrapperComponent,\n HmctsBannerComponent,\n GovukTableComponent,\n GovUkInputComponent,\n GovUkCheckboxComponent,\n GovUkFormGroupWrapperComponent,\n GovUkLabelComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkDateComponent,\n GovUkCheckboxesComponent,\n GovUkRadioComponent,\n GovUkRadiosComponent,\n GovUkSelectComponent,\n GovUkTextareaComponent,\n GovUkFileUploadComponent,\n RemoveHostDirective\n];\n\nconst pipes = [\n CapitalizePipe\n];\n\n@NgModule({\n declarations: [\n ...COMMON_COMPONENTS,\n ...GOV_UI_COMPONENTS,\n ...pipes\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule.forChild([]),\n MatAutocompleteModule,\n MatTabsModule,\n MatInputModule,\n NgxPaginationModule,\n RpxTranslationModule.forChild()\n ],\n providers: [\n {provide: windowToken, useFactory: windowProvider}\n ],\n exports: [\n ...COMMON_COMPONENTS,\n ...GOV_UI_COMPONENTS,\n PaginatePipe,\n ...pipes\n ]\n})\nexport class ExuiCommonLibModule {\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GovUiService {\n\n constructor() { }\n}\n","import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function checkboxesBeCheckedValidator(minRequired = 1): ValidatorFn {\n return function validate(formGroup: FormGroup) {\n let checked = 0;\n\n Object.keys(formGroup.controls).forEach(key => {\n const control = formGroup.controls[key];\n\n if (control.value === true) {\n checked ++;\n }\n });\n\n if (checked < minRequired) {\n return {\n requireOneCheckboxToBeChecked: true,\n };\n }\n\n return null;\n };\n}\n","import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function dateValidator(): ValidatorFn {\n return function validate(formGroup: FormGroup) {\n\n const d = new Date(\n parseInt(formGroup.controls.day.value, 10),\n parseInt(formGroup.controls.month.value, 10) - 1,\n parseInt(formGroup.controls.year.value, 10) - 1\n );\n\n function isValidDate(val: any) {\n return val instanceof Date && !isNaN( +d );\n }\n\n if (!isValidDate(d)) {\n return {\n dateIsInvalid: true,\n };\n }\n\n return null;\n };\n}\n","import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function radioGroupValidator(): ValidatorFn {\n return function validate(formGroup: FormGroup) {\n if (formGroup.controls) {\n for (const control in formGroup.controls) {\n if (!formGroup.controls[control].valid) {\n return {\n isRadioGroupInvalid: true,\n };\n }\n }\n }\n\n\n return null;\n };\n}\n","/*\n * Public API Surface of gov-ui\n */\n\nexport * from './checkboxes-be-checked.validator';\nexport * from './date.validator';\nexport * from './radio-group.validator';\n","/*\n * Public API Surface of gov-ui\n */\n\nexport * from './checkboxes-model';\nexport * from './error-messages-model';\nexport * from './gov-ui-config-model';\n","/*\n * Public API Surface of gov-ui\n */\n\nexport * from './directives/remove-host.directive';\nexport * from './gov-ui.service';\nexport * from './validators';\nexport * from './components';\nexport * from './models';\n","/*\n * Public API Surface of exui-common-lib\n */\n\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/exui-common-lib.module';\nexport * from './lib/gov-ui';\nexport * from './lib/models';\nexport * from './lib/pipes';\nexport * from './lib/services';\nexport * from './lib/window';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FeatureToggleService","i2","i1","i1.RoleService","of","i1.RefDataDataAccessService","i2.SessionStorageService","_c1","_c2","i1.FindAPersonService","_c0","i1.LocationService","i3.RefDataService","i1.TaskNameService","i1.FilterService","_c3","_forTrack0","i1.CaseSharingStateService","i1.AddressService","MatAutocompleteModule","MatTabsModule","MatInputModule"],"mappings":"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"}
1
+ {"version":3,"file":"hmcts-rpx-xui-common-lib.mjs","sources":["../../../projects/exui-common-lib/src/lib/components/accessibility/accessibility.component.html","../../../projects/exui-common-lib/src/lib/components/accessibility/accessibility.component.ts","../../../projects/exui-common-lib/src/lib/components/checkbox-list/checkbox-list.component.html","../../../projects/exui-common-lib/src/lib/components/checkbox-list/checkbox-list.component.ts","../../../projects/exui-common-lib/src/lib/components/contact-details/contact-details.component.html","../../../projects/exui-common-lib/src/lib/components/contact-details/contact-details.component.ts","../../../projects/exui-common-lib/src/lib/models/due-date.model.ts","../../../projects/exui-common-lib/src/lib/components/due-date/due-date.component.html","../../../projects/exui-common-lib/src/lib/components/due-date/due-date.component.ts","../../../projects/exui-common-lib/src/lib/services/feature-toggle/feature-toggle.service.ts","../../../projects/exui-common-lib/src/lib/services/feature-toggle/feature-toggle.guard.ts","../../../projects/exui-common-lib/src/lib/services/feature-toggle/launch-darkly.service.ts","../../../projects/exui-common-lib/src/lib/models/address-message.enum.ts","../../../projects/exui-common-lib/src/lib/models/address-option.model.ts","../../../projects/exui-common-lib/src/lib/models/address.model.ts","../../../projects/exui-common-lib/src/lib/models/case-share.model.ts","../../../projects/exui-common-lib/src/lib/models/contact-details.model.ts","../../../projects/exui-common-lib/src/lib/models/feature-user.ts","../../../projects/exui-common-lib/src/lib/models/filter.model.ts","../../../projects/exui-common-lib/src/lib/models/location.model.ts","../../../projects/exui-common-lib/src/lib/models/person.model.ts","../../../projects/exui-common-lib/src/lib/services/address/address-type.enum.ts","../../../projects/exui-common-lib/src/lib/services/address/address-parser.ts","../../../projects/exui-common-lib/src/lib/services/address/address.service.ts","../../../projects/exui-common-lib/src/lib/window.ts","../../../projects/exui-common-lib/src/lib/services/google-analytics/google-analytics.service.ts","../../../projects/exui-common-lib/src/lib/services/google-tag-manager/google-tag-manager.service.ts","../../../projects/exui-common-lib/src/lib/services/manage-session/manage-session.services.ts","../../../projects/exui-common-lib/src/lib/services/timeout-notifications/timeout-notifications.service.ts","../../../projects/exui-common-lib/src/lib/services/role-guard/role.service.ts","../../../projects/exui-common-lib/src/lib/services/role-guard/role.guard.ts","../../../projects/exui-common-lib/src/lib/services/cookie/cookie.service.ts","../../../projects/exui-common-lib/src/lib/services/loading/loading.service.ts","../../../projects/exui-common-lib/src/lib/services/filter/filter.service.ts","../../../projects/exui-common-lib/src/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.ts","../../../projects/exui-common-lib/src/lib/services/ref-data/ref-data.service.ts","../../../projects/exui-common-lib/src/lib/services/public-api.ts","../../../projects/exui-common-lib/src/lib/components/generic-filter/generic-filter-utils.ts","../../../projects/exui-common-lib/src/lib/services/storage/session-storage/session-storage.service.ts","../../../projects/exui-common-lib/src/lib/services/find-person/find-person.service.ts","../../../projects/exui-common-lib/src/lib/components/find-person/find-person.component.html","../../../projects/exui-common-lib/src/lib/components/find-person/find-person.component.ts","../../../projects/exui-common-lib/src/lib/services/locations/location.service.ts","../../../projects/exui-common-lib/src/lib/components/search-location/search-location.component.html","../../../projects/exui-common-lib/src/lib/components/search-location/search-location.component.ts","../../../projects/exui-common-lib/src/lib/components/find-location/find-location.component.html","../../../projects/exui-common-lib/src/lib/components/find-location/find-location.component.ts","../../../projects/exui-common-lib/src/lib/services/task-name/task-name.service.ts","../../../projects/exui-common-lib/src/lib/components/find-task-name/find-task-name.component.html","../../../projects/exui-common-lib/src/lib/components/find-task-name/find-task-name.component.ts","../../../projects/exui-common-lib/src/lib/components/search-service/search-service.component.html","../../../projects/exui-common-lib/src/lib/components/search-service/search-service.component.ts","../../../projects/exui-common-lib/src/lib/components/find-service/find-service.component.html","../../../projects/exui-common-lib/src/lib/components/find-service/find-service.component.ts","../../../projects/exui-common-lib/src/lib/pipes/capitalize/capitalize.pipe.ts","../../../projects/exui-common-lib/src/lib/components/generic-filter/generic-filter.component.html","../../../projects/exui-common-lib/src/lib/components/generic-filter/generic-filter.component.ts","../../../projects/exui-common-lib/src/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.ts","../../../projects/exui-common-lib/src/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/directives/remove-host.directive.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/util/helpers/html-templates.helper.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.html","../../../projects/exui-common-lib/src/lib/components/invite-user-permissions/invite-user-permission.component.ts","../../../projects/exui-common-lib/src/lib/components/invite-user-permissions/invite-user-permission.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.ts","../../../projects/exui-common-lib/src/lib/components/invite-user-form/invite-user-form.component.ts","../../../projects/exui-common-lib/src/lib/components/invite-user-form/invite-user-form.component.html","../../../projects/exui-common-lib/src/lib/components/loading-spinner/loading-spinner.component.ts","../../../projects/exui-common-lib/src/lib/components/loading-spinner/loading-spinner.component.html","../../../projects/exui-common-lib/src/lib/services/case-sharing-state/case-sharing-state.service.ts","../../../projects/exui-common-lib/src/lib/components/selected-case-confirm/selected-case-confirm.component.html","../../../projects/exui-common-lib/src/lib/components/selected-case-confirm/selected-case-confirm.component.ts","../../../projects/exui-common-lib/src/lib/components/selected-case/selected-case.component.html","../../../projects/exui-common-lib/src/lib/components/selected-case/selected-case.component.ts","../../../projects/exui-common-lib/src/lib/components/selected-case-list/selected-case-list.component.html","../../../projects/exui-common-lib/src/lib/components/selected-case-list/selected-case-list.component.ts","../../../projects/exui-common-lib/src/lib/components/service-message/service-message.component.html","../../../projects/exui-common-lib/src/lib/components/service-message/service-message.component.ts","../../../projects/exui-common-lib/src/lib/components/service-messages/service-messages.component.html","../../../projects/exui-common-lib/src/lib/components/service-messages/service-messages.component.ts","../../../projects/exui-common-lib/src/lib/components/share-case-confirm/share-case-confirm.component.html","../../../projects/exui-common-lib/src/lib/components/share-case-confirm/share-case-confirm.component.ts","../../../projects/exui-common-lib/src/lib/components/user-select/user-select.component.html","../../../projects/exui-common-lib/src/lib/components/user-select/user-select.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.ts","../../../projects/exui-common-lib/src/lib/components/share-case/share-case.component.html","../../../projects/exui-common-lib/src/lib/components/share-case/share-case.component.ts","../../../projects/exui-common-lib/src/lib/components/tab/tab.component.html","../../../projects/exui-common-lib/src/lib/components/tab/tab.component.ts","../../../projects/exui-common-lib/src/lib/components/tc-confirm/tc-confirm.component.ts","../../../projects/exui-common-lib/src/lib/components/tc-confirm/tc-confirm.component.html","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.ts","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.html","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.ts","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.html","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/terms-and-conditions.component.html","../../../projects/exui-common-lib/src/lib/components/terms-and-conditions/terms-and-conditions.component.ts","../../../projects/exui-common-lib/src/lib/components/user-details/user-details.component.html","../../../projects/exui-common-lib/src/lib/components/user-details/user-details.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.ts","../../../projects/exui-common-lib/src/lib/components/user-list/user-list.component.html","../../../projects/exui-common-lib/src/lib/components/user-list/user-list.component.ts","../../../projects/exui-common-lib/src/lib/components/cookie-banner/cookie-banner.component.html","../../../projects/exui-common-lib/src/lib/components/cookie-banner/cookie-banner.component.ts","../../../projects/exui-common-lib/src/lib/components/pagination/pagination.component.html","../../../projects/exui-common-lib/src/lib/components/pagination/pagination.component.ts","../../../projects/exui-common-lib/src/lib/components/search-venue/search-venue.component.html","../../../projects/exui-common-lib/src/lib/components/search-venue/search-venue.component.ts","../../../projects/exui-common-lib/src/lib/components/search-judicials/search-judicials.component.html","../../../projects/exui-common-lib/src/lib/components/search-judicials/search-judicials.component.ts","../../../projects/exui-common-lib/src/lib/components/exui-main-wrapper/exui-page-wrapper.component.html","../../../projects/exui-common-lib/src/lib/components/exui-main-wrapper/exui-page-wrapper.component.ts","../../../projects/exui-common-lib/src/lib/components/write-address-inputs/write-address-inputs.component.html","../../../projects/exui-common-lib/src/lib/components/write-address-inputs/write-address-inputs.component.ts","../../../projects/exui-common-lib/src/lib/components/write-address/write-address.component.html","../../../projects/exui-common-lib/src/lib/components/write-address/write-address.component.ts","../../../projects/exui-common-lib/src/lib/directives/feature-toggle/feature-toggle.directive.ts","../../../projects/exui-common-lib/src/lib/directives/let/let.directive.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.ts","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.html","../../../projects/exui-common-lib/src/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.ts","../../../projects/exui-common-lib/src/lib/exui-common-lib.module.ts","../../../projects/exui-common-lib/src/lib/gov-ui/gov-ui.service.ts","../../../projects/exui-common-lib/src/lib/gov-ui/validators/checkboxes-be-checked.validator.ts","../../../projects/exui-common-lib/src/lib/gov-ui/validators/date.validator.ts","../../../projects/exui-common-lib/src/lib/gov-ui/validators/radio-group.validator.ts","../../../projects/exui-common-lib/src/lib/gov-ui/validators/public_api.ts","../../../projects/exui-common-lib/src/lib/gov-ui/models/public_api.ts","../../../projects/exui-common-lib/src/lib/gov-ui/public_api.ts","../../../projects/exui-common-lib/src/public-api.ts","../../../projects/exui-common-lib/src/hmcts-rpx-xui-common-lib.ts"],"sourcesContent":["<h1 class=\"govuk-heading-xl\">\n {{'Accessibility statement for MyHMCTS' | rpxTranslate }} {{isEndpointMC ? 'Manage Cases' : 'Manage\nOrganisation' | rpxTranslate}}</h1>\n<p class=\"govuk-body\">{{'MyHMCTS' |rpxTranslate}} {{isEndpointMC ? 'Manage Cases' : 'Manage Organisation' |\n rpxTranslate}} {{'is used across several services. Please use links to find contact information for each\nservice.' | rpxTranslate}}</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li><a href=\"accessibility#immigration\">{{'Immigration and Asylum' | rpxTranslate}}</a></li>\n <li><a href=\"accessibility#family-public-law\">{{'Family Public Law' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#adoption\">{{'adoption' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#civil-damages\">{{'Civil Damages' | rpxTranslate}}</a></li>\n <li><a href=\"accessibility#divorce\">{{'Divorce and financial remeduies' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#civil-money-claims\">{{'Civil Money Claims' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#private-law\">{{'Private Law' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#probate\">{{'Probate' | rpxTranslate}} </a></li>\n <li><a href=\"accessibility#social-security#\">{{'Social Security and Child Support' | rpxTranslate}} </a></li>\n</ul>\n<p class=\"govuk-body\">{{'This website is run by HM Courts & Tribunals Service. We want as many people as possible to be able to use this website. For example, you should be able to:' | rpxTranslate}}</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'change colours, contrast levels and fonts using browser or device settings' | rpxTranslate}}</li>\n <li>{{'navigate most of the website using a keyboard or speech recognition software' | rpxTranslate}}</li>\n <li>{{'listen to most of the website using a screen reader (including the most recent versions of JAWS,\n NVDA and VoiceOver)' | rpxTranslate}}\n </li>\n</ul>\n<p class=\"govuk-body\">{{'We\\’ve also made the website text as simple as possible to understand.' |\nrpxTranslate}}</p>\n<p class=\"govuk-body\">\n <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://mcmw.abilitynet.org.uk/\">{{'AbilityNet' |\n rpxTranslate}}</a> {{'has advice on making your device easier to use if you have a disability.' |\n rpxTranslate}}\n</p>\n\n<h2 class=\"govuk-heading-l\">{{'How accessible this website is' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'We know some parts of the website are not fully accessible:' | rpxTranslate}}</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'some pages can\\'t be zoomed in to 400% without content overlapping' | rpxTranslate}}</li>\n <li>{{'some page titles aren\\'t page specific' | rpxTranslate}}</li>\n <li>{{'it may be difficult to navigate between pages' | rpxTranslate}}</li>\n <li>{{'some headings and labels aren\\'t specific enough' | rpxTranslate}}</li>\n <li>{{'some PDFs may not be fully accessible to a screen reader' | rpxTranslate}}</li>\n <li>{{'some buttons may not communicate collapsed status on mobile' | rpxTranslate}}</li>\n</ul>\n\n<h2 class=\"govuk-heading-l\">{{'Feedback and contact information' | rpxTranslate }}</h2>\n<p class=\"govuk-body\">If you're a legal professional and need information on this website\nin a different format like accessible PDF, large print, easy read, audio recording or braille, you can:</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>email: <a href=\"mailto:HMCTSforms@justice.gov.uk\">HMCTSforms&#64;justice.gov.uk</a></li>\n <li>call the service you require, as listed below.</li>\n</ul>\n<h3 class=\"govuk-heading-l\" id=\"adoption\">{{'Adoption' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 01634 887900' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"civil-damages\">{{'Civil Damages Service' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 123 1372' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"divorce\">{{'Divorce and Financial Remedy' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 303 0642' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"family-public-law\">{{'Family Public Law' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0330 808 4424' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"immigration\">{{'Immigration and Asylum Chamber' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 123 1711' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"civil-money-claims\">{{'Online Civil Money Claims' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 123 7050' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"private-law\">{{'Private Law' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 323 0185' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"probate\">{{'Probate' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 303 0648' | rpxTranslate}}</li></ul>\n<h3 class=\"govuk-heading-l\" id=\"social-security\">{{'Social Security and Child Support' | rpxTranslate}}</h3>\n<ul class=\"govuk-list govuk-list--bullet\"><li>{{'call: 0300 123 1142' | rpxTranslate}}</li></ul>\n<p class=\"govuk-body\">{{'We\\'ll consider your request and get back to you in 10 working days.' | rpxTranslate}}\n</p>\n@if (isEndpointMC) {\n <p class=\"govuk-body\">\n {{'If you are member of HMCTS staff or the Judiciary speak to your line manager or equivalent in the first instance.' | rpxTranslate}}</p>\n}\n\n<h2 class=\"govuk-heading-l\">{{'Reporting accessibility problems with this website' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'We\\'re always looking to improve the accessibility of this website. If you\\'re a legal\n professional and find any problems not listed on this page or think we’re not meeting accessibility\nrequirements, contact:' | rpxTranslate}}</p>\n<ul class=\"govuk-list govuk-list--bullet\">\n <li>\n email: <a href=\"mailto:customer.service@justice.gov.uk\">customer.service&#64;justice.gov.uk</a>\n </li>\n <li>call the service you require as listed above.</li>\n</ul>\n<p class=\"govuk-body\">{{'We\\'ll consider your request and get back to you in 10 working days.' | rpxTranslate}}\n <p class=\"govuk-body\">{{'If you are member of HMCTS staff or the Judiciary speak to your line manager or\n equivalent in the first instance.' | rpxTranslate}}</p>\n\n <h2 class=\"govuk-heading-l\">{{'Enforcement procedure' | rpxTranslate}}</h2>\n <p class=\"govuk-body\">{{'The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public\n Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility\n regulations’).' | rpxTranslate}} </p>\n <p class=\"govuk-body\">{{'If you\\’re not happy with how we respond to your complaint,' | rpxTranslate}}\n <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.equalityadvisoryservice.com/\">{{'contact the\n Equality Advisory and Support Service (EASS).' | rpxTranslate}}</a>\n </p>\n\n <h2 class=\"govuk-heading-l\">{{'Technical information about this website\\’s accessibility' | rpxTranslate}}</h2>\n <p class=\"govuk-body\">{{'HM Courts & Tribunals Service is committed to making its website accessible, in accordance with the Public\n Sector Bodies (Websites and Mobile Applications) (No.2) Accessibility Regulations 2018.' | rpxTranslate}}</p>\n\n <h2 class=\"govuk-heading-l\">{{'Compliance Status' | rpxTranslate}}</h2>\n <p class=\"govuk-body\">{{'This website is partially compliant with the ' | rpxTranslate}}<a target=\"_blank\"\n href=\"https://www.w3.org/TR/WCAG22/\">\n {{'Web Content Accessibility Guidelines version 2.2 ' | rpxTranslate}}</a>\n {{'to AA standard, due to the non-compliances listed below.' | rpxTranslate}}\n</p>\n\n<h2 class=\"govuk-heading-l\">{{'Non-accessible content' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'The content listed below is non-compliant for the following reasons.' | rpxTranslate}}\n</p>\n<h2 class=\"govuk-heading-l\">{{'Non-accessible content' | rpxTranslate}}</h2>\n<h3 class=\"govuk-heading-l\">{{'Non-compliance with the accessibility regulations' | rpxTranslate}}</h3>\n<p class=\"govuk-body\">{{'The content listed below is non-compliant for the following reasons.' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'There were navigation lists present that were not marked up correctly and so assistive technology may\nhave difficulty reading the content.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A) and 4.1.2 Name, Role, Value (Level A).' | rpxTranslate}}\n</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'For screen reader users, it will be difficult for the user to distinguish which form\nelements are related to each document as they don’t have a shared or common label.' | rpxTranslate}}</span>{{' This fails WCAG\nv2.2, 1.3.1 Info and Relationships (Level A) and 3.3.2 Labels or Instructions (Level A).' | rpxTranslate}}\n</p>\n<p class=\"govuk-body\">\n <span class=\"govuk-!-font-weight-bold\">{{'Links were found that did not have a distinct meaning which could mean that screen reader users may be\n unable to determine their purpose.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 2.4.4 Link Purpose (In Context) (Level A) and 2.4.9\nLink Purpose (Link Only) (Level AAA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'A string of text that visually named an element was not part of the programmatic accessible\n name. When using assistive technology, it may be problematic for the user to interact with the element using their\nvoice.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 2.5.3 Label in Name (Level A). ' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'A submit button is not provided for a text input element so entering text into the input used\n to search documents causes the documents context to change automatically, which can be disruptive for assistive\ntechnology users.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 3.2.2 On Input (Level A). ' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Visual headings were found, but they were not marked up with a semantic heading tag. Using Assistive\n technology, a screen reader user may not be aware that the text is a heading, which means they may struggle to navigate\nusing headings and understand the correct hierarchy of the content.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Active elements are nested which can cause random results from assistive technology.\n This means users might be unable to accurately interact with the content or they could be missing content.\n' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 4.1.2 Name, Role, Value (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'The state of content that can be expanded or collapsed is not announced or not correctly announced to screen reader users,\nthis means screen reading software will only announce a collapsed state.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 4.1.2 Name, Role, Value (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Asterisks are used to denote a required field. The asterisk is not clearly communicated to enable a user to understand\nthat it denotes a required field.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A) and 3.3.2 Labels or Instructions (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some headings are contained within a description list which may cause some confusion to a screen reader user.\n' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'When a user chooses an option from a search field, the chosen option will be added to the service webpage.\n Users can remove the options by activating an interactive element. When using assistive technology the user may not know that the new interactive\nelement is used to remove the added option as it does not have a descriptive alternative.' | rpxTranslate}}</span>{{' This fails WCAG v2.2 1.3.1 Info and Relationships (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Typing into the text input causes a list box to appear and show options that the user can choose from. If the user is using keyboard inputs to navigate\nthe service webpage, the user will have difficulties selecting an option.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 2.1.1 Keyboard (Level A) and 2.1.3 Keyboard\n(No Exception) (Level AAA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Using mouse inputs to activate the tab elements will cause the service webpage contents to change.\nIt is not possible for a keyboard-only user to navigate or activate the tabs.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A),\n2.1.1 Keyboard (Level A), 4.1.2 Name, Role, Value Level (A) and 2.1.3 Keyboard (No Exception) (Level AAA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Headings on the page were found to not follow a hierarchical heading structure which means assistive technology may\nstruggle to communicate a logical heading order to the user.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.3.1 Info and Relationships (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some images were decorative but the descriptions were not accurate for assistive technology users.\n' | rpxTranslate}}</span>{{' This fails WCAG v2.2 1.1.1 Non-text Content (Level A).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Elements are present that do not contain a descriptive name or label for users. Assistive technology users may not be able\nto accurately identify their differences.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 2.4.6 Headings and Labels (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Assistive technology does not announce the important messages shown if there are no results and this means that a screen\nreader user might not know that there are no results available.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 4.1.3 Status Messages (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some of the colour combinations found on the website are low contrast and are likely\nto be difficult for people with low vision to distinguish.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.11 Non-text Contrast\n(Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Content is lost or obscured on the page when the browser dimensions are set to 1280 x\n 1024 and magnified to 400. The user will need to modify their settings and this could make it difficult to\nread the service webpage.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.10 Reflow (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Text on the website cannot be resized to 200% without loss of content/ functionality.\n' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.4 Resize text (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some of the text colour combinations found on the site do not meet contrast guidelines.\n The change in colour may make it difficult for the user to read the text as the contrast is less than the\nminimum required.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.3 Contrast (Minimum) (Level AA) and 1.4.6 Contrast (Enhanced)\n(Level AAA). ' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Modifying the text spacing to make the text easier to read will cause the ‘Zoom in’\n button to be obscured. The user will need to change their settings and this could make the text difficult to\nread.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.12 Text Spacing (Level AA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Abbreviations are not expanded in the first instance or explained and may be difficult\nfor users with cognitive impairments to understand.' | rpxTranslate}}</span>{{' This fails WCAG v2.2 3.1.4 Abbreviations (Level AAA). ' |\nrpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'There are elements which open in a new window without informing the users first. If the\n user is not aware a new window/ tab will open, the user may be disoriented and have difficulties returning to\nthe previous page.' | rpxTranslate}}</span>{{' This fails WCAG v2.2 3.2.5 Change on Request (Level AAA).' | rpxTranslate}}\n</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Some links were not descriptive enough for Assistive technology to convey the context\nto the user.' | rpxTranslate}}</span>{{' This fails WCAG v2.2 2.4.9 Link Purpose (Link Only) (Level AAA).' | rpxTranslate}}</p>\n<p class=\"govuk-body\"><span class=\"govuk-!-font-weight-bold\">{{'Text colour combinations found on the service do not meet enhanced contrasts and are\nlikely to be difficult for people with vision colour deficiencies to read.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.6\nContrast (Enhanced) (Level AAA).' | rpxTranslate}}</p>\n\n<ng-container>\n <h3 class=\"govuk-heading-m\">{{'Disproportionate burden on accessibility regulations' | rpxTranslate}}</h3>\n <p class=\"govuk-body\">{{'There are areas which have been classified as disproportionate burden.' | rpxTranslate}}</p>\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>{{'We have identified some issues which we believe to constitute a disproportionate burden. One issue is around mobile view support and another is\n around having multiple ways to navigate the service. Both issues stem from business decisions taken at the very beginning of the development process\n for Expert UI, a tool for professional users. We know from Google Analytics stats that there are very low numbers of users attempting to use Manage Case from mobile phones.\n To resolve both issues would take a substantial UI design effort to build a new UI concept, a large technical design effort to create and a vast\n development effort to implement and test the solution, and for these reasons we think disproportionate burden is relevant. ' | rpxTranslate}}</li>\n </ul>\n <p class=\"govuk-body\">{{ 'A further review will take place in 12 months to review the current position' | rpxTranslate}}</p>\n</ng-container>\n\n<h3 class=\"govuk-heading-m\">{{'Content that’s not within the scope of the accessibility regulations' | rpxTranslate }}</h3>\n<p class=\"govuk-body\">{{'PDFs and other documents' | rpxTranslate}}</p>\n<p class=\"govuk-body\">{{'The accessibility regulations do not require us to fix PDFs or other documents\npublished before 23 September 2018 if they’re not essential to providing our services.' | rpxTranslate}}</p>\n<p class=\"govuk-body\">{{'Any new PDFs or Word documents we publish will meet accessibility standards.' |\nrpxTranslate}}</p>\n\n<h2 class=\"govuk-heading-l\">{{'What we\\’re doing to improve accessibility' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'We\\’re committed to ensuring our services are accessible to all our users\nand that they comply with level AA of the Web Content Accessibility Guidelines – WCAG 2.2.' | rpxTranslate}}</p>\n<p class=\"govuk-body\">{{'We\\’re currently working through the issues from an external audit carried out by the Digital\n Accessibility Centre (DAC) which we expect to fix by Jan 2026.' | rpxTranslate}}\n</p>\n\n<h2 class=\"govuk-heading-l\">{{'Preparation of this accessibility statement' | rpxTranslate}}</h2>\n<p class=\"govuk-body\">{{'This statement was prepared on 16 September 2019. It was last reviewed on 26 March 2025.' | rpxTranslate}}</p>\n<p class=\"govuk-body\">{{'This website was tested by' | rpxTranslate}}\n <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://digitalaccessibilitycentre.org/\">{{'Digital Accessibility Centre (DAC)' | rpxTranslate}}</a> {{' in 19 February 2024' | rpxTranslate}}\n</p>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'xuilib-accessibility',\n templateUrl: './accessibility.component.html',\n styleUrls: ['./accessibility.component.scss'],\n standalone: false\n})\n\nexport class AccessibilityComponent implements OnInit {\n public isEndpointMC: boolean;\n constructor() {\n }\n\n public ngOnInit(): void {\n const urlRef = window.location.href;\n // pointing to MC & preview. May need to refactor this if\n // more applications added than MO & MC\n if (urlRef.includes('manage-case')\n || urlRef.includes('xui-webapp')\n && !urlRef.includes('xui-mo-webapp')) {\n this.isEndpointMC = true;\n } else {\n this.isEndpointMC = false;\n }\n }\n}\n","@if (isFunctional) {\n <div class=\"xui-checkbox-list govuk-checkboxes govuk-checkboxes--small\">\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 @for (item of options; track item; let i = $index) {\n <div 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 }\n </div>\n </div>\n}\n","import { AfterContentChecked, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'xuilib-checkbox-list',\n templateUrl: 'checkbox-list.component.html',\n styleUrls: ['checkbox-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class CheckboxListComponent<T> implements OnChanges, AfterContentChecked {\n\n constructor(private readonly ref: ChangeDetectorRef) {\n }\n\n /**\n * The options to show checkboxes for. Note that the type\n * within the array corresponds to the one for the component.\n */\n @Input() public options: T[] = [];\n\n /**\n * The initially-selected values to use. When the component renders,\n * the checkboxes that correspond to these values will be checked.\n */\n @Input() public preselection: T[];\n\n /**\n * This function is invoked for each item to display the appropriate\n * label beside the checkbox.\n */\n @Input() public labelFunction: (item: T) => string;\n\n /**\n * Whenever the selection changes, this event fires. What is dispatched\n * is the current selection, also retrievable from .selection.\n */\n @Output() public selectionChange: EventEmitter<T[]> = new EventEmitter<T[]>();\n\n /**\n * The currently selected values.\n * Note: This array is immutable, which means pushing and popping will\n * have no effect on which checkboxes are selected.\n */\n @Input()\n public get selection(): T[] {\n return this.pSelection ? [ ...this.pSelection ] : [];\n }\n public set selection(value: T[]) {\n this.pSelection = this.getSelection(value);\n }\n private pSelection: T[];\n private pSelectionMade: boolean;\n\n /**\n * Indicates whether or not all of the items are selected.\n */\n public get allSelected(): boolean {\n return this.selection.length === this.options.length;\n }\n\n // Catch any changes to any of the Input() properties.\n public ngOnChanges(): void {\n // Set up the pre-selected values.\n this.setupPreselection();\n // Now check the current selection to make sure it's valid.\n this.checkSelection();\n }\n\n // checks the data projected into the component\n public ngAfterContentChecked(): void {\n this.ref.detectChanges();\n }\n\n /**\n * Indicates whether or not there are any options to render.\n */\n public get hasOptions(): boolean {\n return this.options && this.options.length > 0;\n }\n\n public get isFunctional(): boolean {\n return this.labelFunction && this.hasOptions;\n }\n\n /**\n * Indicates whether or not an item is part of the current selection.\n * @param item The item in question.\n */\n public isSelected(item: T): boolean {\n return this.selection.includes(item);\n }\n\n /**\n * If an item is already selected, it will be removed from the selection.\n * Otherwise, it will be added to the selection..\n */\n public toggleItemSelection(item: T): void {\n if (this.pSelection === undefined) {\n // If we don't have any selection at all yet, make it just this item.\n this.pSelection = [ item ];\n } else if (this.isSelected(item)) {\n // If this item is already selected, remove it.\n this.pSelection.splice(this.pSelection.indexOf(item), 1);\n } else {\n // If it's not selected, add it.\n this.pSelection.push(item);\n }\n\n // Indicate that the user has now made an active selection.\n this.pSelectionMade = true;\n\n // Now emit an event so any containers know about the change to selection.\n this.selectionChange.emit(this.selection);\n }\n\n /**\n * If all of the items are selected, deselect them all.\n * Otherwise, select them all.\n */\n public toggleSelectAll(): void {\n // Do we already have them all selected?\n if (this.allSelected) {\n // If so, clear out the selection.\n this.pSelection = [];\n } else {\n // If not, select all of them.\n this.pSelection = [ ...this.options ];\n }\n\n // Indicate that the user has now made an active selection.\n this.pSelectionMade = true;\n\n // Now emit an event so any containers know about the change to selection.\n this.selectionChange.emit(this.pSelection);\n }\n\n /**\n * Use the labelFunction to determine whether the options include the item.\n * This is to handle partial objects being set in the pre-selection where\n * they may not be available by the same mechanism as the options.\n *\n * @param items The array of items in which to look for the item.\n * @param item The item to check in the options.\n */\n public containsItem(items: T[], item: T): boolean {\n if (this.isFunctional) {\n const itemLabel: string = this.labelFunction(item);\n return items.some(opt => {\n return this.labelFunction(opt) === itemLabel;\n });\n }\n return false;\n }\n\n // Simple utility function to indicate whether there is an active preselection.\n private get hasPreselection(): boolean {\n return this.preselection && this.preselection.length > 0;\n }\n\n // Set up the initially selected values.\n // NOTE: If the preselection changes and the user has NOT made an active selection,\n // the current selection will also be changed. As soon as the user has made an\n // active selection, however, the preselection is no longer relevant.\n private setupPreselection(): void {\n if (this.isFunctional && !this.pSelectionMade && this.hasPreselection) {\n let changed = true; // Assume this is a change.\n if (this.pSelection) {\n // If there is no difference between the arrays, this is not a change.\n changed = this.pSelection.filter((item: T) => {\n return !this.containsItem(this.preselection, item);\n }).length > 0;\n }\n\n // If this is a change, update the selection and then emit an\n // event so any containers know about the change to selection.\n if (changed) {\n this.pSelection = this.getSelection(this.preselection);\n this.selectionChange.emit(this.selection);\n }\n }\n }\n\n private getSelection(items: T[]): T[] {\n return [\n ...this.options.filter(opt => {\n return this.containsItem(items, opt);\n })\n ];\n }\n\n // The options have changed. Let's make sure the selection\n // doesn't contain anything that's not currently an option.\n private checkSelection(): void {\n if (this.isFunctional) {\n // Check which of the currently selected items are actually options.\n const allowedSelection: T[] = this.selection.filter((item: T) => {\n return this.containsItem(this.options, item);\n });\n\n // If any have dropped out, change the selection.\n if (allowedSelection.length !== this.selection.length) {\n this.pSelection = [ ...allowedSelection ];\n\n // And emit an event so any containers know about the change to selection.\n this.selectionChange.emit(this.selection);\n }\n }\n }\n}\n","@if (data) {\n <div class=\"contact-details\">\n @if (data.title) {\n <h3 class=\"govuk-heading-m\">{{ data.title }}</h3>\n }\n @if (data.badgeText) {\n <p><span [className]=\"'hmcts-badge ' + data.badgeColour\">{{ data.badgeText }}</span></p>\n }\n @if (data.email) {\n <div class=\"email\"><span class=\"govuk-!-font-weight-bold\">{{'Email:' | rpxTranslate}} </span> <a href=\"mailto:{{ data.email }}\">{{ data.email }}</a></div>\n }\n @if (data.contactDetails) {\n <div class=\"contactDetails\"><span class=\"govuk-!-font-weight-bold\">{{'Contact:' | rpxTranslate}} </span> <a rel=\"external\" href=\"{{ data.contactDetails.contactLink }}\">{{ data.contactDetails.name }}</a></div>\n }\n @if (data.phone) {\n <div class=\"phone\"><span class=\"govuk-!-font-weight-bold\">{{'Phone:' | rpxTranslate}} </span>{{ data.phone }}</div>\n }\n @if (data.openingTimes) {\n <div class=\"opening-times\"><span class=\"govuk-!-font-weight-bold\">{{'Opening times:' | rpxTranslate }} </span>{{ data.openingTimes}}</div>\n }\n </div>\n}","import { Component, Input } from '@angular/core';\nimport { ContactDetailsDataModel } from '../../models';\n\n@Component({\n selector: 'xuilib-contact-details',\n templateUrl: './contact-details.component.html',\n styleUrls: ['contact-details.component.scss'],\n standalone: false\n})\nexport class ContactDetailsComponent {\n\n @Input() public data: ContactDetailsDataModel;\n\n constructor() {\n }\n}\n","export enum DateBadgeColour {\n RED = 'hmcts-badge--red',\n ORANGE = 'hmcts-badge--orange',\n GREEN = 'hmcts-badge--green',\n}\n\nexport const SECONDS_IN_A_DAY: number = 60 * 60 * 24;\n","@if (dueDate) {\n <span class=\"due-date hmcts-badge\" [ngClass]=\"badge\"\n [title]=\"accessibleLabel | rpxTranslate\" [attr.aria-label]=\"accessibleLabel | rpxTranslate\">\n {{label | rpxTranslate}}\n </span>\n}","import { formatDate } from '@angular/common';\nimport { AfterContentChecked, ChangeDetectorRef, Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\n\nimport { DateBadgeColour, SECONDS_IN_A_DAY } from '../../models/due-date.model';\n\n@Component({\n selector: 'xuilib-due-date',\n templateUrl: 'due-date.component.html',\n styleUrls: ['due-date.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class DueDateComponent implements OnChanges, AfterContentChecked {\n\n constructor(private readonly ref: ChangeDetectorRef) {\n }\n\n\n /**\n * The due date to use as the basis for rendering this component. It is\n * compared to the current date and displayed accordingly.\n */\n @Input() public dueDate: Date;\n\n /**\n * This should be considered HIGH urgency if there are fewer than this\n * many days until the due date.\n * * Set to 0 if you want it to show HIGH if it was due yesterday.\n * * Set to 1 if you want it to show HIGH if it's due today.\n * * Set to 2 if you want it to show HIGH if it's due tomorrow.\n *\n * Defaults to 0 (ZERO), which means it won't show as HIGH urgency until the\n * due date is in the past.\n *\n * NOTE: If this is higher than the mediumUrgencyCutoff value, MEDIUM urgency\n * will never be shown.\n *\n * ALSO NOTE: Anything overdue is automatically considered HIGH urgency.\n */\n @Input() public highUrgencyCutoff: number = 0; // Default\n\n /**\n * This should be considered MEDIUM urgency if there are fewer than this\n * many days until the due date.\n * * Set to 1 if you want it to show MEDIUM if it's due today.\n * * Set to 2 if you want it to show MEDIUM if it's due tomorrow.\n * * Set to 3 if you want it to show MEDIUM if it's due the day after tomorrow.\n *\n * Defaults to 2, which means it won't show as MEDIUM urgency unless the\n * due date is today or tomorrow.\n *\n * NOTE: If this is lower than the highUrgencyCutoff value, MEDIUM urgency\n * will never be shown.\n */\n @Input() public mediumUrgencyCutoff: number = 2;\n\n // The HMCTS badge class, used for colouration.\n private pBadge: string;\n public get badge(): string {\n return this.pBadge;\n }\n\n // The textual label to display in the component.\n private pLabel: string;\n public get label(): string {\n return this.pLabel;\n }\n\n // The accessible label, which is also used for the tooltip.\n private pAccessibleLabel: string;\n public get accessibleLabel(): string {\n return this.pAccessibleLabel;\n }\n\n // How many days the dueDate varies from today.\n private pDaysDiff: number;\n public get daysDiff(): number {\n return this.pDaysDiff;\n }\n\n // Catch any changes to any of the Input() properties.\n public ngOnChanges(): void {\n this.handleInputChanges();\n }\n\n // checks the data projected into the component\n public ngAfterContentChecked(): void {\n this.ref.detectChanges();\n }\n\n // Set up the label, urgency class, and accessibility fields.\n private handleInputChanges() {\n // If we don't have a dueDate, skip out of here.\n if (!this.dueDate) {\n return;\n }\n\n // How many days from today is the due date?\n // Already happened means daysDiff > 0;\n // Today means daysDiff = 0;\n // Yet to come means daysDiff < 0;\n this.pDaysDiff = this.getDaysDifference(this.dueDate, new Date());\n\n // Is it overdue?\n if (this.daysDiff > 0) {\n this.pBadge = DateBadgeColour.RED;\n const daysLabel = this.daysDiff === 1 ? 'day' : 'days';\n this.pLabel = `+${this.daysDiff} ${daysLabel}`;\n this.pAccessibleLabel = `This task is ${this.daysDiff} ${daysLabel} past its due date`;\n } else {\n // Special label for \"Today\".\n if (this.daysDiff === 0) {\n this.pLabel = 'TODAY';\n this.pAccessibleLabel = 'This task is due to be completed today';\n } else {\n this.pLabel = `${formatDate(this.dueDate, 'd MMM', 'en-GB')}`;\n this.pAccessibleLabel = `This task is due to be completed by ${formatDate(this.dueDate, 'd MMMM y', 'en-GB')}`;\n }\n if (this.daysDiff + this.highUrgencyCutoff > 0) {\n this.pBadge = DateBadgeColour.RED;\n } else if (this.daysDiff + this.mediumUrgencyCutoff > 0) {\n this.pBadge = DateBadgeColour.ORANGE;\n } else {\n this.pBadge = DateBadgeColour.GREEN;\n }\n }\n }\n\n // This will return the difference between two dates.\n // If fromDate is BEFORE toDate, it will be a positive number.\n // If fromDate is AFTER toDate, it will be a negative number.\n private getDaysDifference(fromDate: Date, toDate: Date): number {\n const fromEpoch = fromDate.getTime();\n const toEpoch = toDate.getTime();\n const diffSecs = Math.floor((toEpoch - fromEpoch) / 1000);\n return Math.floor(diffSecs / SECONDS_IN_A_DAY);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { FeatureUser } from '../../models/feature-user';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeatureToggleService {\n // tslint:disable-next-line: variable-name\n public initialize(_user: FeatureUser, _clientId: string): void {\n throw new Error('Not implemented');\n }\n // tslint:disable-next-line: variable-name\n public isEnabled(_feature: string): Observable<boolean> {\n throw new Error('Not implemented');\n }\n // tslint:disable-next-line: variable-name\n public getValue<R>(_key: string, _defaultValue: R): Observable<R> {\n throw new Error('Not implemented');\n }\n\n // tslint:disable-next-line: variable-name\n public getValueOnce<R>(_key: string, _defaultValue: R): Observable<R> {\n throw new Error('Not implemented');\n }\n\n // tslint:disable-next-line: variable-name\n public getValueSync<R>(feature: string, defaultValue: R): R {\n throw new Error(`Not implemented ${feature}:${defaultValue}`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, UrlTree } from '@angular/router';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { FeatureToggleService } from './feature-toggle.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeatureToggleGuard {\n\n public constructor(\n private readonly featureToggleService: FeatureToggleService,\n private readonly router: Router\n ) {}\n\n // TEST-TODO\n /**\n * Usage: Add the FeatureToggleGuard as the Guard for a route, and provide the following\n * in the data array for the route:\n * - needsFeaturesEnabled: An array of feature keys that need to be enabled for this route\n * - featureDisabledRedirect: the URL to redirect to when the this route is not accessible due to disabled features\n * - expectFeatureEnabled: Sets whether a route should be enabled/disabled based on whether feature is present\n * @param route Automatically provided by Angular\n * Note: Per Angular 18, when a guard returns a UrlTree as a redirect,\n * the redirecting navigation will now use replaceUrl if the initial navigation was also using the replaceUrl option.\n */\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> {\n return combineLatest([...(route.data.needsFeaturesEnabled as string[]).map(\n feature => this.featureToggleService.getValueOnce<boolean>(feature, true)\n )]).pipe(\n map(featureStatuses => featureStatuses.every(status => status)),\n map(status => (route.data.expectFeatureEnabled !== false && status) || (route.data.expectFeatureEnabled === false && !status) || this.router.parseUrl(route.data.featureDisabledRedirect as string))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { initialize, LDClient, LDContext } from 'launchdarkly-js-client-sdk';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { FeatureUser } from '../../models/feature-user';\nimport { FeatureToggleService } from './feature-toggle.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LaunchDarklyService implements FeatureToggleService {\n private client: LDClient;\n private readonly ready: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private readonly features: Record<string, BehaviorSubject<any>> = {};\n private context: LDContext = { kind: 'user', anonymous: true };\n private clientId: string = '';\n\n public initialize(user: FeatureUser = { anonymous: true }, clientId: string): void {\n this.ready.next(false);\n this.context = { kind: 'user', ...user };\n this.clientId = clientId;\n this.client = initialize(this.clientId, this.context, { useReport: true });\n this.client.on('ready', () => {\n this.client.identify(this.context).then(() => this.ready.next(true));\n });\n\n this.client.on('error', (err: any) => {\n console.error('LaunchDarkly client network error:', err);\n // Allow the app to proceed by emitting true, so subscribers are not blocked\n this.ready.next(true);\n });\n }\n\n public isEnabled(feature: string, defaultValue: boolean = false): Observable<boolean> {\n return this.getValue<boolean>(feature, defaultValue);\n }\n\n public getArray<R = any>(feature: string): Observable<R[]> {\n return this.getValue<R[]>(feature, []);\n }\n\n // Note that this function always emits its default value first, which can lead to unexpected results\n public getValue<R>(feature: string, defaultValue: R): Observable<R> {\n if (!this.features.hasOwnProperty(feature)) {\n this.features[feature] = new BehaviorSubject<R>(defaultValue);\n this.ready.pipe(\n filter((ready) => ready),\n map(() => this.client.variation(feature, defaultValue))\n ).subscribe((value) => {\n this.features[feature].next(value);\n this.client.on(`change:${feature}`, (val: R) => {\n this.features[feature].next(val);\n });\n });\n }\n return this.features[feature].pipe(\n distinctUntilChanged()\n );\n }\n\n /**\n * This method returns an observable that will only get the state of the feature toggle\n * once. It calls the LD SDK directly, and should only be used in circumstances where\n * only one value should be emitted, that value coming directly from LD. This will likely\n * only apply for Guards, and should be used only when absolutely necessary.\n * @see getValue for regular usage.\n * @param feature string\n * @param defaultValue R\n */\n public getValueOnce<R>(feature: string, defaultValue: R): Observable<R> {\n return this.ready.pipe(\n filter((ready) => ready),\n map(() => this.client.variation(feature, defaultValue))\n );\n }\n\n public getValueSync<R>(feature: string, defaultValue: R): R {\n return this.client.variation(feature, defaultValue);\n }\n}\n","export enum AddressMessageEnum {\n NO_OPTION_SELECTED = 'Select an option',\n NO_STREET_SELECTED = 'Enter building and street',\n NO_CITY_SELECTED = 'Enter town or city',\n NO_COUNTRY_SELECTED = 'Enter country',\n NO_POSTCODE_SELECTED = 'Enter a valid postcode',\n SELECT_ADDRESS = 'Select an address',\n INVALID_POSTCODE = 'Enter valid postcode'\n }","import { AddressModel } from '.';\n\nexport class AddressOption {\n public description: string;\n public value: AddressModel;\n\n constructor (addressModel: AddressModel, description: string) {\n if (description === null) {\n this.value = addressModel;\n this.description = this.getDescription();\n } else {\n this.description = description;\n }\n }\n\n private getDescription() {\n return this.removeInitialCommaIfPresent(\n `${this.value.addressLine1 === undefined ? '' : this.value.addressLine1}${this.prefixWithCommaIfPresent(this.value.addressLine2)}${this.prefixWithCommaIfPresent(this.value.addressLine3)}, ${this.value.postTown}`\n );\n }\n\n private prefixWithCommaIfPresent(value: string) {\n return value ? `, ${value}` : value;\n }\n\n private removeInitialCommaIfPresent(value: string) {\n return value.replace(new RegExp('^,', 'gi'), '');\n }\n}\n","// tslint:disable:variable-name\nexport class AddressModel {\n public addressLine1: string;\n public addressLine2?: string;\n public addressLine3?: string;\n public postTown: string;\n public county?: string;\n public postCode: string;\n public country: string;\n}\n","import { UserDetails } from './user-details.model';\n\nexport interface SharedCase {\n caseId: string;\n caseTitle: string;\n caseTypeId?: string;\n roles?: string[];\n sharedWith?: UserDetails[];\n pendingShares?: UserDetails[];\n pendingUnshares?: UserDetails[];\n}\n\nexport enum SharedCaseErrorMessages {\n OneCaseMustBeSelected = 'At least one case must be selected',\n NoChangesRequested = 'You have not requested any changes to case sharing',\n OnePersonMustBeAssigned = 'At least one person must be assigned to each case'\n}\n","export enum BadgeColour {\n BADGE_RED = 'hmcts-badge--red',\n BADGE_BLUE = 'hmcts-badge--blue',\n BADGE_GREEN = 'hmcts-badge--green',\n}\n\nexport interface ContactDetailsDataModel {\n title?: string;\n badgeColour?: BadgeColour;\n badgeText?: string;\n email?: string;\n phone?: string;\n openingTimes?: string;\n contactDetails?: {\n name: string;\n contactLink: string;\n }\n}\n","export class AnonymousFeatureUser {\n public anonymous: true;\n}\n\nexport class LoggedInFeatureUser {\n public key: string;\n [key: string]: any;\n public roles: string[];\n public orgId: string;\n}\n\nexport type FeatureUser = AnonymousFeatureUser | LoggedInFeatureUser;\n","import { FormGroup } from '@angular/forms';\nimport { BookingCheckType } from './location.model';\nimport { PersonRole } from './person.model';\n\nexport type FilterFieldType = 'group-title' | 'checkbox' | 'radio' | 'select' | 'find-person' | 'find-location' | 'checkbox-large' | 'find-service' | 'text-input' | 'email-input' | 'group-select' | 'nested-checkbox' | 'find-task-name';\n\nexport type FilterPersistence = 'local' | 'session' | 'memory';\n\nexport interface FilterConfigOption {\n key: string;\n label: string;\n selectAll?: boolean;\n}\n\nexport interface FilterConfig {\n id: string;\n fields: FilterFieldConfig[];\n persistence: FilterPersistence;\n applyButtonText: string;\n enableDisabledButton?: boolean;\n cancelButtonText: string;\n cancelSetting?: FilterSetting;\n showCancelFilterButton?: boolean;\n preSelectedNestedCheckbox?: number[];\n cancelButtonCallback?(): void;\n applyButtonCallback?(): void;\n copyFields?(form: FormGroup): FormGroup;\n}\n\nexport interface FilterFieldOption {\n key: string;\n label: string;\n selectAll?: true;\n}\n\nexport interface FilterFieldConfig {\n name: string;\n options: FilterConfigOption[];\n minSelected: number;\n maxSelected: number;\n type: FilterFieldType;\n minSelectedError?: string;\n maxSelectedError?: string;\n displayMaxSelectedError?: boolean;\n displayMinSelectedError?: boolean;\n emailError?: string;\n lineBreakBefore?: boolean;\n showCondition?: string;\n enableCondition?: string;\n enableAddButton?: boolean;\n enableAddLocationButton?: boolean;\n enableAddTaskNameButton?: boolean;\n changeResetFields?: string[];\n findPersonField?: string;\n findLocationField?: string;\n findTaskNameField?: string;\n domainField?: string;\n disable?: boolean;\n disabledText?: string;\n domain?: PersonRole;\n title?: string;\n titleClasses?: string;\n titleHint?: string;\n subTitle?: string;\n locationTitle?: string;\n hintText?: string;\n radioSelectionChange?: string;\n bookingCheckType?: BookingCheckType;\n placeholderContent?: string;\n maxWidth480px?: boolean;\n maxRows?: number;\n groupOptions?: GroupOptions[];\n maxlength?: number;\n defaultOption?: FilterConfigOption;\n readonly?: boolean;\n servicesField?: string;\n services?: string[];\n propertyNameFilter?: string;\n}\n\nexport interface GroupOptions {\n group: string;\n options: FilterFieldOption[];\n placeholderContent?: string;\n}\n\nexport interface FilterSetting {\n id: string;\n idamId?: string;\n reset?: boolean;\n fields: { name: string, value: any[] }[];\n}\n\nexport class RadioFilterFieldConfig implements FilterFieldConfig {\n public name: string;\n public options: { key: string, label: string}[];\n public minSelected: 1;\n public maxSelected: 1;\n public type: 'radio';\n}\n\nexport interface FilterError {\n name: string;\n error: string;\n}\n","export interface LocationModel {\n court_venue_id: string;\n site_name: string;\n court_name?: string;\n epimms_id: string;\n open_for_public?: string;\n court_type_id: string;\n court_type: string;\n region_id: string;\n region: string;\n cluster_id?: string;\n cluster_name?: string;\n court_status?: string;\n court_open_date?: string;\n closed_date?: string;\n postcode?: string;\n court_address?: string;\n phone_number?: string;\n court_location_code?: string;\n dx_address?: string;\n welsh_site_name?: string;\n welsh_court_address?: string;\n venue_name?: string;\n is_case_management_location?: string;\n is_hearing_location?: string;\n}\n\nexport interface LocationByEPIMMSModel {\n epimms_id: string;\n site_name?: string;\n court_name?: string;\n open_for_public?: string;\n region_id?: string;\n region?: string;\n cluster_id?: string;\n cluster_name?: string;\n court_status?: string;\n court_open_date?: string;\n closed_date?: string;\n postcode?: string;\n court_address?: string;\n phone_number?: string;\n court_location_code?: string;\n dx_address?: string;\n welsh_site_name?: string;\n welsh_court_address?: string;\n venue_name?: string;\n is_case_management_location?: string;\n is_hearing_location?: string;\n}\n\nexport interface LocationsByService {\n service?: string;\n serviceCode?: string;\n bookable?: boolean;\n locations: LocationByEPIMMSModel[];\n}\n\nexport enum BookingCheckType {\n NO_CHECK = 'NO_CHECK',\n BOOKINGS_AND_BASE = 'BOOKINGS_AND_BASE',\n POSSIBLE_BOOKINGS = 'POSSIBLE_BOOKINGS',\n}\n","export interface Person {\n id: string;\n name: string;\n email?: string;\n domain: string;\n knownAs?: string;\n fullName?: string;\n}\n\nexport interface JudicialUserModel {\n emailId: string;\n fullName: string;\n idamId: string;\n isJudge: string;\n isMagistrate: string;\n isPanelMember: string;\n knownAs: string;\n personalCode: string;\n surname: string;\n title: string;\n}\n\nexport interface CaseworkersByService {\n service: string;\n caseworkers: Caseworker[];\n}\n\nexport interface Caseworker {\n idamId: string;\n firstName: string;\n lastName: string;\n email: string;\n knownAs?: string;\n roleCategory: string;\n}\n\n// used as settings for filters and components\nexport enum PersonRole {\n JUDICIAL = 'Judicial',\n LEGAL_OPERATIONS = 'Legal Ops',\n ADMIN = 'Admin',\n CTSC = 'CTSC',\n ALL = 'All',\n}\n\n// Role categories used in application\nexport enum RoleCategory {\n JUDICIAL = 'JUDICIAL',\n LEGAL_OPERATIONS = 'LEGAL_OPERATIONS',\n ADMIN = 'ADMIN',\n CTSC = 'CTSC',\n PROFESSIONAL = 'PROFESSIONAL',\n CITIZEN = 'CITIZEN',\n ALL = 'ALL'\n}\n","export enum AddressType {\n DPA = 'DPA',\n UK = 'United Kingdom',\n RD06 = 'RD06'\n}\n","import { AddressModel } from '../../models';\nimport { AddressType } from './address-type.enum';\n\n/**\n * Moving all this logic here into Address Parser class, so that it\n * will be easier for us when we move this parsing logic to into\n * `Shim` java service.\n */\n export class AddressParser {\n public parse(address: any) {\n const classification = `${address.CLASSIFICATION_CODE}`;\n const addressModel = new AddressModel();\n addressModel.addressLine1 = this.parseAddressLine1(classification, address);\n addressModel.addressLine2 = this.parseAddressLine2(classification, address);\n addressModel.addressLine3 = this.parseAddressLine3(classification, address);\n addressModel.postCode = address.POSTCODE;\n addressModel.postTown = address.POST_TOWN;\n addressModel.country = AddressType.UK;\n return addressModel;\n }\n\n private parseAddressLine1(classification: string, address: any) {\n let addressLine;\n if (classification === AddressType.RD06) {\n addressLine =\n `${address.SUB_BUILDING_NAME} ${address.ORGANISATION_NAME} ${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;\n } else {\n addressLine =\n `${address.ORGANISATION_NAME}${this.prefixWithCommaIfPresent(address.BUILDING_NAME)}` +\n `${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;\n }\n return this.removeNonAddressValues(addressLine);\n }\n\n private parseAddressLine2(classification: string, address: any) {\n let addressLine;\n if (classification === AddressType.RD06) {\n addressLine = `${address.BUILDING_NAME} `;\n } else {\n addressLine =\n `${address.SUB_BUILDING_NAME} ${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;\n }\n return this.removeNonAddressValues(addressLine);\n }\n\n private parseAddressLine3(classification: string, address: any) {\n let addressLine;\n if (classification === AddressType.RD06) {\n addressLine =\n `${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;\n } else {\n addressLine =\n `${address.DEPENDENT_LOCALITY} ${address.DOUBLE_DEPENDENT_LOCALITY} ${address.DEPENDENT_THOROUGHFARE_NAME}`;\n }\n return this.removeNonAddressValues(addressLine);\n }\n\n private removeNonAddressValues(line: string) {\n line = line.replace(' null', ' ').replace('null ', ' ');\n line = this.removeUndefinedString(line);\n line = this.removeInitialComma(line);\n line = this.removeEmptySpaces(line);\n return line;\n }\n\n private removeUndefinedString(value: string) {\n return value.replace(new RegExp('undefined', 'gi'), '');\n }\n\n private removeEmptySpaces(value: string) {\n return value.replace(new RegExp(' +', 'gi'), ' ').trim();\n }\n\n private removeInitialComma(value: string) {\n return value.replace(new RegExp('^,', 'gi'), '');\n }\n\n private prefixWithCommaIfPresent(value: string) {\n return value ? `, ${value}` : value;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { of } from 'rxjs/internal/observable/of';\nimport { map } from 'rxjs/operators';\nimport { AddressModel } from '../../models';\nimport { AddressParser } from './address-parser';\nimport { AddressType } from './address-type.enum';\n\n@Injectable()\nexport class AddressService {\n\n constructor(private readonly http: HttpClient) {\n }\n\n public getAddressesForPostcode(postcode: string): Observable<AddressModel[]> {\n if (!postcode) {\n return of([]);\n }\n return this.http\n .get<any>('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined as object)\n .pipe(\n map((res) => res.results))\n .pipe(\n map(output => output ? output.map((addresses: any) =>\n this.format(new AddressParser().parse(addresses[AddressType.DPA]))\n ) : [])\n );\n }\n\n private format(addressModel: AddressModel) {\n return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));\n }\n\n private formatAddressLines(addressModel: AddressModel) {\n ['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach((value: keyof typeof addressModel) => {\n addressModel[value] = this.toCapitalCase(addressModel[value]);\n });\n return addressModel;\n }\n\n private shiftAddressLinesUp(addressModel: AddressModel) {\n if (addressModel.addressLine2 === '') {\n addressModel.addressLine2 = addressModel.addressLine3;\n addressModel.addressLine3 = '';\n }\n if (addressModel.addressLine1 === '') {\n addressModel.addressLine1 = addressModel.addressLine2;\n addressModel.addressLine2 = '';\n }\n return addressModel;\n }\n\n private toCapitalCase(sentence: string) {\n sentence = sentence.toLowerCase();\n sentence.split(' ').forEach((value) => {\n sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));\n }\n );\n return sentence;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const windowToken = new InjectionToken('Window');\nexport function windowProvider() { return window; }\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { windowToken } from '../../window';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class GoogleAnalyticsService {\n\n private readonly document: Document;\n private readonly window: Window;\n\n public googleAnalyticsKey: string;\n constructor(\n private readonly router: Router,\n private readonly title: Title,\n @Inject(windowToken) window: any,\n @Inject(DOCUMENT) document: any,\n ) {\n this.window = window as Window;\n this.document = document as Document;\n\n }\n\n public init(googleAnalyticsKey: string) {\n this.googleAnalyticsKey = googleAnalyticsKey;\n try {\n const script1 = this.document.createElement('script');\n script1.async = true;\n script1.src = `https://www.googletagmanager.com/gtag/js?id=${this.googleAnalyticsKey}`;\n this.document.head.appendChild(script1);\n\n const script2 = this.document.createElement('script');\n script2.innerHTML = `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${this.googleAnalyticsKey}', {'send_page_view': false});\n `;\n this.document.head.appendChild(script2);\n } catch (ex) {\n console.error('Error appending google analytics');\n console.error(ex);\n }\n this.listenForRouteChanges();\n }\n\n private listenForRouteChanges() {\n if (this.googleAnalyticsKey) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n (this.window as any).gtag('config', this.googleAnalyticsKey, {\n page_path: event.urlAfterRedirects,\n page_title: this.title.getTitle(),\n });\n }\n });\n }\n }\n\n public event(eventName: string, params: Record<string, any>) {\n if (typeof (window as any).gtag === 'function') {\n (this.window as any).gtag('event', eventName, params);\n } else {\n console.warn('Google Analytics is not available.');\n }\n }\n}\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { windowToken } from '../../window';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleTagManagerService {\n private readonly document: Document;\n private readonly window: Window;\n\n public googleTagManagerKey: string;\n constructor(\n private readonly router: Router,\n private readonly title: Title,\n @Inject(windowToken) window: any,\n @Inject(DOCUMENT) document: any\n ) {\n this.window = window as Window;\n this.document = document as Document;\n }\n\n public init(googleTagManagerKey: string) {\n this.googleTagManagerKey = googleTagManagerKey;\n try {\n (this.window as any).dataLayer = (this.window as any).dataLayer || [];\n (this.window as any).dataLayer.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js'\n });\n\n const script = this.document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=${this.googleTagManagerKey}`;\n this.document.head.appendChild(script);\n } catch (ex) {\n console.error('Error appending google tag manager');\n console.error(ex);\n }\n this.listenForRouteChanges();\n }\n\n private listenForRouteChanges() {\n if (this.googleTagManagerKey) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n (this.window as any).dataLayer.push({\n event: 'pageview',\n page: {\n path: event.urlAfterRedirects,\n title: this.title.getTitle()\n }\n });\n }\n });\n }\n }\n\n public virtualPageView(eventName: string, path: string, title: string, metadata?: Record<string, any>) {\n if ((this.window as any).dataLayer) {\n (this.window as any).dataLayer.push({\n event: eventName,\n page: {\n path,\n title\n },\n ...metadata\n });\n }\n }\n\n public event(eventName: string, params: Record<string, any>) {\n if ((this.window as any).dataLayer) {\n (this.window as any).dataLayer.push({\n event: eventName,\n ...params\n });\n }\n }\n}","import { Injectable } from '@angular/core';\nimport {DocumentInterruptSource, Idle, } from '@ng-idle/core';\nimport {Keepalive} from '@ng-idle/keepalive';\nimport {Observable, Subject} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map\n} from 'rxjs/operators';\nimport {IdleConfigModel} from '../../models/idle-config.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ManageSessionServices {\n private readonly appStateEmitter: Subject<{type: string, countdown?: string; isVisible?: boolean}>;\n\n constructor(\n private readonly idle: Idle,\n private readonly keepalive: Keepalive,\n ) {\n this.appStateEmitter = new Subject();\n }\n\n public init(idleConfig: IdleConfigModel): void {\n\n this.idle.setIdleName(idleConfig.idleServiceName);\n this.idle.setTimeout(idleConfig.timeout);\n\n const interrupt =\n new DocumentInterruptSource('mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll');\n this.idle.setInterrupts([interrupt]);\n\n // adding delay so that user can click on sign out before the modal shuts\n this.idle.onIdleEnd.pipe(delay(250)).subscribe(() => {\n this.appStateEmitter.next({type: 'modal', countdown: undefined, isVisible: false});\n });\n\n this.idle.onTimeout.subscribe(() => {\n this.appStateEmitter.next({type: 'signout'});\n });\n\n this.idle.onTimeoutWarning.pipe(\n map(sec => (sec > 60) ? `${Math.ceil(sec / 60)} minutes` : `${sec} seconds`),\n distinctUntilChanged()\n ).subscribe((countdown) => {\n this.appStateEmitter.next({type: 'modal', countdown, isVisible: true});\n });\n\n this.keepalive.interval(idleConfig.keepAliveInSeconds);\n this.keepalive.onPing.subscribe(() => {\n this.appStateEmitter.next({type: 'keepalive'});\n });\n const idleInSeconds = Math.floor((idleConfig.idleMilliseconds / 1000)) - idleConfig.timeout;\n this.idle.setIdle(idleInSeconds);\n this.idle.watch();\n }\n\n public appStateChanges(): Observable<any> {\n return this.appStateEmitter.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport {DocumentInterruptSource, Idle, WindowInterruptSource} from '@ng-idle/core';\nimport {Keepalive} from '@ng-idle/keepalive';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport {\n distinctUntilChanged,\n map\n} from 'rxjs/operators';\nimport {TimeoutNotificationConfig} from '../../models';\n\n/**\n * TimeoutNotificationsService\n *\n * The Timeout Notification Service allows your application to receive notifications\n * when a User is approaching the total time that a User has been idle for.\n *\n * This can be set by your application using the Timeout Notification Config object.\n *\n * Your application will then have to listen to events coming from the Timeout Notification Service,\n * and handle these events within your application.\n *\n * @see README.md for implementation details and code, on how to implement the Timeout Notification\n * Service within your application.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class TimeoutNotificationsService {\n\n private readonly subs: Subscription[] = [];\n private readonly eventEmitter: Subject<{eventType: string, readableCountdown?: string; }>;\n\n constructor(\n private readonly idle: Idle,\n private readonly keepalive: Keepalive,\n ) {\n this.eventEmitter = new Subject();\n }\n\n /**\n * Convert milliseconds to seconds.\n *\n * @param milliseconds - 1000\n * @return seconds - 1\n */\n public millisecondsToSeconds = (milliseconds: number): number => milliseconds / 1000;\n\n /**\n * Initialise\n *\n * Initialise the Timeout Notification Events.\n *\n * I made the decision not to make ' minutes' and ' seconds' configurable via input parameters -\n * As I made an assumption that any Reform team would not need to change these to 'secs, mins' or 's, m'.\n *\n * idleModalDisplayTime and totalIdleTime need to be passed in, in milliseconds.\n *\n * @see README.md for more information on TimeoutNotificationService.\n */\n public initialise(config: TimeoutNotificationConfig): void {\n\n const DOCUMENT_INTERRUPTS = 'mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll';\n\n const MINUTES = ' minutes';\n const SECONDS = ' seconds';\n\n const SIGNOUT_EVENT = 'sign-out';\n const COUNTDOWN_EVENT = 'countdown';\n const KEEP_ALIVE_EVENT = 'keep-alive';\n\n const {idleServiceName, idleModalDisplayTime, totalIdleTime} = config;\n\n this.idle.setIdleName(idleServiceName);\n\n const idleModalDisplayTimeInSeconds = this.millisecondsToSeconds(idleModalDisplayTime);\n const totalIdleTimeInSeconds = this.millisecondsToSeconds(totalIdleTime);\n\n this.idle.setTimeout(idleModalDisplayTimeInSeconds);\n\n const docInterrupts = new DocumentInterruptSource(DOCUMENT_INTERRUPTS);\n const windowInterrupts = new WindowInterruptSource(DOCUMENT_INTERRUPTS);\n this.idle.setInterrupts([docInterrupts, windowInterrupts]);\n\n this.subs.push(this.idle.onTimeout.subscribe(() => {\n this.eventEmitter.next({eventType: SIGNOUT_EVENT});\n }));\n\n this.subs.push(this.idle.onTimeoutWarning.pipe(\n map(sec => (sec > 60) ? Math.ceil(sec / 60) + MINUTES : sec + SECONDS),\n distinctUntilChanged()\n ).subscribe((countdown) => {\n this.eventEmitter.next({eventType: COUNTDOWN_EVENT, readableCountdown: countdown});\n }));\n this.subs.push(this.idle.onIdleStart.subscribe(() => console.log('You\\'ve gone idle!')));\n this.subs.push(this.idle.onIdleEnd.subscribe(() => console.log('You\\'re no longer idle!')));\n\n this.keepalive.interval(15);\n this.subs.push(this.keepalive.onPing.subscribe(() => {\n this.eventEmitter.next({eventType: KEEP_ALIVE_EVENT});\n }));\n\n const idleInSeconds = Math.floor(totalIdleTimeInSeconds) - idleModalDisplayTimeInSeconds;\n this.idle.setIdle(idleInSeconds);\n this.idle.watch();\n }\n\n public reset(): void {\n this.idle.watch();\n }\n\n public close(): void {\n this.subs.forEach(s => s.unsubscribe());\n this.idle.stop();\n this.idle.clearInterrupts();\n }\n\n /**\n * Expose the notification events, so that a 3rd party service can listen to the notifications.\n */\n public notificationOnChange(): Observable<any> {\n return this.eventEmitter.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { skipWhile } from 'rxjs/operators';\n\n// use types so we can move to stricted typing later on\nexport type Role = string;\nexport type Roles = Role[];\n\n@Injectable({\n providedIn: 'root'\n })\nexport class RoleService {\n public readonly pRoles = new BehaviorSubject<Roles>(null);\n public roles$ = this.pRoles.asObservable().pipe(skipWhile(item => item === null));\n\n public set roles(roles: Roles) {\n this.pRoles.next(roles);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { RoleService } from './role.service';\n\nexport enum RoleMatching {\n ALL,\n ANY\n}\n\n@Injectable({\n providedIn: 'root'\n })\nexport class RoleGuard {\n\n public constructor(\n private readonly roleService: RoleService,\n private readonly router: Router\n ) {}\n\n // TEST-TODO\n /*\n * Note: Per Angular 18, when a guard returns a UrlTree as a redirect,\n * the redirecting navigation will now use replaceUrl if the initial navigation was also using the replaceUrl option.\n * */\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> {\n return this.roleService.roles$.pipe(\n map(roles => {\n const canActivateRoles = (route.data.needsRole as string[]);\n const check = (roleRegEx: string) => {\n const regex = new RegExp(roleRegEx);\n return roles.some(role => regex.test(role));\n };\n const match = route.data.roleMatching === RoleMatching.ALL ? canActivateRoles.every(check) : canActivateRoles.some(check);\n\n return match || this.router.parseUrl(route.data.noRoleMatchRedirect as string);\n })\n );\n }\n}\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CookieService {\n private readonly document?: Document;\n\n constructor(@Inject(DOCUMENT) doc?: any) {\n this.document = doc as Document;\n }\n\n public setCookie(key: string, value: string, expiryDate?: string): void {\n const expiry = expiryDate ? ` expires=${expiryDate}` : '';\n const cookie = `${key}=${value};${expiry};SameSite=Strict`;\n this.document.cookie = cookie;\n }\n\n public getCookie(key: string): string {\n const cookieValue = this.document.cookie\n .split('; ')\n .find(row => row.startsWith(`${key}=`))\n .split('=')[1];\n return cookieValue;\n }\n\n public deleteCookie(key: string, path?: string, domain?: string): void {\n const pathValue = path ? `; path=${path}` : '';\n const domainValue = domain ? `; domain=${domain}` : '';\n this.document.cookie = `${key}=${pathValue}${domainValue}; expires=Thu, 01 Jan 1970 00:00:01 GMT; max-age=0`;\n }\n\n public deleteCookieByPartialMatch(key: string, path?: string, domain?: string): void {\n this.document.cookie\n .split('; ')\n .filter(row => row.startsWith(`${key}`))\n .forEach(element => {\n this.deleteCookie(element.split('=')[0], path, domain);\n });\n }\n\n public checkCookie(key: string): boolean {\n return this.document.cookie.split('; ').some(item => item.trim().startsWith(`${key}=`));\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\n\nexport abstract class HasLoadingState {\n public get isLoading(): Observable<boolean> {\n return;\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingService implements HasLoadingState {\n private readonly registered = new Map<string, string>();\n private readonly loading = new BehaviorSubject<boolean>(false);\n\n public get isLoading(): Observable<boolean> {\n return this.loading.asObservable().pipe(distinctUntilChanged());\n }\n\n public register(): string {\n const token = this.generateToken();\n this.registered.set(token, token);\n this.loading.next(true);\n return token;\n }\n\n public unregister(token: string): void {\n this.registered.delete(token);\n this.loading.next(this.registered.size > 0);\n }\n\n private generateToken(): string {\n const timestamp = window.performance.now();\n return `common-lib-loading-${timestamp}`; // format: [source-library]-[unique incrementing number]\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { FilterError, FilterPersistence, FilterSetting } from '../../models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilterService {\n public givenErrors: BehaviorSubject<FilterError[]> = new BehaviorSubject(null);\n public isInitialSetting: boolean = false;\n private readonly filterSettings: { [id: string]: FilterSetting } = {};\n private readonly streams: { [id: string]: BehaviorSubject<FilterSetting> } = {};\n\n public persist(setting: FilterSetting, persistence: FilterPersistence): void {\n switch (persistence) {\n case 'local':\n this.persistLocal(setting);\n break;\n case 'session':\n this.persistSession(setting);\n break;\n default:\n break;\n }\n this.persistMemory(setting);\n this.updateStreams(setting);\n }\n\n public get(id: string): FilterSetting | null {\n if (this.filterSettings[id]) {\n return this.filterSettings[id];\n }\n if (sessionStorage.getItem(id)) {\n return JSON.parse(sessionStorage.getItem(id));\n }\n if (localStorage.getItem(id)) {\n if (this.isSameUser(id)) {\n return JSON.parse(window.localStorage.getItem(id));\n } else {\n return null;\n }\n }\n return null;\n }\n\n public isSameUser(id: string): boolean {\n const filterSetting: FilterSetting = JSON.parse(window.localStorage.getItem(id));\n return !!filterSetting.idamId && filterSetting.idamId === this.getUserId();\n }\n\n public getStream(id: string): Observable<FilterSetting> {\n if (!this.streams[id]) {\n this.streams[id] = new BehaviorSubject<FilterSetting>(this.get(id));\n }\n return this.streams[id].asObservable();\n }\n\n public clearSessionAndLocalPersistance(id: string) {\n sessionStorage.removeItem(id);\n localStorage.removeItem(id);\n if (this.filterSettings[id] !== undefined) {\n this.filterSettings[id] = null;\n }\n if (this.streams[id] !== undefined) {\n this.streams[id].next(null);\n }\n }\n\n private persistLocal(setting: FilterSetting): void {\n setting.idamId = this.getUserId();\n window.localStorage.setItem(setting.id, JSON.stringify(setting));\n }\n\n private persistSession(setting: FilterSetting): void {\n sessionStorage.setItem(setting.id, JSON.stringify(setting));\n }\n\n private persistMemory(setting: FilterSetting): void {\n this.filterSettings[setting.id] = setting;\n }\n\n private updateStreams(setting: FilterSetting): void {\n if (this.streams[setting.id]) {\n this.streams[setting.id].next(setting);\n }\n }\n\n public getUserId(): string {\n const userInfoStr = window.sessionStorage.getItem('userDetails');\n let userId: string;\n if (userInfoStr) {\n const userInfo = JSON.parse(userInfoStr);\n userId = userInfo.id ? userInfo.id : userInfo.uid;\n }\n return userId;\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { LocationModel } from '../../../models';\nimport { RefDataHMCTSService } from '../models/ref-data-htmcs-service.model';\nimport { RefDataRegion } from '../models/ref-data-region.model';\nimport {\n LocationModelsByServiceCodeResponse\n} from './models/ref-data-locations-by-service-code-response.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RefDataDataAccessService {\n public static refDataUrl: string = '/api/ref-data';\n public constructor(private readonly http: HttpClient) {}\n\n public getServices(): Observable<RefDataHMCTSService[]> {\n return this.http.get<RefDataHMCTSService[]>(`${RefDataDataAccessService.refDataUrl}/services`);\n }\n\n public getRegions(): Observable<RefDataRegion[]> {\n return this.http.get<RefDataRegion[]>(`${RefDataDataAccessService.refDataUrl}/regions`);\n }\n\n public getLocationsByServiceCode(serviceCode: string) {\n const httpParams = new HttpParams()\n .append('service_code', serviceCode);\n\n return this.http.get<LocationModelsByServiceCodeResponse>(`${RefDataDataAccessService.refDataUrl}/locations-by-service-code`, { params: httpParams });\n }\n\n public getLocations() {\n return this.http.get<LocationModel[]>(`${RefDataDataAccessService.refDataUrl}/locations`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay, take } from 'rxjs/operators';\nimport { LocationByEPIMMSModel } from '../../models';\nimport { RefDataHMCTSService } from './models/ref-data-htmcs-service.model';\nimport { RefDataRegion } from './models/ref-data-region.model';\nimport { RefDataDataAccessService } from './ref-data-data-access/ref-data-data-access.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RefDataService {\n public regions$: Observable<RefDataRegion[]>;\n public services$: Observable<RefDataHMCTSService[]>;\n public locations$: Observable<LocationByEPIMMSModel[]>;\n private readonly locationsByServiceCodesCache: {[serviceCode: string]: Observable<LocationByEPIMMSModel[]>} = {};\n\n constructor(private readonly refDataDataAccessService: RefDataDataAccessService) {\n this.regions$ = this.refDataDataAccessService.getRegions().pipe(shareReplay());\n this.services$ = this.refDataDataAccessService.getServices().pipe(shareReplay());\n this.locations$ = this.refDataDataAccessService.getLocations().pipe(shareReplay());\n }\n\n public getLocationsByServiceCodes(serviceCodes: string[]): Observable<LocationByEPIMMSModel[]> {\n const observables: Observable<LocationByEPIMMSModel[]>[] = [];\n serviceCodes.forEach(serviceCode => {\n if (!this.locationsByServiceCodesCache[serviceCode]) {\n this.locationsByServiceCodesCache[serviceCode] = this.refDataDataAccessService.getLocationsByServiceCode(serviceCode).pipe(\n catchError(() => of({ court_venues: [] })),\n map(responseData => responseData.court_venues),\n shareReplay()\n );\n }\n\n observables.push(this.locationsByServiceCodesCache[serviceCode]);\n });\n\n return forkJoin(observables).pipe(\n map((values) => values.reduce((acc, val) => acc.concat(val)), []),\n take(1)\n );\n }\n}\n","/*\n * Public API Surface of exui-common-lib\n */\nexport * from './feature-toggle/feature-toggle.guard';\nexport * from './feature-toggle/feature-toggle.service';\nexport * from './feature-toggle/launch-darkly.service';\nexport * from './address/address.service';\nexport * from './google-analytics/google-analytics.service';\nexport * from './google-tag-manager/google-tag-manager.service';\nexport * from './manage-session/manage-session.services';\nexport * from './timeout-notifications/timeout-notifications.service';\nexport * from './role-guard/role.guard';\nexport * from './role-guard/role.service';\nexport * from './cookie/cookie.service';\nexport * from './loading/loading.service';\nexport * from './filter/filter.service';\nexport * from './ref-data';\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { FilterConfigOption } from '../../models';\n\nexport function minSelectedValidator<T>(min: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const values = control.value as T[];\n return values.length && values.filter(value => value).length >= min ? null : {minlength: true};\n };\n}\n\nexport function maxSelectedValidator<T>(max: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const values = control.value as T[];\n return values.length && values.filter(value => value).length <= max ? null : {maxLength: true};\n };\n}\n\nexport function getValues(options: FilterConfigOption[], values: any[]): any[] {\n return options.reduce((acc: string[], option: { key: string, label: string }, index: number) => {\n if (values[index]) {\n return [...acc, option.key];\n }\n return acc;\n }, []);\n}\n\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionStorageService {\n\n /**\n * Get an item from the session storage.\n * If remove is true, the item will be removed once read\n * @param removeAfterRead removed the key once it has been read\n */\n public getItem(key: string, removeAfterRead: boolean = false): string {\n const item = sessionStorage.getItem(key);\n\n if (removeAfterRead) { this.removeItem(key); }\n\n return item;\n }\n\n /**\n * Set an item in the session storage.\n */\n public setItem(key: string, value: string): void {\n sessionStorage.setItem(key, value);\n }\n\n /**\n * Remove an item in the session storage.\n */\n public removeItem(key: string): void {\n sessionStorage.removeItem(key);\n }\n\n /**\n * Clear all the items held in session storage.\n */\n public clear(): void {\n sessionStorage.clear();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n Caseworker,\n JudicialUserModel,\n Person,\n PersonRole,\n RoleCategory,\n SearchOptions\n} from '../../models';\nimport { SessionStorageService } from '../storage/session-storage/session-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FindAPersonService {\n public static caseworkersKey: string = 'caseworkers';\n public userId: string;\n public assignedUser: string | string[] = [];\n\n constructor(private readonly http: HttpClient, private readonly sessionStorageService: SessionStorageService) {\n }\n\n public find(searchOptions: SearchOptions): Observable<Person[]> {\n const userInfoStr = this.sessionStorageService.getItem('userDetails');\n if (userInfoStr && !searchOptions.userIncluded) {\n const userInfo = JSON.parse(userInfoStr);\n this.userId = userInfo.id ? userInfo.id : userInfo.uid;\n }\n this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : [];\n let assignedUserToCompare = this.assignedUser;\n if (typeof(this.assignedUser) === 'string') {\n assignedUserToCompare = [this.assignedUser];\n }\n return this.http.post<Person[]>('/workallocation/findPerson', { searchOptions })\n .pipe(map((judiciary) => judiciary.filter((judge) => !(assignedUserToCompare.includes(judge.id)))));\n // Removed the current user id to fix EUI-8465.\n }\n\n public findCaseworkers(searchOptions: SearchOptions): Observable<Person[]> {\n const userInfoStr = this.sessionStorageService.getItem('userDetails');\n if (userInfoStr) {\n const userInfo = JSON.parse(userInfoStr);\n this.userId = userInfo.id ? userInfo.id : userInfo.uid;\n }\n this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : [];\n const fullServices = searchOptions.services;\n return this.http.post<Caseworker[]>('/workallocation/caseworker/getUsersByServiceName', { services: fullServices, term: searchOptions.searchTerm }).pipe(\n map((caseworkers) => {\n return this.searchInCaseworkers(caseworkers, searchOptions);\n })\n );\n }\n\n public mapCaseworkers(caseworkers: Caseworker[], roleCategory: string): Person[] {\n const people: Person[] = [];\n caseworkers.forEach((caseworker) => {\n const thisPerson: Person = {\n email: caseworker.email,\n name: `${caseworker.firstName} ${caseworker.lastName}`,\n id: caseworker.idamId,\n domain: caseworker.roleCategory === RoleCategory.LEGAL_OPERATIONS ? PersonRole.LEGAL_OPERATIONS : PersonRole.ADMIN\n // knownAs can be added if required\n };\n if (caseworker.roleCategory === roleCategory || roleCategory === RoleCategory.ALL || caseworker.idamId === this.userId) {\n people.push(thisPerson);\n }\n });\n return people;\n }\n\n public searchInCaseworkers(caseworkers: Caseworker[], searchOptions: SearchOptions): Person[] {\n let roleCategory = RoleCategory.ALL;\n if (!(searchOptions.userRole === PersonRole.ALL)) {\n if (searchOptions.userRole === PersonRole.LEGAL_OPERATIONS) {\n roleCategory = RoleCategory.LEGAL_OPERATIONS;\n } else if (searchOptions.userRole === PersonRole.ADMIN) {\n roleCategory = RoleCategory.ADMIN;\n } else if (searchOptions.userRole === PersonRole.CTSC) {\n roleCategory = RoleCategory.CTSC;\n }\n }\n const searchTerm = searchOptions && searchOptions.searchTerm ? searchOptions.searchTerm.toLowerCase() : '';\n const people = caseworkers ? this.mapCaseworkers(caseworkers, roleCategory) : [];\n const finalPeopleList = people.filter((person) => person && person.name && person.name.toLowerCase().includes(searchTerm));\n\n if (typeof(this.assignedUser) === 'string') {\n return finalPeopleList.filter((person) => person && person.id !== this.assignedUser);\n }\n return finalPeopleList.filter((person) => person && !this.assignedUser.includes(person.id));\n }\n\n public searchJudicial(value: string, serviceId: string): Observable<JudicialUserModel[]> {\n return this.http.post<JudicialUserModel[]>('api/prd/judicial/getJudicialUsersSearch',\n { searchString: value, serviceCode: serviceId });\n }\n}\n","@if (title && title.length) {\n <h1 class=\"govuk-heading-l\">\n <span class=\"govuk-caption-l\">{{title | rpxTranslate}}</span>\n {{boldTitle | rpxTranslate}}\n </h1>\n}\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 @if (subTitle && subTitle.length) {\n <div id=\"sub-title-hint\" class=\"govuk-hint\">\n {{subTitle | rpxTranslate}}\n </div>\n }\n @if (findPersonGroup && findPersonGroup.errors) {\n <span id=\"validation-error\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n }\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 @for (option of filteredOptions; track option) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option) | rpxTranslate}}\n </mat-option>\n }\n @if (isNoResultsShown && !filteredOptions.length && showAutocomplete) {\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\">{{'No results found' | rpxTranslate}}</mat-option>\n }\n </mat-autocomplete>\n </fieldset>\n</div>\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Observable, Subscription, zip } from 'rxjs';\nimport { of } from 'rxjs/internal/observable/of';\nimport { catchError, debounceTime, filter, map, switchMap, tap } from 'rxjs/operators';\nimport { Person, PersonRole } from '../../models';\nimport { FindAPersonService } from '../../services/find-person/find-person.service';\n\n@Component({\n selector: 'xuilib-find-person',\n templateUrl: './find-person.component.html',\n styleUrls: ['./find-person.component.scss'],\n standalone: false\n})\n\nexport class FindPersonComponent implements OnInit, OnDestroy {\n @Output() public personSelected = new EventEmitter<Person>();\n @Output() public personFieldChanged = new EventEmitter<void>();\n @Input() public title: string;\n @Input() public boldTitle = 'Find the person';\n @Input() public subTitle = 'Type the name of the person and select them.';\n @Input() public domain = PersonRole.ALL;\n @Input() public findPersonGroup: FormGroup = new FormGroup({});\n @Input() public selectedPerson: string;\n @Input() public submitted: boolean = true;\n @Input() public userIncluded?: boolean = false;\n @Input() public assignedUser?: string | string[];\n @Input() public placeholderContent: string = '';\n @Input() public isNoResultsShown: boolean = true;\n @Input() public showUpdatedColor: boolean = false;\n @Input() public selectedPersons: Person[] = [];\n @Input() public errorMessage: string = 'You must select a name';\n @Input() public idValue: string = '';\n @Input() public services: string = 'IA';\n @Input() public disabled: boolean = null;\n public showAutocomplete: boolean = false;\n public findPersonControl: FormControl;\n public filteredOptions: Person[] = [];\n public readonly minSearchCharacters = 2;\n private sub: Subscription;\n\n constructor(private readonly findPersonService: FindAPersonService, private readonly cd: ChangeDetectorRef) {\n }\n\n public ngOnDestroy() {\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n\n public ngOnInit(): void {\n this.findPersonControl = new FormControl(this.selectedPerson);\n this.findPersonGroup.addControl('findPersonControl', this.findPersonControl);\n this.sub = this.findPersonControl.valueChanges.pipe(\n tap(() => this.showAutocomplete = false),\n tap(() => this.filteredOptions = []),\n debounceTime(300),\n tap((searchTerm) => typeof searchTerm === 'string' ? this.personSelected.emit(null) : void 0),\n filter((searchTerm: string) => searchTerm && searchTerm.length > this.minSearchCharacters),\n switchMap((searchTerm: string) => this.filter(searchTerm).pipe(\n tap(() => this.showAutocomplete = true),\n catchError(() => this.handleFilterError()),\n ))\n ).subscribe((people: Person[]) => {\n this.filteredOptions = people;\n this.cd.detectChanges();\n });\n }\n\n public filter(searchTerm: string): Observable<Person[]> {\n const findJudicialOrCTSCPeople = this.findPersonService.find({ searchTerm, userRole: this.domain, services: [this.services], userIncluded: this.userIncluded, assignedUser: this.assignedUser });\n const findCaseworkersOrAdminsOrCtsc = this.findPersonService.findCaseworkers({ searchTerm, userRole: this.domain, services: [this.services], userIncluded: this.userIncluded, assignedUser: this.assignedUser });\n if (searchTerm && searchTerm.length > this.minSearchCharacters) {\n switch (this.domain) {\n case PersonRole.JUDICIAL: {\n return findJudicialOrCTSCPeople.pipe(map((persons) => {\n const ids: string[] = this.selectedPersons.map(({ id }) => id);\n return persons.filter(({ id }) => !ids.includes(id));\n }));\n }\n case PersonRole.ALL: {\n return zip(findJudicialOrCTSCPeople, findCaseworkersOrAdminsOrCtsc).pipe(map((separatePeople) => separatePeople[0].concat(separatePeople[1])));\n }\n case PersonRole.CTSC:\n case PersonRole.LEGAL_OPERATIONS:\n case PersonRole.ADMIN: {\n return findCaseworkersOrAdminsOrCtsc;\n }\n default: {\n return of([]);\n }\n }\n }\n return of([]);\n }\n\n public onSelectionChange(selectedPerson: Person): void {\n this.personSelected.emit(selectedPerson);\n this.findPersonControl.setValue(this.getDisplayName(selectedPerson), {emitEvent: false, onlySelf: true});\n }\n\n public getDisplayName(selectedPerson: Person): string {\n if (!selectedPerson) {\n return '';\n }\n if (selectedPerson.domain === PersonRole.JUDICIAL && selectedPerson.fullName) {\n return `${selectedPerson.fullName} (${selectedPerson.email})`;\n }\n return selectedPerson.email ? `${selectedPerson.name} (${selectedPerson.email})` : selectedPerson.name;\n }\n\n private handleFilterError(): Observable<Person[]> {\n this.filteredOptions = [];\n return of([]);\n }\n\n public onInput(): void {\n this.personFieldChanged.emit();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { LocationByEPIMMSModel, LocationsByService } from '../../models/location.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocationService {\n\n constructor(private readonly http: HttpClient) {\n }\n\n /**\n * @description getAllLocations from service Ids/location type/search term\n * @param serviceIds: SSCS | SSCS,IA split with ','\n * @param locationType: optional | hearing | case_management\n * @param searchTerm: any search term for postcode | site name | venue name |court name | court address etc.\n * @return Observable<LocationByEPIMMSModel[]>: Array of locationModel in Observable\n */\n public getAllLocations(locationUrl: string, serviceIds: string, locationType: string, searchTerm: string, userLocations: LocationsByService[]): Observable<LocationByEPIMMSModel[]> {\n return this.http.post<LocationByEPIMMSModel[]>(locationUrl, {serviceIds, locationType, searchTerm, userLocations});\n }\n\n /**\n * @description searchLocations from service Ids/location type/search term\n * @param serviceIds: BBA3 | BBA3,BFA1 split with ','\n * @param locationType: optional | hearing | case_management\n * @param searchTerm: any search term for postcode | site name | venue name |court name | court address etc.\n * @return Observable<LocationByEPIMMSModel[]>: Array of locationModel in Observable\n */\n public searchLocations(serviceIds: string, locationType: string, searchTerm: string): Observable<LocationByEPIMMSModel[]> {\n return this.http.get<LocationByEPIMMSModel[]>(`api/prd/location/getLocations?serviceIds=${serviceIds}&locationType=${locationType}&searchTerm=${searchTerm}`);\n }\n}\n","<div class=\"auto-complete-container\">\n <input\n id=\"inputLocationSearch\"\n #char\n (keydown)=\"removeInvalidString($event)\"\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 @if (filteredList$ | async; as filteredList) {\n @if (filteredList !== null) {\n @for (location of filteredList; track location) {\n <mat-option (onSelectionChange)=\"onSelectedLocation(location)\">\n {{ location[propertyNameFilter] }}\n </mat-option>\n }\n @if (filteredList.length === 0) {\n <mat-option>{{ 'No results found' | rpxTranslate }}</mat-option>\n }\n }\n }\n </mat-autocomplete>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { iif, Observable, of } from 'rxjs';\nimport { catchError, debounceTime, map, switchMap, tap } from 'rxjs/operators';\nimport {\n BookingCheckType, FilterConfigOption,\n FilterFieldConfig,\n LocationByEPIMMSModel,\n LocationsByService\n} from '../../models';\nimport { LocationService } from '../../services/locations/location.service';\nimport { RefDataService } from '../../services/ref-data';\nimport { SessionStorageService } from '../../services/storage/session-storage/session-storage.service';\n\n@Component({\n selector: 'exui-search-location',\n templateUrl: './search-location.component.html',\n styleUrls: ['./search-location.component.scss'],\n standalone: false\n})\nexport class SearchLocationComponent implements OnInit {\n private static readonly allLocationAPI = `api/locations/getLocations`;\n @Input() public form: FormGroup;\n @Input() public field: FilterFieldConfig;\n @Input() public disabled: boolean = null;\n @Input() public singleMode: boolean = false;\n @Input() public locationType: string = '';\n @Input() public serviceIds: string = '';\n @Input() public submitted?: boolean = true;\n @Input() public bookingCheck: BookingCheckType;\n @Input() public selectedLocations: LocationByEPIMMSModel[] = [];\n @Input() public propertyNameFilter: keyof LocationByEPIMMSModel = 'site_name';\n @Input() public delay?: number = 500;\n @Output() public locationSelected = new EventEmitter<LocationByEPIMMSModel>();\n @Output() public locationTermSearchInputChanged: EventEmitter<string> = new EventEmitter<string>();\n @Output() public searchLocationChanged: EventEmitter<void> = new EventEmitter<void>();\n public searchTermFormControl = new FormControl('');\n public readonly minSearchCharacters = 3;\n public term: string = '';\n private pReset: boolean = true;\n public filteredList$: Observable<LocationByEPIMMSModel[] | null>;\n private readonly debounceTimeInput = 300;\n public previousValue = '';\n\n public get reset(): boolean {\n return this.pReset;\n }\n\n @Input()\n public set reset(value: boolean) {\n this.pReset = value;\n this.resetSearchTerm();\n }\n\n constructor(private readonly locationService: LocationService,\n private readonly sessionStorageService: SessionStorageService,\n private readonly refDataService: RefDataService\n ) { }\n\n public ngOnInit(): void {\n const searchInputChanges$ = this.searchTermFormControl.valueChanges\n .pipe(\n tap((term) => this.locationTermSearchInputChanged.emit(term))\n );\n\n // if servicesField exists, then we should filter locations by the service codes\n if (this.field && this.field.servicesField) {\n this.filteredList$ = searchInputChanges$.pipe(\n switchMap((term: string) => iif(\n // display results for any length (>=0) when using cached service codes\n () => (!!term && term.length >= 0),\n this.refDataService.getLocationsByServiceCodes(\n (this.form.get(this.field.servicesField)?.value as FilterConfigOption[]).map((service) => service.key)\n ).pipe(\n // Filter locations by the search input term and the chosen property name\n map((locations) => locations\n .filter((location) => location[this.propertyNameFilter].toLowerCase().includes(term.toLowerCase()))),\n // Filter out locations that are already selected\n map((locations) => this.filterUnselectedLocations(locations, this.selectedLocations, this.singleMode)),\n // Filter out duplicate locations (by propertyNameFilter)\n map((locations) => locations.filter((location, index, array) =>\n index === array.findIndex((item) => item[this.propertyNameFilter] === location[this.propertyNameFilter])\n )),\n ),\n of(null)\n ))\n );\n } else {\n this.filteredList$ = searchInputChanges$.pipe(\n // Debounce needed to prevent multiple API calls being made\n debounceTime(this.debounceTimeInput),\n switchMap((term: string) => iif(\n () => (!!term && term.length >= this.minSearchCharacters),\n this.getLocations(term).pipe(\n map((locations) => this.filterUnselectedLocations(locations, this.selectedLocations, this.singleMode)),\n catchError(() => of(null))\n ),\n of(null)\n ))\n );\n }\n\n if (this.singleMode && this.selectedLocations.length > 0) {\n const location = this.selectedLocations[0];\n this.searchTermFormControl.patchValue(location[this.propertyNameFilter], { emitEvent: false, onlySelf: true });\n }\n }\n\n public onSelectedLocation(location: LocationByEPIMMSModel): void {\n this.searchTermFormControl.patchValue(location[this.propertyNameFilter], { emitEvent: false, onlySelf: true });\n this.locationSelected.emit(location);\n }\n public onInput(): void {\n this.searchLocationChanged.emit();\n }\n\n public getLocations(term: string): Observable<LocationByEPIMMSModel[]> {\n let userLocations;\n // Booking type info - can create more\n // NO_CHECK - All work - Do not filter out locations - Default assumption\n // BOOKINGS_AND_BASE - My work - Try to only show base locations/regions\n // POSSIBLE_BOOKINGS - Create booking screen - Show only potential bookings\n if (this.bookingCheck === BookingCheckType.BOOKINGS_AND_BASE) {\n userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations')) as LocationsByService[];\n } else if (this.bookingCheck === BookingCheckType.POSSIBLE_BOOKINGS) {\n this.serviceIds = this.serviceIds && this.serviceIds.length ? this.serviceIds : JSON.parse(this.sessionStorageService.getItem('bookableServices'));\n userLocations = JSON.parse(this.sessionStorageService.getItem('bookableUserLocations')) as LocationsByService[];\n }\n // get all locations will resolve filter setting using objects above\n // if no userLocations, NO_CHECK\n // if just getting all substantive user locations, BOOKINGS_AND_BASE\n // fee paid user locations are used for POSSIBLE_BOOKINGS\n return this.locationService.getAllLocations(SearchLocationComponent.allLocationAPI, this.serviceIds, this.locationType, term, userLocations);\n }\n\n public resetSearchTerm(): void {\n this.searchTermFormControl.setValue('');\n }\n\n private filterUnselectedLocations(\n locations: LocationByEPIMMSModel[],\n selectedLocations: LocationByEPIMMSModel[],\n singleMode: boolean\n ): LocationByEPIMMSModel[] {\n if (singleMode) {\n return locations;\n }\n return locations.filter(\n location => !selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(location.epimms_id) && location[this.propertyNameFilter]\n );\n }\n\n public removeInvalidString(formInputValue: KeyboardEvent) {\n if (!this.isCharacterValid(formInputValue)) {\n formInputValue.preventDefault();\n }\n }\n\n public isCharacterValid(event: KeyboardEvent): boolean {\n let pressed = undefined\n if (event.key !== undefined) {\n pressed = event.key;\n if (pressed.length > 1) {\n switch (pressed) {\n case 'Tab':\n return true;\n case 'ArrowRight':\n return true;\n case 'ArrowLeft':\n return true;\n case 'Backspace':\n return true;\n case 'Enter':\n return true;\n default: return false;\n }\n }\n } else if (event.keyCode !== undefined) {\n pressed = String.fromCharCode(event.keyCode);\n }\n return pressed && (/[a-zA-Z \\s'-]/).test(pressed);\n }\n\n}","<div class=\"location-picker-custom\">\n <div class=\"search-location\">\n <div>\n @if (locationTitle) {\n <label id=\"input-selected-location-label\">{{locationTitle}}</label>\n }\n </div>\n <exui-search-location class=\"search-location\"\n [form]=\"form\"\n [field]=\"field\"\n [selectedLocations]=\"selectedLocations\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [serviceIds]=\"serviceIds\"\n [propertyNameFilter]=\"propertyNameFilter\"\n (locationTermSearchInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\">\n </exui-search-location>\n </div>\n\n <div>\n @if (enableAddLocationButton) {\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button add-location-button\" data-module=\"govuk-button\">\n Add location\n </a>\n }\n </div>\n\n @if (field.maxSelected != 1) {\n <ul class=\"hmcts-filter-tags selection-container\">\n @for (selection of selectedLocations; track selection) {\n <li class=\"location-selection\" >\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection)\" href=\"javascript:void(0)\">\n {{ selection[propertyNameFilter] }}\n </a>\n </li>\n }\n </ul>\n }\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { FilterFieldConfig, LocationByEPIMMSModel } from '../../models';\nimport { getValues } from '../generic-filter/generic-filter-utils';\nimport { SearchLocationComponent } from '../search-location/search-location.component';\n\n@Component({\n selector: 'xuilib-find-location',\n templateUrl: './find-location.component.html',\n styleUrls: ['./find-location.component.scss'],\n standalone: false\n})\nexport class FindLocationComponent implements OnInit, OnDestroy {\n @Output() public locationFieldChanged = new EventEmitter<void>();\n @Input() public submitted: boolean = true;\n @Input() public enableAddLocationButton: boolean = true;\n @Input() public form: FormGroup;\n @Input() public field: FilterFieldConfig;\n @Input() public fields: FilterFieldConfig[];\n @Input() public locationTitle = 'Search for a location by name';\n @Input() public disableInputField = false;\n @Input() public formSubmissionEvent$: Subject<void>;\n public tempSelectedLocation: LocationByEPIMMSModel = null;\n public serviceIds: string = 'SSCS,IA';\n @ViewChild(SearchLocationComponent, { static: true }) public searchLocationComponent: SearchLocationComponent;\n private pServices: string[] = [];\n private pDisabled: boolean = false;\n private formSubmissionEventSubscription: Subscription;\n\n public get disabled(): boolean {\n return this.pDisabled;\n }\n\n @Input()\n public set disabled(value: boolean) {\n if (value) {\n this.searchLocationComponent.resetSearchTerm();\n this.removeSelectedValues();\n }\n this.pDisabled = this.disableInputField === true ? true : null;\n }\n\n public get services(): string[] {\n return this.pServices;\n }\n\n @Input()\n public set services(value: string[]) {\n this.pServices = value;\n const field = this.fields.find(f => {\n if (this.field) {\n return f.name === this.field.findLocationField;\n }\n });\n\n if (field) {\n if (typeof value === 'string') {\n this.serviceIds = value;\n } else {\n this.serviceIds = getValues(field.options, value).filter(x => x !== 'services_all').join(',');\n }\n }\n }\n\n public get selectedLocations() {\n return (this.form.get(this.field.name)?.value as LocationByEPIMMSModel[])?.filter(location => location.epimms_id);\n }\n\n public get propertyNameFilter(): keyof LocationByEPIMMSModel {\n const DEFAULT_PROPERTY_NAME = 'site_name';\n return this.field.propertyNameFilter ? this.field.propertyNameFilter as keyof LocationByEPIMMSModel\n : DEFAULT_PROPERTY_NAME;\n }\n\n public ngOnInit(): void {\n if (this.formSubmissionEvent$) {\n this.formSubmissionEventSubscription = this.formSubmissionEvent$.subscribe(() => {\n // Shouldn't reset search term if single mode and already has selected\n const oneSelectedAndMaxSelectedOne = this.selectedLocations.length === 1 && this.field.maxSelected === 1;\n if (!oneSelectedAndMaxSelectedOne) {\n this.searchLocationComponent.resetSearchTerm();\n }\n });\n }\n }\n\n public addLocation(): void {\n if (this.tempSelectedLocation) {\n this.addSelectedLocationsToForm([this.tempSelectedLocation]);\n this.tempSelectedLocation = null;\n this.searchLocationComponent.resetSearchTerm();\n }\n }\n\n public removeLocation(location: LocationByEPIMMSModel): void {\n if (location.epimms_id) {\n const formArray = this.form.get(this.field.name) as FormArray;\n const index = (formArray.value as LocationByEPIMMSModel[]).findIndex(selectedLocation => selectedLocation.epimms_id === location.epimms_id);\n if (index > -1) {\n formArray.removeAt(index);\n }\n }\n }\n\n public onInputChanged(term: string): void {\n // if the filter is in single mode clear the selected locations\n if (typeof term === 'string' && this.field.maxSelected === 1) {\n this.removeSelectedValues();\n }\n }\n\n public onSearchInputChanged(): void {\n this.locationFieldChanged.emit();\n }\n\n public onLocationSelected(location: LocationByEPIMMSModel): void {\n if (this.field.maxSelected === 1) {\n this.removeSelectedValues();\n this.addSelectedLocationsToForm([location]);\n } else {\n if (!this.selectedLocations.find(x => x.epimms_id === location.epimms_id)) {\n if (location.epimms_id) {\n this.tempSelectedLocation = location;\n }\n }\n }\n }\n\n private removeSelectedValues(): void {\n const formArray = this.form.get(this.field?.name) as FormArray;\n if (formArray) {\n for (let i = 0; i < formArray.length; i++) {\n formArray.removeAt(i);\n }\n }\n }\n\n private addSelectedLocationsToForm(locations: LocationByEPIMMSModel[]): void {\n const formArray = this.form.get(this.field.name) as FormArray;\n for (const location of locations) {\n formArray.push(new FormControl(location));\n }\n }\n\n public ngOnDestroy() {\n this.formSubmissionEventSubscription?.unsubscribe();\n }\n}\n","import {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {Observable, of} from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { TaskNameModel } from '../../models/task-name.model';\nimport { SessionStorageService } from '../storage/session-storage/session-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TaskNameService {\n public static taskNamesKey: string = 'taskNames';\n\n constructor(private readonly http: HttpClient, private readonly sessionStorageService: SessionStorageService) {\n }\n\n /**\n * @return Observable<any[]>: Array of taskName in Observable\n */\n public getTaskName(service: string): Observable<TaskNameModel[]> {\n const serviceTaskTypeKey = `${service}-${TaskNameService.taskNamesKey}`;\n if (this.sessionStorageService.getItem(serviceTaskTypeKey)) {\n const taskNames = JSON.parse(this.sessionStorageService.getItem(serviceTaskTypeKey));\n return of(taskNames as TaskNameModel[]);\n }\n return this.http.post<TaskNameModel[]>(`/workallocation/taskNames`, {service}).pipe(\n tap(taskNames => this.sessionStorageService.setItem(serviceTaskTypeKey, JSON.stringify(taskNames)))\n );\n }\n}\n","@if (title && title.length) {\n <h1 class=\"govuk-heading-l\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n </h1>\n}\n<div class=\"govuk-form-group\" [formGroup]=\"findTaskNameGroup\"\n [ngClass]=\"{'form-group-error': findTaskNameGroup.get('findTaskNameControl')?.invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n @if (subTitle && subTitle.length) {\n <div id=\"sub-title-hint\" class=\"govuk-hint\">\n {{subTitle}}\n </div>\n }\n @if (findTaskNameGroup && findTaskNameGroup.errors) {\n <span id=\"validation-error\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findTaskNameGroup.errors.error ? findTaskNameGroup.errors.error : errorMessage}}\n </span>\n }\n <input id=\"inputSelectTaskName{{idValue}}\" type=\"text\" aria-label=\"select a task name\"\n formControlName=\"findTaskNameControl\"\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 @for (option of filteredOptions; track option) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{ getTaskTypeName(option) }}\n </mat-option>\n }\n @if (isNoResultsShown && !filteredOptions.length && showAutocomplete) {\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\">No results found</mat-option>\n }\n </mat-autocomplete>\n </fieldset>\n</div>\n","import {ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {Observable, Subscription} from 'rxjs';\nimport {debounceTime, filter, mergeMap, tap} from 'rxjs/operators';\nimport {PersonRole} from '../../models';\nimport { TaskNameModel } from '../../models/task-name.model';\nimport { TaskNameService } from '../../services/task-name/task-name.service';\n\n@Component({\n selector: 'xuilib-find-task-name',\n templateUrl: './find-task-name.component.html',\n styleUrls: ['./find-task-name.component.scss'],\n standalone: false\n})\n\nexport class FindTaskNameComponent implements OnInit, OnDestroy {\n @Output() public taskNameSelected = new EventEmitter<any>();\n @Output() public taskNameFieldChanged = new EventEmitter<void>();\n @Input() public title: string;\n @Input() public boldTitle = 'Find the task name';\n @Input() public subTitle = 'Type the name of the task name and select them.';\n @Input() public domain = PersonRole.ALL;\n @Input() public findTaskNameGroup: FormGroup = new FormGroup({});\n @Input() public selectedTaskName: string;\n @Input() public submitted: boolean = true;\n @Input() public assignedUser?: string;\n @Input() public placeholderContent: string = '';\n @Input() public isNoResultsShown: boolean = true;\n @Input() public showUpdatedColor: boolean = false;\n @Input() public selectedTaskNames: TaskNameModel[] = [];\n @Input() public errorMessage: string = 'You must select a name';\n @Input() public idValue: string = '';\n @Input() public services: string = 'IA';\n @Input() public disabled: boolean = null;\n public showAutocomplete: boolean = false;\n public findTaskNameControl: FormControl;\n public filteredOptions: any[] = [];\n public readonly minSearchCharacters = 1;\n private sub: Subscription;\n public searchTerm: string = '';\n\n constructor(private readonly cd: ChangeDetectorRef, private readonly taskService: TaskNameService) {}\n\n public ngOnDestroy() {\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n\n public ngOnInit(): void {\n this.findTaskNameControl = new FormControl(this.selectedTaskName);\n this.findTaskNameGroup.addControl('findTaskNameControl', this.findTaskNameControl);\n this.sub = this.findTaskNameControl.valueChanges\n .pipe(\n tap(() => this.showAutocomplete = false),\n tap(() => this.filteredOptions = []),\n debounceTime(300),\n tap((searchTerm) => this.searchTerm = searchTerm),\n tap((searchTerm) => typeof searchTerm === 'string' ? this.taskNameSelected.emit('null') : void 0),\n filter((searchTerm: string) => searchTerm && searchTerm.length >= this.minSearchCharacters),\n mergeMap(() => this.getTaskName()),\n ).subscribe((taskNameModel: TaskNameModel[]) => {\n this.filteredOptions = taskNameModel ? taskNameModel : [];\n if (this.searchTerm) {\n this.filteredOptions = this.filteredOptions.filter((taskType) => taskType.task_type.task_type_name.toLocaleLowerCase().includes(this.searchTerm.toLocaleLowerCase())).map(taskType=> taskType);\n }\n this.cd.detectChanges();\n });\n }\n\n public getTaskName(): Observable<TaskNameModel[]> {\n return this.taskService.getTaskName(this.services);\n }\n\n public onSelectionChange(selectedTaskTypeName: any): void {\n if (selectedTaskTypeName) {\n this.taskNameSelected.emit(selectedTaskTypeName);\n this.findTaskNameControl.setValue(this.getTaskTypeName(selectedTaskTypeName), {emitEvent: false, onlySelf: true});\n }\n }\n\n public getTaskTypeName(selectedTaskType: any): string {\n if (!selectedTaskType) {\n return '';\n }\n return selectedTaskType.task_type.task_type_name;\n }\n\n public onInput(): void {\n this.taskNameFieldChanged.emit();\n }\n}\n","<div class=\"auto-complete-container\">\n <input id=\"inputServiceSearch\"\n class=\"govuk-input\"\n [value]=\"searchTerm\"\n (input)=\"onSearchTermChanged($event.target.value)\"\n [matAutocomplete]=\"autoSearchService\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n @for (service of filteredOptions; track service) {\n <mat-option (onSelectionChange)=\"onSelectionChanged($event)\" [value]=\"service.label\">\n {{ service.label }}\n </mat-option>\n }\n @if (!filteredOptions?.length && showAutocomplete) {\n <mat-option>\n No results found\n </mat-option>\n }\n </mat-autocomplete>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FilterConfigOption } from '../../models';\nimport { MatLegacyOptionSelectionChange as MatOptionSelectionChange } from '@angular/material/legacy-core';\n\n@Component({\n selector: 'exui-search-service',\n templateUrl: './search-service.component.html',\n styleUrls: ['./search-service.component.scss'],\n standalone: false\n})\nexport class SearchServiceComponent {\n @Input() public options: FilterConfigOption[];\n @Input() public selectedOptions: FilterConfigOption[];\n @Input() public disabled: any;\n @Input() public showAutocomplete: boolean = false;\n @Input() public searchTerm = ''; // Removed ngModel use here for Angular best practice\n @Output() public searchTermChange: EventEmitter<string> = new EventEmitter<string>(); // Emit changes to searchTerm\n @Output() public optionChanged: EventEmitter<FilterConfigOption> = new EventEmitter<FilterConfigOption>();\n public readonly MIN_SEARCH_CHARACTERS = 3;\n\n public get filteredOptions(): FilterConfigOption[] {\n const remainingServices = this.options.filter((s) => !this.selectedOptions.find((ss) => ss.key === s.key));\n\n return this.searchTerm?.length >= this.MIN_SEARCH_CHARACTERS ?\n remainingServices.filter((s) => s.label.toLowerCase().includes(this.searchTerm.toLowerCase()))\n : remainingServices;\n }\n\n // TEST-TODO\n public resetSearchTerm(): void {\n this.searchTerm = '';\n this.searchTermChange.emit(this.searchTerm); // Emit the reset value\n }\n\n // TEST-TODO\n // TODO: Confirm this works correctly post Angular 18 upgrade as has been changed\n public onSearchTermChanged(value: string): void {\n this.searchTerm = value;\n this.searchTermChange.emit(this.searchTerm); // Emit the updated value\n }\n\n public onSelectionChanged($event: MatOptionSelectionChange): void {\n const label = $event.source?.value;\n if (label && $event.source.selected) {\n const selectedService = this.options.find((s) => s.label === label);\n this.optionChanged.emit(selectedService);\n }\n }\n}\n","<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n @if (serviceTitle) {\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\">\n {{ serviceTitle | rpxTranslate}}\n </label>\n }\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 @if (field?.enableAddButton) {\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 id=\"add-service\">\n {{ 'Add' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'service' | rpxTranslate}}</span>\n </a>\n }\n </div>\n </div>\n @if (field.maxSelected != 1) {\n <ul class=\"hmcts-filter-tags selection-container\">\n @for (selection of selectedServices; track selection) {\n <li class=\"location-selection\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label | rpxTranslate }}\n </a>\n </li>\n }\n </ul>\n }\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { FilterConfigOption, FilterFieldConfig } from '../../models';\nimport { SearchServiceComponent } from '../search-service/search-service.component';\n\n@Component({\n selector: 'xuilib-find-service',\n templateUrl: './find-service.component.html',\n styleUrls: ['./find-service.component.scss'],\n standalone: false\n})\nexport class FindServiceComponent implements OnInit, OnDestroy {\n @Input() public field: FilterFieldConfig;\n @Input() public serviceTitle: string;\n @Input() public form: FormGroup;\n @Input() public disabled: boolean = false;\n @Input() public formSubmissionEvent$: Subject<void>;\n @ViewChild(SearchServiceComponent, { static: true }) public searchServiceComponent: SearchServiceComponent;\n @Output() public serviceFieldChanged = new EventEmitter();\n private isSelectedAll = false;\n private formSubmissionEventSubscription: Subscription;\n\n public tempSelectedService: FilterConfigOption = null;\n public get selectedServices(): FilterConfigOption[] {\n const selectAllValue = this.field.options.find(item => item.selectAll);\n return this.isSelectedAll ? [selectAllValue] : this.form.get(this.field.name)?.value;\n }\n\n public ngOnInit(): void {\n this.sortOptionsAlphabetically();\n\n // Patch Default Option\n if (this.field.defaultOption) {\n this.addOption(this.field.defaultOption);\n }\n if (this.formSubmissionEvent$) {\n this.formSubmissionEventSubscription = this.formSubmissionEvent$.subscribe(() => {\n const oneSelectedAndMaxSelectedOne = this.selectedServices.length === 1 && this.field.maxSelected === 1;\n if (!oneSelectedAndMaxSelectedOne) {\n this.searchServiceComponent.resetSearchTerm();\n }\n });\n }\n }\n\n public addOption(option: FilterConfigOption): void {\n if (option) {\n if (option.selectAll) {\n this.isSelectedAll = true;\n this.removeAllSelectedValues();\n this.field.options.forEach(item => {\n if (!item.selectAll) {\n this.addSelectedServiceToForm(item);\n }\n });\n } else {\n if (this.isSelectedAll) {\n this.removeAllSelectedValues();\n this.isSelectedAll = false;\n }\n this.addSelectedServiceToForm(option);\n }\n\n this.tempSelectedService = null;\n this.serviceFieldChanged.emit();\n this.searchServiceComponent.resetSearchTerm();\n }\n }\n\n public removeOption(service: FilterConfigOption): void {\n if (service.selectAll) {\n this.removeAllSelectedValues();\n this.isSelectedAll = false;\n } else if (service.key) {\n const formArray = this.form.get(this.field.name) as FormArray;\n const index = (formArray.value).findIndex((selectedService: FilterConfigOption) => selectedService.key.toLowerCase() === service.key.toLowerCase());\n if (index > -1) {\n formArray.removeAt(index);\n }\n this.serviceFieldChanged.emit();\n }\n }\n\n public onOptionSelected(option: FilterConfigOption): void {\n if (!this.field.enableAddButton && this.field.maxSelected === 1) {\n this.removeAllSelectedValues();\n this.addSelectedServiceToForm(option);\n this.serviceFieldChanged.emit();\n } else {\n this.tempSelectedService = option;\n }\n }\n\n private removeAllSelectedValues(): void {\n const formArray = this.form.get(this.field.name) as FormArray;\n formArray.clear();\n }\n\n private addSelectedServiceToForm(service: FilterConfigOption): void {\n const formArray = this.form.get(this.field.name) as FormArray;\n formArray.push(new FormControl(service));\n }\n\n private sortOptionsAlphabetically(): FilterConfigOption[] {\n return this.field.options.sort((a, b) => {\n return a.label.toLowerCase() > b.label.toLowerCase() ? 1 : (b.label.toLowerCase() > a.label.toLowerCase() ? -1 : 0);\n });\n }\n\n public ngOnDestroy() {\n this.formSubmissionEventSubscription?.unsubscribe();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'capitalize',\n standalone: false\n})\nexport class CapitalizePipe implements PipeTransform {\n public transform(value: string): string {\n const lowerCaseString = value.toLowerCase();\n return lowerCaseString.charAt(0).toUpperCase() + lowerCaseString.slice(1);\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n @for (field of config.fields; track field) {\n <div class=\"contain-classes\">\n @if (field.lineBreakBefore) {\n <hr class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n }\n @switch (field.type) {\n @case ('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 }\n @default {\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 @if (field.title) {\n <div 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 @if (field?.titleHint) {\n <div class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n }\n </div>\n }\n @if (field.subTitle) {\n <p class=\"govuk-body\">{{field.subTitle}}</p>\n }\n @if (field.hintText) {\n <div\n [id]=\"field.hintText + '-hint'\" class=\"govuk-hint\">\n {{ field.hintText | rpxTranslate }}\n </div>\n }\n @if (field.displayMinSelectedError && submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength)) {\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.minSelectedError | rpxTranslate }}\n </span>\n }\n @if (field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength) {\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.maxSelectedError | rpxTranslate }}\n </span>\n }\n @if (field.emailError && submitted && form.get(field.name).errors?.email) {\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n >\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span> {{field.emailError | rpxTranslate }}\n </span>\n }\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\">\n @switch (field.type) {\n @case ('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 @if (field.defaultOption) {\n <option [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n }\n @for (item of field.options; track item) {\n <option class=\"govuk-radios__item\" [value]=\"item.key\">{{item.label}}</option>\n }\n </select>\n }\n @case ('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 @if (field.defaultOption) {\n <option selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n }\n @for (grp of filteredSkillsByServices; track grp) {\n <optgroup label=\"{{grp.group | titlecase}}\">\n @for (item of grp.options; track item) {\n <option [value]=\"item.key\">{{item.label}}</option>\n }\n </optgroup>\n }\n </select>\n }\n @case ('checkbox') {\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n @for (item of field.options; track item; let i = $index) {\n <div 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 }\n </div>\n }\n @case ('nested-checkbox') {\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n @for (item of filteredSkillsByServicesCheckbox; track item; let i = $index) {\n <div 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 }\n </div>\n }\n @case ('checkbox-large') {\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n @for (item of field.options; track item; let i = $index) {\n <div 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 }\n </div>\n }\n @case ('radio') {\n <div class=\"govuk-radios\">\n @for (item of field.options; track item) {\n <div 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 }\n </div>\n }\n @case ('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 }\n @case ('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 }\n @case ('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 }\n @case ('find-service') {\n @if (isServiceSelected) {\n <span class=\"govuk-error-message\">{{serviceErrorMsg | rpxTranslate}}</span>\n }\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 }\n @case ('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 }\n @case ('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 }\n }\n </div>\n </div>\n }\n }\n </div>\n }\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 @if (config.showCancelFilterButton) {\n <button\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 }\n </div>\n </div>\n</form>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { FilterConfig, FilterConfigOption, FilterError, FilterFieldConfig, FilterSetting, GroupOptions } from '../../models';\nimport { FilterService } from '../../services';\nimport { getValues, maxSelectedValidator, minSelectedValidator } from './generic-filter-utils';\n\n@Component({\n selector: 'xuilib-generic-filter',\n templateUrl: 'generic-filter.component.html',\n styleUrls: ['generic-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class GenericFilterComponent implements OnInit, OnDestroy {\n public form: FormGroup;\n public submitted = false;\n public formSub: Subscription;\n public filteredSkillsByServices: GroupOptions[];\n public filteredSkillsByServicesCheckbox: FilterConfigOption[];\n public previousSelectedNestedCheckbox: string[] = [];\n public formSubmissionEvent$ = new Subject<void>();\n public isServiceSelected: boolean = false;\n public serviceErrorMsg = 'Please select a service';\n private selectedServices: string[] = [];\n\n constructor(private readonly filterService: FilterService, private readonly fb: FormBuilder, private readonly cdr: ChangeDetectorRef) { }\n\n // tslint:disable-next-line:variable-name\n private _config: FilterConfig;\n\n public get config(): FilterConfig {\n return this._config;\n }\n\n @Input()\n public set config(value: FilterConfig) {\n this._config = {\n ...value,\n fields: value.fields.map((field) => ({\n ...field,\n displayMinSelectedError: false,\n displayMaxSelectedError: false\n }))\n };\n this._config = value;\n }\n\n // tslint:disable-next-line:variable-name\n private _settings?: FilterSetting;\n\n public get settings(): FilterSetting {\n return this._settings;\n }\n\n @Input()\n public set settings(value: FilterSetting) {\n if (!value) {\n this.getSettings();\n }\n if (value && value.fields) {\n this.mergeDefaultFields(value);\n }\n this._settings = value;\n }\n\n private static addFormValidators(field: FilterFieldConfig): Validators {\n const validators = [];\n if (field && field.minSelected > 0) {\n validators.push(minSelectedValidator(field.minSelected));\n }\n\n if (field && field.maxSelected > 0) {\n validators.push(maxSelectedValidator(field.maxSelected));\n }\n\n return validators;\n }\n\n public ngOnInit(): void {\n if (!this.settings) {\n this.getSettings();\n }\n this.mergeDefaultFields(this.settings);\n this.buildForm(this.config, this.settings);\n\n if (this._config.copyFields) {\n this.form = this._config.copyFields(this.form);\n }\n\n this.formSub = this.form.valueChanges.subscribe(() => this.submitted = false);\n this.filterSkillsByServices(null, this.config);\n const services = this.config.fields.find((field) => field.name === 'user-services');\n if (services) {\n this.startFilterSkillsByServices(this.form, services);\n if (!this._config.copyFields) {\n this.initValuesFromCacheForSkillsByServices();\n }\n }\n // Note: the usage of this is ensure host binding updates (for Angular 18 usage of OnPush)\n this.cdr.markForCheck();\n }\n\n public ngOnDestroy(): void {\n this.filterService.givenErrors.next(null);\n\n if (this.formSub) {\n this.formSub.unsubscribe();\n }\n }\n\n public hidden(field: FilterFieldConfig, form: FormGroup): boolean {\n if (!field.showCondition) {\n return false;\n }\n if (typeof field.showCondition === 'string') {\n const control = form.get(field.name) as FormControl;\n const [name, value] = field.showCondition.split('=');\n if (form.value && form.value[name] === value) {\n if (field.type === 'find-person') {\n control.get('email').setValidators(Validators.required);\n control.get('email').updateValueAndValidity();\n } else {\n control.setValidators(Validators.required);\n control.updateValueAndValidity();\n }\n return false;\n }\n\n if (field.type === 'find-person') {\n control.get('email').clearValidators();\n control.get('email').updateValueAndValidity();\n } else {\n control.clearValidators();\n control.updateValueAndValidity();\n }\n }\n return true;\n }\n\n public disabled(field: FilterFieldConfig, form: FormGroup): boolean {\n if (!field.enableCondition) {\n return null;\n }\n if (typeof field.enableCondition === 'string') {\n const control = form.get(field.name) as FormControl;\n const [name, value] = field.enableCondition.split('=');\n if (form.value && form.value[name] === value) {\n if (field.type === 'find-person') {\n control.get('email').setValidators(Validators.required);\n control.get('email').updateValueAndValidity();\n } else {\n control.setValidators(Validators.required);\n control.updateValueAndValidity();\n }\n return null;\n }\n\n if (field.type === 'find-person') {\n control.get('email').clearValidators();\n control.get('email').updateValueAndValidity();\n } else {\n control.clearValidators();\n control.updateValueAndValidity();\n }\n }\n // find-location is special case where need to reset textbox (by existing disabling functionality)\n // field.disable referred to component itself\n if (field.type === 'find-location') {\n return true;\n }\n // Note: field.disable decides whether to actually disable or not\n return field.disable ? field.disable : null;\n }\n\n public applyFilter(form: FormGroup): void {\n this.formSubmissionEvent$.next();\n this.submitted = true;\n form.markAsTouched();\n if (form.valid) {\n this._settings = {\n id: this.config.id,\n idamId: this.filterService.getUserId(),\n fields: this.getSelectedValues(form.value, this.config)\n };\n this.cdr.markForCheck();\n this.filterService.givenErrors.next(null);\n const settings = { ...this.settings, reset: false };\n this.filterService.persist(settings, this.config.persistence);\n } else {\n this.emitFormErrors(form);\n }\n\n if (this._config.applyButtonCallback) {\n this._config.applyButtonCallback();\n }\n }\n\n // when domain changes ensure that person field is reset\n public fieldChanged(field: FilterFieldConfig, form: FormGroup): void {\n // TODO - Do similar with jurisdiction/service for caseworkers by services\n if (field.changeResetFields && field.changeResetFields.length) {\n for (const resetField of field.changeResetFields) {\n this.resetField(resetField, form);\n }\n }\n this.cdr.markForCheck();\n }\n\n // when user enters input change radio button\n public inputChanged(field: FilterFieldConfig): void {\n if (field.name === 'user-location') {\n if (!this.selectedServices.length) {\n this.isServiceSelected = true;\n } else {\n this.isServiceSelected = false;\n }\n }\n if (field.radioSelectionChange && typeof field.radioSelectionChange === 'string') {\n const [name, value] = field.enableCondition.split('=');\n this.form.get(name).patchValue(value);\n }\n }\n\n public inputServiceChanged(field: FilterFieldConfig): void {\n if (field.name === 'user-services') {\n this.selectedServices = this.getSelectedValuesForFields(this.form.controls, field);\n this.filterSkillsByServices(this.selectedServices, this.config);\n if (this.selectedServices.length) {\n this.isServiceSelected = false;\n } else {\n this.isServiceSelected = true;\n }\n this.cdr.markForCheck();\n }\n }\n\n public cancelFilter(): void {\n this.buildForm(this.config, this.settings, true);\n if (this.config && this.config.cancelSetting) {\n this._settings.fields = JSON.parse(JSON.stringify(this.config.cancelSetting.fields));\n }\n const settings = { ...this.settings, reset: true };\n this.filterService.persist(settings, this.config.persistence);\n this.filterService.givenErrors.next(null);\n this.submitted = false;\n this.cdr.markForCheck();\n\n if (this.config.cancelButtonCallback) {\n this.config.cancelButtonCallback();\n }\n }\n\n public updatePersonControls(values: any, field: FilterFieldConfig): void {\n let keys;\n if (!values) {\n keys = Object.keys(this.form.get(field.name).value);\n } else {\n keys = Object.keys(values);\n }\n for (const key of keys) {\n if (this.form.get(field.name) && this.form.get(field.name).get(key)) {\n const value = values && values[key] ? values[key] : null;\n this.form.get(field.name).get(key).patchValue(value);\n }\n }\n }\n\n public checkBoxChecked(field: any, i: number): any {\n const fa = this.form.get(field.name) as FormArray;\n return fa.controls[i].value;\n }\n\n // Helper used in templates (Angular 20 strict template inference)\n public isArray(val: unknown): val is unknown[] {\n return Array.isArray(val);\n }\n\n public updateTaskNameControls(values: any, field: FilterFieldConfig): void {\n let keys;\n if (!values) {\n keys = Object.keys(this.form.get(field.name).value);\n } else {\n keys = values.task_type ? Object.keys(values.task_type) : Object.keys(this.form.get(field.name).value);\n }\n for (const key of keys) {\n if (this.form.get(field.name) && this.form.get(field.name).get(key)) {\n const value = values.task_type && values.task_type[key] ? values.task_type[key] : null;\n this.form.get(field.name).get(key).patchValue(value);\n }\n }\n }\n\n // Adjusted parameter type to align with FilterConfigOption interface (selectAll?: boolean)\n public toggleSelectAll(event: any, form: FormGroup, item: FilterConfigOption, field: FilterFieldConfig): void {\n const isChecked = event.target.checked;\n const formArray: FormArray = form.get(field.name) as FormArray;\n if (!item.selectAll) {\n const allChecked = formArray.controls.every((control: AbstractControl) => control.value);\n let index: number = null;\n const hasSelectAllOption = field.options.find((option, i) => {\n if (option.hasOwnProperty('selectAll')) {\n index = i;\n return true;\n }\n return false;\n });\n // tslint:disable-next-line:variable-name\n const isAllCheckedExcludingTheSelectAllOption = formArray.controls.filter((_control: AbstractControl, i: number) => i !== index)\n .every((control: AbstractControl) => control.value);\n\n if (!allChecked && hasSelectAllOption && !isChecked) {\n formArray.controls.forEach((control: AbstractControl, i: number) => {\n if (index === i) {\n control.patchValue(false);\n return;\n }\n });\n } else if (hasSelectAllOption && !allChecked && isChecked && isAllCheckedExcludingTheSelectAllOption) {\n formArray.controls[index].patchValue(true);\n }\n } else {\n formArray.controls.forEach((control: AbstractControl) => {\n if (isChecked) {\n control.patchValue(true);\n } else {\n control.patchValue(false);\n }\n });\n }\n if (field.changeResetFields && field.changeResetFields.length) {\n for (const resetField of field.changeResetFields) {\n this.resetField(resetField, form);\n }\n }\n if (field.name === 'user-services') {\n this.startFilterSkillsByServices(form, field);\n } else if (field.name === 'user-skills') {\n if (isChecked) {\n const selectedIndex = field.options.findIndex((option) => Number(option.key) === Number(event.target.value));\n const selectedCheckbox = this.form.get('user-skills').value;\n selectedCheckbox[selectedIndex] = true;\n this.form.get('user-skills').setValue(selectedCheckbox);\n this.previousSelectedNestedCheckbox.push(event.target.value);\n } else {\n const index = this.previousSelectedNestedCheckbox.indexOf(event.target.value);\n if (index !== -1) {\n this.previousSelectedNestedCheckbox.splice(index, 1);\n }\n }\n }\n this.cdr.markForCheck();\n }\n\n private startFilterSkillsByServices(form: FormGroup, field: FilterFieldConfig) {\n const servicesArray: string[] = [];\n form.value[field.name].map((service: boolean, index: number) => {\n if (service) {\n servicesArray.push(field.options[index].key);\n }\n });\n this.filterSkillsByServices(servicesArray, this.config);\n }\n\n private resetField(resetField: string, form: FormGroup): void {\n const control = form.get(resetField);\n const defaultValue: { name: string, value: any[] } = this.config.cancelSetting.fields.find((f) => f.name === resetField);\n if (control instanceof FormArray) {\n for (let i = 0; i < control.length; i++) {\n control.removeAt(i);\n }\n } else if (control instanceof FormGroup) {\n const keys = Object.keys(control.value);\n for (const key of keys) {\n this.resetField(key, control);\n }\n } else if (control instanceof FormControl) {\n const value = defaultValue && defaultValue.value && defaultValue.value.length ? defaultValue.value[0] : null;\n control.setValue(value);\n }\n }\n\n private mergeDefaultFields(filter: FilterSetting): void {\n if (filter) {\n filter.fields = this.filterService.get(this.config.id) ? this.filterService.get(this.config.id).fields : filter.fields;\n } else if (this.config && this.config.cancelSetting) {\n this._settings = {\n id: this.config.id,\n fields: JSON.parse(JSON.stringify(this.config.cancelSetting.fields))\n };\n }\n }\n\n private getSettings(): void {\n this._settings = this.filterService.get(this.config.id);\n }\n\n private buildForm(config: FilterConfig, settings: FilterSetting, reset?: boolean): void {\n const findPersonControl = this.form ? this.form.get('findPersonControl') : null;\n const findTaskNameControl = this.form ? this.form.get('findTaskNameControl') : null;\n this.form = this.fb.group({});\n if (findPersonControl) {\n // in order to maintain find person component, control needs to be kept\n this.form.addControl('findPersonControl', findPersonControl);\n }\n if (findTaskNameControl) {\n this.form.addControl('findTaskNameControl', findTaskNameControl);\n }\n for (const field of config.fields) {\n if (field.type === 'checkbox' || field.type === 'checkbox-large' || field.type === 'nested-checkbox') {\n const formArray = this.buildCheckBoxFormArray(field, settings);\n this.form.addControl(field.name, formArray);\n } else if (field.type === 'find-location' || field.type === 'find-service') {\n const formArray = this.buildFormArray(field, settings);\n this.form.addControl(field.name, formArray);\n } else {\n const validators: ValidatorFn[] = [];\n if (field.minSelected && field.minSelected > 0) {\n validators.push(Validators.required);\n\n if (field.type === 'text-input') {\n validators.push(Validators.minLength(field.minSelected));\n }\n\n if (field.type === 'email-input') {\n validators.push(Validators.email);\n }\n }\n\n let defaultValue: any = null;\n if (reset && config.cancelSetting) {\n const cancelField = config.cancelSetting.fields.find((f) => f.name === field.name);\n defaultValue = cancelField && cancelField.value ? cancelField.value[0] : '';\n } else if (settings && settings.fields) {\n const lastSavedValue = settings.fields.find((f) => f.name === field.name);\n defaultValue = lastSavedValue && lastSavedValue ? lastSavedValue.value[0] : '';\n }\n // if field is find-person build a form group;\n if (field.type === 'find-person') {\n const formGroup = new FormGroup({\n domain: new FormControl(defaultValue && defaultValue.hasOwnProperty('domain') ? defaultValue.domain : ''),\n email: new FormControl(defaultValue && defaultValue.hasOwnProperty('email') ? defaultValue.email : '', validators),\n id: new FormControl(defaultValue && defaultValue.hasOwnProperty('id') ? defaultValue.id : ''),\n name: new FormControl(defaultValue && defaultValue.hasOwnProperty('name') ? defaultValue.name : ''),\n knownAs: new FormControl(defaultValue && defaultValue.hasOwnProperty('knownAs') ? defaultValue.knownAs : ''),\n });\n this.form.addControl(field.name, formGroup);\n } else if (field.type === 'find-task-name') {\n const formGroup = new FormGroup({\n task_type_id: new FormControl(defaultValue && defaultValue.hasOwnProperty('task_type_id') ? defaultValue.task_type_id : ''),\n task_type_name: new FormControl(defaultValue && defaultValue.hasOwnProperty('task_type_name') ? defaultValue.task_type_name : ''),\n });\n this.form.addControl(field.name, formGroup);\n if (!defaultValue || !defaultValue.task_type_id) {\n this.form.get('findTaskNameControl')?.patchValue('');\n }\n } else if (field.type !== 'group-title') {\n const control = new FormControl(defaultValue, validators);\n this.form.addControl(field.name, control);\n }\n\n // if field updates find person component set the initial domain\n if (field.findPersonField) {\n this.fieldChanged(field, this.form);\n }\n }\n }\n }\n\n private buildCheckBoxFormArray(field: FilterFieldConfig, settings: FilterSetting): FormArray {\n const validators = GenericFilterComponent.addFormValidators(field);\n const formArray = this.fb.array([], validators);\n let defaultValues;\n if (settings && settings.fields) {\n defaultValues = settings.fields.find((f) => f.name === field.name);\n }\n for (const option of field.options) {\n let checked = false;\n if (defaultValues && Array.isArray(defaultValues.value)) {\n checked = !!defaultValues.value.find((value) => value === option.key);\n }\n formArray.push(new FormControl(checked));\n }\n\n return formArray;\n }\n\n private buildFormArray(field: FilterFieldConfig, settings: FilterSetting): FormArray {\n const validators = GenericFilterComponent.addFormValidators(field);\n const formArray = this.fb.array([], validators);\n let defaultValues: { name: string; value: any[] };\n if (settings && settings.fields) {\n defaultValues = settings.fields.find((f) => f.name === field.name);\n if (defaultValues && defaultValues.value && defaultValues.value.length > 0) {\n for (const defaultValue of defaultValues.value) {\n formArray.push(new FormControl(defaultValue));\n }\n }\n }\n return formArray;\n }\n\n private getSelectedValues(formValues: any, config: FilterConfig): any {\n return Object.keys(formValues).map((name: string) => {\n const values = formValues[name];\n if (Array.isArray(values)) {\n const field = config.fields.find((f) => f.name === name);\n if (field.type === 'find-location' || field.type === 'find-service') {\n return { value: values, name };\n }\n return { value: getValues(field.options, values), name };\n }\n return { value: [values], name };\n });\n }\n\n private emitFormErrors(form: FormGroup): void {\n let errors: FilterError[] = [];\n for (const field of this.config.fields) {\n const fieldName = field.name;\n const formGroup = form.get(fieldName);\n if (formGroup && formGroup.errors && (formGroup.errors.minlength || formGroup.errors.required)) {\n errors.push({ name: fieldName, error: field.minSelectedError });\n }\n if (formGroup && formGroup.errors && formGroup.errors.maxlength) {\n errors.push({ name: fieldName, error: field.maxSelectedError });\n }\n }\n\n // remove duplicates\n errors = errors.filter((filterError, i, arr) => {\n return errors.indexOf(arr.find((item) => item.name === filterError.name)) === i;\n });\n\n if (errors.length) {\n this.filterService.givenErrors.next(errors);\n }\n }\n\n public initValuesFromCacheForSkillsByServices() {\n if (this.settings && this.settings.fields) {\n const cachedValues = this.filteredSkillsByServicesCheckbox.map((skill) => {\n let selected = false;\n let isSelectedUserSkill: number;\n const selectedUserSkills = this.settings.fields.find((setting) => setting.name === 'user-skills');\n if (selectedUserSkills && selectedUserSkills.value && selectedUserSkills.value.length > 0) {\n isSelectedUserSkill = selectedUserSkills.value.findIndex((val) => {\n return String(val) === String(skill.key);\n });\n selected = isSelectedUserSkill !== -1;\n }\n\n return selected;\n });\n\n if (cachedValues.length > 0) {\n this.form.get('user-skills').setValue(cachedValues);\n }\n }\n this.cdr.markForCheck();\n }\n\n public filterSkillsByServices(services: string[], config: FilterConfig) {\n this.filteredSkillsByServices = [];\n this.filteredSkillsByServicesCheckbox = [];\n const userSkillsSelectField = config.fields.find((f) => f.name === 'user-skills' && f.type === 'group-select');\n const userSkillsCheckboxField = config.fields.find((f) => f.name === 'user-skills' && f.type === 'nested-checkbox');\n\n if (userSkillsSelectField) {\n const userSkills = userSkillsSelectField.groupOptions;\n if (!services || services.length === 0) {\n this.filteredSkillsByServices = userSkills;\n } else {\n services.forEach(s => {\n const groupOption = userSkills.find(u => u.group.toLowerCase() === s.toLowerCase());\n if (groupOption) {\n this.filteredSkillsByServices.push(groupOption);\n }\n });\n }\n } else if (userSkillsCheckboxField) {\n const userSkills = userSkillsCheckboxField.groupOptions;\n if (!services || services.length === 0) {\n this.filteredSkillsByServices = userSkills;\n } else {\n services.forEach((s) => {\n const groupOption = userSkills.find((u) => u.group.toLowerCase() === s.toLowerCase());\n if (groupOption) {\n this.filteredSkillsByServices.push(groupOption);\n }\n });\n this.filteredSkillsByServicesCheckbox = this.filteredSkillsByServices.map((skill) => {\n return skill.options;\n }).reduce((a, b) => {\n return a.concat(b);\n }, []);\n userSkillsCheckboxField.options = [];\n userSkillsCheckboxField.options = this.filteredSkillsByServicesCheckbox;\n\n this.form.setControl('user-skills', new FormArray([]));\n\n if (!this._config.copyFields) {\n this.filteredSkillsByServicesCheckbox.forEach(() => {\n (this.form.get('user-skills') as FormArray).push(new FormControl(false));\n });\n\n const prevValues = this.filteredSkillsByServicesCheckbox.map((skill) => {\n let selected = false;\n if (this.settings && this.settings.fields) {\n if (this.previousSelectedNestedCheckbox.length > 0) {\n selected = this.previousSelectedNestedCheckbox.includes(skill.key);\n }\n let isSelectedUserSkill: number;\n const selectedUserSkills = this.settings.fields.find((setting) => setting.name === 'user-skills');\n if (selectedUserSkills && selectedUserSkills.value && selectedUserSkills.value.length > 0) {\n isSelectedUserSkill = selectedUserSkills.value.findIndex((val) => Number(val) === Number(skill.key));\n selected = isSelectedUserSkill !== -1;\n }\n if (this.previousSelectedNestedCheckbox.length > 0) {\n // Pick up from previous selected\n selected = this.previousSelectedNestedCheckbox.includes(String(skill.key));\n }\n }\n\n return selected;\n });\n\n this.form.get('user-skills').setValue(prevValues);\n } else {\n const preSelectedSkills: boolean[] = [];\n\n this.filteredSkillsByServicesCheckbox.map((skillsByServices, index) => {\n for (let i = 0; i < this._config.preSelectedNestedCheckbox.length; i++) {\n const skillCopyValue = this._config.preSelectedNestedCheckbox[i];\n\n if (skillCopyValue.toString() === skillsByServices.key.toString()) {\n preSelectedSkills[index] = true;\n break;\n } else {\n preSelectedSkills[index] = false;\n }\n }\n });\n\n if (preSelectedSkills.length > 0) {\n preSelectedSkills.forEach((h) => {\n (this.form.get('user-skills') as FormArray).push(new FormControl(h));\n });\n } else {\n this.filteredSkillsByServicesCheckbox.map(() => {\n (this.form.get('user-skills') as FormArray).push(new FormControl(false));\n });\n }\n }\n return this.filteredSkillsByServicesCheckbox;\n }\n this.cdr.markForCheck();\n }\n\n this.filteredSkillsByServices = this.sortGroupOptions(this.filteredSkillsByServices);\n\n return this.filteredSkillsByServices;\n }\n\n private getSelectedValuesForFields(formValues: any, field: FilterFieldConfig): string[] {\n const selectedValues: string[] = [];\n Object.keys(formValues).map((name: string) => {\n const values = formValues[name].value;\n if (name === field.name) {\n values.forEach((v: any) => {\n selectedValues.push(v.key);\n });\n }\n });\n return selectedValues;\n }\n\n private sortGroupOptions(groupOptions: GroupOptions[]): GroupOptions[] {\n const sortedResults: GroupOptions[] = [];\n const groups = groupOptions.map((go) => go.group);\n groups.sort().forEach((g) => {\n const options = groupOptions.find((go: any) => go.group === g).options;\n const sortedOptions = options.sort((a, b) => {\n return a.label.toLowerCase() > b.label.toLowerCase() ? 1 : (b.label.toLowerCase() > a.label.toLowerCase() ? -1 : 0);\n });\n const result = {\n group: g,\n options: sortedOptions\n };\n sortedResults.push(result);\n });\n return sortedResults;\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n/*\n* Gov UK Dialog Component\n* Responsible for displaying dialog layout\n* using ng-content to display content from parent\n* */\n@Component({\n selector: 'xuilib-session-dialog',\n templateUrl: './hmcts-session-dialog.component.html',\n styleUrls: ['./hmcts-session-dialog.component.scss'],\n standalone: false\n})\nexport class HmctsSessionDialogComponent {\n\n @Input() public positionTop: string;\n @Output() public close = new EventEmitter();\n constructor() {}\n\n public onClose(): void {\n this.close.emit();\n }\n\n}\n","<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","@if (config.isPageHeading) {\n <h1>\n @if (config.label) {\n <label [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label | rpxTranslate }}</span>\n @if (config.optional) {\n <span class=\"govuk-label__optional\">(optional)</span>\n }\n </label>\n }\n </h1>\n} @else {\n @if (config.label) {\n <label [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n @if (config.optional) {\n <span class=\"govuk-label__optional\">(optional)</span>\n }\n </label>\n }\n}\n","import {Component, Input} from '@angular/core';\n\n/*\n* Gov UK Label component\n* Responsible for displaying label tag\n* @prop isPageHading - boolean to display h1\n* @prop config - obj with properties\n* */\n@Component({\n selector: 'xuilib-gov-label',\n templateUrl: './gov-uk-label.component.html',\n styleUrls: ['./gov-uk-label.component.scss'],\n standalone: false\n})\nexport class GovUkLabelComponent {\n constructor() { }\n @Input() public config: { label: string, name: string; id: string, isPageHeading: boolean, classes: string, optional?: string };\n\n}\n","\nimport {Directive, ElementRef, OnInit} from '@angular/core';\n/*\n* Remove Host Directive\n* Used to remove native angular host tags tags\n* sometimes needed because of CSS dependencies\n* */\n@Directive({\n selector: '[appRemoveHost]',\n standalone: false\n})\nexport class RemoveHostDirective implements OnInit {\n\n constructor(private readonly el: ElementRef) {}\n\n public ngOnInit() {\n const nativeElement: HTMLElement = this.el.nativeElement;\n const parentElement: HTMLElement = nativeElement.parentElement;\n // move all children out of the element\n while (nativeElement.firstChild) {\n parentElement.insertBefore(nativeElement.firstChild, nativeElement);\n }\n parentElement.removeChild(nativeElement);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n* Gov Uk Checkbox Dumb Component responsible for\n* displaying checkbox input and hint\n*\n* */\n@Component({\n selector: 'xuilib-gov-checkbox',\n templateUrl: './gov-uk-checkbox.component.html',\n standalone: false\n})\n\nexport class GovUkCheckboxComponent implements OnInit {\n constructor() { }\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n @Input() public isChecked: boolean = false;\n // {value: string, label: string, hint: string; name: string; focusOn: string; id: string; classes: string};\n\n public id: string;\n\n public ngOnInit(): void {\n const id = this.config.focusOn ? this.config.focusOn : this.config.value;\n this.config.id = id;\n this.config.classes = this.config.classes ?\n this.config.classes.concat(' govuk-checkboxes__label') : 'govuk-checkboxes__label';\n }\n}\n","<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","@for (message of errorMessage?.messages; track message) {\n <span class=\"govuk-error-message\" [id]=\"config.id + '-error'\">\n <span class=\"govuk-visually-hidden\">{{'Error' | rpxTranslate}}:</span>{{message | rpxTranslate}}\n </span>\n}\n","import {Component, Input} from '@angular/core';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n* Gov UK Error Message\n* Responsible for displaying in-line error messages\n* @prop config - obj with properties\n* @prop errorMessage - all error bject with messages property that is arry of strings.\n* */\n@Component({\n selector: ' xuilib-gov-uk-error-message',\n templateUrl: './gov-uk-error-message.component.html',\n standalone: false\n})\nexport class GovUkErrorMessageComponent {\n constructor() { }\n @Input() public config: GovUiConfigModel;\n // { id: string };\n @Input() public errorMessage: ErrorMessagesModel;\n}\n","import { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n\n/*\n * Helper Class\n * Used for dynamic templates manipulation\n * */\n\nexport class HtmlTemplatesHelper {\n /*\n * Sets described by string depending if\n * there is an error, error and hit or nothing\n * */\n public static setDescribedBy(errorMessage: ErrorMessagesModel, config: GovUiConfigModel) {\n if (!errorMessage) {\n return config.hint ? `${config.id}-hint` : null;\n } else if (errorMessage && errorMessage.isInvalid) {\n return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;\n } else {\n return config.hint ? `${config.id}-hint` : null;\n }\n }\n}\n","<fieldset class=\"govuk-fieldset\" [attr.aria-describedby]=\"setDescribedBy()\">\n @if (!config.isPageHeading) {\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\">\n {{config.legend | rpxTranslate}}\n </legend>\n }\n\n @if (config.isPageHeading) {\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\">\n <h1>{{config.legend | rpxTranslate}}</h1>\n </legend>\n }\n\n @if (config.hint) {\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n </span>\n }\n <ng-content></ng-content>\n</fieldset>\n","import {Component, Input} from '@angular/core';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\nimport {HtmlTemplatesHelper} from '../../util/helpers/html-templates.helper';\n/*\n* Gov Uk Fieldset Component\n* Used to wrap group fieldset elements\n* it can conditionally display h1 tag\n* @param config\n* @param isHeading\n* @param errorMessage - used for aria tag\n* */\n@Component({\n selector: 'xuilib-gov-uk-fieldset',\n templateUrl: './gov-uk-fieldset.component.html',\n standalone: false\n})\nexport class GovUkFieldsetComponent {\n constructor() { }\n @Input() public config: GovUiConfigModel;\n // {legend: string; classes: string, id: string, hint: string, key: string, isPageHeading: boolean};\n // @Input() public isPageHeading: boolean;\n @Input() public errorMessage: ErrorMessagesModel;\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, Input} from '@angular/core';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n* Gov Uk Form Group Wrapper\n* Used to wrap group form elements in html tags below such as\n* gov-uk-checkboxes and radio buttons\n* and errorMessage messages\n* */\n@Component({\n selector: 'xuilib-gov-uk-form-group-wrapper',\n templateUrl: './gov-uk-form-group-wrapper.component.html',\n standalone: false\n})\nexport class GovUkFormGroupWrapperComponent {\n constructor() { }\n @Input() public error: ErrorMessagesModel;\n @Input() public group: string;\n @Input() public config: GovUiConfigModel;\n // {hint: string; legend: string, key: string, isPageHeading: boolean;}; // TODO create a global interface\n\n}\n\n","<div class=\"govuk-form-group\" [attr.formGroupName]=\"group\" [ngClass]=\"{'govuk-form-group--error': (error?.isInvalid)}\">\n <xuilib-gov-uk-fieldset\n [config]=\"{legend: config.legend, classes: 'govuk-label--m', id: config.key, hint: config.hint, isPageHeading: config.isPageHeading}\"\n [errorMessage]=\"error\">\n\n <xuilib-gov-uk-error-message [config]=\"{id: group}\" [errorMessage]=\"error\"></xuilib-gov-uk-error-message>\n\n <ng-content></ng-content>\n\n </xuilib-gov-uk-fieldset>\n</div>","import {Component, Input} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ErrorMessagesModel } from '../../gov-ui/models';\n\n@Component({\n selector: 'xuilib-invite-permission-form',\n templateUrl: './invite-user-permission.component.html',\n standalone: false\n})\n\n export class InviteUserPermissionComponent {\n @Input() public inviteUserForm: FormGroup;\n @Input() public isPuiCaseManager: boolean = false;\n @Input() public isPuiUserManager: boolean = false;\n @Input() public isPuiOrganisationManager: boolean = false;\n @Input() public isPuiFinanceManager: boolean = false;\n @Input() public errorMessages: ErrorMessagesModel;\n }\n"," <!--permissions -->\n <ng-container [formGroup]=\"inviteUserForm\">\n <xuilib-gov-uk-form-group-wrapper\n [config]=\"{hint: 'Choose what the user will be able to do. You can change this later.', legend: 'Permissions', key: 'roles'}\"\n [formGroupName]=\"'roles'\"\n [error]=\"errorMessages\">\n\n <div class=\"govuk-checkboxes\">\n <xuilib-gov-checkbox\n [group]=\"inviteUserForm.controls['roles']\"\n [isChecked]=\"isPuiCaseManager\"\n [config]=\"{value: 'pui-case-manager', label: 'Manage Cases', name: 'roles', hint: 'View, create and progress cases.', focusOn: 'roles'}\">\n </xuilib-gov-checkbox>\n\n <xuilib-gov-checkbox\n [group]=\"inviteUserForm.controls['roles']\"\n [isChecked]=\"isPuiUserManager\"\n [config]=\"{value: 'pui-user-manager', label: 'Manage Users', name: 'roles',\n hint: 'Invite users.'}\">\n </xuilib-gov-checkbox>\n\n <xuilib-gov-checkbox\n [group]=\"inviteUserForm.controls['roles']\"\n [isChecked]=\"isPuiOrganisationManager\"\n [config]=\"{value: 'pui-organisation-manager', label: 'Manage Organisation', name: 'roles',\n hint: 'View organisation name and addresses.'}\">\n </xuilib-gov-checkbox>\n\n <!-- <xuilib-gov-checkbox\n [group]=\"inviteUserForm.controls['roles']\"\n [isChecked]=\"isPuiFinanceManager\"\n [config]=\"{value: 'pui-finance-manager', label: 'Manage Payments', name: 'roles',\n hint: 'View account balances, available credit and transactions.'}\">\n </xuilib-gov-checkbox> -->\n </div>\n\n </xuilib-gov-uk-form-group-wrapper>\n</ng-container>","<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 @if (config.hint) {\n <span [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n </span>\n }\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","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ErrorMessagesModel, GovUiConfigModel } from '../../models';\nimport { HtmlTemplatesHelper } from '../../util/helpers/html-templates.helper';\n/*\n* Gov UK Input component\n* Responsible for displaying input, hint and error messages\n* @prop errorMessages - array of messages\n* @prop focusOn - passing the FormGroup\n* @prop config - adding configuration\n* */\n@Component({\n selector: 'xuilib-gov-uk-input',\n templateUrl: './gov-uk-input.component.html',\n styleUrls: ['./gov-uk-input.component.scss'],\n standalone: false\n})\nexport class GovUkInputComponent implements OnInit {\n constructor() { }\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n // { label: string, hint: string; name: string; id: string, type: string; isPageHeading: boolean, classes: string };\n\n public ngOnInit(): void {\n this.config.classes = typeof(this.config.classes) === 'string' ? this.config.classes : 'govuk-label govuk-label--m';\n }\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\n\n@Component({\n selector: 'xuilib-invite-user-form',\n templateUrl: './invite-user-form.component.html',\n standalone: false\n})\n\nexport class InviteUserFormComponent {\n\n public isInvalid: any;\n\n @Output() public submitForm = new EventEmitter();\n @Input() public inviteUserForm: FormGroup;\n @Input() public set errorMessages(value: any) {\n this.isInvalid = value || {} ;\n }\n\n public onSubmit() {\n this.submitForm.emit();\n }\n}\n","\n<form [formGroup]=\"inviteUserForm\" (ngSubmit)=\"onSubmit()\" >\n\n <xuilib-gov-uk-input\n [config]=\"{label: 'First name', hint: 'Include all middle names.', name: 'firstName', id: 'firstName', type: 'text', classes: 'testClass'}\"\n [errorMessage]=\"isInvalid.firstName\"\n [group]=\"inviteUserForm\">\n </xuilib-gov-uk-input>\n\n <xuilib-gov-uk-input\n [config]=\"{label: 'Last name', name: 'lastName', id: 'lastName', type: 'text'}\"\n [errorMessage]=\"isInvalid.lastName\"\n [group]=\"inviteUserForm\">\n </xuilib-gov-uk-input>\n\n <xuilib-gov-uk-input\n [config]=\"{label: 'Email address', name: 'email', id: 'email', type: 'email'}\"\n [errorMessage]=\"isInvalid.email\"\n [group]=\"inviteUserForm\">\n </xuilib-gov-uk-input>\n\n <xuilib-invite-permission-form [inviteUserForm]=\"inviteUserForm\" [errorMessages]=\"isInvalid.roles\">\n </xuilib-invite-permission-form>\n\n <button type=\"submit\" class=\"govuk-button\">\n Send invitation\n </button>\n</form>\n","import { AfterContentChecked, ChangeDetectorRef, Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'xuilib-loading-spinner',\n templateUrl: './loading-spinner.component.html',\n styleUrls: ['./loading-spinner.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\n\nexport class LoadingSpinnerComponent implements AfterContentChecked {\n @Input() public loadingText: string = 'Loading';\n\n constructor(private readonly ref: ChangeDetectorRef) {}\n\n // checks the data projected into the component\n public ngAfterContentChecked() {\n this.ref.detectChanges();\n }\n\n}\n","<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","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { SharedCase } from '../../models/case-share.model';\nimport { UserDetails } from '../../models/user-details.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CaseSharingStateService {\n\n private caseState: SharedCase[] = [];\n private readonly subject = new BehaviorSubject<SharedCase[]>(this.caseState);\n\n public get state() {\n return this.subject.asObservable().pipe(\n distinctUntilChanged()\n );\n }\n\n constructor() { }\n\n public setCases(cases: SharedCase[]): void {\n this.caseState = [];\n cases.forEach(aCase => {\n this.caseState.push({ caseId: aCase.caseId, caseTitle: aCase.caseTitle, caseTypeId: aCase.caseTypeId, roles: aCase.roles,\n sharedWith: aCase.sharedWith, pendingShares: aCase.pendingShares, pendingUnshares: aCase.pendingUnshares });\n });\n this.subject.next(this.caseState);\n }\n\n public getCases(): SharedCase[] {\n return this.caseState;\n }\n\n public requestShare(user: UserDetails): SharedCase[] {\n const oldSharedCases: SharedCase[] = this.caseState.slice();\n const newSharedCases: SharedCase[] = [];\n for (const sharedCase of oldSharedCases) {\n if (!sharedCase.pendingShares) {\n sharedCase.pendingShares = [];\n }\n const newPendingShares = sharedCase.pendingShares.slice();\n if (!sharedCase.pendingUnshares) {\n sharedCase.pendingUnshares = [];\n }\n const newPendingUnshares = sharedCase.pendingUnshares.slice();\n if (!this.userHasAccess(sharedCase, user)) {\n if (!newPendingShares.some(u => u.email === user.email)) {\n newPendingShares.push(user);\n }\n } else {\n for (let u = 0, ul = newPendingUnshares.length; u < ul; u++) {\n if (newPendingUnshares[u].email === user.email) {\n newPendingUnshares.splice(u, 1);\n break;\n }\n }\n }\n const newSharedCase = {\n ...sharedCase,\n pendingUnshares: newPendingUnshares,\n pendingShares: newPendingShares\n };\n newSharedCases.push(newSharedCase);\n }\n this.subject.next(newSharedCases);\n return newSharedCases;\n }\n\n public requestUnshare(user: UserDetails, caseId?: string): SharedCase[] {\n const newSharedCases: SharedCase[] = [];\n for (const sharedCase of this.caseState) {\n // If no caseId, then request unshare from all shared cases\n if (caseId === undefined || sharedCase.caseId === caseId) {\n if (!sharedCase.pendingUnshares) {\n sharedCase.pendingUnshares = [];\n }\n const newPendingUnshares = sharedCase.pendingUnshares.slice();\n // If the user is pending shared access, just remove them from pendingShares\n let newPendingShares;\n let indexOfPreviouslyAddedUser = -1;\n if (sharedCase.pendingShares) {\n indexOfPreviouslyAddedUser = sharedCase.pendingShares.findIndex(u => u.idamId === user.idamId);\n if (indexOfPreviouslyAddedUser > -1) {\n newPendingShares = sharedCase.pendingShares.slice();\n newPendingShares.splice(indexOfPreviouslyAddedUser, 1);\n }\n }\n // If the user does not exist in pendingShares, and already has shared access (i.e. exists in sharedWith),\n // request removal of shared access\n if (indexOfPreviouslyAddedUser === -1 && sharedCase.sharedWith && sharedCase.sharedWith.findIndex(\n u => u.idamId === user.idamId) > -1) {\n if (!newPendingUnshares.some(u => u.email === user.email)) {\n newPendingUnshares.push(user);\n }\n }\n const newSharedCase = {\n ...sharedCase,\n pendingUnshares: newPendingUnshares,\n ...(newPendingShares && {\n pendingShares: newPendingShares\n })\n };\n newSharedCases.push(newSharedCase);\n } else {\n newSharedCases.push(sharedCase);\n }\n }\n this.subject.next(newSharedCases);\n return newSharedCases;\n }\n\n public requestCancel(caseId: string, user: UserDetails): void {\n const newSharedCases: SharedCase[] = [];\n for (const sharedCase of this.caseState) {\n if (sharedCase.caseId === caseId) {\n if (!sharedCase.pendingUnshares) {\n sharedCase.pendingUnshares = [];\n }\n const newPendingUnshares = sharedCase.pendingUnshares.slice();\n for (let iPendingUnshares = 0; iPendingUnshares < newPendingUnshares.length; iPendingUnshares++) {\n if (newPendingUnshares[iPendingUnshares].email === user.email) {\n newPendingUnshares.splice(iPendingUnshares, 1);\n break;\n }\n }\n if (!sharedCase.pendingShares) {\n sharedCase.pendingShares = [];\n }\n const newPendingShares = sharedCase.pendingShares.slice();\n for (let iPendingShares = 0; iPendingShares < newPendingShares.length; iPendingShares++) {\n if (newPendingShares[iPendingShares].email === user.email) {\n newPendingShares.splice(iPendingShares, 1);\n break;\n }\n }\n const newSharedCase = {\n ...sharedCase,\n pendingUnshares: newPendingUnshares,\n pendingShares: newPendingShares\n };\n newSharedCases.push(newSharedCase);\n } else {\n newSharedCases.push(sharedCase);\n }\n }\n this.subject.next(newSharedCases);\n return;\n }\n\n public removeCase(caseId: string): void {\n if (this.caseState.length > 1) {\n for (let i = 0, l = this.caseState.length; i < l; i++) {\n if (this.caseState[i].caseId === caseId) {\n this.caseState.splice(i, 1);\n this.subject.next(this.caseState);\n return;\n }\n }\n }\n }\n\n public userHasAccess(c: SharedCase, user: UserDetails): boolean {\n if (!c.sharedWith) {\n return false;\n }\n for (let i = 0, l = c.sharedWith.length; i < l; i++) {\n if (c.sharedWith[i].email === user.email) {\n return true;\n }\n }\n return false;\n }\n}\n","@if (showUserAccessBlock()) {\n <div id=\"user-access-block-{{ sharedCase.caseId }}\">\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\">\n {{'Change' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'selected case' | rpxTranslate}}</span>\n </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 @for (user of sharedCase.pendingShares; track trackByUserId(user)) {\n <tr class=\"govuk-table__row\">\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 }\n @for (user of sharedCase.pendingUnshares; track trackByUserId(user)) {\n <tr class=\"govuk-table__row\">\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 }\n </tbody>\n </table>\n </div>\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SharedCase } from '../../models/case-share.model';\nimport { UserDetails } from '../../models/user-details.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\n\n@Component({\n selector: 'xuilib-selected-case-confirm',\n templateUrl: './selected-case-confirm.component.html',\n styleUrls: ['./selected-case-confirm.component.scss'],\n standalone: false\n})\nexport class SelectedCaseConfirmComponent implements OnInit {\n\n @Input() public sharedCase: SharedCase;\n @Input() public changeLink: string = '';\n\n public shareCases: SharedCase[];\n public shareCases$: Observable<SharedCase[]>;\n\n constructor(private readonly stateService: CaseSharingStateService) { }\n\n public ngOnInit() {\n this.shareCases$ = this.stateService.state;\n this.shareCases$.subscribe(shareCases => this.shareCases = shareCases);\n }\n\n public trackByUserId(user: UserDetails): string {\n return user.idamId;\n }\n\n public showUserAccessBlock(): boolean {\n if (this.sharedCase.pendingShares && this.sharedCase.pendingShares.length > 0) {\n return true;\n }\n return this.sharedCase.pendingUnshares && this.sharedCase.pendingUnshares.length > 0;\n }\n}\n","<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 <h3 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId | rpxTranslate }}</h3>\n </div>\n <div class=\"govuk-grid-column-ten-percent\">\n @if (caseCount > 1) {\n <button\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 }\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-ten-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n [attr.aria-controls]=\"'accordion-with-summary-sections-content' + buildElementId('accordion-with-summary-sections-heading')\" class=\"govuk-accordion__section-button\"\n 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 [attr.aria-labelledby]=\"buildElementId('accordion-with-summary-sections-heading')\" >\n @if (showNoUsersAccessInfo()) {\n <div class=\"govuk-grid-row\">\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 }\n @if (showUserHasAccessInfo()) {\n <div class=\"govuk-grid-row\">\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 }\n @if (showUserAccessTable()) {\n <table class=\"govuk-table\">\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 @for (user of combinedSortedShares; track trackByUserId(user); let idx = $index) {\n <tr class=\"govuk-table__row\">\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 @if (canRemove(sharedCase.caseId, user) | async) {\n <a (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 }\n @if (canCancel(sharedCase.caseId, user) | async) {\n <a (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 }\n </td>\n <td class=\"govuk-table__cell\">\n @if (isToBeRemoved(sharedCase.caseId, user) | async) {\n <span class=\"hmcts-badge hmcts-badge--red\">{{'To be removed' | rpxTranslate}}</span>\n }\n @if (isToBeAdded(sharedCase.caseId, user) | async) {\n <span class=\"hmcts-badge\">{{'To be added' | rpxTranslate}}</span>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n </div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { SharedCase } from '../../models/case-share.model';\nimport { UserDetails } from '../../models/user-details.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\n\n@Component({\n selector: 'xuilib-selected-case',\n templateUrl: './selected-case.component.html',\n styleUrls: ['./selected-case.component.scss'],\n standalone: false\n})\nexport class SelectedCaseComponent implements OnInit, OnChanges {\n\n @Input() public sharedCase: SharedCase;\n @Input() public selectedUser: UserDetails;\n @Input() public opened = false;\n @Input() public removeUserFromCaseToggleOn: boolean;\n @Input() public caseCount: number;\n\n @Output() public unselect = new EventEmitter<SharedCase>();\n @Output() public synchronizeStore = new EventEmitter<any>();\n\n public shareCases: SharedCase[];\n public shareCases$: Observable<SharedCase[]>;\n\n public combinedSortedShares: UserDetails[];\n\n constructor(private readonly stateService: CaseSharingStateService) { }\n\n public ngOnInit() {\n this.shareCases$ = this.stateService.state;\n this.shareCases$.subscribe(shareCases => this.shareCases = shareCases);\n\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.sharedCase) {\n const sharedWith = this.sharedCase.sharedWith ? this.sharedCase.sharedWith : [];\n const pendingShares = this.sharedCase.pendingShares ? this.sharedCase.pendingShares : [];\n this.combinedSortedShares = this.combineAndSortShares(sharedWith, pendingShares);\n }\n }\n\n public onDeselect(c: SharedCase): void {\n this.unselect.emit(c);\n }\n\n public trackByUserId(user: UserDetails): string {\n return user.idamId;\n }\n\n public canRemove(caseId: string, user: UserDetails): Observable<boolean> {\n return this.shareCases$.pipe(map(cases => {\n if (this.removeUserFromCaseToggleOn) {\n for (const aCase of cases) {\n if (aCase.caseId === caseId) {\n if (aCase.pendingUnshares && aCase.pendingUnshares.some(u => u.idamId === user.idamId)) {\n return false;\n }\n if (aCase.sharedWith && aCase.sharedWith.some(u => u.idamId === user.idamId)) {\n return true;\n }\n }\n }\n }\n return false;\n }));\n }\n\n public canCancel(caseId: string, user: UserDetails): Observable<boolean> {\n return this.shareCases$.pipe(map(cases => {\n for (const aCase of cases) {\n if (aCase.caseId === caseId) {\n if (aCase.pendingShares && aCase.pendingShares.some(u => u.idamId === user.idamId)) {\n return true;\n }\n if (aCase.pendingUnshares && aCase.pendingUnshares.some(u => u.idamId === user.idamId)) {\n return true;\n }\n return false;\n }\n }\n }));\n }\n\n public isToBeRemoved(caseId: string, user: UserDetails): Observable<boolean> {\n return this.shareCases$.pipe(map(cases => {\n for (const aCase of cases) {\n if (aCase.caseId === caseId) {\n return aCase.pendingUnshares && aCase.pendingUnshares.some(u => u.idamId === user.idamId);\n }\n }\n }));\n }\n\n public isToBeAdded(caseId: string, user: UserDetails): Observable<boolean> {\n return this.shareCases$.pipe(map(cases => {\n for (const aCase of cases) {\n if (aCase.caseId === caseId) {\n return aCase.pendingShares && aCase.pendingShares.some(u => u.idamId === user.idamId);\n }\n }\n }));\n }\n\n public onRemove(user: UserDetails, sharedCase: SharedCase): void {\n this.stateService.requestUnshare(user, sharedCase.caseId);\n this.synchronizeStore.emit(this.shareCases);\n }\n\n public onCancel(user: UserDetails, sharedCase: SharedCase): void {\n this.stateService.requestCancel(sharedCase.caseId, user);\n this.synchronizeStore.emit(this.shareCases);\n }\n\n public showNoUsersAccessInfo(): boolean {\n // A user is added to a case\n if (this.sharedCase.pendingShares) {\n if (this.sharedCase.pendingShares.length > 0) {\n return false;\n }\n }\n // A case has 0 users with access to it\n if (this.sharedCase.sharedWith) {\n if (this.sharedCase.sharedWith.length === 0) {\n return true;\n }\n }\n // Access to the last user is removed\n if (this.sharedCase.sharedWith && this.sharedCase.pendingUnshares) {\n if (this.sharedCase.pendingUnshares.length > 0\n && this.sharedCase.sharedWith.length === this.sharedCase.pendingUnshares.length) {\n return true;\n }\n }\n return false;\n }\n\n public showUserHasAccessInfo(): boolean {\n return !this.showNoUsersAccessInfo();\n }\n\n public showUserAccessTable(): boolean {\n if (this.sharedCase.pendingShares) {\n if (this.sharedCase.pendingShares.length > 0) {\n return true;\n }\n }\n if (this.sharedCase.sharedWith) {\n if (this.sharedCase.sharedWith.length > 0) {\n return true;\n }\n }\n return false;\n }\n\n public combineAndSortShares(sharedWith: UserDetails[], pendingShares: UserDetails[]): UserDetails[] {\n return [\n ...sharedWith,\n ...pendingShares\n ].sort((user1, user2) => {\n return user1.firstName.toLowerCase() > user2.firstName.toLowerCase() ? 1 : (user2.firstName.toLowerCase() > user1.firstName.toLowerCase() ? -1 : 0);\n });\n }\n\n public userIdSetter(isPending: boolean, id: number): string {\n return isPending ? `pendingShares-${id}` : `${id}`;\n }\n\n public buildElementId(elementName: string): string {\n return `${elementName}-${this.sharedCase.caseId}`;\n }\n}\n","@if (!toConfirm) {\n @for (sharedCase of (shareCases$ | async); track trackByCaseId(sharedCase)) {\n <xuilib-selected-case\n [sharedCase]=\"sharedCase\"\n [caseCount]=\"caseCount\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case>\n }\n}\n\n@if (toConfirm) {\n @for (sharedCase of (shareCases$ | async); track trackByCaseId(sharedCase)) {\n <xuilib-selected-case-confirm\n [sharedCase]=\"sharedCase\"\n [changeLink]=\"changeLink\">\n </xuilib-selected-case-confirm>\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SharedCase } from '../../models/case-share.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\n\n@Component({\n selector: 'xuilib-selected-case-list',\n templateUrl: './selected-case-list.component.html',\n styleUrls: ['./selected-case-list.component.scss'],\n standalone: false\n})\nexport class SelectedCaseListComponent implements OnInit {\n\n public shareCases: SharedCase[] = [];\n public caseCount: number;\n\n @Input() public shareCases$: Observable<SharedCase[]>;\n\n @Input() public removeUserFromCaseToggleOn: boolean;\n\n @Input() public toConfirm: boolean = false;\n\n @Input() public changeLink: string = '';\n\n @Output() public unselect = new EventEmitter<SharedCase>();\n @Output() public synchronizeStore = new EventEmitter<SharedCase>();\n\n constructor(private readonly stateService: CaseSharingStateService) { }\n\n public ngOnInit() {\n this.shareCases$ = this.stateService.state;\n this.shareCases$.subscribe((shareCases) => {\n this.shareCases = shareCases;\n this.caseCount = this.shareCases.length;\n });\n }\n\n public onUnselect(sharedCase: SharedCase): void {\n this.unselect.emit(sharedCase);\n this.caseCount = this.shareCases.length;\n }\n\n public onSynchronizeStore(event: any): void {\n this.synchronizeStore.emit(event);\n }\n\n public trackByCaseId(sharedCase: SharedCase): string {\n return sharedCase.caseId;\n }\n}\n","<div class=\"hmcts-banner hmcts-banner--warning\">\n\n <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"img\" aria-label=\"hmcts-warning-icon\" 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_en\"></h2>\n @if (message_cy) {\n <h2 class=\"govuk-heading-s\" [innerHTML]=\"message_cy\"></h2>\n }\n <a [routerLink]=\"\" tabindex=\"0\" class=\"govuk-link--no-visited-state\" (click)=\"onHideMessageEvent(key)\" (keyup.enter)=\"onHideMessageEvent(key)\">{{'Hide message' | rpxTranslate}}</a>\n </div>\n\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ServiceMessages } from '../../models/service-message.model';\n\n@Component({\n selector: 'xuilib-service-message',\n templateUrl: './service-message.component.html',\n styleUrls: ['./service-message.component.scss'],\n standalone: false\n})\nexport class ServiceMessageComponent {\n @Input() public message_en: string;\n @Input() public message_cy?: string;\n @Input() public key: ServiceMessages;\n @Output() public hideMessage = new EventEmitter<ServiceMessages>();\n constructor() { }\n\n public onHideMessageEvent(key: ServiceMessages) {\n this.hideMessage.emit(key);\n }\n}\n","@if (isBannerError) {\n <div class=\"govuk-width-container govuk-!-margin-top-6\">\n @for (errMsg of bannerErrorMsgs; track errMsg) {\n <div class=\"hmcts-banner hmcts-banner--warning\">\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 <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">{{'Warning' | rpxTranslate}}</span>\n <h2 class=\"govuk-heading-s\">Error:</h2>\n <p [innerHTML]=\"errMsg.message\"></p>\n </div>\n </div>\n }\n </div>\n}\n@if (filteredMessages?.length > 0) {\n <div class=\"govuk-width-container govuk-!-margin-top-6\">\n @for (message of filteredMessages; track message) {\n <xuilib-service-message [key]=\"message\"\n [message_en]=\"message?.message_en | rpxTranslate\"\n [message_cy]=\"message?.message_cy | rpxTranslate\"\n (hideMessage)=\"hideMessage($event)\">\n </xuilib-service-message>\n }\n </div>\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { FeatureToggleService } from '../../services/feature-toggle/feature-toggle.service';\nimport { ServiceMessages } from '../../models/service-message.model';\n\n\n@Component({\n selector: 'xuilib-service-messages',\n templateUrl: './service-messages.component.html',\n standalone: false\n})\nexport class ServiceMessagesComponent implements OnInit {\n public hiddenBanners: string[];\n public filteredMessages: ServiceMessages[] = [];\n public isBannerError: boolean;\n public bannerErrorMsgs: { message: string, index: number }[] = [];\n public originalMessages: ServiceMessages[] = [];\n\n @Input() public userRoles: string[];\n @Input() public featureToggleKey: string;\n @Input() public serviceMessageCookie: string;\n\n constructor(private readonly featureToggleService: FeatureToggleService) { }\n\n public ngOnInit() {\n this.getServiceMessages();\n }\n\n public getServiceMessages(): void {\n this.featureToggleService.getValue<ServiceMessages[]>(this.featureToggleKey, null)\n .subscribe(messages => {\n this.originalMessages = messages;\n if (!!messages) {\n this.createFilteredMessages(messages);\n }\n });\n }\n\n private createFilteredMessages(messages: ServiceMessages[]): void {\n this.hiddenBanners = this.getSessionCookie(this.serviceMessageCookie) || [];\n const messageCount = messages.length;\n this.filteredMessages = messages.filter((message) => {\n const { roles, message_en } = message;\n const regEx = new RegExp(roles);\n // If userRoles is empty or undefined, allow the message through\n const isRoleMatch =\n ((!this.userRoles || this.userRoles.length === 0) && messageCount === 1 && roles === '.+')\n || (this.userRoles && this.userRoles.some((role) => regEx.test(role)));\n\n return isRoleMatch &&\n this.compareDates(message) &&\n !this.hiddenBanners.includes(message_en);\n });\n }\n\n private compareDates(msg: ServiceMessages): boolean {\n let currentDateTime = new Date();\n let beginDate: Date | null = null;\n let endDate: Date | null = null;\n this.bannerErrorMsgs = [];\n\n // Parse beginDate if msg.begin is present and valid\n if (msg.begin && !isNaN(Date.parse(msg.begin))) {\n beginDate = new Date(msg.begin);\n }\n\n if (msg.end && !isNaN(Date.parse(msg.end))) {\n endDate = new Date(msg.end);\n }\n this.originalMessages.forEach(msg => {\n // Only check for errors if both beginDate and endDate are present and valid\n if ((msg.begin && !isNaN(Date.parse(msg.end))) && (msg.end && !isNaN(Date.parse(msg.end))) && new Date(msg.begin) > new Date(msg.end)) {\n this.isBannerError = true;\n this.bannerErrorMsgs.push({\n message: `The start date is greater than the end date. Message index: ${msg.index}`,\n index: msg.index\n });\n }\n \n // Check for invalid beginDate or endDate separately, if they are present\n if (msg.begin && isNaN(Date.parse(msg.begin))) {\n this.isBannerError = true;\n this.bannerErrorMsgs.push({\n message: `Invalid start date. Message index: ${msg.index}`,\n index: msg.index\n });\n }\n if (msg.end && isNaN(Date.parse(msg.end))) {\n this.isBannerError = true;\n this.bannerErrorMsgs.push({\n message: `Invalid end date. Message index: ${msg.index}`,\n index: msg.index\n });\n }\n });\n\n const beginDateOK = !msg.begin || (beginDate && beginDate < currentDateTime);\n const endDateOK = !msg.end || (endDate && endDate >= currentDateTime);\n\n return beginDateOK && endDateOK;\n }\n\n private setSessionCookie(name: string, value: any): void {\n document.cookie = `${name}=${encodeURIComponent(JSON.stringify(value))}; path=/; SameSite=Lax`;\n }\n\n public hideMessage(msg: ServiceMessages): void {\n this.filteredMessages = this.filteredMessages.filter((f) => f.index !== msg.index);\n this.hiddenBanners.push(msg.message_en);\n this.setSessionCookie(this.serviceMessageCookie, this.hiddenBanners);\n }\n\n private getSessionCookie(name: string): any {\n const cookies = document.cookie.split('; ');\n const cookie = cookies.find((row) => row.startsWith(name + '='));\n return cookie ? JSON.parse(decodeURIComponent(cookie.split('=')[1])) : [];\n }\n}\n","<div id=\"casesToConfirm\">\n <h3 class=\"govuk-heading-l\">{{'Cases' | rpxTranslate}}</h3>\n @if (shareCases && shareCases.length > 0) {\n <div 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\n @if (shareCases && shareCases.length === 0) {\n <div id=\"noCaseDisplay\" class=\"govuk-hint\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n }\n\n</div>\n\n@if (shareCases && shareCases.length > 0) {\n <div id=\"share-case-nav\">\n <button class=\"govuk-button\" title=\"Confirm\" [routerLink]=\"completeLink\">{{'Confirm' | rpxTranslate}}</button>\n </div>\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SharedCase } from '../../models/case-share.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\n\n@Component({\n selector: 'xuilib-share-case-confirm',\n templateUrl: './share-case-confirm.component.html',\n styleUrls: ['./share-case-confirm.component.scss'],\n standalone: false\n})\nexport class ShareCaseConfirmComponent implements OnInit {\n\n public shareCases: SharedCase[] = []; // cases selected for sharing\n\n @Input() public shareCases$: Observable<SharedCase[]>;\n @Input() public changeLink: string = '';\n @Input() public completeLink: string = '';\n\n public state$: Observable<SharedCase[]>;\n\n constructor(private readonly stateService: CaseSharingStateService) { }\n\n public ngOnInit() {\n this.shareCases$.subscribe(shareCases => {\n this.shareCases = shareCases;\n this.stateService.setCases(shareCases);\n });\n this.shareCases$ = this.stateService.state;\n }\n\n}\n","<input class=\"govuk-input\" type=\"text\" [matAutocomplete]=\"dropdown\" [formControl]=\"control\"\n [attr.aria-labelledby]=\"'add-user-hint' | rpxTranslate\">\n\n<mat-autocomplete #dropdown=\"matAutocomplete\" [displayWith]=\"displayValue\" autoActiveFirstOption (optionSelected)=\"onSelected($event)\">\n @for (user of filteredUsers | async; track user) {\n <mat-option [value]=\"user\">\n {{ user.firstName | rpxTranslate }} {{ user.lastName | rpxTranslate }} - {{ user.email }}\n </mat-option>\n }\n</mat-autocomplete>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatLegacyAutocompleteSelectedEvent as MatAutocompleteSelectedEvent } from '@angular/material/legacy-autocomplete';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UserDetails } from '../../models/user-details.model';\n\n@Component({\n selector: 'xuilib-user-select',\n templateUrl: './user-select.component.html',\n styleUrls: ['./user-select.component.scss'],\n standalone: false\n})\nexport class UserSelectComponent implements OnInit {\n\n @Input() public users: UserDetails[];\n\n @Output() public selected = new EventEmitter<UserDetails>();\n\n public filteredUsers: Observable<UserDetails[]>;\n\n public control = new FormControl();\n\n constructor() { }\n\n public ngOnInit() {\n this.filteredUsers = this.control.valueChanges.pipe(\n map(value => typeof value === typeof 'string' ? this.filterUsers(value) : this.users)\n );\n // TEST-TODO\n // these are changes made per ngModel 18 upgrade and may not be correct\n // TODO: Confirm changes are correctly picked up post Angular 18 upgrade\n this.control.valueChanges.subscribe(newUserValue => {\n if (!newUserValue || !newUserValue.email) {\n this.selected.emit(null);\n }\n });\n }\n\n public displayValue(user: UserDetails): string {\n return user ? `${user.firstName} ${user.lastName} - ${user.email}` : '';\n }\n\n public onSelected(e: MatAutocompleteSelectedEvent) {\n this.selected.emit(e.option.value);\n }\n\n public clear() {\n this.control.setValue(null);\n }\n\n private filterUsers(value: string): UserDetails[] {\n if (value) {\n value = value.toLowerCase();\n return this.users.filter(user => {\n if (user.firstName.toLowerCase().includes(value)) {\n return true;\n }\n if (user.lastName.toLowerCase().includes(value)) {\n return true;\n }\n if (user.email.toLowerCase().includes(value)) {\n return true;\n }\n return false;\n });\n }\n return [];\n }\n}\n","@if (!showWarningMessage && messages && messages.length > 0) {\n <div 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 @for (message of messages; track message) {\n <li>\n @if (hasElement(message.id)) {\n <a (click)=\"scrollTo(message.id)\" [routerLink]=\"\" [fragment]=\"message.id\"\n >{{message.message | rpxTranslate}}</a>\n }\n @if (!hasElement(message.id)) {\n <span>{{message.message | rpxTranslate}}</span>\n }\n </li>\n }\n </ul>\n </div>\n </div>\n}\n@if (showWarningMessage) {\n <div 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 @for (message of messages; track message) {\n <p class=\"govuk-body\">{{ message.message | rpxTranslate}}</p>\n }\n </div>\n </div>\n}\n","\nimport { AfterViewInit, Component, Inject, Input, OnChanges, SimpleChanges, DOCUMENT } from '@angular/core';\n/*\n Error Summary component\n State Less component\n @property errorMessages that is array of messages.\n Component is also responsible for scrolling. Up and Down the page when user click on links\n*/\nexport interface HmctsErrorMessage {\n id: string;\n message: string;\n}\n\n@Component({\n selector: 'xuilib-hmcts-error-summary',\n templateUrl: './hmcts-error-summary.component.html',\n standalone: false\n})\nexport class HmctsErrorSummaryComponent implements AfterViewInit, OnChanges {\n @Input() public set errorMessages(value: HmctsErrorMessage[]) {\n this.messages = value || [];\n }\n @Input() public header: string;\n @Input() public showWarningMessage: boolean;\n public messages: HmctsErrorMessage[] = [];\n\n constructor(@Inject(DOCUMENT) private readonly document: any) { }\n\n public ngAfterViewInit(): void {\n this.scrollTo('errorSummary');\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.errorMessages) {\n this.scrollTo('errorSummary');\n }\n }\n\n public scrollTo(selector: any) {\n if (this.document.querySelector(`#${selector}`)) {\n const el = this.document.querySelector(`#${selector}`);\n\n el.focus();\n }\n }\n\n public hasElement(selector: any) {\n return this.document.querySelector(`#${selector}`);\n }\n\n}\n","<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n@if (title) {\n <h1 class=\"govuk-heading-xl govuk-!-margin-top-2\">\n @if (fnTitle) {\n <span class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n }\n {{title | rpxTranslate}}\n </h1>\n}\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 <span class=\"govuk-visually-hidden\">{{'user' | rpxTranslate}}</span>\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 @if (showRemoveUsers) {\n <div class=\"govuk-form-group\">\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 [value]=\"selectedUserToRemove\" (change)=\"onSelectedUserToRemoveChanged($event.target.value)\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n @for (user of assignedUsers; track user) {\n <option [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n }\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 <span class=\"govuk-visually-hidden\"> {{'user' | rpxTranslate}}</span>\n </button>\n </div>\n </div>\n </div>\n }\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 @if (shareCases && shareCases.length > 0) {\n <div 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\n @if (shareCases && shareCases.length === 0) {\n <div id=\"noCaseDisplay\" 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\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","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { ErrorMessagesModel, GovUiConfigModel } from '../../gov-ui/models';\nimport { SharedCase, SharedCaseErrorMessages } from '../../models/case-share.model';\nimport { UserDetails } from '../../models/user-details.model';\nimport { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';\nimport { UserSelectComponent } from '../user-select/user-select.component';\n\n@Component({\n selector: 'xuilib-share-case',\n templateUrl: './share-case.component.html',\n styleUrls: ['./share-case.component.scss'],\n standalone: false\n})\nexport class ShareCaseComponent implements OnInit {\n\n public shareCases: SharedCase[] = []; // cases selected for sharing\n public selectedCasesErrorMessageConfig: GovUiConfigModel;\n public continueAllowed = false;\n public assignedUsers: UserDetails[];\n public selectedUserToRemove: UserDetails = null;\n\n @Input() public removeUserFromCaseToggleOn: boolean = false;\n\n @Input() public shareCases$: Observable<SharedCase[]>;\n @Input() public users: UserDetails[] = []; // users of this organisation the cases can be shared with\n\n @Input() public confirmLink: string = '';\n @Input() public cancelLink: string = '';\n @Input() public addUserLabel: string;\n @Input() public showRemoveUsers: boolean = false;\n @Input() public fnTitle: string = '';\n @Input() public title: string = '';\n\n @Output() public unselect = new EventEmitter<SharedCase>();\n @Output() public synchronizeStore = new EventEmitter<any>();\n\n private selectedUser: UserDetails;\n\n @ViewChild(UserSelectComponent, { static: true })\n private readonly userSelect: UserSelectComponent;\n\n public validationErrors: { id: string, message: string }[] = [];\n public shareCaseErrorMessage: ErrorMessagesModel;\n\n constructor(private readonly stateService: CaseSharingStateService,\n private readonly router: Router) { }\n\n public ngOnInit() {\n this.shareCases$\n .pipe(tap(sharedCases => {\n // Update the list of users assigned to at least one case\n this.getAssignedUsers(sharedCases.filter(sharedCase => sharedCase.sharedWith && sharedCase.sharedWith.length > 0));\n }))\n .subscribe(shareCases => {\n this.shareCases = shareCases;\n this.stateService.setCases(shareCases);\n // Set the config to be used by the xuilib-gov-uk-error-message component, in particular the element ID to\n // which the error message is associated\n if (shareCases) {\n this.selectedCasesErrorMessageConfig = {\n id: shareCases.length > 0 ? 'cases' : 'noCaseDisplay'\n };\n }\n });\n this.shareCases$ = this.stateService.state;\n this.shareCaseErrorMessage = { isInvalid: false, messages: [] };\n }\n\n public onUnselect(c: SharedCase): void {\n this.validationErrors = [];\n if (this.stateService.getCases().length === 1) {\n this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OneCaseMustBeSelected });\n this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OneCaseMustBeSelected] };\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\n } else {\n this.unselect.emit(c);\n this.stateService.removeCase(c.caseId);\n }\n }\n\n public onSynchronizeStore(event: any): void {\n this.synchronizeStore.emit(event);\n }\n\n public onSelectedUser(user: UserDetails) {\n this.selectedUser = user;\n }\n\n public addUser() {\n const newSharedCases = this.stateService.requestShare(this.selectedUser);\n this.selectedUser = null;\n if (this.userSelect) { this.userSelect.clear(); }\n this.synchronizeStore.emit(newSharedCases);\n // Update the list of assigned users (which includes pending users)\n this.getAssignedUsers(newSharedCases);\n }\n\n public removeUser() {\n if (this.selectedUserToRemove) {\n const newSharedCases = this.stateService.requestUnshare(this.selectedUserToRemove);\n this.synchronizeStore.emit(newSharedCases);\n }\n }\n\n public isDisabledAdd() {\n return this.selectedUser === null || this.shareCases.length === 0;\n }\n\n /**\n * Function originally used to set disabled state of \"Continue\" button, now called by the button click handler to\n * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made\n */\n public setContinueAllowed(): void {\n // Always start with continueAllowed = false. This covers the scenario where a user might add someone for sharing\n // a case (so, continueAllowed = true), then removes the same user before trying to continue. This would\n // erroneously leave continueAllowed as true\n this.continueAllowed = false;\n this.shareCases$.subscribe(shareCases => {\n for (const caseState of shareCases) {\n if (caseState.pendingShares && caseState.pendingShares.length > 0) {\n this.continueAllowed = true;\n break;\n }\n if (caseState.pendingUnshares && caseState.pendingUnshares.length > 0) {\n this.continueAllowed = true;\n break;\n }\n }\n });\n }\n\n public onDeselect(sharedCase: SharedCase): void {\n if (sharedCase !== null) {\n const updated = [];\n for (const element of this.shareCases) {\n if (element.caseId !== sharedCase.caseId) {\n updated.push(element);\n }\n }\n this.shareCases = updated;\n }\n this.stateService.setCases(this.shareCases);\n }\n\n public onContinue(): void {\n this.setContinueAllowed();\n // If continuation is not allowed, set an error message\n if (!this.continueAllowed) {\n this.validationErrors = [];\n this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.NoChangesRequested });\n this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.NoChangesRequested] };\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\n }\n // Navigate to confirmation page only if allowed to continue\n if (this.continueAllowed) {\n // Check that no case is left unassigned; a user can be removed only if there is another current user, or if at\n // least one user is to be added. Prevent navigation to confirmation page if there is at least one case left in\n // an unassigned state\n if (this.hasCasesLeftUnassigned(this.shareCases)) {\n this.validationErrors = [];\n this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OnePersonMustBeAssigned });\n this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OnePersonMustBeAssigned] };\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\n } else {\n this.router.navigate([this.confirmLink]);\n }\n }\n }\n\n /**\n * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case\n * @param sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with\n */\n public getAssignedUsers(sharedCases: SharedCase[]): void {\n const users: UserDetails[] = [];\n sharedCases.forEach(sharedCase => {\n if (sharedCase.sharedWith) {\n sharedCase.sharedWith.forEach(user => {\n if (!users.some(existingUser => user.idamId === existingUser.idamId)) {\n users.push(user);\n }\n });\n }\n if (sharedCase.pendingShares) {\n sharedCase.pendingShares.forEach(user => {\n if (!users.some(existingUser => user.idamId === existingUser.idamId)) {\n users.push(user);\n }\n });\n }\n });\n this.assignedUsers = users;\n }\n\n /**\n * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending\n * unshares equal to the number of current shares, and there are no pending shares.\n * @param sharedCases The array of shared cases to check\n * @returns `true` if at least one case has the condition described above; `false` otherwise\n */\n public hasCasesLeftUnassigned(sharedCases: SharedCase[]): boolean {\n return sharedCases.some(sharedCase => {\n return sharedCase.pendingUnshares && sharedCase.sharedWith &&\n sharedCase.pendingUnshares.length === sharedCase.sharedWith.length &&\n (!sharedCase.pendingShares || sharedCase.pendingShares.length === 0);\n });\n }\n\n // TEST-TODO\n // Another place where ngModel use is removed for Angular best practice\n // May cause issues but based on understanding should work\n // TODO: Confirm this works correctly after Angular 18 upgrade\n public onSelectedUserToRemoveChanged(value: string): void {\n this.selectedUserToRemove = this.assignedUsers.find(user => `${user.firstName} ${user.lastName} - ${user.email}` === value) || null;\n }\n}\n","<mat-tab-group animationDuration=\"0ms\" (selectedTabChange)=\"tabChanged($event)\">\n @for (tabItem of tabItems; track tabItem; let last = $last) {\n <mat-tab [label]=\"tabItem.text | rpxTranslate\">\n </mat-tab>\n }\n</mat-tab-group>","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface TabItem {\n text: string;\n}\n\n@Component({\n selector: 'xuilib-tab',\n templateUrl: './tab.component.html',\n standalone: false\n})\n\nexport class TabComponent {\n @Input() public tabItems: any [];\n @Output() public tabChange = new EventEmitter<void>();\n constructor() {}\n\n public tabChanged(event: any): void {\n this.tabChange.emit(event);\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'xuilib-tc-confirm',\n templateUrl: './tc-confirm.component.html',\n styleUrls: ['./tc-confirm.component.scss'],\n standalone: false\n})\nexport class TcConfirmComponent {\n\n @Input() public buttonText: string;\n @Output() public confirm = new EventEmitter<void>();\n\n constructor() {}\n\n public onClick(): void {\n this.confirm.emit();\n }\n\n}\n","<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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'xuilib-tc-display-html',\n templateUrl: './tc-display-html.component.html',\n styleUrls: ['./tc-display-html.component.scss'],\n standalone: false\n})\nexport class TcDisplayHtmlComponent {\n\n constructor() { }\n\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'xuilib-tc-display-plain',\n templateUrl: './tc-display-plain.component.html',\n styleUrls: ['./tc-display-plain.component.scss'],\n standalone: false\n})\nexport class TcDisplayPlainComponent {\n\n constructor() { }\n\n}\n","<ng-content></ng-content>","\n@switch (document.mimeType) {\n @case ('text/html') {\n <xuilib-tc-display-html>\n <div [innerHTML]=\"document.content | rpxTranslate\"></div>\n </xuilib-tc-display-html>\n }\n @case ('text/plain') {\n <xuilib-tc-display-plain>\n {{ document.content | rpxTranslate}}\n </xuilib-tc-display-plain>\n }\n @default {\n <div>\n {{'An error occured. Please try again.' | rpxTranslate}}\n </div>\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { TCDocument } from '../../models';\n\n@Component({\n selector: 'xuilib-terms-and-conditions',\n templateUrl: './terms-and-conditions.component.html',\n styleUrls: ['./terms-and-conditions.component.scss'],\n standalone: false\n})\nexport class TermsAndConditionsComponent {\n\n @Input() public document: TCDocument;\n\n constructor() { }\n\n}\n","@if (warningTitle && warningTitle !== '') {\n <div class=\"govuk-warning-text\">\n <span class=\"govuk-warning-text__icon\">!</span>\n <span class=\"govuk-visually-hidden\">Warning</span>\n <strong class=\"govuk-warning-text__text\">\n {{ warningTitle | rpxTranslate}}\n </strong>\n </div>\n}\n@if (user) {\n <dl class=\"govuk-table\" role=\"presentation\">\n <div class=\"govuk-table__body\">\n <div class=\"govuk-table__row\">\n <dt class=\"govuk-table__header\" scope=\"row\">{{'Name' | rpxTranslate}}</dt>\n <dd class=\"govuk-table__cell\">{{user.fullName | rpxTranslate}}</dd>\n <dd class=\"govuk-table__cell\"></dd>\n </div>\n <div class=\"govuk-table__row\">\n <dt class=\"govuk-table__header\" scope=\"row\">{{'Email address' | rpxTranslate}}</dt>\n <dd class=\"govuk-table__cell\">{{user.email}}</dd>\n <dd class=\"govuk-table__cell\"></dd>\n </div>\n @if (!user.resendInvite) {\n <div class=\"govuk-table__row\">\n <dt class=\"govuk-table__header\" scope=\"row\">{{'Permissions' | rpxTranslate}}</dt>\n <dd class=\"govuk-table__cell\">\n @if (user.manageOrganisations === 'Yes') {\n <div>{{'Manage organisations' | rpxTranslate}}</div>\n }\n @if (user.manageUsers === 'Yes') {\n <div>{{'Manage users' | rpxTranslate}}</div>\n }\n @if (user.manageCases === 'Yes') {\n <div>{{'Manage cases' | rpxTranslate}}</div>\n }\n @if (userHasRole('pui-caa')) {\n <div>{{'Case access administrator' | rpxTranslate}}</div>\n }\n @if (userHasRole('pui-finance-manager')) {\n <div>{{'Manage fee accounts' | rpxTranslate}}</div>\n }\n @for (accesstype of enabledAccessTypes; track accesstype) {\n <div>{{ accesstype | rpxTranslate}}</div>\n }\n </dd>\n <dd class=\"govuk-table__cell\">@if (editPermissionRouterLink && showEditLink) {\n <a role=\"link\" [routerLink]=\"editPermissionRouterLink\">{{'Change' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'roles' | rpxTranslate}}</span></a>\n }</dd>\n </div>\n }\n </div>\n </dl>\n}\n@if (showSuspendUserButton) {\n <button class=\"govuk-button govuk-button--warning\" tabindex=\"0\" (click)=\"suspendUser(user)\" (keyup.enter)=\"suspendUser(user)\">\n {{'Suspend account' | rpxTranslate}}\n </button>\n}\n@if (user && user.resendInvite) {\n <div>\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 <button class=\"govuk-button\" tabindex=\"0\" (click)=\"reinviteClick(user)\" (keyup.enter)=\"reinviteClick(user)\" id=\"resend-invite-button\">\n {{'Resend invitation' | rpxTranslate}}\n </button>\n </div>\n}\n@if (showHelpLink && suspendHelpLink) {\n <p class=\"govuk-body\"><a [routerLink]=\"suspendHelpLink\" target=\"_blank\">{{'Get help' | rpxTranslate}}</a> {{'to reactivate this account.' | rpxTranslate}}</p>\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { User } from '../../models';\n\n@Component({\n selector: 'xuilib-user-details',\n styleUrls: ['./user-details.component.scss'],\n templateUrl: './user-details.component.html',\n standalone: false\n})\nexport class UserDetailsComponent {\n @Input() public user: User;\n @Input() public enabledAccessTypes: string[] = [];\n @Input() public editPermissionRouterLink: string;\n @Input() public warningTitle: string;\n @Input() public showEditLink: boolean = false;\n @Input() public showHelpLink: boolean = false;\n @Input() public suspendHelpLink: string;\n @Output() public suspendUserEvent = new EventEmitter<User>();\n @Input() public showSuspendUserButton = false;\n @Output() public reinvite = new EventEmitter<User>();\n\n public reinviteClick(user: User): void {\n this.reinvite.emit(user);\n }\n\n public suspendUser(suspendUser: User): void {\n this.suspendUserEvent.emit(suspendUser);\n }\n\n public userHasRole(theRole: string): boolean {\n if (this.user && this.user.roles) {\n return this.user.roles.includes(theRole);\n }\n return false;\n }\n}\n","<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 @if (!(p.pages.length <= 1)) {\n <ul class=\"hmcts-pagination__list\">\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\" [class.disabled]=\"p.isFirstPage()\">\n @if (1 < p.getCurrent()) {\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" (keyup.enter)=\"p.previous()\"\n (click)=\"p.previous()\">{{'Previous' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'set of pages' | rpxTranslate}}</span></a>\n }\n </li>\n @if (showPageNumbers) {\n @for (page of p.pages; track page) {\n <li class=\"hmcts-pagination__item\" [class.hmcts-pagination__item--active]=\"p.getCurrent() === page.value\"\n [class.hmcts-pagination__item--dots]=\"page.label === '...'\">\n @if (p.getCurrent() !== page.value) {\n <a class=\"hmcts-pagination__link\" [routerLink]=\"\" (keyup.enter)=\"p.setCurrent(page.value)\"\n (click)=\"p.setCurrent(page.value)\">\n <span class=\"govuk-visually-hidden\">{{'page' | rpxTranslate}} </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </a>\n }\n @if (p.getCurrent() === page.value) {\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n }\n </li>\n }\n }\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\" [class.disabled]=\"p.isLastPage()\">\n @if (!p.isLastPage()) {\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" (keyup.enter)=\"p.next()\"\n (click)=\"p.next()\">{{'Next' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'page' | rpxTranslate}}</span></a>\n }\n </li>\n </ul>\n }\n @if (showResultCount) {\n <p class=\"hmcts-pagination__results\">{{'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 }\n </nav>\n\n </pagination-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-pagination',\n templateUrl: './hmcts-pagination.component.html',\n styleUrls: ['./hmcts-pagination.component.scss'],\n standalone: false\n})\nexport class HmctsPaginationComponent {\n\n @Input() public id: string;\n @Input() public maxSize: number = 7;\n @Input() public pageSize: number = 10;\n @Input() public showPageNumbers: boolean = true;\n @Input() public showResultCount: boolean = true;\n @Output() public pageChange: EventEmitter<number> = new EventEmitter<number>();\n @Output() public pageBoundsCorrection: EventEmitter<number> = new EventEmitter<number>();\n\n}\n","<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 @for (u of users | paginate: { itemsPerPage: pagination.itemsPerPage, currentPage: currentPageNumber, totalItems: pagination.totalItems }; track u) {\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 }\n </tbody>\n</table>\n<xuilib-hmcts-pagination (pageChange)=\"emitPageClickEvent($event)\" [pageSize]=\"pagination.itemsPerPage\"></xuilib-hmcts-pagination>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Pagination } from '../../models';\nimport { User } from '../../models/user.model';\n\n@Component({\n selector: 'xuilib-user-list',\n styleUrls: ['./user-list.component.scss'],\n templateUrl: './user-list.component.html',\n standalone: false\n})\nexport class UserListComponent implements OnInit {\n @Input() public users: User[] = [];\n @Input() public currentPageNumber?: number;\n @Input() public pageTotalSize?: any;\n @Output() public userClick = new EventEmitter<User>();\n @Output() public pageChange = new EventEmitter();\n\n public pagination: Pagination;\n\n public ngOnInit() {\n this.pagination = { itemsPerPage: 50, currentPage: this.currentPageNumber, totalItems: this.pageTotalSize};\n }\n\n public onUserClick(user: User) {\n this.userClick.emit(user);\n }\n\n public emitPageClickEvent(pageNumber: any) {\n this.currentPageNumber = pageNumber;\n this.pageChange.emit(pageNumber);\n }\n}\n","@if (isCookieBannerVisible) {\n <div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\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 <div class=\"govuk-cookie-banner__content\">\n <p>{{'We use some essential cookies to make this service work.' | rpxTranslate}}</p>\n <p>{{'We\\'d 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 <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}\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { CookieService } from '../../services/cookie/cookie.service';\nimport { windowToken } from '../../window';\n\n@Component({\n selector: 'xuilib-cookie-banner',\n templateUrl: './cookie-banner.component.html',\n standalone: false\n})\n\nexport class CookieBannerComponent implements OnInit {\n @Input() public identifier: string;\n @Input() public appName: string;\n @Input() public enableDynatrace: boolean = false;\n @Output() public rejectionNotifier = new EventEmitter<any>();\n @Output() public acceptanceNotifier = new EventEmitter<any>();\n\n public isCookieBannerVisible: boolean = false;\n public readonly window: any;\n\n constructor(\n private readonly cookieService: CookieService,\n @Inject(windowToken) window: any,\n ) {\n this.window = window;\n }\n\n public ngOnInit(): void {\n this.setState();\n }\n\n public acceptCookie(): void {\n this.cookieService.setCookie(this.identifier, 'true', this.getExpiryDate());\n this.setState(true);\n }\n\n public rejectCookie(): void {\n this.cookieService.setCookie(this.identifier, 'false', this.getExpiryDate());\n this.setState(true);\n }\n\n public setState(reload: boolean = false): void {\n this.isCookieBannerVisible = !this.cookieService.checkCookie(this.identifier);\n\n if (this.areCookiesAccepted()) {\n this.notifyAcceptance();\n } else {\n this.notifyRejection();\n }\n\n if (reload) { // reload if any of the buttons are pressed\n this.window.location.reload();\n }\n }\n\n public areCookiesAccepted(): boolean {\n return this.cookieService.checkCookie(this.identifier) && this.cookieService.getCookie(this.identifier) === 'true';\n }\n\n public notifyRejection(): void {\n this.rejectionNotifier.emit();\n }\n\n public notifyAcceptance(): void {\n if (this.enableDynatrace) {\n if (this.window.hasOwnProperty('dtrum')) {\n // @ts-ignore\n const dtrum = this.window['dtrum'];\n if (dtrum) {\n try {\n dtrum.enable();\n dtrum.enableSessionReplay(true);\n } catch (e) {\n console.error('Error enabling DynaTrace', e);\n }\n } else {\n console.info(\"DynaTrace not enabled on the server\");\n }\n } else {\n console.info(\"DynaTrace not enabled on the server\");\n }\n } else {\n console.info(\"Dyntrace RUM not enabled via component parameter\");\n }\n this.acceptanceNotifier.emit();\n }\n\n private getExpiryDate(): string {\n const now = new Date();\n const time = now.getTime();\n const expireTime = time + 31536000000; // in 365 days = 3600 * 1000 * 24 * 365\n now.setTime(expireTime);\n return now.toUTCString();\n }\n\n}\n","<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 @if (firstRecord > 1) {\n <a class=\"hmcts-pagination__link\" (click)=\"onPrevious()\" href=\"javascript:void(0)\">\n {{'Previous page' | rpxTranslate}}\n </a>\n } @else {\n <span class=\"hmcts-pagination__link\">{{'Previous page' | rpxTranslate}}</span>\n }\n </li>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\">\n @if (moreItems) {\n <a class=\"hmcts-pagination__link\" (click)=\"onNext()\" href=\"javascript:void(0)\">{{'Next page' | rpxTranslate}}</a>\n } @else {\n <span class=\"hmcts-pagination__link\">{{'Next page' | rpxTranslate}}</span>\n }\n </li>\n </ul>\n</nav>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'xuilib-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false\n})\nexport class PaginationComponent {\n\n @Input() public moreItems: boolean;\n @Input() public firstRecord: number;\n @Output() public previousPage: EventEmitter<any> = new EventEmitter();\n @Output() public nextPage: EventEmitter<any> = new EventEmitter();\n\n constructor() { }\n\n public onPrevious(): void {\n this.previousPage.emit(null);\n }\n\n public onNext(): void {\n this.nextPage.emit(null);\n }\n}\n","<div class=\"auto-complete-container\">\n @if (readyAfterContent) {\n <div class=\"autocomplete__wrapper\">\n <input\n [formControl]=\"findLocationFormGroup.controls.findLocationFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n id=\"searchVenueLocation\"\n (keydown)=\"onKeyDown()\"\n (keyup)=\"onKeyUp($event)\"\n class=\"autocomplete__input autocomplete__input--default search-box\"\n [attr.disabled]=\"!disabled ? null: disabled\"\n [value]=\"getControlCourtNameValue()\"\n #inputSelectedLocation>\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n @for (location of displayedLocationsDuplicationFiltered; track location) {\n <mat-option\n [value]=\"getDisplayName(location)\"\n (onSelectionChange)=\"onSelectionChange(location)\"\n [ngClass]=\"{'hide-autocomplete': showAutocomplete ? false : true}\">\n {{ getDisplayName(location) }}\n </mat-option>\n }\n @if (!displayedLocationsDuplicationFiltered?.length && showAutocomplete && !searchInProgress) {\n <mat-option>{{ 'No results found' }}</mat-option>\n }\n </mat-autocomplete>\n </div>\n }\n</div>\n","import {AfterContentInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {AbstractControl, FormArray, FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport {Observable, Subject} from 'rxjs';\nimport {debounceTime, mergeMap} from 'rxjs/operators';\nimport {LocationByEPIMMSModel} from '../../models/location.model';\nimport {LocationService} from '../../services/locations/location.service';\n\n@Component({\n selector: 'xuilib-search-venue',\n templateUrl: './search-venue.component.html',\n styleUrls: ['./search-venue.component.scss'],\n standalone: false\n})\nexport class SearchVenueComponent implements OnInit, AfterContentInit {\n @Input() public control: AbstractControl;\n @Input() public disabled: boolean = null;\n @Input() public locationType: string = '';\n @Input() public selectedLocations: LocationByEPIMMSModel[];\n @Input() public serviceIds: string = '';\n @Input() public submitted?: boolean = true;\n @ViewChild('inputSelectedLocation', { read: ElementRef }) public autoCompleteInputBox: ElementRef<HTMLInputElement>;\n public findLocationFormGroup: FormGroup;\n @Input() public showAutocomplete: boolean = false;\n @Input() public displayedLocations: LocationByEPIMMSModel[];\n @Output() public locationChanged = new EventEmitter<LocationByEPIMMSModel>();\n public selectedLocation: LocationByEPIMMSModel;\n private readonly minSearchCharacters = 3;\n public keyUpSubject$: Subject<string> = new Subject();\n public readyAfterContent: boolean = false;\n public searchInProgress: boolean = false;\n\n constructor(private readonly locationService: LocationService, fb: FormBuilder) {\n this.findLocationFormGroup = fb.group({\n findLocationFormControl: [null],\n locationSelectedFormControl: [null]\n });\n this.selectedLocations = [];\n }\n\n public ngAfterContentInit(): void {\n this.readyAfterContent = true;\n }\n\n public ngOnInit(): void {\n this.displayedLocations = [];\n if (this.control) {\n if (this.findLocationFormGroup && this.findLocationFormGroup.controls) {\n this.findLocationFormGroup.controls.locationSelectedFormControl = this.control;\n }\n }\n this.keyUpSubject$.pipe(debounceTime(500)).subscribe(searchValue => this.search(searchValue as string));\n }\n\n public onKeyDown(): void {\n this.locationChanged.emit();\n }\n\n public onKeyUp(event: any): void {\n if (event.code === `Key${event.key.toUpperCase()}`){\n this.keyUpSubject$.next(event.target.value);\n }\n }\n\n public get displayedLocationsDuplicationFiltered(): LocationByEPIMMSModel[] {\n return this.displayedLocations.filter(\n location => !this.selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(location.epimms_id) && location.court_name\n );\n }\n\n public filter(term: string): void {\n this.searchLocations(term).pipe(\n mergeMap((apiData: LocationByEPIMMSModel[]) => {\n const apiFilter = apiData.filter(\n apiLocation => !this.selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(apiLocation.epimms_id)\n );\n this.displayedLocations = apiFilter;\n this.searchInProgress = false;\n return apiFilter;\n })\n ).subscribe(location => {\n if (term === location.court_name) {\n this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(location);\n this.displayedLocations = [];\n this.locationChanged.emit(location);\n }\n this.searchInProgress = false;\n });\n }\n\n public onSelectionChange(selection?: LocationByEPIMMSModel): void {\n if (this.findLocationFormGroup.controls.findLocationFormControl instanceof FormArray) {\n (this.findLocationFormGroup.controls.locationSelectedFormControl as FormArray).push(new FormControl(selection.epimms_id));\n } else {\n this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(selection);\n }\n this.locationChanged.emit(selection);\n this.showAutocomplete = false;\n }\n\n public search(currentValue: string): void {\n this.searchInProgress = true;\n if (currentValue) {\n this.showAutocomplete = (currentValue.length >= this.minSearchCharacters) ? true : false;\n this.findLocationFormGroup.controls.locationSelectedFormControl.markAsDirty();\n } else {\n this.findLocationFormGroup.controls.locationSelectedFormControl.reset();\n }\n if (this.showAutocomplete) {\n this.filter(currentValue);\n } else {\n this.searchInProgress = false;\n }\n }\n\n public getDisplayName(selectedLocation: LocationByEPIMMSModel): string {\n return selectedLocation.court_name;\n }\n\n public searchLocations(term: string): Observable<LocationByEPIMMSModel[]> {\n return this.locationService.searchLocations(this.serviceIds, this.locationType, term);\n }\n\n public getControlCourtNameValue(): string {\n return this.findLocationFormGroup && this.findLocationFormGroup.controls && this.findLocationFormGroup.controls.locationSelectedFormControl.value ?\n (this.findLocationFormGroup.controls.locationSelectedFormControl.value as LocationByEPIMMSModel).court_name : '';\n }\n}\n","<div class=\"govuk-form-group\">\n <input id=\"inputSelectPerson{{idValue}}\" [placeholder]=\"placeholderContent\" [formControl]=\"formGroup.controls.formControl\"\n [matAutocomplete]=\"autoComplete\" (keydown)=\"onKeyDown()\" (keyup)=\"onKeyUp($event)\" (focus)=\"onFocus()\"\n class=\"govuk-input\" [attr.disabled]=\"!disabled ? null: disabled\" [value]=\"getControlValueDisplayText()\"\n #inputSelection>\n <mat-autocomplete autoActiveFirstOption #autoComplete=\"matAutocomplete\">\n @for (judicial of displayedJudicialsDuplicationFiltered; track judicial) {\n <mat-option class=\"select-option\"\n [value]=\"getDisplayName(judicial)\" (onSelectionChange)=\"onSelectionChange(judicial)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(judicial) }}\n </mat-option>\n }\n @if (!displayedJudicialsDuplicationFiltered?.length && showAutocomplete && !searchInProgress) {\n <mat-option class=\"select-option\"\n >\n {{ 'No results found' }}</mat-option>\n }\n </mat-autocomplete>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, mergeMap } from 'rxjs/operators';\nimport { JudicialUserModel } from '../../models';\nimport { FindAPersonService } from '../../services/find-person/find-person.service';\n\n@Component({\n selector: 'xuilib-search-judicials',\n templateUrl: './search-judicials.component.html',\n styleUrls: ['./search-judicials.component.scss'],\n standalone: false\n})\nexport class SearchJudicialsComponent implements OnInit {\n public formGroup: FormGroup;\n @Input() public control: AbstractControl;\n @Input() public disabled: boolean = null;\n @Input() public selectedJudicials: JudicialUserModel[] = [];\n @Input() public submitted?: boolean = true;\n @Input() public placeholderContent: string = '';\n @Input() public showAutocomplete: boolean = false;\n @Input() public displayedJudicials: JudicialUserModel[];\n @Output() public judicialChanged = new EventEmitter<JudicialUserModel>();\n @Input() public idValue: string = '';\n @Input() public errorMessage: string = 'You must select a name';\n @Input() public serviceId: string = '';\n @ViewChild('inputSelection', { read: ElementRef, static: true }) public autoCompleteInputBox: ElementRef<HTMLInputElement>;\n public selectedJudicial: JudicialUserModel;\n private readonly minSearchCharacters = 3;\n public keyUpSubject$: Subject<string> = new Subject();\n public searchInProgress: boolean = false;\n\n constructor(private readonly judicialService: FindAPersonService, fb: FormBuilder) {\n this.formGroup = fb.group({\n formControl: [null],\n selectedFormControl: [null]\n });\n }\n\n public ngOnInit(): void {\n this.displayedJudicials = [];\n if (this.control) {\n if (this.formGroup && this.formGroup.controls) {\n this.formGroup.controls.selectedFormControl = this.control;\n this.formGroup.controls.formControl.setValue(this.getControlValueDisplayText());\n }\n }\n this.keyUpSubject$.pipe(debounceTime(500)).subscribe(searchValue => this.search(searchValue as string));\n }\n\n public onKeyDown(): void {\n this.judicialChanged.emit();\n }\n\n public onKeyUp(event: any): void {\n this.showAutocomplete = false;\n this.keyUpSubject$.next(event.target.value);\n }\n\n public onFocus() {\n this.showAutocomplete = false;\n }\n\n public get displayedJudicialsDuplicationFiltered(): JudicialUserModel[] {\n return this.displayedJudicials.filter(\n judicial => !this.selectedJudicials.map(selectedJudicial => selectedJudicial.idamId).includes(judicial.idamId)\n );\n }\n\n public filter(term: string): void {\n this.searchJudicials(term, this.serviceId).pipe(\n mergeMap((apiData: JudicialUserModel[]) => {\n const apiFilter = apiData.filter(\n apiJudicial => !this.selectedJudicials.map(selectedJudicial => selectedJudicial.idamId).includes(apiJudicial.idamId)\n );\n this.displayedJudicials = apiFilter;\n this.searchInProgress = false;\n return apiFilter;\n })\n ).subscribe(judicial => {\n if (term === judicial.fullName) {\n this.formGroup.controls.selectedFormControl.setValue(judicial);\n this.displayedJudicials = [];\n this.judicialChanged.emit(judicial);\n this.showAutocomplete = false;\n }\n this.searchInProgress = false;\n });\n }\n\n public onSelectionChange(selection?: JudicialUserModel): void {\n if (this.formGroup.controls.formControl instanceof FormArray) {\n (this.formGroup.controls.selectedFormControl as FormArray).push(new FormControl(selection.idamId));\n } else {\n this.formGroup.controls.selectedFormControl.setValue(selection);\n }\n this.judicialChanged.emit(selection);\n }\n\n public search(currentValue: string): void {\n this.searchInProgress = true;\n this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);\n if (!!currentValue) {\n this.formGroup.controls.selectedFormControl.markAsDirty();\n } else {\n this.formGroup.controls.selectedFormControl.reset();\n }\n if (this.showAutocomplete) {\n this.filter(currentValue);\n } else {\n this.searchInProgress = false;\n }\n }\n\n public getDisplayName(selectedJudicial: JudicialUserModel): string {\n return `${selectedJudicial.fullName} (${selectedJudicial.emailId})`;\n }\n\n public searchJudicials(term: string, serviceId: string): Observable<JudicialUserModel[]> {\n return this.judicialService.searchJudicial(term, serviceId);\n }\n\n public getControlValueDisplayText(): string {\n return this.formGroup && this.formGroup.controls && this.formGroup.controls.selectedFormControl.value ?\n this.getDisplayName(this.formGroup.controls.selectedFormControl.value as JudicialUserModel) : '';\n }\n}\n","<div class=\"page\">\n @if (backLink) {\n <a [routerLink]=\"backLink\" class=\"govuk-back-link\">{{'Back' | rpxTranslate}}</a>\n }\n <div class=\"govuk-width-container\">\n <main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n @if (title) {\n <h1 class=\"govuk-heading-xl\">\n @if (fnTitle) {\n <span class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n }\n {{title | rpxTranslate}}\n </h1>\n }\n <ng-content>\n\n </ng-content>\n </div>\n </main>\n </div>\n</div>\n","import {Component, Input} from '@angular/core';\n/**\n * Main Page Wrapper\n * Responsible for:\n * Wrapping content within the gov-uk html elements bellow\n * @prop showBackLink - switch for back link\n * @prop appHeaderTitle = appHeaderTitle\n * @prop appFunctionalTitle = appFunctionalTitle\n * @prop summaryErrors list of errors\n * @prop back link, appHeaderTitle (appHeaderTitle), summaryErrors (array of errors)\n */\n@Component({\n selector: 'exui-page-wrapper',\n templateUrl: 'exui-page-wrapper.component.html',\n styleUrls: ['exui-page-wrapper.component.scss'],\n standalone: false\n})\nexport class ExuiPageWrapperComponent {\n\n @Input() public backLink: string;\n @Input() public title: string;\n @Input() public fnTitle: string;\n\n constructor() { }\n\n}\n","<ng-container>\n <form [formGroup]=\"formGroup\">\n <div class=\"govuk-body\" formGroupName=\"address\">\n <label class=\"govuk-label govuk-!-font-weight-bold\">\n Enter address details\n </label>\n\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && !formGroup.get('address').get('addressLine1').valid}\">\n <label class=\"govuk-label\" for=\"addressLine1\">\n Building and Street\n </label>\n @if (submissionAttempted && !formGroup.get('address').get('addressLine1').valid) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_STREET_SELECTED}}\n </p>\n }\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine1\" name=\"addressLine1\" maxlength=\"150\" type=\"text\"\n formControlName=\"addressLine1\">\n </div>\n\n <div class=\"govuk-body\">\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\" maxlength=\"150\" type=\"text\"\n formControlName=\"addressLine2\">\n </div>\n\n <div class=\"govuk-body\">\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\" maxlength=\"50\" type=\"text\"\n formControlName=\"addressLine3\">\n </div>\n\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && !formGroup.get('address').get('postTown').valid}\">\n <label class=\"govuk-label\" for=\"postTown\">\n Town or City\n </label>\n @if (submissionAttempted && !formGroup.get('address').get('postTown').valid) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_CITY_SELECTED}}\n </p>\n }\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-body\">\n <label class=\"govuk-label\" for=\"county\">\n County{{ 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 @if (isInternational) {\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && !formGroup.get('address').get('country').valid}\">\n <label class=\"govuk-label\" for=\"country\">\n Country\n </label>\n @if (submissionAttempted && !formGroup.get('address').get('country').valid) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_COUNTRY_SELECTED}}\n </p>\n }\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"country\" name=\"country\" type=\"text\"\n formControlName=\"country\">\n </div>\n }\n\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && !isInternational && !formGroup.get('address').get('postCode').valid}\">\n <label class=\"govuk-label\" for=\"postCode\">\n Postcode{{ isInternational ? ' (Optional)' : '' }}\n </label>\n @if (submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('required')) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_POSTCODE_SELECTED}}\n </p>\n }\n @if (submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('invalidPostcode')) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.INVALID_POSTCODE}}\n </p>\n }\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>","import { Component, Input, OnChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AddressMessageEnum } from '../../models';\n\n@Component({\n selector: 'xuilib-write-address-inputs',\n templateUrl: './write-address-inputs.component.html',\n standalone: false\n})\nexport class WriteAddressInputsComponent implements OnChanges {\n\n public MESSAGE_ENUM = AddressMessageEnum;\n\n @Input()\n public formGroup: FormGroup;\n\n @Input()\n public isInternational = false;\n\n @Input()\n public submissionAttempted = false;\n\n public missingPostcode = false;\n\n public errorsPresent = false;\n\n constructor() {\n }\n\n public ngOnChanges(): void {\n // if there is an issue with the formgroup, ensure error styling is displayed\n this.errorsPresent = !this.formGroup.get('address').valid;\n }\n\n}\n","<div class=\"govuk-form-group\" [formGroup]=\"addressFormGroup\"\n [ngClass]=\"{'govuk-form-group--error': optionErrorsPresent}\">\n @if (optionErrorsPresent) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{optionErrorMessage}}\n </p>\n }\n @if (postcodeLookupVisible()) {\n <div>\n <span class=\"govuk-label\"><strong>Provide address details</strong></span>\n <div class=\"govuk-body postcode-lookup\" id=\"addressLookup\"\n [ngClass]=\"{'govuk-form-group--error': missingPostcode || postcodeErrorPresent(true)}\">\n <label for=\"postcodeInput\">\n <span class=\"govuk-hint\">Enter a UK postcode</span>\n </label>\n @if (missingPostcode || postcodeErrorPresent(true)) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{postcodeErrorMessage}}\n </p>\n }\n <div class=\"govuk-body\">\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\" id=\"postcodeInput\" name=\"postcode\"\n class=\"govuk-input govuk-!-width-one-third postcodeinput inline-block\" formControlName=\"postcode\">\n <button type=\"button\" class=\"govuk-button find-address\" (click)=\"findAddress()\">Find address</button>\n </div>\n </div>\n @if (addressOptions) {\n <div class=\"govuk-body\" id=\"selectAddress\">\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': postcodeErrorPresent(false)}\">\n <label class=\"govuk-label\" for=\"addressList\">\n <span class=\"form-label\">Select an address</span>\n </label>\n @if (postcodeErrorPresent(false)) {\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{selectErrorMessage}}\n </p>\n }\n <select class=\"form-control govuk-select ccd-dropdown addressList\" id=\"addressList\" name=\"address\"\n formControlName=\"addressList\" (change)=\"addressSelected()\" focusElement>\n @for (addressOption of addressOptions; track addressOption) {\n <option [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n }\n </select>\n </div>\n </div>\n }\n @if (!shouldShowDetailFields() || (!startedInternational && !addressChosen)) {\n <a class=\"manual-link govuk-link\"\n (click)=\"blankAddress()\" href=\"javascript:void(0)\">I can't enter a UK postcode</a>\n }\n </div>\n }\n\n @if (shouldShowDetailFields() && internationalMode && startedInternational && !addressChosen) {\n <div id=\"govuk-radios\" class=\"govuk-radios\" data-module=\"govuk-radios\"\n >\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"yes\" value=\"yes\" name=\"ukAddress\" type=\"radio\"\n data-aria-controls=\"address-fields\" (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\"\n data-aria-controls=\"address-fields\" (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 @if (isInternational !== undefined) {\n <xuilib-write-address-inputs [formGroup]=\"formGroup\"\n [isInternational]=\"isInternational\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n }\n </div>\n </div>\n }\n\n @if (shouldShowDetailFields() && (addressChosen || !internationalMode)) {\n <xuilib-write-address-inputs\n [formGroup]=\"formGroup\" [isInternational]=\"false\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n }\n\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { AddressMessageEnum, AddressModel } from '../../models';\nimport { AddressOption } from '../../models/address-option.model';\nimport { AddressService } from '../../services/address/address.service';\n\n@Component({\n selector: 'xuilib-write-address-field',\n styleUrls: ['./write-address.component.scss'],\n templateUrl: './write-address.component.html',\n standalone: false\n})\nexport class WriteAddressFieldComponent implements OnInit, OnChanges {\n\n @Input()\n public formGroup: FormGroup;\n @Input()\n public internationalMode = false;\n @Input()\n public isInternational: boolean;\n @Input()\n public submissionAttempted = false;\n @Input()\n public startedInternational: boolean;\n @Input()\n public addressChosen = false;\n\n @Output() public postcodeOptionSelected = new EventEmitter<void>();\n @Output() public internationalModeStart = new EventEmitter<void>();\n @Output() public ukAddressOptionSelected = new EventEmitter<boolean>();\n // indicated what error to display to user\n @Output() public canSelectAddress = new EventEmitter<boolean>();\n // tells parent to reset submission attempted field\n // only relevant to when user re-clicks find address\n @Output() public resetSubmission = new EventEmitter<void>();\n\n public addressField: AddressModel = {\n addressLine1: '',\n addressLine2: '',\n addressLine3: '',\n postCode: '',\n postTown: '',\n country: '',\n county: ''\n };\n\n public optionErrorsPresent = false;\n public addressSelectable = false;\n\n public addressFormGroup: FormGroup;\n\n public addressOptions: AddressOption[];\n\n public missingPostcode = false;\n\n public optionErrorMessage = AddressMessageEnum.NO_OPTION_SELECTED;\n public postcodeErrorMessage = AddressMessageEnum.NO_POSTCODE_SELECTED;\n public selectErrorMessage = AddressMessageEnum.SELECT_ADDRESS;\n\n constructor(private readonly addressesService: AddressService) {\n }\n\n public ngOnInit(): void {\n if (!this.formGroup.get('address')) {\n this.formGroup.addControl('address', new FormControl({}));\n }\n // set the form group relevant to only the external parent component\n this.addressFormGroup = new FormGroup({\n // relevant to international mode\n ukAddress: new FormControl(this.isInternational !== undefined ? (this.isInternational ? 'no' : 'yes') : null),\n // relevant to postocode lookup\n postcode: new FormControl(''),\n addressList: new FormControl('')\n });\n this.setPostcodeForm();\n }\n\n public findAddress() {\n this.resetSubmission.emit();\n if (!this.addressFormGroup.get('postcode').value) {\n this.missingPostcode = true;\n this.canSelectAddress.emit(false);\n } else {\n this.missingPostcode = false;\n this.addressField = null;\n const postcode = this.addressFormGroup.get('postcode').value;\n this.addressOptions = [];\n this.addressesService.getAddressesForPostcode(postcode.replace(' ', '').toUpperCase()).subscribe(\n result => {\n result.forEach(\n address => {\n this.addressOptions.push(new AddressOption(address, null));\n }\n );\n this.addressOptions.unshift(\n new AddressOption(undefined, this.defaultLabel(this.addressOptions.length))\n );\n }, (error) => {\n // Edited this so that errors not produced if there are no results for a postcode\n console.log(`An error occurred retrieving addresses for postcode ${postcode}. ${error}`);\n this.addressOptions.unshift(\n new AddressOption(undefined, this.defaultLabel(this.addressOptions.length))\n );\n });\n this.addressFormGroup.get('addressList').setValue(undefined);\n }\n }\n\n public blankAddress() {\n this.setFormValue();\n this.resetSubmission.emit();\n if (this.internationalMode) {\n this.internationalModeStart.emit();\n }\n }\n\n public shouldShowDetailFields() {\n if (!this.formGroup.get('address')) {\n return false;\n }\n const address = this.formGroup.get('address').value;\n let hasAddress = false;\n if (address) {\n Object.keys(address).forEach((key) => {\n if (address[key] !== null) {\n hasAddress = true;\n }\n });\n }\n return hasAddress;\n }\n\n public addressSelected() {\n this.missingPostcode = false;\n this.addressField = this.addressFormGroup.get('addressList').value;\n this.addressChosen = true;\n this.setFormValue();\n this.postcodeOptionSelected.emit();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const addressChange = changes['addressField'];\n const internationalChange = changes['isInternational'];\n if (addressChange) {\n this.setFormValue();\n }\n if (internationalChange && this.addressFormGroup && this.addressFormGroup.get('ukAddress')) {\n this.addressFormGroup.get('ukAddress').patchValue(this.isInternational ? 'no' : 'yes');\n }\n if (!this.addressChosen && this.addressFormGroup && this.addressFormGroup.get('addressList')) {\n // resets address options on internal back\n this.addressFormGroup.get('addressList').patchValue(undefined);\n }\n this.checkIfErrorsNeeded();\n }\n\n private checkIfErrorsNeeded(): void {\n if (this.submissionAttempted && this.internationalMode && !this.postcodeLookupVisible()) {\n // ensure errors present when submission attmempted on international radio buttons\n this.optionErrorsPresent = true;\n this.optionErrorMessage = AddressMessageEnum.NO_OPTION_SELECTED;\n }\n else {\n this.optionErrorsPresent = false;\n }\n if (this.optionErrorsPresent && (this.addressChosen || this.isInternational !== undefined)) {\n // ensure parent errors not present when the child form group is present\n this.optionErrorsPresent = false;\n }\n }\n\n public setInternationalAddress(isInternational: boolean): void {\n this.isInternational = isInternational;\n this.ukAddressOptionSelected.emit(this.isInternational);\n }\n\n public postcodeErrorPresent(isPostcodeField: boolean): boolean {\n const checkForField = isPostcodeField ? !this.addressSelectable : this.addressSelectable;\n return this.submissionAttempted && checkForField;\n }\n\n public postcodeLookupVisible(): boolean {\n return !this.shouldShowDetailFields() || (!this.startedInternational && !this.addressChosen);\n }\n\n private defaultLabel(numberOfAddresses: number) {\n this.addressSelectable = numberOfAddresses > 0 ? true : false;\n this.canSelectAddress.emit(this.addressSelectable);\n return numberOfAddresses === 0 ? 'No address found'\n : `${numberOfAddresses}${numberOfAddresses === 1 ? ' address ' : ' addresses '}found`;\n }\n\n private setFormValue() {\n if (this.formGroup) {\n this.formGroup.get('address').patchValue(\n this.addressField\n );\n }\n }\n\n private setPostcodeForm(): void {\n const postcodeNeeded = this.isInternational === undefined && this.formGroup.get('address') && this.formGroup.get('address').get('postCode');\n this.addressFormGroup.get('postcode').patchValue(postcodeNeeded ? this.formGroup.get('address').get('postCode').value : '');\n }\n}\n","import { Directive, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FeatureToggleService } from '../../services/feature-toggle/feature-toggle.service';\n\n@Directive({\n selector: '[xuilibFeatureToggle]',\n standalone: false\n})\nexport class FeatureToggleDirective implements OnDestroy {\n private feature: string;\n private subscription: Subscription;\n\n @Input() public set xuilibFeatureToggle(feature: string) {\n this.feature = feature;\n this.updateSubscription();\n }\n\n constructor(\n private readonly service: FeatureToggleService,\n private readonly viewContainer: ViewContainerRef,\n private readonly templateRef: TemplateRef<any>\n ) {}\n\n public ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n private updateSubscription() {\n this.subscription = this.service.isEnabled(this.feature).subscribe(enabled => {\n if (enabled) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n });\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport class LetContext<T = any> {\n public $implicit: T = null;\n public xuilibLet: T = null;\n}\n\n@Directive({\n selector: '[xuilibLet]',\n standalone: false\n})\nexport class LetDirective<T = any> {\n private readonly context: LetContext<T> = new LetContext<T>();\n\n constructor(private readonly viewContainer: ViewContainerRef, templateRef: TemplateRef<LetContext<T>>) {\n this.viewContainer.createEmbeddedView(templateRef, this.context);\n }\n\n @Input() public set xuilibLet(condition: T) {\n this.context.$implicit = this.context.xuilibLet = condition;\n }\n}\n","<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 @if (config.hint) {\n <span [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n </span>\n }\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n <div class=\"govuk-checkboxes govuk-checkboxes--small govuk-checkboxes-multi-column\" data-module=\"govuk-checkboxes\">\n @for (columnItems of columns; track columnItems) {\n <div class=\"govuk-checkboxes-multi-column__single\">\n @for (item of columnItems; track item) {\n <div class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [id]=\"item.id\" [name]=\"item.id\" [checked]=\"isChecked(item.value)\" [value]=\"item.value\"\n [attr.aria-describedby]=\"setDescribedBy()\"\n (change)=\"onChecked($event.target.checked, item.value)\"\n >\n <label class=\"govuk-label govuk-checkboxes__label\" [for]=\"item.id\">\n {{ item.label }}\n </label>\n @if (item.hint) {\n <div class=\"govuk-hint govuk-checkboxes__hint\">\n {{ item.hint }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CheckboxesModel, ErrorMessagesModel, GovUiConfigModel } from '../../models';\nimport { HtmlTemplatesHelper } from '../../util/helpers/html-templates.helper';\n/*\n* CheckBox component - state less\n* Responsible for displaying a list of gov-uk-checkboxes\n* @param: options - object with data for wrapper (fieldset) and\n* array of items for gov-uk-checkboxes\n* @param: errors - array of error stings\n* */\n@Component({\n selector: 'xuilib-gov-uk-checkboxes',\n templateUrl: './gov-uk-checkboxes.component.html',\n styleUrls: ['./gov-uk-checkboxes.component.scss'],\n standalone: false\n})\n\nexport class GovUkCheckboxesComponent implements OnInit {\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n @Input() public items: CheckboxesModel[];\n @Input() public errorMessage: ErrorMessagesModel;\n\n public columns: CheckboxesModel[][];\n\n public ngOnInit() {\n this.columns = this.setColumns();\n }\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n\n public onChecked(checked: boolean, value: string) {\n const formControl = this.group.get(this.config.name);\n const array = formControl.value ? formControl.value : [];\n\n if (!checked) {\n const modifiedArray = array.filter((item: string) => item !== value);\n formControl.setValue(modifiedArray);\n } else {\n formControl.setValue([...array, value]);\n }\n }\n\n public isChecked(value: string) {\n const formControl = this.group.get(this.config.name);\n return formControl.value && formControl.value.includes(value);\n }\n\n private setColumns(): CheckboxesModel[][] {\n if (this.config.rows && this.config.rows > 1) {\n const array: CheckboxesModel[][] = [];\n\n for (let i = 0; i < this.items.length; i += this.config.rows) {\n const arrayChunk = this.items.slice(i, i + this.config.rows);\n array.push(arrayChunk);\n }\n\n return array;\n } else {\n return [this.items];\n }\n }\n}\n","<div class=\"govuk-form-group\" [ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\" [formGroup]=\"formGroup\">\n <div class=\"date-input-container\">\n <xuilib-gov-uk-fieldset\n [config]=\"{\n legend: config.label || 'Date component',\n classes: config.classes || 'govuk-label--m',\n id: config.id,\n hint: config.hint != null ? config.hint : 'For example, 12 11 2007',\n isPageHeading: config.isPageHeading || false}\"\n [errorMessage]=\"errorMessage\">\n @if (errorMessage) {\n <xuilib-gov-uk-error-message\n [config]=\"{id: 'passport'}\"\n [errorMessage]=\"errorMessage\">\n </xuilib-gov-uk-error-message>\n }\n <div class=\"govuk-date-input\" [id]=\"config.id+'-date'\">\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <xuilib-gov-label\n [config]=\"{label: 'Day' | rpxTranslate, name: config.id+'-day', id: config.id+'-day', classes: 'govuk-date-input__label'}\">\n </xuilib-gov-label>\n <input class=\"govuk-input govuk-date-input__input govuk-input--width-2\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id+'-day'\"\n [name]=\"config.id+'-day'\" type=\"text\" value=\"\" pattern=\"\\d*\" maxlength=\"2\"\n [formControlName]=\"config.id+'_day'\">\n </div>\n </div>\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <xuilib-gov-label\n [config]=\"{label: 'Month' | rpxTranslate, name: config.id+'-month', id: config.id+'-month', classes: 'govuk-date-input__label'}\">\n </xuilib-gov-label>\n <input class=\"govuk-input govuk-date-input__input govuk-input--width-2\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id+'-month'\"\n [name]=\"config.id+'-month'\" type=\"text\" value=\"\" pattern=\"\\d*\" maxlength=\"2\"\n [formControlName]=\"config.id+'_month'\">\n </div>\n </div>\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <xuilib-gov-label\n [config]=\"{label: 'Year' | rpxTranslate, name: config.id+'-year', id: config.id+'-year', classes: 'govuk-date-input__label'}\">\n </xuilib-gov-label>\n <input class=\"govuk-input govuk-date-input__input govuk-input--width-4\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id+'-year'\"\n [name]=\"config.id+'-year'\" type=\"text\" value=\"\" pattern=\"\\d*\" maxlength=\"4\"\n [formControlName]=\"config.id+'_year'\">\n </div>\n </div>\n </div>\n </xuilib-gov-uk-fieldset>\n </div>\n</div>\n","import {\n Component,\n Input,\n OnInit\n} from '@angular/core';\nimport { ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { ErrorMessagesModel } from '../../models/error-messages-model';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n * Gov UK Date Component\n * Responsible for displaying 3 input fields:\n * day / month / year\n * displaying errorMessage messages\n * */\n@Component({\n selector: 'xuilib-gov-uk-date',\n templateUrl: './gov-uk-date.component.html',\n styleUrls: ['./gov-uk-date.component.scss'],\n standalone: false\n})\nexport class GovUkDateComponent implements OnInit {\n constructor() {}\n @Input() public config: GovUiConfigModel;\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public formGroup: any;\n @Input() public isOptional: boolean = false;\n\n public month: any;\n public day: any;\n public year: any;\n\n public ngOnInit(): void {\n this.day = `${this.config.id}_day`;\n this.month = `${this.config.id}_month`;\n this.year = `${this.config.id}_year`;\n const dateValidator = this.DateValidator();\n this.formGroup.get(this.day).setValidators(dateValidator);\n }\n\n private isValidDate(d: Date, month: number, year: number): boolean {\n const dateCheck = !isNaN(d.getTime());\n // Month mismatch occurs if the provided day or month are invalid, or either is omitted. **Note:** This is insufficient for\n // checking date validity when the year is omitted because it defaults to 1900 - an extra check is required\n const monthMatch = d.getMonth() === month;\n const yearMatch = d.getFullYear() === year;\n return dateCheck && monthMatch && yearMatch;\n }\n\n private isEmpty(value: any) {\n // Note: Intentional use of == to check for null or undefined\n /* eslint-disable eqeqeq */\n /* tslint:disable:triple-equals */\n // NaN and < 0 checks required for month field\n return value == null || value === '' || isNaN(value) || value < 0;\n /* eslint-enable eqeqeq */\n /* tslint:enable:triple-equals */\n }\n\n public DateValidator(): ValidatorFn {\n return (): ValidationErrors | null => {\n const day = this.formGroup.get(this.day).value;\n const month = this.formGroup.get(this.month).value - 1;\n const year = this.formGroup.get(this.year).value;\n // Validation should pass if the date field is optional and day, month, and year are all empty\n if (this.isOptional && this.isEmpty(day) && this.isEmpty(month) && this.isEmpty(year)) {\n return null;\n }\n const validDay = this.formGroup.get(this.day).valid;\n const validMonth = this.formGroup.get(this.month).valid;\n const validYear = this.formGroup.get(this.year).valid;\n\n if (!validDay || !validMonth || !validYear) {\n return { dateComponent: true };\n }\n // + to coerce year to a number\n return !this.isValidDate(new Date(year, month, day), month, +year) ? { dateComponent: true } : null;\n };\n }\n}\n","<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 @if (config.hint) {\n <span [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n </span>\n }\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n @if (reloadInput) {\n <input class=\"govuk-file-upload\"\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 }\n</div>\n","import {Component, Input, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\nimport {HtmlTemplatesHelper} from '../../util/helpers/html-templates.helper';\n/*\n* Gov UK Input component\n* Responsible for displaying input, hint and error messages\n* @prop errorMessages - array of messages\n* @prop focusOn - passing the FormGroup\n* @prop config - adding configuration\n* */\n@Component({\n selector: 'xuilib-gov-uk-file-upload',\n templateUrl: './gov-uk-file-upload.component.html',\n standalone: false\n})\nexport class GovUkFileUploadComponent implements OnInit {\n constructor() { }\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n // { label: string, hint: string; name: string; id: string, type: string; isPageHeading: boolean, classes: string };\n\n public reloadInput = true;\n\n public ngOnInit(): void {\n this.config.classes = 'govuk-label--m';\n }\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\n/*\n* Gov Uk Radio state-less Component responsible for\n* displaying radios input and hint\n*\n* */\n@Component({\n selector: 'xuilib-gov-radio',\n templateUrl: './gov-uk-radio.component.html',\n standalone: false\n})\nexport class GovUkRadioComponent implements OnInit {\n constructor() { }\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n // {value: string, label: string, hint: string; name: string; focusOn: string; id: string; classes: string}; // TODO create interface\n\n public id: string;\n /*\n * ngOnInIt\n * needed to manage the focus id if passed on in config\n * si it can focus on element when user clicks on error message in the header.\n **/\n public ngOnInit(): void {\n const id = this.config.focusOn ? this.config.focusOn : this.config.value;\n this.config.id = id;\n this.config.classes = this.config.classes ?\n this.config.classes.concat(' govuk-radios__label') : 'govuk-radios__label';\n }\n\n}\n","<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","<xuilib-gov-uk-form-group-wrapper\n [error]=\"errors\"\n [config]=\"options.config\"\n [group]=\"options.key\">\n <div class=\"govuk-radios\">\n @for (item of options.items; track item) {\n <xuilib-gov-radio\n appRemoveHost\n [group]=\"options.group\"\n [config]=\"item\">\n </xuilib-gov-radio>\n }\n </div>\n</xuilib-gov-uk-form-group-wrapper>","import { Component, Input } from '@angular/core';\nimport { ErrorMessagesModel } from '../../models';\nimport { RadioButtonsModel } from '../../models/radio-buttons.model';\n/*\n* Radios component - state less\n* Responsible for displaying a list of gov-uk-radio components\n* @param: options - object with data for wrapper (fieldset) and\n* array of items for gov-uk-checkboxes\n* @param: errors - array of error stings\n* */\n@Component({\n selector: 'xuilib-gov-uk-radios',\n templateUrl: './gov-uk-radios.component.html',\n standalone: false\n})\n\nexport class GovUkRadiosComponent {\n\n @Input() public options: RadioButtonsModel;\n @Input() public errors: ErrorMessagesModel;\n\n}\n","<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 @if (config.hint) {\n <span [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 <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 @for (item of items; track item) {\n <option value=\"{{item.value}}\">{{item.label | rpxTranslate}}</option>\n }\n </select>\n</div>\n","import {Component, Input} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\nimport {HtmlTemplatesHelper} from '../../util/helpers/html-templates.helper';\n/*\n* Gov Uk Select Dumb Component responsible for\n* dropdown input.\n* */\n@Component({\n selector: 'xuilib-gov-select',\n templateUrl: './gov-uk-select.component.html',\n standalone: false\n})\nexport class GovUkSelectComponent {\n constructor() {}\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public group: FormGroup;\n @Input() public config: GovUiConfigModel;\n // {hint: string; name: string; id: string, isPageHeading: boolean, classes: string };\n @Input() public items: { label: string, value: string; id: string; }[];\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","<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 @for (h of columnConfig; track h) {\n <th class=\"govuk-table__header\" scope=\"col\">{{h.header | rpxTranslate}}</th>\n }\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n @for (r of rows; track r) {\n <tr data-selector=\"table-row\" class=\"govuk-table__row\">\n @for (col of columnConfig; track col; let isFirst = $first) {\n @if (isFirst && firstCellIsHeader) {\n <th data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" >\n @if (!col.type || col.type === 'text' || !r.routerLink) {\n {{r[col.key] | rpxTranslate}}\n }\n @if (col.type === 'link' && r.routerLink) {\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key] | rpxTranslate}}</a>\n }\n </th>\n }\n @if (!(isFirst && firstCellIsHeader)) {\n <td data-selector=\"table-cell\" class=\"govuk-table__cell\" >\n @if (col.type === 'date') {\n {{formatDate(r[col.key]) | rpxTranslate}}\n }\n @if (!col.type || col.type === 'text' || !r.routerLink) {\n {{r[col.key] | rpxTranslate}}\n }\n @if (col.type === 'link' && r.routerLink) {\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key] | rpxTranslate}}</a>\n }\n </td>\n }\n }\n </tr>\n }\n </tbody>\n</table>\n","import {formatDate} from '@angular/common';\nimport {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'xuilib-gov-uk-table',\n templateUrl: './gov-uk-table.component.html',\n styleUrls: ['./gov-uk-table.component.scss'],\n standalone: false\n})\nexport class GovukTableComponent {\n\n @Input() public classes = '';\n @Input() public caption = 'Dates and amounts';\n @Input() public firstCellIsHeader = true;\n @Input() public rows: any;\n @Input() public columnConfig: GovukTableColumnConfig[] = [\n { header: 'Date', key: 'date', type: 'text' },\n { header: 'Amount', key: 'amount' }\n ];\n\n constructor() { }\n\n public formatDate(date: Date): string {\n return formatDate(date, 'dd/MM/yyyy', 'en-UK');\n }\n\n}\n\nexport class GovukTableColumnConfig {\n public header: string;\n public key: string;\n public type?: string;\n constructor() {\n this.header = '';\n this.key = '';\n this.type = 'text';\n }\n }\n","import {Component, Input} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport { ErrorMessagesModel } from '../../models';\nimport { GovUiConfigModel } from '../../models/gov-ui-config-model';\nimport {HtmlTemplatesHelper} from '../../util/helpers/html-templates.helper';\n/*\n* CheckBox component - state less\n* Responsible for displaying a list of gov-uk-checkboxes\n* @param: options - object with data for wrapper (fieldset) and\n* array of items for gov-uk-checkboxes\n* @param: errors - array of errorMessage\n* */\n@Component({\n selector: 'xuilib-gov-uk-textarea',\n templateUrl: './gov-uk-textarea.component.html',\n standalone: false\n})\nexport class GovUkTextareaComponent {\n @Input() public config: GovUiConfigModel;\n // {label: string; classes: string; hint: string; key: string; rows: number, id: string};\n @Input() public errorMessage: ErrorMessagesModel;\n @Input() public group: FormGroup;\n\n public setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n\n}\n","<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","@if (message && type) {\n @if (title) {\n <div\n class=\"hmcts-banner-title hmcts-banner-title--{{ type }}\">\n {{ title }}\n </div>\n }\n <div class=\"hmcts-banner hmcts-banner--{{ type }}\">\n @if (showMessageIcon) {\n @switch (type) {\n @case ('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 }\n @case ('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 }\n @case ('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 }\n }\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}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-banner',\n templateUrl: './hmcts-banner.component.html',\n styleUrls: ['./hmcts-banner.component.scss'],\n standalone: false\n})\nexport class HmctsBannerComponent {\n @Input() public message: string;\n @Input() public type: 'warning' | 'success' | 'information';\n @Input() public title?: string = '';\n @Input() public showMessageIcon?: boolean = false;\n @Input() public messageBoldText?: boolean = false;\n}\n","@if (value) {\n <div class=\"hmcts-identity-bar\">\n <div class=\"hmcts-identity-bar__container\">\n <div class=\"hmcts-identity-bar__details\">\n <span class=\"hmcts-identity-bar__title\">{{value | rpxTranslate}}</span>\n </div>\n </div>\n </div>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-identity-bar',\n templateUrl: './hmcts-identity-bar.component.html',\n styleUrls: ['./hmcts-identity-bar.component.scss'],\n standalone: false\n})\nexport class HmctsIdentityBarComponent {\n\n @Input() public set content(value: any) {\n this.value = value.name;\n }\n\n public value: string;\n\n constructor() { }\n}\n","@if (hasBackLink) {\n <a [routerLink]=\"backLink\" (click)=\"onGoBack()\" class=\"govuk-back-link\">{{'Back' | rpxTranslate}}</a>\n}\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 @if (summaryErrors && !summaryErrors.isFromValid) {\n <xuilib-hmcts-error-summary\n [errorMessages]=\"summaryErrors.items\"\n [header]=\"summaryErrors.header\"\n [showWarningMessage]=\"showWarningMessage\">\n </xuilib-hmcts-error-summary>\n }\n @if (bannerData) {\n <xuilib-hmcts-banner\n [type]=\"bannerData.type\"\n [message]=\"bannerData.message\"\n ></xuilib-hmcts-banner>\n }\n @if (title) {\n <h1 class=\"govuk-heading-xl\">{{title | rpxTranslate}}</h1>\n }\n <ng-content></ng-content>\n </div>\n @if (actionButtons?.length > 0) {\n <div class=\"govuk-grid-column-one-third\">\n <div class=\"hmcts-page-heading__actions-wrapper\">\n @for (actionButton of actionButtons; track actionButton) {\n <a\n (click)=\"actionButton.action()\"\n role=\"button\"\n draggable=\"false\"\n class=\"govuk-button {{ actionButton.class }}\"\n >{{ actionButton.name | rpxTranslate }}</a>\n }\n </div>\n </div>\n }\n </div>\n</main>\n","import {Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { HmctsBannerInfo } from '../hmcts-banner/hmcts-banner-info.interface';\n/*\n* Main Content wrapper\n* Responsible for:\n * Wrapping content within the gov-uk html elements bellow\n * @prop showBackLink - switch for back link\n * @prop title = title\n * @prop summaryErrors list of errors\n* @prop back link, title (title), summaryErrors (array of errors)\n* */\n@Component({\n selector: 'xuilib-hmcts-main-wrapper',\n templateUrl: './hmcts-main-wrapper.component.html',\n standalone: false\n})\nexport class HmctsMainWrapperComponent implements OnInit {\n public bannerData: HmctsBannerInfo;\n\n @Input() public backLink: string;\n @Input() public title: string;\n @Input() public summaryErrors: {header: string; isFromValid: boolean; items: { id: string; message: any; }[]};\n @Input() public set banner(value: HmctsBannerInfo) {\n this.bannerData = value;\n }\n @Input() public actionButtons: {name: string, class: string, action(): {}}[];\n @Input() public showWarningMessage: boolean;\n\n @Output() public backEvent = new EventEmitter<void>();\n public hasBackLink: boolean;\n\n constructor() {\n }\n\n public ngOnInit() {\n this.hasBackLink = this.backLink !== undefined || this.backEvent.observers.length > 0;\n }\n\n public onGoBack() {\n this.backEvent.emit();\n }\n}\n","@if (isUserLoggedIn) {\n <nav class=\"hmcts-primary-navigation\" [attr.aria-label]=\"label\">\n <div class=\"hmcts-primary-navigation__container\">\n @if (isBrandedHeader) {\n <div class=\"govuk-header__logo\"></div>\n }\n <ul class=\"hmcts-primary-navigation__list\">\n @for (item of items; track item) {\n <li class=\"hmcts-primary-navigation__item\" >\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 }\n </ul>\n </div>\n </nav>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-primary-navigation',\n templateUrl: './hmcts-primary-navigation.component.html',\n styleUrls: ['./hmcts-primary-navigation.component.scss'],\n standalone: false\n})\nexport class HmctsPrimaryNavigationComponent {\n\n @Input() public set userLoggedIn(value: any) {\n this.isUserLoggedIn = value;\n }\n\n @Input() public label: string;\n @Input() public items: {active: boolean, href: string, text: string}[];\n @Input() public isBrandedHeader: boolean;\n\n public isUserLoggedIn: boolean;\n constructor() {\n\n }\n\n}\n","@if (items) {\n <nav class=\"hmcts-sub-navigation\" attr.aria-label=\"{{label}}\" role=\"navigation\">\n <ul class=\"hmcts-sub-navigation__list\">\n @for (item of items; track item) {\n <li class=\"hmcts-sub-navigation__item\">\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 @if (item.roundel && item.roundel > 0 ) {\n <span class=\"xui-alert-link__number\"> {{item.roundel}} </span>\n }\n </a>\n </li>\n }\n </ul>\n </nav>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'xuilib-hmcts-sub-navigation',\n styleUrls: ['hmcts-sub-navigation.component.scss'],\n templateUrl: './hmcts-sub-navigation.component.html',\n standalone: false\n})\nexport class HmctsSubNavigationComponent {\n @Input() public label: string;\n @Input() public items: SubNavigation[];\n}\n\nexport interface SubNavigation {\n text: string;\n href: string;\n active: boolean;\n total?: number;\n roundel?: number;\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatLegacyAutocompleteModule as MatAutocompleteModule } from '@angular/material/legacy-autocomplete';\nimport { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';\nimport { MatLegacyTabsModule as MatTabsModule } from '@angular/material/legacy-tabs';\nimport { RouterModule } from '@angular/router';\nimport { NgxPaginationModule, PaginatePipe } from 'ngx-pagination';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { AccessibilityComponent } from './components/accessibility/accessibility.component';\nimport { CheckboxListComponent } from './components/checkbox-list/checkbox-list.component';\nimport { ContactDetailsComponent } from './components/contact-details/contact-details.component';\nimport { CookieBannerComponent } from './components/cookie-banner/cookie-banner.component';\nimport { DueDateComponent } from './components/due-date/due-date.component';\nimport { ExuiPageWrapperComponent } from './components/exui-main-wrapper/exui-page-wrapper.component';\nimport { FindLocationComponent } from './components/find-location/find-location.component';\nimport { FindPersonComponent } from './components/find-person/find-person.component';\nimport { FindServiceComponent } from './components/find-service/find-service.component';\nimport { FindTaskNameComponent } from './components/find-task-name/find-task-name.component';\nimport { GenericFilterComponent } from './components/generic-filter/generic-filter.component';\nimport { HmctsSessionDialogComponent } from './components/hmcts-session-dialog/hmcts-session-dialog.component';\nimport { InviteUserFormComponent } from './components/invite-user-form/invite-user-form.component';\nimport { InviteUserPermissionComponent } from './components/invite-user-permissions/invite-user-permission.component';\nimport { LoadingSpinnerComponent } from './components/loading-spinner/loading-spinner.component';\nimport { PaginationComponent } from './components/pagination/pagination.component';\nimport { SearchJudicialsComponent } from './components/search-judicials/search-judicials.component';\nimport { SearchLocationComponent } from './components/search-location/search-location.component';\nimport { SearchServiceComponent } from './components/search-service/search-service.component';\nimport { SearchVenueComponent } from './components/search-venue/search-venue.component';\nimport { SelectedCaseConfirmComponent } from './components/selected-case-confirm/selected-case-confirm.component';\nimport { SelectedCaseListComponent } from './components/selected-case-list/selected-case-list.component';\nimport { SelectedCaseComponent } from './components/selected-case/selected-case.component';\nimport { ServiceMessageComponent } from './components/service-message/service-message.component';\nimport { ServiceMessagesComponent } from './components/service-messages/service-messages.component';\nimport { ShareCaseConfirmComponent } from './components/share-case-confirm/share-case-confirm.component';\nimport { ShareCaseComponent } from './components/share-case/share-case.component';\nimport { TabComponent } from './components/tab/tab.component';\nimport { TcConfirmComponent } from './components/tc-confirm/tc-confirm.component';\nimport {\n TcDisplayHtmlComponent\n} from './components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component';\nimport {\n TcDisplayPlainComponent\n} from './components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component';\nimport { TermsAndConditionsComponent } from './components/terms-and-conditions/terms-and-conditions.component';\nimport { UserDetailsComponent } from './components/user-details/user-details.component';\nimport { UserListComponent } from './components/user-list/user-list.component';\nimport { UserSelectComponent } from './components/user-select/user-select.component';\nimport { WriteAddressInputsComponent } from './components/write-address-inputs/write-address-inputs.component';\nimport { WriteAddressFieldComponent } from './components/write-address/write-address.component';\nimport { FeatureToggleDirective } from './directives/feature-toggle/feature-toggle.directive';\nimport { LetDirective } from './directives/let/let.directive';\nimport { GovUkCheckboxComponent } from './gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component';\nimport { GovUkCheckboxesComponent } from './gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component';\nimport { GovUkDateComponent } from './gov-ui/components/gov-uk-date/gov-uk-date.component';\nimport { GovUkErrorMessageComponent } from './gov-ui/components/gov-uk-error-message/gov-uk-error-message.component';\nimport { GovUkFieldsetComponent } from './gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component';\nimport { GovUkFileUploadComponent } from './gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component';\nimport {\n GovUkFormGroupWrapperComponent\n} from './gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component';\nimport { GovUkInputComponent } from './gov-ui/components/gov-uk-input/gov-uk-input.component';\nimport { GovUkLabelComponent } from './gov-ui/components/gov-uk-label/gov-uk-label.component';\nimport { GovUkRadioComponent } from './gov-ui/components/gov-uk-radio/gov-uk-radio.component';\nimport { GovUkRadiosComponent } from './gov-ui/components/gov-uk-radios/gov-uk-radios.component';\nimport { GovUkSelectComponent } from './gov-ui/components/gov-uk-select/gov-uk-select.component';\nimport { GovukTableComponent } from './gov-ui/components/gov-uk-table/gov-uk-table.component';\nimport { GovUkTextareaComponent } from './gov-ui/components/gov-uk-textarea/gov-uk-textarea.component';\nimport { HmctsBannerComponent } from './gov-ui/components/hmcts-banner/hmcts-banner.component';\nimport { HmctsErrorSummaryComponent } from './gov-ui/components/hmcts-error-summary/hmcts-error-summary.component';\nimport { HmctsIdentityBarComponent } from './gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component';\nimport { HmctsMainWrapperComponent } from './gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component';\nimport { HmctsPaginationComponent } from './gov-ui/components/hmcts-pagination/hmcts-pagination.component';\nimport {\n HmctsPrimaryNavigationComponent\n} from './gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component';\nimport { HmctsSubNavigationComponent } from './gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component';\nimport { RemoveHostDirective } from './gov-ui/directives/remove-host.directive';\nimport { CapitalizePipe } from './pipes';\nimport { windowProvider, windowToken } from './window';\n\nexport const COMMON_COMPONENTS = [\n ExuiPageWrapperComponent,\n TermsAndConditionsComponent,\n TcDisplayHtmlComponent,\n TcDisplayPlainComponent,\n TcConfirmComponent,\n ContactDetailsComponent,\n FeatureToggleDirective,\n LetDirective,\n HmctsSessionDialogComponent,\n UserListComponent,\n UserDetailsComponent,\n InviteUserPermissionComponent,\n InviteUserFormComponent,\n ShareCaseComponent,\n ShareCaseConfirmComponent,\n SelectedCaseListComponent,\n SelectedCaseComponent,\n SelectedCaseConfirmComponent,\n UserSelectComponent,\n TabComponent,\n AccessibilityComponent,\n DueDateComponent,\n CheckboxListComponent,\n ServiceMessageComponent,\n ServiceMessagesComponent,\n LoadingSpinnerComponent,\n GenericFilterComponent,\n CookieBannerComponent,\n FindPersonComponent,\n SearchJudicialsComponent,\n FindLocationComponent,\n FindTaskNameComponent,\n SearchLocationComponent,\n FindServiceComponent,\n SearchServiceComponent,\n SearchVenueComponent,\n PaginationComponent,\n WriteAddressFieldComponent,\n WriteAddressInputsComponent\n];\n\nexport const GOV_UI_COMPONENTS = [\n HmctsIdentityBarComponent,\n HmctsPaginationComponent,\n HmctsSubNavigationComponent,\n HmctsPrimaryNavigationComponent,\n HmctsErrorSummaryComponent,\n HmctsMainWrapperComponent,\n HmctsBannerComponent,\n GovukTableComponent,\n GovUkInputComponent,\n GovUkCheckboxComponent,\n GovUkFormGroupWrapperComponent,\n GovUkLabelComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkDateComponent,\n GovUkCheckboxesComponent,\n GovUkRadioComponent,\n GovUkRadiosComponent,\n GovUkSelectComponent,\n GovUkTextareaComponent,\n GovUkFileUploadComponent,\n RemoveHostDirective\n];\n\nconst pipes = [\n CapitalizePipe\n];\n\n@NgModule({\n declarations: [\n ...COMMON_COMPONENTS,\n ...GOV_UI_COMPONENTS,\n ...pipes\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule.forChild([]),\n MatAutocompleteModule,\n MatTabsModule,\n MatInputModule,\n NgxPaginationModule,\n RpxTranslationModule.forChild()\n ],\n providers: [\n {provide: windowToken, useFactory: windowProvider}\n ],\n exports: [\n ...COMMON_COMPONENTS,\n ...GOV_UI_COMPONENTS,\n PaginatePipe,\n ...pipes\n ]\n})\nexport class ExuiCommonLibModule {\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GovUiService {\n\n constructor() { }\n}\n","import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function checkboxesBeCheckedValidator(minRequired = 1): ValidatorFn {\n return function validate(formGroup: FormGroup) {\n let checked = 0;\n\n Object.keys(formGroup.controls).forEach(key => {\n const control = formGroup.controls[key];\n\n if (control.value === true) {\n checked ++;\n }\n });\n\n if (checked < minRequired) {\n return {\n requireOneCheckboxToBeChecked: true,\n };\n }\n\n return null;\n };\n}\n","import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function dateValidator(): ValidatorFn {\n return function validate(formGroup: FormGroup) {\n\n const d = new Date(\n parseInt(formGroup.controls.day.value, 10),\n parseInt(formGroup.controls.month.value, 10) - 1,\n parseInt(formGroup.controls.year.value, 10) - 1\n );\n\n function isValidDate(val: any) {\n return val instanceof Date && !isNaN( +d );\n }\n\n if (!isValidDate(d)) {\n return {\n dateIsInvalid: true,\n };\n }\n\n return null;\n };\n}\n","import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function radioGroupValidator(): ValidatorFn {\n return function validate(formGroup: FormGroup) {\n if (formGroup.controls) {\n for (const control in formGroup.controls) {\n if (!formGroup.controls[control].valid) {\n return {\n isRadioGroupInvalid: true,\n };\n }\n }\n }\n\n\n return null;\n };\n}\n","/*\n * Public API Surface of gov-ui\n */\n\nexport * from './checkboxes-be-checked.validator';\nexport * from './date.validator';\nexport * from './radio-group.validator';\n","/*\n * Public API Surface of gov-ui\n */\n\nexport * from './checkboxes-model';\nexport * from './error-messages-model';\nexport * from './gov-ui-config-model';\n","/*\n * Public API Surface of gov-ui\n */\n\nexport * from './directives/remove-host.directive';\nexport * from './gov-ui.service';\nexport * from './validators';\nexport * from './components';\nexport * from './models';\n","/*\n * Public API Surface of exui-common-lib\n */\n\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/exui-common-lib.module';\nexport * from './lib/gov-ui';\nexport * from './lib/models';\nexport * from './lib/pipes';\nexport * from './lib/services';\nexport * from './lib/window';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FeatureToggleService","i2","i1","i1.RoleService","of","i1.RefDataDataAccessService","i2.SessionStorageService","_c1","_c2","i1.FindAPersonService","_c0","i1.LocationService","i3.RefDataService","i1.TaskNameService","i1.FilterService","_c3","_forTrack0","i1.CaseSharingStateService","i1.AddressService","MatAutocompleteModule","MatTabsModule","MatInputModule"],"mappings":"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"}