cocori-ng
Version:
Cocori-ng is an Angular full of great components & utilites based on Material
75 lines • 11.3 kB
JavaScript
import { Injectable } from '@angular/core';
import { NavigationStart } from '@angular/router';
import { filter } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/snack-bar";
import * as i2 from "@angular/router";
// import {
// ToastErrorStacktraceComponent,
// } from '../../shared/component/toast-error-stacktrace/toast-error-stacktrace.component';
export class ToastMessageService {
constructor(toast, router) {
this.toast = toast;
this.router = router;
this.classCss = ["succesToast", "errorToast", "infoToast"];
this.buttonAction = 'Fermer';
this.defaultDuration = 5000;
this.defaultErrorDuration = 0;
this.onChangeUrl();
}
onChangeUrl() {
this.router.events
.pipe(filter((event) => event instanceof NavigationStart), filter(() => !!this.toastRef))
.subscribe(() => this.dismiss());
}
success(message, callback, duration = this.defaultDuration) {
this.messageHandler(callback, message, 0, duration, null);
}
error(message, callback, duration = this.defaultErrorDuration) {
this.messageHandler(callback, message, 1, duration, this.buttonAction);
}
// https://stackblitz.com/edit/snackbar-with-html-so?file=app%2Fhome-page%2Fhome-page.component.ts
errorStacktrace(message, stacktrace, callback, duration = this.defaultErrorDuration) {
const errorStacktrace = { message: message, stacktrace: stacktrace };
// const options = {
// 'panelClass': this.classCss[messageStyle],
// 'duration': !duration ? 0 : duration,
// 'verticalPosition': position
// }
// this.toastRef = this.toast.openFromComponent(ToastErrorStacktraceComponent, { data: errorStacktrace, 'panelClass': this.classCss[1] });
this.onDismiss();
}
info(message, callback, duration = this.defaultDuration) {
this.messageHandler(callback, message, 2, duration, null);
}
messageHandler(callback, message, messageStyle, duration, buttonActionText, position = 'bottom') {
this.callback = callback;
const options = {
'panelClass': this.classCss[messageStyle],
'duration': !duration ? 0 : duration,
'verticalPosition': position
};
this.toastRef = this.toast.open(message, buttonActionText, options);
this.onDismiss();
}
onDismiss() {
if (this.subscription)
this.subscription.unsubscribe();
this.subscription = this.toastRef.afterDismissed().subscribe(() => {
if (this.callback)
this.callback();
});
}
dismiss() {
this.toast.dismiss();
}
}
ToastMessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ToastMessageService, deps: [{ token: i1.MatSnackBar }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
ToastMessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ToastMessageService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ToastMessageService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i1.MatSnackBar }, { type: i2.Router }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtbWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29jb3JpLW5nL3NyYy9mZWF0dXJlLWZvcm0vY29yZS9zZXJ2aWNlL3RvYXN0LW1lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7OztBQUU1QyxXQUFXO0FBQ1gsbUNBQW1DO0FBQ25DLDJGQUEyRjtBQUkzRixNQUFNLE9BQU8sbUJBQW1CO0lBWTlCLFlBQ1UsS0FBa0IsRUFDbkIsTUFBYztRQURiLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVpmLGFBQVEsR0FBYSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFHaEUsaUJBQVksR0FBVyxRQUFRLENBQUE7UUFFdkMsb0JBQWUsR0FBVyxJQUFJLENBQUM7UUFDL0IseUJBQW9CLEdBQVcsQ0FBQyxDQUFDO1FBTy9CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNwQixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBZSxDQUFDLEVBQ25ELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUM5QjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRSxRQUFxQixFQUFFLFdBQW1CLElBQUksQ0FBQyxlQUFlO1FBQ3JGLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLFFBQXFCLEVBQUUsV0FBbUIsSUFBSSxDQUFDLG9CQUFvQjtRQUN4RixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGtHQUFrRztJQUNsRyxlQUFlLENBQUMsT0FBZSxFQUFFLFVBQTRCLEVBQUUsUUFBcUIsRUFBRSxXQUFtQixJQUFJLENBQUMsb0JBQW9CO1FBQ2hJLE1BQU0sZUFBZSxHQUF5QixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBRTNGLG9CQUFvQjtRQUNwQiwrQ0FBK0M7UUFDL0MsMENBQTBDO1FBQzFDLGlDQUFpQztRQUNqQyxJQUFJO1FBRUosMElBQTBJO1FBRTFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxRQUFxQixFQUFFLFdBQW1CLElBQUksQ0FBQyxlQUFlO1FBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxjQUFjLENBQUMsUUFBb0IsRUFBRSxPQUFlLEVBQUUsWUFBb0IsRUFBRSxRQUFnQixFQUFFLGdCQUF3QixFQUFFLFdBQXdDLFFBQVE7UUFDOUssSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsTUFBTSxPQUFPLEdBQUc7WUFDZCxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDekMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDcEMsa0JBQWtCLEVBQUUsUUFBUTtTQUM3QixDQUFBO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEUsSUFBSSxJQUFJLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Z0hBOUVVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIsIE1hdFNuYWNrQmFyVmVydGljYWxQb3NpdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRXJyb3JTdGFja3RyYWNlTW9kZWwsIFN0YWNrdHJhY2VNb2RlbCB9IGZyb20gJ2NvY29yaS1uZy9zcmMvZmVhdHVyZS1jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbi8vIGltcG9ydCB7XHJcbi8vICAgVG9hc3RFcnJvclN0YWNrdHJhY2VDb21wb25lbnQsXHJcbi8vIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbXBvbmVudC90b2FzdC1lcnJvci1zdGFja3RyYWNlL3RvYXN0LWVycm9yLXN0YWNrdHJhY2UuY29tcG9uZW50JztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RNZXNzYWdlU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgY2xhc3NDc3M6IHN0cmluZ1tdID0gW1wic3VjY2VzVG9hc3RcIiwgXCJlcnJvclRvYXN0XCIsIFwiaW5mb1RvYXN0XCJdO1xyXG4gIHByaXZhdGUgY2FsbGJhY2s6IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgdG9hc3RSZWY6IGFueTtcclxuICBwcml2YXRlIGJ1dHRvbkFjdGlvbjogc3RyaW5nID0gJ0Zlcm1lcidcclxuXHJcbiAgZGVmYXVsdER1cmF0aW9uOiBudW1iZXIgPSA1MDAwO1xyXG4gIGRlZmF1bHRFcnJvckR1cmF0aW9uOiBudW1iZXIgPSAwO1xyXG5cclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRvYXN0OiBNYXRTbmFja0JhcixcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwpIHtcclxuICAgIHRoaXMub25DaGFuZ2VVcmwoKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZVVybCgpIHtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCksXHJcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy50b2FzdFJlZiksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRpc21pc3MoKSlcclxuICB9XHJcblxyXG4gIHN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCBjYWxsYmFjaz86ICgpID0+IHZvaWQsIGR1cmF0aW9uOiBudW1iZXIgPSB0aGlzLmRlZmF1bHREdXJhdGlvbikge1xyXG4gICAgdGhpcy5tZXNzYWdlSGFuZGxlcihjYWxsYmFjaywgbWVzc2FnZSwgMCwgZHVyYXRpb24sIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBjYWxsYmFjaz86ICgpID0+IHZvaWQsIGR1cmF0aW9uOiBudW1iZXIgPSB0aGlzLmRlZmF1bHRFcnJvckR1cmF0aW9uKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyKGNhbGxiYWNrLCBtZXNzYWdlLCAxLCBkdXJhdGlvbiwgdGhpcy5idXR0b25BY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgLy8gaHR0cHM6Ly9zdGFja2JsaXR6LmNvbS9lZGl0L3NuYWNrYmFyLXdpdGgtaHRtbC1zbz9maWxlPWFwcCUyRmhvbWUtcGFnZSUyRmhvbWUtcGFnZS5jb21wb25lbnQudHNcclxuICBlcnJvclN0YWNrdHJhY2UobWVzc2FnZTogc3RyaW5nLCBzdGFja3RyYWNlPzogU3RhY2t0cmFjZU1vZGVsLCBjYWxsYmFjaz86ICgpID0+IHZvaWQsIGR1cmF0aW9uOiBudW1iZXIgPSB0aGlzLmRlZmF1bHRFcnJvckR1cmF0aW9uKSB7XHJcbiAgICBjb25zdCBlcnJvclN0YWNrdHJhY2U6IEVycm9yU3RhY2t0cmFjZU1vZGVsID0geyBtZXNzYWdlOiBtZXNzYWdlLCBzdGFja3RyYWNlOiBzdGFja3RyYWNlIH07XHJcblxyXG4gICAgLy8gY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgIC8vICAgJ3BhbmVsQ2xhc3MnOiB0aGlzLmNsYXNzQ3NzW21lc3NhZ2VTdHlsZV0sXHJcbiAgICAvLyAgICdkdXJhdGlvbic6ICFkdXJhdGlvbiA/IDAgOiBkdXJhdGlvbixcclxuICAgIC8vICAgJ3ZlcnRpY2FsUG9zaXRpb24nOiBwb3NpdGlvblxyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIHRoaXMudG9hc3RSZWYgPSB0aGlzLnRvYXN0Lm9wZW5Gcm9tQ29tcG9uZW50KFRvYXN0RXJyb3JTdGFja3RyYWNlQ29tcG9uZW50LCB7IGRhdGE6IGVycm9yU3RhY2t0cmFjZSwgJ3BhbmVsQ2xhc3MnOiB0aGlzLmNsYXNzQ3NzWzFdIH0pO1xyXG5cclxuICAgIHRoaXMub25EaXNtaXNzKCk7XHJcbiAgfVxyXG5cclxuICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgY2FsbGJhY2s/OiAoKSA9PiB2b2lkLCBkdXJhdGlvbjogbnVtYmVyID0gdGhpcy5kZWZhdWx0RHVyYXRpb24pIHtcclxuICAgIHRoaXMubWVzc2FnZUhhbmRsZXIoY2FsbGJhY2ssIG1lc3NhZ2UsIDIsIGR1cmF0aW9uLCBudWxsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVzc2FnZUhhbmRsZXIoY2FsbGJhY2s6ICgpID0+IHZvaWQsIG1lc3NhZ2U6IHN0cmluZywgbWVzc2FnZVN0eWxlOiBudW1iZXIsIGR1cmF0aW9uOiBudW1iZXIsIGJ1dHRvbkFjdGlvblRleHQ6IHN0cmluZywgcG9zaXRpb246IE1hdFNuYWNrQmFyVmVydGljYWxQb3NpdGlvbiA9ICdib3R0b20nKSB7XHJcbiAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XHJcblxyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgJ3BhbmVsQ2xhc3MnOiB0aGlzLmNsYXNzQ3NzW21lc3NhZ2VTdHlsZV0sXHJcbiAgICAgICdkdXJhdGlvbic6ICFkdXJhdGlvbiA/IDAgOiBkdXJhdGlvbixcclxuICAgICAgJ3ZlcnRpY2FsUG9zaXRpb24nOiBwb3NpdGlvblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudG9hc3RSZWYgPSB0aGlzLnRvYXN0Lm9wZW4obWVzc2FnZSwgYnV0dG9uQWN0aW9uVGV4dCwgb3B0aW9ucyk7XHJcblxyXG4gICAgdGhpcy5vbkRpc21pc3MoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25EaXNtaXNzKCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50b2FzdFJlZi5hZnRlckRpc21pc3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmNhbGxiYWNrKSB0aGlzLmNhbGxiYWNrKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRpc21pc3MoKSB7XHJcbiAgICB0aGlzLnRvYXN0LmRpc21pc3MoKTtcclxuICB9XHJcbn1cclxuIl19