@hmcts/opal-frontend-common 0.0.2 → 0.0.4
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/components/abstract/abstract-form-alias-base/abstract-form-alias-base.d.ts +117 -0
- package/components/abstract/abstract-form-alias-base/interfaces/abstract-form-alias-base-alias-controls.interface.d.ts +4 -0
- package/components/abstract/abstract-form-array-base/abstract-form-array-base.d.ts +158 -0
- package/components/abstract/abstract-form-array-parent-base/abstract-form-array-parent-base.component.d.ts +13 -0
- package/components/abstract/abstract-form-array-removal-base/abstract-form-array-removal-base.component.d.ts +44 -0
- package/components/abstract/abstract-form-array-removal-base/interfaces/abstract-form-array-removal-base-control-value.interface.d.ts +5 -0
- package/components/abstract/abstract-form-base/abstract-form-base.component.d.ts +232 -0
- package/components/abstract/abstract-form-base/interfaces/abstract-form-base-field-error.interface.d.ts +6 -0
- package/components/abstract/abstract-form-base/interfaces/abstract-form-base-field-errors.interface.d.ts +4 -0
- package/components/abstract/abstract-form-base/interfaces/abstract-form-base-form-error.interface.d.ts +6 -0
- package/components/abstract/abstract-form-base/interfaces/abstract-form-base-form.interface.d.ts +4 -0
- package/components/abstract/abstract-form-base/interfaces/abstract-form-base-high-priority-form-error.interface.d.ts +5 -0
- package/components/abstract/abstract-form-base/interfaces/abstract-form-base-status.interface.d.ts +3 -0
- package/components/abstract/abstract-form-parent-base/abstract-form-parent-base.component.d.ts +29 -0
- package/components/abstract/abstract-sortable-table/abstract-sortable-table.component.d.ts +79 -0
- package/components/abstract/abstract-sortable-table/interfaces/abstract-sortable-table-interfaces.d.ts +7 -0
- package/components/abstract/abstract-sortable-table-pagination/abstract-sortable-table-pagination.component.d.ts +31 -0
- package/components/abstract/index.d.ts +5 -0
- package/components/abstract/interfaces/abstract-form-array-control-validation.interface.d.ts +5 -0
- package/components/abstract/interfaces/abstract-form-array-control.interface.d.ts +5 -0
- package/components/abstract/interfaces/abstract-form-array-controls.interface.d.ts +4 -0
- package/components/abstract/interfaces/abstract-form-base-form-error-summary-message.interface.d.ts +4 -0
- package/components/abstract/interfaces/abstract-form-control-error-message.interface.d.ts +3 -0
- package/components/abstract/public-api.d.ts +21 -0
- package/components/alphagov/alphagov-accessible-autocomplete/alphagov-accessible-autocomplete.component.d.ts +59 -0
- package/components/alphagov/alphagov-accessible-autocomplete/interfaces/alphagov-accessible-autocomplete-item.interface.d.ts +4 -0
- package/components/alphagov/index.d.ts +5 -0
- package/components/alphagov/public-api.d.ts +2 -0
- package/components/govuk/govuk-accordion/govuk-accordion.component.d.ts +13 -0
- package/components/govuk/govuk-back-link/govuk-back-link.component.d.ts +14 -0
- package/components/govuk/govuk-cancel-link/govuk-cancel-link.component.d.ts +12 -0
- package/components/govuk/govuk-checkboxes/govuk-checkboxes-conditional/govuk-checkboxes-conditional.component.d.ts +10 -0
- package/components/govuk/govuk-checkboxes/govuk-checkboxes-divider/govuk-checkboxes-divider.component.d.ts +5 -0
- package/components/govuk/govuk-checkboxes/govuk-checkboxes-item/govuk-checkboxes-item.component.d.ts +16 -0
- package/components/govuk/govuk-checkboxes/govuk-checkboxes.component.d.ts +10 -0
- package/components/govuk/govuk-checkboxes/interfaces/govuk-checkboxes-input.interface.d.ts +17 -0
- package/components/govuk/govuk-date-input/govuk-date-input.component.d.ts +18 -0
- package/components/govuk/govuk-date-input/interfaces/govuk-date-input.interface.d.ts +12 -0
- package/components/govuk/govuk-details/govuk-details.component.d.ts +6 -0
- package/components/govuk/govuk-error-summary/govuk-error-summary.component.d.ts +16 -0
- package/components/govuk/govuk-footer/constants/govuk-footer-links.constant.d.ts +2 -0
- package/components/govuk/govuk-footer/govuk-footer.component.d.ts +6 -0
- package/components/govuk/govuk-footer/interfaces/govuk-footer-links.interface.d.ts +5 -0
- package/components/govuk/govuk-header/constants/govuk-header-links.constant.d.ts +2 -0
- package/components/govuk/govuk-header/govuk-header-navigation-item/govuk-header-navigation-item.component.d.ts +12 -0
- package/components/govuk/govuk-header/govuk-header.component.d.ts +6 -0
- package/components/govuk/govuk-header/interfaces/govuk-header-links.interface.d.ts +4 -0
- package/components/govuk/govuk-heading-with-caption/govuk-heading-with-caption.component.d.ts +9 -0
- package/components/govuk/govuk-inset-text/govuk-inset-text.component.d.ts +6 -0
- package/components/govuk/govuk-notification-banner/govuk-notification-banner.component.d.ts +10 -0
- package/components/govuk/govuk-pagination/govuk-pagination.component.d.ts +44 -0
- package/components/govuk/govuk-panel/govuk-panel.component.d.ts +7 -0
- package/components/govuk/govuk-radio/govuk-radio.component.d.ts +11 -0
- package/components/govuk/govuk-radio/govuk-radios-conditional/govuk-radios-conditional.component.d.ts +10 -0
- package/components/govuk/govuk-radio/govuk-radios-divider/govuk-radios-divider.component.d.ts +5 -0
- package/components/govuk/govuk-radio/govuk-radios-item/govuk-radios-item.component.d.ts +18 -0
- package/components/govuk/govuk-radio/interfaces/govuk-radio-input.interface.d.ts +17 -0
- package/components/govuk/govuk-radio/interfaces/govuk-radio-options.interface.d.ts +4 -0
- package/components/govuk/govuk-select/govuk-select.component.d.ts +18 -0
- package/components/govuk/govuk-select/interfaces/govuk-select-options.interface.d.ts +4 -0
- package/components/govuk/govuk-summary-card-list/govuk-summary-card-action/govuk-summary-card-action.component.d.ts +17 -0
- package/components/govuk/govuk-summary-card-list/govuk-summary-card-list.component.d.ts +12 -0
- package/components/govuk/govuk-summary-list/govuk-summary-list-row/govuk-summary-list-row-actions/govuk-summary-list-row-action-item/govuk-summary-list-row-action-item.component.d.ts +15 -0
- package/components/govuk/govuk-summary-list/govuk-summary-list-row/govuk-summary-list-row-actions/govuk-summary-list-row-actions.component.d.ts +5 -0
- package/components/govuk/govuk-summary-list/govuk-summary-list-row/govuk-summary-list-row.component.d.ts +20 -0
- package/components/govuk/govuk-summary-list/govuk-summary-list.component.d.ts +7 -0
- package/components/govuk/govuk-table/govuk-table-body-row/govuk-table-body-row-data/govuk-table-body-row-data.component.d.ts +8 -0
- package/components/govuk/govuk-table/govuk-table-body-row/govuk-table-body-row.component.d.ts +7 -0
- package/components/govuk/govuk-table/govuk-table-heading/govuk-table-heading.component.d.ts +7 -0
- package/components/govuk/govuk-table/govuk-table.component.d.ts +6 -0
- package/components/govuk/govuk-tabs/govuk-tab-list-item/govuk-tab-list-item.component.d.ts +11 -0
- package/components/govuk/govuk-tabs/govuk-tab-panel/govuk-tab-panel.component.d.ts +9 -0
- package/components/govuk/govuk-tabs/govuk-tabs.component.d.ts +14 -0
- package/components/govuk/govuk-tag/govuk-tag.component.d.ts +7 -0
- package/components/govuk/govuk-task-list/govuk-task-list-item/govuk-task-list-item.component.d.ts +8 -0
- package/components/govuk/govuk-task-list/govuk-task-list.component.d.ts +7 -0
- package/components/govuk/govuk-text-area/govuk-text-area.component.d.ts +21 -0
- package/components/govuk/govuk-text-input-prefix-suffix/govuk-text-input-prefix-suffix.component.d.ts +22 -0
- package/components/govuk/index.d.ts +5 -0
- package/components/govuk/public-api.d.ts +52 -0
- package/components/moj/index.d.ts +5 -0
- package/components/moj/moj-badge/moj.badge.component.d.ts +7 -0
- package/components/moj/moj-banner/moj-banner.component.d.ts +8 -0
- package/components/moj/moj-button-menu/moj-button-menu-item/moj-button-menu-item.component.d.ts +8 -0
- package/components/moj/moj-button-menu/moj-button-menu.component.d.ts +10 -0
- package/components/moj/moj-date-picker/moj-date-picker.component.d.ts +40 -0
- package/components/moj/moj-header/constants/moj-header-links.constant.d.ts +2 -0
- package/components/moj/moj-header/interfaces/moj-header-links.interface.d.ts +4 -0
- package/components/moj/moj-header/moj-header-navigation-item/moj-header-navigation-item.component.d.ts +12 -0
- package/components/moj/moj-header/moj-header.component.d.ts +6 -0
- package/components/moj/moj-notification-badge/moj-notification-badge.component.d.ts +6 -0
- package/components/moj/moj-page-header/moj-page-header.component.d.ts +6 -0
- package/components/moj/moj-pagination/moj-pagination-item/moj-pagination-item.component.d.ts +6 -0
- package/components/moj/moj-pagination/moj-pagination-link/moj-pagination-link.component.d.ts +43 -0
- package/components/moj/moj-pagination/moj-pagination-list/moj-pagination-list.component.d.ts +6 -0
- package/components/moj/moj-pagination/moj-pagination.component.d.ts +108 -0
- package/components/moj/moj-primary-navigation/moj-primary-navigation-item/moj-primary-navigation-item.component.d.ts +18 -0
- package/components/moj/moj-primary-navigation/moj-primary-navigation.component.d.ts +26 -0
- package/components/moj/moj-sortable-table/moj-sortable-table-header/moj-sortable-table-header.component.d.ts +24 -0
- package/components/moj/moj-sortable-table/moj-sortable-table-row/moj-sortable-table-row-data/moj-sortable-table-row-data.component.d.ts +8 -0
- package/components/moj/moj-sortable-table/moj-sortable-table-row/moj-sortable-table-row.component.d.ts +7 -0
- package/components/moj/moj-sortable-table/moj-sortable-table-status/moj-sortable-table-status.component.d.ts +7 -0
- package/components/moj/moj-sortable-table/moj-sortable-table.component.d.ts +6 -0
- package/components/moj/moj-sub-navigation/moj-sub-navigation-item/moj-sub-navigation-item.component.d.ts +18 -0
- package/components/moj/moj-sub-navigation/moj-sub-navigation.component.d.ts +21 -0
- package/components/moj/moj-ticket-panel/moj-ticket-panel.component.d.ts +8 -0
- package/components/moj/moj-timeline/moj-timeline-item/moj-timeline-item.component.d.ts +5 -0
- package/components/moj/moj-timeline/moj-timeline.component.d.ts +5 -0
- package/components/moj/public-api.d.ts +27 -0
- package/constants/index.d.ts +5 -0
- package/constants/public-api.d.ts +4 -0
- package/constants/src/routing-paths.constant.d.ts +2 -0
- package/constants/src/routing-titles.constant.d.ts +2 -0
- package/constants/src/session-endpoints.constant.d.ts +2 -0
- package/constants/src/sso-endpoints.constant.d.ts +2 -0
- package/fesm2022/hmcts-opal-frontend-common-components-abstract.mjs +1288 -0
- package/fesm2022/hmcts-opal-frontend-common-components-abstract.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-components-alphagov.mjs +170 -0
- package/fesm2022/hmcts-opal-frontend-common-components-alphagov.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-components-govuk.mjs +1259 -0
- package/fesm2022/hmcts-opal-frontend-common-components-govuk.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-components-moj.mjs +861 -0
- package/fesm2022/hmcts-opal-frontend-common-components-moj.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-constants.mjs +36 -0
- package/fesm2022/hmcts-opal-frontend-common-constants.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-guards.mjs +134 -0
- package/fesm2022/hmcts-opal-frontend-common-guards.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-interceptors.mjs +31 -0
- package/fesm2022/hmcts-opal-frontend-common-interceptors.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-interfaces.mjs +4 -0
- package/fesm2022/hmcts-opal-frontend-common-interfaces.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-mocks.mjs +429 -0
- package/fesm2022/hmcts-opal-frontend-common-mocks.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-pages-sign-in-stub.component-eGVOJLC2.mjs +41 -0
- package/fesm2022/hmcts-opal-frontend-common-pages-sign-in-stub.component-eGVOJLC2.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-pages.mjs +109 -0
- package/fesm2022/hmcts-opal-frontend-common-pages.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-pipes.mjs +64 -0
- package/fesm2022/hmcts-opal-frontend-common-pipes.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-resolvers.mjs +40 -0
- package/fesm2022/hmcts-opal-frontend-common-resolvers.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-services.mjs +817 -0
- package/fesm2022/hmcts-opal-frontend-common-services.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-stores.mjs +40 -0
- package/fesm2022/hmcts-opal-frontend-common-stores.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-types.mjs +4 -0
- package/fesm2022/hmcts-opal-frontend-common-types.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common-validators.mjs +278 -0
- package/fesm2022/hmcts-opal-frontend-common-validators.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common.mjs +0 -1943
- package/fesm2022/hmcts-opal-frontend-common.mjs.map +1 -1
- package/{lib/guards → guards}/can-deactivate/can-deactivate.guard.d.ts +1 -1
- package/{lib/guards → guards}/can-deactivate/interfaces/can-deactivate-can-component-deactivate.interface.d.ts +1 -1
- package/{lib/guards → guards}/helpers/get-guard-with-dummy-url.d.ts +1 -1
- package/{lib/guards → guards}/helpers/handle-observable-result.d.ts +1 -1
- package/{lib/guards → guards}/helpers/run-has-flow-state-guard-with-context.d.ts +1 -1
- package/guards/index.d.ts +5 -0
- package/guards/public-api.d.ts +9 -0
- package/interceptors/index.d.ts +5 -0
- package/interceptors/public-api.d.ts +1 -0
- package/interfaces/index.d.ts +5 -0
- package/interfaces/public-api.d.ts +13 -0
- package/interfaces/src/parent-routing-paths.interface.d.ts +7 -0
- package/{lib/pages/routing/interfaces → interfaces/src}/routing-paths.interface.d.ts +1 -1
- package/mocks/index.d.ts +5 -0
- package/mocks/public-api.d.ts +8 -0
- package/mocks/src/route-permissions.mock.d.ts +3 -0
- package/mocks/src/session-token-expiry.mock.d.ts +2 -0
- package/mocks/src/session-user-state.mock.d.ts +2 -0
- package/mocks/src/transfer-state.mock.d.ts +2 -0
- package/package.json +106 -9
- package/pages/index.d.ts +5 -0
- package/{lib/pages → pages}/sign-in/sign-in.component.d.ts +10 -10
- package/pipes/date-format/date-format.pipe.d.ts +10 -0
- package/pipes/days-ago/days-ago.pipe.d.ts +7 -0
- package/pipes/index.d.ts +5 -0
- package/pipes/public-api.d.ts +2 -0
- package/public-api.d.ts +1 -10
- package/resolvers/index.d.ts +5 -0
- package/resolvers/public-api.d.ts +2 -0
- package/{lib/resolvers → resolvers}/user-state/user-state.resolver.d.ts +1 -1
- package/{lib/services → services}/date-service/date.service.d.ts +8 -0
- package/services/index.d.ts +5 -0
- package/{lib/services → services}/permissions-service/permissions.service.d.ts +1 -1
- package/services/public-api.d.ts +11 -0
- package/{lib/services → services}/session-service/session.service.d.ts +1 -1
- package/services/sort-service/interfaces/sort-service-values.interface.d.ts +7 -0
- package/{lib/services → services}/sort-service/sort-service.d.ts +1 -1
- package/{lib/services → services}/transfer-state-service/transfer-state.service.d.ts +1 -1
- package/{lib/services → services}/transformation-service/transformation.service.d.ts +1 -1
- package/{lib/stores → stores}/global/global.store.d.ts +1 -4
- package/stores/index.d.ts +5 -0
- package/stores/public-api.d.ts +1 -0
- package/types/index.d.ts +5 -0
- package/types/public-api.d.ts +4 -0
- package/types/src/abstract-sortable-table.type.d.ts +1 -0
- package/types/src/global-store.type.d.ts +2 -0
- package/types/src/sort-service.type.d.ts +1 -0
- package/validators/index.d.ts +5 -0
- package/{lib/validators → validators}/over-eighteen/over-eighteen.validator.d.ts +1 -1
- package/validators/public-api.d.ts +18 -0
- package/esm2022/hmcts-opal-frontend-common.mjs +0 -5
- package/esm2022/lib/components/govuk/govuk-button/govuk-button.component.mjs +0 -34
- package/esm2022/lib/components/govuk/govuk-text-input/govuk-text-input.component.mjs +0 -57
- package/esm2022/lib/components/govuk/index.mjs +0 -3
- package/esm2022/lib/guards/auth/auth.guard.mjs +0 -20
- package/esm2022/lib/guards/auth/index.mjs +0 -2
- package/esm2022/lib/guards/can-deactivate/can-deactivate.guard.mjs +0 -6
- package/esm2022/lib/guards/can-deactivate/index.mjs +0 -5
- package/esm2022/lib/guards/can-deactivate/interfaces/can-deactivate-can-component-deactivate.interface.mjs +0 -2
- package/esm2022/lib/guards/can-deactivate/interfaces/index.mjs +0 -2
- package/esm2022/lib/guards/has-flow-state/has-flow-state.guard.mjs +0 -16
- package/esm2022/lib/guards/has-flow-state/index.mjs +0 -2
- package/esm2022/lib/guards/helpers/get-guard-with-dummy-url.mjs +0 -19
- package/esm2022/lib/guards/helpers/handle-observable-result.mjs +0 -13
- package/esm2022/lib/guards/helpers/index.mjs +0 -5
- package/esm2022/lib/guards/helpers/run-auth-guard-with-context.mjs +0 -15
- package/esm2022/lib/guards/helpers/run-has-flow-state-guard-with-context.mjs +0 -9
- package/esm2022/lib/guards/index.mjs +0 -10
- package/esm2022/lib/guards/route-permissions/index.mjs +0 -2
- package/esm2022/lib/guards/route-permissions/route-permissions.guard.mjs +0 -25
- package/esm2022/lib/guards/signed-in/index.mjs +0 -3
- package/esm2022/lib/guards/signed-in/signed-in.guard.mjs +0 -20
- package/esm2022/lib/guards/types/can-deactivate.type.mjs +0 -2
- package/esm2022/lib/guards/types/guard-return.type.mjs +0 -2
- package/esm2022/lib/guards/types/index.mjs +0 -3
- package/esm2022/lib/interceptors/http-error/http-error.interceptor.mjs +0 -24
- package/esm2022/lib/interceptors/index.mjs +0 -3
- package/esm2022/lib/opal-frontend-common.module.mjs +0 -22
- package/esm2022/lib/pages/access-denied/access-denied.component.mjs +0 -18
- package/esm2022/lib/pages/index.mjs +0 -4
- package/esm2022/lib/pages/routing/constants/routing-paths.constant.mjs +0 -9
- package/esm2022/lib/pages/routing/constants/routing-titles.constant.mjs +0 -9
- package/esm2022/lib/pages/routing/interfaces/routing-paths.interface.mjs +0 -2
- package/esm2022/lib/pages/routing/pages.routes.mjs +0 -24
- package/esm2022/lib/pages/sign-in/interfaces/index.mjs +0 -2
- package/esm2022/lib/pages/sign-in/interfaces/sign-in-stub-form.interface.mjs +0 -2
- package/esm2022/lib/pages/sign-in/sign-in-sso/sign-in-sso.component.mjs +0 -23
- package/esm2022/lib/pages/sign-in/sign-in-stub/sign-in-stub.component.mjs +0 -39
- package/esm2022/lib/pages/sign-in/sign-in.component.mjs +0 -38
- package/esm2022/lib/resolvers/index.mjs +0 -3
- package/esm2022/lib/resolvers/title/index.mjs +0 -2
- package/esm2022/lib/resolvers/title/title.resolver.mjs +0 -22
- package/esm2022/lib/resolvers/user-state/index.mjs +0 -2
- package/esm2022/lib/resolvers/user-state/user-state.resolver.mjs +0 -12
- package/esm2022/lib/routing/constants/index.mjs +0 -2
- package/esm2022/lib/routing/constants/sso-endpoints.constant.mjs +0 -7
- package/esm2022/lib/routing/index.mjs +0 -3
- package/esm2022/lib/routing/interfaces/child-routing-paths.interface.mjs +0 -2
- package/esm2022/lib/routing/interfaces/index.mjs +0 -4
- package/esm2022/lib/routing/interfaces/nested-routes.interface.mjs +0 -2
- package/esm2022/lib/routing/interfaces/sso-endpoints.interface.mjs +0 -2
- package/esm2022/lib/services/app-initializer-service/app-initializer.service.mjs +0 -36
- package/esm2022/lib/services/app-initializer-service/index.mjs +0 -2
- package/esm2022/lib/services/app-insights/app-insights.service.mjs +0 -73
- package/esm2022/lib/services/app-insights/index.mjs +0 -4
- package/esm2022/lib/services/auth-service/auth.service.mjs +0 -36
- package/esm2022/lib/services/auth-service/index.mjs +0 -2
- package/esm2022/lib/services/date-service/date.service.mjs +0 -182
- package/esm2022/lib/services/date-service/index.mjs +0 -4
- package/esm2022/lib/services/index.mjs +0 -12
- package/esm2022/lib/services/launch-darkly/index.mjs +0 -5
- package/esm2022/lib/services/launch-darkly/launch-darkly.service.mjs +0 -94
- package/esm2022/lib/services/launch-darkly/mocks/index.mjs +0 -3
- package/esm2022/lib/services/launch-darkly/mocks/launch-darkly-change-flags.mock.mjs +0 -5
- package/esm2022/lib/services/launch-darkly/mocks/launch-darkly-flags.mock.mjs +0 -5
- package/esm2022/lib/services/permissions-service/index.mjs +0 -4
- package/esm2022/lib/services/permissions-service/permissions.service.mjs +0 -40
- package/esm2022/lib/services/session-service/constants/index.mjs +0 -2
- package/esm2022/lib/services/session-service/constants/session-endpoints.constant.mjs +0 -5
- package/esm2022/lib/services/session-service/index.mjs +0 -7
- package/esm2022/lib/services/session-service/interfaces/index.mjs +0 -4
- package/esm2022/lib/services/session-service/interfaces/session-endpoints.interface.mjs +0 -2
- package/esm2022/lib/services/session-service/interfaces/session-token-expiry.interface.mjs +0 -2
- package/esm2022/lib/services/session-service/interfaces/session-user-state.interface.mjs +0 -2
- package/esm2022/lib/services/session-service/mocks/index.mjs +0 -3
- package/esm2022/lib/services/session-service/mocks/session-token-expiry.mock.mjs +0 -5
- package/esm2022/lib/services/session-service/mocks/session-user-state.mock.mjs +0 -386
- package/esm2022/lib/services/session-service/session.service.mjs +0 -64
- package/esm2022/lib/services/sort-service/index.mjs +0 -6
- package/esm2022/lib/services/sort-service/interfaces/index.mjs +0 -3
- package/esm2022/lib/services/sort-service/interfaces/sort-service-values.interface.mjs +0 -2
- package/esm2022/lib/services/sort-service/interfaces/sort-service.interface.mjs +0 -2
- package/esm2022/lib/services/sort-service/sort-service.mjs +0 -90
- package/esm2022/lib/services/sort-service/types/index.mjs +0 -2
- package/esm2022/lib/services/sort-service/types/sort-service.type.mjs +0 -2
- package/esm2022/lib/services/transfer-state-service/index.mjs +0 -6
- package/esm2022/lib/services/transfer-state-service/interfaces/index.mjs +0 -4
- package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-app-insights-config.interface.mjs +0 -2
- package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-launch-darkly-config.interface.mjs +0 -2
- package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-server-state.interface.mjs +0 -2
- package/esm2022/lib/services/transfer-state-service/mocks/index.mjs +0 -4
- package/esm2022/lib/services/transfer-state-service/mocks/transfer-state-app-insights-config.mock.mjs +0 -6
- package/esm2022/lib/services/transfer-state-service/mocks/transfer-state-launch-darkly-config.mock.mjs +0 -6
- package/esm2022/lib/services/transfer-state-service/mocks/transfer-state.mock.mjs +0 -8
- package/esm2022/lib/services/transfer-state-service/transfer-state.service.mjs +0 -59
- package/esm2022/lib/services/transformation-service/index.mjs +0 -5
- package/esm2022/lib/services/transformation-service/interfaces/index.mjs +0 -2
- package/esm2022/lib/services/transformation-service/interfaces/transform-item.interface.mjs +0 -2
- package/esm2022/lib/services/transformation-service/transformation.service.mjs +0 -69
- package/esm2022/lib/services/utils/index.mjs +0 -4
- package/esm2022/lib/services/utils/utils.service.mjs +0 -86
- package/esm2022/lib/stores/global/global.store.mjs +0 -33
- package/esm2022/lib/stores/global/index.mjs +0 -6
- package/esm2022/lib/stores/global/interfaces/error-state.interface.mjs +0 -2
- package/esm2022/lib/stores/global/interfaces/index.mjs +0 -2
- package/esm2022/lib/stores/global/types/global-store.type.mjs +0 -2
- package/esm2022/lib/stores/global/types/index.mjs +0 -2
- package/esm2022/lib/stores/index.mjs +0 -2
- package/esm2022/lib/validators/alphabetical-text/alphabetical-text.validator.mjs +0 -10
- package/esm2022/lib/validators/amount/amount.validator.mjs +0 -15
- package/esm2022/lib/validators/date-after-year/date-after-year.validator.mjs +0 -12
- package/esm2022/lib/validators/date-before/date-before.validator.mjs +0 -15
- package/esm2022/lib/validators/date-of-birth/date-of-birth.validator.mjs +0 -18
- package/esm2022/lib/validators/future-date/future-date.validator.mjs +0 -15
- package/esm2022/lib/validators/index.mjs +0 -20
- package/esm2022/lib/validators/invalid-value/invalid-value.validator.mjs +0 -9
- package/esm2022/lib/validators/national-insurance-number/national-insurance-number.validator.mjs +0 -16
- package/esm2022/lib/validators/numerical-only/numerical-only.validator.mjs +0 -10
- package/esm2022/lib/validators/optional-max-length/optional-max-length.validator.mjs +0 -10
- package/esm2022/lib/validators/optional-valid-date/optional-valid-date.validator.mjs +0 -23
- package/esm2022/lib/validators/optional-valid-email-address/optional-valid-email-address.validator.mjs +0 -11
- package/esm2022/lib/validators/optional-valid-telephone/optional-valid-telephone.validator.mjs +0 -14
- package/esm2022/lib/validators/over-eighteen/over-eighteen.validator.mjs +0 -45
- package/esm2022/lib/validators/past-date/past-date.validator.mjs +0 -16
- package/esm2022/lib/validators/special-characters/special-characters.validator.mjs +0 -11
- package/esm2022/lib/validators/two-decimal-places/two-decimal-places.validator.mjs +0 -12
- package/esm2022/lib/validators/valid-value/valid-value.validator.mjs +0 -9
- package/esm2022/public-api.mjs +0 -11
- package/fesm2022/hmcts-opal-frontend-common-sign-in-stub.component-CysPzJGJ.mjs +0 -41
- package/fesm2022/hmcts-opal-frontend-common-sign-in-stub.component-CysPzJGJ.mjs.map +0 -1
- package/lib/components/govuk/index.d.ts +0 -2
- package/lib/guards/auth/index.d.ts +0 -1
- package/lib/guards/can-deactivate/index.d.ts +0 -2
- package/lib/guards/can-deactivate/interfaces/index.d.ts +0 -2
- package/lib/guards/has-flow-state/index.d.ts +0 -1
- package/lib/guards/helpers/index.d.ts +0 -4
- package/lib/guards/index.d.ts +0 -7
- package/lib/guards/route-permissions/index.d.ts +0 -1
- package/lib/guards/signed-in/index.d.ts +0 -1
- package/lib/guards/types/index.d.ts +0 -2
- package/lib/interceptors/index.d.ts +0 -2
- package/lib/opal-frontend-common.module.d.ts +0 -14
- package/lib/pages/routing/constants/routing-paths.constant.d.ts +0 -2
- package/lib/pages/routing/constants/routing-titles.constant.d.ts +0 -2
- package/lib/resolvers/index.d.ts +0 -2
- package/lib/resolvers/title/index.d.ts +0 -1
- package/lib/resolvers/user-state/index.d.ts +0 -1
- package/lib/routing/constants/index.d.ts +0 -1
- package/lib/routing/constants/sso-endpoints.constant.d.ts +0 -2
- package/lib/routing/index.d.ts +0 -2
- package/lib/routing/interfaces/index.d.ts +0 -3
- package/lib/services/app-initializer-service/index.d.ts +0 -1
- package/lib/services/app-insights/index.d.ts +0 -1
- package/lib/services/auth-service/index.d.ts +0 -1
- package/lib/services/date-service/index.d.ts +0 -1
- package/lib/services/index.d.ts +0 -11
- package/lib/services/launch-darkly/index.d.ts +0 -2
- package/lib/services/launch-darkly/mocks/index.d.ts +0 -2
- package/lib/services/permissions-service/index.d.ts +0 -1
- package/lib/services/session-service/constants/index.d.ts +0 -1
- package/lib/services/session-service/constants/session-endpoints.constant.d.ts +0 -2
- package/lib/services/session-service/index.d.ts +0 -4
- package/lib/services/session-service/interfaces/index.d.ts +0 -3
- package/lib/services/session-service/mocks/index.d.ts +0 -2
- package/lib/services/session-service/mocks/session-token-expiry.mock.d.ts +0 -2
- package/lib/services/session-service/mocks/session-user-state.mock.d.ts +0 -2
- package/lib/services/sort-service/index.d.ts +0 -3
- package/lib/services/sort-service/interfaces/index.d.ts +0 -2
- package/lib/services/sort-service/interfaces/sort-service-values.interface.d.ts +0 -6
- package/lib/services/sort-service/types/index.d.ts +0 -1
- package/lib/services/sort-service/types/sort-service.type.d.ts +0 -1
- package/lib/services/transfer-state-service/index.d.ts +0 -3
- package/lib/services/transfer-state-service/interfaces/index.d.ts +0 -3
- package/lib/services/transfer-state-service/mocks/index.d.ts +0 -3
- package/lib/services/transfer-state-service/mocks/transfer-state.mock.d.ts +0 -2
- package/lib/services/transformation-service/index.d.ts +0 -2
- package/lib/services/transformation-service/interfaces/index.d.ts +0 -1
- package/lib/services/utils/index.d.ts +0 -1
- package/lib/stores/global/index.d.ts +0 -3
- package/lib/stores/global/interfaces/index.d.ts +0 -1
- package/lib/stores/global/types/global-store.type.d.ts +0 -2
- package/lib/stores/global/types/index.d.ts +0 -1
- package/lib/stores/index.d.ts +0 -1
- package/lib/validators/index.d.ts +0 -19
- /package/{lib/components → components}/govuk/govuk-button/govuk-button.component.d.ts +0 -0
- /package/{lib/components → components}/govuk/govuk-text-input/govuk-text-input.component.d.ts +0 -0
- /package/{lib/guards → guards}/auth/auth.guard.d.ts +0 -0
- /package/{lib/guards → guards}/has-flow-state/has-flow-state.guard.d.ts +0 -0
- /package/{lib/guards → guards}/helpers/run-auth-guard-with-context.d.ts +0 -0
- /package/{lib/guards → guards}/route-permissions/route-permissions.guard.d.ts +0 -0
- /package/{lib/guards → guards}/signed-in/signed-in.guard.d.ts +0 -0
- /package/{lib/guards → guards}/types/guard-return.type.d.ts +0 -0
- /package/{lib/interceptors → interceptors}/http-error/http-error.interceptor.d.ts +0 -0
- /package/{lib/routing/interfaces → interfaces/src}/child-routing-paths.interface.d.ts +0 -0
- /package/{lib/stores/global/interfaces → interfaces/src}/error-state.interface.d.ts +0 -0
- /package/{lib/routing/interfaces → interfaces/src}/nested-routes.interface.d.ts +0 -0
- /package/{lib/services/session-service/interfaces → interfaces/src}/session-endpoints.interface.d.ts +0 -0
- /package/{lib/services/session-service/interfaces → interfaces/src}/session-token-expiry.interface.d.ts +0 -0
- /package/{lib/services/session-service/interfaces → interfaces/src}/session-user-state.interface.d.ts +0 -0
- /package/{lib/routing/interfaces → interfaces/src}/sso-endpoints.interface.d.ts +0 -0
- /package/{lib/services/transfer-state-service/interfaces → interfaces/src}/transfer-state-app-insights-config.interface.d.ts +0 -0
- /package/{lib/services/transfer-state-service/interfaces → interfaces/src}/transfer-state-launch-darkly-config.interface.d.ts +0 -0
- /package/{lib/services/transfer-state-service/interfaces → interfaces/src}/transfer-state-server-state.interface.d.ts +0 -0
- /package/{lib/services/transformation-service/interfaces → interfaces/src}/transform-item.interface.d.ts +0 -0
- /package/{lib/services/launch-darkly/mocks → mocks/src}/launch-darkly-change-flags.mock.d.ts +0 -0
- /package/{lib/services/launch-darkly/mocks → mocks/src}/launch-darkly-flags.mock.d.ts +0 -0
- /package/{lib/services/transfer-state-service/mocks → mocks/src}/transfer-state-app-insights-config.mock.d.ts +0 -0
- /package/{lib/services/transfer-state-service/mocks → mocks/src}/transfer-state-launch-darkly-config.mock.d.ts +0 -0
- /package/{lib/pages → pages}/access-denied/access-denied.component.d.ts +0 -0
- /package/{lib/pages/index.d.ts → pages/public-api.d.ts} +0 -0
- /package/{lib/pages → pages}/routing/pages.routes.d.ts +0 -0
- /package/{lib/pages → pages}/sign-in/interfaces/index.d.ts +0 -0
- /package/{lib/pages → pages}/sign-in/interfaces/sign-in-stub-form.interface.d.ts +0 -0
- /package/{lib/pages → pages}/sign-in/sign-in-sso/sign-in-sso.component.d.ts +0 -0
- /package/{lib/pages → pages}/sign-in/sign-in-stub/sign-in-stub.component.d.ts +0 -0
- /package/{lib/resolvers → resolvers}/title/title.resolver.d.ts +0 -0
- /package/{lib/services → services}/app-initializer-service/app-initializer.service.d.ts +0 -0
- /package/{lib/services → services}/app-insights/app-insights.service.d.ts +0 -0
- /package/{lib/services → services}/auth-service/auth.service.d.ts +0 -0
- /package/{lib/services → services}/launch-darkly/launch-darkly.service.d.ts +0 -0
- /package/{lib/services → services}/sort-service/interfaces/sort-service.interface.d.ts +0 -0
- /package/{lib/services → services}/utils/utils.service.d.ts +0 -0
- /package/{lib/guards/types → types/src}/can-deactivate.type.d.ts +0 -0
- /package/{lib/validators → validators}/alphabetical-text/alphabetical-text.validator.d.ts +0 -0
- /package/{lib/validators → validators}/amount/amount.validator.d.ts +0 -0
- /package/{lib/validators → validators}/date-after-year/date-after-year.validator.d.ts +0 -0
- /package/{lib/validators → validators}/date-before/date-before.validator.d.ts +0 -0
- /package/{lib/validators → validators}/date-of-birth/date-of-birth.validator.d.ts +0 -0
- /package/{lib/validators → validators}/future-date/future-date.validator.d.ts +0 -0
- /package/{lib/validators → validators}/invalid-value/invalid-value.validator.d.ts +0 -0
- /package/{lib/validators → validators}/national-insurance-number/national-insurance-number.validator.d.ts +0 -0
- /package/{lib/validators → validators}/numerical-only/numerical-only.validator.d.ts +0 -0
- /package/{lib/validators → validators}/optional-max-length/optional-max-length.validator.d.ts +0 -0
- /package/{lib/validators → validators}/optional-valid-date/optional-valid-date.validator.d.ts +0 -0
- /package/{lib/validators → validators}/optional-valid-email-address/optional-valid-email-address.validator.d.ts +0 -0
- /package/{lib/validators → validators}/optional-valid-telephone/optional-valid-telephone.validator.d.ts +0 -0
- /package/{lib/validators → validators}/past-date/past-date.validator.d.ts +0 -0
- /package/{lib/validators → validators}/special-characters/special-characters.validator.d.ts +0 -0
- /package/{lib/validators → validators}/two-decimal-places/two-decimal-places.validator.d.ts +0 -0
- /package/{lib/validators → validators}/valid-value/valid-value.validator.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-components-moj.mjs","sources":["../../../projects/opal-frontend-common/components/moj/moj-badge/moj.badge.component.ts","../../../projects/opal-frontend-common/components/moj/moj-badge/moj-badge.component.html","../../../projects/opal-frontend-common/components/moj/moj-banner/moj-banner.component.ts","../../../projects/opal-frontend-common/components/moj/moj-banner/moj-banner.component.html","../../../projects/opal-frontend-common/components/moj/moj-button-menu/moj-button-menu-item/moj-button-menu-item.component.ts","../../../projects/opal-frontend-common/components/moj/moj-button-menu/moj-button-menu-item/moj-button-menu-item.component.html","../../../projects/opal-frontend-common/components/moj/moj-button-menu/moj-button-menu.component.ts","../../../projects/opal-frontend-common/components/moj/moj-button-menu/moj-button-menu.component.html","../../../projects/opal-frontend-common/components/moj/moj-date-picker/moj-date-picker.component.ts","../../../projects/opal-frontend-common/components/moj/moj-date-picker/moj-date-picker.component.html","../../../projects/opal-frontend-common/components/moj/moj-header/moj-header-navigation-item/moj-header-navigation-item.component.ts","../../../projects/opal-frontend-common/components/moj/moj-header/moj-header-navigation-item/moj-header-navigation-item.component.html","../../../projects/opal-frontend-common/components/moj/moj-header/constants/moj-header-links.constant.ts","../../../projects/opal-frontend-common/components/moj/moj-header/moj-header.component.ts","../../../projects/opal-frontend-common/components/moj/moj-header/moj-header.component.html","../../../projects/opal-frontend-common/components/moj/moj-notification-badge/moj-notification-badge.component.ts","../../../projects/opal-frontend-common/components/moj/moj-notification-badge/moj-notification-badge.component.html","../../../projects/opal-frontend-common/components/moj/moj-page-header/moj-page-header.component.ts","../../../projects/opal-frontend-common/components/moj/moj-page-header/moj-page-header.component.html","../../../projects/opal-frontend-common/components/moj/moj-pagination/moj-pagination-item/moj-pagination-item.component.ts","../../../projects/opal-frontend-common/components/moj/moj-pagination/moj-pagination-item/moj-pagination-item.component.html","../../../projects/opal-frontend-common/components/moj/moj-pagination/moj-pagination-link/moj-pagination-link.component.ts","../../../projects/opal-frontend-common/components/moj/moj-pagination/moj-pagination-link/moj-pagination-link.component.html","../../../projects/opal-frontend-common/components/moj/moj-pagination/moj-pagination-list/moj-pagination-list.component.ts","../../../projects/opal-frontend-common/components/moj/moj-pagination/moj-pagination-list/moj-pagination-list.component.html","../../../projects/opal-frontend-common/components/moj/moj-pagination/moj-pagination.component.ts","../../../projects/opal-frontend-common/components/moj/moj-pagination/moj-pagination.component.html","../../../projects/opal-frontend-common/components/moj/moj-primary-navigation/moj-primary-navigation-item/moj-primary-navigation-item.component.ts","../../../projects/opal-frontend-common/components/moj/moj-primary-navigation/moj-primary-navigation-item/moj-primary-navigation-item.component.html","../../../projects/opal-frontend-common/components/moj/moj-primary-navigation/moj-primary-navigation.component.ts","../../../projects/opal-frontend-common/components/moj/moj-primary-navigation/moj-primary-navigation.component.html","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table-header/moj-sortable-table-header.component.ts","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table-header/moj-sortable-table-header.component.html","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table-row/moj-sortable-table-row-data/moj-sortable-table-row-data.component.ts","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table-row/moj-sortable-table-row-data/moj-sortable-table-row-data.component.html","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table-row/moj-sortable-table-row.component.ts","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table-row/moj-sortable-table-row.component.html","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table-status/moj-sortable-table-status.component.ts","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table-status/moj-sortable-table-status.component.html","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table.component.ts","../../../projects/opal-frontend-common/components/moj/moj-sortable-table/moj-sortable-table.component.html","../../../projects/opal-frontend-common/components/moj/moj-sub-navigation/moj-sub-navigation-item/moj-sub-navigation-item.component.ts","../../../projects/opal-frontend-common/components/moj/moj-sub-navigation/moj-sub-navigation-item/moj-sub-navigation-item.component.html","../../../projects/opal-frontend-common/components/moj/moj-sub-navigation/moj-sub-navigation.component.ts","../../../projects/opal-frontend-common/components/moj/moj-sub-navigation/moj-sub-navigation.component.html","../../../projects/opal-frontend-common/components/moj/moj-ticket-panel/moj-ticket-panel.component.ts","../../../projects/opal-frontend-common/components/moj/moj-ticket-panel/moj-ticket-panel.component.html","../../../projects/opal-frontend-common/components/moj/moj-timeline/moj-timeline-item/moj-timeline-item.component.ts","../../../projects/opal-frontend-common/components/moj/moj-timeline/moj-timeline-item/moj-timeline-item.component.html","../../../projects/opal-frontend-common/components/moj/moj-timeline/moj-timeline.component.ts","../../../projects/opal-frontend-common/components/moj/moj-timeline/moj-timeline.component.html","../../../projects/opal-frontend-common/components/moj/public-api.ts","../../../projects/opal-frontend-common/components/moj/hmcts-opal-frontend-common-components-moj.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-badge',\n imports: [],\n templateUrl: './moj-badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojBadgeComponent {\n @Input({ required: true }) badgeId!: string;\n @Input({ required: false }) badgeClasses!: string;\n}\n","<span class=\"moj-badge {{ badgeClasses }}\" [id]=\"badgeId\"><ng-content></ng-content> </span>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type MojBannerType = 'success' | 'warning' | 'information';\n@Component({\n selector: 'opal-lib-moj-banner',\n templateUrl: './moj-banner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojBannerComponent {\n @Input({ required: true }) text!: string;\n @Input({ required: true }) type: MojBannerType = 'success';\n}\n","<section class=\"moj-banner moj-banner--{{ type }}\">\n <svg\n class=\"moj-banner__icon\"\n fill=\"currentColor\"\n role=\"presentation\"\n focusable=\"false\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 25 25\"\n height=\"25\"\n width=\"25\"\n >\n @if (type === 'success') {\n <path d=\"M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z\" />\n }\n @if (type === 'warning') {\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 }\n @if (type === 'information') {\n <path\n 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\tC13.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\"\n />\n }\n </svg>\n <div id=\"{{ type }}-message\" class=\"moj-banner__message\" role=\"alert\">{{ text }}</div>\n</section>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-button-menu-item',\n imports: [],\n templateUrl: './moj-button-menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojButtonMenuItemComponent {\n @Output() actionClick = new EventEmitter<boolean>();\n\n public handleClick(event: Event) {\n event.preventDefault();\n this.actionClick.emit(true);\n }\n}\n","<a\n href=\"\"\n role=\"menuitem\"\n draggable=\"false\"\n class=\"moj-button-menu__item\"\n data-module=\"govuk-button\"\n data-secondary=\"true\"\n (click)=\"handleClick($event)\"\n>\n <ng-content select=\"[linkText]\"></ng-content>\n</a>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-button-menu',\n imports: [],\n templateUrl: './moj-button-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojButtonMenuComponent {\n @Input({ required: true }) menuButtonTitle!: string;\n\n /**\n * Toggles the button menu by changing the `aria-expanded` attribute of the toggle button.\n */\n public toggleButtonMenu() {\n const button = document.querySelector('.moj-button-menu__toggle-button')!;\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\n button.setAttribute('aria-expanded', String(!isExpanded));\n }\n}\n","<div class=\"moj-button-menu\">\n <button\n class=\"govuk-button moj-button-menu__toggle-button govuk-button--secondary moj-button-menu__toggle-button--secondary\"\n type=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleButtonMenu()\"\n >\n {{ menuButtonTitle }}\n </button>\n <div class=\"moj-button-menu__wrapper\" role=\"menu\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n afterNextRender,\n inject,\n} from '@angular/core';\nimport { FormControl, AbstractControl, ReactiveFormsModule } from '@angular/forms';\nimport { DateService } from '@hmcts/opal-frontend-common/services';\n\n@Component({\n selector: 'opal-lib-moj-date-picker',\n imports: [CommonModule, ReactiveFormsModule],\n templateUrl: './moj-date-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojDatePickerComponent implements OnInit {\n private _control!: FormControl;\n public disabledDatesConcatenated!: string;\n\n private readonly dateService = inject(DateService);\n\n @Input({ required: true }) labelText!: string;\n @Input({ required: false }) labelClasses!: string;\n @Input({ required: false }) hintText!: string;\n @Input({ required: true }) inputId!: string;\n @Input({ required: true }) inputName!: string;\n @Input({ required: false }) inputClasses!: string;\n @Input({ required: false }) minDate!: string;\n @Input({ required: false }) maxDate!: string;\n @Input({ required: false }) disabledDates!: string[];\n @Input({ required: false }) disabledDays!: string;\n @Input({ required: false }) errors: string | null = null;\n @Output() dateChange = new EventEmitter<string>();\n\n @Input({ required: true }) set control(abstractControl: AbstractControl) {\n // Form controls are passed in as abstract controls, we need to re-cast it.\n this._control = abstractControl as FormControl;\n }\n\n get getControl() {\n return this._control;\n }\n\n constructor() {\n afterNextRender(() => {\n // Only trigger the render of the component in the browser\n this.configureDatePicker();\n });\n }\n\n /**\n * Retrieves the disabled dates and concatenates them into a single string.\n */\n private concatenateDisabledDates(): void {\n this.disabledDatesConcatenated = this.disabledDates ? this.disabledDates.join(' ') : '';\n }\n\n /**\n * Sets the date value and emits the updated value through the `dateChange` event.\n *\n * @param value - The new date value to set.\n */\n protected setDateValue(value: string) {\n const parsedDate = this.dateService.getFromFormat(value, 'd/M/yyyy');\n if (parsedDate.isValid) {\n const formattedDate = parsedDate.toFormat('dd/MM/yyyy'); // Formats with leading zeros\n this.dateChange.emit(formattedDate);\n } else {\n this.dateChange.emit(value);\n }\n }\n\n /**\n * Configures the date picker functionality using the moj library.\n */\n public configureDatePicker(): void {\n import('@ministryofjustice/frontend/moj/all').then((datePicker) => {\n datePicker.initAll();\n });\n }\n\n public ngOnInit(): void {\n this.concatenateDisabledDates();\n }\n}\n","<div\n class=\"moj-datepicker\"\n data-module=\"moj-date-picker\"\n [attr.data-min-date]=\"minDate\"\n [attr.data-max-date]=\"maxDate\"\n [attr.data-excluded-dates]=\"disabledDatesConcatenated\"\n [attr.data-excluded-days]=\"disabledDays\"\n>\n <div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"inputId\"> {{ labelText }} </label>\n\n @if (hintText) {\n <div id=\"date-hint\" class=\"govuk-hint\">{{ hintText }}</div>\n }\n\n @if (errors) {\n <p id=\"{{ inputId }}-date-error\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <input\n class=\"govuk-input moj-js-datepicker-input {{ inputClasses }}\"\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"text\"\n aria-describedby=\"date-hint\"\n autocomplete=\"off\"\n [formControl]=\"getControl\"\n (change)=\"setDateValue($any($event).target.value)\"\n />\n </div>\n</div>\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-header-navigation-item, [opal-lib-moj-header-navigation-item]',\n templateUrl: './moj-header-navigation-item.component.html',\n})\nexport class MojHeaderNavigationItemComponent {\n @Output() public actionClick = new EventEmitter<boolean>();\n\n /**\n * Handles the click event for the action button.\n * @param event - The click event.\n */\n handleClick(event: Event): void {\n event.preventDefault();\n this.actionClick.emit(true);\n }\n}\n","<li class=\"moj-header__navigation-item\" role=\"listitem\">\n <a\n class=\"moj-header__navigation-link\"\n (click)=\"handleClick($event)\"\n (keyup.enter)=\"handleClick($event)\"\n tabindex=\"0\"\n href=\"#\"\n >\n <ng-content select=\"[linkText]\"></ng-content>\n </a>\n</li>\n","import { IMojHeaderLinks } from '../interfaces/moj-header-links.interface';\n\nexport const MOJ_HEADER_LINKS: IMojHeaderLinks = {\n govukLink: 'https://www.gov.uk/',\n serviceLink: '/',\n};\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { MOJ_HEADER_LINKS } from './constants/moj-header-links.constant';\n\n@Component({\n selector: 'opal-lib-moj-header',\n imports: [RouterLink],\n templateUrl: './moj-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojHeaderComponent {\n public readonly headerLinks = MOJ_HEADER_LINKS;\n}\n","<header class=\"moj-header\" role=\"banner\">\n <div class=\"moj-header__container\">\n <div class=\"moj-header__logo\">\n <a [href]=\"headerLinks.govukLink\" class=\"govuk-header__link\" title=\"GOV.UK\" aria-label=\"GOV.UK home page\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"moj-header__logotype-crest\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 40 40\"\n height=\"40\"\n width=\"40\"\n >\n <path\n fill=\"#ffffff\"\n fill-rule=\"evenodd\"\n d=\"M38.1 16.9c.1 1.8 2.2 1.3 1.9 2.7 0-.9-3-.8-3-2.6 0-.3.1-.7.3-.9-.1-.1-.2-.1-.5-.1-.6 0-1.2.6-1.2 1.3 0 2.2 3 2.6 3 5.1 0 .6-.2 1-.6 1.2.2 0 .7-.1.8-.3-.2 1-1.2 1-1.6.6h-.3c.2.4.4.8.9.7-.9.7-2-.2-1.8-1.2-.2-.3-.4-.7-.6-.9-.1-.2-.2-.1-.2.1 0 .8-.6 1.6-.6 2.1 0 .6.6 1.1.8 1.1s.3-.2.4-.2c.1.1.1.2.1.7 0 .2 0 1 .1 1.7 0-.2.2-.3.3-.4.2-.1.4-.2.7-.1.1 0 .3.1.3.2.1.1.1.2.1.3 0 .2-.2.4-.3.6-.2.1-.3.2-.6.1-.2 0-.3-.1-.4-.2v-.1.7c0 .6-.1.8-.3.9 0-.1-.2-.2-.3-.2-.1 0-.3.1-.3.2 0 .2.3.2.3.6s-.8.8-1.3.8c.1-.2.2-.8.3-1.1-.1.1-.3.3-.4.7-.1.4-.3.4-.6.3.2-.2.6-1.1 1-1.3.4-.3.6-.4.7-1.1.1-.7 0-1.1 0-1.7 0-.8-.3-.7-.6-.7-.6 0-2.6-1.3-2.6-2.7v-.4c-.9 0-1.5.2-1.5 1.1 0 .3 0 .6.2.8.2.1.3.3 0 .4-.3.1-3.1 1.3-3.1 1.3-.3.1-.4 0-.6-.2-.1-.2-.3-.2-.4-.1-.2.1.1.2.1.4s-.1.7-1.3.6l.3-.6c.1-.2.1-.3.1-.3-.1 0-.1.1-.2.3l-.3.4h-.4l1-1c.2-.2.6-.4 1.1-.4.7-.1 2.9-.4 2.9-1.1 0-.8-.9-.8-.9-1.9 0-1 .4-2 3-1.9-.2-.7-.9-1.1-1.6-1.2-1.3-.3-1.7-1.2-1.8-2.1h-1c-.8 0-1.2-.3-1.5-.1-.1.1-.1.2 0 .3.1.2.3.7.6 1 .1 0 .4 0 .4.2s-.1.2-.1.3 0 .2.1.2.1-.1.1-.2c.1-.1.3-.1.7 0 .2.2.6.6.7 1-.3-.1-.8-.3-.9-.3s-.1.1 0 .1.4.2.6.3v.3c-.1-.1-.7-.4-1.1-.6-.3-.1-.6-.2-.8-.7-.2-.4-.8-1.6-1-1.9-.1-.2-.1-.3 0-.4.1-.1.1-.2.2-.3.1-.2.2-.2.4-.2s.8 0 1-.1c0 0 .1 0 .2-.1-.6-.6-1.2-1.4-1.2-1.6-.1-.1-.2-.2-.3-.2s-.2 0-.3.1l-.1.1c0-.1-.1-.1-.1-.2l-.3-.3c.2-.1.3-.3.4-.3.1-.1.2-.2.3-.2h.3c.2 0 .2 0 .3.1.2.2.6.4.8.7 0 0 .1 0 .1.1l.1-.1c.1-.1.2-.1.3-.1s.2.1.3.2.2.3.2.6v.2l.6.6c.1-.7.4-1.4.9-2h-.1v-.1c.1-.3.2-.9.3-1.1v-.3l.8.3.1-.1c.7-.7 2.3-1.1 2.3-2.1 0-.2-.1-.6-.3-.8.1.1.1.3.1.6 0 .2-.4.8-1.1.8-.3 0-.7-.3-.8-.3s-.2.1-.3.1c0 .4-.2.8-.3.8.1-.2 0-.6 0-.6-.1 0-.1.1-.1.4 0 .3-.2.7-.7.7.1-.1.2-.6.1-.7-.1-.1-.2.1-.3.1s-.2-.1-.2-.2-.2 0-.2-.1.2-.3.4-.3c.2-.1.6-.2.6-.4-.1-.2-.9.1-1.1.3-.4.3-.2-.1-.3-.2-.2-.4 0-.4.2-.7.2-.2.8-.7 1.5-1 0-.2.1-.3.3-.4.2-.1.6-.2.8-.3l-3.8-4c-.1-.1-.1-.1 0-.2 0 0 .1 0 .2.1l4 3.9c.3-.6.4-.9.3-1.3.4.2.9.7 1 1.2 1.2 0 1.6.8 1.9.4 0 .2-.1.3-.6.4 1.5.3 1 1.3 1.8 1.4-.1.1-.3.2-.6.1.9 1.3 0 2.1.7 2.8-.2.1-.7-.1-.9-.6.2 1.1-.1 1.7.1 2.1-.3.1-.6-.2-.7-.6-.1.2-.1.4-.2.7l.3.1-.1.1c-.6.6-.8.9-.9 1l-.1.1-.1-.1c-.3.4-.7.8-.7 1.2 0 .4.6 1.3 1.2 2.1v-.2c0-.1.1-.3.2-.4.1-.1.2-.1.4-.1s.4.1.6.3c.1.2.2.3.2.6 0 .1-.1.3-.2.4-.1.1-.2.1-.4.1-.1 0-.3-.1-.4-.1.4.6.9 1.2 1.1 1.7.4.9.9 1.4 1.3 1.4.6 0 1.1-.4 1.1-1.1 0-2.3-3-2.6-3-5.2 0-1.2 1-1.8 1.7-1.8.4 0 .7.1.9.3h.2c1.5 0 .6 1.9 1.7 2-.3.5-1 .2-1.3-.7zM30.3 10c.3-.2.8-.3 1.2-.3-.3-.1-.6-.3-.8-.3-.4-.1-.3.4-.4.6zm-2.7 5.5c0-.1 0-.3-.1-.3 0 0-.1-.1-.2-.1s-.1 0-.2.1-.1.2-.1.3c0 .2.1.4.3.4.1 0 .1 0 .2-.1 0 0 .1-.1.1-.3zm8.7 12.6v.2c.1.2.4.2.7 0 .1-.1.2-.2.2-.3v-.2c-.1-.1-.1-.1-.2-.1s-.3 0-.4.1c-.2.1-.3.2-.3.3zm-1.9-8.3c0 .1.1.3.2.4.1.1.2.2.4.2.1 0 .1 0 .2-.1s.1-.1.1-.2-.1-.3-.2-.4c-.1-.1-.2-.2-.4-.2-.1 0-.1 0-.2.1s-.1.1-.1.2zm-.8-3.2c.3-.3.9-1 .9-1l-.3-.3v.6c-.1-.1-.2-.2-.2-.3l-.2.3c.1 0 .3 0 .3.1-.2.2-.6.1-.7 0-.2-.2-.3-.3-.3-.4.1-.1.3-.1.4.1.2 0 .2-.2.2-.3-.1-.1-.2-.1-.3-.1.3-.2.6-.4.4-.9-.4.1-.6.3-.7.7 0-.1-.1-.3-.2-.3s-.3.1-.3.3c.2-.1.4.1.3.3-.1.1-.3.1-.6 0-.3-.4-.3-.6-.1-.9.1.1.1.2.1.4l.3-.6c-.1 0-.2.1-.3 0 .1-.1.2-.2.4-.3l-.7-.2c.1.2 0 .4 0 .6-.1-.1-.2-.2-.2-.3l-.3.6c.1-.1.3-.1.4-.1-.1.2-.4.3-.7.2-.2-.1-.3-.3-.3-.4.1-.1.3-.1.4.1.2-.1.2-.3.1-.4-.1-.1-.2-.1-.4 0 .3-.3.4-.6.3-1-.3.1-.6.4-.6.8 0-.1-.1-.2-.2-.2s-.3.1-.2.3c.2-.1.4.1.3.3-.1.1-.2.1-.6 0-.2-.1-.4-.2-.3-.6.1 0 .2.2.3.2l.1-.4h-.3c.1-.1.3-.2.4-.3l-.4-.2s-.2.9-.4 1.3l4.2 2.3zm0 7.9c.1-.2.1-.6 0-.7-.2-.1-.4 0-.7.2-.1.2-.1.6 0 .7.1.1.5 0 .7-.2zm1.1-1.9c.1-.2.1-.6 0-.7-.2-.1-.4 0-.7.2-.1.2-.1.6 0 .7.3.1.6 0 .7-.2zM27.4 18c.2-.1.4 0 .7 0 .2.1.3.3.4.4v.4l-.3.3c-.2.1-.4 0-.7 0-.5-.1-.6-.4-.5-.8.1-.2.2-.3.4-.3zm.2 1c.1.1.3.1.4 0 .1 0 .1-.1.2-.1v-.2c0-.1-.1-.2-.3-.3-.1-.1-.3-.1-.4 0-.1 0-.1.1-.2.1-.1.1.1.3.3.5zm4.8 7.2c.1-.1.2-.2.4-.2s.3.1.4.2c.1.1.2.3.2.6 0 .2-.1.4-.2.6-.1.1-.2.2-.4.2-.1 0-.3-.1-.4-.2-.1-.1-.2-.3-.2-.6 0-.2 0-.5.2-.6zm.3 1.1c.1 0 .2 0 .2-.1.1-.1.1-.2.2-.4 0-.3-.1-.6-.3-.6-.1 0-.2 0-.2.1-.1.1-.1.2-.2.4 0 .2 0 .3.1.4.1.1.1.2.2.2zm-4.8-13.8c.2-.1.3-.2.6-.2.1 0 .2.1.3.2s.1.2.1.4-.1.3-.3.6c-.3.2-.8.2-.9 0-.1-.3 0-.6.2-1zm0 .7v.2c.1.1.3.1.6 0 .1-.1.2-.2.2-.3v-.2c0-.1-.1-.1-.2-.1s-.2 0-.3.1c-.2 0-.3.2-.3.3zm5.7 13.7c.2-.1.4-.2.7-.1.4.1.8.4.7.8 0 .2-.1.3-.3.4-.1.1-.3.1-.6.1s-.3-.1-.6-.2c-.1-.1-.2-.3-.1-.6-.1-.2 0-.3.2-.4zm.4.9c.3 0 .6-.1.6-.3 0-.2-.2-.3-.4-.4-.2 0-.3 0-.4.1 0 0-.1.1-.1.2-.2.1 0 .3.3.4zm3.3-1.9c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1c-.5 0-1-.4-1-1zm.3 0c0 .4.3.8.8.8s.8-.3.8-.8c0-.4-.3-.8-.8-.8-.4.1-.8.5-.8.8zm-23.3-5.8c-.1.3.1.3.1.7 0 .3-.2.4-.6.6.2-.4 0-.7-.3-.8.1.8-.6.9-.8.8.2 0 .3-.4.2-.8-.1.2-.4.4-.7.4s-.4-.2-.6-.4c.3.2.6 0 .6-.2 0-.1-.3-.2-.3-.4 0-.6.6-.3.6-.8 0-.2-.1-.3-.2-.3s-.3.1-.3.3c-.3-.2 0-.9-.1-1.2 0 .7-.4.6-.6.9-.2-.2 0-.7-.2-1.2-.1.6-.3.4-.3.9-.6-.3-1.7-.2-2 .2 1 .8 2.2 1.2 2.2 2.4 0 .9-1.5 1.3-1.5 1.9 0 .6 1.5 2 2.2 2 .2 0 .3-.3.6-.3h.6c.2 0 .3.2.3.3.3 0 .8.6.3 1-.1-.2-.3-.6-.8-.3.2.4 0 .8-.4 1 .1-.2.2-.6-.1-.6s0 .2-.7.2c-.6 0-.6 0-.8-.3-.2-.3-.4-.4-.6-.4s-.2.3 0 .6c-1.2 0-.7-1.2-1.3-1.6v.9c-.4-.5-.8-.9-.8-1.3-.1-.3 0-.6-.3-.8-.1 0-.2-.1-.2-.3 0-.1.1-.1.3-.2.2-.1.6-.3.6-1 0-.4-.1-1.1-.9-1.7.1 1 0 1.9-.4 2.7-.6 1-1.7 1.7-2.2 1.9-.6.2-1.3.4-1.3 1.2 0 1.4.7 2.2 1.2 2.2.4 0 .3-.4.9-.4.2 0 .6.1.6.3.3-.1.7.1.7.4 0 .3-.1.4-.3.6.2-.4-.3-.4-.4-.4-.1.1 0 .2 0 .4s-.1.4-.4.6c.1-.1.1-.3-.2-.3-.2 0-.3.4-.7.4-.6 0-.7-.2-1.2-.1-.3.1-.3.3-.2.3-.7 0-.6-.8-.4-.9.1-.1.2-.2 0-.4-.2-.1-.6 0-.7.3-.6-1.1.2-1 0-2.2-.1.6-.4.9-.7 1 .1-.2-.1-.8-.1-1.2 0-.9.6-1.2.6-1.4 0-.2-.2-.4 0-.6.1-.1.3.1.6.1.7 0 1.2-.9 1.3-2 .1-1.2.7-2.1 1.1-3 0-.1 0-.3.1-.4-.6.7-1 1.6-1.7 2.1.1.8-1.5 1.7-2.3 1 .3 0 .8-.1 1-.6-.1 0-.2 0-.3-.1-.6.3-1.3-.1-1.3-.7.2.2.4.3.8.2.2-.1.1-.4.1-.8 0-2.3 3.6-3.9 3.6-5.8 0-.6-.3-.9-.8-.9-.2 0-.4.1-.7.2.2.1.3.3.3.6 0 2.1-3.5 1.9-3.7 3.3-.1-1.8 2-1.4 2.1-2.9-.4.7-1.2 1.1-1.7.9 1.1 0 .8-2.2 2-2.2.1 0 .2 0 .4.1.3-.3.8-.4 1.1-.4.6 0 1.3.3 1.3 1.3 0 2.2-3.6 3.7-3.6 5.8 0 .7.4 1 1 1 1.2 0 2.1-2.2 3.5-4.1.9-1.2 1.5-3.7 2-4.9-.7.4-.8 1.8-1.6 1.9.4-.3.1-1.4.4-2.3.1-.3.1-.6.1-.9-.4.6-.3 2.2-1.1 2.4.3-.3 0-.9 0-1.4 0-1 .6-1.1.6-2.1-.4.2-.3 1.4-1.2 1.4.7-.7 0-1.3.8-2.1-.4-.2-.8-.6-.8-.9.3-.2.7-.3 1-.3-.3-.2-.2-.4 0-.7.1.2.2.3.3.3.3-.1.8-.6 1.5-.8.5-.2 1.3-.5 1.6-.5.1 0 .1-.2.1-.3.2 0 .6 0 .7.3.2-.2.6-.3.9-.3.2.4.2.8 0 1.2.4 0 .7.4 1.1.3-.3.4-.8.3-1.2.2 1.2.3 1.5 1.6 2.1 1.7-1.2.7-1.7-.3-2.3-.3 1.7.9 1.7 1.9 2.1 1.9-.6.4-.9-.1-1.6-.3 1.3.9 1.3 1.6 1.2 2.1.3.2.2.6.2 1 .2-.1.6-.2.8-.2-.1.1-.2.2-.2.3-.7.8-1.1 1.4-1.5 2.4-.3-.2-.6-.6-.8-.7-.2-.2-.6-.2-.7-.2.4.4 1.8 2 2.2 2.4.4.4.3.8.4 1.2.4.4.8.7.7.9zM7.5 10.2c.4 0 .6-.6.4-.9-.4.2-1 .3-1.3.4.5.2.5.5.9.5zm2.3 2.5c.4-.2.4-.7.3-.9-.1-.2-.2-.4-.3-.4-.2 0-.4-.1-.4-.3-.1-.2.2-.3.4-.6-.2-.1-.4-.2-.2-.3.2-.1.4.1.4 0 .1-.1-.1-.2-.2-.3s-.2-.1-.3 0l-1.2.4c-.1 0-.3 0-.3.1s-.1.3 0 .3.1-.3.3-.3.2.1 0 .4c.4 0 .6-.1.7.2.1.2 0 .3-.1.6-.1.1 0 .3 0 .6.1.2.5.7.9.5zm.1-3.5c.2-.2 0-.4.3-.9-.3.2-.8.5-1.3.7.3.3.7.5 1 .2zm-.7-3.1c.1.1.1.2.1.3-.1 0-.1-.1-.3-.2v.6c.1-.1.2-.1.2-.2 0 .3-.1.6-.3.6l-.3-.3c0-.1.1-.2.2-.1 0-.3-.2-.3-.3-.2.1-.4.1-.6-.2-.7-.3.3-.1.4.1.6-.2-.1-.5.1-.2.4 0-.2.2-.1.2 0s-.1.3-.4.4c-.3.1-.4-.1-.5-.3.1 0 .2 0 .4.1l.1-.5c-.1.3-.2.3-.3.4 0-.1.1-.4.1-.4l-.7.2s.3.1.4.2c0 0-.1.1-.4 0l.2.4c0-.2.1-.3.2-.3.1.2.1.4-.2.6-.2.2-.4.1-.4 0-.1-.1 0-.3.2-.2 0-.3-.3-.3-.3-.1 0-.3-.1-.6-.4-.6-.1.3 0 .6.3.7-.2 0-.3.1-.1.3 0-.2.1-.2.2-.1s0 .2-.1.3c-.1.1-.3.1-.6-.2h.2L6 7.3v.3c-.1-.1-.1-.1-.1-.3l-.2.2c.2.2.6.5.9.9.3-.2 1-.6 1.5-.7.4-.2 1.1-.4 1.6-.4-.1-.6 0-1 0-1.2h-.5zm-2.7-.7l.2.4.1-.3v.6c0 .1.1.3.3.3.1 0 .3-.1.3-.3 0-.1-.1-.2-.1-.2 0-.1-.2-.3-.3-.4h.4v-.4l-.4.2v-.4l-.4.1.2.3-.3.1zm1.4.4c.1-.2.1-.3 0-.4-.1-.1-.2-.1-.3 0-.1.1-.1.2 0 .3.1.1.2.1.3.1zm.6-.5c.1-.1.1-.2 0-.3s-.2-.1-.3 0-.2.2 0 .3c.1.1.2.1.3 0zm.5.1c.1-.1.1-.2 0-.3s-.2-.1-.3 0c-.1.1-.1.2 0 .3.1.1.3.1.3 0zm.2.5c.1.1.2.1.3 0s.1-.2 0-.3h-.3c-.2 0-.2.3 0 .3zm-2.7.4c.1 0 .2-.1.2-.2s-.1-.2-.2-.2-.2.1-.2.2.1.2.2.2zm-.7.1c.1 0 .2-.1.2-.2S6 6 5.8 6c-.1 0-.2.1-.2.2s.1.2.2.2zm-.1.2c0-.1-.1-.2-.2-.2s-.2.1-.2.2.1.2.2.2.2 0 .2-.2zm.1.7c0-.1-.1-.2-.2-.2s-.2.1-.2.2.1.2.2.2.2-.1.2-.2zm15.7 16.9c-.1 0-.1.1-.1.1 0 .1 1-.1 1 .1 0 .1-.2.2-.6.2h-.1c0 .1.1.1.1.1v.1s0 .1 0 0h-.1s-.1 0 0 .1h-.1v-.1h-.1v-.1h.1l.1.1.1-.1-.1-.1h-.3c.1.1.1.2.1.3v.1h-.1s0 .1-.1.1H21c0-.1.1 0 .1-.1 0 0 0-.1.1-.1s.1.1.2.1h.1-.1v-.1c-.1 0-.1.1-.2.1 0 .1-.1.2-.1.2l-.1.1c-.1 0-.1 0-.1.1v-.1h-.1l-.1.1v-.1s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1 0-.1-.1h.1v.1h.4v-.1c-.1 0-.1 0-.1-.1-.4-.2-.4-.3-.4-.3-.1 0-.2 0-.1-.1 0 .1.1.1.1 0 0 0-.1 0 0-.1v-.1h.1-.1.1l.1.1h.1v.1c0 .1 0 .1.1.1s.1.2.2.2v-.2s0-.1.1-.1l.1-.1v-.1h.2s.1 0 .1.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.4-.1.8 0 .9 0 .2 0 .4-.1.4-.1 0-.1-1 .1-1-.1-.4-.4-.3-.4-.2-.4 0 0 0-.1 0 0 .2-.2.6 0 .7-.1 0 0-.2.1-.3.1.3.1.4-.1.8 0-.3-.1-.7.3-1.2 0 0 .1 0 0 0 0zm-.7 0c0 .1 0 .1 0 0 .1.1.1.1 0 0 .1.1.1.1 0 0zm0 0s-.1 0 0 0c-.1 0-.1 0 0 0-.1.1 0 0 0 0zm-.1.3s0 .1 0 0c0 .1.1.1 0 0 .1 0 .1 0 0 0 .1 0 .1 0 0 0 .1-.1.1-.1.1 0h-.1c0-.2 0-.2 0 0 0-.2.1-.2 0 0zm1.1-1.6c-.1 0-.3 0-.3.1s.7.1.9.1c.3 0 .3.1.3.1 0 .1-.3.1-.6.1h.3c.1 0 0 0 0 0h.1v.2h-.1c0 .1-.1 0-.1.1v.1h-.1v-.1s0 .1-.1.1 0-.1.1-.1H22s0-.1.1-.1h.1v-.1h-.5v.1s.1.1 0 .1h-.1s0 .1-.1.1h-.3c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.1c-.1 0 0-.1 0-.2h-.1c-.4-.1-.2.1-.4.1 0 0 0 .1-.1.1 0 .1-.1.2-.2.1-.1 0-.2 0-.2.1v-.1h-.1c0 .1-.1.1-.1.1v-.2s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1h.1v.1c0 .1.2 0 .2 0h.2v-.1h-.1c-.1-.1-.1 0-.1 0-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1 0 0-.1v-.1s0-.1.1 0h-.1.1l.1.1h.1v.1c0 .1 0 .1.1.1h.1v-.1s0-.1.1-.1l.1-.1V23h.2s.1 0 .1.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.3-.1 1 0 1.2 0 .1 0 .4 0 .4-.1 0 0 0-.1-.2-.1s-1 .2-1-.1c-.2-.3.1-.3.2-.2.1-.1.1-.1 0 0 .2-.2.6 0 .7-.1 0 0-.2.1-.3.1.3.1.4-.1.8 0-.3-.1-.8.1-1.2 0 .1 0 .1 0 0 0zm-.9 0s-.1-.1 0 0c-.1 0-.1 0 0 0zm.1.1s-.1 0 0 0l-.1-.1c-.1.1 0 .1.1.1h-.1v.1l.1-.1c-.1.1-.1.1 0 0-.1.1-.1.1 0 0-.1 0-.1 0 0 0-.1 0-.1 0 0 0-.1 0-.1 0 0 0zm0 0c0-.1 0-.1 0 0 0-.1 0 0 0 0zm2.2-.9s0 .1 0 0c0 .1 0 .1 0 0 0 .1 0 .1 0 0v.1c0 .1-.1 0-.1.1 0 0 .1 0 0 .1H23v-.1s0 .1-.1.1v-.1h-.2s0-.1.1-.1h.1v-.1h-.2c-.1 0-.1.1-.2.1h-.2v.1s.1.1 0 .1h-.1s0 .1-.1.1h-.3c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.2c-.1 0-.1-.1 0-.2 0 0 0 .1-.1.1-.6-.1-.3.2-.8.1 0 0 0 .1-.1.1h-.1l-.1.1c-.1 0-.1 0-.2.1v-.1h-.1c0 .1-.1.1-.1.1v-.2s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1h.1v.1c0 .1.2 0 .2 0h.2s-.1-.1 0-.1v-.1h-.1l-.2-.2v-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1-.1 0-.1v-.1s0-.1.1 0c0 0-.1 0-.1-.1h.1s0 .1.1.1h.1v.1c0 .1 0 .1.1.1s.1.1.2.1v-.1s0-.1.1-.1l.1-.1v-.1h.3s.1 0 .1.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.4-.1 1.5 0 1.7 0 .1 0 .4 0 .4-.1 0 0 0-.1-.3-.1-.2 0-1.3.2-1.3-.1 0-.2.3-.1.7-.1.1-.1.6 0 .7 0 0 0-.2.1-.3.1.3.1.4-.1.8 0-.2-.1-.7.2-1.1.1h-.1c-.2 0-.6 0-.6.1 0 .2.9.1 1.2.1.3 0 .4.1.4.1 0 .1-.3.1-.4.1h.3c-.4-.1-.4-.1-.3 0-.1 0 0-.1 0 0zm-2.2-.5s0 .1 0 0c.1.1.1.1.1 0H21zm-.1 0s0-.2 0 0c0 0-.1 0 0 0zm-.1.2c.1.1.1 0 0 0 .1 0 .1 0 0 0 .1 0 .1-.1 0 0l.1-.1h-.1c.1 0 .1 0 0 .1.1-.1.1-.1 0 0 .1-.1 0 0 0 0zm-1.9-2c0 .1-.3.1-.4.1h.5v.2c0 .1-.1 0-.1.1 0 0 .1 0 0 .1h-.1v-.1.1-.1h-.2s0-.1.1-.1h.1V20h-.2c-.1 0-.1.1-.2.1h-.2v.1s.1.1 0 .1H18s0 .1-.1.1h-.3c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.1c-.1 0-.1-.1 0-.1h-.1c-.6-.1-.3.2-.8.1 0 0 0 .1-.1.1l-.1.1h-.1c-.1 0-.2 0-.2.1v-.2h-.1c0 .1-.1.1-.1.1v-.2s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1v.1c0 .1.2 0 .2 0h.2v-.1h-.1l-.2-.2v-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1-.1 0-.1v-.1s0-.1.1 0c0 0-.1 0-.1-.1h.1s0 .1.1.1h.1v.1c0 .1 0 .1.1.1s.1.1.1.1v-.1s0-.1.1-.1l.1-.1v-.1h.3s.1 0 .1.1h.1s0 .1-.1.1c0 .1 0 .1-.1.2.5-.1 1.5 0 1.8 0-.4.1-.1 0 0 0-.1-.1-.1-.1-.4-.1-.2 0-1.3.2-1.3-.1 0-.2.3-.1.7-.1.1-.1.6 0 .7 0 0 0-.2.1-.3.1.3.1.6-.1.8 0-.3-.1-.7.2-1.1.1h-.1c-.2 0-.6 0-.6.1 0 .2.9.1 1.2.1.3-.3.4-.2.4-.1zm-2.3-.2c.1.1.1.1.1 0h-.1zm-.1-.2s-.1 0 0 0c-.1 0-.1 0 0 0 0 .2 0 0 0 0zm-.1.3c0 .1 0 .1 0 0 0 .1.1.1 0 0 .1.1.1 0 0 0 .1 0 .1 0 0 0l.1-.1h-.1c.1 0 .1 0 0 .1.1 0 .1 0 0 0 .1 0 0 0 0 0zm2.6-1.4c0 .1-.3.2-.6.2h.6v.2h-.1c0 .1-.1 0-.1.1 0 0 .1 0 0 .1h-.1v-.1.2-.1h-.2s0-.1.1-.1h.1v-.1h-.2c-.1 0-.1.1-.2.1h-.2v.1c.1 0 .1.1 0 .1H18s0 .1-.1.1h-.1.1-.2c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.2.2.1h.1-.1c-.1 0-.1-.1 0-.2h-.1c-.4-.1-.2.2-.6.2h-.1c0 .1-.2.2-.2.2-.1.1-.1 0-.2.1v-.2h-.1c0 .1-.1.1-.1.1V19s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1V19c-.2 0-.2-.1-.2-.1s0-.1.1-.1h.1c-.1 0-.1-.1-.1-.1H16v.1c0 .1.2 0 .2 0h.2v-.1h-.1c-.1 0-.1-.1-.1-.1v-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1-.1 0-.1v-.1s0-.1.1 0c0 0-.1 0-.1-.1h.1s0 .1.1.1V18s.1 0 .1.1v.1c0 .1 0 .1.1.1s.1.1.1.1h.1v-.1s0-.1.1-.1l.1-.1V18h.3s.1 0 .1.1v.1h.1s0 .1-.1.1c0 0 0 .1-.1.2.4-.1 1.1 0 1.3 0 0-.1.3-.1.4-.2-.1-.1-.1-.1-.4-.1-.2 0-1.1.2-1.1-.1 0-.1.2-.1.4-.1.2-.1.4 0 .6-.1 0 0-.1.1-.2.1.3.1.6-.1.9.1-.2-.1-.8.1-1.1 0H18c-.2 0-.3 0-.3.1 0 .2.7.1 1 .1.2-.1.3-.1.3 0zm-2.5.3c-.1 0-.1 0 0 0zm.5-.5c.1.1.1.1.1 0H17zm-.1-.1s-.2 0 0 0c0 .1 0 .1 0 0zm-.2.3c.2.1.2 0 0 0 .2 0 .2 0 0 0 .2-.1.2-.1 0 0l.1-.1h-.1c.2 0 .2 0 0 .1.2-.1.2-.1 0 0 .2-.1 0-.1 0 0zm1.8-1.2c.1 0 .2.1.3.1h.2v.2c0 .1-.1 0-.1.1 0 0 .1 0 0 .1h-.1v-.2h-.2s0-.1.1-.1h.1v-.1h-.4v.2h-.1v.1h-.4c0-.1.1 0 .1-.1h-.1s0-.1.1-.1.1.1.2.1h.1-.1v-.2h-.1c-.3 0-.1.1-.2.1 0 0-.1.1-.2.1v-.1h-.1l-.1.1c-.1 0-.1 0-.1.1v-.1h-.1l-.1.1v-.1s0 .1-.1.1c0 0-.1 0-.1-.1v.2s-.1 0-.1-.1v-.1c-.1.1-.1 0-.1 0s0-.1.1-.1h.1c-.1 0-.1 0-.1-.1h.1v.1h.3s.1 0 .2-.1l-.1-.1c-.1 0-.2 0-.1-.1 0 .1.1.1.1 0-.1 0-.1 0 0-.1v-.1h.1-.1.1v.1h.1v.2l.1.1V17s0-.1.1-.1l.1-.1v-.1h.4s0 .1-.1.1c0 0-.1.1-.1.2.1-.1.2 0 .4.1.3-.1.5-.1.5-.2 0-.2-.9 0-.9-.3 0 0 0-.1.1-.1v-.1c.1-.1.2-.1.3-.2 0 0 0 .1-.1.2.2 0 .2-.3.7-.2-.3.1-.3.3-.8.4l-.1.1c0 .2.9 0 .9.3-.1 0-.2.1-.6.1zm-.7-.4c0 .1 0 .1 0 0 .1.1.1.1 0 0 .1.1 0 0 0 0zm0 0c-.2 0-.2 0 0 0-.2 0-.2 0 0 0-.2 0-.2 0 0 0zm-.2.2c-.1 0-.1 0 0 0 0 .1 0 0 0 0 .1-.1.1-.1.1 0h-.1c0-.1 0-.1 0 0 0-.1 0-.1 0 0zm1.3 5.1c.1 0 .1 0 .1.1s-.1.1-.2.1l-.1 2.4h.1v.2c0 .1-.1.1-.2.1 0 .3-.2.4-.4.4-.1 0-.3-.1-.3-.3 0-.1.1-.2.2-.2s.1 0 .1.1-.2 0-.2.1 0 .1.1.1.2-.1.2-.2c0-.2-.2-.2-.4-.2-1.3-.4-2.1-1.8-2.1-2.8h-.1l.1-.2-.1.1c-.1 0-.2-.1-.2-.2s.1-.2.2-.2.2.1.2.2l.1-.2c.2.1.6.2.9.2.7 0 1.2-.3 1.5-.3.2.1.4.4.5.7zm-2.6.2c-.1 1.2.8 2.1 1.7 2.4l-1.7-2.4zm1.8 2.3c0-.1 0-.3.1-.4l-1.3-1.8h-.3l1.5 2.2zm.1-.8c0-.1 0-.3.1-.4l-.8-1.1c-.1 0-.2.1-.3.1l1 1.4zm.2-1.7c0-.2 0-.3-.1-.3s-.4.1-.7.2l.7 1c0-.2.1-.4.1-.7v-.1c-.1 0-.1-.1-.1-.1h.1zm4.3-2.6c.1 0 .1-.1.1-.1h-.1s.1 0 0-.1c0-.1-.1-.1-.1 0s-.4 0-.4-.3l.1.1h.1c.1 0 .1-.1.1-.1 0-.1-.1-.2-.3-.3-.1 0-.1-.1-.1-.1 0-.1 0-.2-.1-.4v-.2c-.1.1-.1.3.1.6.1.1.4.3.4.4 0 0 0 .1-.1.1h-.1s-.1 0-.1-.1c-.1-.1-.2-.3-.3-.4-.1-.2-.1-.3-.1-.6.1-.1-.1-.4-.1-.6v-.1h-.1s0-.1-.1-.1-.1 0-.1-.1c0 0 0 .1-.1.1h-.4c-.1 0-.1 0 0 .1v.2-.1h.1v.1h-.1v.1h.3c0 .1-.2.1-.2.3l-.1-.1-.1-.1-.1-.1c-.1 0-.1-.1-.1-.1v-.1l-.1-.1v.2s0-.1-.1-.1c0 0 0-.1-.1 0 0 0 0 .1.1.1h-.1v.2h-.1c-.1.1 0 .2.1.1v.3c0 .1.1.2.3.3l-.2.2s-.1.1-.2.1l-.1-.1h-.2.2-.1s-.1.1 0 .1v-.1s.1.1.1 0v.1s.1.1.1 0l-.1-.1v-.1s0 .1.1 0v-.1h.2s0-.1.1-.1h.1s0-.1.1-.1c0 .3.3.2.4.4-.1 0-.2-.1-.3-.1s-.2.1-.2.2.1.2.1.3h-.2c-.1 0-.1-.1-.2-.1 0 0-.1 0-.1.1h.1s-.1 0-.1.1c0 0 0 .1.1 0 0 0 0 .1.1 0h.1s0-.1.1 0h.2v-.1c0-.1-.1-.1-.1-.1 0-.1.1-.2.2-.2 0 .1.1.3.3.4.1 0 .2-.1.2-.1v.1h-.1s-.1 0-.1.1h.1s.1.1.1 0c0 0-.1.1 0 .1s0-.1.1-.1v.1h.1v-.1s.1 0 .1-.1c1 .6 1 .6 1 .4 0 .2 0 .2 0 0 0 .2 0 0 0 0zm.7.6c.1 0 .2.1.2.2l-.1.1s.1.1.1.2c-.1 0-.1 0-.2-.1 0 .1 0 .1-.1.1s-.2 0-.2-.1c0 .1.2 0 .1 0h-1.5c0 .1 0 .2-.1.3-.1-.1-.1-.2-.1-.3h-1.3c0 .1.1.1.1 0 0 .1-.1.2-.2.2H20s-.1.1-.2.1c0-.1 0-.1.1-.2-.1 0-.1 0-.1-.1s0-.2.2-.2c-.1 0 0 .2 0 .1v-1.9c-.1 0-.2 0-.3-.1.1-.1.2-.1.3-.1v-1.8c-.1 0-.1.1 0 .1-.1 0-.2-.1-.1-.2l.1-.1s-.1-.1-.1-.2c.1 0 .1 0 .2.1 0-.1 0-.1.1-.1s.2 0 .2.2c0-.1-.1-.1-.1 0 .3.1.8.2 1.1.4.3.2.7.6 1 .9l.1.1c0-.1.1-.1.3-.1-.2.3-.3.3-.3.3.4.7.8 1.4.9 2.3V20zm-1.3-2.3c-.2-.3-.6-.6-.9-.8-.2-.2-.6-.3-.9-.4v.2c-.1 0-.1 0-.1-.1v1.2c.1 0 .1 0 .1.1v.1c.1 0 .1 0 .2.1-.1.1-.1.1-.2.1.1 0 .1.1 0 .1l-.1.1V20s.1-.1.2-.1c0 .1 0 .1-.1.2h1c0-.1 0-.1.1-.1h.1c0-.1 0-.1.1-.2.1.1.1.1.1.2 0-.1.1-.1.1 0l.1.1H23s-.1-.1-.1-.2h.1c-.1-.7-.3-1.2-.7-1.8h-.1s-.1-.1 0-.1c0 0-.1.1-.2 0 0-.1 0-.1.1-.2v-.1zm4.2 2.7v.4c0 1-.2 2.1-.6 3-.3.9-.9 1.8-1.5 2.4-.3.3-.7.7-1 .9-.1.1-.4.2-2-.2-.2 0-.3-.1-.6-.1 0-.2 0-.3.1-.4.1-.2.1-.3.2-.4.1 0 .1-.1.2-.1.6-.2 1-.7 1.5-1.2.4-.6.8-1.1 1-1.8.2-.7.3-1.3.3-2h-4.5v5c.3 0 1 .1 1 .1-.1.2-.2.4-.2.8-.6-.1-1-.3-1.6-.6.4-.2.6-.2.8-.2v-4.9h-4.7c0-.2-.1-.6-.2-.7-.2-.3-.3-.4-.3-.9 0-.2-.1-.6-.3-.8-.1-.1-.7-.8-.8-.9.3-.9.9-1.8 1.5-2.4.4-.4.9-.9 1.5-1.2-.2-.2-.6-.4-.6-.9 0-.2.1-.4.2-.6-.3-.9-.8-2-1.2-2.6l.9-.4c-.2.3-.2.8-.2 1 .2-.2.4-.4.6-.7 0 .3.2.8.3 1-.2 0-.4-.1-.8 0 .1.2.6.6 1.1.3.3-.1.7-.2.7-.6 0-.1-.1-.3-.3-.3s-.2.3-.1.4c-.2-.1-.6-.9-.1-1 .3-.1.7.3.8.7 0-.2.2-.7.6-.7.4 0 .3.8.1 1 0-.2-.2-.4-.3-.4s-.2.1-.2.3c0 .2.3.4.8.4.3 0 1.1-.1 1.1-.9-.2 0-.7.2-.8.4V9.4c.2.3.6.6.8.6-.1-.3-.3-.7-.7-.9h1.7c-.3.2-.6.6-.7.9.2 0 .6-.2.8-.4v1.2c-.2-.2-.6-.4-.8-.4.1.8.8.9 1.1.9.4 0 .8-.1.8-.4 0-.2-.1-.3-.2-.3s-.2.1-.3.4c0-.2-.2-1.1.2-1.1.3 0 .4.3.6.8.1-.3.4-.8.8-.7.3.1.1.9-.1 1 .1-.1 0-.4-.1-.4-.2 0-.3.1-.3.3 0 .2.3.4.7.6.6.1 1-.2 1.1-.4-.2-.1-.4-.1-.8.1.1-.2.3-.8.3-1 .1.3.2.6.6.7 0-.2 0-.7-.2-1l.9.4c-.4.4-1 1.6-1.2 2.6.2.1.3.3.3.7 0 .4-.2.7-.6.9.6.3 1 .8 1.5 1.2.3.3.6.8.9 1.2 0 0-.1.1-.1.2-.1.1-.2.2-.2.3-.1.1-.1.2-.1.3 0 .1 0 .2.1.4l1 2c-.6 0-.4.2-.2.3zm-7-5c-.6 0-1.2.1-1.8.4-.6.2-1.1.7-1.5 1.2-.4.6-.8 1.1-1 1.8-.2.7-.3 1.3-.3 2.1h4.6v-5.5zm.1-2.2c1.6 0 2.6.4 3.2.9.3-.2.6-.4.6-.7 0-.9-2.5-1-3.7-1-1.2 0-3.7.1-3.7 1 0 .2.1.4.6.7.5-.4 1.5-.9 3-.9zm4.7 7.7c0-.7-.1-1.4-.3-2.1-.2-.7-.6-1.2-1-1.8-.4-.6-.9-.9-1.5-1.2-.6-.2-1.1-.4-1.7-.4v5.5h4.5zm11 11.1c0-.1-.1-.1-.1-.1-1.5.4-3.2-.8-4.9-1.9-1.5-1-2.8-1.9-4-1.9-.4 0-.8.1-1.1.2-.4.2-.7.6-.9 1.1-.2.4-.4.8-.6 1.1-.2.3-.3.6-.3.8 0 .2.1.4.3.7.1.2.4.3.8.6.1 0 .1.1.2.1.3.1.4.2.4.4-.6.2-1.3.4-2.1.6-.9.1-2 .2-3.1.2s-2.1-.1-3.1-.2c-.9-.1-1.6-.3-2.1-.6 0-.2.2-.3.6-.4.1 0 .1-.1.2-.1.3-.1.6-.3.8-.4.2-.2.3-.3.3-.6s-.1-.6-.3-.8c-.1-.2-.3-.6-.6-1.1-.2-.4-.6-.9-.9-1.1-.3-.2-.7-.2-1.1-.2-1.2 0-2.6.9-4 1.9-1.8 1.1-3.6 2.3-4.9 1.9-.1 0-.1 0-.1.1s0 .1.1.1c.4.2.8.4 1.2.8.6.4 1 .8 1.6.8.6 0 1.1-.1 1.8-.6.6-.3 1.2-.7 1.8-1.1 1.1-.8 2.3-1.6 3.5-1.7l-.3.3c-.3.3-.7.6-.7 1.1 0 .4.1.7.3 1.1.1.1.1.2.2.4s.2.4.2.8c0 .1.1.3.1.4.1.2.2.8 1 1.2 1 .4 2.6.8 4.9.8 2.2 0 3.9-.2 4.9-.8.8-.4 1-.9 1-1.2 0-.2.1-.3.1-.4.1-.3.1-.6.2-.8.1-.2.2-.3.2-.6.2-.3.3-.6.3-.9 0-.6-.3-.8-.7-1.1l-.3-.3c1.1.1 2.3.9 3.5 1.7.6.4 1.2.8 1.8 1.1.7.3 1.2.6 1.8.6.6 0 1-.3 1.6-.8.3-.3.8-.6 1.2-.8-.9-.2-.7-.3-.7-.4zm-14.6-1.4c.4 0 .7.3.7.7 0 .3-.2.6-.3.8-.1-.2-.1-.3-.2-.3-.2 0-.1 1.1-.8 1.1v.2c0 .2-.2.4-.4.4s-.5-.3-.5-.5v-.2c-.7 0-.6-1.1-.8-1.1-.1 0-.2.1-.2.3-.1-.2-.3-.4-.3-.8 0-.3.2-.7.7-.7h.2V29c.7.1 1.2.2 1.8.2v1.2c0 .2 0 .2.1.2zm-1.1 2.6c.1 0 .2-.1.2-.2s-.1-.2-.2-.2-.2.1-.2.2.1.2.2.2zm1.5-1.5c.1-.1.1-.3.1-.4 0-.2-.1-.4-.4-.4-.6 0-.4.8-.7.8-.1 0-.2-.1-.2-.2 0-.2.3-.4.3-.8s-.3-.6-.6-.8c-.3.2-.6.6-.6.8 0 .3.3.6.3.8 0 .1-.1.2-.2.2-.2 0-.1-.8-.7-.8-.3 0-.4.3-.4.4 0 .1 0 .2.1.4l.2-.2c.4 0 .2 1.1.8 1.1.2 0 .3-.1.3-.3 0-.1-.1-.2-.1-.3 0-.1.1-.2.2-.2s.2 0 .2.2c0 .1-.1.2-.1.3s.1.3.3.3c.4 0 .3-1.1.8-1.1.3 0 .3.1.4.2zm.3-4.1c.7.1 1.5.3 1.9.2l-.1.1c-.2.2-.4.3-.7.6-.7.4-1.3.7-1.8.7-.6 0-1.3-.1-2.1-.3-.7-.2-1.3-.4-1.8-.7-.2.2-.6.2-.9.1-.3-.1-.6-.6-.6-.8v-.1l-.7-.7c-.7-.7-1.1-1.6-1.5-2.4-.1-.4-.3-.9-.3-1.3.6.2.8 0 1-.2.1 0 .1.2.1.2.7 0 1-.4 1.1-.8.1.4.1.8.3 1.1.2.7.6 1.2 1 1.8.1.2.3.3.4.4.1 0 .2-.1.3-.1.2 0 .4.1.7.3.2.2.2.4.2.7 1.3.4 2.5.8 3.5 1.2zM17.4 26c.1 0 .1.1.2.1 0-.1-.1-.2-.2-.4-.1-.1-.3-.2-.6-.2-.4 0-.8.4-1 .6-.1 0-.2 0-.3-.1 0 .1.1.2.1.3-.2.3-.3.7-.3.9 0 .1.2.4.4.7.2.1.3.1.6 0-.1-.1-.2-.1-.3-.2-.1 0-.2-.1-.2-.2v-.1c0-.1 0-.2.1-.3v-.3h.1c.1.1.3.1.4.1 0 0 .1 0 .1-.1.1-.1 0-.3-.2-.4l-.1-.4.1-.1c.1-.1.1-.2.2-.2.5.1.6.1.9.3zm.7 1.9c.2 0 .4-.2.4-.4s-.2-.4-.4-.4-.4.2-.4.4c-.1.3.2.4.4.4zm1.9.7c.2 0 .4-.2.4-.4s-.2-.4-.4-.4-.4.2-.4.4c0 .1.2.4.4.4zM20 5c-.2-.2-.4-.4-.4-.8.2 0 .6.2.8.4V3.5c-.3.3-.5.5-.9.5 0-.2.2-.6.4-.8h-1.1c.2.3.4.6.4.8-.2 0-.6-.2-.8-.4v1.1c.2-.2.4-.4.8-.4 0 .3-.2.6-.4.8H20zm-1.6 1.4c.1.4.6.8 1 .8s.9-.3 1-.8h-2zm1.2-.4h.8c-.1-.4-.4-.8-.8-.8V6zm-.4 0v-.8c-.4.1-.8.4-.8.8h.8zm.8 1.5c-.1 0-.2.1-.3.1V9h.3V7.5zm-1.1 1.6h.3V7.7c-.1 0-.2-.1-.3-.1v1.5zm1.2-1.8c0 .2.1.3.3.3s.3-.1.3-.3c0-.2-.1-.3-.3-.3s-.3.1-.3.3zm1-.1c.2 0 .3-.1.3-.3 0-.1-.1-.2-.3-.2s-.3.1-.3.3c0 .1.2.2.3.2zM22 7c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 .2.1.3.3.3zm2.2.8c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 .2.2.3.3.3zm-.5-.6c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.2 0 .3.3.3zm-.9-.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.1.2.3.3.3zm1.8 2.4c-.2 0-.3.1-.3.3 0 .2.1.3.3.3s.3-.1.3-.3c0-.2-.1-.3-.3-.3zm.1-.7c-.2 0-.3.1-.3.3 0 .2.1.3.3.3s.3-.1.3-.3c0-.2-.1-.3-.3-.3zm-.4-.5c0 .2.1.3.3.3s.4-.1.4-.3c0-.2-.1-.3-.3-.3s-.4.1-.4.3zm-5.9-.5c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 0 .2.3.3.3zm-.8-.5c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c.1.2.2.3.3.3zm-.7-.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.2.1.3.3.3zm-2.3.8c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c0 .2.1.3.3.3zm.6-.6c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.2.2.3.3.3zm.9-.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.3.1-.3.3c-.1.1.1.3.3.3zm-1.5 2.8c0-.2-.1-.3-.3-.3s-.3 0-.3.3c0 .2.1.3.3.3.1 0 .3-.1.3-.3zm-.2-.8c0-.2-.1-.3-.3-.3-.2 0-.3.1-.3.3 0 .2.1.3.3.3.2 0 .3-.2.3-.3zm-.2-.5c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3s-.4.1-.4.3c0 .1.3.3.4.3zm7.7.3c-.1.1-.4.4-.4.8 0 .2.2.6.3.8.1-.3.4-.4.4-.8 0-.3-.2-.5-.3-.8zm-4.9 0c-.2.3-.3.6-.3.9 0 .3.3.4.4.8.1-.3.3-.6.3-.8 0-.5-.3-.8-.4-.9z\"\n ></path>\n </svg>\n </a>\n\n @if (headerLinks.serviceLink) {\n <a [routerLink]=\"headerLinks.serviceLink\" class=\"moj-header__link moj-header__link--organisation-name\">\n <ng-content select=\"[organisationName]\"></ng-content>\n </a>\n\n <a [routerLink]=\"headerLinks.serviceLink\" class=\"moj-header__link moj-header__link--service-name\">\n <ng-content select=\"[serviceName]\"></ng-content>\n </a>\n } @else {\n <span class=\"moj-header__link--organisation-name\">\n <ng-content select=\"[organisationName]\"></ng-content>\n </span>\n\n <span class=\"moj-header__link--service-name\">\n <ng-content select=\"[serviceName]\"></ng-content>\n </span>\n }\n </div>\n <div class=\"moj-header__content\">\n <nav class=\"moj-header__navigation\" aria-label=\"Account navigation\">\n <!--PO-322\n For accessibility we need to add a role to prevent any accessibility issues\n-->\n <ul class=\"moj-header__navigation-list\" role=\"list\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n </div>\n</header>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-notification-badge',\n standalone: true,\n imports: [],\n templateUrl: './moj-notification-badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojNotificationBadgeComponent {\n @Input({ required: true }) badgeId!: string;\n}\n","<span id=\"{{ badgeId }}-notifications\" class=\"moj-notification-badge\"><ng-content></ng-content></span>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-page-header',\n imports: [],\n templateUrl: './moj-page-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './moj-page-header.component.scss',\n})\nexport class MojPageHeaderComponent {\n @Input({ required: true }) title!: string;\n}\n","<div class=\"moj-page-header-actions\">\n <div class=\"moj-page-header-actions__title\">\n <h1 class=\"govuk-heading-xl\">{{ title }}</h1>\n </div>\n <div class=\"moj-page-header-actions__actions\">\n <div class=\"moj-button-menu\">\n <div class=\"moj-button-menu__wrapper\">\n <ng-content select=\"[buttons]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-pagination-item , [opal-lib-moj-pagination-item]',\n imports: [],\n templateUrl: './moj-pagination-item.component.html',\n})\nexport class MojPaginationItemComponent {\n @HostBinding('class') class = 'moj-pagination__item';\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-pagination-link',\n imports: [],\n templateUrl: './moj-pagination-link.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojPaginationLinkComponent {\n @Input({ required: true }) page: number | string = 1;\n @Input({ required: true }) currentPage: number = 1;\n @Input({ required: true }) totalPages: number = 1;\n @Input() changePage: EventEmitter<number> = new EventEmitter<number>();\n\n /**\n * Checks if the given page number is not the current page.\n *\n * @param page - The page number to check.\n * @returns A boolean indicating whether the given page is not the current page.\n */\n\n private pageIsNotCurrentPage(page: number): boolean {\n return page !== this.currentPage;\n }\n\n /**\n * Checks if the given page number is not negative.\n *\n * @param page - The page number to check.\n * @returns `true` if the page number is greater than 0, otherwise `false`.\n */\n\n private pageIsNotNegative(page: number): boolean {\n return page > 0;\n }\n\n /**\n * Checks if the given page number is not greater than the total number of pages.\n *\n * @param page - The page number to check.\n * @returns `true` if the page number is less than or equal to the total number of pages, otherwise `false`.\n */\n\n private pageIsNotGreaterThanTotalPages(page: number): boolean {\n return page <= this.totalPages;\n }\n /**\n * Handles the page change event.\n *\n * @param event - The mouse event that triggered the page change.\n * @param page - The page number to change to.\n *\n * Prevents the default action of the event and checks if the page number is valid.\n * A valid page number is one that is not the current page, is greater than 0,\n * and is less than or equal to the total number of pages.\n * If the page number is valid, emits the changePage event with the new page number.\n */\n public changePageEvent(event: MouseEvent, page: number): void {\n event.preventDefault();\n\n if (this.pageIsNotCurrentPage(page) && this.pageIsNotNegative(page) && this.pageIsNotGreaterThanTotalPages(page)) {\n this.changePage.emit(page);\n }\n }\n}\n","<a class=\"moj-pagination__link\" href=\"#\" (click)=\"changePageEvent($event, +page)\"> <ng-content></ng-content></a>\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-pagination-list , [opal-lib-moj-pagination-list]',\n imports: [],\n templateUrl: './moj-pagination-list.component.html',\n})\nexport class MojPaginationListComponent {\n @HostBinding('class') class = 'moj-pagination__list';\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, signal } from '@angular/core';\nimport { MojPaginationItemComponent } from './moj-pagination-item/moj-pagination-item.component';\nimport { MojPaginationListComponent } from './moj-pagination-list/moj-pagination-list.component';\nimport { MojPaginationLinkComponent } from './moj-pagination-link/moj-pagination-link.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'opal-lib-moj-pagination,',\n styleUrls: ['./moj-pagination.component.scss'],\n\n imports: [CommonModule, MojPaginationItemComponent, MojPaginationListComponent, MojPaginationLinkComponent],\n templateUrl: './moj-pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojPaginationComponent implements OnChanges {\n @Input() currentPage = 1;\n @Input() total = 0;\n @Input() maxPagesToShow = 5;\n @Input() limit = 100;\n @Input() ariaLabel = 'Pagination navigation';\n @Output() changePage = new EventEmitter<number>();\n\n public pages = signal<(number | string)[]>([]);\n public totalPages = signal<number>(0);\n public startItem = signal<number>(0);\n public endItem = signal<number>(0);\n public totalItems = signal<number>(0);\n\n /**\n * Updates the pagination signals based on the current state.\n *\n * This method recalculates and sets the following signals:\n * - `totalPages`: The total number of pages based on the total items and items per page limit.\n * - `startItem`: The index of the first item on the current page.\n * - `endItem`: The index of the last item on the current page.\n * - `pages`: The array of page numbers to be displayed.\n * - `totalItems`: The total number of items.\n *\n * @private\n */\n private setSignals(): void {\n this.totalPages.set(this.getTotalPages(this.total, this.limit));\n this.startItem.set(this.getStartItem(this.currentPage, this.limit));\n this.endItem.set(this.getEndItem(this.currentPage, this.limit, this.total));\n this.setPages();\n this.setTotalItems();\n }\n\n /**\n * Calculates the total number of pages based on the total number of items and the limit of items per page.\n *\n * @param total - The total number of items.\n * @param limit - The number of items per page.\n * @returns The total number of pages.\n */\n private getTotalPages(total: number, limit: number): number {\n return Math.ceil(total / limit);\n }\n /**\n * Sets the pagination pages based on the current page and total pages.\n * This method updates the `pages` property with the result of the `getPages` method.\n *\n * @private\n */\n private setPages(): void {\n this.pages.set(this.getPages(this.currentPage, this.totalPages()));\n }\n\n /**\n * Calculates the starting item index for pagination.\n *\n * @param currentPage - The current page number.\n * @param limit - The number of items per page.\n * @returns The starting item index for the given page.\n */\n private getStartItem(currentPage: number, limit: number): number {\n return (currentPage - 1) * limit + 1;\n }\n\n /**\n * Calculates the end item index for pagination.\n *\n * @param currentPage - The current page number.\n * @param limit - The number of items per page.\n * @param total - The total number of items.\n * @returns The index of the last item on the current page, or the total number of items if the end of the list is reached.\n */\n private getEndItem(currentPage: number, limit: number, total: number): number {\n return Math.min(currentPage * limit, total);\n }\n /**\n * Updates the total number of items by setting the value of `totalItems` to the current `total`.\n *\n * @private\n */\n private setTotalItems(): void {\n this.totalItems.set(this.total);\n }\n\n /**\n * Generates an array of page numbers and ellipses for pagination display.\n *\n * @param currentPage - The current active page number.\n * @param totalPages - The total number of pages available.\n * @returns An array of page numbers and ellipses representing the pagination.\n *\n * The function ensures that the pagination display shows a maximum of 5 pages at a time.\n * It calculates the range of pages to display based on the current page and total pages.\n * If the start page is greater than 1, it adds an ellipsis and the first page at the beginning.\n * If the end page is less than the total pages, it adds an ellipsis and the last page at the end.\n */\n private getPages(currentPage: number, totalPages: number): (number | string)[] {\n const halfPagesToShow = Math.floor(this.maxPagesToShow / 2);\n const eclipses = '...';\n\n const startPage = this.calculateStartPage(currentPage, totalPages, halfPagesToShow);\n const endPage = this.calculateEndPage(currentPage, totalPages, halfPagesToShow);\n\n const pages = this.generatePageNumbers(startPage, endPage);\n\n if (startPage > 1) {\n pages.unshift(eclipses);\n pages.unshift(1);\n }\n\n if (endPage < totalPages) {\n pages.push(eclipses);\n pages.push(totalPages);\n }\n\n return pages;\n }\n\n /**\n * Calculates the start page for pagination based on the current page, total pages, and the number of pages to show on either side of the current page.\n *\n * @param currentPage - The current active page number.\n * @param totalPages - The total number of pages available.\n * @param halfPagesToShow - The number of pages to show on either side of the current page.\n * @returns The start page number for pagination.\n */\n private calculateStartPage(currentPage: number, totalPages: number, halfPagesToShow: number): number {\n let startPage = Math.max(1, currentPage - halfPagesToShow);\n\n if (currentPage - halfPagesToShow <= 0) {\n startPage = 1;\n } else if (currentPage + halfPagesToShow > totalPages) {\n startPage = Math.max(1, startPage - (currentPage + halfPagesToShow - totalPages));\n }\n\n return startPage;\n }\n\n /**\n * Calculates the end page number for pagination based on the current page, total pages, and the number of pages to show.\n *\n * @param currentPage - The current page number.\n * @param totalPages - The total number of pages.\n * @param halfPagesToShow - Half the number of pages to show around the current page.\n * @returns The calculated end page number.\n */\n private calculateEndPage(currentPage: number, totalPages: number, halfPagesToShow: number): number {\n let endPage = Math.min(totalPages, currentPage + halfPagesToShow);\n\n if (currentPage - halfPagesToShow <= 0) {\n endPage = Math.min(totalPages, endPage + (halfPagesToShow - currentPage + 1));\n } else if (currentPage + halfPagesToShow > totalPages) {\n endPage = totalPages;\n }\n\n return endPage;\n }\n\n /**\n * Generates an array of page numbers from the startPage to the endPage.\n *\n * @param startPage - The starting page number.\n * @param endPage - The ending page number.\n * @returns An array of page numbers from startPage to endPage.\n */\n private generatePageNumbers(startPage: number, endPage: number): (number | string)[] {\n const pages: (number | string)[] = [];\n for (let i = startPage; i <= endPage; i++) {\n pages.push(i);\n }\n return pages;\n }\n\n public ngOnChanges(): void {\n this.setSignals();\n }\n}\n","<nav class=\"moj-pagination moj-pagination-alignment\" [attr.aria-label]=\"ariaLabel\">\n <ul opal-lib-moj-pagination-list>\n <li opal-lib-moj-pagination-item class=\"moj-pagination__item moj-pagination__item--prev\">\n @if (currentPage > 1) {\n <opal-lib-moj-pagination-link\n [changePage]=\"changePage\"\n [page]=\"currentPage - 1\"\n [currentPage]=\"currentPage\"\n [totalPages]=\"totalPages()\"\n >Previous<span class=\"govuk-visually-hidden\"> page </span></opal-lib-moj-pagination-link\n >\n }\n </li>\n @for (page of pages(); track page) {\n <li\n opal-lib-moj-pagination-item\n [class.moj-pagination__item--active]=\"page === currentPage\"\n [class.moj-pagination__item--dot]=\"page === '...'\"\n >\n @if (page !== currentPage && page !== '...') {\n <opal-lib-moj-pagination-link\n [changePage]=\"changePage\"\n [page]=\"+page\"\n [currentPage]=\"currentPage\"\n [totalPages]=\"totalPages()\"\n >\n {{ page }}\n </opal-lib-moj-pagination-link>\n } @else if (page === '...') {\n <strong>...</strong>\n } @else {\n {{ page }}\n }\n </li>\n }\n\n <li opal-lib-moj-pagination-item class=\"moj-pagination__item moj-pagination__item--next\">\n @if (currentPage < totalPages()) {\n <opal-lib-moj-pagination-link\n [changePage]=\"changePage\"\n [page]=\"currentPage + 1\"\n [currentPage]=\"currentPage\"\n [totalPages]=\"totalPages()\"\n >Next<span class=\"govuk-visually-hidden\"> page</span></opal-lib-moj-pagination-link\n >\n }\n </li>\n </ul>\n <p class=\"moj-pagination__results\">\n Showing <b>{{ startItem() - 1 }}</b> to <b>{{ endItem() }}</b> of <b>{{ totalItems() }}</b> results\n </p>\n</nav>\n","import { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'opal-lib-moj-primary-navigation-item, [opal-lib-moj-primary-navigation-item]',\n imports: [],\n templateUrl: './moj-primary-navigation-item.component.html',\n styleUrls: ['./moj-primary-navigation-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojPrimaryNavigationItemComponent {\n private readonly router = inject(Router);\n private readonly route = inject(ActivatedRoute);\n\n @Input({ required: true }) public primaryNavigationItemId!: string;\n @Input({ required: true }) public primaryNavigationItemFragment!: string;\n @Input({ required: true }) public primaryNavigationItemText!: string;\n @Input({ required: true }) public activeItemFragment!: string;\n @Input({ required: false }) public isLastItem: boolean = false;\n\n /**\n * Handles the click event of a sub-navigation item.\n * @param event - The click event.\n * @param item - The item string.\n */\n public handleItemClick(event: Event, item: string): void {\n event.preventDefault();\n // Basically we want to mimic the behaviour of the GDS tabs component, as this is how these will be used.\n this.router.navigate(['./'], { relativeTo: this.route, fragment: item });\n }\n}\n","<li class=\"moj-primary-navigation__item\" [class.last-item]=\"isLastItem\" [id]=\"primaryNavigationItemId\">\n <a\n href=\"\"\n class=\"moj-primary-navigation__link cursor-pointer\"\n [attr.aria-current]=\"primaryNavigationItemFragment === activeItemFragment ? 'page' : null\"\n (click)=\"handleItemClick($event, primaryNavigationItemFragment)\"\n (keyup.enter)=\"handleItemClick($event, primaryNavigationItemFragment)\"\n >{{ primaryNavigationItemText }}</a\n >\n</li>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n inject,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'opal-lib-moj-primary-navigation',\n imports: [],\n templateUrl: './moj-primary-navigation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojPrimaryNavigationComponent implements OnInit, OnDestroy {\n private readonly router = inject(Router);\n private readonly route = inject(ActivatedRoute);\n private readonly ngUnsubscribe = new Subject<void>();\n\n @Input({ required: true }) public primaryNavigationId!: string;\n @Output() activeItemFragment = new EventEmitter<string>();\n\n /**\n * Sets up the listeners for the route fragment changes.\n * Emits the active navigation item when a fragment is present in the route.\n */\n private setupListeners(): void {\n // Basically we want to mimic the behaviour of the GDS tabs component, as this is how these will be used.\n this.route.fragment.pipe(takeUntil(this.ngUnsubscribe)).subscribe((fragment) => {\n if (fragment) {\n this.activeItemFragment.emit(fragment);\n }\n });\n }\n\n /**\n * Initializes the component.\n * This method is called after the component has been created and initialized.\n */\n public ngOnInit(): void {\n this.setupListeners();\n }\n\n /**\n * Lifecycle hook that is called when the component is about to be destroyed.\n * Unsubscribes from the route fragment subscription.\n */\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","<div class=\"moj-primary-navigation\" [id]=\"primaryNavigationId\">\n <div class=\"moj-primary-navigation__container\">\n <div class=\"moj-primary-navigation__nav\">\n <nav class=\"moj-primary-navigation\" aria-label=\"Primary navigation\">\n <ul class=\"moj-primary-navigation__list\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n </div>\n</div>\n","import { Component, HostBinding, ChangeDetectionStrategy, Output, EventEmitter, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-sortable-table-header, [opal-lib-moj-sortable-table-header]',\n imports: [],\n templateUrl: './moj-sortable-table-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojSortableTableHeaderComponent {\n @Input() columnKey!: string;\n @Input() sortDirection: 'ascending' | 'descending' | 'none' = 'none';\n @Input() dataIndex: number = 0;\n\n @Output() sortChange = new EventEmitter<{ key: string; sortType: 'ascending' | 'descending' }>();\n\n @HostBinding('attr.aria-sort') get ariaSort(): string | null {\n return this.sortDirection;\n }\n\n @HostBinding('scope') hostScope = 'col';\n\n @HostBinding('class') get hostClass(): string {\n return 'govuk-table__header';\n }\n\n /**\n * Toggles the sort direction between 'ascending' and 'descending' for the table column.\n * Emits a sortChange event with the column key and the new sort direction.\n *\n * @public\n * @returns {void}\n */\n public toggleSort(): void {\n const newDirection = this.sortDirection === 'ascending' ? 'descending' : 'ascending';\n\n this.sortChange.emit({\n key: this.columnKey,\n sortType: newDirection,\n });\n }\n}\n","<button [attr.data-index]=\"dataIndex\" (click)=\"toggleSort()\" type=\"button\">\n <ng-content></ng-content>\n</button>\n","import { Component, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-sortable-table-row-data,[opal-lib-moj-sortable-table-row-data]',\n imports: [],\n templateUrl: './moj-sortable-table-row-data.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojSortableTableRowDataComponent {\n @Input({ required: true }) id!: string;\n\n @HostBinding('class') hostClass = 'govuk-table__cell';\n @HostBinding('id') get hostId() {\n return this.id;\n }\n}\n","<ng-content></ng-content>\n","import { Component, Input, ChangeDetectionStrategy, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-sortable-table-row,[opal-lib-moj-sortable-table-row]',\n imports: [],\n templateUrl: './moj-sortable-table-row.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojSortableTableRowComponent {\n @Input({ required: false }) public bodyRowClasses: string = '';\n @HostBinding('class') get hostClass() {\n return `govuk-table__row ${this.bodyRowClasses}`;\n }\n}\n","<ng-content></ng-content>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-sortable-table-status',\n standalone: true,\n templateUrl: './moj-sortable-table-status.component.html',\n})\nexport class MojSortableTableStatusComponent {\n @Input({ required: false }) public columnTitle!: string;\n @Input({ required: false }) public sortDirection!: 'ascending' | 'descending' | 'none';\n}\n","<output aria-live=\"polite\" aria-atomic=\"true\" class=\"govuk-visually-hidden\">\n Sorted by {{ columnTitle }} ({{ sortDirection }})\n</output>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-sortable-table',\n\n templateUrl: './moj-sortable-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojSortableTableComponent {\n @Input({ required: false }) public tableClasses!: string;\n}\n","<table class=\"govuk-table {{ tableClasses }}\" data-module=\"moj-sortable-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <ng-content select=\"[head]\"></ng-content>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-content select=\"[row]\"></ng-content>\n <ng-content select=\"[results]\"></ng-content>\n </tbody>\n</table>\n<ng-content select=\"[status]\"></ng-content>\n","import { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { MojNotificationBadgeComponent } from '../../moj-notification-badge/moj-notification-badge.component';\n\n@Component({\n selector: 'opal-lib-moj-sub-navigation-item',\n imports: [MojNotificationBadgeComponent],\n templateUrl: './moj-sub-navigation-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojSubNavigationItemComponent {\n private readonly router = inject(Router);\n private readonly route = inject(ActivatedRoute);\n\n @Input({ required: true }) public subNavItemId!: string;\n @Input({ required: true }) public subNavItemFragment!: string;\n @Input({ required: true }) public subNavItemText!: string;\n @Input({ required: true }) public activeSubNavItemFragment!: string;\n @Input({ required: false }) public count!: string;\n\n /**\n * Handles the click event of a sub-navigation item.\n * @param event - The click event.\n * @param item - The item string.\n */\n public handleItemClick(event: Event, item: string): void {\n event.preventDefault();\n // Basically we want to mimic the behaviour of the GDS tabs component, as this is how these will be used.\n this.router.navigate(['./'], { relativeTo: this.route, fragment: item });\n }\n}\n","<li class=\"moj-sub-navigation__item\" [id]=\"subNavItemId\">\n <a\n class=\"moj-sub-navigation__link cursor-pointer\"\n [attr.aria-current]=\"subNavItemFragment === activeSubNavItemFragment ? 'page' : ''\"\n (click)=\"handleItemClick($event, subNavItemFragment)\"\n (keyup.enter)=\"handleItemClick($event, subNavItemFragment)\"\n role=\"link\"\n tabindex=\"0\"\n >\n @if (count) {\n {{ subNavItemText }}\n <opal-lib-moj-notification-badge [badgeId]=\"subNavItemId\">{{ count }}</opal-lib-moj-notification-badge>\n } @else {\n {{ subNavItemText }}\n }\n </a>\n</li>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n inject,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'opal-lib-moj-sub-navigation',\n imports: [],\n templateUrl: './moj-sub-navigation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojSubNavigationComponent implements OnInit, OnDestroy {\n private readonly route = inject(ActivatedRoute);\n private readonly ngUnsubscribe = new Subject<void>();\n\n @Input({ required: true }) public subNavId!: string;\n @Output() activeSubNavItemFragment = new EventEmitter<string>();\n\n /**\n * Sets up the listeners for the route fragment changes.\n * Emits the active navigation item when a fragment is present in the route.\n */\n private setupListeners(): void {\n // Basically we want to mimic the behaviour of the GDS tabs component, as this is how these will be used.\n this.route.fragment.pipe(takeUntil(this.ngUnsubscribe)).subscribe((fragment) => {\n if (fragment) {\n this.activeSubNavItemFragment.emit(fragment);\n }\n });\n }\n\n ngOnInit(): void {\n this.setupListeners();\n }\n\n /**\n * Lifecycle hook that is called when the component is about to be destroyed.\n * Unsubscribes from the route fragment subscription.\n */\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","<nav class=\"moj-sub-navigation\" aria-label=\"Sub navigation\" [id]=\"subNavId\">\n <ul class=\"moj-sub-navigation__list\">\n <ng-content></ng-content>\n </ul>\n</nav>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-ticket-panel',\n imports: [],\n templateUrl: './moj-ticket-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojTicketPanelComponent {\n @Input({ required: false }) componentClasses!: string;\n @Input({ required: false }) sectionClasses!: string;\n @Input({ required: false }) alert!: boolean;\n}\n","<article class=\"moj-ticket-panel {{ componentClasses }}\">\n <section class=\"moj-ticket-panel__content {{ sectionClasses }}\" [attr.role]=\"alert ? 'alert' : ''\">\n <ng-content></ng-content>\n </section>\n</article>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-timeline-item',\n imports: [],\n templateUrl: './moj-timeline-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojTimelineItemComponent {}\n","<div class=\"moj-timeline__item\">\n <div class=\"moj-timeline__header\">\n <h2 class=\"moj-timeline__title\"><ng-content select=\"[title]\"></ng-content></h2>\n\n <p class=\"moj-timeline__byline\"> by <ng-content select=\"[user]\"></ng-content></p>\n </div>\n <p class=\"moj-timeline__date\">\n <time datetime=\"\"><ng-content select=\"[date]\"></ng-content></time>\n </p>\n <div class=\"moj-timeline__description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'opal-lib-moj-timeline',\n imports: [],\n templateUrl: './moj-timeline.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MojTimelineComponent {}\n","<div class=\"moj-timeline\"><ng-content></ng-content></div>\n","// COMPONENTS\nexport * from './moj-badge/moj.badge.component';\nexport * from './moj-banner/moj-banner.component';\nexport * from './moj-button-menu/moj-button-menu-item/moj-button-menu-item.component';\nexport * from './moj-button-menu/moj-button-menu.component';\nexport * from './moj-date-picker/moj-date-picker.component';\nexport * from './moj-header/moj-header-navigation-item/moj-header-navigation-item.component';\nexport * from './moj-header/moj-header.component';\nexport * from './moj-notification-badge/moj-notification-badge.component';\nexport * from './moj-page-header/moj-page-header.component';\nexport * from './moj-pagination/moj-pagination-item/moj-pagination-item.component';\nexport * from './moj-pagination/moj-pagination-link/moj-pagination-link.component';\nexport * from './moj-pagination/moj-pagination-list/moj-pagination-list.component';\nexport * from './moj-pagination/moj-pagination.component';\nexport * from './moj-primary-navigation/moj-primary-navigation-item/moj-primary-navigation-item.component';\nexport * from './moj-primary-navigation/moj-primary-navigation.component';\nexport * from './moj-sortable-table/moj-sortable-table-header/moj-sortable-table-header.component';\nexport * from './moj-sortable-table/moj-sortable-table-row/moj-sortable-table-row-data/moj-sortable-table-row-data.component';\nexport * from './moj-sortable-table/moj-sortable-table-row/moj-sortable-table-row.component';\nexport * from './moj-sortable-table/moj-sortable-table-status/moj-sortable-table-status.component';\nexport * from './moj-sortable-table/moj-sortable-table.component';\nexport * from './moj-sub-navigation/moj-sub-navigation-item/moj-sub-navigation-item.component';\nexport * from './moj-sub-navigation/moj-sub-navigation.component';\nexport * from './moj-ticket-panel/moj-ticket-panel.component';\nexport * from './moj-timeline/moj-timeline-item/moj-timeline-item.component';\nexport * from './moj-timeline/moj-timeline.component';\n\n// INTERFACES\nexport * from './moj-header/interfaces/moj-header-links.interface';\n\n// CONSTANTS\nexport * from './moj-header/constants/moj-header-links.constant';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const PAGES_ROUTING_PATHS = {
|
|
2
|
+
root: '',
|
|
3
|
+
children: {
|
|
4
|
+
accessDenied: 'access-denied',
|
|
5
|
+
signIn: 'sign-in',
|
|
6
|
+
signInStub: 'sign-in-stub',
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const PAGES_ROUTING_TITLES = {
|
|
11
|
+
root: '',
|
|
12
|
+
children: {
|
|
13
|
+
accessDenied: 'Access denied',
|
|
14
|
+
signIn: 'Sign in',
|
|
15
|
+
signInStub: 'Sign in',
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const SESSION_ENDPOINTS = {
|
|
20
|
+
userState: '/session/user-state',
|
|
21
|
+
expiry: '/session/expiry',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const SSO_ENDPOINTS = {
|
|
25
|
+
login: '/sso/login',
|
|
26
|
+
logout: '/sso/logout',
|
|
27
|
+
callback: '/sso/callback',
|
|
28
|
+
authenticated: '/sso/authenticated',
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Generated bundle index. Do not edit.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
export { PAGES_ROUTING_PATHS, PAGES_ROUTING_TITLES, SESSION_ENDPOINTS, SSO_ENDPOINTS };
|
|
36
|
+
//# sourceMappingURL=hmcts-opal-frontend-common-constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-constants.mjs","sources":["../../../projects/opal-frontend-common/constants/src/routing-paths.constant.ts","../../../projects/opal-frontend-common/constants/src/routing-titles.constant.ts","../../../projects/opal-frontend-common/constants/src/session-endpoints.constant.ts","../../../projects/opal-frontend-common/constants/src/sso-endpoints.constant.ts","../../../projects/opal-frontend-common/constants/hmcts-opal-frontend-common-constants.ts"],"sourcesContent":["import { IPagesRoutingPaths } from '@hmcts/opal-frontend-common/interfaces';\n\nexport const PAGES_ROUTING_PATHS: IPagesRoutingPaths = {\n root: '',\n children: {\n accessDenied: 'access-denied',\n signIn: 'sign-in',\n signInStub: 'sign-in-stub',\n },\n};\n","import { IPagesRoutingPaths } from '@hmcts/opal-frontend-common/interfaces';\n\nexport const PAGES_ROUTING_TITLES: IPagesRoutingPaths = {\n root: '',\n children: {\n accessDenied: 'Access denied',\n signIn: 'Sign in',\n signInStub: 'Sign in',\n },\n};\n","import { ISessionEndpoints } from '@hmcts/opal-frontend-common/interfaces';\n\nexport const SESSION_ENDPOINTS: ISessionEndpoints = {\n userState: '/session/user-state',\n expiry: '/session/expiry',\n};\n","import { ISsoEndpoints } from '@hmcts/opal-frontend-common/interfaces';\n\nexport const SSO_ENDPOINTS: ISsoEndpoints = {\n login: '/sso/login',\n logout: '/sso/logout',\n callback: '/sso/callback',\n authenticated: '/sso/authenticated',\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAEa,MAAA,mBAAmB,GAAuB;AACrD,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,UAAU,EAAE,cAAc;AAC3B,KAAA;;;ACNU,MAAA,oBAAoB,GAAuB;AACtD,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,UAAU,EAAE,SAAS;AACtB,KAAA;;;ACNU,MAAA,iBAAiB,GAAsB;AAClD,IAAA,SAAS,EAAE,qBAAqB;AAChC,IAAA,MAAM,EAAE,iBAAiB;;;ACFd,MAAA,aAAa,GAAkB;AAC1C,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,aAAa,EAAE,oBAAoB;;;ACNrC;;AAEG;;;;"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Router, ActivatedRouteSnapshot, UrlSegment } from '@angular/router';
|
|
2
|
+
import { inject } from '@angular/core';
|
|
3
|
+
import { map, catchError, of, Observable } from 'rxjs';
|
|
4
|
+
import { PAGES_ROUTING_PATHS } from '@hmcts/opal-frontend-common/constants';
|
|
5
|
+
import { AuthService, PermissionsService, SessionService } from '@hmcts/opal-frontend-common/services';
|
|
6
|
+
import { TestBed } from '@angular/core/testing';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A guard that checks if the user is authenticated before allowing access to a route.
|
|
10
|
+
* @returns An Observable that emits a boolean value indicating whether the user is authenticated.
|
|
11
|
+
*/
|
|
12
|
+
const authGuard = () => {
|
|
13
|
+
const authService = inject(AuthService);
|
|
14
|
+
const router = inject(Router);
|
|
15
|
+
return authService.checkAuthenticated().pipe(map((resp) => {
|
|
16
|
+
return resp;
|
|
17
|
+
}), catchError(() => {
|
|
18
|
+
router.navigate([PAGES_ROUTING_PATHS.children.signIn]);
|
|
19
|
+
return of(false);
|
|
20
|
+
}));
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const canDeactivateGuard = (component) => {
|
|
24
|
+
return component.canDeactivate()
|
|
25
|
+
? true
|
|
26
|
+
: confirm('WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.');
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
function hasFlowStateGuard(getState, checkCondition, getNavigationPath) {
|
|
30
|
+
return (route) => {
|
|
31
|
+
const router = inject(Router);
|
|
32
|
+
const state = getState();
|
|
33
|
+
const { queryParams, fragment } = route;
|
|
34
|
+
return checkCondition(state)
|
|
35
|
+
? true
|
|
36
|
+
: router.createUrlTree([getNavigationPath()], {
|
|
37
|
+
queryParams: queryParams ?? undefined,
|
|
38
|
+
fragment: fragment ?? undefined,
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const routePermissionsGuard = (route) => {
|
|
44
|
+
const permissionService = inject(PermissionsService);
|
|
45
|
+
const sessionService = inject(SessionService);
|
|
46
|
+
const router = inject(Router);
|
|
47
|
+
return sessionService.getUserState().pipe(map((resp) => {
|
|
48
|
+
const routePermissionIds = route.data['routePermissionId'] ?? []; // Ensure it's an array
|
|
49
|
+
// Get the unique permission IDs for the user
|
|
50
|
+
const uniquePermissionIds = permissionService.getUniquePermissions(resp);
|
|
51
|
+
// If no permissions are required for the route, or the user has at least one matching permission, allow access
|
|
52
|
+
if (routePermissionIds.length === 0 || uniquePermissionIds.some((id) => routePermissionIds.includes(id))) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
// Redirect the user to the access denied page if they lack all required permissions
|
|
56
|
+
return router.createUrlTree([`/${PAGES_ROUTING_PATHS.children.accessDenied}`]);
|
|
57
|
+
}), catchError(() => {
|
|
58
|
+
return of(false);
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* A guard that checks if the user is signed in.
|
|
64
|
+
* If the user is signed in, it redirects to the default route.
|
|
65
|
+
* If the user is not signed in, it allows access to the route.
|
|
66
|
+
* @returns An Observable<boolean> indicating whether the user is signed in or not.
|
|
67
|
+
*/
|
|
68
|
+
const signedInGuard = () => {
|
|
69
|
+
const authService = inject(AuthService);
|
|
70
|
+
const router = inject(Router);
|
|
71
|
+
return authService.checkAuthenticated().pipe(map(() => {
|
|
72
|
+
return router.createUrlTree(['/']);
|
|
73
|
+
}), catchError(() => {
|
|
74
|
+
return of(true);
|
|
75
|
+
}));
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Returns a function that invokes the specified guard with a dummy route and state.
|
|
80
|
+
* The dummy route and state are created using the provided `urlPath`.
|
|
81
|
+
*
|
|
82
|
+
* @param guard - The guard function to be invoked.
|
|
83
|
+
* @param urlPath - The URL path to be used in the dummy route and state.
|
|
84
|
+
* @returns A function that invokes the guard with the dummy route and state.
|
|
85
|
+
*/
|
|
86
|
+
function getGuardWithDummyUrl(guard, urlPath) {
|
|
87
|
+
const dummyRoute = new ActivatedRouteSnapshot();
|
|
88
|
+
dummyRoute.url = [new UrlSegment(urlPath, {})];
|
|
89
|
+
const dummyState = {
|
|
90
|
+
url: urlPath,
|
|
91
|
+
root: new ActivatedRouteSnapshot(),
|
|
92
|
+
};
|
|
93
|
+
return () => guard(dummyRoute, dummyState);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Converts an Observable result to a Promise.
|
|
98
|
+
* @param result The Observable result to handle.
|
|
99
|
+
* @returns A Promise that resolves with the value of the Observable.
|
|
100
|
+
*/
|
|
101
|
+
function handleObservableResult(result) {
|
|
102
|
+
return new Promise((resolve) => {
|
|
103
|
+
result.subscribe((value) => {
|
|
104
|
+
resolve(value);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Runs an authentication guard function within the injection context of TestBed.
|
|
111
|
+
*
|
|
112
|
+
* @param authGuard - The authentication guard function to run.
|
|
113
|
+
* @returns A promise that resolves to a boolean or UrlTree indicating whether the user is authenticated.
|
|
114
|
+
*/
|
|
115
|
+
async function runAuthGuardWithContext(authGuard) {
|
|
116
|
+
const result = TestBed.runInInjectionContext(authGuard);
|
|
117
|
+
const authenticated = result instanceof Observable ? await handleObservableResult(result) : result;
|
|
118
|
+
return authenticated;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
async function runHasFlowStateGuardWithContext(hasFlowStateGuard) {
|
|
122
|
+
const result = TestBed.runInInjectionContext(hasFlowStateGuard);
|
|
123
|
+
const emptyFlow = result instanceof Observable ? await handleObservableResult(result) : result;
|
|
124
|
+
return emptyFlow;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// GUARDS
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Generated bundle index. Do not edit.
|
|
131
|
+
*/
|
|
132
|
+
|
|
133
|
+
export { authGuard, canDeactivateGuard, getGuardWithDummyUrl, handleObservableResult, hasFlowStateGuard, routePermissionsGuard, runAuthGuardWithContext, runHasFlowStateGuardWithContext, signedInGuard };
|
|
134
|
+
//# sourceMappingURL=hmcts-opal-frontend-common-guards.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-guards.mjs","sources":["../../../projects/opal-frontend-common/guards/auth/auth.guard.ts","../../../projects/opal-frontend-common/guards/can-deactivate/can-deactivate.guard.ts","../../../projects/opal-frontend-common/guards/has-flow-state/has-flow-state.guard.ts","../../../projects/opal-frontend-common/guards/route-permissions/route-permissions.guard.ts","../../../projects/opal-frontend-common/guards/signed-in/signed-in.guard.ts","../../../projects/opal-frontend-common/guards/helpers/get-guard-with-dummy-url.ts","../../../projects/opal-frontend-common/guards/helpers/handle-observable-result.ts","../../../projects/opal-frontend-common/guards/helpers/run-auth-guard-with-context.ts","../../../projects/opal-frontend-common/guards/helpers/run-has-flow-state-guard-with-context.ts","../../../projects/opal-frontend-common/guards/public-api.ts","../../../projects/opal-frontend-common/guards/hmcts-opal-frontend-common-guards.ts"],"sourcesContent":["import { CanActivateFn, Router } from '@angular/router';\nimport { inject } from '@angular/core';\nimport { map, catchError, of } from 'rxjs';\nimport { PAGES_ROUTING_PATHS } from '@hmcts/opal-frontend-common/constants';\nimport { AuthService } from '@hmcts/opal-frontend-common/services';\n\n/**\n * A guard that checks if the user is authenticated before allowing access to a route.\n * @returns An Observable that emits a boolean value indicating whether the user is authenticated.\n */\nexport const authGuard: CanActivateFn = () => {\n const authService: AuthService = inject(AuthService);\n const router = inject(Router);\n\n return authService.checkAuthenticated().pipe(\n map((resp) => {\n return resp;\n }),\n catchError(() => {\n router.navigate([PAGES_ROUTING_PATHS.children.signIn]);\n return of(false);\n }),\n );\n};\n","import { CanDeactivateFn } from '@angular/router';\nimport { ICanDeactivateCanComponentDeactivate } from './interfaces/can-deactivate-can-component-deactivate.interface';\n\nexport const canDeactivateGuard: CanDeactivateFn<ICanDeactivateCanComponentDeactivate> = (\n component: ICanDeactivateCanComponentDeactivate,\n) => {\n return component.canDeactivate()\n ? true\n : confirm(\n 'WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.',\n );\n};\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, Router } from '@angular/router';\n\nexport function hasFlowStateGuard<T>(\n getState: () => T,\n checkCondition: (state: T) => boolean,\n getNavigationPath: () => string,\n): CanActivateFn {\n return (route: ActivatedRouteSnapshot) => {\n const router = inject(Router);\n const state = getState();\n const { queryParams, fragment } = route;\n\n return checkCondition(state)\n ? true\n : router.createUrlTree([getNavigationPath()], {\n queryParams: queryParams ?? undefined,\n fragment: fragment ?? undefined,\n });\n };\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, Router } from '@angular/router';\nimport { catchError, map, of } from 'rxjs';\nimport { PermissionsService, SessionService } from '@hmcts/opal-frontend-common/services';\nimport { PAGES_ROUTING_PATHS } from '@hmcts/opal-frontend-common/constants';\n\nexport const routePermissionsGuard: CanActivateFn = (route: ActivatedRouteSnapshot) => {\n const permissionService = inject(PermissionsService);\n const sessionService = inject(SessionService);\n const router = inject(Router);\n\n return sessionService.getUserState().pipe(\n map((resp) => {\n const routePermissionIds: number[] = route.data['routePermissionId'] ?? []; // Ensure it's an array\n\n // Get the unique permission IDs for the user\n const uniquePermissionIds = permissionService.getUniquePermissions(resp);\n\n // If no permissions are required for the route, or the user has at least one matching permission, allow access\n if (routePermissionIds.length === 0 || uniquePermissionIds.some((id) => routePermissionIds.includes(id))) {\n return true;\n }\n\n // Redirect the user to the access denied page if they lack all required permissions\n return router.createUrlTree([`/${PAGES_ROUTING_PATHS.children.accessDenied}`]);\n }),\n catchError(() => {\n return of(false);\n }),\n );\n};\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { map, catchError, of } from 'rxjs';\nimport { AuthService } from '@hmcts/opal-frontend-common/services';\n\n/**\n * A guard that checks if the user is signed in.\n * If the user is signed in, it redirects to the default route.\n * If the user is not signed in, it allows access to the route.\n * @returns An Observable<boolean> indicating whether the user is signed in or not.\n */\nexport const signedInGuard: CanActivateFn = () => {\n const authService: AuthService = inject(AuthService);\n const router = inject(Router);\n\n return authService.checkAuthenticated().pipe(\n map(() => {\n return router.createUrlTree(['/']);\n }),\n catchError(() => {\n return of(true);\n }),\n );\n};\n","import { ActivatedRouteSnapshot, UrlSegment, RouterStateSnapshot, CanActivateFn } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { GuardReturnType } from '../types/guard-return.type';\n\n/**\n * Returns a function that invokes the specified guard with a dummy route and state.\n * The dummy route and state are created using the provided `urlPath`.\n *\n * @param guard - The guard function to be invoked.\n * @param urlPath - The URL path to be used in the dummy route and state.\n * @returns A function that invokes the guard with the dummy route and state.\n */\nexport function getGuardWithDummyUrl(\n guard: CanActivateFn,\n urlPath: string,\n): () => GuardReturnType | Promise<GuardReturnType> | Observable<GuardReturnType> {\n const dummyRoute = new ActivatedRouteSnapshot();\n dummyRoute.url = [new UrlSegment(urlPath, {})];\n const dummyState: RouterStateSnapshot = {\n url: urlPath,\n root: new ActivatedRouteSnapshot(),\n };\n return () => guard(dummyRoute, dummyState);\n}\n","import { Observable } from 'rxjs';\nimport { GuardReturnType } from '../types/guard-return.type';\n\n/**\n * Converts an Observable result to a Promise.\n * @param result The Observable result to handle.\n * @returns A Promise that resolves with the value of the Observable.\n */\nexport function handleObservableResult(result: Observable<GuardReturnType>): Promise<GuardReturnType> {\n return new Promise<GuardReturnType>((resolve) => {\n result.subscribe((value) => {\n resolve(value);\n });\n });\n}\n","import { TestBed } from '@angular/core/testing';\nimport { Observable } from 'rxjs';\nimport { handleObservableResult } from './handle-observable-result';\nimport { GuardReturnType } from '../types/guard-return.type';\n\n/**\n * Runs an authentication guard function within the injection context of TestBed.\n *\n * @param authGuard - The authentication guard function to run.\n * @returns A promise that resolves to a boolean or UrlTree indicating whether the user is authenticated.\n */\nexport async function runAuthGuardWithContext(\n authGuard: () => GuardReturnType | Promise<GuardReturnType> | Observable<GuardReturnType>,\n): Promise<GuardReturnType> {\n const result = TestBed.runInInjectionContext(authGuard);\n const authenticated = result instanceof Observable ? await handleObservableResult(result) : result;\n return authenticated;\n}\n","import { TestBed } from '@angular/core/testing';\nimport { Observable } from 'rxjs';\nimport { handleObservableResult } from './handle-observable-result';\nimport { GuardReturnType } from '../types/guard-return.type';\n\nexport async function runHasFlowStateGuardWithContext(\n hasFlowStateGuard: () => GuardReturnType | Promise<GuardReturnType> | Observable<GuardReturnType>,\n): Promise<GuardReturnType> {\n const result = TestBed.runInInjectionContext(hasFlowStateGuard);\n const emptyFlow = result instanceof Observable ? await handleObservableResult(result) : result;\n return emptyFlow;\n}\n","// GUARDS\nexport * from './auth/auth.guard';\nexport * from './can-deactivate/can-deactivate.guard';\nexport * from './has-flow-state/has-flow-state.guard';\nexport * from './route-permissions/route-permissions.guard';\nexport * from './signed-in/signed-in.guard';\n\n// HELPERS\nexport * from './helpers/get-guard-with-dummy-url';\nexport * from './helpers/handle-observable-result';\nexport * from './helpers/run-auth-guard-with-context';\nexport * from './helpers/run-has-flow-state-guard-with-context';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { tap, catchError, throwError } from 'rxjs';
|
|
3
|
+
import { AppInsightsService } from '@hmcts/opal-frontend-common/services';
|
|
4
|
+
import { GlobalStore } from '@hmcts/opal-frontend-common/stores';
|
|
5
|
+
|
|
6
|
+
const httpErrorInterceptor = (req, next) => {
|
|
7
|
+
const globalStore = inject(GlobalStore);
|
|
8
|
+
const appInsightsService = inject(AppInsightsService);
|
|
9
|
+
return next(req).pipe(tap(() => {
|
|
10
|
+
// Clear the state service on new requests
|
|
11
|
+
globalStore.setError({ error: false, message: '' });
|
|
12
|
+
}), catchError((error) => {
|
|
13
|
+
// Ensure ErrorEvent is handled only in browser environments
|
|
14
|
+
const isBrowser = typeof window !== 'undefined';
|
|
15
|
+
const isErrorEvent = isBrowser && typeof ErrorEvent !== 'undefined' && error.error instanceof ErrorEvent;
|
|
16
|
+
const errorMessage = isErrorEvent ? `Error: ${error.error.message}` : `Error: ${error.message}`;
|
|
17
|
+
globalStore.setError({
|
|
18
|
+
error: true,
|
|
19
|
+
message: errorMessage,
|
|
20
|
+
});
|
|
21
|
+
appInsightsService.logException(error);
|
|
22
|
+
return throwError(() => error);
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Generated bundle index. Do not edit.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
export { httpErrorInterceptor };
|
|
31
|
+
//# sourceMappingURL=hmcts-opal-frontend-common-interceptors.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-interceptors.mjs","sources":["../../../projects/opal-frontend-common/interceptors/http-error/http-error.interceptor.ts","../../../projects/opal-frontend-common/interceptors/hmcts-opal-frontend-common-interceptors.ts"],"sourcesContent":["import { HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { catchError, tap, throwError } from 'rxjs';\nimport { AppInsightsService } from '@hmcts/opal-frontend-common/services';\nimport { GlobalStore } from '@hmcts/opal-frontend-common/stores';\n\nexport const httpErrorInterceptor: HttpInterceptorFn = (req, next) => {\n const globalStore = inject(GlobalStore);\n const appInsightsService = inject(AppInsightsService);\n\n return next(req).pipe(\n tap(() => {\n // Clear the state service on new requests\n globalStore.setError({ error: false, message: '' });\n }),\n catchError((error) => {\n // Ensure ErrorEvent is handled only in browser environments\n const isBrowser = typeof window !== 'undefined';\n const isErrorEvent = isBrowser && typeof ErrorEvent !== 'undefined' && error.error instanceof ErrorEvent;\n\n const errorMessage = isErrorEvent ? `Error: ${error.error.message}` : `Error: ${error.message}`;\n\n globalStore.setError({\n error: true,\n message: errorMessage,\n });\n\n appInsightsService.logException(error);\n\n return throwError(() => error);\n }),\n );\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAMa,oBAAoB,GAAsB,CAAC,GAAG,EAAE,IAAI,KAAI;AACnE,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACvC,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAErD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,GAAG,CAAC,MAAK;;AAEP,QAAA,WAAW,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACrD,KAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;;AAEnB,QAAA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW;AAC/C,QAAA,MAAM,YAAY,GAAG,SAAS,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK,YAAY,UAAU;QAExG,MAAM,YAAY,GAAG,YAAY,GAAG,CAAA,OAAA,EAAU,KAAK,CAAC,KAAK,CAAC,OAAO,CAAA,CAAE,GAAG,UAAU,KAAK,CAAC,OAAO,CAAA,CAAE;QAE/F,WAAW,CAAC,QAAQ,CAAC;AACnB,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,OAAO,EAAE,YAAY;AACtB,SAAA,CAAC;AAEF,QAAA,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC;AAEtC,QAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC;KAC/B,CAAC,CACH;AACH;;AChCA;;AAEG;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-interfaces.mjs","sources":["../../../projects/opal-frontend-common/interfaces/hmcts-opal-frontend-common-interfaces.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
|