{"version":3,"sources":["node_modules/@azure/msal-browser/dist/operatingcontext/BaseOperatingContext.mjs","node_modules/@azure/msal-browser/dist/operatingcontext/StandardOperatingContext.mjs","node_modules/@azure/msal-browser/dist/controllers/ControllerFactory.mjs","node_modules/@azure/msal-browser/dist/app/PublicClientApplication.mjs","node_modules/@azure/msal-browser/dist/event/EventMessage.mjs","node_modules/@azure/msal-angular/fesm2020/azure-msal-angular.mjs"],"sourcesContent":["/*! @azure/msal-browser v3.10.0 2024-02-17 */\n'use strict';\nimport { LogLevel, Logger } from '@azure/msal-common';\nimport { buildConfiguration } from '../config/Configuration.mjs';\nimport { name, version } from '../packageMetadata.mjs';\nimport { BrowserCacheLocation, LOG_LEVEL_CACHE_KEY, LOG_PII_CACHE_KEY } from '../utils/BrowserConstants.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * Base class for operating context\n * Operating contexts are contexts in which MSAL.js is being run\n * More than one operating context may be available at a time\n * It's important from a logging and telemetry point of view for us to be able to identify the operating context.\n * For example: Some operating contexts will pre-cache tokens impacting performance telemetry\n */\nclass BaseOperatingContext {\n static loggerCallback(level, message) {\n switch (level) {\n case LogLevel.Error:\n // eslint-disable-next-line no-console\n console.error(message);\n return;\n case LogLevel.Info:\n // eslint-disable-next-line no-console\n console.info(message);\n return;\n case LogLevel.Verbose:\n // eslint-disable-next-line no-console\n console.debug(message);\n return;\n case LogLevel.Warning:\n // eslint-disable-next-line no-console\n console.warn(message);\n return;\n default:\n // eslint-disable-next-line no-console\n console.log(message);\n return;\n }\n }\n constructor(config) {\n /*\n * If loaded in an environment where window is not available,\n * set internal flag to false so that further requests fail.\n * This is to support server-side rendering environments.\n */\n this.browserEnvironment = typeof window !== \"undefined\";\n this.config = buildConfiguration(config, this.browserEnvironment);\n let sessionStorage;\n try {\n sessionStorage = window[BrowserCacheLocation.SessionStorage];\n // Mute errors if it's a non-browser environment or cookies are blocked.\n }\n catch (e) { }\n const logLevelKey = sessionStorage?.getItem(LOG_LEVEL_CACHE_KEY);\n const piiLoggingKey = sessionStorage\n ?.getItem(LOG_PII_CACHE_KEY)\n ?.toLowerCase();\n const piiLoggingEnabled = piiLoggingKey === \"true\"\n ? true\n : piiLoggingKey === \"false\"\n ? false\n : undefined;\n const loggerOptions = { ...this.config.system.loggerOptions };\n const logLevel = logLevelKey && Object.keys(LogLevel).includes(logLevelKey)\n ? LogLevel[logLevelKey]\n : undefined;\n if (logLevel) {\n loggerOptions.loggerCallback = BaseOperatingContext.loggerCallback;\n loggerOptions.logLevel = logLevel;\n }\n if (piiLoggingEnabled !== undefined) {\n loggerOptions.piiLoggingEnabled = piiLoggingEnabled;\n }\n this.logger = new Logger(loggerOptions, name, version);\n this.available = false;\n }\n /**\n * Return the MSAL config\n * @returns BrowserConfiguration\n */\n getConfig() {\n return this.config;\n }\n /**\n * Returns the MSAL Logger\n * @returns Logger\n */\n getLogger() {\n return this.logger;\n }\n isAvailable() {\n return this.available;\n }\n isBrowserEnvironment() {\n return this.browserEnvironment;\n }\n}\n\nexport { BaseOperatingContext };\n\n","/*! @azure/msal-browser v3.10.0 2024-02-17 */\n'use strict';\nimport { BaseOperatingContext } from './BaseOperatingContext.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass StandardOperatingContext extends BaseOperatingContext {\n /**\n * Return the module name. Intended for use with import() to enable dynamic import\n * of the implementation associated with this operating context\n * @returns\n */\n getModuleName() {\n return StandardOperatingContext.MODULE_NAME;\n }\n /**\n * Returns the unique identifier for this operating context\n * @returns string\n */\n getId() {\n return StandardOperatingContext.ID;\n }\n /**\n * Checks whether the operating context is available.\n * Confirms that the code is running a browser rather. This is required.\n * @returns Promise indicating whether this operating context is currently available.\n */\n async initialize() {\n this.available = typeof window !== \"undefined\";\n return this.available;\n /*\n * NOTE: The standard context is available as long as there is a window. If/when we split out WAM from Browser\n * We can move the current contents of the initialize method to here and verify that the WAM extension is available\n */\n }\n}\n/*\n * TODO: Once we have determine the bundling code return here to specify the name of the bundle\n * containing the implementation for this operating context\n */\nStandardOperatingContext.MODULE_NAME = \"\";\n/**\n * Unique identifier for the operating context\n */\nStandardOperatingContext.ID = \"StandardOperatingContext\";\n\nexport { StandardOperatingContext };\n\n","/*! @azure/msal-browser v3.10.0 2024-02-17 */\n'use strict';\nimport { TeamsAppOperatingContext } from '../operatingcontext/TeamsAppOperatingContext.mjs';\nimport { StandardOperatingContext } from '../operatingcontext/StandardOperatingContext.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nasync function createV3Controller(config) {\n const standard = new StandardOperatingContext(config);\n await standard.initialize();\n const controller = await import('./StandardController.mjs');\n return controller.StandardController.createController(standard);\n}\nasync function createController(config) {\n const standard = new StandardOperatingContext(config);\n const teamsApp = new TeamsAppOperatingContext(config);\n const operatingContexts = [standard.initialize(), teamsApp.initialize()];\n await Promise.all(operatingContexts);\n if (teamsApp.isAvailable() &&\n teamsApp.getConfig().auth.supportsNestedAppAuth) {\n const controller = await import('./NestedAppAuthController.mjs');\n return controller.NestedAppAuthController.createController(teamsApp);\n }\n else if (standard.isAvailable()) {\n const controller = await import('./StandardController.mjs');\n return controller.StandardController.createController(standard);\n }\n else {\n // Since neither of the actual operating contexts are available keep the UnknownOperatingContextController\n return null;\n }\n}\n\nexport { createController, createV3Controller };\n\n","/*! @azure/msal-browser v3.10.0 2024-02-17 */\n'use strict';\nimport { createV3Controller } from '../controllers/ControllerFactory.mjs';\nimport { StandardController } from '../controllers/StandardController.mjs';\nimport { StandardOperatingContext } from '../operatingcontext/StandardOperatingContext.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\n */\nclass PublicClientApplication {\n static async createPublicClientApplication(configuration) {\n const controller = await createV3Controller(configuration);\n const pca = new PublicClientApplication(configuration, controller);\n return pca;\n }\n /**\n * @constructor\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\n *\n * Important attributes in the Configuration object for auth are:\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\n * - authority: the authority URL for your application.\n * - redirect_uri: the uri of your application registered in the portal.\n *\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\n *\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\n * Full B2C functionality will be available in this library in future versions.\n *\n * @param configuration Object for the MSAL PublicClientApplication instance\n * @param IController Optional parameter to explictly set the controller. (Will be removed when we remove public constructor)\n */\n constructor(configuration, controller) {\n if (controller) {\n this.controller = controller;\n }\n else {\n const standardOperatingContext = new StandardOperatingContext(configuration);\n this.controller = new StandardController(standardOperatingContext);\n }\n }\n /**\n * Initializer function to perform async startup tasks such as connecting to WAM extension\n */\n async initialize() {\n return this.controller.initialize();\n }\n /**\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\n *\n * @param request\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n async acquireTokenPopup(request) {\n return this.controller.acquireTokenPopup(request);\n }\n /**\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\n * the page, so any code that follows this function will not execute.\n *\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\n *\n * @param request\n */\n acquireTokenRedirect(request) {\n return this.controller.acquireTokenRedirect(request);\n }\n /**\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\n *\n * @param {@link (SilentRequest:type)}\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthenticationResult} object\n */\n acquireTokenSilent(silentRequest) {\n return this.controller.acquireTokenSilent(silentRequest);\n }\n /**\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\n * This API is not indended for normal authorization code acquisition and redemption.\n *\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\n *\n * @param request {@link AuthorizationCodeRequest}\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n acquireTokenByCode(request) {\n return this.controller.acquireTokenByCode(request);\n }\n /**\n * Adds event callbacks to array\n * @param callback\n */\n addEventCallback(callback) {\n return this.controller.addEventCallback(callback);\n }\n /**\n * Removes callback with provided id from callback array\n * @param callbackId\n */\n removeEventCallback(callbackId) {\n return this.controller.removeEventCallback(callbackId);\n }\n /**\n * Registers a callback to receive performance events.\n *\n * @param {PerformanceCallbackFunction} callback\n * @returns {string}\n */\n addPerformanceCallback(callback) {\n return this.controller.addPerformanceCallback(callback);\n }\n /**\n * Removes a callback registered with addPerformanceCallback.\n *\n * @param {string} callbackId\n * @returns {boolean}\n */\n removePerformanceCallback(callbackId) {\n return this.controller.removePerformanceCallback(callbackId);\n }\n /**\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\n */\n enableAccountStorageEvents() {\n this.controller.enableAccountStorageEvents();\n }\n /**\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\n */\n disableAccountStorageEvents() {\n this.controller.disableAccountStorageEvents();\n }\n /**\n * Returns the first account found in the cache that matches the account filter passed in.\n * @param accountFilter\n * @returns The first account found in the cache matching the provided filter or null if no account could be found.\n */\n getAccount(accountFilter) {\n return this.controller.getAccount(accountFilter);\n }\n /**\n * Returns the signed in account matching homeAccountId.\n * (the account object is created at the time of successful login)\n * or null when no matching account is found\n * @param homeAccountId\n * @returns The account object stored in MSAL\n * @deprecated - Use getAccount instead\n */\n getAccountByHomeId(homeAccountId) {\n return this.controller.getAccountByHomeId(homeAccountId);\n }\n /**\n * Returns the signed in account matching localAccountId.\n * (the account object is created at the time of successful login)\n * or null when no matching account is found\n * @param localAccountId\n * @returns The account object stored in MSAL\n * @deprecated - Use getAccount instead\n */\n getAccountByLocalId(localId) {\n return this.controller.getAccountByLocalId(localId);\n }\n /**\n * Returns the signed in account matching username.\n * (the account object is created at the time of successful login)\n * or null when no matching account is found.\n * This API is provided for convenience but getAccountById should be used for best reliability\n * @param userName\n * @returns The account object stored in MSAL\n * @deprecated - Use getAccount instead\n */\n getAccountByUsername(userName) {\n return this.controller.getAccountByUsername(userName);\n }\n /**\n * Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.\n * @param accountFilter - (Optional) filter to narrow down the accounts returned\n * @returns Array of AccountInfo objects in cache\n */\n getAllAccounts(accountFilter) {\n return this.controller.getAllAccounts(accountFilter);\n }\n /**\n * Event handler function which allows users to fire events after the PublicClientApplication object\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\n * auth flows.\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\n */\n handleRedirectPromise(hash) {\n return this.controller.handleRedirectPromise(hash);\n }\n /**\n * Use when initiating the login process via opening a popup window in the user's browser\n *\n * @param request\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n loginPopup(request) {\n return this.controller.loginPopup(request);\n }\n /**\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\n * any code that follows this function will not execute.\n *\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\n *\n * @param request\n */\n loginRedirect(request) {\n return this.controller.loginRedirect(request);\n }\n /**\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\n * @param logoutRequest\n * @deprecated\n */\n logout(logoutRequest) {\n return this.controller.logout(logoutRequest);\n }\n /**\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\n * Default behaviour is to redirect the user to `window.location.href`.\n * @param logoutRequest\n */\n logoutRedirect(logoutRequest) {\n return this.controller.logoutRedirect(logoutRequest);\n }\n /**\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\n * @param logoutRequest\n */\n logoutPopup(logoutRequest) {\n return this.controller.logoutPopup(logoutRequest);\n }\n /**\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\n * - Any browser using a form of Intelligent Tracking Prevention\n * - If there is not an established session with the service\n *\n * In these cases, the request must be done inside a popup or full frame redirect.\n *\n * For the cases where interaction is required, you cannot send a request with prompt=none.\n *\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\n * you session on the server still exists.\n * @param request {@link SsoSilentRequest}\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n ssoSilent(request) {\n return this.controller.ssoSilent(request);\n }\n /**\n * Gets the token cache for the application.\n */\n getTokenCache() {\n return this.controller.getTokenCache();\n }\n /**\n * Returns the logger instance\n */\n getLogger() {\n return this.controller.getLogger();\n }\n /**\n * Replaces the default logger set in configurations with new Logger with new configurations\n * @param logger Logger instance\n */\n setLogger(logger) {\n this.controller.setLogger(logger);\n }\n /**\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\n * @param account\n */\n setActiveAccount(account) {\n this.controller.setActiveAccount(account);\n }\n /**\n * Gets the currently active account\n */\n getActiveAccount() {\n return this.controller.getActiveAccount();\n }\n /**\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\n * @param sku\n * @param version\n */\n initializeWrapperLibrary(sku, version) {\n return this.controller.initializeWrapperLibrary(sku, version);\n }\n /**\n * Sets navigation client\n * @param navigationClient\n */\n setNavigationClient(navigationClient) {\n this.controller.setNavigationClient(navigationClient);\n }\n /**\n * Returns the configuration object\n * @internal\n */\n getConfiguration() {\n return this.controller.getConfiguration();\n }\n /**\n * Hydrates cache with the tokens and account in the AuthenticationResult object\n * @param result\n * @param request - The request object that was used to obtain the AuthenticationResult\n * @returns\n */\n async hydrateCache(result, request) {\n return this.controller.hydrateCache(result, request);\n }\n /**\n * Clears tokens and account from the browser cache.\n * @param logoutRequest\n */\n clearCache(logoutRequest) {\n return this.controller.clearCache(logoutRequest);\n }\n}\n\nexport { PublicClientApplication };\n\n","/*! @azure/msal-browser v3.10.0 2024-02-17 */\n'use strict';\nimport { EventType } from './EventType.mjs';\nimport { InteractionType, InteractionStatus } from '../utils/BrowserConstants.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass EventMessageUtils {\n /**\n * Gets interaction status from event message\n * @param message\n * @param currentStatus\n */\n static getInteractionStatusFromEvent(message, currentStatus) {\n switch (message.eventType) {\n case EventType.LOGIN_START:\n return InteractionStatus.Login;\n case EventType.SSO_SILENT_START:\n return InteractionStatus.SsoSilent;\n case EventType.ACQUIRE_TOKEN_START:\n if (message.interactionType === InteractionType.Redirect ||\n message.interactionType === InteractionType.Popup) {\n return InteractionStatus.AcquireToken;\n }\n break;\n case EventType.HANDLE_REDIRECT_START:\n return InteractionStatus.HandleRedirect;\n case EventType.LOGOUT_START:\n return InteractionStatus.Logout;\n case EventType.SSO_SILENT_SUCCESS:\n case EventType.SSO_SILENT_FAILURE:\n if (currentStatus &&\n currentStatus !== InteractionStatus.SsoSilent) {\n // Prevent this event from clearing any status other than ssoSilent\n break;\n }\n return InteractionStatus.None;\n case EventType.LOGOUT_END:\n if (currentStatus &&\n currentStatus !== InteractionStatus.Logout) {\n // Prevent this event from clearing any status other than logout\n break;\n }\n return InteractionStatus.None;\n case EventType.HANDLE_REDIRECT_END:\n if (currentStatus &&\n currentStatus !== InteractionStatus.HandleRedirect) {\n // Prevent this event from clearing any status other than handleRedirect\n break;\n }\n return InteractionStatus.None;\n case EventType.LOGIN_SUCCESS:\n case EventType.LOGIN_FAILURE:\n case EventType.ACQUIRE_TOKEN_SUCCESS:\n case EventType.ACQUIRE_TOKEN_FAILURE:\n case EventType.RESTORE_FROM_BFCACHE:\n if (message.interactionType === InteractionType.Redirect ||\n message.interactionType === InteractionType.Popup) {\n if (currentStatus &&\n currentStatus !== InteractionStatus.Login &&\n currentStatus !== InteractionStatus.AcquireToken) {\n // Prevent this event from clearing any status other than login or acquireToken\n break;\n }\n return InteractionStatus.None;\n }\n break;\n }\n return null;\n }\n}\n\nexport { EventMessageUtils };\n\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, Optional, Component, NgModule } from '@angular/core';\nimport { WrapperSKU, InteractionStatus, EventMessageUtils, InteractionType, BrowserConfigurationAuthError, UrlString, BrowserUtils, StringUtils, NavigationClient } from '@azure/msal-browser';\nimport { from, ReplaySubject, Subject, BehaviorSubject, of, EMPTY } from 'rxjs';\nimport * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { map, concatMap, catchError, switchMap, take, filter } from 'rxjs/operators';\nimport * as i4 from '@angular/router';\n\n/* eslint-disable header/header */\nconst name = \"@azure/msal-angular\";\nconst version = \"3.0.13\";\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nconst MSAL_INSTANCE = new InjectionToken(\"MSAL_INSTANCE\");\nconst MSAL_GUARD_CONFIG = new InjectionToken(\"MSAL_GUARD_CONFIG\");\nconst MSAL_INTERCEPTOR_CONFIG = new InjectionToken(\"MSAL_INTERCEPTOR_CONFIG\");\nconst MSAL_BROADCAST_CONFIG = new InjectionToken(\"MSAL_BROADCAST_CONFIG\");\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalService {\n constructor(instance, location) {\n this.instance = instance;\n this.location = location;\n const hash = this.location.path(true).split(\"#\").pop();\n if (hash) {\n this.redirectHash = `#${hash}`;\n }\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, version);\n }\n initialize() {\n return from(this.instance.initialize());\n }\n acquireTokenPopup(request) {\n return from(this.instance.acquireTokenPopup(request));\n }\n acquireTokenRedirect(request) {\n return from(this.instance.acquireTokenRedirect(request));\n }\n acquireTokenSilent(silentRequest) {\n return from(this.instance.acquireTokenSilent(silentRequest));\n }\n handleRedirectObservable(hash) {\n return from(this.instance.initialize().then(() => this.instance.handleRedirectPromise(hash || this.redirectHash)));\n }\n loginPopup(request) {\n return from(this.instance.loginPopup(request));\n }\n loginRedirect(request) {\n return from(this.instance.loginRedirect(request));\n }\n logout(logoutRequest) {\n return from(this.instance.logout(logoutRequest));\n }\n logoutRedirect(logoutRequest) {\n return from(this.instance.logoutRedirect(logoutRequest));\n }\n logoutPopup(logoutRequest) {\n return from(this.instance.logoutPopup(logoutRequest));\n }\n ssoSilent(request) {\n return from(this.instance.ssoSilent(request));\n }\n /**\n * Gets logger for msal-angular.\n * If no logger set, returns logger instance created with same options as msal-browser\n */\n getLogger() {\n if (!this.logger) {\n this.logger = this.instance.getLogger().clone(name, version);\n }\n return this.logger;\n }\n // Create a logger instance for msal-angular with the same options as msal-browser\n setLogger(logger) {\n this.logger = logger.clone(name, version);\n this.instance.setLogger(logger);\n }\n}\nMsalService.ɵfac = function MsalService_Factory(t) {\n return new (t || MsalService)(i0.ɵɵinject(MSAL_INSTANCE), i0.ɵɵinject(i3.Location));\n};\nMsalService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalService,\n factory: MsalService.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalService, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }]\n }, {\n type: i3.Location\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalBroadcastService {\n constructor(msalInstance, authService, msalBroadcastConfig) {\n this.msalInstance = msalInstance;\n this.authService = authService;\n this.msalBroadcastConfig = msalBroadcastConfig;\n // Make _msalSubject a ReplaySubject if configured to replay past events\n if (this.msalBroadcastConfig && this.msalBroadcastConfig.eventsToReplay > 0) {\n this.authService.getLogger().verbose(`BroadcastService - eventsToReplay set on BroadcastConfig, replaying the last ${this.msalBroadcastConfig.eventsToReplay} events`);\n this._msalSubject = new ReplaySubject(this.msalBroadcastConfig.eventsToReplay);\n } else {\n // Defaults to _msalSubject being a Subject\n this._msalSubject = new Subject();\n }\n this.msalSubject$ = this._msalSubject.asObservable();\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\n this._inProgress = new BehaviorSubject(InteractionStatus.Startup);\n this.inProgress$ = this._inProgress.asObservable();\n this.msalInstance.addEventCallback(message => {\n this._msalSubject.next(message);\n const status = EventMessageUtils.getInteractionStatusFromEvent(message, this._inProgress.value);\n if (status !== null) {\n this.authService.getLogger().verbose(`BroadcastService - ${message.eventType} results in setting inProgress from ${this._inProgress.value} to ${status}`);\n this._inProgress.next(status);\n }\n });\n }\n}\nMsalBroadcastService.ɵfac = function MsalBroadcastService_Factory(t) {\n return new (t || MsalBroadcastService)(i0.ɵɵinject(MSAL_INSTANCE), i0.ɵɵinject(MsalService), i0.ɵɵinject(MSAL_BROADCAST_CONFIG, 8));\n};\nMsalBroadcastService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalBroadcastService,\n factory: MsalBroadcastService.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalBroadcastService, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }]\n }, {\n type: MsalService\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MSAL_BROADCAST_CONFIG]\n }]\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalGuard {\n constructor(msalGuardConfig, msalBroadcastService, authService, location, router) {\n this.msalGuardConfig = msalGuardConfig;\n this.msalBroadcastService = msalBroadcastService;\n this.authService = authService;\n this.location = location;\n this.router = router;\n // Subscribing so events in MsalGuard will set inProgress$ observable\n this.msalBroadcastService.inProgress$.subscribe();\n }\n /**\n * Parses url string to UrlTree\n * @param url\n */\n parseUrl(url) {\n return this.router.parseUrl(url);\n }\n /**\n * Builds the absolute url for the destination page\n * @param path Relative path of requested page\n * @returns Full destination url\n */\n getDestinationUrl(path) {\n this.authService.getLogger().verbose(\"Guard - getting destination url\");\n // Absolute base url for the application (default to origin if base element not present)\n const baseElements = document.getElementsByTagName(\"base\");\n const baseUrl = this.location.normalize(baseElements.length ? baseElements[0].href : window.location.origin);\n // Path of page (including hash, if using hash routing)\n const pathUrl = this.location.prepareExternalUrl(path);\n // Hash location strategy\n if (pathUrl.startsWith(\"#\")) {\n this.authService.getLogger().verbose(\"Guard - destination by hash routing\");\n return `${baseUrl}/${pathUrl}`;\n }\n /*\n * If using path location strategy, pathUrl will include the relative portion of the base path (e.g. /base/page).\n * Since baseUrl also includes /base, can just concatentate baseUrl + path\n */\n return `${baseUrl}${path}`;\n }\n /**\n * Interactively prompt the user to login\n * @param url Path of the requested page\n */\n loginInteractively(state) {\n const authRequest = typeof this.msalGuardConfig.authRequest === \"function\" ? this.msalGuardConfig.authRequest(this.authService, state) : {\n ...this.msalGuardConfig.authRequest\n };\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\n this.authService.getLogger().verbose(\"Guard - logging in by popup\");\n return this.authService.loginPopup(authRequest).pipe(map(response => {\n this.authService.getLogger().verbose(\"Guard - login by popup successful, can activate, setting active account\");\n this.authService.instance.setActiveAccount(response.account);\n return true;\n }));\n }\n this.authService.getLogger().verbose(\"Guard - logging in by redirect\");\n const redirectStartPage = this.getDestinationUrl(state.url);\n return this.authService.loginRedirect({\n redirectStartPage,\n ...authRequest\n }).pipe(map(() => false));\n }\n /**\n * Helper which checks for the correct interaction type, prevents page with Guard to be set as redirect, and calls handleRedirectObservable\n * @param state\n */\n activateHelper(state) {\n if (this.msalGuardConfig.interactionType !== InteractionType.Popup && this.msalGuardConfig.interactionType !== InteractionType.Redirect) {\n throw new BrowserConfigurationAuthError(\"invalid_interaction_type\", \"Invalid interaction type provided to MSAL Guard. InteractionType.Popup or InteractionType.Redirect must be provided in the MsalGuardConfiguration\");\n }\n this.authService.getLogger().verbose(\"MSAL Guard activated\");\n /*\n * If a page with MSAL Guard is set as the redirect for acquireTokenSilent,\n * short-circuit to prevent redirecting or popups.\n */\n if (typeof window !== \"undefined\") {\n if (UrlString.hashContainsKnownProperties(window.location.hash) && BrowserUtils.isInIframe() && !this.authService.instance.getConfiguration().system.allowRedirectInIframe) {\n this.authService.getLogger().warning(\"Guard - redirectUri set to page with MSAL Guard. It is recommended to not set redirectUri to a page that requires authentication.\");\n return of(false);\n }\n } else {\n this.authService.getLogger().info(\"Guard - window is undefined, MSAL does not support server-side token acquisition\");\n return of(true);\n }\n /**\n * If a loginFailedRoute is set in the config, set this as the loginFailedRoute\n */\n if (this.msalGuardConfig.loginFailedRoute) {\n this.loginFailedRoute = this.parseUrl(this.msalGuardConfig.loginFailedRoute);\n }\n // Capture current path before it gets changed by handleRedirectObservable\n const currentPath = this.location.path(true);\n return this.authService.initialize().pipe(concatMap(() => {\n return this.authService.handleRedirectObservable();\n }), concatMap(() => {\n if (!this.authService.instance.getAllAccounts().length) {\n if (state) {\n this.authService.getLogger().verbose(\"Guard - no accounts retrieved, log in required to activate\");\n return this.loginInteractively(state);\n }\n this.authService.getLogger().verbose(\"Guard - no accounts retrieved, no state, cannot load\");\n return of(false);\n }\n this.authService.getLogger().verbose(\"Guard - at least 1 account exists, can activate or load\");\n // Prevent navigating the app to /#code= or /code=\n if (state) {\n /*\n * Path routing:\n * state.url: /#code=...\n * state.root.fragment: code=...\n */\n /*\n * Hash routing:\n * state.url: /code\n * state.root.fragment: null\n */\n const urlContainsCode = this.includesCode(state.url);\n const fragmentContainsCode = !!state.root && !!state.root.fragment && this.includesCode(`#${state.root.fragment}`);\n const hashRouting = this.location.prepareExternalUrl(state.url).indexOf(\"#\") === 0;\n // Ensure code parameter is in fragment (and not in query parameter), or that hash hash routing is used\n if (urlContainsCode && (fragmentContainsCode || hashRouting)) {\n this.authService.getLogger().info(\"Guard - Hash contains known code response, stopping navigation.\");\n // Path routing (navigate to current path without hash)\n if (currentPath.indexOf(\"#\") > -1) {\n return of(this.parseUrl(this.location.path()));\n }\n // Hash routing (navigate to root path)\n return of(this.parseUrl(\"\"));\n }\n }\n return of(true);\n }), catchError(error => {\n this.authService.getLogger().error(\"Guard - error while logging in, unable to activate\");\n this.authService.getLogger().errorPii(`Guard - error: ${error.message}`);\n /**\n * If a loginFailedRoute is set, checks to see if state is passed before returning route\n */\n if (this.loginFailedRoute && state) {\n this.authService.getLogger().verbose(\"Guard - loginFailedRoute set, redirecting\");\n return of(this.loginFailedRoute);\n }\n return of(false);\n }));\n }\n includesCode(path) {\n return path.lastIndexOf(\"/code\") > -1 && path.lastIndexOf(\"/code\") === path.length - \"/code\".length ||\n // path.endsWith(\"/code\")\n path.indexOf(\"#code=\") > -1 || path.indexOf(\"&code=\") > -1;\n }\n canActivate(route, state) {\n this.authService.getLogger().verbose(\"Guard - canActivate\");\n return this.activateHelper(state);\n }\n canActivateChild(route, state) {\n this.authService.getLogger().verbose(\"Guard - canActivateChild\");\n return this.activateHelper(state);\n }\n canMatch() {\n this.authService.getLogger().verbose(\"Guard - canLoad\");\n return this.activateHelper();\n }\n}\nMsalGuard.ɵfac = function MsalGuard_Factory(t) {\n return new (t || MsalGuard)(i0.ɵɵinject(MSAL_GUARD_CONFIG), i0.ɵɵinject(MsalBroadcastService), i0.ɵɵinject(MsalService), i0.ɵɵinject(i3.Location), i0.ɵɵinject(i4.Router));\n};\nMsalGuard.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalGuard,\n factory: MsalGuard.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalGuard, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MSAL_GUARD_CONFIG]\n }]\n }, {\n type: MsalBroadcastService\n }, {\n type: MsalService\n }, {\n type: i3.Location\n }, {\n type: i4.Router\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalInterceptor {\n constructor(msalInterceptorConfig, authService, location, msalBroadcastService,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n document) {\n this.msalInterceptorConfig = msalInterceptorConfig;\n this.authService = authService;\n this.location = location;\n this.msalBroadcastService = msalBroadcastService;\n this._document = document;\n }\n intercept(req,\n // eslint-disable-line @typescript-eslint/no-explicit-any\n next\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n if (this.msalInterceptorConfig.interactionType !== InteractionType.Popup && this.msalInterceptorConfig.interactionType !== InteractionType.Redirect) {\n throw new BrowserConfigurationAuthError(\"invalid_interaction_type\", \"Invalid interaction type provided to MSAL Interceptor. InteractionType.Popup, InteractionType.Redirect must be provided in the msalInterceptorConfiguration\");\n }\n this.authService.getLogger().verbose(\"MSAL Interceptor activated\");\n const scopes = this.getScopesForEndpoint(req.url, req.method);\n // If no scopes for endpoint, does not acquire token\n if (!scopes || scopes.length === 0) {\n this.authService.getLogger().verbose(\"Interceptor - no scopes for endpoint\");\n return next.handle(req);\n }\n // Sets account as active account or first account\n let account;\n if (!!this.authService.instance.getActiveAccount()) {\n this.authService.getLogger().verbose(\"Interceptor - active account selected\");\n account = this.authService.instance.getActiveAccount();\n } else {\n this.authService.getLogger().verbose(\"Interceptor - no active account, fallback to first account\");\n account = this.authService.instance.getAllAccounts()[0];\n }\n const authRequest = typeof this.msalInterceptorConfig.authRequest === \"function\" ? this.msalInterceptorConfig.authRequest(this.authService, req, {\n account: account\n }) : {\n ...this.msalInterceptorConfig.authRequest,\n account\n };\n this.authService.getLogger().info(`Interceptor - ${scopes.length} scopes found for endpoint`);\n this.authService.getLogger().infoPii(`Interceptor - [${scopes}] scopes found for ${req.url}`);\n return this.acquireToken(authRequest, scopes, account).pipe(switchMap(result => {\n this.authService.getLogger().verbose(\"Interceptor - setting authorization headers\");\n const headers = req.headers.set(\"Authorization\", `Bearer ${result.accessToken}`);\n const requestClone = req.clone({\n headers\n });\n return next.handle(requestClone);\n }));\n }\n /**\n * Try to acquire token silently. Invoke interaction if acquireTokenSilent rejected with error or resolved with null access token\n * @param authRequest Request\n * @param scopes Array of scopes for the request\n * @param account Account\n * @returns Authentication result\n */\n acquireToken(authRequest, scopes, account) {\n // Note: For MSA accounts, include openid scope when calling acquireTokenSilent to return idToken\n return this.authService.acquireTokenSilent({\n ...authRequest,\n scopes,\n account\n }).pipe(catchError(() => {\n this.authService.getLogger().error(\"Interceptor - acquireTokenSilent rejected with error. Invoking interaction to resolve.\");\n return this.msalBroadcastService.inProgress$.pipe(take(1), switchMap(status => {\n if (status === InteractionStatus.None) {\n return this.acquireTokenInteractively(authRequest, scopes);\n }\n return this.msalBroadcastService.inProgress$.pipe(filter(status => status === InteractionStatus.None), take(1), switchMap(() => this.acquireToken(authRequest, scopes, account)));\n }));\n }), switchMap(result => {\n if (!result.accessToken) {\n this.authService.getLogger().error(\"Interceptor - acquireTokenSilent resolved with null access token. Known issue with B2C tenants, invoking interaction to resolve.\");\n return this.msalBroadcastService.inProgress$.pipe(filter(status => status === InteractionStatus.None), take(1), switchMap(() => this.acquireTokenInteractively(authRequest, scopes)));\n }\n return of(result);\n }));\n }\n /**\n * Invoke interaction for the given set of scopes\n * @param authRequest Request\n * @param scopes Array of scopes for the request\n * @returns Result from the interactive request\n */\n acquireTokenInteractively(authRequest, scopes) {\n if (this.msalInterceptorConfig.interactionType === InteractionType.Popup) {\n this.authService.getLogger().verbose(\"Interceptor - error acquiring token silently, acquiring by popup\");\n return this.authService.acquireTokenPopup({\n ...authRequest,\n scopes\n });\n }\n this.authService.getLogger().verbose(\"Interceptor - error acquiring token silently, acquiring by redirect\");\n const redirectStartPage = window.location.href;\n this.authService.acquireTokenRedirect({\n ...authRequest,\n scopes,\n redirectStartPage\n });\n return EMPTY;\n }\n /**\n * Looks up the scopes for the given endpoint from the protectedResourceMap\n * @param endpoint Url of the request\n * @param httpMethod Http method of the request\n * @returns Array of scopes, or null if not found\n *\n */\n getScopesForEndpoint(endpoint, httpMethod) {\n this.authService.getLogger().verbose(\"Interceptor - getting scopes for endpoint\");\n // Ensures endpoints and protected resources compared are normalized\n const normalizedEndpoint = this.location.normalize(endpoint);\n const protectedResourcesArray = Array.from(this.msalInterceptorConfig.protectedResourceMap.keys());\n const matchingProtectedResources = this.matchResourcesToEndpoint(protectedResourcesArray, normalizedEndpoint);\n // Check absolute urls of resources first before checking relative to prevent incorrect matching where multiple resources have similar relative urls\n if (matchingProtectedResources.absoluteResources.length > 0) {\n return this.matchScopesToEndpoint(this.msalInterceptorConfig.protectedResourceMap, matchingProtectedResources.absoluteResources, httpMethod);\n } else if (matchingProtectedResources.relativeResources.length > 0) {\n return this.matchScopesToEndpoint(this.msalInterceptorConfig.protectedResourceMap, matchingProtectedResources.relativeResources, httpMethod);\n }\n return null;\n }\n /**\n * Finds resource endpoints that match request endpoint\n * @param protectedResourcesEndpoints\n * @param endpoint\n * @returns\n */\n matchResourcesToEndpoint(protectedResourcesEndpoints, endpoint) {\n const matchingResources = {\n absoluteResources: [],\n relativeResources: []\n };\n protectedResourcesEndpoints.forEach(key => {\n // Normalizes and adds resource to matchingResources.absoluteResources if key matches endpoint. StringUtils.matchPattern accounts for wildcards\n const normalizedKey = this.location.normalize(key);\n if (StringUtils.matchPattern(normalizedKey, endpoint)) {\n matchingResources.absoluteResources.push(key);\n }\n // Get url components for relative urls\n const absoluteKey = this.getAbsoluteUrl(key);\n const keyComponents = new UrlString(absoluteKey).getUrlComponents();\n const absoluteEndpoint = this.getAbsoluteUrl(endpoint);\n const endpointComponents = new UrlString(absoluteEndpoint).getUrlComponents();\n // Normalized key should include query strings if applicable\n const relativeNormalizedKey = keyComponents.QueryString ? `${keyComponents.AbsolutePath}?${keyComponents.QueryString}` : this.location.normalize(keyComponents.AbsolutePath);\n // Add resource to matchingResources.relativeResources if same origin, relativeKey matches endpoint, and is not empty\n if (keyComponents.HostNameAndPort === endpointComponents.HostNameAndPort && StringUtils.matchPattern(relativeNormalizedKey, absoluteEndpoint) && relativeNormalizedKey !== \"\" && relativeNormalizedKey !== \"/*\") {\n matchingResources.relativeResources.push(key);\n }\n });\n return matchingResources;\n }\n /**\n * Transforms relative urls to absolute urls\n * @param url\n * @returns\n */\n getAbsoluteUrl(url) {\n const link = this._document.createElement(\"a\");\n link.href = url;\n return link.href;\n }\n /**\n * Finds scopes from first matching endpoint with HTTP method that matches request\n * @param protectedResourceMap Protected resource map\n * @param endpointArray Array of resources that match request endpoint\n * @param httpMethod Http method of the request\n * @returns\n */\n matchScopesToEndpoint(protectedResourceMap, endpointArray, httpMethod) {\n const allMatchedScopes = [];\n // Check each matched endpoint for matching HttpMethod and scopes\n endpointArray.forEach(matchedEndpoint => {\n const scopesForEndpoint = [];\n const methodAndScopesArray = protectedResourceMap.get(matchedEndpoint);\n // Return if resource is unprotected\n if (methodAndScopesArray === null) {\n allMatchedScopes.push(null);\n return;\n }\n methodAndScopesArray.forEach(entry => {\n // Entry is either array of scopes or ProtectedResourceScopes object\n if (typeof entry === \"string\") {\n scopesForEndpoint.push(entry);\n } else {\n // Ensure methods being compared are normalized\n const normalizedRequestMethod = httpMethod.toLowerCase();\n const normalizedResourceMethod = entry.httpMethod.toLowerCase();\n // Method in protectedResourceMap matches request http method\n if (normalizedResourceMethod === normalizedRequestMethod) {\n // Validate if scopes comes null to unprotect the resource in a certain http method\n if (entry.scopes === null) {\n allMatchedScopes.push(null);\n } else {\n entry.scopes.forEach(scope => {\n scopesForEndpoint.push(scope);\n });\n }\n }\n }\n });\n // Only add to all scopes if scopes for endpoint and method is found\n if (scopesForEndpoint.length > 0) {\n allMatchedScopes.push(scopesForEndpoint);\n }\n });\n if (allMatchedScopes.length > 0) {\n if (allMatchedScopes.length > 1) {\n this.authService.getLogger().warning(\"Interceptor - More than 1 matching scopes for endpoint found.\");\n }\n // Returns scopes for first matching endpoint\n return allMatchedScopes[0];\n }\n return null;\n }\n}\nMsalInterceptor.ɵfac = function MsalInterceptor_Factory(t) {\n return new (t || MsalInterceptor)(i0.ɵɵinject(MSAL_INTERCEPTOR_CONFIG), i0.ɵɵinject(MsalService), i0.ɵɵinject(i3.Location), i0.ɵɵinject(MsalBroadcastService), i0.ɵɵinject(DOCUMENT));\n};\nMsalInterceptor.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalInterceptor,\n factory: MsalInterceptor.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalInterceptor, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MSAL_INTERCEPTOR_CONFIG]\n }]\n }, {\n type: MsalService\n }, {\n type: i3.Location\n }, {\n type: MsalBroadcastService\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * This is a dedicated redirect component to be added to Angular apps to\n * handle redirects when using @azure/msal-angular.\n * Import this component to use redirects in your app.\n */\nclass MsalRedirectComponent {\n constructor(authService) {\n this.authService = authService;\n }\n ngOnInit() {\n this.authService.getLogger().verbose(\"MsalRedirectComponent activated\");\n this.authService.handleRedirectObservable().subscribe();\n }\n}\nMsalRedirectComponent.ɵfac = function MsalRedirectComponent_Factory(t) {\n return new (t || MsalRedirectComponent)(i0.ɵɵdirectiveInject(MsalService));\n};\nMsalRedirectComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MsalRedirectComponent,\n selectors: [[\"app-redirect\"]],\n decls: 0,\n vars: 0,\n template: function MsalRedirectComponent_Template(rf, ctx) {},\n encapsulation: 2\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalRedirectComponent, [{\n type: Component,\n args: [{\n selector: \"app-redirect\",\n template: \"\"\n }]\n }], function () {\n return [{\n type: MsalService\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalModule {\n static forRoot(msalInstance, guardConfig, interceptorConfig) {\n return {\n ngModule: MsalModule,\n providers: [{\n provide: MSAL_INSTANCE,\n useValue: msalInstance\n }, {\n provide: MSAL_GUARD_CONFIG,\n useValue: guardConfig\n }, {\n provide: MSAL_INTERCEPTOR_CONFIG,\n useValue: interceptorConfig\n }, MsalService]\n };\n }\n}\nMsalModule.ɵfac = function MsalModule_Factory(t) {\n return new (t || MsalModule)();\n};\nMsalModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MsalModule\n});\nMsalModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MsalGuard, MsalBroadcastService],\n imports: [CommonModule]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalModule, [{\n type: NgModule,\n args: [{\n declarations: [MsalRedirectComponent],\n imports: [CommonModule],\n providers: [MsalGuard, MsalBroadcastService]\n }]\n }], null, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * Custom navigation used for Angular client-side navigation.\n * See performance doc for details:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/performance.md\n */\nclass MsalCustomNavigationClient extends NavigationClient {\n constructor(authService, router, location) {\n super();\n this.authService = authService;\n this.router = router;\n this.location = location;\n }\n async navigateInternal(url, options) {\n this.authService.getLogger().trace(\"MsalCustomNavigationClient called\");\n this.authService.getLogger().verbose(\"MsalCustomNavigationClient - navigating\");\n this.authService.getLogger().verbosePii(`MsalCustomNavigationClient - navigating to url: ${url}`);\n // Prevent hash clearing from causing an issue with Client-side navigation after redirect is handled\n if (options.noHistory) {\n return super.navigateInternal(url, options);\n } else {\n // Normalizing newUrl if no query string\n const urlComponents = new UrlString(url).getUrlComponents();\n const newUrl = urlComponents.QueryString ? `${urlComponents.AbsolutePath}?${urlComponents.QueryString}` : this.location.normalize(urlComponents.AbsolutePath);\n await this.router.navigateByUrl(newUrl, {\n replaceUrl: options.noHistory\n });\n }\n return Promise.resolve(options.noHistory);\n }\n}\nMsalCustomNavigationClient.ɵfac = function MsalCustomNavigationClient_Factory(t) {\n return new (t || MsalCustomNavigationClient)(i0.ɵɵinject(MsalService), i0.ɵɵinject(i4.Router), i0.ɵɵinject(i3.Location));\n};\nMsalCustomNavigationClient.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalCustomNavigationClient,\n factory: MsalCustomNavigationClient.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalCustomNavigationClient, [{\n type: Injectable\n }], function () {\n return [{\n type: MsalService\n }, {\n type: i4.Router\n }, {\n type: i3.Location\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * @packageDocumentation\n * @module @azure/msal-angular\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MSAL_BROADCAST_CONFIG, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalCustomNavigationClient, MsalGuard, MsalInterceptor, MsalModule, MsalRedirectComponent, MsalService, version };\n"],"mappings":"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","names":["version","name","version","document","status"],"x_google_ignoreList":[0,1,2,3,4,5]}