@hmcts/opal-frontend-common 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2022/hmcts-opal-frontend-common.mjs +5 -0
- package/esm2022/lib/components/govuk/govuk-button/govuk-button.component.mjs +34 -0
- package/esm2022/lib/components/govuk/govuk-text-input/govuk-text-input.component.mjs +57 -0
- package/esm2022/lib/components/govuk/index.mjs +3 -0
- package/esm2022/lib/guards/auth/auth.guard.mjs +20 -0
- package/esm2022/lib/guards/auth/index.mjs +2 -0
- package/esm2022/lib/guards/can-deactivate/can-deactivate.guard.mjs +6 -0
- package/esm2022/lib/guards/can-deactivate/index.mjs +5 -0
- package/esm2022/lib/guards/can-deactivate/interfaces/can-deactivate-can-component-deactivate.interface.mjs +2 -0
- package/esm2022/lib/guards/can-deactivate/interfaces/index.mjs +2 -0
- package/esm2022/lib/guards/has-flow-state/has-flow-state.guard.mjs +16 -0
- package/esm2022/lib/guards/has-flow-state/index.mjs +2 -0
- package/esm2022/lib/guards/helpers/get-guard-with-dummy-url.mjs +19 -0
- package/esm2022/lib/guards/helpers/handle-observable-result.mjs +13 -0
- package/esm2022/lib/guards/helpers/index.mjs +5 -0
- package/esm2022/lib/guards/helpers/run-auth-guard-with-context.mjs +15 -0
- package/esm2022/lib/guards/helpers/run-has-flow-state-guard-with-context.mjs +9 -0
- package/esm2022/lib/guards/index.mjs +10 -0
- package/esm2022/lib/guards/route-permissions/index.mjs +2 -0
- package/esm2022/lib/guards/route-permissions/route-permissions.guard.mjs +25 -0
- package/esm2022/lib/guards/signed-in/index.mjs +3 -0
- package/esm2022/lib/guards/signed-in/signed-in.guard.mjs +20 -0
- package/esm2022/lib/guards/types/can-deactivate.type.mjs +2 -0
- package/esm2022/lib/guards/types/guard-return.type.mjs +2 -0
- package/esm2022/lib/guards/types/index.mjs +3 -0
- package/esm2022/lib/interceptors/http-error/http-error.interceptor.mjs +24 -0
- package/esm2022/lib/interceptors/index.mjs +3 -0
- package/esm2022/lib/opal-frontend-common.module.mjs +22 -0
- package/esm2022/lib/pages/access-denied/access-denied.component.mjs +18 -0
- package/esm2022/lib/pages/index.mjs +4 -0
- package/esm2022/lib/pages/routing/constants/routing-paths.constant.mjs +9 -0
- package/esm2022/lib/pages/routing/constants/routing-titles.constant.mjs +9 -0
- package/esm2022/lib/pages/routing/interfaces/routing-paths.interface.mjs +2 -0
- package/esm2022/lib/pages/routing/pages.routes.mjs +24 -0
- package/esm2022/lib/pages/sign-in/interfaces/index.mjs +2 -0
- package/esm2022/lib/pages/sign-in/interfaces/sign-in-stub-form.interface.mjs +2 -0
- package/esm2022/lib/pages/sign-in/sign-in-sso/sign-in-sso.component.mjs +23 -0
- package/esm2022/lib/pages/sign-in/sign-in-stub/sign-in-stub.component.mjs +39 -0
- package/esm2022/lib/pages/sign-in/sign-in.component.mjs +38 -0
- package/esm2022/lib/resolvers/index.mjs +3 -0
- package/esm2022/lib/resolvers/title/index.mjs +2 -0
- package/esm2022/lib/resolvers/title/title.resolver.mjs +22 -0
- package/esm2022/lib/resolvers/user-state/index.mjs +2 -0
- package/esm2022/lib/resolvers/user-state/user-state.resolver.mjs +12 -0
- package/esm2022/lib/routing/constants/index.mjs +2 -0
- package/esm2022/lib/routing/constants/sso-endpoints.constant.mjs +7 -0
- package/esm2022/lib/routing/index.mjs +3 -0
- package/esm2022/lib/routing/interfaces/child-routing-paths.interface.mjs +2 -0
- package/esm2022/lib/routing/interfaces/index.mjs +4 -0
- package/esm2022/lib/routing/interfaces/nested-routes.interface.mjs +2 -0
- package/esm2022/lib/routing/interfaces/sso-endpoints.interface.mjs +2 -0
- package/esm2022/lib/services/app-initializer-service/app-initializer.service.mjs +36 -0
- package/esm2022/lib/services/app-initializer-service/index.mjs +2 -0
- package/esm2022/lib/services/app-insights/app-insights.service.mjs +73 -0
- package/esm2022/lib/services/app-insights/index.mjs +4 -0
- package/esm2022/lib/services/auth-service/auth.service.mjs +36 -0
- package/esm2022/lib/services/auth-service/index.mjs +2 -0
- package/esm2022/lib/services/date-service/date.service.mjs +182 -0
- package/esm2022/lib/services/date-service/index.mjs +4 -0
- package/esm2022/lib/services/index.mjs +12 -0
- package/esm2022/lib/services/launch-darkly/index.mjs +5 -0
- package/esm2022/lib/services/launch-darkly/launch-darkly.service.mjs +94 -0
- package/esm2022/lib/services/launch-darkly/mocks/index.mjs +3 -0
- package/esm2022/lib/services/launch-darkly/mocks/launch-darkly-change-flags.mock.mjs +5 -0
- package/esm2022/lib/services/launch-darkly/mocks/launch-darkly-flags.mock.mjs +5 -0
- package/esm2022/lib/services/permissions-service/index.mjs +4 -0
- package/esm2022/lib/services/permissions-service/permissions.service.mjs +40 -0
- package/esm2022/lib/services/session-service/constants/index.mjs +2 -0
- package/esm2022/lib/services/session-service/constants/session-endpoints.constant.mjs +5 -0
- package/esm2022/lib/services/session-service/index.mjs +7 -0
- package/esm2022/lib/services/session-service/interfaces/index.mjs +4 -0
- package/esm2022/lib/services/session-service/interfaces/session-endpoints.interface.mjs +2 -0
- package/esm2022/lib/services/session-service/interfaces/session-token-expiry.interface.mjs +2 -0
- package/esm2022/lib/services/session-service/interfaces/session-user-state.interface.mjs +2 -0
- package/esm2022/lib/services/session-service/mocks/index.mjs +3 -0
- package/esm2022/lib/services/session-service/mocks/session-token-expiry.mock.mjs +5 -0
- package/esm2022/lib/services/session-service/mocks/session-user-state.mock.mjs +386 -0
- package/esm2022/lib/services/session-service/session.service.mjs +64 -0
- package/esm2022/lib/services/sort-service/index.mjs +6 -0
- package/esm2022/lib/services/sort-service/interfaces/index.mjs +3 -0
- package/esm2022/lib/services/sort-service/interfaces/sort-service-values.interface.mjs +2 -0
- package/esm2022/lib/services/sort-service/interfaces/sort-service.interface.mjs +2 -0
- package/esm2022/lib/services/sort-service/sort-service.mjs +90 -0
- package/esm2022/lib/services/sort-service/types/index.mjs +2 -0
- package/esm2022/lib/services/sort-service/types/sort-service.type.mjs +2 -0
- package/esm2022/lib/services/transfer-state-service/index.mjs +6 -0
- package/esm2022/lib/services/transfer-state-service/interfaces/index.mjs +4 -0
- package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-app-insights-config.interface.mjs +2 -0
- package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-launch-darkly-config.interface.mjs +2 -0
- package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-server-state.interface.mjs +2 -0
- package/esm2022/lib/services/transfer-state-service/mocks/index.mjs +4 -0
- package/esm2022/lib/services/transfer-state-service/mocks/transfer-state-app-insights-config.mock.mjs +6 -0
- package/esm2022/lib/services/transfer-state-service/mocks/transfer-state-launch-darkly-config.mock.mjs +6 -0
- package/esm2022/lib/services/transfer-state-service/mocks/transfer-state.mock.mjs +8 -0
- package/esm2022/lib/services/transfer-state-service/transfer-state.service.mjs +59 -0
- package/esm2022/lib/services/transformation-service/index.mjs +5 -0
- package/esm2022/lib/services/transformation-service/interfaces/index.mjs +2 -0
- package/esm2022/lib/services/transformation-service/interfaces/transform-item.interface.mjs +2 -0
- package/esm2022/lib/services/transformation-service/transformation.service.mjs +69 -0
- package/esm2022/lib/services/utils/index.mjs +4 -0
- package/esm2022/lib/services/utils/utils.service.mjs +86 -0
- package/esm2022/lib/stores/global/global.store.mjs +33 -0
- package/esm2022/lib/stores/global/index.mjs +6 -0
- package/esm2022/lib/stores/global/interfaces/error-state.interface.mjs +2 -0
- package/esm2022/lib/stores/global/interfaces/index.mjs +2 -0
- package/esm2022/lib/stores/global/types/global-store.type.mjs +2 -0
- package/esm2022/lib/stores/global/types/index.mjs +2 -0
- package/esm2022/lib/stores/index.mjs +2 -0
- package/esm2022/lib/validators/alphabetical-text/alphabetical-text.validator.mjs +10 -0
- package/esm2022/lib/validators/amount/amount.validator.mjs +15 -0
- package/esm2022/lib/validators/date-after-year/date-after-year.validator.mjs +12 -0
- package/esm2022/lib/validators/date-before/date-before.validator.mjs +15 -0
- package/esm2022/lib/validators/date-of-birth/date-of-birth.validator.mjs +18 -0
- package/esm2022/lib/validators/future-date/future-date.validator.mjs +15 -0
- package/esm2022/lib/validators/index.mjs +20 -0
- package/esm2022/lib/validators/invalid-value/invalid-value.validator.mjs +9 -0
- package/esm2022/lib/validators/national-insurance-number/national-insurance-number.validator.mjs +16 -0
- package/esm2022/lib/validators/numerical-only/numerical-only.validator.mjs +10 -0
- package/esm2022/lib/validators/optional-max-length/optional-max-length.validator.mjs +10 -0
- package/esm2022/lib/validators/optional-valid-date/optional-valid-date.validator.mjs +23 -0
- package/esm2022/lib/validators/optional-valid-email-address/optional-valid-email-address.validator.mjs +11 -0
- package/esm2022/lib/validators/optional-valid-telephone/optional-valid-telephone.validator.mjs +14 -0
- package/esm2022/lib/validators/over-eighteen/over-eighteen.validator.mjs +45 -0
- package/esm2022/lib/validators/past-date/past-date.validator.mjs +16 -0
- package/esm2022/lib/validators/special-characters/special-characters.validator.mjs +11 -0
- package/esm2022/lib/validators/two-decimal-places/two-decimal-places.validator.mjs +12 -0
- package/esm2022/lib/validators/valid-value/valid-value.validator.mjs +9 -0
- package/esm2022/public-api.mjs +11 -0
- package/fesm2022/hmcts-opal-frontend-common-sign-in-stub.component-CysPzJGJ.mjs +41 -0
- package/fesm2022/hmcts-opal-frontend-common-sign-in-stub.component-CysPzJGJ.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common.mjs +1947 -0
- package/fesm2022/hmcts-opal-frontend-common.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/govuk/govuk-button/govuk-button.component.d.ts +14 -0
- package/lib/components/govuk/govuk-text-input/govuk-text-input.component.d.ts +17 -0
- package/lib/components/govuk/index.d.ts +2 -0
- package/lib/guards/auth/auth.guard.d.ts +6 -0
- package/lib/guards/auth/index.d.ts +1 -0
- package/lib/guards/can-deactivate/can-deactivate.guard.d.ts +3 -0
- package/lib/guards/can-deactivate/index.d.ts +2 -0
- package/lib/guards/can-deactivate/interfaces/can-deactivate-can-component-deactivate.interface.d.ts +4 -0
- package/lib/guards/can-deactivate/interfaces/index.d.ts +2 -0
- package/lib/guards/has-flow-state/has-flow-state.guard.d.ts +2 -0
- package/lib/guards/has-flow-state/index.d.ts +1 -0
- package/lib/guards/helpers/get-guard-with-dummy-url.d.ts +12 -0
- package/lib/guards/helpers/handle-observable-result.d.ts +8 -0
- package/lib/guards/helpers/index.d.ts +4 -0
- package/lib/guards/helpers/run-auth-guard-with-context.d.ts +9 -0
- package/lib/guards/helpers/run-has-flow-state-guard-with-context.d.ts +3 -0
- package/lib/guards/index.d.ts +7 -0
- package/lib/guards/route-permissions/index.d.ts +1 -0
- package/lib/guards/route-permissions/route-permissions.guard.d.ts +2 -0
- package/lib/guards/signed-in/index.d.ts +1 -0
- package/lib/guards/signed-in/signed-in.guard.d.ts +8 -0
- package/lib/guards/types/can-deactivate.type.d.ts +3 -0
- package/lib/guards/types/guard-return.type.d.ts +2 -0
- package/lib/guards/types/index.d.ts +2 -0
- package/lib/interceptors/http-error/http-error.interceptor.d.ts +2 -0
- package/lib/interceptors/index.d.ts +2 -0
- package/lib/opal-frontend-common.module.d.ts +14 -0
- package/lib/pages/access-denied/access-denied.component.d.ts +7 -0
- package/lib/pages/index.d.ts +3 -0
- package/lib/pages/routing/constants/routing-paths.constant.d.ts +2 -0
- package/lib/pages/routing/constants/routing-titles.constant.d.ts +2 -0
- package/lib/pages/routing/interfaces/routing-paths.interface.d.ts +8 -0
- package/lib/pages/routing/pages.routes.d.ts +2 -0
- package/lib/pages/sign-in/interfaces/index.d.ts +2 -0
- package/lib/pages/sign-in/interfaces/sign-in-stub-form.interface.d.ts +3 -0
- package/lib/pages/sign-in/sign-in-sso/sign-in-sso.component.d.ts +11 -0
- package/lib/pages/sign-in/sign-in-stub/sign-in-stub.component.d.ts +19 -0
- package/lib/pages/sign-in/sign-in.component.d.ts +51 -0
- package/lib/resolvers/index.d.ts +2 -0
- package/lib/resolvers/title/index.d.ts +1 -0
- package/lib/resolvers/title/title.resolver.d.ts +10 -0
- package/lib/resolvers/user-state/index.d.ts +1 -0
- package/lib/resolvers/user-state/user-state.resolver.d.ts +7 -0
- package/lib/routing/constants/index.d.ts +1 -0
- package/lib/routing/constants/sso-endpoints.constant.d.ts +2 -0
- package/lib/routing/index.d.ts +2 -0
- package/lib/routing/interfaces/child-routing-paths.interface.d.ts +6 -0
- package/lib/routing/interfaces/index.d.ts +3 -0
- package/lib/routing/interfaces/nested-routes.interface.d.ts +4 -0
- package/lib/routing/interfaces/sso-endpoints.interface.d.ts +6 -0
- package/lib/services/app-initializer-service/app-initializer.service.d.ts +20 -0
- package/lib/services/app-initializer-service/index.d.ts +1 -0
- package/lib/services/app-insights/app-insights.service.d.ts +33 -0
- package/lib/services/app-insights/index.d.ts +1 -0
- package/lib/services/auth-service/auth.service.d.ts +8 -0
- package/lib/services/auth-service/index.d.ts +1 -0
- package/lib/services/date-service/date.service.d.ts +123 -0
- package/lib/services/date-service/index.d.ts +1 -0
- package/lib/services/index.d.ts +11 -0
- package/lib/services/launch-darkly/index.d.ts +2 -0
- package/lib/services/launch-darkly/launch-darkly.service.d.ts +41 -0
- package/lib/services/launch-darkly/mocks/index.d.ts +2 -0
- package/lib/services/launch-darkly/mocks/launch-darkly-change-flags.mock.d.ts +10 -0
- package/lib/services/launch-darkly/mocks/launch-darkly-flags.mock.d.ts +4 -0
- package/lib/services/permissions-service/index.d.ts +1 -0
- package/lib/services/permissions-service/permissions.service.d.ts +14 -0
- package/lib/services/session-service/constants/index.d.ts +1 -0
- package/lib/services/session-service/constants/session-endpoints.constant.d.ts +2 -0
- package/lib/services/session-service/index.d.ts +4 -0
- package/lib/services/session-service/interfaces/index.d.ts +3 -0
- package/lib/services/session-service/interfaces/session-endpoints.interface.d.ts +4 -0
- package/lib/services/session-service/interfaces/session-token-expiry.interface.d.ts +4 -0
- package/lib/services/session-service/interfaces/session-user-state.interface.d.ts +15 -0
- package/lib/services/session-service/mocks/index.d.ts +2 -0
- package/lib/services/session-service/mocks/session-token-expiry.mock.d.ts +2 -0
- package/lib/services/session-service/mocks/session-user-state.mock.d.ts +2 -0
- package/lib/services/session-service/session.service.d.ts +30 -0
- package/lib/services/sort-service/index.d.ts +3 -0
- package/lib/services/sort-service/interfaces/index.d.ts +2 -0
- package/lib/services/sort-service/interfaces/sort-service-values.interface.d.ts +6 -0
- package/lib/services/sort-service/interfaces/sort-service.interface.d.ts +4 -0
- package/lib/services/sort-service/sort-service.d.ts +64 -0
- package/lib/services/sort-service/types/index.d.ts +1 -0
- package/lib/services/sort-service/types/sort-service.type.d.ts +1 -0
- package/lib/services/transfer-state-service/index.d.ts +3 -0
- package/lib/services/transfer-state-service/interfaces/index.d.ts +3 -0
- package/lib/services/transfer-state-service/interfaces/transfer-state-app-insights-config.interface.d.ts +5 -0
- package/lib/services/transfer-state-service/interfaces/transfer-state-launch-darkly-config.interface.d.ts +5 -0
- package/lib/services/transfer-state-service/interfaces/transfer-state-server-state.interface.d.ts +7 -0
- package/lib/services/transfer-state-service/mocks/index.d.ts +3 -0
- package/lib/services/transfer-state-service/mocks/transfer-state-app-insights-config.mock.d.ts +5 -0
- package/lib/services/transfer-state-service/mocks/transfer-state-launch-darkly-config.mock.d.ts +5 -0
- package/lib/services/transfer-state-service/mocks/transfer-state.mock.d.ts +2 -0
- package/lib/services/transfer-state-service/transfer-state.service.d.ts +23 -0
- package/lib/services/transformation-service/index.d.ts +2 -0
- package/lib/services/transformation-service/interfaces/index.d.ts +1 -0
- package/lib/services/transformation-service/interfaces/transform-item.interface.d.ts +6 -0
- package/lib/services/transformation-service/transformation.service.d.ts +30 -0
- package/lib/services/utils/index.d.ts +1 -0
- package/lib/services/utils/utils.service.d.ts +54 -0
- package/lib/stores/global/global.store.d.ts +35 -0
- package/lib/stores/global/index.d.ts +3 -0
- package/lib/stores/global/interfaces/error-state.interface.d.ts +4 -0
- package/lib/stores/global/interfaces/index.d.ts +1 -0
- package/lib/stores/global/types/global-store.type.d.ts +2 -0
- package/lib/stores/global/types/index.d.ts +1 -0
- package/lib/stores/index.d.ts +1 -0
- package/lib/validators/alphabetical-text/alphabetical-text.validator.d.ts +2 -0
- package/lib/validators/amount/amount.validator.d.ts +2 -0
- package/lib/validators/date-after-year/date-after-year.validator.d.ts +2 -0
- package/lib/validators/date-before/date-before.validator.d.ts +2 -0
- package/lib/validators/date-of-birth/date-of-birth.validator.d.ts +2 -0
- package/lib/validators/future-date/future-date.validator.d.ts +2 -0
- package/lib/validators/index.d.ts +19 -0
- package/lib/validators/invalid-value/invalid-value.validator.d.ts +2 -0
- package/lib/validators/national-insurance-number/national-insurance-number.validator.d.ts +2 -0
- package/lib/validators/numerical-only/numerical-only.validator.d.ts +2 -0
- package/lib/validators/optional-max-length/optional-max-length.validator.d.ts +2 -0
- package/lib/validators/optional-valid-date/optional-valid-date.validator.d.ts +2 -0
- package/lib/validators/optional-valid-email-address/optional-valid-email-address.validator.d.ts +2 -0
- package/lib/validators/optional-valid-telephone/optional-valid-telephone.validator.d.ts +2 -0
- package/lib/validators/over-eighteen/over-eighteen.validator.d.ts +14 -0
- package/lib/validators/past-date/past-date.validator.d.ts +2 -0
- package/lib/validators/special-characters/special-characters.validator.d.ts +2 -0
- package/lib/validators/two-decimal-places/two-decimal-places.validator.d.ts +2 -0
- package/lib/validators/valid-value/valid-value.validator.d.ts +2 -0
- package/package.json +28 -0
- package/public-api.d.ts +10 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
|
|
3
|
+
import { GovukButtonComponent } from '../../../components/govuk/govuk-button/govuk-button.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class SignInSsoComponent {
|
|
6
|
+
signInButtonClick = new EventEmitter();
|
|
7
|
+
/**
|
|
8
|
+
* Handles the button click event.
|
|
9
|
+
* Emits the `signInButtonClick` event.
|
|
10
|
+
*/
|
|
11
|
+
handleButtonClick() {
|
|
12
|
+
this.signInButtonClick.emit();
|
|
13
|
+
}
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInSsoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SignInSsoComponent, isStandalone: true, selector: "opal-lib-sign-in-sso", outputs: { signInButtonClick: "signInButtonClick" }, ngImport: i0, template: "<div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-m\">Sign in</h1>\n <p class=\"govuk-body\">Please sign in to continue using the application</p>\n\n <p class=\"govuk-body\">\n <opal-lib-govuk-button buttonId=\"signInButton\" (buttonClickEvent)=\"handleButtonClick()\">\n Sign in</opal-lib-govuk-button\n >\n </p>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: GovukButtonComponent, selector: "opal-lib-govuk-button", inputs: ["buttonId", "type", "buttonClasses"], outputs: ["buttonClickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInSsoComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ standalone: true, selector: 'opal-lib-sign-in-sso', imports: [CommonModule, GovukButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-m\">Sign in</h1>\n <p class=\"govuk-body\">Please sign in to continue using the application</p>\n\n <p class=\"govuk-body\">\n <opal-lib-govuk-button buttonId=\"signInButton\" (buttonClickEvent)=\"handleButtonClick()\">\n Sign in</opal-lib-govuk-button\n >\n </p>\n</div>\n" }]
|
|
20
|
+
}], propDecorators: { signInButtonClick: [{
|
|
21
|
+
type: Output
|
|
22
|
+
}] } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi1zc28uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3BhbC1mcm9udGVuZC1jb21tb24vc3JjL2xpYi9wYWdlcy9zaWduLWluL3NpZ24taW4tc3NvL3NpZ24taW4tc3NvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29wYWwtZnJvbnRlbmQtY29tbW9uL3NyYy9saWIvcGFnZXMvc2lnbi1pbi9zaWduLWluLXNzby9zaWduLWluLXNzby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDOztBQVNyRyxNQUFNLE9BQU8sa0JBQWtCO0lBQ0YsaUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVsRTs7O09BR0c7SUFDSSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7d0dBVFUsa0JBQWtCOzRGQUFsQixrQkFBa0IscUlDWC9CLDJXQVVBLDJDREhZLFlBQVksK0JBQUUsb0JBQW9COzs0RkFJakMsa0JBQWtCO2tCQVA5QixTQUFTO2lDQUNJLElBQUksWUFDTixzQkFBc0IsV0FDdkIsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsbUJBRTVCLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLGlCQUFpQjtzQkFBM0MsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR292dWtCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2dvdnVrL2dvdnVrLWJ1dHRvbi9nb3Z1ay1idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb3BhbC1saWItc2lnbi1pbi1zc28nLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBHb3Z1a0J1dHRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWduLWluLXNzby5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTaWduSW5Tc29Db21wb25lbnQge1xuICBAT3V0cHV0KCkgcHJpdmF0ZSByZWFkb25seSBzaWduSW5CdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgYnV0dG9uIGNsaWNrIGV2ZW50LlxuICAgKiBFbWl0cyB0aGUgYHNpZ25JbkJ1dHRvbkNsaWNrYCBldmVudC5cbiAgICovXG4gIHB1YmxpYyBoYW5kbGVCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25JbkJ1dHRvbkNsaWNrLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLXR3by10aGlyZHNcIj5cbiAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy1tXCI+U2lnbiBpbjwvaDE+XG4gIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlBsZWFzZSBzaWduIGluIHRvIGNvbnRpbnVlIHVzaW5nIHRoZSBhcHBsaWNhdGlvbjwvcD5cblxuICA8cCBjbGFzcz1cImdvdnVrLWJvZHlcIj5cbiAgICA8b3BhbC1saWItZ292dWstYnV0dG9uIGJ1dHRvbklkPVwic2lnbkluQnV0dG9uXCIgKGJ1dHRvbkNsaWNrRXZlbnQpPVwiaGFuZGxlQnV0dG9uQ2xpY2soKVwiPlxuICAgICAgU2lnbiBpbjwvb3BhbC1saWItZ292dWstYnV0dG9uXG4gICAgPlxuICA8L3A+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
3
|
+
import { GovukTextInputComponent } from '../../../components/govuk/govuk-text-input/govuk-text-input.component';
|
|
4
|
+
import { GovukButtonComponent } from '../../../components/govuk/govuk-button/govuk-button.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
export class SignInStubComponent {
|
|
8
|
+
signInForm;
|
|
9
|
+
signInFormSubmit = new EventEmitter();
|
|
10
|
+
/**
|
|
11
|
+
* Sets up the sign-in form.
|
|
12
|
+
*/
|
|
13
|
+
setupSignInForm() {
|
|
14
|
+
this.signInForm = new FormGroup({
|
|
15
|
+
email: new FormControl(null, [Validators.required]),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Handles the form submission.
|
|
20
|
+
* If the signInForm is valid, emits the signInForm value using the signInFormSubmit event.
|
|
21
|
+
*/
|
|
22
|
+
handleFormSubmit() {
|
|
23
|
+
if (this.signInForm.valid) {
|
|
24
|
+
this.signInFormSubmit.emit(this.signInForm.value);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.setupSignInForm();
|
|
29
|
+
}
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInStubComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SignInStubComponent, isStandalone: true, selector: "opal-lib-sign-in-stub", outputs: { signInFormSubmit: "signInFormSubmit" }, ngImport: i0, template: "<form (submit)=\"handleFormSubmit()\">\n <div class=\"govuk-grid-column-two-thirds\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 class=\"govuk-fieldset__heading\">Sign in</h1>\n </legend>\n\n <div [formGroup]=\"signInForm\">\n <opal-lib-govuk-text-input\n labelText=\"Email\"\n inputId=\"email\"\n inputName=\"email\"\n inputClasses=\"govuk-!-width-one-half\"\n [control]=\"signInForm.controls['email']\"\n ></opal-lib-govuk-text-input>\n </div>\n </fieldset>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-one-third\">\n <opal-lib-govuk-button buttonId=\"submitForm\" type=\"submit\"> Sign in</opal-lib-govuk-button>\n </div>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: GovukTextInputComponent, selector: "opal-lib-govuk-text-input", inputs: ["labelText", "labelClasses", "inputId", "inputName", "inputClasses", "hintText", "hintHtml", "errors", "control"] }, { kind: "component", type: GovukButtonComponent, selector: "opal-lib-govuk-button", inputs: ["buttonId", "type", "buttonClasses"], outputs: ["buttonClickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInStubComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{ standalone: true, selector: 'opal-lib-sign-in-stub', imports: [FormsModule, ReactiveFormsModule, GovukTextInputComponent, GovukButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form (submit)=\"handleFormSubmit()\">\n <div class=\"govuk-grid-column-two-thirds\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 class=\"govuk-fieldset__heading\">Sign in</h1>\n </legend>\n\n <div [formGroup]=\"signInForm\">\n <opal-lib-govuk-text-input\n labelText=\"Email\"\n inputId=\"email\"\n inputName=\"email\"\n inputClasses=\"govuk-!-width-one-half\"\n [control]=\"signInForm.controls['email']\"\n ></opal-lib-govuk-text-input>\n </div>\n </fieldset>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-one-third\">\n <opal-lib-govuk-button buttonId=\"submitForm\" type=\"submit\"> Sign in</opal-lib-govuk-button>\n </div>\n </div>\n </div>\n</form>\n" }]
|
|
36
|
+
}], propDecorators: { signInFormSubmit: [{
|
|
37
|
+
type: Output
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi1zdHViLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29wYWwtZnJvbnRlbmQtY29tbW9uL3NyYy9saWIvcGFnZXMvc2lnbi1pbi9zaWduLWluLXN0dWIvc2lnbi1pbi1zdHViLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29wYWwtZnJvbnRlbmQtY29tbW9uL3NyYy9saWIvcGFnZXMvc2lnbi1pbi9zaWduLWluLXN0dWIvc2lnbi1pbi1zdHViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDaEgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0RBQStELENBQUM7OztBQVNyRyxNQUFNLE9BQU8sbUJBQW1CO0lBQ3ZCLFVBQVUsQ0FBYTtJQUNILGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO0lBRWxGOztPQUVHO0lBQ0ssZUFBZTtRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQzlCLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQXpCVSxtQkFBbUI7NEZBQW5CLG1CQUFtQixvSUNiaEMsZzJCQXdCQSwyQ0RmWSxXQUFXLHVkQUFFLG1CQUFtQixnTEFBRSx1QkFBdUIsa01BQUUsb0JBQW9COzs0RkFJOUUsbUJBQW1CO2tCQVAvQixTQUFTO2lDQUNJLElBQUksWUFDTix1QkFBdUIsV0FDeEIsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLENBQUMsbUJBRXpFLHVCQUF1QixDQUFDLE1BQU07OEJBSXBCLGdCQUFnQjtzQkFBMUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSVNpZ25JblN0dWJGb3JtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBHb3Z1a1RleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZ292dWsvZ292dWstdGV4dC1pbnB1dC9nb3Z1ay10ZXh0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3Z1a0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZ292dWsvZ292dWstYnV0dG9uL2dvdnVrLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvcGFsLWxpYi1zaWduLWluLXN0dWInLFxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEdvdnVrVGV4dElucHV0Q29tcG9uZW50LCBHb3Z1a0J1dHRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWduLWluLXN0dWIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2lnbkluU3R1YkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBzaWduSW5Gb3JtITogRm9ybUdyb3VwO1xuICBAT3V0cHV0KCkgcHJpdmF0ZSByZWFkb25seSBzaWduSW5Gb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxJU2lnbkluU3R1YkZvcm0+KCk7XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIHNpZ24taW4gZm9ybS5cbiAgICovXG4gIHByaXZhdGUgc2V0dXBTaWduSW5Gb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuc2lnbkluRm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgZW1haWw6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGZvcm0gc3VibWlzc2lvbi5cbiAgICogSWYgdGhlIHNpZ25JbkZvcm0gaXMgdmFsaWQsIGVtaXRzIHRoZSBzaWduSW5Gb3JtIHZhbHVlIHVzaW5nIHRoZSBzaWduSW5Gb3JtU3VibWl0IGV2ZW50LlxuICAgKi9cbiAgcHVibGljIGhhbmRsZUZvcm1TdWJtaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2lnbkluRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5zaWduSW5Gb3JtU3VibWl0LmVtaXQodGhpcy5zaWduSW5Gb3JtLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cFNpZ25JbkZvcm0oKTtcbiAgfVxufVxuIiwiPGZvcm0gKHN1Ym1pdCk9XCJoYW5kbGVGb3JtU3VibWl0KClcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLXR3by10aGlyZHNcIj5cbiAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmQgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tbVwiPlxuICAgICAgICA8aDEgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9faGVhZGluZ1wiPlNpZ24gaW48L2gxPlxuICAgICAgPC9sZWdlbmQ+XG5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJzaWduSW5Gb3JtXCI+XG4gICAgICAgIDxvcGFsLWxpYi1nb3Z1ay10ZXh0LWlucHV0XG4gICAgICAgICAgbGFiZWxUZXh0PVwiRW1haWxcIlxuICAgICAgICAgIGlucHV0SWQ9XCJlbWFpbFwiXG4gICAgICAgICAgaW5wdXROYW1lPVwiZW1haWxcIlxuICAgICAgICAgIGlucHV0Q2xhc3Nlcz1cImdvdnVrLSEtd2lkdGgtb25lLWhhbGZcIlxuICAgICAgICAgIFtjb250cm9sXT1cInNpZ25JbkZvcm0uY29udHJvbHNbJ2VtYWlsJ11cIlxuICAgICAgICA+PC9vcGFsLWxpYi1nb3Z1ay10ZXh0LWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9maWVsZHNldD5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1vbmUtdGhpcmRcIj5cbiAgICAgICAgPG9wYWwtbGliLWdvdnVrLWJ1dHRvbiBidXR0b25JZD1cInN1Ym1pdEZvcm1cIiB0eXBlPVwic3VibWl0XCI+IFNpZ24gaW48L29wYWwtbGliLWdvdnVrLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject } from '@angular/core';
|
|
2
|
+
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
3
|
+
import { SignInSsoComponent } from './sign-in-sso/sign-in-sso.component';
|
|
4
|
+
import { GlobalStore } from '../../stores/global/global.store';
|
|
5
|
+
import { SSO_ENDPOINTS } from '../../routing/constants/sso-endpoints.constant';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SignInComponent {
|
|
8
|
+
globalStore = inject(GlobalStore);
|
|
9
|
+
ssoEnabled = true;
|
|
10
|
+
document = inject(DOCUMENT);
|
|
11
|
+
changeDetectorRef = inject(ChangeDetectorRef);
|
|
12
|
+
/**
|
|
13
|
+
* Handles the login button click event.
|
|
14
|
+
*/
|
|
15
|
+
handleSsoSignInButtonClick() {
|
|
16
|
+
this.document.location.href = SSO_ENDPOINTS.login;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Handles the submission of the stub sign-in form.
|
|
20
|
+
* Redirects the user to the SSO login page with the provided email.
|
|
21
|
+
* @param formData - The form data containing the email.
|
|
22
|
+
*/
|
|
23
|
+
handleStubSignInFormSubmit(formData) {
|
|
24
|
+
this.document.location.href = `${SSO_ENDPOINTS.login}?email=${formData.email}`;
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
// This is to prevent a load flicker when switching between sso/stub sign in
|
|
28
|
+
this.ssoEnabled = this.globalStore.ssoEnabled();
|
|
29
|
+
this.changeDetectorRef.detectChanges();
|
|
30
|
+
}
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SignInComponent, isStandalone: true, selector: "opal-lib-sign-in", ngImport: i0, template: "@defer (when !ssoEnabled) {\n <opal-lib-sign-in-stub (signInFormSubmit)=\"handleStubSignInFormSubmit($event)\"></opal-lib-sign-in-stub>\n} @placeholder {\n <opal-lib-sign-in-sso (signInButtonClick)=\"handleSsoSignInButtonClick()\"></opal-lib-sign-in-sso>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SignInSsoComponent, selector: "opal-lib-sign-in-sso", outputs: ["signInButtonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [import("./sign-in-stub/sign-in-stub.component").then(m => m.SignInStubComponent)]] });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.2.13", ngImport: i0, type: SignInComponent, resolveDeferredDeps: () => [import("./sign-in-stub/sign-in-stub.component").then(m => m.SignInStubComponent)], resolveMetadata: SignInStubComponent => ({ decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ standalone: true, selector: 'opal-lib-sign-in', imports: [CommonModule, SignInSsoComponent, SignInStubComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@defer (when !ssoEnabled) {\n <opal-lib-sign-in-stub (signInFormSubmit)=\"handleStubSignInFormSubmit($event)\"></opal-lib-sign-in-stub>\n} @placeholder {\n <opal-lib-sign-in-sso (signInButtonClick)=\"handleSsoSignInButtonClick()\"></opal-lib-sign-in-sso>\n}\n" }]
|
|
37
|
+
}], ctorParameters: null, propDecorators: null }) });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3BhZ2VzL3NpZ24taW4vc2lnbi1pbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3BhZ2VzL3NpZ24taW4vc2lnbi1pbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBVS9FLE1BQU0sT0FBTyxlQUFlO0lBQ1YsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzQyxVQUFVLEdBQW1CLElBQUksQ0FBQztJQUN4QixRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRS9EOztPQUVHO0lBQ0ksMEJBQTBCO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksMEJBQTBCLENBQUMsUUFBeUI7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsYUFBYSxDQUFDLEtBQUssVUFBVSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakYsQ0FBQztJQUVELFFBQVE7UUFDTiw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO3dHQTFCVSxlQUFlOzRGQUFmLGVBQWUsNEVDaEI1Qix1UUFLQSwyQ0RNWSxZQUFZLCtCQUFFLGtCQUFrQjs7aUdBSy9CLGVBQWU7c0JBUjNCLFNBQVM7cUNBQ0ksSUFBSSxZQUNOLGtCQUFrQixXQUNuQixDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxtQkFHL0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaWduSW5Tc29Db21wb25lbnQgfSBmcm9tICcuL3NpZ24taW4tc3NvL3NpZ24taW4tc3NvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWduSW5TdHViQ29tcG9uZW50IH0gZnJvbSAnLi9zaWduLWluLXN0dWIvc2lnbi1pbi1zdHViLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJU2lnbkluU3R1YkZvcm0gfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR2xvYmFsU3RvcmUgfSBmcm9tICcuLi8uLi9zdG9yZXMvZ2xvYmFsL2dsb2JhbC5zdG9yZSc7XG5pbXBvcnQgeyBTU09fRU5EUE9JTlRTIH0gZnJvbSAnLi4vLi4vcm91dGluZy9jb25zdGFudHMvc3NvLWVuZHBvaW50cy5jb25zdGFudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ29wYWwtbGliLXNpZ24taW4nLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTaWduSW5Tc29Db21wb25lbnQsIFNpZ25JblN0dWJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lnbi1pbi5jb21wb25lbnQuaHRtbCcsXG5cbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25JbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBnbG9iYWxTdG9yZSA9IGluamVjdChHbG9iYWxTdG9yZSk7XG4gIHB1YmxpYyBzc29FbmFibGVkOiBib29sZWFuIHwgbnVsbCA9IHRydWU7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgbG9naW4gYnV0dG9uIGNsaWNrIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIGhhbmRsZVNzb1NpZ25JbkJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IFNTT19FTkRQT0lOVFMubG9naW47XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgc3VibWlzc2lvbiBvZiB0aGUgc3R1YiBzaWduLWluIGZvcm0uXG4gICAqIFJlZGlyZWN0cyB0aGUgdXNlciB0byB0aGUgU1NPIGxvZ2luIHBhZ2Ugd2l0aCB0aGUgcHJvdmlkZWQgZW1haWwuXG4gICAqIEBwYXJhbSBmb3JtRGF0YSAtIFRoZSBmb3JtIGRhdGEgY29udGFpbmluZyB0aGUgZW1haWwuXG4gICAqL1xuICBwdWJsaWMgaGFuZGxlU3R1YlNpZ25JbkZvcm1TdWJtaXQoZm9ybURhdGE6IElTaWduSW5TdHViRm9ybSk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGAke1NTT19FTkRQT0lOVFMubG9naW59P2VtYWlsPSR7Zm9ybURhdGEuZW1haWx9YDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFRoaXMgaXMgdG8gcHJldmVudCBhIGxvYWQgZmxpY2tlciB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIHNzby9zdHViIHNpZ24gaW5cbiAgICB0aGlzLnNzb0VuYWJsZWQgPSB0aGlzLmdsb2JhbFN0b3JlLnNzb0VuYWJsZWQoKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiQGRlZmVyICh3aGVuICFzc29FbmFibGVkKSB7XG4gIDxvcGFsLWxpYi1zaWduLWluLXN0dWIgKHNpZ25JbkZvcm1TdWJtaXQpPVwiaGFuZGxlU3R1YlNpZ25JbkZvcm1TdWJtaXQoJGV2ZW50KVwiPjwvb3BhbC1saWItc2lnbi1pbi1zdHViPlxufSBAcGxhY2Vob2xkZXIge1xuICA8b3BhbC1saWItc2lnbi1pbi1zc28gKHNpZ25JbkJ1dHRvbkNsaWNrKT1cImhhbmRsZVNzb1NpZ25JbkJ1dHRvbkNsaWNrKClcIj48L29wYWwtbGliLXNpZ24taW4tc3NvPlxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './title';
|
|
2
|
+
export * from './user-state';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3Jlc29sdmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGl0bGUnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLXN0YXRlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './title.resolver';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3Jlc29sdmVycy90aXRsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90aXRsZS5yZXNvbHZlcic7XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
export class TitleResolver {
|
|
5
|
+
titleService;
|
|
6
|
+
constructor(titleService) {
|
|
7
|
+
this.titleService = titleService;
|
|
8
|
+
}
|
|
9
|
+
resolve(route) {
|
|
10
|
+
const title = route.data['title'] ?? 'Frontend';
|
|
11
|
+
this.titleService.setTitle(`OPAL - ${title}`);
|
|
12
|
+
}
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TitleResolver, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TitleResolver, providedIn: 'root' });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TitleResolver, decorators: [{
|
|
17
|
+
type: Injectable,
|
|
18
|
+
args: [{
|
|
19
|
+
providedIn: 'root',
|
|
20
|
+
}]
|
|
21
|
+
}], ctorParameters: () => [{ type: i1.Title }] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3Jlc29sdmVycy90aXRsZS90aXRsZS5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLGFBQWE7SUFDSztJQUE3QixZQUE2QixZQUFtQjtRQUFuQixpQkFBWSxHQUFaLFlBQVksQ0FBTztJQUFHLENBQUM7SUFFcEQsT0FBTyxDQUFDLEtBQTZCO1FBQ25DLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO3dHQU5VLGFBQWE7NEdBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGl0bGVSZXNvbHZlciBpbXBsZW1lbnRzIFJlc29sdmU8dm9pZD4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRpdGxlU2VydmljZTogVGl0bGUpIHt9XG5cbiAgcmVzb2x2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IHZvaWQge1xuICAgIGNvbnN0IHRpdGxlID0gcm91dGUuZGF0YVsndGl0bGUnXSA/PyAnRnJvbnRlbmQnO1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKGBPUEFMIC0gJHt0aXRsZX1gKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './user-state.resolver';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3Jlc29sdmVycy91c2VyLXN0YXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VzZXItc3RhdGUucmVzb2x2ZXInO1xuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { firstValueFrom } from 'rxjs';
|
|
3
|
+
import { SessionService } from '../../services/session-service/session.service';
|
|
4
|
+
/**
|
|
5
|
+
* Resolver function for retrieving the user state.
|
|
6
|
+
* @returns A promise that resolves to the user state.
|
|
7
|
+
*/
|
|
8
|
+
export const userStateResolver = async () => {
|
|
9
|
+
// Weirdly angular suggests using async/await - https://angular.dev/api/router/ResolveFn?tab=usage-notes
|
|
10
|
+
return await firstValueFrom(inject(SessionService).getUserState());
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zdGF0ZS5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29wYWwtZnJvbnRlbmQtY29tbW9uL3NyYy9saWIvcmVzb2x2ZXJzL3VzZXItc3RhdGUvdXNlci1zdGF0ZS5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRWhGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFpQyxLQUFLLElBQUksRUFBRTtJQUN4RSx3R0FBd0c7SUFDeEcsT0FBTyxNQUFNLGNBQWMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztBQUNyRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc29sdmVGbiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVNlc3Npb25Vc2VyU3RhdGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZXNzaW9uLXNlcnZpY2UvaW50ZXJmYWNlcy9zZXNzaW9uLXVzZXItc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Vzc2lvbi1zZXJ2aWNlL3Nlc3Npb24uc2VydmljZSc7XG5cbi8qKlxuICogUmVzb2x2ZXIgZnVuY3Rpb24gZm9yIHJldHJpZXZpbmcgdGhlIHVzZXIgc3RhdGUuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgdXNlciBzdGF0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZXJTdGF0ZVJlc29sdmVyOiBSZXNvbHZlRm48SVNlc3Npb25Vc2VyU3RhdGU+ID0gYXN5bmMgKCkgPT4ge1xuICAvLyBXZWlyZGx5IGFuZ3VsYXIgc3VnZ2VzdHMgdXNpbmcgYXN5bmMvYXdhaXQgLSBodHRwczovL2FuZ3VsYXIuZGV2L2FwaS9yb3V0ZXIvUmVzb2x2ZUZuP3RhYj11c2FnZS1ub3Rlc1xuICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20oaW5qZWN0KFNlc3Npb25TZXJ2aWNlKS5nZXRVc2VyU3RhdGUoKSk7XG59O1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './sso-endpoints.constant';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3JvdXRpbmcvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Nzby1lbmRwb2ludHMuY29uc3RhbnQnO1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const SSO_ENDPOINTS = {
|
|
2
|
+
login: '/sso/login',
|
|
3
|
+
logout: '/sso/logout',
|
|
4
|
+
callback: '/sso/callback',
|
|
5
|
+
authenticated: '/sso/authenticated',
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NvLWVuZHBvaW50cy5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29wYWwtZnJvbnRlbmQtY29tbW9uL3NyYy9saWIvcm91dGluZy9jb25zdGFudHMvc3NvLWVuZHBvaW50cy5jb25zdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWtCO0lBQzFDLEtBQUssRUFBRSxZQUFZO0lBQ25CLE1BQU0sRUFBRSxhQUFhO0lBQ3JCLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLGFBQWEsRUFBRSxvQkFBb0I7Q0FDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTc29FbmRwb2ludHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IFNTT19FTkRQT0lOVFM6IElTc29FbmRwb2ludHMgPSB7XG4gIGxvZ2luOiAnL3Nzby9sb2dpbicsXG4gIGxvZ291dDogJy9zc28vbG9nb3V0JyxcbiAgY2FsbGJhY2s6ICcvc3NvL2NhbGxiYWNrJyxcbiAgYXV0aGVudGljYXRlZDogJy9zc28vYXV0aGVudGljYXRlZCcsXG59O1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './constants';
|
|
2
|
+
export * from './interfaces';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3JvdXRpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtcm91dGluZy1wYXRocy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3JvdXRpbmcvaW50ZXJmYWNlcy9jaGlsZC1yb3V0aW5nLXBhdGhzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQ2hpbGRSb3V0aW5nUGF0aHMge1xuICByb290OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './nested-routes.interface';
|
|
2
|
+
export * from './sso-endpoints.interface';
|
|
3
|
+
export * from './child-routing-paths.interface';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3JvdXRpbmcvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmVzdGVkLXJvdXRlcy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zc28tZW5kcG9pbnRzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2NoaWxkLXJvdXRpbmctcGF0aHMuaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLXJvdXRlcy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3JvdXRpbmcvaW50ZXJmYWNlcy9uZXN0ZWQtcm91dGVzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJTmVzdGVkUm91dGVzIHtcbiAgbmV4dFJvdXRlOiBzdHJpbmc7XG4gIGJ1dHRvblRleHQ6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NvLWVuZHBvaW50cy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3JvdXRpbmcvaW50ZXJmYWNlcy9zc28tZW5kcG9pbnRzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJU3NvRW5kcG9pbnRzIHtcbiAgbG9naW46IHN0cmluZztcbiAgbG9nb3V0OiBzdHJpbmc7XG4gIGNhbGxiYWNrOiBzdHJpbmc7XG4gIGF1dGhlbnRpY2F0ZWQ6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { TransferStateService } from '../transfer-state-service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AppInitializerService {
|
|
5
|
+
transferStateService = inject(TransferStateService);
|
|
6
|
+
/**
|
|
7
|
+
* Initializes the SSO (Single Sign-On) enabled state.
|
|
8
|
+
* This method calls the `initializeSsoEnabled` method of the `transferStateService`.
|
|
9
|
+
*/
|
|
10
|
+
initializeSsoEnabled() {
|
|
11
|
+
this.transferStateService.initializeSsoEnabled();
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Initializes the LaunchDarkly configuration.
|
|
15
|
+
*/
|
|
16
|
+
initializeLaunchDarkly() {
|
|
17
|
+
this.transferStateService.initializeLaunchDarklyConfig();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Initializes the application.
|
|
21
|
+
* This method calls the necessary initialization functions.
|
|
22
|
+
*/
|
|
23
|
+
initializeApp() {
|
|
24
|
+
this.initializeSsoEnabled();
|
|
25
|
+
this.initializeLaunchDarkly();
|
|
26
|
+
}
|
|
27
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppInitializerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
28
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppInitializerService, providedIn: 'root' });
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppInitializerService, decorators: [{
|
|
31
|
+
type: Injectable,
|
|
32
|
+
args: [{
|
|
33
|
+
providedIn: 'root',
|
|
34
|
+
}]
|
|
35
|
+
}] });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC1pbml0aWFsaXplci1zZXJ2aWNlL2FwcC1pbml0aWFsaXplci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUtqRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2Ysb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFckU7OztPQUdHO0lBQ0ssb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNLLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsb0JBQW9CLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYTtRQUNsQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3dHQXpCVSxxQkFBcUI7NEdBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2ZlclN0YXRlU2VydmljZSB9IGZyb20gJy4uL3RyYW5zZmVyLXN0YXRlLXNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwSW5pdGlhbGl6ZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2ZlclN0YXRlU2VydmljZSA9IGluamVjdChUcmFuc2ZlclN0YXRlU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBTU08gKFNpbmdsZSBTaWduLU9uKSBlbmFibGVkIHN0YXRlLlxuICAgKiBUaGlzIG1ldGhvZCBjYWxscyB0aGUgYGluaXRpYWxpemVTc29FbmFibGVkYCBtZXRob2Qgb2YgdGhlIGB0cmFuc2ZlclN0YXRlU2VydmljZWAuXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVTc29FbmFibGVkKCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmZXJTdGF0ZVNlcnZpY2UuaW5pdGlhbGl6ZVNzb0VuYWJsZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgTGF1bmNoRGFya2x5IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVMYXVuY2hEYXJrbHkoKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2ZlclN0YXRlU2VydmljZS5pbml0aWFsaXplTGF1bmNoRGFya2x5Q29uZmlnKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGFwcGxpY2F0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBjYWxscyB0aGUgbmVjZXNzYXJ5IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBpbml0aWFsaXplQXBwKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZVNzb0VuYWJsZWQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVMYXVuY2hEYXJrbHkoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './app-initializer.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC1pbml0aWFsaXplci1zZXJ2aWNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcC1pbml0aWFsaXplci5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { inject, Injectable, PLATFORM_ID } from '@angular/core';
|
|
3
|
+
import { ApplicationInsights } from '@microsoft/applicationinsights-web';
|
|
4
|
+
import { TransferStateService } from '../transfer-state-service/transfer-state.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class AppInsightsService {
|
|
7
|
+
appInsights;
|
|
8
|
+
appInsightsConfig;
|
|
9
|
+
platformId = inject(PLATFORM_ID);
|
|
10
|
+
transferStateService = inject(TransferStateService);
|
|
11
|
+
constructor() {
|
|
12
|
+
this.appInsightsConfig = this.transferStateService.serverTransferState?.appInsightsConfig;
|
|
13
|
+
if (isPlatformBrowser(this.platformId) && this.appInsightsConfig) {
|
|
14
|
+
if (this.appInsightsConfig.enabled) {
|
|
15
|
+
this.appInsights = new ApplicationInsights({
|
|
16
|
+
config: {
|
|
17
|
+
connectionString: this.appInsightsConfig.connectionString,
|
|
18
|
+
enableAutoRouteTracking: true,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
this.appInsights.addTelemetryInitializer(this.telemetryInitializer.bind(this));
|
|
22
|
+
this.appInsights.loadAppInsights();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Adds a telemetry initializer to set the cloud role name for the telemetry item.
|
|
28
|
+
*
|
|
29
|
+
* @param envelope - The telemetry item to which the cloud role name will be added.
|
|
30
|
+
*/
|
|
31
|
+
telemetryInitializer(envelope) {
|
|
32
|
+
envelope.tags = envelope.tags || {};
|
|
33
|
+
if (this.appInsightsConfig?.enabled) {
|
|
34
|
+
envelope.tags['ai.cloud.role'] = this.appInsightsConfig.cloudRoleName;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Logs a page view to the Application Insights service.
|
|
39
|
+
*
|
|
40
|
+
* @param name - The name of the page. Optional.
|
|
41
|
+
* @param url - The URL of the page. Optional.
|
|
42
|
+
*
|
|
43
|
+
* This method uses the Application Insights SDK to track a page view event.
|
|
44
|
+
* If the `name` or `url` parameters are not provided, the SDK will use default values.
|
|
45
|
+
*/
|
|
46
|
+
logPageView(name, url) {
|
|
47
|
+
if (!this.appInsightsConfig?.enabled) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.appInsights.trackPageView({ name, uri: url });
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Logs an exception to the Application Insights service.
|
|
54
|
+
*
|
|
55
|
+
* @param exception - The error object to be logged.
|
|
56
|
+
* @param severityLevel - Optional. The severity level of the exception. If not provided, a default severity level will be used.
|
|
57
|
+
*/
|
|
58
|
+
logException(exception, severityLevel) {
|
|
59
|
+
if (!this.appInsightsConfig?.enabled) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.appInsights.trackException({ exception, severityLevel });
|
|
63
|
+
}
|
|
64
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppInsightsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
65
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppInsightsService, providedIn: 'root' });
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppInsightsService, decorators: [{
|
|
68
|
+
type: Injectable,
|
|
69
|
+
args: [{
|
|
70
|
+
providedIn: 'root',
|
|
71
|
+
}]
|
|
72
|
+
}], ctorParameters: () => [] });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluc2lnaHRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC1pbnNpZ2h0cy9hcHAtaW5zaWdodHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFrQixNQUFNLG9DQUFvQyxDQUFDO0FBRXpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOztBQUt4RixNQUFNLE9BQU8sa0JBQWtCO0lBQ1osV0FBVyxDQUF1QjtJQUNsQyxpQkFBaUIsQ0FBK0M7SUFDaEUsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUVyRTtRQUNFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUM7UUFFMUYsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQztvQkFDekMsTUFBTSxFQUFFO3dCQUNOLGdCQUFnQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBaUI7d0JBQzFELHVCQUF1QixFQUFFLElBQUk7cUJBQzlCO2lCQUNGLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssb0JBQW9CLENBQUMsUUFBd0I7UUFDbkQsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFjLENBQUM7UUFDekUsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFdBQVcsQ0FBQyxJQUFhLEVBQUUsR0FBWTtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksWUFBWSxDQUFDLFNBQWdCLEVBQUUsYUFBc0I7UUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNyQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQzt3R0EvRFUsa0JBQWtCOzRHQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5zaWdodHMsIElUZWxlbWV0cnlJdGVtIH0gZnJvbSAnQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXdlYic7XG5pbXBvcnQgeyBJVHJhbnNmZXJTdGF0ZUFwcEluc2lnaHRzQ29uZmlnIH0gZnJvbSAnLi4vdHJhbnNmZXItc3RhdGUtc2VydmljZS9pbnRlcmZhY2VzL3RyYW5zZmVyLXN0YXRlLWFwcC1pbnNpZ2h0cy1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRyYW5zZmVyU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vdHJhbnNmZXItc3RhdGUtc2VydmljZS90cmFuc2Zlci1zdGF0ZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcEluc2lnaHRzU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwSW5zaWdodHMhOiBBcHBsaWNhdGlvbkluc2lnaHRzO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcEluc2lnaHRzQ29uZmlnITogSVRyYW5zZmVyU3RhdGVBcHBJbnNpZ2h0c0NvbmZpZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2ZlclN0YXRlU2VydmljZSA9IGluamVjdChUcmFuc2ZlclN0YXRlU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hcHBJbnNpZ2h0c0NvbmZpZyA9IHRoaXMudHJhbnNmZXJTdGF0ZVNlcnZpY2Uuc2VydmVyVHJhbnNmZXJTdGF0ZT8uYXBwSW5zaWdodHNDb25maWc7XG5cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0aGlzLmFwcEluc2lnaHRzQ29uZmlnKSB7XG4gICAgICBpZiAodGhpcy5hcHBJbnNpZ2h0c0NvbmZpZy5lbmFibGVkKSB7XG4gICAgICAgIHRoaXMuYXBwSW5zaWdodHMgPSBuZXcgQXBwbGljYXRpb25JbnNpZ2h0cyh7XG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBjb25uZWN0aW9uU3RyaW5nOiB0aGlzLmFwcEluc2lnaHRzQ29uZmlnLmNvbm5lY3Rpb25TdHJpbmchLFxuICAgICAgICAgICAgZW5hYmxlQXV0b1JvdXRlVHJhY2tpbmc6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcHBJbnNpZ2h0cy5hZGRUZWxlbWV0cnlJbml0aWFsaXplcih0aGlzLnRlbGVtZXRyeUluaXRpYWxpemVyLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmFwcEluc2lnaHRzLmxvYWRBcHBJbnNpZ2h0cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgdGVsZW1ldHJ5IGluaXRpYWxpemVyIHRvIHNldCB0aGUgY2xvdWQgcm9sZSBuYW1lIGZvciB0aGUgdGVsZW1ldHJ5IGl0ZW0uXG4gICAqXG4gICAqIEBwYXJhbSBlbnZlbG9wZSAtIFRoZSB0ZWxlbWV0cnkgaXRlbSB0byB3aGljaCB0aGUgY2xvdWQgcm9sZSBuYW1lIHdpbGwgYmUgYWRkZWQuXG4gICAqL1xuICBwcml2YXRlIHRlbGVtZXRyeUluaXRpYWxpemVyKGVudmVsb3BlOiBJVGVsZW1ldHJ5SXRlbSk6IHZvaWQge1xuICAgIGVudmVsb3BlLnRhZ3MgPSBlbnZlbG9wZS50YWdzIHx8IHt9O1xuICAgIGlmICh0aGlzLmFwcEluc2lnaHRzQ29uZmlnPy5lbmFibGVkKSB7XG4gICAgICBlbnZlbG9wZS50YWdzWydhaS5jbG91ZC5yb2xlJ10gPSB0aGlzLmFwcEluc2lnaHRzQ29uZmlnLmNsb3VkUm9sZU5hbWUhO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIGEgcGFnZSB2aWV3IHRvIHRoZSBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBzZXJ2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwYWdlLiBPcHRpb25hbC5cbiAgICogQHBhcmFtIHVybCAtIFRoZSBVUkwgb2YgdGhlIHBhZ2UuIE9wdGlvbmFsLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCB1c2VzIHRoZSBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBTREsgdG8gdHJhY2sgYSBwYWdlIHZpZXcgZXZlbnQuXG4gICAqIElmIHRoZSBgbmFtZWAgb3IgYHVybGAgcGFyYW1ldGVycyBhcmUgbm90IHByb3ZpZGVkLCB0aGUgU0RLIHdpbGwgdXNlIGRlZmF1bHQgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIGxvZ1BhZ2VWaWV3KG5hbWU/OiBzdHJpbmcsIHVybD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hcHBJbnNpZ2h0c0NvbmZpZz8uZW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFwcEluc2lnaHRzLnRyYWNrUGFnZVZpZXcoeyBuYW1lLCB1cmk6IHVybCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIGFuIGV4Y2VwdGlvbiB0byB0aGUgQXBwbGljYXRpb24gSW5zaWdodHMgc2VydmljZS5cbiAgICpcbiAgICogQHBhcmFtIGV4Y2VwdGlvbiAtIFRoZSBlcnJvciBvYmplY3QgdG8gYmUgbG9nZ2VkLlxuICAgKiBAcGFyYW0gc2V2ZXJpdHlMZXZlbCAtIE9wdGlvbmFsLiBUaGUgc2V2ZXJpdHkgbGV2ZWwgb2YgdGhlIGV4Y2VwdGlvbi4gSWYgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgc2V2ZXJpdHkgbGV2ZWwgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcHVibGljIGxvZ0V4Y2VwdGlvbihleGNlcHRpb246IEVycm9yLCBzZXZlcml0eUxldmVsPzogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFwcEluc2lnaHRzQ29uZmlnPy5lbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYXBwSW5zaWdodHMudHJhY2tFeGNlcHRpb24oeyBleGNlcHRpb24sIHNldmVyaXR5TGV2ZWwgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// SERVICE
|
|
2
|
+
export * from './app-insights.service';
|
|
3
|
+
// CONSTANTS, INTERFACES, AND MOCKS
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC1pbnNpZ2h0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTRVJWSUNFXG5leHBvcnQgKiBmcm9tICcuL2FwcC1pbnNpZ2h0cy5zZXJ2aWNlJztcblxuLy8gQ09OU1RBTlRTLCBJTlRFUkZBQ0VTLCBBTkQgTU9DS1NcbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { Injectable, inject } from '@angular/core';
|
|
3
|
+
import { catchError, tap, throwError } from 'rxjs';
|
|
4
|
+
import { SSO_ENDPOINTS } from '../../routing/constants/sso-endpoints.constant';
|
|
5
|
+
import { GlobalStore } from '../../stores';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class AuthService {
|
|
8
|
+
http = inject(HttpClient);
|
|
9
|
+
globalStore = inject(GlobalStore);
|
|
10
|
+
checkAuthenticated() {
|
|
11
|
+
return this.http
|
|
12
|
+
.get(SSO_ENDPOINTS.authenticated, {
|
|
13
|
+
headers: new HttpHeaders({
|
|
14
|
+
'Cache-Control': 'no-cache',
|
|
15
|
+
Pragma: 'no-cache',
|
|
16
|
+
Expires: '0',
|
|
17
|
+
}),
|
|
18
|
+
})
|
|
19
|
+
.pipe(tap((resp) => {
|
|
20
|
+
this.globalStore.setAuthenticated(resp);
|
|
21
|
+
}))
|
|
22
|
+
.pipe(catchError((error) => {
|
|
23
|
+
this.globalStore.setAuthenticated(false);
|
|
24
|
+
return throwError(() => error);
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
28
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, decorators: [{
|
|
31
|
+
type: Injectable,
|
|
32
|
+
args: [{
|
|
33
|
+
providedIn: 'root',
|
|
34
|
+
}]
|
|
35
|
+
}] });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3BhbC1mcm9udGVuZC1jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoLXNlcnZpY2UvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUszQyxNQUFNLE9BQU8sV0FBVztJQUNMLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1QyxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBVSxhQUFhLENBQUMsYUFBYSxFQUFFO1lBQ3pDLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDdkIsZUFBZSxFQUFFLFVBQVU7Z0JBQzNCLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixPQUFPLEVBQUUsR0FBRzthQUNiLENBQUM7U0FDSCxDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FDSDthQUNBLElBQUksQ0FDSCxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO3dHQXhCVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNTT19FTkRQT0lOVFMgfSBmcm9tICcuLi8uLi9yb3V0aW5nL2NvbnN0YW50cy9zc28tZW5kcG9pbnRzLmNvbnN0YW50JztcbmltcG9ydCB7IEdsb2JhbFN0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbFN0b3JlID0gaW5qZWN0KEdsb2JhbFN0b3JlKTtcblxuICBwdWJsaWMgY2hlY2tBdXRoZW50aWNhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8Ym9vbGVhbj4oU1NPX0VORFBPSU5UUy5hdXRoZW50aWNhdGVkLCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgJ0NhY2hlLUNvbnRyb2wnOiAnbm8tY2FjaGUnLFxuICAgICAgICAgIFByYWdtYTogJ25vLWNhY2hlJyxcbiAgICAgICAgICBFeHBpcmVzOiAnMCcsXG4gICAgICAgIH0pLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHJlc3ApID0+IHtcbiAgICAgICAgICB0aGlzLmdsb2JhbFN0b3JlLnNldEF1dGhlbnRpY2F0ZWQocmVzcCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5nbG9iYWxTdG9yZS5zZXRBdXRoZW50aWNhdGVkKGZhbHNlKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './auth.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2F1dGgtc2VydmljZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuIl19
|