{"version":3,"sources":["node_modules/@angular/platform-browser/fesm2022/animations/async.mjs","node_modules/@ngxs/devtools-plugin/fesm2022/ngxs-devtools-plugin.mjs","src/app/core/guards/auth.guard.ts","src/app/app.component.ts","src/app/app.component.html","src/app/pages/callback/callback.component.ts","src/app/pages/callback/callback.component.html","src/app/pages/page-not-found/page-not-found.component.ts","src/app/pages/page-not-found/page-not-found.component.html","src/app/app.routes.ts","src/app/core/token.interceptor.ts","src/app/app.config.ts","src/main.ts"],"sourcesContent":["/**\n * @license Angular v19.1.4\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, Injector, ɵRuntimeError, ɵChangeDetectionScheduler, Injectable, InjectionToken, ɵperformanceMarkFeature, makeEnvironmentProviders, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2 } from '@angular/platform-browser';\nconst ANIMATION_PREFIX = '@';\nclass AsyncAnimationRendererFactory {\n doc;\n delegate;\n zone;\n animationType;\n moduleImpl;\n _rendererFactoryPromise = null;\n scheduler = null;\n injector = inject(Injector);\n loadingSchedulerFn = inject(ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN, {\n optional: true\n });\n _engine;\n /**\n *\n * @param moduleImpl allows to provide a mock implmentation (or will load the animation module)\n */\n constructor(doc, delegate, zone, animationType, moduleImpl) {\n this.doc = doc;\n this.delegate = delegate;\n this.zone = zone;\n this.animationType = animationType;\n this.moduleImpl = moduleImpl;\n }\n /** @nodoc */\n ngOnDestroy() {\n // When the root view is removed, the renderer defers the actual work to the\n // `TransitionAnimationEngine` to do this, and the `TransitionAnimationEngine` doesn't actually\n // remove the DOM node, but just calls `markElementAsRemoved()`. The actual DOM node is not\n // removed until `TransitionAnimationEngine` \"flushes\".\n // Note: we already flush on destroy within the `InjectableAnimationEngine`. The injectable\n // engine is not provided when async animations are used.\n this._engine?.flush();\n }\n /**\n * @internal\n */\n loadImpl() {\n // Note on the `.then(m => m)` part below: Closure compiler optimizations in g3 require\n // `.then` to be present for a dynamic import (or an import should be `await`ed) to detect\n // the set of imported symbols.\n const loadFn = () => this.moduleImpl ?? import('@angular/animations/browser').then(m => m);\n let moduleImplPromise;\n if (this.loadingSchedulerFn) {\n moduleImplPromise = this.loadingSchedulerFn(loadFn);\n } else {\n moduleImplPromise = loadFn();\n }\n return moduleImplPromise.catch(e => {\n throw new ɵRuntimeError(5300 /* RuntimeErrorCode.ANIMATION_RENDERER_ASYNC_LOADING_FAILURE */, (typeof ngDevMode === 'undefined' || ngDevMode) && 'Async loading for animations package was ' + 'enabled, but loading failed. Angular falls back to using regular rendering. ' + \"No animations will be displayed and their styles won't be applied.\");\n }).then(({\n ɵcreateEngine,\n ɵAnimationRendererFactory\n }) => {\n // We can't create the renderer yet because we might need the hostElement and the type\n // Both are provided in createRenderer().\n this._engine = ɵcreateEngine(this.animationType, this.doc);\n const rendererFactory = new ɵAnimationRendererFactory(this.delegate, this._engine, this.zone);\n this.delegate = rendererFactory;\n return rendererFactory;\n });\n }\n /**\n * This method is delegating the renderer creation to the factories.\n * It uses default factory while the animation factory isn't loaded\n * and will rely on the animation factory once it is loaded.\n *\n * Calling this method will trigger as side effect the loading of the animation module\n * if the renderered component uses animations.\n */\n createRenderer(hostElement, rendererType) {\n const renderer = this.delegate.createRenderer(hostElement, rendererType);\n if (renderer.ɵtype === 0 /* AnimationRendererType.Regular */) {\n // The factory is already loaded, this is an animation renderer\n return renderer;\n }\n // We need to prevent the DomRenderer to throw an error because of synthetic properties\n if (typeof renderer.throwOnSyntheticProps === 'boolean') {\n renderer.throwOnSyntheticProps = false;\n }\n // Using a dynamic renderer to switch the renderer implementation once the module is loaded.\n const dynamicRenderer = new DynamicDelegationRenderer(renderer);\n // Kick off the module loading if the component uses animations but the module hasn't been\n // loaded yet.\n if (rendererType?.data?.['animation'] && !this._rendererFactoryPromise) {\n this._rendererFactoryPromise = this.loadImpl();\n }\n this._rendererFactoryPromise?.then(animationRendererFactory => {\n const animationRenderer = animationRendererFactory.createRenderer(hostElement, rendererType);\n dynamicRenderer.use(animationRenderer);\n this.scheduler ??= this.injector.get(ɵChangeDetectionScheduler, null, {\n optional: true\n });\n this.scheduler?.notify(11 /* NotificationSource.AsyncAnimationsLoaded */);\n }).catch(e => {\n // Permanently use regular renderer when loading fails.\n dynamicRenderer.use(renderer);\n });\n return dynamicRenderer;\n }\n begin() {\n this.delegate.begin?.();\n }\n end() {\n this.delegate.end?.();\n }\n whenRenderingDone() {\n return this.delegate.whenRenderingDone?.() ?? Promise.resolve();\n }\n /**\n * Used during HMR to clear any cached data about a component.\n * @param componentId ID of the component that is being replaced.\n */\n componentReplaced(componentId) {\n // Flush the engine since the renderer destruction waits for animations to be done.\n this._engine?.flush();\n this.delegate.componentReplaced?.(componentId);\n }\n static ɵfac = function AsyncAnimationRendererFactory_Factory(__ngFactoryType__) {\n i0.ɵɵinvalidFactory();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AsyncAnimationRendererFactory,\n factory: AsyncAnimationRendererFactory.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AsyncAnimationRendererFactory, [{\n type: Injectable\n }], () => [{\n type: Document\n }, {\n type: i0.RendererFactory2\n }, {\n type: i0.NgZone\n }, {\n type: undefined\n }, {\n type: Promise\n }], null);\n})();\n/**\n * The class allows to dynamicly switch between different renderer implementations\n * by changing the delegate renderer.\n */\nclass DynamicDelegationRenderer {\n delegate;\n // List of callbacks that need to be replayed on the animation renderer once its loaded\n replay = [];\n ɵtype = 1 /* AnimationRendererType.Delegated */;\n constructor(delegate) {\n this.delegate = delegate;\n }\n use(impl) {\n this.delegate = impl;\n if (this.replay !== null) {\n // Replay queued actions using the animation renderer to apply\n // all events and properties collected while loading was in progress.\n for (const fn of this.replay) {\n fn(impl);\n }\n // Set to `null` to indicate that the queue was processed\n // and we no longer need to collect events and properties.\n this.replay = null;\n }\n }\n get data() {\n return this.delegate.data;\n }\n destroy() {\n this.replay = null;\n this.delegate.destroy();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n get destroyNode() {\n return this.delegate.destroyNode;\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n }\n insertBefore(parent, newChild, refChild, isMove) {\n this.delegate.insertBefore(parent, newChild, refChild, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.delegate.removeChild(parent, oldChild, isHostElement);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n // We need to keep track of animation properties set on default renderer\n // So we can also set them also on the animation renderer\n if (this.shouldReplay(name)) {\n this.replay.push(renderer => renderer.setProperty(el, name, value));\n }\n this.delegate.setProperty(el, name, value);\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback, options) {\n // We need to keep track of animation events registred by the default renderer\n // So we can also register them against the animation renderer\n if (this.shouldReplay(eventName)) {\n this.replay.push(renderer => renderer.listen(target, eventName, callback, options));\n }\n return this.delegate.listen(target, eventName, callback, options);\n }\n shouldReplay(propOrEventName) {\n //`null` indicates that we no longer need to collect events and properties\n return this.replay !== null && propOrEventName.startsWith(ANIMATION_PREFIX);\n }\n}\n/**\n * Provides a custom scheduler function for the async loading of the animation package.\n *\n * Private token for investigation purposes\n */\nconst ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN = new InjectionToken(ngDevMode ? 'async_animation_loading_scheduler_fn' : '');\n\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * When you use this function instead of the eager `provideAnimations()`, animations won't be\n * rendered until the renderer is loaded.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```ts\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimationsAsync()\n * ]\n * });\n * ```\n *\n * @param type pass `'noop'` as argument to disable animations.\n *\n * @publicApi\n */\nfunction provideAnimationsAsync(type = 'animations') {\n ɵperformanceMarkFeature('NgAsyncAnimations');\n return makeEnvironmentProviders([{\n provide: RendererFactory2,\n useFactory: (doc, renderer, zone) => {\n return new AsyncAnimationRendererFactory(doc, renderer, zone, type);\n },\n deps: [DOCUMENT, ɵDomRendererFactory2, NgZone]\n }, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: type === 'noop' ? 'NoopAnimations' : 'BrowserAnimations'\n }]);\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { provideAnimationsAsync, ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN, AsyncAnimationRendererFactory as ɵAsyncAnimationRendererFactory };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, Injector, NgZone, ɵglobal as _global, Injectable, NgModule, makeEnvironmentProviders } from '@angular/core';\nimport { Store, withNgxsPlugin } from '@ngxs/store';\nimport { getActionTypeFromInstance, InitState } from '@ngxs/store/plugins';\nimport { catchError, tap } from 'rxjs/operators';\nconst NGXS_DEVTOOLS_OPTIONS = new InjectionToken('NGXS_DEVTOOLS_OPTIONS');\n\n/**\n * Adds support for the Redux Devtools extension:\n * http://extension.remotedev.io/\n */\nclass NgxsReduxDevtoolsPlugin {\n constructor() {\n this._injector = inject(Injector);\n this._ngZone = inject(NgZone);\n this._options = inject(NGXS_DEVTOOLS_OPTIONS);\n this.devtoolsExtension = null;\n this.globalDevtools = _global['__REDUX_DEVTOOLS_EXTENSION__'] || _global['devToolsExtension'];\n this.unsubscribe = null;\n this.connect();\n }\n ngOnDestroy() {\n this.unsubscribe?.();\n this.globalDevtools?.disconnect();\n }\n /**\n * Lazy get the store for circular dependency issues\n */\n get store() {\n return this._injector.get(Store);\n }\n /**\n * Middleware handle function\n */\n handle(state, action, next) {\n if (!this.devtoolsExtension || this._options.disabled) {\n return next(state, action);\n }\n return next(state, action).pipe(catchError(error => {\n const newState = this.store.snapshot();\n this.sendToDevTools(state, action, newState);\n throw error;\n }), tap(newState => {\n this.sendToDevTools(state, action, newState);\n }));\n }\n sendToDevTools(state, action, newState) {\n const type = getActionTypeFromInstance(action);\n // if init action, send initial state to dev tools\n const isInitAction = type === InitState.type;\n if (isInitAction) {\n this.devtoolsExtension.init(state);\n } else {\n this.devtoolsExtension.send({\n ...action,\n action: null,\n type\n }, newState);\n }\n }\n /**\n * Handle the action from the dev tools subscription\n */\n dispatched(action) {\n if (action.type === \"DISPATCH\" /* ReduxDevtoolsActionType.Dispatch */) {\n if (action.payload.type === \"JUMP_TO_ACTION\" /* ReduxDevtoolsPayloadType.JumpToAction */ || action.payload.type === \"JUMP_TO_STATE\" /* ReduxDevtoolsPayloadType.JumpToState */) {\n const prevState = JSON.parse(action.state);\n // This makes the DevTools and Router plugins compatible with each other.\n // We check for the existence of the `router` state and ensure it has the\n // `trigger` property, confirming that it is our router state (coming from `@ngxs/router-plugin`).\n // This enables a time-traveling feature, as it not only restores the state but\n // also allows the `RouterState` to navigate back when the action is jumped.\n if (prevState.router && prevState.router.trigger) {\n prevState.router.trigger = 'devtools';\n }\n this.store.reset(prevState);\n } else if (action.payload.type === \"TOGGLE_ACTION\" /* ReduxDevtoolsPayloadType.ToggleAction */) {\n console.warn('Skip is not supported at this time.');\n } else if (action.payload.type === \"IMPORT_STATE\" /* ReduxDevtoolsPayloadType.ImportState */) {\n const {\n actionsById,\n computedStates,\n currentStateIndex\n } = action.payload.nextLiftedState;\n this.devtoolsExtension.init(computedStates[0].state);\n Object.keys(actionsById).filter(actionId => actionId !== '0').forEach(actionId => this.devtoolsExtension.send(actionsById[actionId], computedStates[actionId].state));\n this.store.reset(computedStates[currentStateIndex].state);\n }\n } else if (action.type === \"ACTION\" /* ReduxDevtoolsActionType.Action */) {\n const actionPayload = JSON.parse(action.payload);\n this.store.dispatch(actionPayload);\n }\n }\n connect() {\n if (!this.globalDevtools || this._options.disabled) {\n return;\n }\n // The `connect` method adds a `message` event listener to communicate\n // with an extension through `window.postMessage` and handle message events.\n // Since we only handle two specific events, we aim to avoid unnecessary change\n // detections triggered by events that the extension sends, but we don't need to handle.\n this.devtoolsExtension = this._ngZone.runOutsideAngular(() => this.globalDevtools.connect(this._options));\n this.unsubscribe = this.devtoolsExtension.subscribe(action => {\n if (action.type === \"DISPATCH\" /* ReduxDevtoolsActionType.Dispatch */ || action.type === \"ACTION\" /* ReduxDevtoolsActionType.Action */) {\n this.dispatched(action);\n }\n });\n }\n /** @nocollapse */\n static {\n this.ɵfac = function NgxsReduxDevtoolsPlugin_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxsReduxDevtoolsPlugin)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgxsReduxDevtoolsPlugin,\n factory: NgxsReduxDevtoolsPlugin.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgxsReduxDevtoolsPlugin, [{\n type: Injectable\n }], () => [], null);\n})();\nfunction devtoolsOptionsFactory(options) {\n return {\n name: 'NGXS',\n ...options\n };\n}\nconst USER_OPTIONS = new InjectionToken('USER_OPTIONS');\nclass NgxsReduxDevtoolsPluginModule {\n static forRoot(options) {\n return {\n ngModule: NgxsReduxDevtoolsPluginModule,\n providers: [withNgxsPlugin(NgxsReduxDevtoolsPlugin), {\n provide: USER_OPTIONS,\n useValue: options\n }, {\n provide: NGXS_DEVTOOLS_OPTIONS,\n useFactory: devtoolsOptionsFactory,\n deps: [USER_OPTIONS]\n }]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function NgxsReduxDevtoolsPluginModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxsReduxDevtoolsPluginModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxsReduxDevtoolsPluginModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgxsReduxDevtoolsPluginModule, [{\n type: NgModule\n }], null, null);\n})();\nfunction withNgxsReduxDevtoolsPlugin(options) {\n return makeEnvironmentProviders([withNgxsPlugin(NgxsReduxDevtoolsPlugin), {\n provide: USER_OPTIONS,\n useValue: options\n }, {\n provide: NGXS_DEVTOOLS_OPTIONS,\n useFactory: devtoolsOptionsFactory,\n deps: [USER_OPTIONS]\n }]);\n}\n\n/**\n * The public api for consumers of @ngxs/devtools-plugin\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NGXS_DEVTOOLS_OPTIONS, NgxsReduxDevtoolsPlugin, NgxsReduxDevtoolsPluginModule, withNgxsReduxDevtoolsPlugin };\n","import { inject } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, CanActivateFn, Router, RouterStateSnapshot } from \"@angular/router\";\nimport { Navigate } from \"@ngxs/router-plugin\";\nimport { Store } from \"@ngxs/store\";\nimport { GetUserAuth, SignInRedirect } from \"@store/auth/auth.actions\";\nimport { AuthSelectors } from \"@store/auth/auth.selectors\";\nimport { map, of } from \"rxjs\";\n\nexport const AuthGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const store = inject(Store);\n if (state.url.includes('consultation/start')) {\n return store.dispatch(new GetUserAuth()).pipe(\n map(() => true)\n );\n }\n return store.select(AuthSelectors.isLoggedIn).pipe(\n map((isLoggedIn) => {\n if (isLoggedIn) {\n return true;\n } else {\n store.dispatch(new SignInRedirect());\n return false;\n }\n })\n );\n};","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.scss'\n})\nexport class AppComponent {\n title = 'onmed-fronted';\n}\n","","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { LoaderComponent } from '@progress/kendo-angular-indicators';\nimport { SignInCallback, SignOutCallback } from '@store/auth/auth.actions';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'app-callback',\n imports: [LoaderComponent],\n templateUrl: './callback.component.html',\n})\nexport class CallbackComponent implements OnInit, OnDestroy {\n\n private _unsubsribeAll = new Subject();\n\n constructor(private store: Store, private router: Router) { }\n\n ngOnInit(): void {\n const isLogout = this.router.url.includes('signout-callback');\n const action = isLogout ? new SignOutCallback() : new SignInCallback();\n this.store.dispatch(action).pipe(\n takeUntil(this._unsubsribeAll)\n ).subscribe(() => this.store.dispatch(new Navigate(['station/overview'])));\n // we might need to change this to track the URL - but TBD\n }\n\n ngOnDestroy(): void {\n this._unsubsribeAll.next();\n this._unsubsribeAll.complete();\n }\n}\n","
\n \n
\n","import { Component } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'app-page-not-found',\n templateUrl: './page-not-found.component.html',\n imports: [RouterLink]\n})\nexport class PageNotFoundComponent {}","
\n
\n
\n

