{"version":3,"file":"fundamental-ngx-core-object-number.mjs","sources":["../../../../libs/core/object-number/object-number.component.ts","../../../../libs/core/object-number/object-number.component.html","../../../../libs/core/object-number/object-number.module.ts","../../../../libs/core/object-number/fundamental-ngx-core-object-number.ts"],"sourcesContent":["import { DecimalPipe } from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    ViewEncapsulation,\n    booleanAttribute,\n    computed,\n    inject,\n    input\n} from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { FdLanguageKeyIdentifier, FdTranslatePipe } from '@fundamental-ngx/i18n';\n\ntype ObjectStatus = 'negative' | 'critical' | 'positive' | 'informative';\n\n@Component({\n    selector: 'fd-object-number',\n    templateUrl: './object-number.component.html',\n    styleUrl: './object-number.component.scss',\n    host: {\n        '[attr.aria-labelledby]': 'ariaLabelledBy()',\n        '[attr.aria-label]': 'ariaLabel()',\n        '[attr.tabindex]': 'interactive() ? 0 : null',\n        '[attr.role]': 'interactive() ? \"button\" : null',\n        '[class]': '_cssClass()'\n    },\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [DecimalPipe, FdTranslatePipe]\n})\nexport class ObjectNumberComponent implements HasElementRef {\n    /**\n     * Numerical value of the object number.\n     */\n    readonly number = input<number>();\n\n    /**\n     * Number of decimal places to show\n     */\n    readonly decimal = input(0);\n\n    /** Sets unit of measure displayed. */\n    readonly unit = input<string>();\n\n    /** Set the value to true to display the object number in bold text */\n    readonly emphasized = input(false);\n\n    /** Set the value to true to display the object number in large text */\n    readonly large = input(false);\n\n    /** Sets status/semantic color  'negative' / 'critical' / 'positive' / 'informative' */\n    readonly status = input<ObjectStatus>();\n\n    /** An optional status message for the object number */\n    readonly statusMessage = input<string>();\n\n    /** Id of the element that labels object number. */\n    readonly ariaLabelledBy = input<string>();\n\n    /** Aria label for the object number. */\n    readonly ariaLabel = input<string>();\n\n    /** Whether the object number is interactive */\n    readonly interactive = input(false, { transform: booleanAttribute });\n\n    /** Whether the object number is inverted. */\n    readonly inverted = input(false, { transform: booleanAttribute });\n\n    /** @hidden */\n    readonly elementRef = inject(ElementRef);\n\n    /** @hidden Computed number pipe configuration */\n    protected readonly _numberPipeConfig = computed(() => `0.${this.decimal()}-${this.decimal()}`);\n\n    /** @hidden Status key to translate for screen readers */\n    protected readonly statusKey = computed<FdLanguageKeyIdentifier | null>(() => {\n        const status = this.status();\n        if (this.isValidObjectStatus(status)) {\n            return `coreObjectNumber.${status}`;\n        }\n        return null;\n    });\n\n    /** @hidden Computed CSS classes */\n    protected readonly _cssClass = computed(() =>\n        [\n            'fd-object-number',\n            this.large() ? 'fd-object-number--large' : '',\n            this.interactive() ? 'fd-object-number--interactive' : '',\n            this.inverted() ? 'fd-object-number--inverted' : '',\n            this.status() ? `fd-object-number--${this.status()}` : ''\n        ]\n            .filter(Boolean)\n            .join(' ')\n    );\n\n    /**\n     * Type guard to check if the status is a valid ObjectStatus\n     * @hidden\n     */\n    private isValidObjectStatus(status: ObjectStatus | undefined): status is ObjectStatus {\n        return status === 'negative' || status === 'critical' || status === 'positive' || status === 'informative';\n    }\n}\n","<span class=\"fd-object-number__text\" [class.fd-object-number__text--bold]=\"!large() && emphasized()\">\n    {{ number() | number: (decimal() ? _numberPipeConfig() : '1.0-0') }}\n</span>\n<span class=\"fd-object-number__unit\">{{ unit() }}</span>\n@if (emphasized()) {\n    <span class=\"fd-object-number__sr-only\">{{ ('coreObjectNumber.emphasized' | fdTranslate)() }}</span>\n}\n@if (status()) {\n    @if (statusMessage()) {\n        <span class=\"fd-object-number__sr-only\">{{ statusMessage() }}</span>\n    } @else {\n        <span class=\"fd-object-number__sr-only\">{{ (statusKey() | fdTranslate)() }}</span>\n    }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ObjectNumberComponent } from './object-number.component';\n\n/**\n * @deprecated\n * Use direct import of `ObjectNumberComponent`\n */\n@NgModule({\n    imports: [ObjectNumberComponent],\n    exports: [ObjectNumberComponent]\n})\nexport class ObjectNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}