{"version":3,"file":"alyle-ui-snack-bar.mjs","sources":["../../../lib/snack-bar/snack-bar-ref.ts","../../../lib/snack-bar/snack-bar.service.ts","../../../lib/snack-bar/snack-bar.ts","../../../lib/snack-bar/snack-bar.module.ts","../../../lib/snack-bar/alyle-ui-snack-bar.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { OverlayFactory, LyTheme2 } from '@alyle/ui';\nimport { LySnackBarService } from './snack-bar.service';\nimport { LySnackBarDismiss } from './snack-bar';\n\nconst DEFAULT_DURATION = 6e3;\n\nexport class LySnackBarRef {\n  private _timer: any;\n  private _dismissedByAction = false;\n\n  /** Subject for notifying the user that the snack bar has been dismissed. */\n  private readonly _afterDismissed = new Subject<void>();\n\n  /** Gets an observable that is notified when the snack bar is finished closing. */\n  afterDismissed(): Observable<void> {\n    return this._afterDismissed.asObservable();\n  }\n  constructor(\n    private _snackBarService: LySnackBarService,\n    private _overlay: OverlayFactory | null,\n    private _afterDismissedEventEmitter: EventEmitter<LySnackBarDismiss>,\n    duration: number | 'Infinity',\n    private _theme: LyTheme2\n  ) {\n    if (duration !== 'Infinity') {\n      this._timer = setTimeout(() => {\n        this.dismiss();\n      }, duration || DEFAULT_DURATION);\n    }\n  }\n\n  dismiss() {\n    const snackBar = this._overlay;\n    const timer = this._timer;\n    this._afterDismissedEventEmitter.emit({dismissedByAction: this._dismissedByAction});\n    this._afterDismissed.next();\n    this._afterDismissed.complete();\n    if (snackBar) {\n      if (timer) {\n        // clear previous timer\n        clearTimeout(timer);\n      }\n\n      snackBar.containerElement.classList.remove(this._theme.selectorOf('SnackBar:open'));\n      setTimeout(() => {\n        snackBar.destroy();\n      }, 350);\n      this._snackBarService._currentSnackBar = null;\n      this._overlay = null;\n    }\n  }\n  dismissWithAction() {\n    const snackBar = this._overlay;\n    if (snackBar) {\n      this._dismissedByAction = true;\n      this.dismiss();\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { LySnackBarRef } from './snack-bar-ref';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LySnackBarService {\n  /** @docs-private */\n  _currentSnackBar: LySnackBarRef | null;\n}\n","import { Directive, Input, TemplateRef, Output, EventEmitter, OnDestroy } from '@angular/core';\nimport {\n  LyTheme2,\n  LyOverlay,\n  ThemeVariables,\n  XPosition,\n  YPosition,\n  st2c,\n  StyleTemplate,\n  StyleCollection } from '@alyle/ui';\nimport { LySnackBarService } from './snack-bar.service';\nimport { LySnackBarRef } from './snack-bar-ref';\n\nexport interface LySnackBarTheme {\n  /** Styles for SnackBar Component */\n  root?: StyleTemplate | StyleCollection;\n}\n\n\nexport interface LySnackBarVariables {\n  snackBar?: LySnackBarTheme;\n}\n\n/** Possible values for horizontalPosition on LySnackBarConfig. */\nexport type LySnackBarHorizontalPosition = 'center' | 'before' | 'after' | 'left' | 'right';\n\n/** Possible values for verticalPosition on LySnackBarConfig. */\nexport type LySnackBarVerticalPosition = 'above' | 'below';\n\nconst STYLE_PRIORITY = -2;\nconst DEFAULT_HORIZONTAL_POSITION = XPosition.after;\nconst DEFAULT_VERTICAL_POSITION = YPosition.below;\nexport const STYLES = (theme: ThemeVariables & LySnackBarVariables) => ({\n  $priority: STYLE_PRIORITY,\n  root: (_className: string) => `${_className}{border-radius:4px;display:flex;justify-content:space-between;align-items:center;margin:8px;padding:0 16px;min-height:48px;min-width:320px;max-width:320px;opacity:0;transition:opacity ${theme.animations.curves.standard} 350ms,transform ${theme.animations.curves.deceleration} 350ms;font-size:${theme.pxToRem(theme.typography.fontSize)};box-sizing:border-box;pointer-events:all !important;}@media ${theme.breakpoints['XSmall']}{${_className}{width:calc(100% - 16px);min-width:calc(100% - 16px);}}${st2c((\n        (theme.snackBar\n          && theme.snackBar.root) || null), `${_className}`)}`\n});\n\n/** Event that is emitted when a snack bar is dismissed. */\nexport interface LySnackBarDismiss {\n  /** Whether the snack bar was dismissed using the action fn. */\n  dismissedByAction: boolean;\n}\n\n@Directive({\n  selector: 'ng-template[ly-snack-bar]',\n  exportAs: 'lySnackBar',\n  standalone: false\n})\nexport class LySnackBar implements OnDestroy {\n\n  readonly classes = this._theme.renderStyleSheet(STYLES);\n  @Input() duration: number | 'Infinity';\n  @Input() horizontalPosition: 'center' | XPosition | LySnackBarHorizontalPosition;\n  @Input() verticalPosition: YPosition | LySnackBarVerticalPosition;\n  @Output() afterDismissed = new EventEmitter<LySnackBarDismiss>();\n\n  constructor(\n    private _templateRef: TemplateRef<any>,\n    private _theme: LyTheme2,\n    private _overlay: LyOverlay,\n    private _snackBarService: LySnackBarService\n  ) { }\n\n  ngOnDestroy() {\n    this.dismiss();\n  }\n  /**\n   * Open a LySnackBar template\n   * @param snackBarData Data to be passed to the snack-bark.\n   */\n  open(snackBarData?: any) {\n    // close previous snackBar if exist\n    const sbrPrev = this._snackBarService._currentSnackBar;\n    if (sbrPrev) {\n      sbrPrev.dismiss();\n    }\n\n    const duration = this.duration;\n    const horizontalPosition = this.horizontalPosition || DEFAULT_HORIZONTAL_POSITION;\n    const verticalPosition = this.verticalPosition || DEFAULT_VERTICAL_POSITION;\n\n    const snackBar = this._overlay.create(this._templateRef, snackBarData, {\n      styles: {\n        // this remove previous style\n        justifyContent: null\n      },\n      hasBackdrop: false,\n      classes: [\n        this.classes.root,\n        this._theme.renderStyle(`SnackBar.hp:${horizontalPosition}.vp:${verticalPosition}`, (theme: ThemeVariables) => {\n          let marginLeft: 'auto' | undefined;\n          let left: 0 | undefined;\n          let marginRight: 'auto' | undefined;\n          let right: 0 | undefined;\n          let transform: string | undefined;\n          let top: number | undefined;\n          let bottom: number | undefined;\n          let hp: string | undefined;\n\n          if (verticalPosition === YPosition.above) {\n            transform = 'translateY(-180%)';\n            top = 0;\n          } else if (verticalPosition === YPosition.below) {\n            transform = 'translateY(180%)';\n            bottom = 0;\n          }\n          if (horizontalPosition === 'center') {\n            marginRight = marginLeft = 'auto';\n            left = right = 0;\n          } else {\n            hp = theme.getDirection(horizontalPosition as any);\n          }\n\n          return (_className: string) => `${_className}{margin-left:${marginLeft};left:${left};margin-right:${marginRight};right:${right};transform:${transform};top:${top};bottom:${bottom};${hp}:0;}`;\n        }, STYLE_PRIORITY)\n      ]\n    });\n\n    this._theme.requestAnimationFrame(() => {\n      const newClass = this._theme.renderStyle('SnackBar:open', () => (\n        (_className: string) => `${_className}{opacity:1;transform:translateY(0);}`\n      ), STYLE_PRIORITY + 1);\n      snackBar.containerElement.classList.add(newClass);\n    });\n\n    window.getComputedStyle(snackBar.containerElement).getPropertyValue('opacity');\n\n    const sbr = new LySnackBarRef(this._snackBarService, snackBar, this.afterDismissed, duration, this._theme);\n    this._snackBarService._currentSnackBar = sbr;\n    return sbr;\n  }\n\n  /** Dismiss snackBar */\n  dismiss() {\n    const sbr = this._snackBarService._currentSnackBar;\n    if (sbr) {\n      sbr.dismissWithAction();\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { LyOverlayModule } from '@alyle/ui';\nimport { LySnackBar } from './snack-bar';\n\n@NgModule({\n  imports: [LyOverlayModule],\n  declarations: [LySnackBar],\n  exports: [LySnackBar]\n})\nexport class LySnackBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.LySnackBarService"],"mappings":"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"}