{"version":3,"file":"novo-elements-elements-toast.mjs","sources":["../../../projects/novo-elements/src/elements/toast/Toast.ts","../../../projects/novo-elements/src/elements/toast/Toast.module.ts","../../../projects/novo-elements/src/elements/toast/ToastService.ts","../../../projects/novo-elements/src/elements/toast/novo-elements-elements-toast.ts"],"sourcesContent":["// NG2\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Deferred, DeferredPromise } from 'novo-elements/utils';\n\n@Component({\n    selector: 'novo-toast',\n    host: {\n        '[class]': 'alertTheme',\n        '[class.growl]': 'appearance == \"growl\"',\n        '[class.banner]': 'appearance == \"banner\"',\n        '[class.show]': 'show',\n        '[class.animate]': 'animate',\n        '[class.embedded]': 'embedded',\n        '[attr.theme]': 'theme',\n        '(click)': '!isCloseable && clickHandler($event)',\n    },\n    template: `\n    <div class=\"toast-icon\">\n      <i [ngClass]=\"iconClass\"></i>\n    </div>\n    <div class=\"toast-content\">\n      <h5 *ngIf=\"title\">{{ title }}</h5>\n      <p *ngIf=\"_message\" [class.message-only]=\"!title\" [innerHtml]=\"_message\"></p>\n      <div *ngIf=\"link\" class=\"link-generated\">\n        <input type=\"text\" [value]=\"link\" onfocus=\"this.select();\" />\n      </div>\n      <div class=\"dialogue\">\n        <ng-content></ng-content>\n      </div>\n      <div *ngIf=\"action\" class=\"action\">\n        <button theme=\"dialogue\" color=\"white\" (click)=\"actionHandler($event)\">{{ action }}</button>\n      </div>\n    </div>\n    <div class=\"close-icon\" *ngIf=\"isCloseable\" (click)=\"close($event)\">\n      <i class=\"bhi-times\"></i>\n    </div>\n  `,\n    styleUrls: ['./Toast.scss'],\n    standalone: false,\n})\nexport class NovoToastElement implements OnInit, OnChanges {\n  @Input()\n  appearance: 'growl' | 'banner' = 'banner';\n  @Input()\n  theme: string = 'danger';\n  @Input()\n  icon: string = 'caution';\n  @Input()\n  title: string;\n  @Input()\n  action: string;\n  @Input()\n  hasDialogue: boolean = false;\n  @Input()\n  link: string;\n  @Input()\n  isCloseable: boolean = false;\n  @Input()\n  set message(m: string) {\n    this._message = this.sanitizer.bypassSecurityTrustHtml(m);\n  }\n  @Output()\n  closed: EventEmitter<any> = new EventEmitter();\n\n  _message: SafeHtml;\n  show: boolean = false;\n  animate: boolean = false;\n  parent: any = null;\n  launched: boolean = false;\n  position: any;\n  time: any;\n  iconClass: string;\n  alertTheme: string;\n  embedded: any;\n  onActionPromise: DeferredPromise = Deferred();\n\n  constructor(private sanitizer: DomSanitizer) {}\n\n  ngOnInit() {\n    if (!this.launched) {\n      // clear position and time\n      this.position = null;\n      this.time = null;\n\n      // set icon and styling\n      this.iconClass = `bhi-${this.icon}`;\n      this.alertTheme = `${this.theme} toast-container embedded`;\n      if (this.hasDialogue) {\n        this.alertTheme += ' dialogue';\n      }\n    }\n  }\n\n  ngOnChanges(changes?: SimpleChanges) {\n    // set icon and styling\n    this.iconClass = `bhi-${this.icon}`;\n    this.alertTheme = `${this.theme} toast-container embedded`;\n    if (this.hasDialogue) {\n      this.alertTheme += ' dialogue';\n    }\n  }\n\n  clickHandler(event) {\n    if (!this.isCloseable) {\n      if (event) {\n        event.stopPropagation();\n        event.preventDefault();\n      }\n      if (this.parent) {\n        this.parent.hide(this);\n      } else {\n        this.closed.emit({ closed: true });\n      }\n    }\n  }\n\n  close(event) {\n    if (event) {\n      event.stopPropagation();\n      event.preventDefault();\n    }\n    if (this.parent) {\n      this.parent.hide(this);\n    } else {\n      this.closed.emit({ closed: true });\n    }\n  }\n\n  actionHandler(event) {\n    this.onActionPromise.resolve(event);\n  }\n\n  onAction(fn: () => void) {\n    return this.onActionPromise.then(fn);\n  }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\n// APP\nimport { NovoToastElement } from './Toast';\n\n@NgModule({\n  imports: [CommonModule, NovoButtonModule],\n  declarations: [NovoToastElement],\n  exports: [NovoToastElement],\n})\nexport class NovoToastModule {}\n","// NG2\nimport { Injectable } from '@angular/core';\nimport { ComponentUtils } from 'novo-elements/services';\n// APP\nimport { NovoToastElement } from './Toast';\n\nexport type ToastThemes = 'default' | 'success' | 'info' | 'warning' | 'danger' | 'positive' | string;\nexport type ToastIcons = 'bell' | 'check' | 'info' | 'warning' | 'remove' | 'caution' | 'times' | 'coffee' | 'danger' | string;\nexport type ToastPositions = 'fixedTop' | 'fixedBottom' | 'growlTopRight' | 'growlTopLeft' | 'growlBottomRight' | 'growlBottomLeft';\n\nexport interface ToastOptions {\n  title?: string;\n  message?: string;\n  action?: string;\n  icon?: ToastIcons;\n  theme?: ToastThemes;\n  accent?: ToastThemes;\n  hideDelay?: number;\n  position?: ToastPositions;\n  isCloseable?: boolean;\n  customClass?: string;\n}\n\n@Injectable()\nexport class NovoToastService {\n  _parentViewContainer: any;\n  references: Array<any> = [];\n  icons = { default: 'bell', success: 'check', info: 'info', warning: 'warning', danger: 'remove' };\n  defaults = { hideDelay: 3500, position: 'growlTopRight', theme: 'default' };\n\n  constructor(private componentUtils: ComponentUtils) {}\n\n  set parentViewContainer(view) {\n    this._parentViewContainer = view;\n  }\n\n  alert(options: ToastOptions, toastElement: any = NovoToastElement): Promise<any> {\n    return new Promise((resolve) => {\n      if (!this._parentViewContainer) {\n        console.error(\n          'No parent view container specified for the ToastService. Set it inside your main application. \\nthis.toastService.parentViewContainer = view (ViewContainerRef)',\n        );\n        return;\n      }\n      const toast = this.componentUtils.append(toastElement, this._parentViewContainer);\n      this.references.push(toast);\n      this.handleAlert(toast.instance, options);\n      resolve(toast.instance);\n    });\n  }\n\n  isVisible(toast) {\n    return toast.show;\n  }\n\n  hide(toast) {\n    toast.animate = false;\n    setTimeout(() => {\n      toast.show = false;\n      const REF = this.references.filter((x) => x.instance === toast)[0];\n      if (REF) {\n        this.references.splice(this.references.indexOf(REF), 1);\n        REF.destroy();\n      }\n    }, 300);\n  }\n\n  handleAlert(toast, options) {\n    this.setToastOnSession(toast, options);\n    setTimeout(() => {\n      this.show(toast);\n    }, 20);\n    if (!toast.isCloseable) {\n      this.toastTimer(toast);\n    }\n  }\n\n  setToastOnSession(toast, opts) {\n    const OPTIONS = typeof opts === 'object' ? opts : {};\n\n    toast.parent = this;\n    toast.title = OPTIONS.title || '';\n    toast.message = OPTIONS.message || '';\n    toast.action = OPTIONS.action || null;\n    toast.hideDelay = OPTIONS.hideDelay || this.defaults.hideDelay;\n    toast.link = OPTIONS.link || '';\n    toast.isCloseable = OPTIONS.isCloseable || false;\n\n    const CUSTOM_CLASS = OPTIONS.customClass || '';\n    const ALERT_STYLE = OPTIONS.accent ? `novo-accent-${OPTIONS.accent}` : OPTIONS.theme || this.defaults.theme;\n    const ALERT_POSITION = OPTIONS.position || this.defaults.position;\n    const ALERT_ICON = OPTIONS.icon || this.icons.default;\n\n    toast.iconClass = `bhi-${ALERT_ICON}`;\n    toast.launched = true;\n    toast.alertTheme = `${ALERT_STYLE} ${ALERT_POSITION} ${CUSTOM_CLASS} toast-container launched`;\n  }\n\n  show(toast) {\n    toast.show = true;\n    setTimeout(addClass, 25);\n    /**\n     * Adds animate class to be called after a timeout\n     **/\n    function addClass() {\n      toast.animate = true;\n    }\n  }\n\n  toastTimer(toast) {\n    if (toast.hideDelay < 0) {\n      return;\n    }\n    setTimeout(() => {\n      this.hide(toast);\n    }, toast.hideDelay);\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}