{"version":3,"file":"fundamental-ngx-core-object-status.mjs","sources":["../../../../libs/core/object-status/tokens.ts","../../../../libs/core/object-status/object-status.component.ts","../../../../libs/core/object-status/object-status.component.html","../../../../libs/core/object-status/object-status.module.ts","../../../../libs/core/object-status/fundamental-ngx-core-object-status.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_OBJECT_STATUS_COMPONENT = new InjectionToken('FdObjectStatusComponent');\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    ElementRef,\n    inject,\n    input,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { ColorAccent, HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { FdLanguageKeyIdentifier, FdTranslatePipe, resolveTranslationSignal } from '@fundamental-ngx/i18n';\nimport { FD_OBJECT_STATUS_COMPONENT } from './tokens';\n\nexport type ObjectStatus = 'negative' | 'critical' | 'positive' | 'informative' | 'neutral';\n\nexport const OBJECT_STATUS_CLASS_NAME = 'fd-object-status';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[fd-object-status]',\n    templateUrl: 'object-status.component.html',\n    styleUrl: './object-status.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        {\n            provide: FD_OBJECT_STATUS_COMPONENT,\n            useExisting: ObjectStatusComponent\n        }\n    ],\n    host: {\n        '[attr.tabindex]': 'clickable() ? 0 : null',\n        '[attr.role]': 'clickable() ? \"button\" : null',\n        '[attr.aria-roledescription]': 'clickable() ? _ariaRoleDescription() : null',\n        '[class]': '_cssClass()'\n    },\n    imports: [IconComponent, NgTemplateOutlet, FdTranslatePipe]\n})\nexport class ObjectStatusComponent implements HasElementRef {\n    /** @hidden */\n    _textClass: string;\n\n    /** @hidden Element reference */\n    public readonly elementRef = inject(ElementRef);\n\n    /**\n     * The status represented by the Object Status.\n     * Can be one of the following: 'negative' | 'critical' | 'positive' | 'informative'\n     * For default Object Status omit this property\n     */\n    readonly status = input<Nullable<ObjectStatus>>();\n\n    /** An optional status message for the Object Status. */\n    readonly statusMessage = input<Nullable<string>>(null);\n\n    /**\n     * Glyph (icon) of the Object Status.\n     */\n    readonly glyph = input<Nullable<string>>();\n\n    /** Glyph font family */\n    readonly glyphFont = input<IconFont>(FD_DEFAULT_ICON_FONT_FAMILY);\n\n    /** Define the text content of the Object Status */\n    readonly label = input<Nullable<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     * Label applied to glyph element, should be used when there is no text included\n     */\n    readonly glyphAriaLabel = input<string>();\n\n    /**\n     * A number representing the indication color.\n     * For non-inverted state available numbers are from 1 to 8.\n     * For inverted state available numbers are from 1 to 10.\n     */\n    readonly indicationColor = input<Nullable<ColorAccent>>();\n\n    /** Whether the Object Status is clickable. */\n    readonly clickable = input(false, { transform: booleanAttribute });\n\n    /** Whether the Object Status is inverted. */\n    readonly inverted = input(false, { transform: booleanAttribute });\n\n    /** Whether the Object Status is in Large Design. */\n    readonly large = input(false, { transform: booleanAttribute });\n\n    /** Whether to use secondary set of indication colors. */\n    readonly secondaryIndication = input(false, { transform: booleanAttribute });\n\n    /**\n     * Template reference for complex object status texts.\n     */\n    readonly textTemplate = input<Nullable<TemplateRef<any>>>();\n\n    /** Aria role description for the object status. */\n    readonly ariaRoleDescription = input<string>();\n\n    /** @hidden */\n    protected readonly _ariaRoleDescription = computed(\n        () => this.ariaRoleDescription() || this.defaultAriaRoleDescription()\n    );\n\n    /** @hidden */\n    protected readonly indicationColorCode = computed<string>(\n        () => ` ${this.indicationColor() ?? ''}${this.secondaryIndication() ? 'b' : ''}`\n    );\n\n    /** @hidden */\n    protected readonly statusTranslateKey = computed<FdLanguageKeyIdentifier | null>(() => {\n        const status = this.status();\n        if (this.isValidObjectStatus(status) && status !== 'neutral') {\n            return `coreObjectStatus.${status}`;\n        }\n        return null;\n    });\n\n    /** @hidden Computed CSS classes */\n    protected readonly _cssClass = computed(() =>\n        [\n            OBJECT_STATUS_CLASS_NAME,\n            this.inverted() ? 'fd-object-status--inverted' : '',\n            this.large() ? 'fd-object-status--large' : '',\n            this.status() ? `fd-object-status--${this.status()}` : '',\n            this.indicationColor()\n                ? `fd-object-status--indication-${this.indicationColor()}${this.secondaryIndication() ? 'b' : ''}`\n                : '',\n            this.clickable() ? 'fd-object-status--link' : '',\n            this.iconOnly() ? 'fd-object-status--icon-only' : ''\n        ]\n            .filter(Boolean)\n            .join(' ')\n    );\n\n    /** @hidden */\n    private readonly defaultAriaRoleDescription = resolveTranslationSignal('coreObjectStatus.ariaRoleDescription');\n\n    /** Whether the Object status is icon-only. */\n    private readonly iconOnly = computed((): boolean => !this.label() && !this.textTemplate());\n\n    /**\n     * Type guard to check if the status is a valid ObjectStatus\n     * @hidden\n     */\n    private isValidObjectStatus(status: Nullable<ObjectStatus>): status is ObjectStatus {\n        return status === 'negative' || status === 'critical' || status === 'positive' || status === 'informative';\n    }\n}\n","@if (glyph()) {\n    <fd-icon\n        class=\"fd-object-status__icon\"\n        [glyph]=\"glyph()\"\n        [font]=\"glyphFont()\"\n        [attr.role]=\"glyphAriaLabel() ? 'presentation' : ''\"\n        [ariaLabel]=\"glyphAriaLabel()\"\n    >\n    </fd-icon>\n}\n@if (textTemplate()) {\n    <span class=\"fd-object-status__text\" [class]=\"_textClass\">\n        <ng-template [ngTemplateOutlet]=\"textTemplate()\"></ng-template>\n    </span>\n}\n@if (label()) {\n    <span class=\"fd-object-status__text\" [class]=\"_textClass\">{{ label() }}</span>\n}\n@if (!clickable()) {\n    <span class=\"fd-object-status__sr-only\">{{ ariaLabel() || ('coreObjectStatus.ariaLabel' | fdTranslate)() }}</span>\n}\n@if (indicationColor()) {\n    <span class=\"fd-object-status__sr-only\">{{\n        ('coreObjectStatus.indicationColor' | fdTranslate)() + indicationColorCode()\n    }}</span>\n}\n@if (status()) {\n    @if (statusMessage()) {\n        <span class=\"fd-object-status__sr-only\">{{ statusMessage() }}</span>\n    } @else {\n        <span class=\"fd-object-status__sr-only\">{{ (statusTranslateKey() | fdTranslate)() }}</span>\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { ObjectStatusComponent } from './object-status.component';\n\n/**\n * @deprecated\n * Use `ObjectStatusComponent` import instead.\n */\n@NgModule({\n    imports: [ObjectStatusComponent],\n    exports: [ObjectStatusComponent]\n})\nexport class ObjectStatusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAEa,0BAA0B,GAAG,IAAI,cAAc,CAAC,yBAAyB;;ACiB/E,MAAM,wBAAwB,GAAG;MAuB3B,qBAAqB,CAAA;AArBlC,IAAA,WAAA,GAAA;;AA0BoB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAE/C;;;;AAIG;QACM,IAAA,CAAA,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA0B;;AAGxC,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAmB,IAAI,yDAAC;AAEtD;;AAEG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAoB;;AAGjC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAW,2BAA2B,qDAAC;;QAGxD,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAoB;AAE1C;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEpC;;AAEG;QACM,IAAA,CAAA,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEzC;;;;AAIG;QACM,IAAA,CAAA,eAAe,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAyB;;QAGhD,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGzD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGxD,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,KAAK,kDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGrD,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAC,KAAK,gEAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE5E;;AAEG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA8B;;QAGlD,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;;AAG3B,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAC9C,MAAM,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,0BAA0B,EAAE,gEACxE;;AAGkB,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAC7C,MAAM,CAAA,CAAA,EAAI,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA,CAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACnF;;AAGkB,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAiC,MAAK;AAClF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;YAC5B,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,SAAS,EAAE;gBAC1D,OAAO,CAAA,iBAAA,EAAoB,MAAM,CAAA,CAAE;YACvC;AACA,YAAA,OAAO,IAAI;AACf,QAAA,CAAC,8DAAC;;AAGiB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MACpC;YACI,wBAAwB;YACxB,IAAI,CAAC,QAAQ,EAAE,GAAG,4BAA4B,GAAG,EAAE;YACnD,IAAI,CAAC,KAAK,EAAE,GAAG,yBAAyB,GAAG,EAAE;AAC7C,YAAA,IAAI,CAAC,MAAM,EAAE,GAAG,CAAA,kBAAA,EAAqB,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,GAAG,EAAE;YACzD,IAAI,CAAC,eAAe;AAChB,kBAAE,CAAA,6BAAA,EAAgC,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA;AAChG,kBAAE,EAAE;YACR,IAAI,CAAC,SAAS,EAAE,GAAG,wBAAwB,GAAG,EAAE;YAChD,IAAI,CAAC,QAAQ,EAAE,GAAG,6BAA6B,GAAG;AACrD;aACI,MAAM,CAAC,OAAO;AACd,aAAA,IAAI,CAAC,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACjB;;AAGgB,QAAA,IAAA,CAAA,0BAA0B,GAAG,wBAAwB,CAAC,sCAAsC,CAAC;;AAG7F,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,oDAAC;AAS7F,IAAA;AAPG;;;AAGG;AACK,IAAA,mBAAmB,CAAC,MAA8B,EAAA;AACtD,QAAA,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,aAAa;IAC9G;8GAlHS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,WAAA,EAAA,iCAAA,EAAA,2BAAA,EAAA,6CAAA,EAAA,OAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAdnB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,WAAW,EAAE;AAChB;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjCL,snCAiCA,EAAA,MAAA,EAAA,CAAA,42wFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDOc,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,+IAAE,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEjD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBArBjC,SAAS;+BAEI,oBAAoB,EAAA,aAAA,EAGf,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,0BAA0B;AACnC,4BAAA,WAAW,EAAA;AACd;qBACJ,EAAA,IAAA,EACK;AACF,wBAAA,iBAAiB,EAAE,wBAAwB;AAC3C,wBAAA,aAAa,EAAE,+BAA+B;AAC9C,wBAAA,6BAA6B,EAAE,6CAA6C;AAC5E,wBAAA,SAAS,EAAE;AACd,qBAAA,EAAA,OAAA,EACQ,CAAC,aAAa,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,snCAAA,EAAA,MAAA,EAAA,CAAA,42wFAAA,CAAA,EAAA;;;AErC/D;;;AAGG;MAKU,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAlB,kBAAkB,EAAA,OAAA,EAAA,CAHjB,qBAAqB,CAAA,EAAA,OAAA,EAAA,CACrB,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHjB,qBAAqB,CAAA,EAAA,CAAA,CAAA;;2FAGtB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,OAAO,EAAE,CAAC,qBAAqB;AAClC,iBAAA;;;ACVD;;AAEG;;;;"}