\n 404\n

\n\n \n Page Could Not Be Found \n \n\n \n
\n
\n
\n","import { Routes } from '@angular/router';\nimport { AuthGuard } from './core/guards/auth.guard';\nimport { AppComponent } from './app.component';\nimport { CallbackComponent } from './pages/callback/callback.component';\nimport { provideStates } from '@ngxs/store';\nimport { AppState } from '@store/app/app.state';\nimport { PageNotFoundComponent } from './pages/page-not-found/page-not-found.component';\n\nexport const routes: Routes = [\n {\n path: 'station',\n loadChildren: () => import('./pages/station-dashboard/station-dashboard.routes').then(m => m.dashboardRoutes),\n canActivate: [AuthGuard]\n },\n {\n path: 'consultation',\n loadChildren: () => import('./pages/consultation/consultation.routes').then(m => m.consultationRoutes),\n canActivate: [AuthGuard]\n },\n {\n path: '',\n component: AppComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'auth-callback',\n component: CallbackComponent\n },\n {\n path: 'signout-callback',\n component: CallbackComponent\n },\n {\n path: 'page-not-found',\n component: PageNotFoundComponent\n }\n \n];\n","import { HttpErrorResponse, HttpEvent, HttpHandlerFn, HttpRequest } from \"@angular/common/http\";\nimport { inject } from \"@angular/core\";\nimport { Store } from \"@ngxs/store\";\nimport { ReAuth } from \"@store/auth/auth.actions\";\nimport { AuthSelectors } from \"@store/auth/auth.selectors\";\nimport { User } from \"oidc-client-ts\";\nimport { BehaviorSubject, catchError, filter, finalize, first, map, Observable, switchMap, tap, throwError } from \"rxjs\";\n\nconst InterceptorSkipHeader = 'X-Skip-Interceptor';\nconst UseAuthHeader = 'X-Use-Auth';\nlet isRefreshing = false;\nlet refreshingTokenSubject: BehaviorSubject = new BehaviorSubject(null);\n\nexport function TokenInterceptor(req: HttpRequest, next: HttpHandlerFn): Observable> {\n req = removeHeader(req, UseAuthHeader);\n return interceptRequest(req, next);\n}\n\nfunction interceptRequest(req: HttpRequest, next: HttpHandlerFn): Observable> {\n const store = inject(Store);\n if (req.headers.has(InterceptorSkipHeader)) {\n const headers = req.headers.delete(InterceptorSkipHeader);\n return next(req.clone({ headers }));\n }\n return store.select(AuthSelectors.auth).pipe(\n switchMap((auth) => {\n if (auth)\n req = req.clone({\n setHeaders: {\n Authorization: `${auth.token_type} ${auth.access_token}`\n }\n });\n return next(req);\n // After auth is returned we will add token refresh\n // .pipe(\n // catchError(error => {\n // if (error instanceof HttpErrorResponse && error.status === 401) {\n // return handleTokenExpiredError(req, next);\n // }\n // return throwError(() => error);\n // })\n // );\n })\n );\n}\n\nfunction removeHeader(req: HttpRequest, header: string): HttpRequest {\n const headers = req.headers.delete(header);\n return req.clone({ headers });\n}\n\nfunction handleTokenExpiredError(req: HttpRequest, next: HttpHandlerFn): Observable> {\n if (!isRefreshing) {\n isRefreshing = true;\n refreshingTokenSubject.next(null);\n\n return refreshToken().pipe(\n filter((auth) => auth !== null),\n switchMap((auth) => {\n isRefreshing = false;\n refreshingTokenSubject.next(auth);\n\n req = req.clone({\n setHeaders: {\n Authorization: `${auth.token_type} ${auth.access_token}`\n }\n });\n return next(req);\n }),\n finalize(() => isRefreshing = false)\n );\n } else {\n return refreshingTokenSubject.pipe(\n filter((auth) => auth !== null),\n switchMap(auth => {\n req = req.clone({\n setHeaders: {\n Authorization: `${auth.token_type} ${auth.access_token}`\n }\n });\n return next(req);\n })\n );\n }\n}\n\nfunction refreshToken(): Observable {\n const store = inject(Store);\n return store.select(AuthSelectors.auth).pipe(\n first(),\n tap(() => store.dispatch(new ReAuth())),\n switchMap(() => store.select(AuthSelectors.auth).pipe(first()))\n );\n}\n\n\n\n","import {\n provideHttpClient,\n withInterceptors\n} from '@angular/common/http';\nimport { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideAnimationsAsync } from '@angular/platform-browser/animations/async';\nimport { provideRouter } from '@angular/router';\nimport { ClinicalAdminState } from '@store/clinical-admin-summary/clinical-admin-summary.state';\nimport { withNgxsReduxDevtoolsPlugin } from '@ngxs/devtools-plugin';\nimport { withNgxsRouterPlugin } from '@ngxs/router-plugin';\nimport { provideStates, provideStore } from '@ngxs/store';\nimport { AuthState } from '@store/auth/auth.state';\nimport { EmployeeState } from '@store/employees/employee.state';\nimport { StationState } from '@store/stations/station.state';\nimport { PatientState } from '@store/patient/patient.state';\nimport { ConsultationState } from '@store/consultations/consultation.state';\nimport { AvailableCareAdminsState } from '@store/available-care-admins/available-care-admins.state';\nimport { InProgressConsultationState } from '@store/in-progress-consultation/in-progress-consultation.state';\nimport { TransferConsultationState } from '@store/transfer-consultation/transfer-consultation.state';\nimport { routes } from './app.routes';\nimport { TokenInterceptor } from './core/token.interceptor';\nimport { AppState } from '@store/app/app.state';\nimport { provideLottieOptions } from 'ngx-lottie';\nimport { ConsultationClinicalAdminState } from '@store/consultation/consultation.state';\n\nconst STATES = [\n StationState,\n EmployeeState,\n AuthState,\n ClinicalAdminState,\n AvailableCareAdminsState,\n ConsultationState,\n ConsultationClinicalAdminState,\n InProgressConsultationState,\n TransferConsultationState,\n PatientState,\n AppState\n];\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideAnimationsAsync(),\n provideRouter(routes),\n provideHttpClient(withInterceptors([TokenInterceptor])),\n provideStore(),\n provideStates(STATES),\n withNgxsRouterPlugin(),\n withNgxsReduxDevtoolsPlugin(),\n provideAnimationsAsync(),\n provideLottieOptions({\n player: () => import('lottie-web'),\n })\n ]\n};\n","/// \n\nimport { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch((err) => console.error(err));\n"],"mappings":"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","names":[],"x_google_ignoreList":[0,1]}