{ "version": 3, "sources": ["src/app/constants/root-routes.ts", "src/app/util/routing-util.ts", "src/app/content/content-routes.ts"], "sourcesContent": ["import { RedirectFunction, Route } from '@angular/router';\n\n// Typescript really should make this easier... To add new properties, add name to\n// array here and then to both RootRoute interface + RootRouteData class below.\nexport const RootRouteProperties = ['page', 'headerStyle'];\n\nexport interface RootRoute extends Route {\n /**\n * The page name to use for content lookup.\n */\n page?: string;\n\n /**\n * The header style to use for the page.\n */\n headerStyle?: HeaderStyle;\n}\n\n/**\n * Supports configuration via the data properties allowed in a route\n * this is similar to the properties we used to use in routeConfig.js in AngularJS\n */\nexport class RootRouteData {\n /**\n * The page name to use for content lookup.\n */\n page?: string;\n\n /**\n * The header style to use for the page.\n */\n headerStyle?: HeaderStyle;\n}\n\n/**\n * Supports catch-all routes, where a standard route has marketing information added on the end\n * of it that should not influence behavior.\n */\nexport class CatchAllRouteData {\n /**\n * URL to redirect to after logging the catch-all route was hit.\n */\n redirectTo: string | RedirectFunction = '';\n}\n\nexport enum HeaderStyle {\n None = 'none',\n Standard = 'standard',\n Cuera = 'cuera',\n Landing = 'landing',\n PreEnrollment = 'preenrollment',\n}\n\nexport const ROOT_ROUTE_DATA = {\n BASE_PATH: '/',\n CUERA: {\n PATH: 'cuera',\n PAGE: 'Cuera',\n TITLE: 'Benefits For You - CUERA',\n },\n LANDING: {\n PATH: '',\n PAGE: 'Landing',\n },\n PREENROLLMENT: {\n PATH: 'pre-enrollment/:preEnrollmentId',\n PAGE: 'PreEnrollment',\n TITLE: 'Benefits For You - PreEnrollment',\n },\n LOGOUT: {\n PATH: 'log-out',\n },\n};\n", "import {\n ActivatedRouteSnapshot,\n ResolveData,\n Route,\n Router,\n UrlTree,\n} from '@angular/router';\nimport { copyDefaults, resolveContent } from '@bfy/bfy-ui-shared';\nimport {\n RootRouteData,\n RootRoute,\n RootRouteProperties,\n HeaderStyle,\n CatchAllRouteData,\n} from '../constants/root-routes';\nimport { inject } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nexport const getRootComponentRoute = (routeData: Partial): Route => {\n const output: Route = {};\n Object.assign(output, routeData);\n\n // remove any properties defined in RootRoute from main part of object\n for (const property of RootRouteProperties) {\n delete (output as any)[property];\n }\n\n const newData: RootRouteData = {};\n Object.assign(newData, routeData);\n\n // remove any properties not defined in ParticipantRoute from data property of object\n for (const key in newData) {\n if (!RootRouteProperties.includes(key)) {\n delete (newData as any)[key];\n }\n }\n\n const newResolve: ResolveData = {};\n\n // automatically add the content resolver given the page content to load\n if (routeData.page) {\n newData.page = routeData.page;\n newResolve['content'] = (route: ActivatedRouteSnapshot) =>\n resolveContent(route);\n }\n\n copyDefaults(newData, {\n headerStyle: HeaderStyle.Standard,\n });\n\n output.data = {\n ...output.data,\n ...newData,\n };\n\n output.resolve = {\n ...output.resolve,\n ...newResolve,\n };\n\n return output;\n};\n\nexport const getCatchAllRoute = (routeData: Partial): Route => {\n const output: Route = {};\n Object.assign(output, routeData);\n\n // set the default path to the wildcard route\n output.path = '**';\n\n output.children = [];\n output.redirectTo = undefined;\n\n // automatically add the catch all guard\n output.canActivate = [\n ...(output.canActivate || []),\n (route: ActivatedRouteSnapshot) => handleCatchAllRoute(route),\n ];\n\n // set the redirectTo URL for use in the auth guard\n const newData: CatchAllRouteData = {\n redirectTo: routeData.redirectTo ?? '',\n };\n\n output.data = {\n ...output.data,\n ...newData,\n };\n\n return output;\n};\n\nconst handleCatchAllRoute = (\n route: ActivatedRouteSnapshot,\n): Observable => {\n // load up the redirect information from the standard routing\n const data: CatchAllRouteData = route.data as CatchAllRouteData;\n\n let redirectTo = data.redirectTo as string;\n if (redirectTo.includes(':')) {\n const redirectToSegments = redirectTo.split('/');\n for (let idx = redirectToSegments.length - 1; idx >= 0; idx--) {\n const segment = redirectToSegments[idx];\n if (segment.startsWith(':')) {\n const paramVal = route.paramMap?.get(segment.slice(1));\n if (paramVal != null) {\n redirectToSegments[idx] = paramVal;\n }\n }\n }\n\n redirectTo = redirectToSegments.join('/');\n }\n\n return of(inject(Router).parseUrl(redirectTo));\n};\n", "export const CONTENT_ROUTE_DATA = {\n CONTENT: {\n PATH: 'content/:contentId',\n PAGE: 'Content',\n },\n};\n"], "mappings": "4GAIO,IAAMA,EAAsB,CAAC,OAAQ,aAAa,EAyCzD,IAAYC,EAAZ,SAAYA,EAAW,CACnBA,OAAAA,EAAA,KAAA,OACAA,EAAA,SAAA,WACAA,EAAA,MAAA,QACAA,EAAA,QAAA,UACAA,EAAA,cAAA,gBALQA,CAMZ,EANYA,GAAW,CAAA,CAAA,EAQVC,EAAkB,CAC3BC,UAAW,IACXC,MAAO,CACHC,KAAM,QACNC,KAAM,QACNC,MAAO,4BAEXC,QAAS,CACLH,KAAM,GACNC,KAAM,WAEVG,cAAe,CACXJ,KAAM,kCACNC,KAAM,gBACNC,MAAO,oCAEXG,OAAQ,CACJL,KAAM,YCpDP,IAAMM,EAAyBC,GAAwC,CAC1E,IAAMC,EAAgB,CAAA,EACtBC,OAAOC,OAAOF,EAAQD,CAAS,EAG/B,QAAWI,KAAYC,EACnB,OAAQJ,EAAeG,CAAQ,EAGnC,IAAME,EAAyB,CAAA,EAC/BJ,OAAOC,OAAOG,EAASN,CAAS,EAGhC,QAAWO,KAAOD,EACTD,EAAoBG,SAASD,CAAG,GACjC,OAAQD,EAAgBC,CAAG,EAInC,IAAME,EAA0B,CAAA,EAGhC,OAAIT,EAAUU,OACVJ,EAAQI,KAAOV,EAAUU,KACzBD,EAAW,QAAcE,GACrBC,EAAeD,CAAK,GAG5BE,EAAaP,EAAS,CAClBQ,YAAaC,EAAYC,SAC5B,EAEDf,EAAOgB,KAAOC,IAAA,GACPjB,EAAOgB,MACPX,GAGPL,EAAOkB,QAAUD,IAAA,GACVjB,EAAOkB,SACPV,GAGAR,CACX,EAEamB,EAAoBpB,GAAoC,CACjE,IAAMC,EAAgB,CAAA,EACtBC,OAAOC,OAAOF,EAAQD,CAAS,EAG/BC,EAAOoB,KAAO,KAEdpB,EAAOqB,SAAW,CAAA,EAClBrB,EAAOsB,WAAaC,OAGpBvB,EAAOwB,YAAc,CACjB,GAAIxB,EAAOwB,aAAe,CAAA,EACzBd,GAAkCe,EAAoBf,CAAK,CAAC,EAIjE,IAAML,EAA6B,CAC/BiB,WAAYvB,EAAUuB,YAAc,IAGxCtB,OAAAA,EAAOgB,KAAOC,IAAA,GACPjB,EAAOgB,MACPX,GAGAL,CACX,EAEMyB,EACFf,GACqB,CAIrB,IAAIY,EAF4BZ,EAAMM,KAEhBM,WACtB,GAAIA,EAAWf,SAAS,GAAG,EAAG,CAC1B,IAAMmB,EAAqBJ,EAAWK,MAAM,GAAG,EAC/C,QAASC,EAAMF,EAAmBG,OAAS,EAAGD,GAAO,EAAGA,IAAO,CAC3D,IAAME,EAAUJ,EAAmBE,CAAG,EACtC,GAAIE,EAAQC,WAAW,GAAG,EAAG,CACzB,IAAMC,EAAWtB,EAAMuB,UAAUC,IAAIJ,EAAQK,MAAM,CAAC,CAAC,EACjDH,GAAY,OACZN,EAAmBE,CAAG,EAAII,EAElC,CACJ,CAEAV,EAAaI,EAAmBU,KAAK,GAAG,CAC5C,CAEA,OAAOC,EAAGC,EAAOC,CAAM,EAAEC,SAASlB,CAAU,CAAC,CACjD,ECnHO,IAAMmB,EAAqB,CAC9BC,QAAS,CACLC,KAAM,qBACNC,KAAM", "names": ["RootRouteProperties", "HeaderStyle", "ROOT_ROUTE_DATA", "BASE_PATH", "CUERA", "PATH", "PAGE", "TITLE", "LANDING", "PREENROLLMENT", "LOGOUT", "getRootComponentRoute", "routeData", "output", "Object", "assign", "property", "RootRouteProperties", "newData", "key", "includes", "newResolve", "page", "route", "resolveContent", "copyDefaults", "headerStyle", "HeaderStyle", "Standard", "data", "__spreadValues", "resolve", "getCatchAllRoute", "path", "children", "redirectTo", "undefined", "canActivate", "handleCatchAllRoute", "redirectToSegments", "split", "idx", "length", "segment", "startsWith", "paramVal", "paramMap", "get", "slice", "join", "of", "inject", "Router", "parseUrl", "CONTENT_ROUTE_DATA", "CONTENT", "PATH", "PAGE"] }