{ "version": 3, "sources": ["apps/toolkits-frontend/src/app/auth-guard/auth.guard.ts", "apps/toolkits-frontend/src/app/services/router-data-fieds.service.ts", "apps/toolkits-frontend/src/app/services/tookit-route.service.ts"], "sourcesContent": ["import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { ItkTokenManagementServiceDeprecated } from '@itk/ng-auth';\nimport { ITK_NG_DJANGO_API_CLIENT } from '@itk/ng-django-api';\nimport { ItkDjangoApi } from '@itk/universal-django-api';\nimport { Observable, catchError, map, of, tap } from 'rxjs';\nimport { BrowserEnvConfig } from '../app.config';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthGuard {\n constructor(\n private readonly token: ItkTokenManagementServiceDeprecated,\n private readonly config: BrowserEnvConfig,\n @Inject(PLATFORM_ID) private readonly pid: string,\n @Inject(ITK_NG_DJANGO_API_CLIENT) private readonly api: ItkDjangoApi,\n ) {}\n\n canActivate(): Observable {\n if (!this.token.isValidToken(this.token.getAccessToken())) {\n if (isPlatformBrowser(this.pid)) {\n window.location.href = [this.config.vueApp, '/logout'].join('');\n }\n\n return of(false);\n }\n\n return this.api.member.getMember().pipe(\n map((x) => !('error' in x)),\n tap((x) => {\n if (!x && isPlatformBrowser(this.pid)) {\n window.location.href = [this.config.vueApp, '/logout'].join('');\n }\n }),\n catchError(() => of(false)),\n );\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, map, mergeMap, share, shareReplay, startWith } from 'rxjs';\n\ninterface RouterData {\n hideNavigation: boolean;\n intendedForIframe: boolean;\n excludeAgencyLogo: boolean;\n isQuickQuoter: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ItkRouterDataFieldsService {\n constructor(\n private readonly router: Router,\n private readonly activatedRoute: ActivatedRoute,\n ) {}\n\n private readonly routeData$ = this.router.events.pipe(\n filter((e) => e instanceof NavigationEnd),\n map(() => this.activatedRoute),\n map((route) => {\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n }),\n mergeMap((route) => route.data),\n share(),\n );\n\n public readonly routeDataFields$ = this.routeData$.pipe(\n map(\n (x) =>\n ({\n hideNavigation: !!x['hideNavigation'],\n intendedForIframe: !!x['intendedForIframe'],\n excludeAgencyLogo: !!x['excludeAgencyLogo'],\n }) as RouterData,\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n public readonly showSubNav$ = this.routeDataFields$.pipe(\n map((x) => !x.intendedForIframe),\n startWith(true),\n );\n}\n", "import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { distinctUntilChanged, map, Observable } from 'rxjs';\nimport { Toolkit } from '../types';\nimport { defaultMetadata as toolkits } from './metadata.constants';\nimport { LocalStorageService } from 'ngx-localstorage';\nimport { FEX_TOOLKIT_CODE, ToolkitCode } from '@itk/types';\n\n@Injectable({ providedIn: 'root' })\nexport class ToolkitRouteService {\n constructor(\n private readonly router: Router,\n private readonly ls: LocalStorageService,\n ) {}\n\n public readonly currentToolkitRoute$: Observable =\n this.router.events.pipe(\n map(() => this.router.url),\n map((path) => path.split('/')[1]),\n distinctUntilChanged(),\n map((path) => toolkits.findToolkitFromSlug(`/${path}`)),\n );\n\n public readonly isOnToolkitRoute$ = this.currentToolkitRoute$.pipe(\n map((kit) => kit !== undefined),\n );\n\n getSavedToolkit(): ToolkitCode {\n return (\n this.ls.get('toolkit') ?? FEX_TOOLKIT_CODE\n );\n }\n\n saveToolkit(tk: ToolkitCode): void {\n this.ls.set('toolkit', tk);\n }\n}\n"], "mappings": "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", "names": ["AuthGuard", "constructor", "token", "config", "pid", "api", "canActivate", "isValidToken", "getAccessToken", "member", "getMember", "pipe", "map", "x", "tap", "isPlatformBrowser", "window", "location", "href", "vueApp", "join", "catchError", "of", "\u0275\u0275inject", "ItkTokenManagementServiceDeprecated", "BrowserEnvConfig", "PLATFORM_ID", "ITK_NG_DJANGO_API_CLIENT", "factory", "\u0275fac", "providedIn", "_AuthGuard", "ItkRouterDataFieldsService", "constructor", "router", "activatedRoute", "routeData$", "events", "pipe", "filter", "e", "NavigationEnd", "map", "route", "firstChild", "mergeMap", "data", "share", "routeDataFields$", "x", "hideNavigation", "intendedForIframe", "excludeAgencyLogo", "shareReplay", "refCount", "bufferSize", "showSubNav$", "startWith", "\u0275\u0275inject", "Router", "ActivatedRoute", "factory", "\u0275fac", "providedIn", "_ItkRouterDataFieldsService", "ToolkitRouteService", "constructor", "router", "ls", "currentToolkitRoute$", "events", "pipe", "map", "url", "path", "split", "distinctUntilChanged", "toolkits", "findToolkitFromSlug", "isOnToolkitRoute$", "kit", "undefined", "getSavedToolkit", "get", "FEX_TOOLKIT_CODE", "saveToolkit", "tk", "set", "\u0275\u0275inject", "Router", "LocalStorageService", "factory", "\u0275fac", "providedIn", "_ToolkitRouteService"] }