{"version":3,"file":"fundamental-ngx-core-object-identifier.mjs","sources":["../../../../libs/core/object-identifier/object-identifier.component.ts","../../../../libs/core/object-identifier/object-identifier.module.ts","../../../../libs/core/object-identifier/fundamental-ngx-core-object-identifier.ts"],"sourcesContent":["import {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    ViewEncapsulation,\n    booleanAttribute,\n    computed,\n    contentChildren,\n    effect,\n    input\n} from '@angular/core';\nimport { FD_LINK_COMPONENT } from '@fundamental-ngx/core/link';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\nlet objectIdentifierId = 0;\n\n@Component({\n    selector: 'fd-object-identifier',\n    template: `\n        <p class=\"fd-object-identifier__title\" [class.fd-object-identifier__title--bold]=\"bold()\" [attr.id]=\"titleId()\">\n            <ng-content></ng-content>\n        </p>\n        @if (description()) {\n            <p class=\"fd-object-identifier__text\" [attr.id]=\"textId()\">\n                {{ description() }}\n            </p>\n        }\n        <span\n            class=\"fd-object-identifier__sr-only\"\n            [attr.id]=\"descriptionId()\"\n            [attr.aria-hidden]=\"hasLinks() ? 'true' : null\"\n        >\n            {{ ariaLabel() || ('coreObjectIdentifier.srOnlyAriaLabel' | fdTranslate)() }}\n        </span>\n    `,\n    styleUrl: './object-identifier.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [FdTranslatePipe],\n    host: {\n        class: 'fd-object-identifier',\n        '[attr.id]': 'id()',\n        '[class.fd-object-identifier--medium]': 'medium()'\n    }\n})\nexport class ObjectIdentifierComponent {\n    /**\n     * Object Identifier ID\n     * If not set, a default value is provided\n     */\n    readonly id = input('fd-object-identifier-' + ++objectIdentifierId);\n\n    /**\n     * Optional description text to display below the title.\n     * When provided, renders as a paragraph with the class `fd-object-identifier__text`.\n     */\n    readonly description = input<string>();\n\n    /**\n     * Accessible label for screen readers.\n     * Used in the screen-reader-only span element to provide context for assistive technologies.\n     */\n    readonly ariaLabel = input<string>();\n\n    /**\n     * Whether to apply bold styling to the title.\n     * When true, adds the `fd-object-identifier__title--bold` class to the title element.\n     * @default false\n     */\n    readonly bold = input(false, { transform: booleanAttribute });\n\n    /**\n     * Whether to apply medium sizing to the component.\n     * When true, adds the `fd-object-identifier--medium` class to the host element.\n     * @default false\n     */\n    readonly medium = input(false, { transform: booleanAttribute });\n\n    /** Computed ID for the description text element */\n    protected readonly textId = computed(() => `${this.id()}-text`);\n\n    /** Computed ID for the title element */\n    protected readonly titleId = computed(() => `${this.id()}-title`);\n\n    /** Computed ID for the screen-reader only description element */\n    protected readonly descriptionId = computed(() => `${this.id()}-description`);\n\n    /** Whether any link components are projected via content projection */\n    protected readonly hasLinks = computed(() => this._linkComponents().length > 0);\n\n    /** Query for all projected link components to apply identifier-specific styling and ARIA attributes */\n    private readonly _linkComponents = contentChildren(FD_LINK_COMPONENT, { read: ElementRef });\n\n    /** @hidden */\n    constructor() {\n        effect(() => {\n            this._applyLinkAttributes();\n        });\n    }\n\n    /** Applies identifier-specific CSS class and ARIA attributes to all link components */\n    private _applyLinkAttributes(): void {\n        const ariaLabelledBy = this.description() ? `${this.descriptionId()} ${this.textId()}` : this.descriptionId();\n\n        this._linkComponents().forEach((link) => {\n            link.nativeElement.classList.add('fd-object-identifier__link');\n            link.nativeElement.setAttribute('aria-labelledby', ariaLabelledBy);\n        });\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { ObjectIdentifierComponent } from './object-identifier.component';\n\n/**\n * @deprecated\n * Use direct import of `ObjectIdentifierComponent`.\n */\n@NgModule({\n    imports: [ObjectIdentifierComponent],\n    exports: [ObjectIdentifierComponent]\n})\nexport class ObjectIdentifierModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}