UNPKG

angular2-toaster

Version:

An Angular Toaster Notification library based on AngularJS-Toaster

1 lines 42.6 kB
{"version":3,"file":"angular2-toaster.js","sources":["../../../src/angular2-toaster/src/lib/transitions.ts","../../../src/angular2-toaster/src/lib/bodyOutputType.ts","../../../src/angular2-toaster/src/lib/toaster-config.ts","../../../src/angular2-toaster/src/lib/toaster.service.ts","../../../src/angular2-toaster/src/lib/toaster-container.component.ts","../../../src/angular2-toaster/src/lib/toast.component.ts","../../../src/angular2-toaster/src/lib/trust-html.pipe.ts","../../../src/angular2-toaster/src/lib/toaster.module.ts","../../../../src/angular2-toaster/src/public-api.ts","../../../../src/angular2-toaster/src/angular2-toaster.ts"],"sourcesContent":["import { \n trigger, state, style, animate, transition, group \n} from '@angular/animations';\n\nexport const Transitions = [\n trigger('toastState', [\n state('flyRight, flyLeft, slideDown, slideDown, slideUp, slideUp, fade', \n style({ opacity: 1, transform: 'translate(0,0)' })),\n transition('void => flyRight', [\n style({\n opacity: 0,\n transform: 'translateX(100%)',\n height: 0\n }),\n animate('0.15s ease-in', style({\n opacity: 1,\n height: '*'\n })),\n animate('0.25s 15ms ease-in')\n ]),\n transition('flyRight => void', [\n animate('0.25s ease-out', style({\n opacity: 0,\n transform: 'translateX(100%)'\n })),\n animate('0.15s ease-out', style({\n height: 0\n }))\n ]),\n transition('void => flyLeft', [\n style({\n opacity: 0, \n transform: 'translateX(-100%)',\n height: 0\n }),\n animate('0.15s ease-in', style({\n opacity: 1,\n height: '*'\n })),\n animate('0.25s 15ms ease-in')\n ]),\n transition('flyLeft => void', [\n animate('0.25s 10ms ease-out', style({\n opacity: 0, \n transform: 'translateX(-100%)'\n })),\n animate('0.15s ease-out', style({\n height: 0\n }))\n ]),\n transition('void => slideDown', [\n style({\n opacity: 0, \n transform: 'translateY(-500%)',\n height: 0\n }),\n group([\n animate('0.2s ease-in', style({\n height: '*'\n })),\n animate('0.4s ease-in', style({\n transform: 'translate(0,0)'\n })), \n animate('0.3s 0.1s ease-in', style({\n opacity: 1\n }))\n ])\n ]),\n transition('slideDown => void', group([\n animate('0.3s ease-out', style({\n opacity: 0\n })),\n animate('0.4s ease-out', style({\n transform: 'translateY(-500%)'\n })), \n animate('0.2s 0.2s ease-out', style({\n height: 0\n }))\n ])),\n transition('void => slideUp', [\n style({\n opacity: 0, \n transform: 'translateY(1000%)',\n height: 0\n }),\n group([\n animate('0.2s ease-in', style({\n height: '*'\n })),\n animate('0.5s ease-in', style({\n transform: 'translate(0,0)'\n })), \n animate('0.3s 0.1s ease-in', style({\n opacity: 1\n }))\n ])\n ]),\n transition('slideUp => void', group([\n animate('0.3s ease-out', style({\n opacity: 0\n })),\n animate('0.5s ease-out', style({\n transform: 'translateY(1000%)'\n })), \n animate('0.3s 0.15s ease-out', style({\n height: 0\n }))\n ])),\n transition('void => fade', [\n style({\n opacity: 0,\n height: 0\n }),\n animate('0.20s ease-in', style({\n height: '*'\n })),\n animate('0.15s ease-in', style({\n opacity: 1\n }))\n \n ]),\n transition('fade => void', [\n group([\n animate('0.0s ease-out', style({\n // reposition the background to prevent\n // a ghost image during transition\n 'background-position': '-99999px'\n })),\n animate('0.15s ease-out', style({\n opacity: 0,\n 'background-image': ''\n })),\n animate('0.3s 20ms ease-out', style({\n height: 0\n }))\n ])\n ])\n ]),\n]","export enum BodyOutputType {\n Default, TrustedHtml, Component\n}\n","import { Injectable } from '@angular/core';\nimport { BodyOutputType } from './bodyOutputType';\nimport { ToastType } from './toast';\n\nexport const DefaultTypeClasses : { [key in ToastType]? : string } = {\n error: 'toast-error',\n info: 'toast-info',\n wait: 'toast-wait',\n success: 'toast-success',\n warning: 'toast-warning'\n};\n\nexport const DefaultIconClasses : { [key in ToastType]? : string } = {\n error: 'icon-error',\n info: 'icon-info',\n wait: 'icon-wait',\n success: 'icon-success',\n warning: 'icon-warning'\n};\n\nexport interface IToasterConfig {\n limit?: number|null;\n tapToDismiss?: boolean;\n showCloseButton?: boolean|{ [key in ToastType]?: boolean};\n closeHtml?: string;\n newestOnTop?: boolean;\n timeout?: number|{ [key in ToastType]?: number };\n typeClasses?: { [key in ToastType]?: string };\n iconClasses?: { [key in ToastType]?: string };\n bodyOutputType?: BodyOutputType;\n bodyTemplate?: string;\n defaultToastType?: ToastType;\n // Options (see CSS):\n // 'toast-top-full-width', 'toast-bottom-full-width', 'toast-center',\n // 'toast-top-left', 'toast-top-center', 'toast-top-right',\n // 'toast-bottom-left', 'toast-bottom-center', 'toast-bottom-right',\n positionClass?: string;\n titleClass?: string;\n messageClass?: string;\n animation?: string;\n preventDuplicates?: boolean;\n mouseoverTimerStop?: boolean;\n toastContainerId?: number|null;\n}\n\n@Injectable()\nexport class ToasterConfig implements IToasterConfig {\n limit?: number|null;\n tapToDismiss: boolean;\n showCloseButton: boolean|{ [key in ToastType]?: boolean };\n closeHtml: string;\n newestOnTop: boolean;\n timeout: number|{ [key in ToastType]?: number };\n typeClasses: { [key in ToastType]?: string };\n iconClasses: { [key in ToastType]?: string };\n bodyOutputType: BodyOutputType;\n bodyTemplate: string;\n defaultToastType: ToastType;\n // Options (see CSS):\n // 'toast-top-full-width', 'toast-bottom-full-width', 'toast-center',\n // 'toast-top-left', 'toast-top-center', 'toast-top-right',\n // 'toast-bottom-left', 'toast-bottom-center', 'toast-bottom-right',\n positionClass: string;\n titleClass: string;\n messageClass: string;\n animation: string;\n preventDuplicates: boolean;\n mouseoverTimerStop: boolean;\n toastContainerId?: number|null;\n\n constructor(configOverrides?: IToasterConfig) {\n configOverrides = configOverrides || {};\n this.limit = configOverrides.limit || null;\n this.tapToDismiss = configOverrides.tapToDismiss != null ? configOverrides.tapToDismiss : true;\n this.showCloseButton = configOverrides.showCloseButton != null ? configOverrides.showCloseButton : false;\n this.closeHtml = configOverrides.closeHtml || '<span>&times;</span>';\n this.newestOnTop = configOverrides.newestOnTop != null ? configOverrides.newestOnTop : true;\n this.timeout = configOverrides.timeout != null ? configOverrides.timeout : 5000;\n this.typeClasses = configOverrides.typeClasses || DefaultTypeClasses;\n this.iconClasses = configOverrides.iconClasses || DefaultIconClasses;\n this.bodyOutputType = configOverrides.bodyOutputType || BodyOutputType.Default;\n this.bodyTemplate = configOverrides.bodyTemplate || 'toasterBodyTmpl.html';\n this.defaultToastType = configOverrides.defaultToastType || 'info';\n this.positionClass = configOverrides.positionClass || 'toast-top-right';\n this.titleClass = configOverrides.titleClass || 'toast-title';\n this.messageClass = configOverrides.messageClass || 'toast-message';\n this.animation = configOverrides.animation || '';\n this.preventDuplicates = configOverrides.preventDuplicates != null ? configOverrides.preventDuplicates : false;\n this.mouseoverTimerStop = configOverrides.mouseoverTimerStop != null ? configOverrides.mouseoverTimerStop : false;\n this.toastContainerId = configOverrides.toastContainerId != null ? configOverrides.toastContainerId : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Toast, ToastType } from './toast';\nimport { IClearWrapper } from './clearWrapper';\nimport { Observable, Subject, Observer } from 'rxjs';\nimport { share } from 'rxjs/operators'\n\n// http://stackoverflow.com/questions/26501688/a-typescript-guid-class\nclass Guid {\n static newGuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : ( r & 0x3 | 0x8 );\n return v.toString(16);\n });\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService {\n addToast: Observable<Toast>;\n private _addToast: Observer<Toast>;\n\n clearToasts: Observable<IClearWrapper>;\n private _clearToasts: Observer<IClearWrapper>;\n\n removeToast: Observable<IClearWrapper>;\n /** @internal */\n _removeToastSubject: Subject<IClearWrapper>;\n\n /**\n * Creates an instance of ToasterService.\n */\n constructor() {\n this.addToast = new Observable<Toast>((observer: any) => this._addToast = observer).pipe(share());\n this.clearToasts = new Observable<IClearWrapper>((observer: any) => this._clearToasts = observer).pipe(share());\n this._removeToastSubject = new Subject<IClearWrapper>()\n this.removeToast = this._removeToastSubject.pipe(share());\n }\n\n /**\n * Synchronously create and show a new toast instance.\n *\n * @param {(string | Toast)} type The type of the toast, or a Toast object.\n * @param {string=} title The toast title.\n * @param {string=} body The toast body.\n * @returns {Toast}\n * The newly created Toast instance with a randomly generated GUID Id.\n */\n pop(type: ToastType | Toast, title?: string, body?: string): Toast {\n const toast = typeof type === 'string' ? { type: type, title: title, body: body } : type;\n\n if (!toast.toastId) {\n toast.toastId = Guid.newGuid();\n }\n\n if (!this._addToast) {\n throw new Error('No Toaster Containers have been initialized to receive toasts.');\n }\n\n this._addToast.next(toast);\n return toast;\n }\n\n /**\n * Asynchronously create and show a new toast instance.\n *\n * @param {(string | Toast)} type The type of the toast, or a Toast object.\n * @param {string=} title The toast title.\n * @param {string=} body The toast body.\n * @returns {Observable<Toast>}\n * A hot Observable that can be subscribed to in order to receive the Toast instance\n * with a randomly generated GUID Id.\n */\n popAsync(type: ToastType | Toast, title?: string, body?: string): Observable<Toast> {\n setTimeout(() => {\n this.pop(type, title, body);\n }, 0);\n\n return this.addToast;\n }\n\n /**\n * Clears a toast by toastId and/or toastContainerId.\n *\n * @param {string} toastId The toastId to clear.\n * @param {number=} toastContainerId\n * The toastContainerId of the container to remove toasts from.\n */\n clear(toastId?: string, toastContainerId?: number) {\n const clearWrapper: IClearWrapper = {\n toastId: toastId, toastContainerId: toastContainerId\n };\n\n this._clearToasts.next(clearWrapper)\n }\n}\n","import { \n Component,\n Input, \n OnInit,\n OnDestroy \n} from '@angular/core';\nimport { Transitions } from './transitions';\nimport { ToasterConfig } from './toaster-config';\nimport { ToasterService} from './toaster.service';\nimport { IClearWrapper } from './clearWrapper';\nimport { Toast } from './toast';\n\n@Component({\n selector: 'toaster-container',\n template: `\n <div class=\"toast-container\" [ngClass]=\"[toasterconfig.positionClass]\">\n <div toastComp *ngFor=\"let toast of toasts\" class=\"toast\" [toast]=\"toast\"\n [toasterconfig]=\"toasterconfig\"\n [@toastState]=\"toasterconfig.animation\"\n [titleClass]=\"toasterconfig.titleClass\"\n [messageClass]=\"toasterconfig.messageClass\"\n [ngClass]=\"[\n toasterconfig.iconClasses[toast.type],\n toasterconfig.typeClasses[toast.type]\n ]\"\n (click)=\"click(toast)\" (clickEvent)=\"childClick($event)\"\n (removeToastEvent)=\"removeToast($event)\"\n >\n </div>\n </div>\n `,\n animations: Transitions\n})\nexport class ToasterContainerComponent implements OnInit, OnDestroy {\n private addToastSubscriber: any;\n private clearToastsSubscriber: any;\n private toasterService: ToasterService;\n\n @Input() toasterconfig: ToasterConfig;\n\n public toasts: Toast[] = [];\n\n constructor(toasterService: ToasterService) {\n this.toasterService = toasterService;\n }\n\n ngOnInit() {\n this.registerSubscribers();\n if (this.isNullOrUndefined(this.toasterconfig)) {\n this.toasterconfig = new ToasterConfig();\n }\n }\n\n // event handlers\n click(toast: Toast, isCloseButton?: boolean) {\n if (toast.onClickCallback) {\n toast.onClickCallback(toast);\n }\n\n const tapToDismiss = !this.isNullOrUndefined(toast.tapToDismiss) \n ? toast.tapToDismiss\n : this.toasterconfig.tapToDismiss;\n\n if (tapToDismiss || (toast.showCloseButton && isCloseButton)) {\n this.removeToast(toast);\n }\n }\n\n childClick($event: any) {\n this.click($event.value.toast, $event.value.isCloseButton);\n }\n\n removeToast(toast: Toast) {\n const index = this.toasts.indexOf(toast);\n if (index < 0) { return };\n\n const toastId = this.toastIdOrDefault(toast);\n\n this.toasts.splice(index, 1);\n\n if (toast.onHideCallback) { toast.onHideCallback(toast); }\n this.toasterService._removeToastSubject.next({ toastId: toastId, toastContainerId: toast.toastContainerId });\n }\n\n // private functions\n private registerSubscribers() {\n this.addToastSubscriber = this.toasterService.addToast.subscribe((toast: Toast) => {\n this.addToast(toast);\n });\n\n this.clearToastsSubscriber = this.toasterService.clearToasts.subscribe((clearWrapper: IClearWrapper) => {\n this.clearToasts(clearWrapper);\n });\n }\n\n private addToast(toast: Toast) {\n if (toast.toastContainerId && this.toasterconfig.toastContainerId\n && toast.toastContainerId !== this.toasterconfig.toastContainerId) { return };\n\n if (!toast.type \n || !this.toasterconfig.typeClasses[toast.type]\n || !this.toasterconfig.iconClasses[toast.type]) {\n toast.type = this.toasterconfig.defaultToastType;\n }\n\n if (this.toasterconfig.preventDuplicates && this.toasts.length > 0) {\n if (toast.toastId && this.toasts.some(t => t.toastId === toast.toastId)) {\n return;\n } else if (this.toasts.some(t => t.body === toast.body)) {\n return;\n }\n }\n\n if (this.isNullOrUndefined(toast.showCloseButton)) {\n if (typeof this.toasterconfig.showCloseButton === 'object') {\n toast.showCloseButton = this.toasterconfig.showCloseButton[toast.type];\n } else if (typeof this.toasterconfig.showCloseButton === 'boolean') {\n toast.showCloseButton = <boolean>this.toasterconfig.showCloseButton;\n }\n }\n\n if (toast.showCloseButton) {\n toast.closeHtml = toast.closeHtml || this.toasterconfig.closeHtml;\n }\n\n toast.bodyOutputType = toast.bodyOutputType || this.toasterconfig.bodyOutputType;\n\n if (this.toasterconfig.newestOnTop) {\n this.toasts.unshift(toast);\n if (this.isLimitExceeded()) {\n this.toasts.pop();\n }\n } else {\n this.toasts.push(toast);\n if (this.isLimitExceeded()) {\n this.toasts.shift();\n }\n }\n\n if (toast.onShowCallback) {\n toast.onShowCallback(toast);\n }\n }\n\n private isLimitExceeded() {\n return this.toasterconfig.limit && this.toasts.length > this.toasterconfig.limit;\n }\n\n private removeAllToasts() {\n for (let i = this.toasts.length - 1; i >= 0; i--) {\n this.removeToast(this.toasts[i]);\n }\n }\n\n private clearToasts(clearWrapper: IClearWrapper) {\n const toastId = clearWrapper.toastId ;\n const toastContainerId = clearWrapper.toastContainerId;\n\n if (this.isNullOrUndefined(toastContainerId) || (toastContainerId === this.toasterconfig.toastContainerId)) {\n this.clearToastsAction(toastId);\n }\n }\n\n private clearToastsAction(toastId?: string) {\n if (toastId) {\n this.removeToast(this.toasts.filter(t => t.toastId === toastId)[0]);\n } else {\n this.removeAllToasts();\n }\n }\n\n private toastIdOrDefault(toast: Toast) {\n return toast.toastId || '';\n }\n\n private isNullOrUndefined(value: any): boolean {\n return value === null || typeof value === 'undefined';\n }\n\n ngOnDestroy() {\n if (this.addToastSubscriber) { this.addToastSubscriber.unsubscribe(); }\n if (this.clearToastsSubscriber) { this.clearToastsSubscriber.unsubscribe(); }\n }\n}\n","import {\n Component, \n Input, \n Output, \n ViewChild, \n ViewContainerRef, \n EventEmitter,\n ComponentFactoryResolver, \n ChangeDetectorRef, \n OnInit, \n AfterViewInit, \n OnDestroy,\n HostListener,\n NgZone, \n ElementRef,\n Renderer2\n} from '@angular/core';\nimport { Toast } from './toast';\nimport { BodyOutputType } from './bodyOutputType';\nimport { ToasterConfig } from './toaster-config';\n\n@Component({\n selector: '[toastComp]',\n template: `\n <div class=\"toast-content\">\n <div [ngClass]=\"titleClass\">{{toast.title}}</div>\n <div [ngClass]=\"messageClass\" [ngSwitch]=\"toast.bodyOutputType\">\n <div *ngSwitchCase=\"bodyOutputType.Component\" #componentBody></div>\n <div *ngSwitchCase=\"bodyOutputType.TrustedHtml\" [innerHTML]=\"toast.body | trustHtml\"></div>\n <div *ngSwitchCase=\"bodyOutputType.Default\">{{toast.body}}</div>\n </div>\n </div>\n <button class=\"toast-close-button\" *ngIf=\"toast.showCloseButton\" (click)=\"click($event, toast)\"\n [innerHTML]=\"toast.closeHtml | trustHtml\">\n </button>\n <div *ngIf=\"toast.progressBar\">\n <div class=\"toast-progress-bar\" [style.width]=\"progressBarWidth + '%'\"></div>\n </div>`\n})\nexport class ToastComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() toasterconfig: ToasterConfig;\n @Input() toast: Toast;\n @Input() titleClass: string;\n @Input() messageClass: string;\n @ViewChild('componentBody', { read: ViewContainerRef, static: false }) componentBody: ViewContainerRef;\n\n public progressBarWidth: number = -1;\n public bodyOutputType = BodyOutputType;\n\n @Output()\n public clickEvent = new EventEmitter();\n @Output()\n public removeToastEvent = new EventEmitter<Toast>();\n\n private timeoutId?: number = null;\n private timeout: number = 0;\n private progressBarIntervalId?: number = null;\n private removeToastTick: number;\n\n private removeMouseOverListener: () => void;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private element: ElementRef,\n private renderer2: Renderer2\n ) {}\n\n ngOnInit() {\n if (this.toast.progressBar) {\n this.toast.progressBarDirection = this.toast.progressBarDirection || 'decreasing';\n }\n\n let timeout = (typeof this.toast.timeout === 'number')\n ? this.toast.timeout : this.toasterconfig.timeout;\n\n if (typeof timeout === 'object') { \n timeout = timeout[this.toast.type]; \n };\n\n this.timeout = timeout;\n }\n\n ngAfterViewInit() {\n if (this.toast.bodyOutputType === this.bodyOutputType.Component) {\n const component = this.componentFactoryResolver.resolveComponentFactory(this.toast.body);\n const componentInstance: any = this.componentBody.createComponent(component, undefined, this.componentBody.injector);\n componentInstance.instance.toast = this.toast;\n this.changeDetectorRef.detectChanges();\n }\n\n if (this.toasterconfig.mouseoverTimerStop) {\n // only apply a mouseenter event when necessary to avoid\n // unnecessary event and change detection cycles.\n this.removeMouseOverListener = this.renderer2.listen(\n this.element.nativeElement, \n 'mouseenter', \n () => this.stopTimer()\n );\n }\n\n this.configureTimer();\n }\n\n click(event: MouseEvent, toast: Toast) {\n event.stopPropagation();\n this.clickEvent.emit({ value : { toast: toast, isCloseButton: true } });\n }\n\n stopTimer() {\n this.progressBarWidth = 0;\n this.clearTimers();\n }\n\n @HostListener('mouseleave') \n restartTimer() {\n if (this.toasterconfig.mouseoverTimerStop) {\n if (!this.timeoutId) {\n this.configureTimer();\n }\n } else if (this.timeout && !this.timeoutId) {\n this.removeToast();\n }\n }\n\n ngOnDestroy() {\n if (this.removeMouseOverListener) {\n this.removeMouseOverListener();\n }\n this.clearTimers();\n }\n\n private configureTimer() {\n if (!this.timeout || this.timeout < 1) {\n return;\n }\n\n if (this.toast.progressBar) {\n this.removeToastTick = new Date().getTime() + this.timeout;\n this.progressBarWidth = -1;\n } \n \n this.ngZone.runOutsideAngular(() => {\n this.timeoutId = window.setTimeout(() => {\n this.ngZone.run(() => {\n this.changeDetectorRef.markForCheck();\n this.removeToast();\n });\n }, this.timeout);\n\n if (this.toast.progressBar) {\n this.progressBarIntervalId = window.setInterval(() => {\n this.ngZone.run(() => {\n this.updateProgressBar();\n });\n }, 10);\n }\n });\n }\n\n private updateProgressBar() {\n if (this.progressBarWidth === 0 || this.progressBarWidth === 100) {\n return;\n }\n\n this.progressBarWidth = ((this.removeToastTick - new Date().getTime()) / this.timeout) * 100;\n \n if (this.toast.progressBarDirection === 'increasing') {\n this.progressBarWidth = 100 - this.progressBarWidth;\n }\n if (this.progressBarWidth < 0) {\n this.progressBarWidth = 0;\n }\n if (this.progressBarWidth > 100) {\n this.progressBarWidth = 100;\n }\n }\n\n private clearTimers() {\n if (this.timeoutId) {\n window.clearTimeout(this.timeoutId)\n }\n\n if (this.progressBarIntervalId) {\n window.clearInterval(this.progressBarIntervalId);\n }\n\n this.timeoutId = null;\n this.progressBarIntervalId = null;\n }\n\n private removeToast() {\n this.removeToastEvent.emit(this.toast);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'trustHtml',\n pure: true\n})\nexport class TrustHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(content: any): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(content);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToastComponent } from './toast.component';\nimport { ToasterContainerComponent } from './toaster-container.component';\nimport { ToasterService } from './toaster.service';\nimport { TrustHtmlPipe } from './trust-html.pipe';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n ToastComponent,\n ToasterContainerComponent,\n TrustHtmlPipe\n ],\n exports: [\n ToasterContainerComponent,\n ToastComponent\n ]\n})\nexport class ToasterModule {\n static forRoot(): ModuleWithProviders<ToasterModule> {\n return {\n ngModule: ToasterModule,\n providers: [ToasterService, ToasterContainerComponent]\n }\n }\n\n static forChild(): ModuleWithProviders<ToasterModule> {\n return {\n ngModule: ToasterModule,\n providers: [ToasterContainerComponent]\n }\n }\n }\n","/*\n * Public API Surface of angular2-toaster\n */\n\nexport * from './lib/toaster-container.component';\nexport * from './lib/toaster.service';\nexport * from './lib/clearWrapper';\nexport * from './lib/toaster-config';\nexport * from './lib/toast';\nexport * from './lib/bodyOutputType';\nexport * from './lib/toaster.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ToastComponent as ɵb} from './lib/toast.component';\nexport {Transitions as ɵa} from './lib/transitions';\nexport {TrustHtmlPipe as ɵc} from './lib/trust-html.pipe';"],"names":[],"mappings":"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"}