{"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 { 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 { WA_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: [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(WA_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","@if (!isExternalLink) {\n  <a\n    [class]=\"classes\"\n    [routerLink]=\"path\"\n    [fragment]=\"fragment ? (fragment | decodeUriComponent) : undefined\"\n    [queryParams]=\"queryParams\">\n    <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n  </a>\n}\n\n@if (isExternalLink) {\n  <a [class]=\"classes\" [href]=\"path\" target=\"_blank\">\n    <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n    @if (!isInCode) {\n      <ng-doc-icon icon=\"external-link\"></ng-doc-icon>\n    }\n  </a>\n}\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":";;;;;;;;MAsBa,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QASE,IAAA,CAAA,IAAI,GAAW,EAAE;QAGjB,IAAA,CAAA,OAAO,GAAW,EAAE;QAEV,IAAA,CAAA,QAAQ,GAAY,KAAK;AAIlB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAC9B,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,UAAU,CAAC;AAyB1E,IAAA;IAvBC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI;IACxE;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACtD;AAEA,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;IACnD;AAEA,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,EAAE;IACvE;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,SAAS;IACvD;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACpE;8GApCW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBnC,klBAsBA,EAAA,MAAA,EAAA,CAAA,iIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFY,UAAU,oOAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,2BAA2B,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE5E,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,2BAA2B,CAAC,EAAA,QAAA,EAAA,klBAAA,EAAA,MAAA,EAAA,CAAA,iIAAA,CAAA,EAAA;;sBAGvF,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBAGxB;;;AE1BH;;AAEG;;;;"}