import * as i0 from '@angular/core';
import { EventEmitter, Directive, Input, Output } from '@angular/core';

class AlertBaseComponent {
    constructor() {
        this.type = 'info';
        this.mode = 'basic';
        this.shown = true;
        this.showCloseButton = true;
        this.closed = new EventEmitter();
    }
    get alertIcon() {
        return this.type.toLowerCase() !== 'error' ? this.type.toLowerCase() : 'alert-error';
    }
    get alertCssClasses() {
        return [this.mode.toLowerCase(), this.type.toLowerCase(), this.showCloseButton && 'has-close-button'].filter(Boolean);
    }
    /** @internal */
    onCloseClicked(isDontShowAgain = false) {
        this.shown = false;
        this.closed.emit({ dontShowAgain: isDontShowAgain });
    }
    /** @internal */
    onDontShowClicked($event) {
        $event.preventDefault();
        this.onCloseClicked(true);
    }
    static { this.ɵfac = function AlertBaseComponent_Factory(t) { return new (t || AlertBaseComponent)(); }; }
    static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AlertBaseComponent, inputs: { type: "type", mode: "mode", shown: "shown", showCloseButton: "showCloseButton", showDoNotShowAgainButton: "showDoNotShowAgainButton" }, outputs: { closed: "closed" } }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AlertBaseComponent, [{
        type: Directive
    }], null, { type: [{
            type: Input
        }], mode: [{
            type: Input
        }], shown: [{
            type: Input
        }], showCloseButton: [{
            type: Input
        }], showDoNotShowAgainButton: [{
            type: Input
        }], closed: [{
            type: Output
        }] }); })();

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

export { AlertBaseComponent };
//# sourceMappingURL=ironsource-fusion-ui-components-alert-common-base.mjs.map
