import * as i0 from '@angular/core';
import { input, numberAttribute, booleanAttribute, computed, ChangeDetectionStrategy, Component } from '@angular/core';
import { SiIconComponent } from '@siemens/element-ng/icon';

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiStatusCounterComponent {
    /** Icon to display. */
    icon = input.required(...(ngDevMode ? [{ debugName: "icon" }] : []));
    /** Stacked icon to display. */
    stackedIcon = input(...(ngDevMode ? [undefined, { debugName: "stackedIcon" }] : []));
    /**
     * Counter below the icon
     *
     * @defaultValue 0
     */
    count = input(0, { ...(ngDevMode ? { debugName: "count" } : {}), transform: numberAttribute });
    /** Color of the icon */
    color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : []));
    /**
     * Whether the icon is disabled.
     *
     * @defaultValue false
     */
    disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
    isDisabledOrCountZero = computed(() => !!this.disabled() || this.count() === 0, ...(ngDevMode ? [{ debugName: "isDisabledOrCountZero" }] : []));
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiStatusCounterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiStatusCounterComponent, isStandalone: true, selector: "si-status-counter, si-icon-status", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, stackedIcon: { classPropertyName: "stackedIcon", publicName: "stackedIcon", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let iconValue = icon();\n<span class=\"icon icon-stack\">\n  <si-icon\n    [class]=\"isDisabledOrCountZero() ? undefined : color()\"\n    [class.inactive]=\"isDisabledOrCountZero()\"\n    [icon]=\"iconValue\"\n  />\n  @let stackedValue = stackedIcon();\n  @if (stackedValue) {\n    <si-icon\n      [class]=\"isDisabledOrCountZero() ? 'inactive-contrast' : `${color()}-contrast`\"\n      [icon]=\"stackedValue\"\n    />\n  }\n</span>\n@if (!disabled()) {\n  <span>{{ count() }}</span>\n}\n", styles: [":host{display:flex;align-items:center;flex-direction:column;text-align:center;gap:4px}.inactive{color:var(--element-ui-3)}.inactive-contrast{color:var(--element-ui-5)}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiStatusCounterComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-status-counter, si-icon-status', imports: [SiIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let iconValue = icon();\n<span class=\"icon icon-stack\">\n  <si-icon\n    [class]=\"isDisabledOrCountZero() ? undefined : color()\"\n    [class.inactive]=\"isDisabledOrCountZero()\"\n    [icon]=\"iconValue\"\n  />\n  @let stackedValue = stackedIcon();\n  @if (stackedValue) {\n    <si-icon\n      [class]=\"isDisabledOrCountZero() ? 'inactive-contrast' : `${color()}-contrast`\"\n      [icon]=\"stackedValue\"\n    />\n  }\n</span>\n@if (!disabled()) {\n  <span>{{ count() }}</span>\n}\n", styles: [":host{display:flex;align-items:center;flex-direction:column;text-align:center;gap:4px}.inactive{color:var(--element-ui-3)}.inactive-contrast{color:var(--element-ui-5)}\n"] }]
        }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: true }] }], stackedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "stackedIcon", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

/**
 * Generated bundle index. Do not edit.
 */

export { SiStatusCounterComponent };
//# sourceMappingURL=siemens-element-ng-status-counter.mjs.map
