{
"version": 3,
"sources": ["src/app/shared/link/link.component.ts", "src/app/shared/link/link.component.html"],
"sourcesContent": ["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport {\n IsActiveMatchOptions,\n NavigationEnd,\n Router,\n RouterModule,\n} from '@angular/router';\nimport { EnvironmentService } from '@core/services/environment.service';\nimport { QuicklinkModule } from 'ngx-quicklink';\nimport { Subject, filter, takeUntil } from 'rxjs';\n\nconst CURRENT_DOMAIN_NAME = 'followalice.com';\n\n@Component({\n selector: 'app-link',\n templateUrl: './link.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, RouterModule, QuicklinkModule],\n host: { ngSkipHydration: 'true' },\n})\nexport class LinkComponent implements OnInit, OnChanges, OnDestroy {\n @Input() link: string;\n @Input() title: string;\n @Input() additionalClasses: string[] | string;\n @Input() routerLinkActive: string[] | string = '';\n @Input() routerLinkInActive: string[] | string = '';\n @Input() options: IsActiveMatchOptions = {\n fragment: 'ignored',\n matrixParams: 'ignored',\n paths: 'subset',\n queryParams: 'subset',\n };\n useRouterLink = false;\n externalLink = false;\n classes: string[] = [];\n\n isActive: boolean;\n destroy = new Subject();\n\n constructor(\n private environmentService: EnvironmentService,\n private router: Router,\n private cd: ChangeDetectorRef\n ) {\n this.router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n takeUntil(this.destroy)\n )\n .subscribe(() => {\n this.setLinkActive();\n });\n }\n\n ngOnInit() {\n this.isActive = this.router.isActive(this.link, this.options);\n this.cd.detectChanges();\n }\n\n setLinkActive() {\n this.isActive = this.router.isActive(this.link, this.options);\n this.classes = [\n ...this.prepareForClassMerging(this.additionalClasses),\n ...(this.isActive\n ? this.prepareForClassMerging(this.routerLinkActive)\n : this.prepareForClassMerging(this.routerLinkInActive)),\n ];\n this.cd.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.link ||\n changes.routerLinkActive ||\n changes.routerLinkInActive ||\n changes.options ||\n changes.additionalClasses ||\n changes.isActive\n ) {\n this.setLinkActive();\n }\n\n if (changes.link && changes.link.currentValue) {\n let link = changes.link.currentValue;\n const baseURL = this.environmentService.getBaseLink();\n\n if (link.startsWith('www')) {\n link = `https://${link}`;\n }\n try {\n const urlObjectCurrent = new URL(baseURL);\n const urlObjectFromContentful = new URL(link, urlObjectCurrent);\n if (\n urlObjectFromContentful.hostname.includes(\n CURRENT_DOMAIN_NAME\n )\n ) {\n // if the hostname of a link includes followalice then it is a relative link\n this.link = urlObjectFromContentful.pathname;\n\n this.useRouterLink = true;\n } else if (\n urlObjectFromContentful.origin !== urlObjectCurrent.origin\n ) {\n // if the origin of both the links are different then it is an external link\n this.externalLink = true;\n this.link = link;\n } else {\n // if the origin of both the links are same then it is a relative link\n\n this.useRouterLink = true;\n }\n } catch (e) {\n // if the link is invalid then treat it as an external link\n this.externalLink = true;\n this.link = link;\n }\n\n this.cd.detectChanges();\n }\n }\n\n prepareForClassMerging(input: string[] | string): string[] {\n if (input === undefined || input === null) {\n return [];\n } else if (typeof input === 'string') {\n return input.split(' ');\n } else {\n return input.map(cssClass => cssClass.split(' ')).flat();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy.next(null);\n }\n}\n", "\n \n\n\n@if (useRouterLink) {\n \n \n \n} @else {\n \n \n \n}\n"],
"mappings": "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",
"names": ["\u0275\u0275projection", "\u0275\u0275elementContainer", "\u0275\u0275elementStart", "\u0275\u0275template", "LinkComponent_Conditional_2_ng_container_1_Template", "\u0275\u0275elementEnd", "\u0275\u0275property", "\u0275\u0275pureFunction1", "_c1", "ctx_r0", "link", "classes", "\u0275\u0275advance", "content_r2", "LinkComponent_Conditional_3_ng_container_1_Template", "\u0275\u0275sanitizeUrl", "externalLink", "CURRENT_DOMAIN_NAME", "LinkComponent", "constructor", "environmentService", "router", "cd", "routerLinkActive", "routerLinkInActive", "options", "fragment", "matrixParams", "paths", "queryParams", "useRouterLink", "destroy", "Subject", "events", "pipe", "filter", "event", "NavigationEnd", "takeUntil", "subscribe", "setLinkActive", "ngOnInit", "isActive", "detectChanges", "prepareForClassMerging", "additionalClasses", "ngOnChanges", "changes", "currentValue", "baseURL", "getBaseLink", "startsWith", "urlObjectCurrent", "URL", "urlObjectFromContentful", "hostname", "includes", "pathname", "origin", "input", "split", "map", "cssClass", "flat", "ngOnDestroy", "next", "\u0275\u0275directiveInject", "EnvironmentService", "Router", "ChangeDetectorRef", "selectors", "hostAttrs", "inputs", "title", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "\u0275\u0275StandaloneFeature", "ngContentSelectors", "_c0", "decls", "vars", "consts", "template", "rf", "ctx", "LinkComponent_ng_template_0_Template", "\u0275\u0275templateRefExtractor", "LinkComponent_Conditional_2_Template", "LinkComponent_Conditional_3_Template", "\u0275\u0275conditional", "CommonModule", "NgClass", "NgTemplateOutlet", "RouterModule", "RouterLink", "QuicklinkModule", "QuicklinkDirective", "encapsulation", "changeDetection"]
}