@hmcts/rpx-xui-common-lib 2.1.6-angular-upgrade-11-welsh → 2.1.6-javascript-void
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/hmcts-rpx-xui-common-lib.mjs +5 -0
- package/esm2022/lib/components/accessibility/accessibility.component.mjs +833 -0
- package/esm2022/lib/components/checkbox-list/checkbox-list.component.mjs +232 -0
- package/esm2022/lib/components/contact-details/contact-details.component.mjs +123 -0
- package/esm2022/lib/components/cookie-banner/cookie-banner.component.mjs +151 -0
- package/esm2022/lib/components/due-date/due-date.component.mjs +141 -0
- package/esm2022/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +80 -0
- package/esm2022/lib/components/find-location/find-location.component.mjs +220 -0
- package/esm2022/lib/components/find-person/find-person.component.mjs +234 -0
- package/esm2022/lib/components/find-service/find-service.component.mjs +193 -0
- package/esm2022/lib/components/find-task-name/find-task-name.component.mjs +200 -0
- package/esm2022/lib/components/generic-filter/generic-filter-utils.mjs +21 -0
- package/esm2022/lib/components/generic-filter/generic-filter.component.mjs +1224 -0
- package/esm2022/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +56 -0
- package/esm2022/lib/components/invite-user-form/invite-user-form.component.mjs +51 -0
- package/esm2022/lib/components/invite-user-permissions/invite-user-permission.component.mjs +54 -0
- package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +33 -0
- package/esm2022/lib/components/pagination/pagination.component.mjs +92 -0
- package/esm2022/lib/components/public_api.mjs +39 -0
- package/esm2022/lib/components/search-judicials/search-judicials.component.mjs +185 -0
- package/esm2022/lib/components/search-location/search-location.component.mjs +240 -0
- package/esm2022/lib/components/search-service/search-service.component.mjs +94 -0
- package/esm2022/lib/components/search-venue/search-venue.component.mjs +188 -0
- package/esm2022/lib/components/selected-case/selected-case.component.mjs +381 -0
- package/esm2022/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +135 -0
- package/esm2022/lib/components/selected-case-list/selected-case-list.component.mjs +98 -0
- package/esm2022/lib/components/service-message/service-message.component.mjs +62 -0
- package/esm2022/lib/components/service-messages/service-messages.component.mjs +163 -0
- package/esm2022/lib/components/share-case/share-case.component.mjs +427 -0
- package/esm2022/lib/components/share-case-confirm/share-case-confirm.component.mjs +85 -0
- package/esm2022/lib/components/tab/tab.component.mjs +40 -0
- package/esm2022/lib/components/tc-confirm/tc-confirm.component.mjs +66 -0
- package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +17 -0
- package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +17 -0
- package/esm2022/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +58 -0
- package/esm2022/lib/components/user-details/user-details.component.mjs +276 -0
- package/esm2022/lib/components/user-list/user-list.component.mjs +100 -0
- package/esm2022/lib/components/user-select/user-select.component.mjs +94 -0
- package/esm2022/lib/components/write-address/write-address.component.mjs +342 -0
- package/esm2022/lib/components/write-address-inputs/write-address-inputs.component.mjs +165 -0
- package/esm2022/lib/directives/feature-toggle/feature-toggle.directive.mjs +41 -0
- package/esm2022/lib/directives/let/let.directive.mjs +29 -0
- package/esm2022/lib/exui-common-lib.module.mjs +313 -0
- package/esm2022/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +55 -0
- package/esm2022/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +137 -0
- package/esm2022/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +127 -0
- package/esm2022/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +46 -0
- package/esm2022/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +79 -0
- package/esm2022/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +79 -0
- package/esm2022/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +45 -0
- package/esm2022/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +71 -0
- package/esm2022/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +84 -0
- package/esm2022/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +48 -0
- package/esm2022/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +42 -0
- package/esm2022/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +80 -0
- package/esm2022/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +185 -0
- package/esm2022/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +57 -0
- package/esm2022/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs +2 -0
- package/esm2022/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +111 -0
- package/esm2022/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +140 -0
- package/esm2022/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +34 -0
- package/esm2022/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +129 -0
- package/esm2022/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +204 -0
- package/esm2022/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +60 -0
- package/esm2022/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +58 -0
- package/esm2022/lib/gov-ui/directives/remove-host.directive.mjs +30 -0
- package/esm2022/lib/gov-ui/gov-ui.service.mjs +14 -0
- package/esm2022/lib/gov-ui/models/checkboxes-model.mjs +2 -0
- package/{esm2015/lib/gov-ui/models/gov-ui-config-model.js → esm2022/lib/gov-ui/models/gov-ui-config-model.mjs} +1 -1
- package/{esm2015/lib/gov-ui/models/public_api.js → esm2022/lib/gov-ui/models/public_api.mjs} +1 -2
- package/esm2022/lib/gov-ui/models/radio-buttons.model.mjs +2 -0
- package/esm2022/lib/gov-ui/util/helpers/html-templates.helper.mjs +22 -0
- package/{esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js → esm2022/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs} +1 -1
- package/{esm2015/lib/gov-ui/validators/date.validator.js → esm2022/lib/gov-ui/validators/date.validator.mjs} +1 -1
- package/esm2022/lib/gov-ui/validators/radio-group.validator.mjs +15 -0
- package/esm2022/lib/models/address-message.enum.mjs +11 -0
- package/esm2022/lib/models/address-option.model.mjs +21 -0
- package/esm2022/lib/models/address.model.mjs +4 -0
- package/{esm2015/lib/models/contact-details.model.js → esm2022/lib/models/contact-details.model.mjs} +1 -1
- package/esm2022/lib/models/feature-user.mjs +5 -0
- package/esm2022/lib/models/filter.model.mjs +3 -0
- package/esm2022/lib/models/index.mjs +19 -0
- package/esm2022/lib/models/location.model.mjs +7 -0
- package/esm2022/lib/models/person.model.mjs +21 -0
- package/{esm2015/lib/models/public_api.js → esm2022/lib/models/public_api.mjs} +2 -1
- package/{esm2015/lib/models/search-options.model.js → esm2022/lib/models/search-options.model.mjs} +1 -1
- package/esm2022/lib/models/service-message.model.mjs +2 -0
- package/esm2022/lib/models/task-name.model.mjs +2 -0
- package/esm2022/lib/models/user-access-type.model.mjs +2 -0
- package/esm2022/lib/models/user-details.model.mjs +2 -0
- package/esm2022/lib/pipes/capitalize/capitalize.pipe.mjs +15 -0
- package/esm2022/lib/pipes/index.mjs +2 -0
- package/esm2022/lib/services/address/address-parser.mjs +76 -0
- package/esm2022/lib/services/address/address-type.enum.mjs +7 -0
- package/esm2022/lib/services/address/address.service.mjs +55 -0
- package/esm2022/lib/services/case-sharing-state/case-sharing-state.service.mjs +170 -0
- package/esm2022/lib/services/cookie/cookie.service.mjs +48 -0
- package/esm2022/lib/services/feature-toggle/feature-toggle.guard.mjs +37 -0
- package/esm2022/lib/services/feature-toggle/feature-toggle.service.mjs +33 -0
- package/esm2022/lib/services/feature-toggle/launch-darkly.service.mjs +65 -0
- package/esm2022/lib/services/filter/filter.service.mjs +95 -0
- package/esm2022/lib/services/find-person/find-person.service.mjs +92 -0
- package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +73 -0
- package/esm2022/lib/services/google-tag-manager/google-tag-manager.service.mjs +85 -0
- package/{esm2015/lib/services/loading/loading.service.js → esm2022/lib/services/loading/loading.service.mjs} +8 -6
- package/esm2022/lib/services/locations/location.service.mjs +38 -0
- package/{esm2015/lib/services/manage-session/manage-session.services.js → esm2022/lib/services/manage-session/manage-session.services.mjs} +8 -10
- package/esm2022/lib/services/public-api.mjs +18 -0
- package/esm2022/lib/services/ref-data/index.mjs +4 -0
- package/esm2022/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs +2 -0
- package/esm2022/lib/services/ref-data/models/ref-data-region.model.mjs +2 -0
- package/esm2022/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs +2 -0
- package/esm2022/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +33 -0
- package/esm2022/lib/services/ref-data/ref-data.service.mjs +34 -0
- package/esm2022/lib/services/role-guard/role.guard.mjs +43 -0
- package/esm2022/lib/services/role-guard/role.service.mjs +22 -0
- package/esm2022/lib/services/storage/session-storage/session-storage.service.mjs +43 -0
- package/esm2022/lib/services/task-name/task-name.service.mjs +35 -0
- package/esm2022/lib/services/timeout-notifications/timeout-notifications.service.mjs +103 -0
- package/{esm2015/public-api.js → esm2022/public-api.mjs} +2 -1
- package/fesm2022/hmcts-rpx-xui-common-lib.mjs +10377 -0
- package/fesm2022/hmcts-rpx-xui-common-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/accessibility/accessibility.component.d.ts +7 -1
- package/lib/components/checkbox-list/checkbox-list.component.d.ts +8 -2
- package/lib/components/contact-details/contact-details.component.d.ts +3 -0
- package/lib/components/cookie-banner/cookie-banner.component.d.ts +5 -1
- package/lib/components/due-date/due-date.component.d.ts +8 -2
- package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +3 -0
- package/lib/components/find-location/find-location.component.d.ts +12 -6
- package/lib/components/find-person/find-person.component.d.ts +5 -2
- package/lib/components/find-service/find-service.component.d.ts +24 -9
- package/lib/components/find-task-name/find-task-name.component.d.ts +44 -0
- package/lib/components/generic-filter/generic-filter-utils.d.ts +2 -5
- package/lib/components/generic-filter/generic-filter.component.d.ts +25 -6
- package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +3 -0
- package/lib/components/invite-user-form/invite-user-form.component.d.ts +3 -0
- package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +3 -0
- package/lib/components/loading-spinner/loading-spinner.component.d.ts +8 -1
- package/lib/components/pagination/pagination.component.d.ts +3 -0
- package/lib/components/public_api.d.ts +6 -0
- package/lib/components/search-judicials/search-judicials.component.d.ts +3 -0
- package/lib/components/search-location/search-location.component.d.ts +25 -20
- package/lib/components/search-service/search-service.component.d.ts +16 -9
- package/lib/components/search-venue/search-venue.component.d.ts +3 -1
- package/lib/components/selected-case/selected-case.component.d.ts +3 -0
- package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +3 -0
- package/lib/components/selected-case-list/selected-case-list.component.d.ts +3 -0
- package/lib/components/service-message/service-message.component.d.ts +9 -4
- package/lib/components/service-messages/service-messages.component.d.ts +15 -5
- package/lib/components/share-case/share-case.component.d.ts +4 -0
- package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +3 -0
- package/lib/components/tab/tab.component.d.ts +3 -0
- package/lib/components/tc-confirm/tc-confirm.component.d.ts +3 -0
- package/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.d.ts +3 -0
- package/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.d.ts +3 -0
- package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +3 -0
- package/lib/components/user-details/user-details.component.d.ts +4 -0
- package/lib/components/user-list/user-list.component.d.ts +3 -0
- package/lib/components/user-select/user-select.component.d.ts +5 -3
- package/lib/components/write-address/write-address.component.d.ts +45 -0
- package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +16 -0
- package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +3 -0
- package/lib/directives/let/let.directive.d.ts +3 -0
- package/lib/exui-common-lib.module.d.ts +83 -4
- package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +17 -5
- package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +4 -2
- package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +4 -0
- package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +5 -2
- package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.d.ts +7 -0
- package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +7 -2
- package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +6 -3
- package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +3 -0
- package/lib/gov-ui/directives/remove-host.directive.d.ts +3 -0
- package/lib/gov-ui/gov-ui.service.d.ts +3 -0
- package/lib/gov-ui/models/checkboxes-model.d.ts +4 -7
- package/lib/gov-ui/models/gov-ui-config-model.d.ts +2 -0
- package/lib/gov-ui/models/public_api.d.ts +0 -1
- package/lib/gov-ui/models/radio-buttons.model.d.ts +9 -0
- package/lib/models/address-message.enum.d.ts +9 -0
- package/lib/models/address-option.model.d.ts +9 -0
- package/lib/models/address.model.d.ts +9 -0
- package/lib/models/contact-details.model.d.ts +4 -0
- package/lib/models/feature-user.d.ts +4 -6
- package/lib/models/filter.model.d.ts +42 -9
- package/lib/models/index.d.ts +4 -0
- package/lib/models/location.model.d.ts +12 -12
- package/lib/models/person.model.d.ts +5 -3
- package/lib/models/public_api.d.ts +1 -0
- package/lib/models/search-options.model.d.ts +1 -1
- package/lib/models/service-message.model.d.ts +8 -0
- package/lib/models/task-name.model.d.ts +4 -0
- package/lib/models/user-access-type.model.d.ts +6 -0
- package/lib/models/user-details.model.d.ts +2 -0
- package/lib/pipes/capitalize/capitalize.pipe.d.ts +7 -0
- package/lib/pipes/index.d.ts +1 -0
- package/lib/services/address/address-parser.d.ts +17 -0
- package/lib/services/address/address-type.enum.d.ts +5 -0
- package/lib/services/address/address.service.d.ts +15 -0
- package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +3 -0
- package/lib/services/cookie/cookie.service.d.ts +3 -0
- package/lib/services/feature-toggle/feature-toggle.guard.d.ts +8 -2
- package/lib/services/feature-toggle/feature-toggle.service.d.ts +4 -0
- package/lib/services/feature-toggle/launch-darkly.service.d.ts +14 -10
- package/lib/services/filter/filter.service.d.ts +6 -0
- package/lib/services/find-person/find-person.service.d.ts +5 -2
- package/lib/services/google-analytics/google-analytics.service.d.ts +4 -1
- package/lib/services/google-tag-manager/google-tag-manager.service.d.ts +5 -1
- package/lib/services/loading/loading.service.d.ts +3 -0
- package/lib/services/locations/location.service.d.ts +4 -1
- package/lib/services/manage-session/manage-session.services.d.ts +3 -0
- package/lib/services/public-api.d.ts +2 -0
- package/lib/services/ref-data/index.d.ts +3 -0
- package/lib/services/ref-data/models/ref-data-htmcs-service.model.d.ts +13 -0
- package/lib/services/ref-data/models/ref-data-region.model.d.ts +4 -0
- package/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.d.ts +8 -0
- package/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.d.ts +18 -0
- package/lib/services/ref-data/ref-data.service.d.ts +17 -0
- package/lib/services/role-guard/role.guard.d.ts +7 -3
- package/lib/services/role-guard/role.service.d.ts +8 -4
- package/lib/services/{session-storage → storage/session-storage}/session-storage.service.d.ts +3 -0
- package/lib/services/task-name/task-name.service.d.ts +17 -0
- package/lib/services/timeout-notifications/timeout-notifications.service.d.ts +8 -2
- package/package.json +21 -11
- package/public-api.d.ts +1 -0
- package/bundles/hmcts-rpx-xui-common-lib.umd.js +0 -5139
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +0 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +0 -2
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +0 -1
- package/esm2015/hmcts-rpx-xui-common-lib.js +0 -70
- package/esm2015/lib/components/accessibility/accessibility.component.js +0 -14
- package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +0 -177
- package/esm2015/lib/components/contact-details/contact-details.component.js +0 -17
- package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +0 -68
- package/esm2015/lib/components/due-date/due-date.component.js +0 -115
- package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +0 -28
- package/esm2015/lib/components/find-location/find-location.component.js +0 -124
- package/esm2015/lib/components/find-person/find-person.component.js +0 -118
- package/esm2015/lib/components/find-service/find-service.component.js +0 -31
- package/esm2015/lib/components/generic-filter/generic-filter-utils.js +0 -21
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +0 -387
- package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +0 -27
- package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +0 -25
- package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +0 -25
- package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +0 -18
- package/esm2015/lib/components/pagination/pagination.component.js +0 -28
- package/esm2015/lib/components/public_api.js +0 -33
- package/esm2015/lib/components/search-judicials/search-judicials.component.js +0 -126
- package/esm2015/lib/components/search-location/search-location.component.js +0 -133
- package/esm2015/lib/components/search-service/search-service.component.js +0 -31
- package/esm2015/lib/components/search-venue/search-venue.component.js +0 -123
- package/esm2015/lib/components/selected-case/selected-case.component.js +0 -158
- package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +0 -36
- package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +0 -49
- package/esm2015/lib/components/service-message/service-message.component.js +0 -22
- package/esm2015/lib/components/service-messages/service-messages.component.js +0 -48
- package/esm2015/lib/components/share-case/share-case.component.js +0 -205
- package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +0 -34
- package/esm2015/lib/components/tab/tab.component.js +0 -21
- package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +0 -22
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +0 -13
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +0 -13
- package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +0 -16
- package/esm2015/lib/components/user-details/user-details.component.js +0 -41
- package/esm2015/lib/components/user-list/user-list.component.js +0 -33
- package/esm2015/lib/components/user-select/user-select.component.js +0 -58
- package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +0 -42
- package/esm2015/lib/directives/let/let.directive.js +0 -30
- package/esm2015/lib/exui-common-lib.module.js +0 -160
- package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +0 -31
- package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +0 -21
- package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +0 -64
- package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +0 -22
- package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -28
- package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +0 -35
- package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +0 -23
- package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +0 -34
- package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +0 -21
- package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +0 -33
- package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +0 -21
- package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +0 -27
- package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +0 -39
- package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +0 -27
- package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +0 -23
- package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +0 -48
- package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +0 -19
- package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +0 -41
- package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +0 -28
- package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +0 -23
- package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +0 -15
- package/esm2015/lib/gov-ui/directives/remove-host.directive.js +0 -29
- package/esm2015/lib/gov-ui/gov-ui.service.js +0 -13
- package/esm2015/lib/gov-ui/models/banner-data-model.js +0 -2
- package/esm2015/lib/gov-ui/models/checkboxes-model.js +0 -2
- package/esm2015/lib/gov-ui/models/isession-storage.interface.js +0 -2
- package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +0 -22
- package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +0 -22
- package/esm2015/lib/gov-ui/validators/radio-group.validator.js +0 -15
- package/esm2015/lib/models/feature-user.js +0 -5
- package/esm2015/lib/models/filter.model.js +0 -3
- package/esm2015/lib/models/index.js +0 -15
- package/esm2015/lib/models/location.model.js +0 -7
- package/esm2015/lib/models/person.model.js +0 -19
- package/esm2015/lib/models/user-details.model.js +0 -2
- package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +0 -157
- package/esm2015/lib/services/cookie/cookie.service.js +0 -47
- package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +0 -35
- package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +0 -27
- package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +0 -59
- package/esm2015/lib/services/filter/filter.service.js +0 -64
- package/esm2015/lib/services/find-person/find-person.service.js +0 -106
- package/esm2015/lib/services/google-analytics/google-analytics.service.js +0 -68
- package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +0 -71
- package/esm2015/lib/services/locations/location.service.js +0 -39
- package/esm2015/lib/services/public-api.js +0 -16
- package/esm2015/lib/services/role-guard/role.guard.js +0 -37
- package/esm2015/lib/services/role-guard/role.service.js +0 -20
- package/esm2015/lib/services/session-storage/session-storage.service.js +0 -41
- package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +0 -92
- package/fesm2015/hmcts-rpx-xui-common-lib.js +0 -4172
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +0 -1
- package/hmcts-rpx-xui-common-lib.d.ts +0 -69
- package/hmcts-rpx-xui-common-lib.metadata.json +0 -1
- package/lib/gov-ui/models/banner-data-model.d.ts +0 -4
- package/lib/gov-ui/models/isession-storage.interface.d.ts +0 -4
- package/lib/gov-ui/util/session-storage/session-storage-utils.d.ts +0 -6
- /package/{esm2015/lib/components/index.js → esm2022/lib/components/index.mjs} +0 -0
- /package/{esm2015/lib/directives/index.js → esm2022/lib/directives/index.mjs} +0 -0
- /package/{esm2015/lib/directives/public-api.js → esm2022/lib/directives/public-api.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/components/index.js → esm2022/lib/gov-ui/components/index.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/components/public_api.js → esm2022/lib/gov-ui/components/public_api.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/index.js → esm2022/lib/gov-ui/index.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/models/error-messages-model.js → esm2022/lib/gov-ui/models/error-messages-model.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/models/index.js → esm2022/lib/gov-ui/models/index.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/public_api.js → esm2022/lib/gov-ui/public_api.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/validators/index.js → esm2022/lib/gov-ui/validators/index.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/validators/public_api.js → esm2022/lib/gov-ui/validators/public_api.mjs} +0 -0
- /package/{esm2015/lib/models/case-share.model.js → esm2022/lib/models/case-share.model.mjs} +0 -0
- /package/{esm2015/lib/models/due-date.model.js → esm2022/lib/models/due-date.model.mjs} +0 -0
- /package/{esm2015/lib/models/idle-config.model.js → esm2022/lib/models/idle-config.model.mjs} +0 -0
- /package/{esm2015/lib/models/pagination.model.js → esm2022/lib/models/pagination.model.mjs} +0 -0
- /package/{esm2015/lib/models/tcDocument.model.js → esm2022/lib/models/tcDocument.model.mjs} +0 -0
- /package/{esm2015/lib/models/timeout-notification.model.js → esm2022/lib/models/timeout-notification.model.mjs} +0 -0
- /package/{esm2015/lib/models/user.model.js → esm2022/lib/models/user.model.mjs} +0 -0
- /package/{esm2015/lib/services/index.js → esm2022/lib/services/index.mjs} +0 -0
- /package/{esm2015/lib/window.js → esm2022/lib/window.mjs} +0 -0
|
@@ -0,0 +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/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\n Organisation' | 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\n service.' | 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.' |\n rpxTranslate}}</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\n in 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@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<p class=\"govuk-body\" *ngIf=\"isEndpointMC\">\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<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\n requirements, 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@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\n have 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\n elements are related to each document as they don’t have a shared or common label.' | rpxTranslate}}</span>{{' This fails WCAG\n v2.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\n Link 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\n voice.' | 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\n technology 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\n using 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,\n this 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\n that 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\n element 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\n the 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.\n It 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),\n 2.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\n struggle 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\n to 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\n reader 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\n to 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\n read 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\n minimum 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\n read.' | 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\n for users with cognitive impairments to understand.' | rpxTranslate}}</span>{{' This fails WCAG v2.2 3.1.4 Abbreviations (Level AAA). ' |\n rpxTranslate}}</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\n the 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\n to 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\n likely to be difficult for people with vision colour deficiencies to read.' | rpxTranslate}}</span>{{' This fails WCAG v2.2, 1.4.6\n Contrast (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\n published 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.' |\n rpxTranslate}}</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\n and 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})\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","<div class=\"xui-checkbox-list govuk-checkboxes govuk-checkboxes--small\" *ngIf=\"isFunctional\">\n <div class=\"select-all govuk-checkboxes__item\">\n <input type=\"checkbox\" id=\"select_all\" class=\"govuk-checkboxes__input\" [checked]=\"allSelected\"\n (change)=\"toggleSelectAll()\" />\n <label for=\"select_all\" class=\"govuk-label govuk-checkboxes__label\">{{'Select all / Deselect all' | rpxTranslate}}</label>\n </div>\n <div class=\"checkbox-items\">\n <div *ngFor=\"let item of options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" [id]=\"'select_' + i\" class=\"govuk-checkboxes__input\" [checked]=\"isSelected(item)\"\n (change)=\"toggleItemSelection(item)\" />\n <label [for]=\"'select_' + i\" class=\"govuk-label govuk-checkboxes__label\">{{labelFunction(item) | rpxTranslate}}</label>\n </div>\n </div>\n</div>\n","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})\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","<div class=\"contact-details\" *ngIf=\"data\">\n <h3 class=\"govuk-heading-m\" *ngIf=\"data.title\">{{ data.title }}</h3>\n <p *ngIf=\"data.badgeText\"><span [className]=\"'hmcts-badge ' + data.badgeColour\">{{ data.badgeText }}</span></p>\n <div class=\"email\" *ngIf=\"data.email\"><span class=\"govuk-!-font-weight-bold\">{{'Email:' | rpxTranslate}} </span> <a href=\"mailto:{{ data.email }}\">{{ data.email }}</a></div>\n <div class=\"contactDetails\" *ngIf=\"data.contactDetails\"><span class=\"govuk-!-font-weight-bold\">{{'Contact:' | rpxTranslate}} </span> <a rel=\"external\" href=\"{{ data.contactDetails.contactLink }}\">{{ data.contactDetails.name }}</a></div>\n <div class=\"phone\" *ngIf=\"data.phone\"><span class=\"govuk-!-font-weight-bold\">{{'Phone:' | rpxTranslate}} </span>{{ data.phone }}</div>\n <div class=\"opening-times\" *ngIf=\"data.openingTimes\"><span class=\"govuk-!-font-weight-bold\">{{'Opening times:' | rpxTranslate }} </span>{{ data.openingTimes}}</div>\n</div>","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})\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","<span *ngIf=\"dueDate\" class=\"due-date hmcts-badge\" [ngClass]=\"badge\"\n [title]=\"accessibleLabel | rpxTranslate\" [attr.aria-label]=\"accessibleLabel | rpxTranslate\">\n {{label | rpxTranslate}}\n</span>","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})\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, false)\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\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","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } 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","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } 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","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } 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","<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title | rpxTranslate}}</span>\n {{boldTitle | rpxTranslate}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle | rpxTranslate}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\"\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option) | rpxTranslate}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">{{'No results found' | rpxTranslate}}</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n","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})\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.filteredOptions = []),\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 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 <ng-container *ngIf=\"filteredList$ | async as filteredList\">\n <ng-container *ngIf=\"filteredList && filteredList.length >= 0\">\n <mat-option *ngFor=\"let location of filteredList\" (onSelectionChange)=\"onSelectedLocation(location)\">\n {{ location[propertyNameFilter] }}\n </mat-option>\n <mat-option *ngIf=\"filteredList.length === 0\">{{'No results found' | rpxTranslate}}</mat-option>\n </ng-container>\n </ng-container>\n </mat-autocomplete>\n</div>\n","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})\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[] | boolean>;\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 // Seems more responsive to do length 0 if locationsByServiceCodes are cached\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 // Returns false if the search term is empty to not show the autocomplete field i.e. ngIf should be false\n of(false)\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(() => {\n // returns false so the user is not shown the no results found message\n return of(false);\n }),\n ),\n of(false)\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 <label id=\"input-selected-location-label\" *ngIf=\"locationTitle\">{{locationTitle}}</label>\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 <a href=\"#\" (click)=\"addLocation(); $event.preventDefault()\" class=\"govuk-button add-location-button\" data-module=\"govuk-button\" *ngIf=\"enableAddLocationButton\">\n Add location\n </a>\n </div>\n\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedLocations\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection); $event.preventDefault()\" href=\"#\">\n {{ selection[propertyNameFilter] }}\n </a>\n </li>\n </ul>\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})\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","<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findTaskNameGroup\"\n [ngClass]=\"{'form-group-error': findTaskNameGroup.get('findTaskNameControl')?.invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findTaskNameGroup && findTaskNameGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findTaskNameGroup.errors.error ? findTaskNameGroup.errors.error : errorMessage}}\n </span>\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 <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{ getTaskTypeName(option) }}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n","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})\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 <mat-option *ngFor=\"let service of filteredOptions\" (onSelectionChange)=\"onSelectionChanged($event)\" [value]=\"service.label\">\n {{ service.label }}\n </mat-option>\n <mat-option *ngIf=\"!filteredOptions?.length && showAutocomplete\">\n No results found\n </mat-option>\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})\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 <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle | rpxTranslate}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"#\" (click)=\"addOption(tempSelectedService); $event.preventDefault()\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n {{ 'Add' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'service' | rpxTranslate}}</span>\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection); $event.preventDefault()\" href=\"#\">\n {{ selection.label | rpxTranslate }}\n </a>\n </li>\n </ul>\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})\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({name: 'capitalize'})\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 <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'group-title'\">\n <div [class]=\"field.titleClasses ? field.titleClasses: 'govuk-label govuk-label--m govuk-!-margin-bottom-4'\">\n {{ field.name | capitalize }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength || form.get(field.name).errors?.maxLength)}\">\n <div *ngIf=\"field.title\" class=\"xui-generic-filter__field-title\">\n <h3 [class]=\"field.titleClasses ? field.titleClasses : 'govuk-heading-s'\" style=\"margin-bottom: 0!important\">\n {{field.title | capitalize}}\n </h3>\n <div *ngIf=\"field?.titleHint\" class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n </div>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <div *ngIf=\"field.hintText\"\n [id]=\"field.hintText + '-hint'\" class=\"govuk-hint\">\n {{ field.hintText | rpxTranslate }}\n </div>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength)\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.minSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.maxSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n *ngIf=\"field.emailError && submitted && form.get(field.name).errors?.email\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span> {{field.emailError | rpxTranslate }}\n </span>\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'group-select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <optgroup *ngFor = 'let grp of filteredSkillsByServices' label=\"{{grp.group | titlecase}}\">\n <option *ngFor = 'let item of grp.options' [value]=\"item.key\">{{item.label}}</option>\n </optgroup>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <div class=\"govuk-radios\">\n <div *ngFor=\"let item of field.options\" class=\"govuk-radios__item\">\n <input type=\"radio\"\n [formControlName]=\"field.name\"\n [id]=\"'radio_' + item.key\"\n [attr.disabled]=\"disabled(field, form)\"\n [checked]=\"item.key === form.get(field.name).value\"\n class=\"govuk-radios__input\"\n [value]=\"item.key\"\n (change)=\"fieldChanged(field, form)\"\n />\n <label [for]=\"'radio_' + item.key\" class=\"govuk-label govuk-radios__label\">{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-task-name'\">\n <xuilib-find-task-name subTitle=\"\" (taskNameSelected)=\"updateTaskNameControls($event, field)\"\n (taskNameFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findTaskNameGroup]=\"form\"\n [selectedTaskName]=\"form.get(field.name)?.value?.task_type_name\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <span class=\"govuk-error-message\" *ngIf=\"isServiceSelected\">{{serviceErrorMsg | rpxTranslate}}</span>\n <xuilib-find-service (serviceFieldChanged)=\"inputServiceChanged(field)\"\n [field]=\"field\"\n [form]=\"form\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n [disabled]=\"disabled(field, form)\">\n </xuilib-find-service>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text-input'\">\n <input class=\"govuk-input\" type=\"text\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [attr.maxlength]=\"field.maxlength ? field.maxlength : null\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'email-input'\">\n <input class=\"govuk-input\" type=\"email\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ng-container>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{(config.applyButtonText || 'Apply') | rpxTranslate}}</button>\n <button *ngIf=\"config.showCancelFilterButton\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n type=\"button\"\n id=\"cancelFilter\"\n (click)=\"cancelFilter()\">{{ (config.cancelButtonText || 'Cancel') | rpxTranslate}}</button>\n </div>\n </div>\n</form>\n","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})\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 } else {\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 }\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 } else {\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 }\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) {\n return (this.form.get(field.name) as FormArray)['controls'][i]['value'];\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 public toggleSelectAll(event: any, form: FormGroup, item: { key: string; label: string; selectAll?: true }, 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 } else {\n return { value: getValues(field.options, values), name };\n }\n } else {\n return { value: [values], name };\n }\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})\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","<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label | rpxTranslate }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</h1>\n<ng-template #noHeading>\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</ng-template>\n","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})\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})\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})\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","<span class=\"govuk-error-message\" [id]=\"config.id + '-error'\" *ngFor=\"let message of errorMessage?.messages\">\n <span class=\"govuk-visually-hidden\">{{'Error' | rpxTranslate}}:</span>{{message | rpxTranslate}}\n</span>\n","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})\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 <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"!config.isPageHeading\">\n {{config.legend | rpxTranslate}}\n </legend>\n\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"config.isPageHeading\">\n <h1>{{config.legend | rpxTranslate}}</h1>\n </legend>\n\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\" *ngIf=\"config.hint\">\n {{config.hint | rpxTranslate}}\n </span>\n <ng-content></ng-content>\n</fieldset>\n","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})\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})\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 })\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<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n</span>\n\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<input class=\"govuk-input\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\"\n [name]=\"config.name\"\n [type]=\"config.type\"\n [attr.aria-invalid]=\"errorMessage?.isInvalid\"\n [formControlName]=\"config.name\"\n [attr.aria-describedby]='setDescribedBy()'>\n</div>\n","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})\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})\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})\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","<div id=\"user-access-block-{{ sharedCase.caseId }}\" *ngIf=\"showUserAccessBlock()\">\n <h2 class=\"govuk-heading-m case-share-confirm__title\">{{ sharedCase.caseTitle }}</h2>\n <div class=\"case-share-confirm__caption-area\">\n <div class=\"govuk-caption-m case-share-confirm__caption\">\n {{ sharedCase.caseId }}\n </div>\n <a [routerLink]=\"changeLink\" class=\"case-share-confirm__change-link govuk-link govuk-!-font-size-19\">\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 <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingShares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge\">{{'To be added' | rpxTranslate}}</span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingUnshares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge hmcts-badge--red\">\n {{'To be removed' | rpxTranslate}}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","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})\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\">\r\n <div class=\"govuk-grid-row govuk-case-header\">\r\n <div class=\"govuk-grid-column-three-quarters\">\r\n <h3 id=\"{{buildElementId('case-title')}}\" class=\"govuk-case-title\">{{ sharedCase.caseTitle | rpxTranslate }}</h3>\r\n <h3 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId | rpxTranslate }}</h3>\r\n </div>\r\n <div class=\"govuk-grid-column-ten-percent\">\r\n <button *ngIf=\"caseCount > 1\"\r\n id=\"{{buildElementId('btn-deselect-case')}}\"\r\n class=\"govuk-button hmcts-button--secondary\"\r\n (click)=\"onDeselect(sharedCase)\" title=\"Deselect case\">\r\n {{'Deselect case' | rpxTranslate}}\r\n </button>\r\n </div>\r\n <div class=\"govuk-accordion__section-header govuk-grid-column-ten-percent\">\r\n <div class=\"govuk-accordion__section-heading\">\r\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\r\n [attr.aria-controls]=\"'accordion-with-summary-sections-content' + buildElementId('accordion-with-summary-sections-heading')\" class=\"govuk-accordion__section-button\"\r\n aria-expanded=\"false\" [title]=\"'Expand or Collapse' | rpxTranslate\">\r\n <span class=\"govuk-accordion__icon\" aria-hidden=\"true\"></span></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"{{buildElementId('accordion-with-summary-sections-content')}}\" class=\"govuk-accordion__section-content\"\r\n [attr.aria-labelledby]=\"buildElementId('accordion-with-summary-sections-heading')\" >\r\n <div class=\"govuk-grid-row\" *ngIf=\"showNoUsersAccessInfo()\">\r\n <span id=\"{{buildElementId('access-info-no-user')}}\" class=\"govuk-div-align-left\">\r\n {{'No users from your organisation currently have access to this case.' | rpxTranslate}}\r\n </span>\r\n </div>\r\n <div class=\"govuk-grid-row\" *ngIf=\"showUserHasAccessInfo()\">\r\n <span id=\"{{buildElementId('access-info-has-users')}}\" class=\"govuk-div-align-left\">\r\n {{'Users from your organisation with access to this case.' | rpxTranslate}}\r\n </span>\r\n </div>\r\n <table class=\"govuk-table\" *ngIf=\"showUserAccessTable()\">\r\n <thead class=\"govuk-table__head\">\r\n <tr class=\"govuk-table__row\">\r\n <th id=\"{{buildElementId('name-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Name' | rpxTranslate}}</th>\r\n <th id=\"{{buildElementId('email-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Email address' | rpxTranslate}}</th>\r\n <th id=\"{{buildElementId('action-heading')}}\" class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">{{'Actions' | rpxTranslate}}</th>\r\n <th id=\"{{buildElementId('label-heading')}}\" class=\"govuk-table__header govuk-table-column-label\" scope=\"col\">{{ 'Status' | rpxTranslate }}</th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"govuk-table__body\">\r\n <tr class=\"govuk-table__row\" *ngFor=\"let user of combinedSortedShares; index as idx; trackBy: trackByUserId\">\r\n <td id=\"user-full-name-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\r\n <td id=\"user-email-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.email }}</td>\r\n <td class=\"govuk-table__cell\">\r\n <a *ngIf=\"canRemove(sharedCase.caseId, user) | async\" (click)=\"onRemove(user, sharedCase); $event.preventDefault()\" href=\"#\">{{'Remove' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{ user.firstName + ' ' + user.lastName }} {{'from case' | rpxTranslate}}</span></a>\r\n <a *ngIf=\"canCancel(sharedCase.caseId, user) | async\" (click)=\"onCancel(user, sharedCase); $event.preventDefault()\" href=\"#\">{{'Cancel' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'adding' | rpxTranslate}} {{ user.firstName + ' ' + user.lastName }} {{'to case' | rpxTranslate}}</span></a>\r\n </td>\r\n <td class=\"govuk-table__cell\">\r\n <span *ngIf=\"isToBeRemoved(sharedCase.caseId, user) | async\" class=\"hmcts-badge hmcts-badge--red\">{{'To be removed' | rpxTranslate}}</span>\r\n <span *ngIf=\"isToBeAdded(sharedCase.caseId, user) | async\" class=\"hmcts-badge\">{{'To be added' | rpxTranslate}}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\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})\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","<ng-container *ngIf=\"!toConfirm\">\n <xuilib-selected-case\n *ngFor=\"let sharedCase of (shareCases$ | async); trackBy: trackByCaseId\"\n [sharedCase]=\"sharedCase\"\n [caseCount]=\"caseCount\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case>\n</ng-container>\n\n<ng-container *ngIf=\"toConfirm\">\n <xuilib-selected-case-confirm\n *ngFor=\"let sharedCase of (shareCases$ | async); trackBy: trackByCaseId\"\n [sharedCase]=\"sharedCase\"\n [changeLink]=\"changeLink\">\n </xuilib-selected-case-confirm>\n</ng-container>\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})\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 <h2 *ngIf=\"message_cy\" class=\"govuk-heading-s\" [innerHTML]=\"message_cy\"></h2>\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})\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","<div *ngIf=\"isBannerError\" class=\"govuk-width-container govuk-!-margin-top-6\">\n <div class=\"hmcts-banner hmcts-banner--warning\" *ngFor=\"let errMsg of bannerErrorMsgs\">\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</div>\n<div *ngIf=\"filteredMessages?.length > 0\" class=\"govuk-width-container govuk-!-margin-top-6\">\n <xuilib-service-message *ngFor=\"let message of filteredMessages\" [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</div>","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})\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 this.filteredMessages = messages.filter((message) => {\n const { roles, message_en } = message;\n const regEx = new RegExp(roles);\n return this.userRoles.some((role) => regEx.test(role)) &&\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 <div *ngIf=\"shareCases && shareCases.length > 0\" id=\"summarySections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [toConfirm]=\"true\"\n [changeLink]=\"changeLink\">\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" *ngIf=\"shareCases && shareCases.length > 0\">\n <button class=\"govuk-button\" title=\"Confirm\" [routerLink]=\"completeLink\">{{'Confirm' | rpxTranslate}}</button>\n</div>\n","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})\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 <mat-option *ngFor=\"let user of filteredUsers | async\" [value]=\"user\">\n {{ user.firstName | rpxTranslate }} {{ user.lastName | rpxTranslate }} - {{ user.email }}\n </mat-option>\n</mat-autocomplete>\n","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})\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","<div *ngIf=\"!showWarningMessage && messages && messages.length > 0\" id=\"errorSummary\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{header | rpxTranslate}}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li *ngFor=\"let message of messages\">\n <a (click)=\"scrollTo(message['id'])\" [routerLink]=\"\" [fragment]=\"message['id']\"\n *ngIf=\"hasElement(message['id'])\">{{message['message'] | rpxTranslate}}</a>\n <span *ngIf=\"!hasElement(message['id'])\">{{message['message'] | rpxTranslate}}</span>\n </li>\n </ul>\n </div>\n</div>\n<div *ngIf=\"showWarningMessage\" class=\"hmcts-banner hmcts-banner--warning\">\n <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\" /></svg>\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">{{'Warning' | rpxTranslate}}</span>\n <p class=\"govuk-body\" *ngFor=\"let message of messages\">{{ message['message'] | rpxTranslate}}</p>\n </div>\n</div>\n","import {DOCUMENT} from '@angular/common';\nimport {AfterViewInit, Component, Inject, Input, OnChanges, SimpleChanges} 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*/\n@Component({\n selector: 'xuilib-hmcts-error-summary',\n templateUrl: './hmcts-error-summary.component.html'\n})\nexport class HmctsErrorSummaryComponent implements AfterViewInit, OnChanges {\n\n @Input() public set errorMessages(value: any) {\n this.messages = value;\n }\n\n @Input() public header: string;\n @Input() public showWarningMessage: boolean;\n\n public messages: object[];\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<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n {{title | rpxTranslate}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel | rpxTranslate}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n {{'Search by name or email address. You can share access with as many people as you need.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\"\n class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\"\n title=\"{{'Add user to selected cases' | rpxTranslate}}\">\n {{'Add' | rpxTranslate}}\n <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 <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">\n {{'Remove a person from all cases' | rpxTranslate}}\n </label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n {{'Select a person to remove them from all selected cases.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [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 <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"{{'Remove user from selected cases' | rpxTranslate}}\">\n {{'Remove' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\"> {{'user' | rpxTranslate}}</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">\n {{'Selected cases' | rpxTranslate}}\n </h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"{{'Continue' | rpxTranslate}}\">\n {{'Continue' | rpxTranslate}}\n </button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"{{'Cancel' | rpxTranslate}}\" [routerLink]=\"cancelLink\">\n {{'Cancel' | rpxTranslate}}\n </button>\n</div>\n","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})\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 <mat-tab *ngFor=\"let tabItem of tabItems; let last = last;\" [label]=\"tabItem.text | rpxTranslate\">\n </mat-tab>\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 })\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})\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})\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})\nexport class TcDisplayPlainComponent {\n\n constructor() { }\n\n}\n","<ng-content></ng-content>","<ng-container [ngSwitch]=\"document.mimeType\">\n <xuilib-tc-display-html *ngSwitchCase=\"'text/html'\">\n <div [innerHTML]=\"document.content | rpxTranslate\"></div>\n </xuilib-tc-display-html>\n <xuilib-tc-display-plain *ngSwitchCase=\"'text/plain'\">\n {{ document.content | rpxTranslate}}\n </xuilib-tc-display-plain>\n <div *ngSwitchDefault>\n {{'An error occured. Please try again.' | rpxTranslate}}\n </div>\n</ng-container>\n","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})\nexport class TermsAndConditionsComponent {\n\n @Input() public document: TCDocument;\n\n constructor() { }\n\n}\n","<div class=\"govuk-warning-text\" *ngIf=\"warningTitle && warningTitle !== ''\">\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<dl class=\"govuk-table\" *ngIf=\"user\" 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 <div class=\"govuk-table__row\" *ngIf=\"!user.resendInvite\">\n <dt class=\"govuk-table__header\" scope=\"row\">{{'Permissions' | rpxTranslate}}</dt>\n <dd class=\"govuk-table__cell\">\n <div *ngIf=\"user.manageOrganisations === 'Yes'\">{{'Manage organisations' | rpxTranslate}}</div>\n <div *ngIf=\"user.manageUsers === 'Yes'\">{{'Manage users' | rpxTranslate}}</div>\n <div *ngIf=\"user.manageCases === 'Yes'\">{{'Manage cases' | rpxTranslate}}</div>\n <div *ngIf=\"userHasRole('pui-caa')\">{{'Case access administrator' | rpxTranslate}}</div>\n <div *ngIf=\"userHasRole('pui-finance-manager')\">{{'Manage fee accounts' | rpxTranslate}}</div>\n <div *ngFor=\"let accesstype of enabledAccessTypes\">{{ accesstype | rpxTranslate}}</div> \n </dd>\n <dd class=\"govuk-table__cell\"><a *ngIf=\"editPermissionRouterLink && showEditLink\" role=\"link\" [routerLink]=\"editPermissionRouterLink\">{{'Change' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'roles' | rpxTranslate}}</span></a></dd>\n </div>\n </div>\n</dl>\n<button *ngIf=\"showSuspendUserButton\" class=\"govuk-button govuk-button--warning\" tabindex=\"0\" (click)=\"suspendUser(user)\" (keyup.enter)=\"suspendUser(user)\">\n {{'Suspend account' | rpxTranslate}}\n</button>\n<div *ngIf=\"user && user.resendInvite\">\n <div class=\"govuk-inset-text\">\n <p>{{'This user has already been invited but has not activated their account.' | rpxTranslate}}</p>\n <p>{{'If you resend an invitation, they\\'ll receive an email from HM Courts and Tribunals to finish setting up their account.' | rpxTranslate}}</p>\n <p>{{'You can\\'t invite the same user more than once an hour.' | rpxTranslate}}</p>\n </div>\n <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<p class=\"govuk-body\" *ngIf=\"showHelpLink && suspendHelpLink\"><a [routerLink]=\"suspendHelpLink\" target=\"_blank\">{{'Get help' | rpxTranslate}}</a> {{'to reactivate this account.' | rpxTranslate}}</p>\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})\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 <ul class=\"hmcts-pagination__list\" *ngIf=\"!(p.pages.length <= 1)\">\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\" [class.disabled]=\"p.isFirstPage()\">\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" *ngIf=\"1 < p.getCurrent()\" (keyup.enter)=\"p.previous()\"\n (click)=\"p.previous()\">{{'Previous' | rpxTranslate}} <span class=\"govuk-visually-hidden\">{{'set of pages' | rpxTranslate}}</span></a>\n </li>\n\n <ng-container *ngIf=\"showPageNumbers\">\n <li class=\"hmcts-pagination__item\" [class.hmcts-pagination__item--active]=\"p.getCurrent() === page.value\"\n [class.hmcts-pagination__item--dots]=\"page.label === '...'\" *ngFor=\"let page of p.pages\">\n <a class=\"hmcts-pagination__link\" [routerLink]=\"\" (keyup.enter)=\"p.setCurrent(page.value)\"\n (click)=\"p.setCurrent(page.value)\" *ngIf=\"p.getCurrent() !== page.value\">\n <span class=\"govuk-visually-hidden\">{{'page' | rpxTranslate}} </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </a>\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </ng-container>\n </li>\n </ng-container>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\" [class.disabled]=\"p.isLastPage()\">\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" *ngIf=\"!p.isLastPage()\" (keyup.enter)=\"p.next()\"\n (click)=\"p.next()\">{{'Next' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'page' | rpxTranslate}}</span></a>\n </li>\n\n </ul>\n <p class=\"hmcts-pagination__results\" *ngIf=\"showResultCount\">{{'Showing' | rpxTranslate}} <b>{{(p.getCurrent() * pageSize) - pageSize + 1}}</b>\n {{'to' | rpxTranslate}} <b>{{ p.getCurrent() * pageSize > p.getTotalItems() ? p.getTotalItems() : p.getCurrent() *\n pageSize}}</b> {{'of' | rpxTranslate}} <b>{{p.getTotalItems()}}</b> {{'results' | rpxTranslate}}</p>\n </nav>\n\n</pagination-template>\n","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})\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 <ng-container *ngFor=\"let u of users | paginate: { itemsPerPage: pagination.itemsPerPage, currentPage: currentPageNumber, totalItems: pagination.totalItems }\">\n <tr class=\"govuk-table__row\" data-selector=\"table-row\">\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">\n <a class=\"govuk-link\" [attr.title]=\"u.routerLinkTitle\" [routerLink]=\"u.routerLink\" (click)=\"onUserClick(u)\">{{ u.fullName }}</a>\n </td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.email }}</td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.status }}</td>\n </tr>\n </ng-container>\n </tbody>\n</table>\n<xuilib-hmcts-pagination (pageChange)=\"emitPageClickEvent($event)\" [pageSize]=\"pagination.itemsPerPage\"></xuilib-hmcts-pagination>\n","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})\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","<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">{{'Cookies on' | rpxTranslate}} {{appName | rpxTranslate}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>{{'We use some essential cookies to make this service work.' | rpxTranslate}}</p>\n <p>{{'We\\'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\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","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})\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 <a *ngIf=\"firstRecord > 1; else noPrevious\" class=\"hmcts-pagination__link\" (click)=\"onPrevious(); $event.preventDefault()\" href=\"#\">\n {{'Previous page' | rpxTranslate}}\n </a>\n <ng-template #noPrevious>\n <span class=\"hmcts-pagination__link\">{{'Previous page' | rpxTranslate}}</span>\n </ng-template>\n </li>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\">\n <a *ngIf=\"moreItems; else noNext\" class=\"hmcts-pagination__link\" (click)=\"onNext(); $event.preventDefault()\" href=\"#\">{{'Next page' | rpxTranslate}}</a>\n <ng-template #noNext>\n <span class=\"hmcts-pagination__link\">{{'Next page' | rpxTranslate}}</span>\n </ng-template>\n </li>\n </ul>\n</nav>\n","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})\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 <div *ngIf=\"readyAfterContent\" 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 <mat-option *ngFor=\"let location of displayedLocationsDuplicationFiltered\"\n [value]=\"getDisplayName(location)\"\n (onSelectionChange)=\"onSelectionChange(location)\"\n [ngClass]=\"{'hide-autocomplete': showAutocomplete ? false : true}\">\n {{ getDisplayName(location) }}\n </mat-option>\n <mat-option *ngIf=\"!displayedLocationsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">{{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n </div>\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})\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 <mat-option *ngFor=\"let judicial of displayedJudicialsDuplicationFiltered\" class=\"select-option\"\n [value]=\"getDisplayName(judicial)\" (onSelectionChange)=\"onSelectionChange(judicial)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(judicial) }}\n </mat-option>\n <mat-option class=\"select-option\"\n *ngIf=\"!displayedJudicialsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">\n {{ 'No results found' }}</mat-option>\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})\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 <a *ngIf=\"backLink\" [routerLink]=\"backLink\" class=\"govuk-back-link\">{{'Back' | rpxTranslate}}</a>\n <div class=\"govuk-width-container\">\n <main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <h1 *ngIf=\"title\" class=\"govuk-heading-xl\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n {{title | rpxTranslate}}\n </h1>\n <ng-content>\n\n </ng-content>\n </div>\n </main>\n </div>\n</div>\n","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})\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 <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('addressLine1').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_STREET_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine1\" name=\"addressLine1\" 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 <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('postTown').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_CITY_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"postTown\" name=\"postTown\" type=\"text\"\n formControlName=\"postTown\">\n </div>\n\n <div class=\"govuk-body\">\n <label class=\"govuk-label\" for=\"county\">\n County{{this.isInternational ? '/ State/ Province' : ''}} (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"county\" name=\"county\" type=\"text\"\n formControlName=\"county\" >\n </div>\n\n <div *ngIf=\"isInternational\" class=\"govuk-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 <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('country').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_COUNTRY_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"country\" name=\"country\" type=\"text\"\n formControlName=\"country\">\n </div>\n\n <div class=\"govuk-body\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && !isInternational && !formGroup.get('address').get('postCode').valid}\">\n <label class=\"govuk-label\" for=\"postCode\">\n Postcode{{this.isInternational ? ' (Optional)' : ''}}\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('required')\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_POSTCODE_SELECTED}}\n </p>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('invalidPostcode')\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.INVALID_POSTCODE}}\n </p>\n <input class=\"govuk-input govuk-!-width-one-third\" id=\"postCode\" name=\"postCode\" type=\"text\"\n formControlName=\"postCode\">\n </div>\n </div>\n</form>\n</ng-container>","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})\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 <p class=\"govuk-error-message\" *ngIf=\"optionErrorsPresent\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{optionErrorMessage}}\n </p>\n <div *ngIf=\"postcodeLookupVisible()\">\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 <p class=\"govuk-error-message\" *ngIf=\"missingPostcode || postcodeErrorPresent(true)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{postcodeErrorMessage}}\n </p>\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\n <div class=\"govuk-body\" *ngIf=\"addressOptions\" 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 <p class=\"govuk-error-message\" *ngIf=\"postcodeErrorPresent(false)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{selectErrorMessage}}\n </p>\n <select class=\"form-control govuk-select ccd-dropdown addressList\" id=\"addressList\" name=\"address\"\n formControlName=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n </div>\n\n <a class=\"manual-link govuk-link\" *ngIf=\"!shouldShowDetailFields() || (!startedInternational && !addressChosen)\"\n (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">I can't enter a UK postcode</a>\n </div>\n\n <div id=\"govuk-radios\" class=\"govuk-radios\" data-module=\"govuk-radios\"\n *ngIf=\"shouldShowDetailFields() && internationalMode && startedInternational && !addressChosen\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"yes\" value=\"yes\" name=\"ukAddress\" type=\"radio\"\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 <xuilib-write-address-inputs *ngIf=\"isInternational !== undefined\" [formGroup]=\"formGroup\"\n [isInternational]=\"isInternational\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n </div>\n </div>\n\n <xuilib-write-address-inputs *ngIf=\"shouldShowDetailFields() && (addressChosen || !internationalMode)\"\n [formGroup]=\"formGroup\" [isInternational]=\"false\" [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\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})\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})\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})\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 <span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n </span>\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n <div class=\"govuk-checkboxes govuk-checkboxes--small govuk-checkboxes-multi-column\" data-module=\"govuk-checkboxes\">\n <div class=\"govuk-checkboxes-multi-column__single\" *ngFor=\"let columnItems of columns\">\n <div class=\"govuk-checkboxes__item\" *ngFor=\"let item of columnItems\">\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 <div *ngIf=\"item.hint\" class=\"govuk-hint govuk-checkboxes__hint\">\n {{ item.hint }}\n </div>\n </div>\n </div>\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})\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 <xuilib-gov-uk-error-message\n [config]=\"{id: 'passport'}\"\n *ngIf=\"errorMessage\"\n [errorMessage]=\"errorMessage\">\n </xuilib-gov-uk-error-message>\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})\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 <span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n </span>\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n <input class=\"govuk-file-upload\"\n *ngIf=\"reloadInput\"\n [formControlName]=\"config.id\"\n [ngClass]=\"{'govuk-file-upload--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\" [name]=\"config.name\"\n [attr.aria-describedby]=\"setDescribedBy()\"\n type=\"file\">\n</div>\n","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})\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})\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 <xuilib-gov-radio\n appRemoveHost\n *ngFor=\"let item of options.items\"\n [group]=\"options.group\"\n [config]=\"item.config\">\n </xuilib-gov-radio>\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})\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<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint | rpxTranslate}}\n</span>\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<select class=\"govuk-select\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [id]=\"config.id\" [name]=\"config.id\" [formControlName]=\"config.id\" [attr.aria-describedby]='setDescribedBy()'>\n <option value=\"{{item.value}}\" *ngFor=\"let item of items\">{{item.label | rpxTranslate}}</option>\n</select>\n</div>\n","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})\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 <th class=\"govuk-table__header\" scope=\"col\" *ngFor=\"let h of columnConfig\">{{h.header | rpxTranslate}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr data-selector=\"table-row\" class=\"govuk-table__row\" *ngFor=\"let r of rows\">\n <ng-container *ngFor=\"let col of columnConfig; first as isFirst\">\n <th data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" *ngIf=\"isFirst && firstCellIsHeader\">\n <ng-container *ngIf=\"!col.type || col.type === 'text' || !r.routerLink\">{{r[col.key] | rpxTranslate}}</ng-container>\n <ng-container *ngIf=\"col.type === 'link' && r.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key] | rpxTranslate}}</a>\n </ng-container>\n </th>\n <td data-selector=\"table-cell\" class=\"govuk-table__cell\" *ngIf=\"!(isFirst && firstCellIsHeader)\">\n <ng-container *ngIf=\"col.type === 'date'\">{{formatDate(r[col.key]) | rpxTranslate}}</ng-container>\n <ng-container *ngIf=\"!col.type || col.type === 'text' || !r.routerLink\">{{r[col.key] | rpxTranslate}}</ng-container>\n <ng-container *ngIf=\"col.type === 'link' && r.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"r.routerLink\">{{r[col.key] | rpxTranslate}}</a>\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </tbody>\n</table>\n","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})\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})\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","<ng-container *ngIf=\"message && type\">\n <div *ngIf=\"title\"\n class=\"hmcts-banner-title hmcts-banner-title--{{ type }}\">\n {{ title }}\n </div>\n <div class=\"hmcts-banner hmcts-banner--{{ type }}\">\n <ng-container *ngIf=\"showMessageIcon\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'warning'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--warning\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\"></path>\n </svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'success'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--success\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z\"></path>\n </svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'information'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--information\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\"></path>\n </svg>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div class=\"hmcts-banner__message\" [class.hmcts-banner__message--bold]=\"messageBoldText\">\n <span class=\"hmcts-banner__assistive\">{{type | rpxTranslate}}</span>\n <span class=\"hmcts-banner__message-text govuk-!-font-weight-bold\">{{message | rpxTranslate}}</span>\n </div>\n </div>\n</ng-container>\n","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})\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","<div class=\"hmcts-identity-bar\" *ngIf=\"value\">\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","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})\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","<a *ngIf=\"hasBackLink\" [routerLink]=\"backLink\" (click)=\"onGoBack()\" class=\"govuk-back-link\">{{'Back' | rpxTranslate}}</a>\n<main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-hmcts-error-summary\n *ngIf=\"summaryErrors && !summaryErrors.isFromValid\"\n [errorMessages]=\"summaryErrors.items\"\n [header]=\"summaryErrors.header\"\n [showWarningMessage]=\"showWarningMessage\">\n </xuilib-hmcts-error-summary>\n <xuilib-hmcts-banner *ngIf=\"bannerData\"\n [type]=\"bannerData.type\"\n [message]=\"bannerData.message\"\n ></xuilib-hmcts-banner>\n <h1 *ngIf=\"title\" class=\"govuk-heading-xl\">{{title | rpxTranslate}}</h1>\n <ng-content></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-third\" *ngIf=\"actionButtons?.length > 0\">\n <div class=\"hmcts-page-heading__actions-wrapper\">\n <a\n *ngFor=\"let actionButton of actionButtons\"\n (click)=\"actionButton.action()\"\n role=\"button\"\n draggable=\"false\"\n class=\"govuk-button {{ actionButton.class }}\"\n >{{ actionButton.name | rpxTranslate }}</a>\n </div>\n </div>\n </div>\n</main>\n","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})\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","<nav *ngIf=\"isUserLoggedIn\" class=\"hmcts-primary-navigation\" [attr.aria-label]=\"label\">\n <div class=\"hmcts-primary-navigation__container\">\n <div class=\"govuk-header__logo\" *ngIf=\"isBrandedHeader\"></div>\n <ul class=\"hmcts-primary-navigation__list\">\n <li class=\"hmcts-primary-navigation__item\" *ngFor=\"let item of items\">\n <a class=\"hmcts-primary-navigation__link\" [attr.aria-current]=\"item.active ? true: null\" [routerLink]=\"item.href\" [innerHTML]=\"item.text | rpxTranslate\"></a>\n </li>\n </ul>\n </div>\n</nav>\n","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})\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","<nav class=\"hmcts-sub-navigation\" attr.aria-label=\"{{label}}\" role=\"navigation\" *ngIf=\"items\">\n <ul class=\"hmcts-sub-navigation__list\">\n <li class=\"hmcts-sub-navigation__item\" *ngFor=\"let item of items\">\n <a data-selector=\"sub-nav-link\" class=\"hmcts-sub-navigation__link\" [routerLink]=\"item.href\"\n [attr.aria-current]=\"item.active ? 'page' : null\">\n {{item.text | rpxTranslate}}\n <span *ngIf=\"item.roundel && item.roundel > 0 \" class=\"xui-alert-link__number\"> {{item.roundel}} </span>\n </a>\n </li>\n </ul>\n</nav>\n","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})\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 './directives/remove-host.directive';\nexport * from './gov-ui.service';\nexport * from './validators';\nexport * from './components';\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","i1.CaseSharingStateService","i1.AddressService","MatAutocompleteModule","MatTabsModule","MatInputModule"],"mappings":"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"}
|