{"version":3,"file":"kif-lib-snack-messages.mjs","sources":["../../../projects/kif-lib/snack-messages/enum/type-alert.enum.ts","../../../projects/kif-lib/snack-messages/enum/snackType.enum.ts","../../../projects/kif-lib/snack-messages/pipes/safeDom.pipe.ts","../../../projects/kif-lib/snack-messages/snack-messages.component.ts","../../../projects/kif-lib/snack-messages/snack-messages.component.html","../../../projects/kif-lib/snack-messages/snack-messages.service.ts","../../../projects/kif-lib/snack-messages/snack-messages.module.ts","../../../projects/kif-lib/snack-messages/public-api.ts","../../../projects/kif-lib/snack-messages/kif-lib-snack-messages.ts"],"sourcesContent":["export enum TypeAlertEnum {\n    ERROR=\"error\",\n    WARNING=\"warning\",\n    SUCCESS=\"success\"\n}\n","export enum SnackType {\n    ERROR = 'error-snackbar',\n    WARNING = 'warning-snackbar',\n    SUCCESS = 'success-snackbar'\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeStyle, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n    name: 'safeDom',\n    standalone: true\n})\nexport class SafeDomPipe implements PipeTransform {\n\n    constructor(protected sanitizer: DomSanitizer) { }\n    transform(value: any, type: string): SafeHtml | SafeStyle | SafeUrl | SafeResourceUrl {\n        switch (type) {\n            case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\n            case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\n            case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\n            case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n            default: throw new Error(`Invalid safe type specified: ${type}`);\n        }\n    }\n\n}\n","\nimport { Component, Inject, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { SnackConfig } from './interface/snackConfig.interface';\nimport { CircleX, CircleAlert, Check  } from 'lucide-angular';\nimport { SnackType } from './enum';\n\n\n@Component({\n    selector: 'kit-snack-messages',\n    templateUrl: './snack-messages.component.html',\n    \n})\nexport class SnackMessagesComponent {\n\n    private readonly icons = {\n        [SnackType.ERROR]: { name: CircleX, size: 24, color: '#343F4B', },\n        [SnackType.WARNING]: { name: CircleAlert, size: 24, color: '#343F4B',  },\n        [SnackType.SUCCESS]: { name: Check, size: 24, color: '#343F4B',  }\n    };\n    \n    snackBarRef = inject(MatSnackBarRef);\n    constructor(  \n        @Inject(MAT_SNACK_BAR_DATA) public data: SnackConfig,\n    ){\n        if (!data.icon) {\n            const snackType = Array.isArray(this.data.class) \n                ? this.data.class.find(c => this.icons[c as SnackType])\n                : this.data.class;\n            \n            if (snackType) {\n                this.data = {\n                    ...data,\n                    icon: this.icons[snackType as SnackType]\n                };\n            }\n\n        }\n    }\n    \n}\n","<div class=\"row\">\n    <div class=\"col col-lg-12\">\n      <div class=\"d-flex justify-content-center container-snack\">\n        <span matSnackBarLabel class=\"text\">\n            @if (data.icon) {\n                <lucide-icon\n                [name]=\"data.icon.name\"\n                [size]=\"data.icon.size\"\n                [color]=\"data.icon.color\"\n                [strokeWidth]=\"data.icon.strokeWidth || 2\"\n                [class]=\"data.icon.class\"\n              ></lucide-icon>\n            }\n          @if(data.text) {\n            <div class=\"snack-text\">{{data.text}}</div>\n          } @else if(data.textHtml) {\n            <div class=\"cell-flex\" [innerHTML]=\"data.textHtml | safeDom: 'html'\">\n            </div>\n          }\n        </span>\n        @if (data.buttons && data.buttons.length > 0) {\n          <span matSnackBarActions class=\"d-flex align-items-center gap-2 snack-actions\">\n            @for (button of data.buttons; track button.code) {\n              <button\n                type=\"button\"\n                mat-raised-button\n                [color]=\"button.color\"\n                [class]=\"button.class\"\n                [disabled]=\"button.disabled\"\n                (click)=\"button.action()\">\n                @if (button.loading) {\n                  <span class=\"loader-dots\">\n                    <div class=\"dot\"></div>\n                    <div class=\"dot\"></div>\n                    <div class=\"dot\"></div>\n                  </span>\n                } @else {\n                  @if (button.lucideIcon && button.positionIconText === 'start') {\n                    <div class=\"d-flex align-items-center gap-1\">\n                      <lucide-angular\n                        [name]=\"button.lucideIcon.name\"\n                        [size]=\"button.lucideIcon.size\"\n                        [color]=\"button.lucideIcon.color\"\n                        [strokeWidth]=\"button.lucideIcon.strokeWidth\"\n                        [class]=\"button.lucideIcon.class + ' d-flex align-items-center'\"\n                        [absoluteStrokeWidth]=\"button.lucideIcon.absoluteStrokeWidth ?? false\">\n                      </lucide-angular>\n                      <span class=\"d-flex align-items-center\">{{ button.label }}</span>\n                    </div>\n                  } @else if (button.lucideIcon && button.positionIconText === 'end') {\n                    <div class=\"d-flex align-items-center gap-1\">\n                      <span class=\"d-flex align-items-center\">{{ button.label }}</span>\n                      <lucide-angular\n                        [name]=\"button.lucideIcon.name\"\n                        [size]=\"button.lucideIcon.size\"\n                        [color]=\"button.lucideIcon.color\"\n                        [strokeWidth]=\"button.lucideIcon.strokeWidth\"\n                        [class]=\"button.lucideIcon.class + ' d-flex align-items-center'\"\n                        [absoluteStrokeWidth]=\"button.lucideIcon.absoluteStrokeWidth ?? false\">\n                      </lucide-angular>\n                    </div>\n                  } @else {\n                    <span class=\"d-flex align-items-center\">{{ button.label }}</span>\n                  }\n                }\n              </button>\n            }\n          </span>\n        } @else if (data.isActions) {\n          <span matSnackBarActions>\n            <button mat-button (click)=\"snackBarRef.dismissWithAction()\">\n              OK\n            </button>\n          </span>\n        }\n      </div>\n    </div>\n  </div>\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { SnackMessagesComponent } from './snack-messages.component';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SnackbarService {\n    private _snackBarRef: MatSnackBarRef<SnackMessagesComponent> | null = null;\n\n    constructor(private _snackBar: MatSnackBar) { }\n\n    snackMessage(config: any): MatSnackBarRef<SnackMessagesComponent> {\n        this._snackBarRef = this._snackBar.openFromComponent(SnackMessagesComponent, {\n            duration: config.duration,\n            panelClass: config.class,\n            data: config,\n            verticalPosition: 'top',\n            horizontalPosition: 'center'\n        });\n        return this._snackBarRef;\n    }\n\n    dismiss(): void {\n        this._snackBarRef?.dismiss();\n    }\n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SnackMessagesComponent } from './snack-messages.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_SNACK_BAR_DEFAULT_OPTIONS, MatSnackBarModule } from '@angular/material/snack-bar';\nimport { SnackbarService } from './snack-messages.service';\nimport { LucideAngularModule } from 'lucide-angular';\nimport { SafeDomPipe } from './pipes/safeDom.pipe';\n@NgModule({\n    imports: [\n        CommonModule,\n        MatInputModule,\n        FormsModule,\n        MatFormFieldModule,\n        MatIconModule, \n        FormsModule, \n        MatButtonModule, \n        MatSnackBarModule,\n        LucideAngularModule,\n        SafeDomPipe\n    ],\n    declarations: [SnackMessagesComponent],\n    exports:[SnackMessagesComponent],\n    providers: [\n        SnackbarService,\n        {provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: {duration: 2500}}\n    ]\n\n})\nexport class KifSnackMessagesModule { }\n","/*\n * Public API Surface of kif-lib-input\n */\n\nexport * from '../snack-messages/snack-messages.component';\nexport * from '../snack-messages/snack-messages.module';\nexport * from '../snack-messages/snack-messages.service';\nexport * from '../snack-messages/enum';\nexport * from './pipes/safeDom.pipe';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i4.SafeDomPipe"],"mappings":"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"}