{"version":3,"file":"fundamental-ngx-platform-link.mjs","sources":["../../../../libs/platform/link/link.component.ts","../../../../libs/platform/link/link.component.html","../../../../libs/platform/link/link.module.ts","../../../../libs/platform/link/fundamental-ngx-platform-link.ts"],"sourcesContent":["import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnInit,\n    Output,\n    Renderer2,\n    ViewChild,\n    ViewEncapsulation,\n    booleanAttribute\n} from '@angular/core';\n\nimport { Nullable, warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { FD_ICON_COMPONENT, IconComponent } from '@fundamental-ngx/core/icon';\nimport { LinkComponent as CoreLinkComponent } from '@fundamental-ngx/core/link';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { BaseComponent } from '@fundamental-ngx/platform/shared';\n\nexport type LinkType = 'standard' | 'emphasized' | 'subtle';\nexport type NavigationTarget = '_blank' | '_self' | '_parent' | '_top' | 'framename';\nconst VALID_INPUT_TYPES = ['standard', 'emphasized', 'subtle'];\n\n/**\n * @deprecated\n * Link component is deprecated. Use `fd-link` from `@fundamental-ngx/core/link` instead.\n */\n@Component({\n    selector: 'fdp-link',\n    templateUrl: './link.component.html',\n    styleUrl: './link.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    imports: [CoreLinkComponent, FdTranslatePipe]\n})\nexport class LinkComponent extends BaseComponent implements OnInit, AfterViewInit {\n    /**\n     * href value to Navigate to. sets href to Native anchor.\n     */\n    @Input()\n    href: Nullable<string>;\n\n    /**\n     * target where navigation will happen, Default=same frame\n     * sets target to Native anchor.\n     */\n    @Input()\n    target?: NavigationTarget;\n\n    /** linktype of link, options standard or Emphasized, Default=standard */\n    @Input()\n    linkType?: LinkType = 'standard';\n\n    /**\n     * type of link. possible values text|application|audio|font|example|image|message|model|multipart|video.\n     * sets type to Native anchor.\n     */\n    @Input()\n    type = 'text';\n\n    /**\n     * sets inverted property.\n     */\n    @Input({ transform: booleanAttribute })\n    inverted = false;\n\n    /**\n     * Tooltip text to show when focused for more than  timeout value\n     * sets title to Native anchor.\n     * */\n    @Input()\n    title?: string;\n\n    /**\n     * Specifies the language of the linked document.\n     * sets language to Native anchor.\n     */\n    @Input()\n    hreflang?: string;\n\n    /** Specifies that the target will be downloaded when a user clicks on the hyperlink\n     * sets download property to Native anchor.\n     */\n    @Input()\n    download?: string;\n\n    /** Specifies what media/device the linked document is optimized for\n     * sets media property to Native anchor.\n     */\n    @Input()\n    media?: string;\n\n    /** Specifies the relationship between the current document and the linked document\n     * sets relation property to Native anchor.\n     */\n    @Input()\n    rel?: string;\n\n    /**\n     * If text is overlapping. By setting truncate to true, overlapping can be hidden with using ellipsis\n     */\n    @Input()\n    truncate = false;\n\n    /** Emitting link click event */\n    @Output()\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    click: EventEmitter<MouseEvent | KeyboardEvent | TouchEvent> = new EventEmitter();\n\n    /** @hidden */\n    @ContentChild(FD_ICON_COMPONENT)\n    icon: IconComponent;\n\n    /** Access child element, for checking link content*/\n    @ViewChild('link', { read: ElementRef })\n    anchor: ElementRef;\n\n    /** @hidden */\n    emphasized = false;\n    /** @hidden */\n    subtle = false;\n\n    /** @hidden */\n    constructor(private renderer2: Renderer2) {\n        super();\n        warnOnce(`LinkComponent is deprecated. Use 'fd-link' from '@fundamental-ngx/core/link' instead.`);\n    }\n\n    /** @hidden */\n    ngOnInit(): void {\n        /* if link disabled, for Avoiding tab focus and click. marking href undefined. */\n        if (this.disabled) {\n            this.href = null;\n        }\n\n        /* If link linkType===emphasized then make link emphasized type */\n        this.emphasized = this.linkType === VALID_INPUT_TYPES[1];\n        this.subtle = this.linkType === VALID_INPUT_TYPES[2];\n\n        /* if link type not supported, throw Error */\n        if (this.linkType && VALID_INPUT_TYPES.indexOf(this.linkType) === -1) {\n            throw new Error(`fdp-link type ${this.linkType} is not supported`);\n        }\n    }\n\n    /** @hidden Throw error for blank text/icon link */\n    ngAfterViewInit(): void {\n        if (!this.anchor.nativeElement.innerHTML) {\n            throw new Error('Mandatory text/icon for fdp-link missing');\n        }\n    }\n\n    /**\n     * Puts underline on Icon\n     * @param event {MouseEvent}\n     */\n    onMouseEnter(event: MouseEvent): void {\n        event.stopPropagation();\n        if (this.icon) {\n            this.renderer2.setStyle(this.icon.elementRef.nativeElement, 'text-decoration', 'underline');\n        }\n    }\n\n    /**\n     * Removes underline on Icon\n     * @param event {MouseEvent}\n     */\n    onMouseLeave(event: MouseEvent): void {\n        event.stopPropagation();\n        if (this.icon) {\n            this.renderer2.setStyle(this.icon.elementRef.nativeElement, 'text-decoration', 'none');\n        }\n    }\n\n    /** raising click event */\n    public clicked(event: MouseEvent | KeyboardEvent | TouchEvent): void {\n        event.stopPropagation();\n        this.click.emit(event);\n    }\n}\n","<a\n    #link\n    fd-link\n    [class.fdp-link--truncate-txt]=\"truncate\"\n    [attr.id]=\"id\"\n    [attr.href]=\"href\"\n    [attr.target]=\"target\"\n    [disabled]=\"disabled\"\n    [emphasized]=\"emphasized\"\n    [subtle]=\"subtle\"\n    [inverted]=\"inverted\"\n    [attr.title]=\"title\"\n    [attr.type]=\"type\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledBy\"\n    [attr.aria-disabled]=\"disabled\"\n    [attr.hreflang]=\"hreflang\"\n    [attr.download]=\"download\"\n    [attr.media]=\"media\"\n    [attr.rel]=\"rel\"\n    (mouseenter)=\"onMouseEnter($event)\"\n    (mouseleave)=\"onMouseLeave($event)\"\n    (click)=\"clicked($event)\"\n    [attr.aria-roledescription]=\"\n        media ? ($any('platformLink.roleDescriptionWithMedia') | fdTranslate: { media: media })() : null\n    \"\n>\n    <ng-content></ng-content>\n</a>\n","import { NgModule } from '@angular/core';\n\nimport { LinkComponent } from './link.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [LinkComponent],\n    exports: [LinkComponent]\n})\nexport class PlatformLinkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["CoreLinkComponent"],"mappings":"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"}