{"version":3,"file":"ng-doc-app-components-page-link.mjs","sources":["../../../../libs/app/components/page-link/page-link.component.ts","../../../../libs/app/components/page-link/page-link.component.html","../../../../libs/app/components/page-link/ng-doc-app-components-page-link.ts"],"sourcesContent":["import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  inject,\n  Input,\n  OnChanges,\n  OnInit,\n} from '@angular/core';\nimport { Params, RouterLink } from '@angular/router';\nimport { NgDocDecodeUriComponentPipe } from '@ng-doc/app/pipes';\nimport { NgDocIconComponent } from '@ng-doc/ui-kit';\nimport { LOCATION } from '@ng-web-apis/common';\n\n@Component({\n  selector: 'ng-doc-page-link',\n  templateUrl: './page-link.component.html',\n  styleUrls: ['./page-link.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgIf, RouterLink, NgTemplateOutlet, NgDocIconComponent, NgDocDecodeUriComponentPipe],\n})\nexport class NgDocPageLinkComponent implements OnInit, OnChanges {\n  @Input({ required: true })\n  href: string = '';\n\n  @Input()\n  classes: string = '';\n\n  protected isInCode: boolean = false;\n\n  private link: URL | undefined;\n\n  private readonly location = inject(LOCATION);\n  private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n  ngOnInit(): void {\n    this.isInCode = this.elementRef.nativeElement.closest('code') !== null;\n  }\n\n  ngOnChanges(): void {\n    this.link = new URL(this.href, this.location.origin);\n  }\n\n  get isExternalLink(): boolean {\n    return this.link?.origin !== this.location.origin;\n  }\n\n  get path(): string {\n    return (!this.isExternalLink ? this.link?.pathname : this.href) ?? '';\n  }\n\n  get fragment(): string | undefined {\n    return this.link?.hash.replace(/^#/, '') || undefined;\n  }\n\n  get queryParams(): Params {\n    return Object.fromEntries(this.link?.searchParams.entries() ?? []);\n  }\n}\n","<a\n  [class]=\"classes\"\n  [routerLink]=\"path\"\n  [fragment]=\"fragment ? (fragment | decodeUriComponent) : undefined\"\n  [queryParams]=\"queryParams\"\n  *ngIf=\"!isExternalLink\">\n  <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a [class]=\"classes\" [href]=\"path\" *ngIf=\"isExternalLink\" target=\"_blank\">\n  <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n  <ng-doc-icon icon=\"external-link\" *ngIf=\"!isInCode\"></ng-doc-icon>\n</a>\n\n<ng-template #content>\n  <ng-content></ng-content>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}