{"version":3,"file":"moxa-formoxa-mx-snackbar.mjs","sources":["../../../../libs/formoxa/mx-snackbar/src/lib/components/mx-snackbar.component.ts","../../../../libs/formoxa/mx-snackbar/src/lib/services/mx-snackbar.service.ts","../../../../libs/formoxa/mx-snackbar/src/moxa-formoxa-mx-snackbar.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { MxIconButtonDirective, MxInvertButtonDirective } from '@moxa/formoxa/mx-button';\nimport { Subject } from 'rxjs';\nimport { SnackbarConfig } from '../models/mx-snackbar.model';\n\ninterface SnackbarData extends SnackbarConfig {\n  message: string;\n}\n\n@Component({\n  selector: 'mx-snackbar',\n  styleUrls: ['./mx-snackbar.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [MatButtonModule, MatIconModule, MxInvertButtonDirective, MxIconButtonDirective],\n  template: `\n    <div class=\"mx-snackbar\" role=\"snackbar\">\n      <div class=\"mx-snackbar__content\">\n        <div class=\"mx-snackbar__message-wrapper\">\n          <div class=\"mx-snackbar__message\">{{ data.message }}</div>\n        </div>\n        @if (data.showAction) {\n          <button\n            mat-button\n            mxInvertButton\n            matSnackBarAction\n            class=\"mx-snackbar__action-button\"\n            (click)=\"onAction.next()\"\n          >\n            {{ data.actionLabel || 'Action' }}\n          </button>\n        }\n      </div>\n      <button\n        mat-icon-button\n        mxIconButton\n        mxInvertButton\n        class=\"mx-snackbar__dismiss-button\"\n        (click)=\"snackBarRef.dismiss()\"\n      >\n        <mat-icon svgIcon=\"icon:clear\"></mat-icon>\n      </button>\n    </div>\n  `\n})\nexport class MxSnackbarComponent implements AfterViewInit, OnDestroy {\n  readonly snackBarRef = inject(MatSnackBarRef<MxSnackbarComponent>);\n  readonly data: SnackbarData = inject(MAT_SNACK_BAR_DATA);\n  onAction: Subject<void> = new Subject();\n\n  ngAfterViewInit(): void {\n    const snackbarContainers = document.querySelectorAll('.mx-snackbar-container');\n    if (snackbarContainers.length && this.data?.offsetBottom) {\n      const marginBottom = this.data.offsetBottom || 16;\n      snackbarContainers.forEach((el) => {\n        (el as HTMLElement).style.marginBottom = `${marginBottom}px`;\n      });\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.onAction?.complete();\n  }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { MxSnackbarComponent } from '../components/mx-snackbar.component';\nimport { SnackbarConfig } from '../models/mx-snackbar.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MxSnackbarService {\n  private snackbar = inject(MatSnackBar);\n  private readonly DURATION = 6000;\n\n  open(message: string, data?: SnackbarConfig): MatSnackBarRef<MxSnackbarComponent> {\n    const config: MatSnackBarConfig = {\n      horizontalPosition: 'center',\n      verticalPosition: 'bottom',\n      duration: this.DURATION,\n      panelClass: 'mx-snackbar-container',\n      data: {\n        message: message,\n        ...data\n      }\n    };\n\n    if (this.snackbar) {\n      this.snackbar.dismiss();\n    }\n\n    return this.snackbar.openFromComponent(MxSnackbarComponent, config);\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}