import { Component } from '@angular/core' ; import { NbComponentStatus , NbGlobalLogicalPosition , NbGlobalPhysicalPosition , NbGlobalPosition , NbToastrService , NbToastrConfig , } from '@nebular/theme' ; @ Component ( { selector : 'ngx-toastr' , styleUrls : [ './toastr.component.scss' ] , templateUrl : './toastr.component.html' , } ) export class ToastrComponent { constructor ( private toastrService ) { } config : NbToastrConfig ; index = 1 ; destroyByClick = true ; duration = 2000 ; hasIcon = true ; position : NbGlobalPosition = NbGlobalPhysicalPosition . TOP_RIGHT ; preventDuplicates = false ; status : NbComponentStatus = 'primary' ; title = 'HI there!' ; content = `I'm cool toaster!` ; types : NbComponentStatus [ ] = [ 'primary' , 'success' , 'info' , 'warning' , 'danger' , ] ; positions : string [ ] = [ NbGlobalPhysicalPosition . TOP_RIGHT , NbGlobalPhysicalPosition . TOP_LEFT , NbGlobalPhysicalPosition . BOTTOM_LEFT , NbGlobalPhysicalPosition . BOTTOM_RIGHT , NbGlobalLogicalPosition . TOP_END , NbGlobalLogicalPosition . TOP_START , NbGlobalLogicalPosition . BOTTOM_END , NbGlobalLogicalPosition . BOTTOM_START , ] ; quotes = [ { title : null , body : 'We rock at Angular' } , { title : null , body : 'Titles are not always needed' } , { title : null , body : 'Toastr rock!' } , ] ; makeToast ( ) { this . showToast ( this . status , this . title , this . content ) ; } openRandomToast ( ) { const typeIndex = Math . floor ( Math . random ( ) * this . types . length ) ; const quoteIndex = Math . floor ( Math . random ( ) * this . quotes . length ) ; const type = this . types [ typeIndex ] ; const quote = this . quotes [ quoteIndex ] ; this . showToast ( type , quote . title , quote . body ) ; } private showToast ( type , title , body ) { const config = { status : type , destroyByClick : this . destroyByClick , duration : this . duration , hasIcon : this . hasIcon , position : this . position , preventDuplicates : this . preventDuplicates , } ; const titleContent = title ? `. ${ title }` : '' ; this . index += 1 ; this . toastrService . show ( body , `Toast ${ this . index }${ titleContent }` , config ) ; } }