{ "version": 3, "sources": ["libs/universal/custom-rx-operators/src/lib/remove-null-values-from-object.ts", "libs/universal/custom-rx-operators/src/lib/filter-undefined-null.ts", "apps/toolkits-frontend/src/app/services/metadata.constants.ts", "apps/toolkits-frontend/src/app/services/metadata.service.ts"], "sourcesContent": ["import { Observable, map } from 'rxjs';\n\nexport function removeNullValuesFromObject() {\n return function f(source: Observable): Observable {\n return source.pipe(\n map((x) => {\n return Object.entries(x as Record).reduce(\n (a, [k, v]) => {\n return {\n ...a,\n [k]: v === null ? undefined : v,\n };\n },\n {} as T,\n );\n }),\n );\n };\n}\n", "import { Observable, filter } from 'rxjs';\n\ntype NonNullableType = T extends null | undefined ? never : T;\n\nexport function filterUndefined() {\n return function filterUndefinedPrime(\n source: Observable,\n ): Observable> {\n return source.pipe(\n filter((v): v is NonNullableType => typeof v !== 'undefined'),\n );\n };\n}\n\nexport function filterNull() {\n return function f(source: Observable): Observable> {\n return source.pipe(filter((v): v is NonNullableType => v !== null));\n };\n}\n\nexport function filterUndefinedNull() {\n return function f(source: Observable): Observable> {\n return source.pipe(\n filter(\n (v): v is NonNullableType => typeof v !== 'undefined' && v !== null,\n ),\n );\n };\n}\n", "import {\n DVH_TOOLKIT_CODE,\n FEX_TOOLKIT_CODE,\n HI_TOOLKIT_CODE,\n MEDSUPP_TOOLKIT_CODE,\n TERM_TOOLKIT_CODE,\n} from '@itk/types';\nimport { MenuItemConfig, Toolkit } from '../types';\n\nexport class ToolkitMetadata {\n public readonly toolkits: Toolkit[] = [\n {\n label: 'FEX',\n slug: '/fex',\n code: FEX_TOOLKIT_CODE,\n defaultTool: { label: 'Quoter', slug: '/fex/quoter' },\n tools: [\n { label: 'Quoter', slug: '/fex/quoter' },\n { label: 'Quote Compare', slug: '/fex/compare' },\n { label: 'Quick Quoter', slug: '/fex/quick' },\n { label: 'Drug Lookup', slug: '/fex/druglookup' },\n { label: 'Health Cheat Sheet', slug: '/fex/cheatsheet' },\n ],\n },\n {\n label: 'Term',\n slug: '/term',\n code: TERM_TOOLKIT_CODE,\n defaultTool: { label: 'Quoter', slug: '/term/quoter' },\n tools: [\n { label: 'Quoter', slug: '/term/quoter' },\n { label: 'Quote Compare', slug: '/term/compare' },\n { label: 'Quick Quoter', slug: '/term/quick' },\n { label: 'Drug Lookup', slug: '/term/druglookup' },\n { label: 'Health Cheat Sheet', slug: '/term/cheatsheet' },\n ],\n },\n {\n label: 'Med Supp',\n defaultTool: { label: 'Quoter', slug: '/medsupp/quoter' },\n tools: [\n { label: 'Quoter', slug: '/medsupp/quoter' },\n { label: 'Quote Compare', slug: '/medsupp/compare' },\n { label: 'Quick Quoter', slug: '/medsupp/quick' },\n { label: 'Drug Lookup', slug: '/medsupp/druglookup' },\n { label: 'Health Cheat Sheet', slug: '/medsupp/cheatsheet' },\n ],\n slug: '/medsupp',\n code: MEDSUPP_TOOLKIT_CODE,\n },\n {\n label: 'DVH',\n slug: '/dvh',\n code: DVH_TOOLKIT_CODE,\n defaultTool: { label: 'Quoter', slug: '/dvh/quoter' },\n tools: [\n { label: 'Quoter', slug: '/dvh/quoter' },\n { label: 'Quote Compare', slug: '/dvh/compare' },\n ],\n },\n {\n label: 'Hospital Indemnity',\n slug: '/hi',\n code: HI_TOOLKIT_CODE,\n defaultTool: { label: 'Quoter', slug: '/hi/quoter' },\n tools: [{ label: 'Quoter', slug: '/hi/quoter' }],\n },\n ];\n\n public get topNavigationMenuItems(): MenuItemConfig[] {\n return [\n {\n label: 'Account',\n slug: '/account/info',\n },\n {\n label: 'Leads',\n slug: '/leads',\n },\n // {\n // label: 'PocketUpline',\n // slug: 'upline',\n // isAngular: true,\n // },\n {\n label: 'CRM',\n slug: '/crm',\n isLegacy: true,\n },\n {\n label: 'Logout',\n slug: '/logout',\n isLegacy: true,\n },\n ];\n }\n\n public navigationMenuItems(currentToolkit: Toolkit): MenuItemConfig[] {\n const toolSlug = currentToolkit.slug;\n return [\n {\n label: 'Customize Carriers',\n slug: `${toolSlug}/settings/customization`,\n },\n {\n label: 'Settings',\n slug: `${toolSlug}/settings`,\n },\n {\n label: 'Subscription',\n slug: '/account/subscription',\n },\n {\n label: 'Account Information',\n slug: '/account/info',\n },\n {\n label: 'Agents',\n slug: '/account/agents',\n },\n {\n label: 'Leads',\n slug: '/leads',\n },\n {\n label: 'Manage Funds',\n slug: '/leads/funds',\n },\n {\n label: 'Leads Marketplace',\n slug: '/leads/marketplace',\n },\n {\n label: 'CRM',\n slug: '/crm',\n isLegacy: true,\n },\n {\n label: 'Logout',\n slug: '/logout',\n isLegacy: true,\n },\n ];\n }\n\n findToolkitFromSlug(slug: string): Toolkit | undefined {\n return this.toolkits.find(\n (toolkit) => toolkit.slug.toUpperCase() === slug.toUpperCase(),\n );\n }\n\n public get firstToolkit(): Toolkit | undefined {\n return this.toolkits[0];\n }\n}\n\nexport const defaultMetadata = new ToolkitMetadata();\n", "import { Injectable } from '@angular/core';\nimport {\n Observable,\n ReplaySubject,\n Subject,\n combineLatestWith,\n concat,\n distinctUntilChanged,\n map,\n shareReplay,\n startWith,\n takeUntil,\n} from 'rxjs';\nimport { filterUndefined } from '@itk/custom-rx-operators';\n\nimport { MenuItemConfig } from '../types';\nimport { defaultMetadata, ToolkitMetadata } from './metadata.constants';\n\n@Injectable({ providedIn: 'root' })\nexport class ToolkitMetadataService {\n public readonly metadata$ = new Subject().pipe(\n startWith(defaultMetadata),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n public readonly toolkitGuardSink$ = new ReplaySubject(1);\n\n public readonly topNavigationMenuItems$ = this.metadata$.pipe(\n map((metadata) => metadata.topNavigationMenuItems),\n );\n\n private readonly toolkitFromGuard$ = this.metadata$.pipe(\n combineLatestWith(this.toolkitGuardSink$),\n map(([data, slug]) => data.findToolkitFromSlug(slug)),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n private readonly firstToolkitFromMetadata$ = this.metadata$.pipe(\n map((metadata) => metadata.firstToolkit),\n );\n\n public readonly currentToolkit$ = concat(\n this.firstToolkitFromMetadata$.pipe(takeUntil(this.toolkitFromGuard$)),\n this.toolkitFromGuard$,\n ).pipe(\n distinctUntilChanged(),\n filterUndefined(),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n public navigationMenuItems$: Observable =\n this.metadata$.pipe(\n combineLatestWith(this.currentToolkit$),\n map(([metadata, toolkit]) => metadata.navigationMenuItems(toolkit)),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n allToolkitSlugs$: Observable = this.metadata$.pipe(\n map((metadata) => metadata.toolkits),\n map((toolkits) => toolkits.map((toolkit) => toolkit.slug)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n}\n"], "mappings": "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", "names": ["removeNullValuesFromObject", "source", "pipe", "map", "x", "Object", "entries", "reduce", "a", "k", "v", "__spreadProps", "__spreadValues", "undefined", "filterUndefined", "source", "pipe", "filter", "v", "ToolkitMetadata", "constructor", "toolkits", "label", "slug", "code", "FEX_TOOLKIT_CODE", "defaultTool", "tools", "TERM_TOOLKIT_CODE", "MEDSUPP_TOOLKIT_CODE", "DVH_TOOLKIT_CODE", "HI_TOOLKIT_CODE", "topNavigationMenuItems", "isLegacy", "navigationMenuItems", "currentToolkit", "toolSlug", "findToolkitFromSlug", "find", "toolkit", "toUpperCase", "firstToolkit", "defaultMetadata", "ToolkitMetadataService", "constructor", "metadata$", "Subject", "pipe", "startWith", "defaultMetadata", "shareReplay", "bufferSize", "refCount", "toolkitGuardSink$", "ReplaySubject", "topNavigationMenuItems$", "map", "metadata", "topNavigationMenuItems", "toolkitFromGuard$", "combineLatestWith", "data", "slug", "findToolkitFromSlug", "firstToolkitFromMetadata$", "firstToolkit", "currentToolkit$", "concat", "takeUntil", "distinctUntilChanged", "filterUndefined", "navigationMenuItems$", "toolkit", "navigationMenuItems", "allToolkitSlugs$", "toolkits", "factory", "\u0275fac", "providedIn", "_ToolkitMetadataService"] }