import { animate, state, style, transition, trigger } from '@angular/animations'; import { CommonModule } from '@angular/common'; import { Component, ModuleWithProviders, NgModule } from '@angular/core'; import { DefaultNoComponentGlobalConfig, GlobalConfig, Toast as BaseToast, ToastPackage, ToastrService, TOAST_CONFIG } from 'ngx-toastr'; @Component({ selector: '[toast-component2]', template: `
{{ title }} [{{ duplicatesCount + 1 }}]
{{ message }}
`, animations: [ trigger('flyInOut', [ state('inactive', style({ opacity: 0 })), state('active', style({ opacity: 1 })), state('removed', style({ opacity: 0 })), transition( 'inactive => active', animate('{{ easeTime }}ms {{ easing }}') ), transition( 'active => removed', animate('{{ easeTime }}ms {{ easing }}') ), ]), ], preserveWhitespaces: false, }) export class BitwardenToast extends BaseToast { constructor(protected toastrService: ToastrService, public toastPackage: ToastPackage) { super(toastrService, toastPackage); } } export const BitwardenToastGlobalConfig: GlobalConfig = { ...DefaultNoComponentGlobalConfig, toastComponent: BitwardenToast, }; @NgModule({ imports: [CommonModule], declarations: [BitwardenToast], exports: [BitwardenToast], }) export class BitwardenToastModule { static forRoot(config: Partial = {}): ModuleWithProviders { return { ngModule: BitwardenToastModule, providers: [ { provide: TOAST_CONFIG, useValue: { default: BitwardenToastGlobalConfig, config: config, }, }, ], }; } }