{"version":3,"file":"fundamental-ngx-core-object-marker.mjs","sources":["../../../../libs/core/object-marker/object-marker.component.ts","../../../../libs/core/object-marker/object-marker.component.html","../../../../libs/core/object-marker/object-marker.module.ts","../../../../libs/core/object-marker/fundamental-ngx-core-object-marker.ts"],"sourcesContent":["import {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    ElementRef,\n    inject,\n    input,\n    ViewEncapsulation\n} from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { resolveTranslationSignal } from '@fundamental-ngx/i18n';\n\nlet objectMarkerId = 0;\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[fd-object-marker]',\n    templateUrl: './object-marker.component.html',\n    styleUrl: './object-marker.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'fd-object-marker',\n        '[class.fd-object-marker--link]': 'clickable()',\n        '[attr.id]': 'id()',\n        '[attr.tabindex]': 'clickable() ? 0 : -1',\n        '[attr.role]': 'role()',\n        '[attr.aria-labelledby]': 'computedAriaLabelledBy()'\n    },\n    imports: [IconComponent]\n})\nexport class ObjectMarkerComponent implements HasElementRef {\n    /**\n     * Object Marker ID\n     * If not set, a default value is provided\n     */\n    readonly id = input('fd-object-marker-' + ++objectMarkerId);\n\n    /** Sets aria-labelledby attribute for object marker */\n    readonly ariaLabelledBy = input<string>();\n\n    /** Status text for the Object Status. */\n    readonly statusText = input<string>();\n\n    /** Glyph (icon) of the Object Status.*/\n    readonly glyph = input<string>();\n\n    /** Glyph font family */\n    readonly glyphFont = input<IconFont>(FD_DEFAULT_ICON_FONT_FAMILY);\n\n    /** Whether the Object Status is clickable. */\n    readonly clickable = input(false);\n\n    /** Define the text content of the Object Status */\n    readonly label = input<string>();\n\n    /** Title attribute for the Object Status */\n    readonly title = input<string>();\n\n    /** @hidden */\n    readonly elementRef = inject(ElementRef);\n\n    /** Computed ID for the screen-reader only element */\n    protected readonly srOnlyId = computed(() => `${this.id()}-sr-only`);\n\n    /** Computed ID for the label element */\n    protected readonly labelId = computed(() => `${this.id()}-label`);\n\n    /** Computed ID for the screen-reader only element for icon-only object marker */\n    protected readonly srOnlyIconOnlyId = computed(() => `${this.id()}-sr-only-icon-only`);\n\n    /** @hidden Role attribute for the object marker */\n    protected readonly role = computed(() =>\n        this.clickable() ? 'link' : this.glyph() && !this.label() ? 'img' : undefined\n    );\n\n    /** @hidden Role attribute for the icon */\n    protected readonly iconRole = computed(() => (this.label() ? 'presentation' : undefined));\n\n    /** @hidden Computed status text (uses custom or default) */\n    protected readonly statusText$ = computed(() => this.statusText() ?? this._defaultStatusText());\n\n    /** @hidden Computed title for icon (only when no label exists) */\n    protected readonly iconTitle = computed(() => {\n        if (!this.glyph() || this.label()) {\n            return undefined;\n        }\n        return this.title() ?? this.glyph();\n    });\n\n    /** @hidden Computed aria-labelledby attribute */\n    protected readonly computedAriaLabelledBy = computed(() => {\n        if (this.ariaLabelledBy()) {\n            return this.ariaLabelledBy();\n        }\n\n        if (this.glyph() && !this.label()) {\n            return `${this.srOnlyId()} ${this.srOnlyIconOnlyId()}`;\n        }\n\n        return `${this.srOnlyId()} ${this.labelId()}`;\n    });\n\n    /** @hidden Translation signal for active state */\n    private readonly _activeStatusText = resolveTranslationSignal('coreObjectMarker.active');\n\n    /** @hidden Translation signal for inactive state */\n    private readonly _inactiveStatusText = resolveTranslationSignal('coreObjectMarker.inactive');\n\n    /** @hidden Default status text for the Object Marker. */\n    private readonly _defaultStatusText = computed(() =>\n        this.clickable() ? this._activeStatusText() : this._inactiveStatusText()\n    );\n}\n","<span class=\"fd-object-marker__sr-only\" [id]=\"srOnlyId()\" [attr.aria-hidden]=\"true\">{{ statusText$() }}</span>\n\n@if (glyph()) {\n    <fd-icon\n        [glyph]=\"glyph()\"\n        [font]=\"glyphFont()\"\n        class=\"fd-object-marker__icon\"\n        [attr.role]=\"iconRole()\"\n        [attr.title]=\"iconTitle()\"\n        [ariaHidden]=\"true\"\n    ></fd-icon>\n}\n@if (label()) {\n    <span class=\"fd-object-marker__text\" [id]=\"labelId()\">{{ label() }}</span>\n}\n\n@if (glyph() && !label()) {\n    <span class=\"fd-object-marker__sr-only\" [id]=\"srOnlyIconOnlyId()\" [attr.aria-hidden]=\"true\">{{ iconTitle() }}</span>\n}\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { ObjectMarkerComponent } from './object-marker.component';\n\n/**\n * @deprecated\n * Use direct import of `ObjectMarkerComponent`\n */\n@NgModule({\n    imports: [ObjectMarkerComponent],\n    exports: [ObjectMarkerComponent]\n})\nexport class ObjectMarkerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}