import { Component, EventEmitter, Output, input } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/button";
import * as i2 from "@angular/material/icon";
/**
 * Component to manage empty states.
 */
export class EmptyStateComponent {
    constructor() {
        /**
         * Material icon displayed before text
         */
        this.icon = input('');
        /**
         * Image path (link to your asset)
         */
        this.image = input('');
        /**
         * Title for text placeholder (bold)
         */
        this.title = input('');
        /**
         * Subtitle for text placeholder
         */
        this.subtitle = input('');
        /**
         * Add button and actions
         */
        this.button = input('');
        /**
         * Method triggered when the button is clicked
         */
        this.result = new EventEmitter();
    }
    /**
     * On button click
     */
    onButtonClick() {
        this.result.emit();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EmptyStateComponent, selector: "mic-empty-state", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { result: "result" }, ngImport: i0, template: "<div class=\"flex flex-col h-fit gap-4\">\n  @if (icon()) {\n  <div class=\"flex flex-col items-center\">\n    <mat-icon class=\"empty-state-icon\" role=\"img\" aria-label=\"There is no element to display\" aria-hidden=\"false\">{{ icon() }}</mat-icon>\n  </div>\n  } @if (image()) {\n  <div class=\"flex flex-col items-center h-fit mb-2\">\n    <img [src]=\"image()\" [alt]=\"title() ? title() : null\" />\n  </div>\n  }\n  <div>\n    @if (title()) {\n    <div class=\"flex flex-row justify-center\">\n      <strong>{{ title() }}</strong>\n    </div>\n    } @if (subtitle()) {\n    <div class=\"subtitle flex flex-row justify-center\">\n      {{ subtitle() }}\n    </div>\n    }\n  </div>\n  @if (button()) {\n  <div class=\"flex flex-col items-center\">\n    <button mat-flat-button color=\"primary\" (click)=\"onButtonClick()\">{{ button() }}</button>\n  </div>\n  }\n</div>\n", styles: [":host{display:block}.empty-state-icon{font-size:50px;width:50px;height:45px}img{max-height:200px}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: "    button[mat-button], button[mat-raised-button], button[mat-flat-button],    button[mat-stroked-button]  ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmptyStateComponent, decorators: [{
            type: Component,
            args: [{ selector: 'mic-empty-state', template: "<div class=\"flex flex-col h-fit gap-4\">\n  @if (icon()) {\n  <div class=\"flex flex-col items-center\">\n    <mat-icon class=\"empty-state-icon\" role=\"img\" aria-label=\"There is no element to display\" aria-hidden=\"false\">{{ icon() }}</mat-icon>\n  </div>\n  } @if (image()) {\n  <div class=\"flex flex-col items-center h-fit mb-2\">\n    <img [src]=\"image()\" [alt]=\"title() ? title() : null\" />\n  </div>\n  }\n  <div>\n    @if (title()) {\n    <div class=\"flex flex-row justify-center\">\n      <strong>{{ title() }}</strong>\n    </div>\n    } @if (subtitle()) {\n    <div class=\"subtitle flex flex-row justify-center\">\n      {{ subtitle() }}\n    </div>\n    }\n  </div>\n  @if (button()) {\n  <div class=\"flex flex-col items-center\">\n    <button mat-flat-button color=\"primary\" (click)=\"onButtonClick()\">{{ button() }}</button>\n  </div>\n  }\n</div>\n", styles: [":host{display:block}.empty-state-icon{font-size:50px;width:50px;height:45px}img{max-height:200px}\n"] }]
        }], propDecorators: { result: [{
                type: Output
            }] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvc3JjL2xpYi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS9zcmMvbGliL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFTLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFFOUU7O0dBRUc7QUFNSCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTUU7O1dBRUc7UUFDSCxTQUFJLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCOztXQUVHO1FBQ0gsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQjs7V0FFRztRQUNILFVBQUssR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDMUI7O1dBRUc7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzdCOztXQUVHO1FBQ0gsV0FBTSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMzQjs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBUTdDO0lBTkM7O09BRUc7SUFDSCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQS9CVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixtc0JDVmhDLGkzQkEyQkE7OzRGRGpCYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQTRCakIsTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IHRvIG1hbmFnZSBlbXB0eSBzdGF0ZXMuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21pYy1lbXB0eS1zdGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lbXB0eS1zdGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbXB0eVN0YXRlQ29tcG9uZW50IHtcclxuICAvKipcclxuICAgKiBNYXRlcmlhbCBpY29uIGRpc3BsYXllZCBiZWZvcmUgdGV4dFxyXG4gICAqL1xyXG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAvKipcclxuICAgKiBJbWFnZSBwYXRoIChsaW5rIHRvIHlvdXIgYXNzZXQpXHJcbiAgICovXHJcbiAgaW1hZ2UgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAvKipcclxuICAgKiBUaXRsZSBmb3IgdGV4dCBwbGFjZWhvbGRlciAoYm9sZClcclxuICAgKi9cclxuICB0aXRsZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIC8qKlxyXG4gICAqIFN1YnRpdGxlIGZvciB0ZXh0IHBsYWNlaG9sZGVyXHJcbiAgICovXHJcbiAgc3VidGl0bGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAvKipcclxuICAgKiBBZGQgYnV0dG9uIGFuZCBhY3Rpb25zXHJcbiAgICovXHJcbiAgYnV0dG9uID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRyaWdnZXJlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByZXN1bHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGJ1dHRvbiBjbGlja1xyXG4gICAqL1xyXG4gIG9uQnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlc3VsdC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZml0IGdhcC00XCI+XG4gIEBpZiAoaWNvbigpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cImVtcHR5LXN0YXRlLWljb25cIiByb2xlPVwiaW1nXCIgYXJpYS1sYWJlbD1cIlRoZXJlIGlzIG5vIGVsZW1lbnQgdG8gZGlzcGxheVwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuICA8L2Rpdj5cbiAgfSBAaWYgKGltYWdlKCkpIHtcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGgtZml0IG1iLTJcIj5cbiAgICA8aW1nIFtzcmNdPVwiaW1hZ2UoKVwiIFthbHRdPVwidGl0bGUoKSA/IHRpdGxlKCkgOiBudWxsXCIgLz5cbiAgPC9kaXY+XG4gIH1cbiAgPGRpdj5cbiAgICBAaWYgKHRpdGxlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgPHN0cm9uZz57eyB0aXRsZSgpIH19PC9zdHJvbmc+XG4gICAgPC9kaXY+XG4gICAgfSBAaWYgKHN1YnRpdGxlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAge3sgc3VidGl0bGUoKSB9fVxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIEBpZiAoYnV0dG9uKCkpIHtcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soKVwiPnt7IGJ1dHRvbigpIH19PC9idXR0b24+XG4gIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==