toast-message-display 18.0.3 → 18.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/pipes/safe-html.pipe.mjs +3 -3
- package/esm2022/lib/services/toast-message.service.mjs +3 -3
- package/esm2022/lib/toast-demo/toast-demo.component.mjs +3 -3
- package/esm2022/lib/toast-message-inline/toast-message-inline.component.mjs +3 -3
- package/esm2022/lib/toast-message.module.mjs +5 -9
- package/esm2022/lib/toast-ui/toast-ui.component.mjs +3 -3
- package/esm2022/lib/utils/color-conversion.service.mjs +3 -3
- package/esm2022/lib/utils/text-color.service.mjs +3 -3
- package/fesm2022/toast-message-display.mjs +26 -29
- package/fesm2022/toast-message-display.mjs.map +1 -1
- package/lib/toast-message.module.d.ts +9 -10
- package/package.json +1 -1
- package/toast-message-display-18.0.4.tgz +0 -0
- package/toast-message-display-18.0.3.tgz +0 -0
|
@@ -8,10 +8,10 @@ export class SafeHtmlPipe {
|
|
|
8
8
|
transform(html) {
|
|
9
9
|
return this.sanitizer.bypassSecurityTrustHtml(html);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SafeHtmlPipe, name: "safeHtml" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'safeHtml',
|
|
@@ -43,10 +43,10 @@ export class ToastMessageDisplayService {
|
|
|
43
43
|
console.error('Snackbar reference is undefined. Unable to subscribe to dismissal event.');
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
47
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
47
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, providedIn: 'root' }); }
|
|
48
48
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, decorators: [{
|
|
50
50
|
type: Injectable,
|
|
51
51
|
args: [{
|
|
52
52
|
providedIn: 'root'
|
|
@@ -111,10 +111,10 @@ export class ToastDemoComponent {
|
|
|
111
111
|
onClosedToast(toast) {
|
|
112
112
|
console.log(toast);
|
|
113
113
|
}
|
|
114
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
115
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
114
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
115
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToastDemoComponent, selector: "app-toast-display-demo", ngImport: i0, template: "<mat-toolbar style=\"display: flex;\">\n <div>Toast Message Demo</div>\n <div style=\"flex:1; text-align: end;\">\n <button\n mat-stroked-button\n [matMenuTriggerFor]=\"menu\"\n matIconPrefix\n >\n {{ type | titlecase }}\n <mat-icon>layers</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"onSelectType('basic')\"\n >\n Basic\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('icon')\"\n >\n Icon\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('action')\"\n >\n Action\n </button>\n</mat-menu>\n\n<div style=\"margin: 1rem;\">\n <span [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'icon'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border')\"\n >\n Icon - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard')\"\n >\n Icon - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event')\"\n >\n Icon - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid')\"\n >\n Icon - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'notifications')\"\n >\n Icon - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'movie_filter')\"\n >\n Icon - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'action'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon and Action</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border', 'Dismiss')\"\n >\n Action - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard', 'Dismiss')\"\n >\n Action - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event', 'Dismiss')\"\n >\n Action - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid', 'Dismiss')\"\n >\n Action - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY', 'notifications', 'Dismiss')\"\n >\n Action - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL', 'movie_filter', 'Dismiss')\"\n >\n Action - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchDefault>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Basic Toast</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS')\"\n >\n Basic - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR')\"\n >\n Basic - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO')\"\n >\n Basic - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN')\"\n >\n Basic - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY')\"\n >\n Basic - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL')\"\n >\n Basic - GENERAL\n </button>\n </div>\n </div>\n\n </div>\n </span>\n <div style=\"display: flex; margin-top: 1rem;\">\n <mat-radio-group [formControl]=\"position\" style=\"display: flex; gap: 2rem\">\n <mat-radio-button value=\"top\">Top Position</mat-radio-button>\n <mat-radio-button value=\"bottom\">Bottom Position</mat-radio-button>\n </mat-radio-group>\n </div>\n</div>\n\n<div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div style=\"margin: 1rem;\">\n <button mat-stroked-button (click)=\"onInline()\" style=\"margin-bottom: 2rem;\">\n Add Inline Toast Message\n </button>\n <app-toast-message-display-inline\n [toast]=\"pickToastSample\"\n [duration]=\"5\"\n (close)=\"onClosedToast($event)\"\n ></app-toast-message-display-inline>\n</div>\n", styles: [".bold{font-size:22px;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i7.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i7.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i9.ToastMessageInlineComponent, selector: "app-toast-message-display-inline", inputs: ["toast", "duration", "position"], outputs: ["close"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }] }); }
|
|
116
116
|
}
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastDemoComponent, decorators: [{
|
|
118
118
|
type: Component,
|
|
119
119
|
args: [{ selector: 'app-toast-display-demo', template: "<mat-toolbar style=\"display: flex;\">\n <div>Toast Message Demo</div>\n <div style=\"flex:1; text-align: end;\">\n <button\n mat-stroked-button\n [matMenuTriggerFor]=\"menu\"\n matIconPrefix\n >\n {{ type | titlecase }}\n <mat-icon>layers</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"onSelectType('basic')\"\n >\n Basic\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('icon')\"\n >\n Icon\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('action')\"\n >\n Action\n </button>\n</mat-menu>\n\n<div style=\"margin: 1rem;\">\n <span [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'icon'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border')\"\n >\n Icon - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard')\"\n >\n Icon - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event')\"\n >\n Icon - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid')\"\n >\n Icon - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'notifications')\"\n >\n Icon - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'movie_filter')\"\n >\n Icon - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'action'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon and Action</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border', 'Dismiss')\"\n >\n Action - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard', 'Dismiss')\"\n >\n Action - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event', 'Dismiss')\"\n >\n Action - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid', 'Dismiss')\"\n >\n Action - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY', 'notifications', 'Dismiss')\"\n >\n Action - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL', 'movie_filter', 'Dismiss')\"\n >\n Action - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchDefault>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Basic Toast</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS')\"\n >\n Basic - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR')\"\n >\n Basic - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO')\"\n >\n Basic - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN')\"\n >\n Basic - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY')\"\n >\n Basic - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL')\"\n >\n Basic - GENERAL\n </button>\n </div>\n </div>\n\n </div>\n </span>\n <div style=\"display: flex; margin-top: 1rem;\">\n <mat-radio-group [formControl]=\"position\" style=\"display: flex; gap: 2rem\">\n <mat-radio-button value=\"top\">Top Position</mat-radio-button>\n <mat-radio-button value=\"bottom\">Bottom Position</mat-radio-button>\n </mat-radio-group>\n </div>\n</div>\n\n<div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div style=\"margin: 1rem;\">\n <button mat-stroked-button (click)=\"onInline()\" style=\"margin-bottom: 2rem;\">\n Add Inline Toast Message\n </button>\n <app-toast-message-display-inline\n [toast]=\"pickToastSample\"\n [duration]=\"5\"\n (close)=\"onClosedToast($event)\"\n ></app-toast-message-display-inline>\n</div>\n", styles: [".bold{font-size:22px;font-weight:700}\n"] }]
|
|
120
120
|
}] });
|
|
@@ -47,10 +47,10 @@ export class ToastMessageInlineComponent {
|
|
|
47
47
|
this.dismissToasts = this.dismissToasts.filter(t => t.id !== toast.id);
|
|
48
48
|
this.toastList = this.toastList.filter(t => t.id !== toast.id);
|
|
49
49
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageInlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToastMessageInlineComponent, selector: "app-toast-message-display-inline", inputs: { toast: "toast", duration: "duration", position: "position" }, outputs: { close: "close" }, ngImport: i0, template: "<div style=\"display: flex; gap: .5rem; flex-direction: column;\">\n <ng-container *ngFor=\"let toast of toastList\">\n <div [style.background-color]=\"toast.color\" class=\"inline\">\n <app-toast-ui\n [options]=\"toast\"\n style=\"flex: 1;\"\n (close)=\"onCloseToast(toast)\"\n ></app-toast-ui>\n </div>\n </ng-container>\n</div>\n", styles: [".inline{padding:.75rem;border-radius:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.ToastUIComponent, selector: "app-toast-ui", inputs: ["options"], outputs: ["close"] }] }); }
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageInlineComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
55
|
args: [{ selector: 'app-toast-message-display-inline', template: "<div style=\"display: flex; gap: .5rem; flex-direction: column;\">\n <ng-container *ngFor=\"let toast of toastList\">\n <div [style.background-color]=\"toast.color\" class=\"inline\">\n <app-toast-ui\n [options]=\"toast\"\n style=\"flex: 1;\"\n (close)=\"onCloseToast(toast)\"\n ></app-toast-ui>\n </div>\n </ng-container>\n</div>\n", styles: [".inline{padding:.75rem;border-radius:.25rem}\n"] }]
|
|
56
56
|
}], propDecorators: { close: [{
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { BrowserModule } from '@angular/platform-browser';
|
|
4
3
|
import { MatIconModule } from '@angular/material/icon';
|
|
5
4
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
6
5
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -15,12 +14,11 @@ import { SafeHtmlPipe } from './pipes/safe-html.pipe';
|
|
|
15
14
|
import { ToastMessageInlineComponent } from '../public-api';
|
|
16
15
|
import * as i0 from "@angular/core";
|
|
17
16
|
export class ToastMessageDisplayModule {
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
19
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
18
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, declarations: [SafeHtmlPipe,
|
|
20
19
|
ToastUIComponent,
|
|
21
20
|
ToastDemoComponent,
|
|
22
21
|
ToastMessageInlineComponent], imports: [CommonModule,
|
|
23
|
-
BrowserModule,
|
|
24
22
|
ReactiveFormsModule,
|
|
25
23
|
MatIconModule,
|
|
26
24
|
MatSnackBarModule,
|
|
@@ -30,8 +28,7 @@ export class ToastMessageDisplayModule {
|
|
|
30
28
|
MatRadioModule,
|
|
31
29
|
MatDividerModule], exports: [ToastUIComponent,
|
|
32
30
|
ToastDemoComponent] }); }
|
|
33
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
34
|
-
BrowserModule,
|
|
31
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, imports: [CommonModule,
|
|
35
32
|
ReactiveFormsModule,
|
|
36
33
|
MatIconModule,
|
|
37
34
|
MatSnackBarModule,
|
|
@@ -41,12 +38,11 @@ export class ToastMessageDisplayModule {
|
|
|
41
38
|
MatRadioModule,
|
|
42
39
|
MatDividerModule] }); }
|
|
43
40
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, decorators: [{
|
|
45
42
|
type: NgModule,
|
|
46
43
|
args: [{
|
|
47
44
|
imports: [
|
|
48
45
|
CommonModule,
|
|
49
|
-
BrowserModule,
|
|
50
46
|
ReactiveFormsModule,
|
|
51
47
|
MatIconModule,
|
|
52
48
|
MatSnackBarModule,
|
|
@@ -68,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
68
64
|
],
|
|
69
65
|
}]
|
|
70
66
|
}] });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtbWVzc2FnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2FzdC1tZXNzYWdlLWRpc3BsYXkvc3JjL2xpYi90b2FzdC1tZXNzYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUEwQjVELE1BQU0sT0FBTyx5QkFBeUI7K0dBQXpCLHlCQUF5QjtnSEFBekIseUJBQXlCLGlCQVhsQyxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQiwyQkFBMkIsYUFkM0IsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGNBQWM7WUFDZCxnQkFBZ0IsYUFTaEIsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtnSEFJVCx5QkFBeUIsWUF0QmxDLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixjQUFjO1lBQ2QsZ0JBQWdCOzs0RkFjUCx5QkFBeUI7a0JBeEJyQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNqQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ25CO2lCQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5cbmltcG9ydCB7IFRvYXN0VUlDb21wb25lbnQgfSBmcm9tICcuL3RvYXN0LXVpL3RvYXN0LXVpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdERlbW9Db21wb25lbnQgfSBmcm9tICcuL3RvYXN0LWRlbW8vdG9hc3QtZGVtby5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUtaHRtbC5waXBlJztcbmltcG9ydCB7IFRvYXN0TWVzc2FnZUlubGluZUNvbXBvbmVudCB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNhZmVIdG1sUGlwZSxcbiAgICBUb2FzdFVJQ29tcG9uZW50LFxuICAgIFRvYXN0RGVtb0NvbXBvbmVudCxcbiAgICBUb2FzdE1lc3NhZ2VJbmxpbmVDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUb2FzdFVJQ29tcG9uZW50LFxuICAgIFRvYXN0RGVtb0NvbXBvbmVudCxcbiAgXSxcblxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdE1lc3NhZ2VEaXNwbGF5TW9kdWxlIHsgfVxuIl19
|
|
@@ -52,10 +52,10 @@ export class ToastUIComponent {
|
|
|
52
52
|
this.snackBar.dismiss();
|
|
53
53
|
this.close.emit(options);
|
|
54
54
|
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastUIComponent, deps: [{ token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToastUIComponent, selector: "app-toast-ui", inputs: { options: "options" }, outputs: { close: "close" }, ngImport: i0, template: "<div\n class=\"toast-grid-container\"\n [class.has-icon]=\"options.icon\"\n [class.has-action]=\"options.action\"\n [style.background-color]=\"(options) ? options.color : ''\"\n>\n <mat-icon\n *ngIf=\"options.icon\"\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n <button\n *ngIf=\"options.action\"\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n <ng-container *ngIf=\"options.action !== '-'; else CLOSE\">\n {{ options.action }}\n </ng-container>\n <ng-template #CLOSE>\n <mat-icon>close</mat-icon>\n </ng-template>\n\n </button>\n</div>\n", styles: [".mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:100%!important;width:100%}.cdk-overlay-pane{width:100%}.cdk-overlay-container{position:fixed;top:0;left:0;width:100%;z-index:1000}.toast-grid-container{display:grid;grid-template-columns:1fr auto}.toast-grid-container.has-icon{grid-template-columns:minmax(0,44px) 1fr auto}.toast-grid-container>*{display:inline-flex;overflow:hidden;align-items:center}.toast-icon{margin-top:.25rem;grid-column:1;display:flex;align-items:center;justify-content:center;max-width:44px;overflow:hidden}.toast-message{word-wrap:break-word;overflow-wrap:break-word;white-space:normal;flex-grow:1}.toast-action-button{justify-self:end}\n", ".mat-mdc-snack-bar-container{--mdc-snackbar-container-color: var(--toast-bg-color, #fff);--mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);--mdc-snackbar-supporting-text-color: var(--toast-text-color, #000)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
57
57
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastUIComponent, decorators: [{
|
|
59
59
|
type: Component,
|
|
60
60
|
args: [{ selector: 'app-toast-ui', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"toast-grid-container\"\n [class.has-icon]=\"options.icon\"\n [class.has-action]=\"options.action\"\n [style.background-color]=\"(options) ? options.color : ''\"\n>\n <mat-icon\n *ngIf=\"options.icon\"\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n <button\n *ngIf=\"options.action\"\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n <ng-container *ngIf=\"options.action !== '-'; else CLOSE\">\n {{ options.action }}\n </ng-container>\n <ng-template #CLOSE>\n <mat-icon>close</mat-icon>\n </ng-template>\n\n </button>\n</div>\n", styles: [".mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:100%!important;width:100%}.cdk-overlay-pane{width:100%}.cdk-overlay-container{position:fixed;top:0;left:0;width:100%;z-index:1000}.toast-grid-container{display:grid;grid-template-columns:1fr auto}.toast-grid-container.has-icon{grid-template-columns:minmax(0,44px) 1fr auto}.toast-grid-container>*{display:inline-flex;overflow:hidden;align-items:center}.toast-icon{margin-top:.25rem;grid-column:1;display:flex;align-items:center;justify-content:center;max-width:44px;overflow:hidden}.toast-message{word-wrap:break-word;overflow-wrap:break-word;white-space:normal;flex-grow:1}.toast-action-button{justify-self:end}\n", ".mat-mdc-snack-bar-container{--mdc-snackbar-container-color: var(--toast-bg-color, #fff);--mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);--mdc-snackbar-supporting-text-color: var(--toast-text-color, #000)}\n"] }]
|
|
61
61
|
}], ctorParameters: () => [{ type: i5.ToastDisplay, decorators: [{
|
|
@@ -21,10 +21,10 @@ export class ColorConversionService {
|
|
|
21
21
|
parseInt(result[3], 16)
|
|
22
22
|
] : [];
|
|
23
23
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
25
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorConversionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
25
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorConversionService, providedIn: 'root' }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorConversionService, decorators: [{
|
|
28
28
|
type: Injectable,
|
|
29
29
|
args: [{
|
|
30
30
|
providedIn: 'root'
|
|
@@ -81,10 +81,10 @@ export class TextColorService {
|
|
|
81
81
|
}
|
|
82
82
|
return ctx?.fillStyle;
|
|
83
83
|
}
|
|
84
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
85
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
84
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextColorService, deps: [{ token: i1.ColorConversionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
85
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextColorService, providedIn: 'root' }); }
|
|
86
86
|
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextColorService, decorators: [{
|
|
88
88
|
type: Injectable,
|
|
89
89
|
args: [{
|
|
90
90
|
providedIn: 'root'
|
|
@@ -2,7 +2,6 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, inject, Pipe, VERSION, EventEmitter, Component, ViewEncapsulation, Inject, Output, Input, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import { DomSanitizer, BrowserModule } from '@angular/platform-browser';
|
|
6
5
|
import * as i2 from '@angular/material/icon';
|
|
7
6
|
import { MatIconModule } from '@angular/material/icon';
|
|
8
7
|
import { MatSnackBar, MAT_SNACK_BAR_DATA, MatSnackBarModule } from '@angular/material/snack-bar';
|
|
@@ -18,6 +17,7 @@ import * as i7 from '@angular/material/radio';
|
|
|
18
17
|
import { MatRadioModule } from '@angular/material/radio';
|
|
19
18
|
import * as i8 from '@angular/material/divider';
|
|
20
19
|
import { MatDividerModule } from '@angular/material/divider';
|
|
20
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
21
21
|
import { take } from 'rxjs/operators';
|
|
22
22
|
|
|
23
23
|
var ToastColors;
|
|
@@ -74,10 +74,10 @@ class ColorConversionService {
|
|
|
74
74
|
parseInt(result[3], 16)
|
|
75
75
|
] : [];
|
|
76
76
|
}
|
|
77
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
78
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
77
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorConversionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
78
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorConversionService, providedIn: 'root' }); }
|
|
79
79
|
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorConversionService, decorators: [{
|
|
81
81
|
type: Injectable,
|
|
82
82
|
args: [{
|
|
83
83
|
providedIn: 'root'
|
|
@@ -164,10 +164,10 @@ class TextColorService {
|
|
|
164
164
|
}
|
|
165
165
|
return ctx?.fillStyle;
|
|
166
166
|
}
|
|
167
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
168
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextColorService, deps: [{ token: ColorConversionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
168
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextColorService, providedIn: 'root' }); }
|
|
169
169
|
}
|
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextColorService, decorators: [{
|
|
171
171
|
type: Injectable,
|
|
172
172
|
args: [{
|
|
173
173
|
providedIn: 'root'
|
|
@@ -181,10 +181,10 @@ class SafeHtmlPipe {
|
|
|
181
181
|
transform(html) {
|
|
182
182
|
return this.sanitizer.bypassSecurityTrustHtml(html);
|
|
183
183
|
}
|
|
184
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
185
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
184
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
185
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SafeHtmlPipe, name: "safeHtml" }); }
|
|
186
186
|
}
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
188
188
|
type: Pipe,
|
|
189
189
|
args: [{
|
|
190
190
|
name: 'safeHtml',
|
|
@@ -235,10 +235,10 @@ class ToastUIComponent {
|
|
|
235
235
|
this.snackBar.dismiss();
|
|
236
236
|
this.close.emit(options);
|
|
237
237
|
}
|
|
238
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
239
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
238
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastUIComponent, deps: [{ token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
239
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToastUIComponent, selector: "app-toast-ui", inputs: { options: "options" }, outputs: { close: "close" }, ngImport: i0, template: "<div\n class=\"toast-grid-container\"\n [class.has-icon]=\"options.icon\"\n [class.has-action]=\"options.action\"\n [style.background-color]=\"(options) ? options.color : ''\"\n>\n <mat-icon\n *ngIf=\"options.icon\"\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n <button\n *ngIf=\"options.action\"\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n <ng-container *ngIf=\"options.action !== '-'; else CLOSE\">\n {{ options.action }}\n </ng-container>\n <ng-template #CLOSE>\n <mat-icon>close</mat-icon>\n </ng-template>\n\n </button>\n</div>\n", styles: [".mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:100%!important;width:100%}.cdk-overlay-pane{width:100%}.cdk-overlay-container{position:fixed;top:0;left:0;width:100%;z-index:1000}.toast-grid-container{display:grid;grid-template-columns:1fr auto}.toast-grid-container.has-icon{grid-template-columns:minmax(0,44px) 1fr auto}.toast-grid-container>*{display:inline-flex;overflow:hidden;align-items:center}.toast-icon{margin-top:.25rem;grid-column:1;display:flex;align-items:center;justify-content:center;max-width:44px;overflow:hidden}.toast-message{word-wrap:break-word;overflow-wrap:break-word;white-space:normal;flex-grow:1}.toast-action-button{justify-self:end}\n", ".mat-mdc-snack-bar-container{--mdc-snackbar-container-color: var(--toast-bg-color, #fff);--mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);--mdc-snackbar-supporting-text-color: var(--toast-text-color, #000)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
240
240
|
}
|
|
241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastUIComponent, decorators: [{
|
|
242
242
|
type: Component,
|
|
243
243
|
args: [{ selector: 'app-toast-ui', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"toast-grid-container\"\n [class.has-icon]=\"options.icon\"\n [class.has-action]=\"options.action\"\n [style.background-color]=\"(options) ? options.color : ''\"\n>\n <mat-icon\n *ngIf=\"options.icon\"\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n <button\n *ngIf=\"options.action\"\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n <ng-container *ngIf=\"options.action !== '-'; else CLOSE\">\n {{ options.action }}\n </ng-container>\n <ng-template #CLOSE>\n <mat-icon>close</mat-icon>\n </ng-template>\n\n </button>\n</div>\n", styles: [".mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:100%!important;width:100%}.cdk-overlay-pane{width:100%}.cdk-overlay-container{position:fixed;top:0;left:0;width:100%;z-index:1000}.toast-grid-container{display:grid;grid-template-columns:1fr auto}.toast-grid-container.has-icon{grid-template-columns:minmax(0,44px) 1fr auto}.toast-grid-container>*{display:inline-flex;overflow:hidden;align-items:center}.toast-icon{margin-top:.25rem;grid-column:1;display:flex;align-items:center;justify-content:center;max-width:44px;overflow:hidden}.toast-message{word-wrap:break-word;overflow-wrap:break-word;white-space:normal;flex-grow:1}.toast-action-button{justify-self:end}\n", ".mat-mdc-snack-bar-container{--mdc-snackbar-container-color: var(--toast-bg-color, #fff);--mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);--mdc-snackbar-supporting-text-color: var(--toast-text-color, #000)}\n"] }]
|
|
244
244
|
}], ctorParameters: () => [{ type: ToastDisplay, decorators: [{
|
|
@@ -326,10 +326,10 @@ class ToastMessageDisplayService {
|
|
|
326
326
|
console.error('Snackbar reference is undefined. Unable to subscribe to dismissal event.');
|
|
327
327
|
}
|
|
328
328
|
}
|
|
329
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
330
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
329
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
330
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, providedIn: 'root' }); }
|
|
331
331
|
}
|
|
332
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
332
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, decorators: [{
|
|
333
333
|
type: Injectable,
|
|
334
334
|
args: [{
|
|
335
335
|
providedIn: 'root'
|
|
@@ -379,10 +379,10 @@ class ToastMessageInlineComponent {
|
|
|
379
379
|
this.dismissToasts = this.dismissToasts.filter(t => t.id !== toast.id);
|
|
380
380
|
this.toastList = this.toastList.filter(t => t.id !== toast.id);
|
|
381
381
|
}
|
|
382
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
383
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
382
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageInlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
383
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToastMessageInlineComponent, selector: "app-toast-message-display-inline", inputs: { toast: "toast", duration: "duration", position: "position" }, outputs: { close: "close" }, ngImport: i0, template: "<div style=\"display: flex; gap: .5rem; flex-direction: column;\">\n <ng-container *ngFor=\"let toast of toastList\">\n <div [style.background-color]=\"toast.color\" class=\"inline\">\n <app-toast-ui\n [options]=\"toast\"\n style=\"flex: 1;\"\n (close)=\"onCloseToast(toast)\"\n ></app-toast-ui>\n </div>\n </ng-container>\n</div>\n", styles: [".inline{padding:.75rem;border-radius:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ToastUIComponent, selector: "app-toast-ui", inputs: ["options"], outputs: ["close"] }] }); }
|
|
384
384
|
}
|
|
385
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
385
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageInlineComponent, decorators: [{
|
|
386
386
|
type: Component,
|
|
387
387
|
args: [{ selector: 'app-toast-message-display-inline', template: "<div style=\"display: flex; gap: .5rem; flex-direction: column;\">\n <ng-container *ngFor=\"let toast of toastList\">\n <div [style.background-color]=\"toast.color\" class=\"inline\">\n <app-toast-ui\n [options]=\"toast\"\n style=\"flex: 1;\"\n (close)=\"onCloseToast(toast)\"\n ></app-toast-ui>\n </div>\n </ng-container>\n</div>\n", styles: [".inline{padding:.75rem;border-radius:.25rem}\n"] }]
|
|
388
388
|
}], propDecorators: { close: [{
|
|
@@ -494,21 +494,20 @@ class ToastDemoComponent {
|
|
|
494
494
|
onClosedToast(toast) {
|
|
495
495
|
console.log(toast);
|
|
496
496
|
}
|
|
497
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
498
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
497
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
498
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToastDemoComponent, selector: "app-toast-display-demo", ngImport: i0, template: "<mat-toolbar style=\"display: flex;\">\n <div>Toast Message Demo</div>\n <div style=\"flex:1; text-align: end;\">\n <button\n mat-stroked-button\n [matMenuTriggerFor]=\"menu\"\n matIconPrefix\n >\n {{ type | titlecase }}\n <mat-icon>layers</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"onSelectType('basic')\"\n >\n Basic\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('icon')\"\n >\n Icon\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('action')\"\n >\n Action\n </button>\n</mat-menu>\n\n<div style=\"margin: 1rem;\">\n <span [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'icon'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border')\"\n >\n Icon - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard')\"\n >\n Icon - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event')\"\n >\n Icon - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid')\"\n >\n Icon - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'notifications')\"\n >\n Icon - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'movie_filter')\"\n >\n Icon - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'action'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon and Action</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border', 'Dismiss')\"\n >\n Action - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard', 'Dismiss')\"\n >\n Action - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event', 'Dismiss')\"\n >\n Action - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid', 'Dismiss')\"\n >\n Action - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY', 'notifications', 'Dismiss')\"\n >\n Action - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL', 'movie_filter', 'Dismiss')\"\n >\n Action - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchDefault>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Basic Toast</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS')\"\n >\n Basic - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR')\"\n >\n Basic - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO')\"\n >\n Basic - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN')\"\n >\n Basic - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY')\"\n >\n Basic - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL')\"\n >\n Basic - GENERAL\n </button>\n </div>\n </div>\n\n </div>\n </span>\n <div style=\"display: flex; margin-top: 1rem;\">\n <mat-radio-group [formControl]=\"position\" style=\"display: flex; gap: 2rem\">\n <mat-radio-button value=\"top\">Top Position</mat-radio-button>\n <mat-radio-button value=\"bottom\">Bottom Position</mat-radio-button>\n </mat-radio-group>\n </div>\n</div>\n\n<div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div style=\"margin: 1rem;\">\n <button mat-stroked-button (click)=\"onInline()\" style=\"margin-bottom: 2rem;\">\n Add Inline Toast Message\n </button>\n <app-toast-message-display-inline\n [toast]=\"pickToastSample\"\n [duration]=\"5\"\n (close)=\"onClosedToast($event)\"\n ></app-toast-message-display-inline>\n</div>\n", styles: [".bold{font-size:22px;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i7.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i7.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: ToastMessageInlineComponent, selector: "app-toast-message-display-inline", inputs: ["toast", "duration", "position"], outputs: ["close"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }] }); }
|
|
499
499
|
}
|
|
500
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
500
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastDemoComponent, decorators: [{
|
|
501
501
|
type: Component,
|
|
502
502
|
args: [{ selector: 'app-toast-display-demo', template: "<mat-toolbar style=\"display: flex;\">\n <div>Toast Message Demo</div>\n <div style=\"flex:1; text-align: end;\">\n <button\n mat-stroked-button\n [matMenuTriggerFor]=\"menu\"\n matIconPrefix\n >\n {{ type | titlecase }}\n <mat-icon>layers</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"onSelectType('basic')\"\n >\n Basic\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('icon')\"\n >\n Icon\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('action')\"\n >\n Action\n </button>\n</mat-menu>\n\n<div style=\"margin: 1rem;\">\n <span [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'icon'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border')\"\n >\n Icon - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard')\"\n >\n Icon - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event')\"\n >\n Icon - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid')\"\n >\n Icon - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'notifications')\"\n >\n Icon - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'movie_filter')\"\n >\n Icon - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'action'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon and Action</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border', 'Dismiss')\"\n >\n Action - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard', 'Dismiss')\"\n >\n Action - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event', 'Dismiss')\"\n >\n Action - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid', 'Dismiss')\"\n >\n Action - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY', 'notifications', 'Dismiss')\"\n >\n Action - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL', 'movie_filter', 'Dismiss')\"\n >\n Action - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchDefault>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Basic Toast</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS')\"\n >\n Basic - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR')\"\n >\n Basic - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO')\"\n >\n Basic - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN')\"\n >\n Basic - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY')\"\n >\n Basic - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL')\"\n >\n Basic - GENERAL\n </button>\n </div>\n </div>\n\n </div>\n </span>\n <div style=\"display: flex; margin-top: 1rem;\">\n <mat-radio-group [formControl]=\"position\" style=\"display: flex; gap: 2rem\">\n <mat-radio-button value=\"top\">Top Position</mat-radio-button>\n <mat-radio-button value=\"bottom\">Bottom Position</mat-radio-button>\n </mat-radio-group>\n </div>\n</div>\n\n<div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div style=\"margin: 1rem;\">\n <button mat-stroked-button (click)=\"onInline()\" style=\"margin-bottom: 2rem;\">\n Add Inline Toast Message\n </button>\n <app-toast-message-display-inline\n [toast]=\"pickToastSample\"\n [duration]=\"5\"\n (close)=\"onClosedToast($event)\"\n ></app-toast-message-display-inline>\n</div>\n", styles: [".bold{font-size:22px;font-weight:700}\n"] }]
|
|
503
503
|
}] });
|
|
504
504
|
|
|
505
505
|
class ToastMessageDisplayModule {
|
|
506
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
507
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
506
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
507
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, declarations: [SafeHtmlPipe,
|
|
508
508
|
ToastUIComponent,
|
|
509
509
|
ToastDemoComponent,
|
|
510
510
|
ToastMessageInlineComponent], imports: [CommonModule,
|
|
511
|
-
BrowserModule,
|
|
512
511
|
ReactiveFormsModule,
|
|
513
512
|
MatIconModule,
|
|
514
513
|
MatSnackBarModule,
|
|
@@ -518,8 +517,7 @@ class ToastMessageDisplayModule {
|
|
|
518
517
|
MatRadioModule,
|
|
519
518
|
MatDividerModule], exports: [ToastUIComponent,
|
|
520
519
|
ToastDemoComponent] }); }
|
|
521
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
522
|
-
BrowserModule,
|
|
520
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, imports: [CommonModule,
|
|
523
521
|
ReactiveFormsModule,
|
|
524
522
|
MatIconModule,
|
|
525
523
|
MatSnackBarModule,
|
|
@@ -529,12 +527,11 @@ class ToastMessageDisplayModule {
|
|
|
529
527
|
MatRadioModule,
|
|
530
528
|
MatDividerModule] }); }
|
|
531
529
|
}
|
|
532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
530
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, decorators: [{
|
|
533
531
|
type: NgModule,
|
|
534
532
|
args: [{
|
|
535
533
|
imports: [
|
|
536
534
|
CommonModule,
|
|
537
|
-
BrowserModule,
|
|
538
535
|
ReactiveFormsModule,
|
|
539
536
|
MatIconModule,
|
|
540
537
|
MatSnackBarModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-message-display.mjs","sources":["../../../projects/toast-message-display/src/lib/models/toast-colors.enum.ts","../../../projects/toast-message-display/src/lib/models/toast-display-model.ts","../../../projects/toast-message-display/src/lib/utils/color-conversion.service.ts","../../../projects/toast-message-display/src/lib/utils/text-color.service.ts","../../../projects/toast-message-display/src/lib/pipes/safe-html.pipe.ts","../../../projects/toast-message-display/src/lib/toast-ui/toast-ui.component.ts","../../../projects/toast-message-display/src/lib/toast-ui/toast-ui.component.html","../../../projects/toast-message-display/src/lib/models/horizontal-alignment.enum.ts","../../../projects/toast-message-display/src/lib/models/vertical-alignment.enum.ts","../../../projects/toast-message-display/src/lib/models/toast-message.model.ts","../../../projects/toast-message-display/src/lib/models/toast-options.model.ts","../../../projects/toast-message-display/src/lib/services/toast-message.service.ts","../../../projects/toast-message-display/src/lib/toast-message-inline/toast-message-inline.component.ts","../../../projects/toast-message-display/src/lib/toast-message-inline/toast-message-inline.component.html","../../../projects/toast-message-display/src/lib/toast-demo/toast-demo.component.ts","../../../projects/toast-message-display/src/lib/toast-demo/toast-demo.component.html","../../../projects/toast-message-display/src/lib/toast-message.module.ts","../../../projects/toast-message-display/src/public-api.ts","../../../projects/toast-message-display/src/toast-message-display.ts"],"sourcesContent":["export enum ToastColors {\n SUCCESS = '#006B31', // green\n ERROR = '#CC0000', // red\n INFO = '#02559F', // grey\n WARN = '#FFC20E', // orange\n NOTIFY = '#080808', // black\n GENERAL = '#f5f5f5', // light\n}\n","import { ToastColors } from \"./toast-colors.enum\";\n\nexport interface ToastDisplayInterface {\n id?: string;\n message: string;\n action?: string;\n color: ToastColors;\n icon?: string;\n}\n\nexport class ToastDisplay implements ToastDisplayInterface {\n\n constructor(\n public id?: string,\n public message = 'Sample message',\n public action?: string,\n public color = ToastColors.INFO,\n public icon?: string,\n ) {}\n\n static adapt(item?: any) {\n return new ToastDisplay(\n (item?.id) ? item.id : this.randomNumbers(8),\n item?.message,\n item?.action,\n item?.color,\n item?.icon,\n );\n }\n\n static randomNumbers(length: number) {\n return this.generateRandom('0123456789', length)\n }\n\n static generateRandom(randomChars: string, length: number) {\n\n var result = ''\n for ( var i = 0; i < length; i++ ) {\n result += randomChars.charAt(Math.floor(Math.random() * randomChars.length))\n }\n return result\n\n }\n\n}\n","import { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ColorConversionService {\r\n\r\n rgbToHex(rgb: number[]): string {\r\n const [r, g, b] = rgb\r\n const componentToHex = (c: number) => {\r\n const hex = c.toString(16)\r\n return hex.length === 1 ? \"0\" + hex : hex\r\n }\r\n const hexR = componentToHex(r)\r\n const hexG = componentToHex(g)\r\n const hexB = componentToHex(b)\r\n return \"#\" + hexR + hexG + hexB\r\n }\r\n\r\n hexToRgb(hex: string) {\r\n\r\n hex = (hex.length === 3) ? hex + hex : hex\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\r\n\r\n return result ? [\r\n parseInt(result[1], 16),\r\n parseInt(result[2], 16),\r\n parseInt(result[3], 16)\r\n ] : []\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { ColorConversionService } from './color-conversion.service'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TextColorService {\r\n\r\n constructor(\r\n private colorConversionService: ColorConversionService\r\n ) {}\r\n\r\n /**\r\n * Determines the appropriate text color (light or dark) based on the background color.\r\n *\r\n * @param bgColor - The background color to use for the calculation.\r\n * @param lightColor - The light color to use if the background is dark.\r\n * @param darkColor - The dark color to use if the background is light.\r\n * @returns The appropriate text color (light or dark) based on the background color.\r\n */\r\n textColorForBgColor(bgColor: string, lightColor: string, darkColor: string) {\r\n\r\n const UIColors = this.fixColor(bgColor)\r\n\r\n const r = UIColors[0]\r\n const g = UIColors[1]\r\n const b = UIColors[2]\r\n\r\n return ((r*0.299 + g*0.587 + b*0.114) > 149) ? darkColor : lightColor;\r\n\r\n }\r\n\r\n /**\r\n * Determines whether the first color is darker than the second color.\r\n *\r\n * @param color1 - The first color to compare.\r\n * @param color2 - The second color to compare.\r\n * @returns The darker of the two colors.\r\n */\r\n isColorDarker(color1: string, color2: string) {\r\n const newColor1 = this.fixColor(color1);\r\n const newColor2 = this.fixColor(color2);\r\n\r\n const luminance1 = this.calculateLuminance(\r\n newColor1[0],\r\n newColor1[1],\r\n newColor1[2]\r\n );\r\n const luminance2 = this.calculateLuminance(\r\n newColor2[0],\r\n newColor2[1],\r\n newColor2[2]\r\n );\r\n\r\n return luminance1 > luminance2 ? color2 : color1;\r\n }\r\n\r\n calculateLuminance(r: number, g: number, b: number): number {\r\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\r\n }\r\n\r\n /**\r\n * Fixes the provided color string by ensuring it is in a valid hexadecimal format.\r\n * If the input color is a hexadecimal string, it will be normalized to a 6-digit format.\r\n * If the input color is not a hexadecimal string, it will be converted to an RGB array.\r\n *\r\n * @param color - The color string to be fixed.\r\n * @returns An array of RGB values, or the normalized hexadecimal color string.\r\n */\r\n fixColor(color: string) {\r\n let newColor = color;\r\n\r\n if (color.includes(\"#\")) {\r\n newColor = color.slice(1);\r\n newColor =\r\n newColor.length === 3\r\n ? \"#\" +\r\n newColor\r\n .split(\"\")\r\n .map((hex) => hex + hex)\r\n .join(\"\")\r\n : \"#\" + newColor;\r\n } else {\r\n newColor = this.standardize_color(color);\r\n }\r\n\r\n const Reg_Exp = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\r\n const colorIsHex = Reg_Exp.test(newColor);\r\n\r\n const UIColors = colorIsHex\r\n ? this.colorConversionService.hexToRgb(newColor)\r\n : newColor.match(/\\d+/g)?.map((item) => parseInt(item)) || [];\r\n\r\n return UIColors;\r\n }\r\n\r\n /**\r\n * Converts the color representation of the provided string into HEX value.\r\n *\r\n * @param str - The color string to be standardized - 'whitesmoke'.\r\n * @returns The standardized color string - #DEDEDE.\r\n */\r\n standardize_color(str: string): string {\r\n const ctx = document.createElement(\"canvas\").getContext(\"2d\");\r\n\r\n if (ctx) {\r\n ctx.fillStyle = str;\r\n }\r\n\r\n return ctx?.fillStyle as string;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport {DomSanitizer} from \"@angular/platform-browser\";\n\n@Pipe({\n name: 'safeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\n private sanitizer = inject(DomSanitizer)\n\n transform(html: string) {\n return this.sanitizer.bypassSecurityTrustHtml(html)\n }\n\n}\n","import { Component, EventEmitter, Inject, inject, Input, OnInit, Output, VERSION, ViewEncapsulation } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBar } from '@angular/material/snack-bar';\n\nimport { ToastDisplay } from '../models/toast-display-model';\nimport { TextColorService } from '../utils';\n\n@Component({\n selector: 'app-toast-ui',\n templateUrl: './toast-ui.component.html',\n styleUrls: ['./toast-ui.component.scss'],\n encapsulation: ViewEncapsulation.None,\n styles: [`\n .mat-mdc-snack-bar-container {\n --mdc-snackbar-container-color: var(--toast-bg-color, #fff);\n --mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);\n --mdc-snackbar-supporting-text-color: var(--toast-text-color, #000);\n }\n `]\n})\nexport class ToastUIComponent implements OnInit {\n\n ngVersion = parseInt(VERSION.full.split('.')[0], 10)\n\n @Output() close = new EventEmitter<ToastDisplay>();\n\n textColorService = inject(TextColorService);\n private snackBar = inject(MatSnackBar);\n\n @Input() options = ToastDisplay.adapt();\n\n constructor(\n @Inject(MAT_SNACK_BAR_DATA)\n public data: ToastDisplay\n ) {\n this.options = ToastDisplay.adapt(data)\n }\n\n ngOnInit() {\n\n if (this.ngVersion >= 15) {\n\n const hostElement = document.querySelector('.mat-mdc-snack-bar-container')\n\n if (hostElement) {\n hostElement.setAttribute('style', `\n --toast-bg-color: ${this.color};\n --toast-text-color: ${this.textColor};\n `)\n }\n\n } else {\n\n document.documentElement.style.setProperty('--toast-bg-color', this.color);\n document.documentElement.style.setProperty('--toast-text-color', this.textColor);\n\n const hostElement = document.querySelector('.mat-snack-bar-container') as HTMLElement;\n\n if (hostElement) {\n hostElement.style.backgroundColor = this.color;\n hostElement.style.color = this.textColor;\n\n const actionButton = hostElement.querySelector('.mat-button, .mat-snack-bar-action') as HTMLElement;\n if (actionButton) {\n actionButton.style.color = this.textColor;\n }\n }\n\n }\n\n }\n\n get color() {\n return this.options.color || '#2196f3';\n }\n\n get textColor() {\n return this.textColorService.textColorForBgColor(\n this.color,\n '#FFFFFF',\n '#000000'\n );\n }\n\n onCloseToast(options?: ToastDisplay) {\n this.snackBar.dismiss()\n this.close.emit(options)\n }\n}\n","<div\n class=\"toast-grid-container\"\n [class.has-icon]=\"options.icon\"\n [class.has-action]=\"options.action\"\n [style.background-color]=\"(options) ? options.color : ''\"\n>\n <mat-icon\n *ngIf=\"options.icon\"\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n <button\n *ngIf=\"options.action\"\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n <ng-container *ngIf=\"options.action !== '-'; else CLOSE\">\n {{ options.action }}\n </ng-container>\n <ng-template #CLOSE>\n <mat-icon>close</mat-icon>\n </ng-template>\n\n </button>\n</div>\n","export enum HorizontalAlignment {\n LEFT = 'left',\n RIGHT = 'right',\n CENTER = 'center',\n}\n","export enum VerticalAlignment {\n TOP = 'top',\n BOTTOM = 'bottom',\n}\n","export interface ToastMessageInterface {\n error: string;\n action: string;\n icon: string;\n}\n\nexport class ToastMessage implements ToastMessageInterface {\n constructor(\n public error = '',\n public action = '',\n public icon = 'error',\n ) {}\n\n static adapt(item?: any): ToastMessageInterface {\n return new ToastMessage(\n item?.error,\n item?.action,\n item?.icon,\n )\n\n }\n}\n","import { MatSnackBarVerticalPosition } from \"@angular/material/snack-bar\";\nimport { HorizontalAlignment } from \"./horizontal-alignment.enum\";\nimport { ToastDisplay } from \"./toast-display-model\";\nimport { VerticalAlignment } from \"./vertical-alignment.enum\";\n\nexport interface ToastOptionsInterface {\n duration?: number\n horizontalPosition?: HorizontalAlignment\n verticalPosition?: MatSnackBarVerticalPosition\n data?: ToastDisplay\n}\n\nexport class ToastOptions implements ToastOptionsInterface {\n\n constructor(\n public duration?: number,\n public horizontalPosition = HorizontalAlignment.CENTER,\n public verticalPosition = VerticalAlignment.TOP,\n public data?: ToastDisplay\n ) {}\n\n static adapt(item?: any): ToastOptionsInterface {\n\n if(item?.duration) item.duration = item.duration * 1000\n\n return new ToastOptions(\n item?.duration,\n item?.horizontalPosition,\n item?.verticalPosition,\n item?.data ? ToastDisplay.adapt(item.data) : ToastDisplay.adapt()\n )\n }\n\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarRef, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\nimport { ToastUIComponent } from '../toast-ui/toast-ui.component';\nimport { ToastOptions } from '../models/toast-options.model';\nimport { VerticalAlignment } from '../models/vertical-alignment.enum';\nimport { ToastDisplay } from '../models/toast-display-model';\nimport { take } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastMessageDisplayService {\n\n private snackBar = inject(MatSnackBar);\n\n private toastQueue: { options: ToastDisplay, duration?: number, vertical?: VerticalAlignment }[] = [];\n private isToastVisible = false;\n\n defaultDuration = 3;\n\n snackBarRef: MatSnackBarRef<any> | undefined;\n\n toastMessage(options = ToastDisplay.adapt(), duration?: number, vertical?: VerticalAlignment) {\n this.toastQueue.push({ options, duration, vertical });\n this.showNextToast();\n }\n\n private showNextToast() {\n\n if (this.isToastVisible || this.toastQueue.length === 0) return\n\n const { options, duration, vertical } = this.toastQueue.shift()!\n\n const vertPosition: MatSnackBarVerticalPosition = (vertical) ? vertical : 'top'\n\n const durationDismiss = (!options.action) ? this.defaultDuration : duration\n\n const displayOptions = ToastOptions.adapt({\n duration: durationDismiss,\n horizontalPosition: 'center',\n verticalPosition: vertPosition,\n data: options,\n })\n\n this.isToastVisible = true;\n this.snackBarRef = this.snackBar.openFromComponent(ToastUIComponent, displayOptions);\n\n if (this.snackBarRef) {\n this.snackBarRef\n .afterDismissed()\n .pipe(take(1))\n .subscribe(() => {\n this.isToastVisible = false;\n this.showNextToast();\n });\n } else {\n console.error('Snackbar reference is undefined. Unable to subscribe to dismissal event.');\n }\n\n }\n}\n","import { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { TextColorService } from '../utils';\nimport { ToastDisplay, VerticalAlignment } from '../models';\n\n@Component({\n selector: 'app-toast-message-display-inline',\n templateUrl: './toast-message-inline.component.html',\n styleUrls: ['./toast-message-inline.component.scss']\n})\nexport class ToastMessageInlineComponent implements OnInit {\n\n @Output() close = new EventEmitter<ToastDisplay>();\n\n textColorService = inject(TextColorService)\n\n toastList: ToastDisplay[] = []\n\n dismissToasts: any[] = []\n\n @Input() set toast(value: any) {\n\n if (!value) return\n const toast = ToastDisplay.adapt(value)\n\n if (!toast.action) {\n this.dismissToasts.push(toast)\n this.expireTime(toast)\n }\n\n this.toastList.push(toast)\n\n }\n\n get option() {\n return (this.toastList.length > 0) ? this.toastList[0] : null\n }\n\n @Input() duration = -1\n @Input() position: VerticalAlignment = VerticalAlignment.TOP\n\n get color() {\n return (this.option) ? this.option.color : ''\n }\n\n get textColor() {\n return (this.option) ? this.textColorService.textColorForBgColor(this.option.color, '#FFFFFF', '#000000') : ''\n }\n\n ngOnInit() {\n document.documentElement.style.setProperty('--snackbar-color', this.color)\n }\n\n onCloseToast(toast?: ToastDisplay) {\n this.toastList = this.toastList.filter(item => item.id !== toast?.id)\n this.close.emit(toast)\n }\n\n expireTime(toast: any) {\n const boundRemove = this.removeToast.bind(this, toast)\n setTimeout(boundRemove, 3000)\n }\n\n removeToast(toast: any) {\n this.dismissToasts = this.dismissToasts.filter(t => t.id !== toast.id)\n this.toastList = this.toastList.filter(t => t.id !== toast.id)\n }\n\n}\n","<div style=\"display: flex; gap: .5rem; flex-direction: column;\">\n <ng-container *ngFor=\"let toast of toastList\">\n <div [style.background-color]=\"toast.color\" class=\"inline\">\n <app-toast-ui\n [options]=\"toast\"\n style=\"flex: 1;\"\n (close)=\"onCloseToast(toast)\"\n ></app-toast-ui>\n </div>\n </ng-container>\n</div>\n","import { Component, inject } from '@angular/core';\nimport { ToastColors, ToastDisplay, VerticalAlignment } from '../models';\nimport { FormBuilder } from '@angular/forms';\n\nimport { ToastMessageDisplayService } from '../services/toast-message.service';\n\n@Component({\n selector: 'app-toast-display-demo',\n templateUrl: './toast-demo.component.html',\n styleUrls: ['./toast-demo.component.scss']\n})\nexport class ToastDemoComponent {\n\n random = () => {\n const typedArray = new Uint8Array(1)\n const randomValue = crypto.getRandomValues(typedArray)[0]\n const randomFloat = randomValue / Math.pow(2, 8)\n return randomFloat\n }\n\n randomNumber = (min: number, max: number) => {\n return Math.floor(this.random() * max) + min\n }\n\n fb = inject(FormBuilder)\n toastMessageDisplayService = inject(ToastMessageDisplayService)\n\n type = 'Basic'\n\n position = this.fb.control('top')\n\n icons = [\n 'favorite_border',\n 'dashboard',\n 'event',\n 'paid',\n 'notifications',\n 'movie_filter',\n ]\n\n toastSamples = [\n {\n message: `This is a simple toast message. This is a <span style=\"font-size: 22px\">simple toast message</span>. This is a simple toast message. This is a simple toast message`,\n color: ToastColors.ERROR,\n action: \"Ok\"\n },\n {\n message: 'Sample message',\n color: ToastColors.INFO,\n icon: this.icons[0]\n },\n {\n message: 'Sample message',\n color: ToastColors.WARN,\n icon: this.icons[1]\n },\n {\n message: `This is a simple toast message. This is a <span style=\"font-size: 22px\">simple toast message</span>. This is a simple toast message. This is a simple toast message`,\n color: ToastColors.NOTIFY,\n icon: this.icons[2],\n action: \"Dismiss\"\n },\n {\n message: 'Sample message',\n color: ToastColors.GENERAL,\n action: \"Dismiss\"\n },\n {\n message: `This is a simple toast message. This is a <span style=\"font-size: 22px\">simple toast message</span>. This is a simple toast message. This is a simple toast message`,\n color: ToastColors.SUCCESS,\n action: \"-\"\n },\n ]\n\n pickToastSample?: ToastDisplay\n\n onSelectType(type: string) {\n this.type = type\n }\n\n onBasic(type: string, icon?: string, action?: string) {\n switch (type) {\n case 'ERROR':\n this.presentToast(ToastColors.ERROR, icon, action)\n break;\n case 'INFO':\n this.presentToast(ToastColors.INFO, icon, action)\n break;\n case 'WARN':\n this.presentToast(ToastColors.WARN, icon, action)\n break;\n case 'NOTIFY':\n this.presentToast(ToastColors.NOTIFY, icon, action)\n break;\n case 'GENERAL':\n this.presentToast(ToastColors.GENERAL, icon, action)\n break;\n default:\n this.presentToast(ToastColors.SUCCESS, icon, action)\n break;\n }\n }\n\n presentToast(color: ToastColors, icon?: string, action?: string) {\n\n const options = ToastDisplay.adapt({\n message: `This is a simple toast message. <span style=\"font-size: 22px\">simple toast message</span>. This is a simple toast message. This is a simple toast message`,\n color,\n icon,\n action\n })\n\n const toastPosition = (this.position.value === 'top') ? VerticalAlignment.TOP : VerticalAlignment.BOTTOM\n this.toastMessageDisplayService.toastMessage(options, -1, toastPosition)\n }\n\n onInline() {\n const pick = this.randomNumber(0, this.toastSamples.length-1)\n this.pickToastSample = this.toastSamples[pick]\n }\n\n onClosedToast(toast?: ToastDisplay) {\n console.log(toast)\n }\n\n}\n","<mat-toolbar style=\"display: flex;\">\n <div>Toast Message Demo</div>\n <div style=\"flex:1; text-align: end;\">\n <button\n mat-stroked-button\n [matMenuTriggerFor]=\"menu\"\n matIconPrefix\n >\n {{ type | titlecase }}\n <mat-icon>layers</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"onSelectType('basic')\"\n >\n Basic\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('icon')\"\n >\n Icon\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('action')\"\n >\n Action\n </button>\n</mat-menu>\n\n<div style=\"margin: 1rem;\">\n <span [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'icon'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border')\"\n >\n Icon - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard')\"\n >\n Icon - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event')\"\n >\n Icon - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid')\"\n >\n Icon - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'notifications')\"\n >\n Icon - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'movie_filter')\"\n >\n Icon - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'action'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon and Action</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border', 'Dismiss')\"\n >\n Action - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard', 'Dismiss')\"\n >\n Action - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event', 'Dismiss')\"\n >\n Action - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid', 'Dismiss')\"\n >\n Action - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY', 'notifications', 'Dismiss')\"\n >\n Action - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL', 'movie_filter', 'Dismiss')\"\n >\n Action - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchDefault>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Basic Toast</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS')\"\n >\n Basic - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR')\"\n >\n Basic - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO')\"\n >\n Basic - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN')\"\n >\n Basic - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY')\"\n >\n Basic - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL')\"\n >\n Basic - GENERAL\n </button>\n </div>\n </div>\n\n </div>\n </span>\n <div style=\"display: flex; margin-top: 1rem;\">\n <mat-radio-group [formControl]=\"position\" style=\"display: flex; gap: 2rem\">\n <mat-radio-button value=\"top\">Top Position</mat-radio-button>\n <mat-radio-button value=\"bottom\">Bottom Position</mat-radio-button>\n </mat-radio-group>\n </div>\n</div>\n\n<div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div style=\"margin: 1rem;\">\n <button mat-stroked-button (click)=\"onInline()\" style=\"margin-bottom: 2rem;\">\n Add Inline Toast Message\n </button>\n <app-toast-message-display-inline\n [toast]=\"pickToastSample\"\n [duration]=\"5\"\n (close)=\"onClosedToast($event)\"\n ></app-toast-message-display-inline>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BrowserModule } from '@angular/platform-browser';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { ToastUIComponent } from './toast-ui/toast-ui.component';\nimport { ToastDemoComponent } from './toast-demo/toast-demo.component';\n\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { ToastMessageInlineComponent } from '../public-api';\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserModule,\n ReactiveFormsModule,\n MatIconModule,\n MatSnackBarModule,\n MatButtonModule,\n MatToolbarModule,\n MatMenuModule,\n MatRadioModule,\n MatDividerModule,\n ],\n declarations: [\n SafeHtmlPipe,\n ToastUIComponent,\n ToastDemoComponent,\n ToastMessageInlineComponent,\n ],\n exports: [\n ToastUIComponent,\n ToastDemoComponent,\n ],\n\n})\nexport class ToastMessageDisplayModule { }\n","/*\n * Public API Surface of toast-message\n */\n\nexport * from \"./lib/toast-message.module\"\nexport * from \"./lib/toast-ui/toast-ui.component\"\n\nexport * from './lib/models';\n\nexport * from './lib/toast-demo/toast-demo.component';\nexport * from './lib/toast-message-inline/toast-message-inline.component';\n\nexport * from './lib/services/toast-message.service'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ColorConversionService","i4.SafeHtmlPipe","i2.ToastUIComponent","i2","i3","i4","i9.ToastMessageInlineComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toast-message-display.mjs","sources":["../../../projects/toast-message-display/src/lib/models/toast-colors.enum.ts","../../../projects/toast-message-display/src/lib/models/toast-display-model.ts","../../../projects/toast-message-display/src/lib/utils/color-conversion.service.ts","../../../projects/toast-message-display/src/lib/utils/text-color.service.ts","../../../projects/toast-message-display/src/lib/pipes/safe-html.pipe.ts","../../../projects/toast-message-display/src/lib/toast-ui/toast-ui.component.ts","../../../projects/toast-message-display/src/lib/toast-ui/toast-ui.component.html","../../../projects/toast-message-display/src/lib/models/horizontal-alignment.enum.ts","../../../projects/toast-message-display/src/lib/models/vertical-alignment.enum.ts","../../../projects/toast-message-display/src/lib/models/toast-message.model.ts","../../../projects/toast-message-display/src/lib/models/toast-options.model.ts","../../../projects/toast-message-display/src/lib/services/toast-message.service.ts","../../../projects/toast-message-display/src/lib/toast-message-inline/toast-message-inline.component.ts","../../../projects/toast-message-display/src/lib/toast-message-inline/toast-message-inline.component.html","../../../projects/toast-message-display/src/lib/toast-demo/toast-demo.component.ts","../../../projects/toast-message-display/src/lib/toast-demo/toast-demo.component.html","../../../projects/toast-message-display/src/lib/toast-message.module.ts","../../../projects/toast-message-display/src/public-api.ts","../../../projects/toast-message-display/src/toast-message-display.ts"],"sourcesContent":["export enum ToastColors {\n SUCCESS = '#006B31', // green\n ERROR = '#CC0000', // red\n INFO = '#02559F', // grey\n WARN = '#FFC20E', // orange\n NOTIFY = '#080808', // black\n GENERAL = '#f5f5f5', // light\n}\n","import { ToastColors } from \"./toast-colors.enum\";\n\nexport interface ToastDisplayInterface {\n id?: string;\n message: string;\n action?: string;\n color: ToastColors;\n icon?: string;\n}\n\nexport class ToastDisplay implements ToastDisplayInterface {\n\n constructor(\n public id?: string,\n public message = 'Sample message',\n public action?: string,\n public color = ToastColors.INFO,\n public icon?: string,\n ) {}\n\n static adapt(item?: any) {\n return new ToastDisplay(\n (item?.id) ? item.id : this.randomNumbers(8),\n item?.message,\n item?.action,\n item?.color,\n item?.icon,\n );\n }\n\n static randomNumbers(length: number) {\n return this.generateRandom('0123456789', length)\n }\n\n static generateRandom(randomChars: string, length: number) {\n\n var result = ''\n for ( var i = 0; i < length; i++ ) {\n result += randomChars.charAt(Math.floor(Math.random() * randomChars.length))\n }\n return result\n\n }\n\n}\n","import { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ColorConversionService {\r\n\r\n rgbToHex(rgb: number[]): string {\r\n const [r, g, b] = rgb\r\n const componentToHex = (c: number) => {\r\n const hex = c.toString(16)\r\n return hex.length === 1 ? \"0\" + hex : hex\r\n }\r\n const hexR = componentToHex(r)\r\n const hexG = componentToHex(g)\r\n const hexB = componentToHex(b)\r\n return \"#\" + hexR + hexG + hexB\r\n }\r\n\r\n hexToRgb(hex: string) {\r\n\r\n hex = (hex.length === 3) ? hex + hex : hex\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\r\n\r\n return result ? [\r\n parseInt(result[1], 16),\r\n parseInt(result[2], 16),\r\n parseInt(result[3], 16)\r\n ] : []\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { ColorConversionService } from './color-conversion.service'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TextColorService {\r\n\r\n constructor(\r\n private colorConversionService: ColorConversionService\r\n ) {}\r\n\r\n /**\r\n * Determines the appropriate text color (light or dark) based on the background color.\r\n *\r\n * @param bgColor - The background color to use for the calculation.\r\n * @param lightColor - The light color to use if the background is dark.\r\n * @param darkColor - The dark color to use if the background is light.\r\n * @returns The appropriate text color (light or dark) based on the background color.\r\n */\r\n textColorForBgColor(bgColor: string, lightColor: string, darkColor: string) {\r\n\r\n const UIColors = this.fixColor(bgColor)\r\n\r\n const r = UIColors[0]\r\n const g = UIColors[1]\r\n const b = UIColors[2]\r\n\r\n return ((r*0.299 + g*0.587 + b*0.114) > 149) ? darkColor : lightColor;\r\n\r\n }\r\n\r\n /**\r\n * Determines whether the first color is darker than the second color.\r\n *\r\n * @param color1 - The first color to compare.\r\n * @param color2 - The second color to compare.\r\n * @returns The darker of the two colors.\r\n */\r\n isColorDarker(color1: string, color2: string) {\r\n const newColor1 = this.fixColor(color1);\r\n const newColor2 = this.fixColor(color2);\r\n\r\n const luminance1 = this.calculateLuminance(\r\n newColor1[0],\r\n newColor1[1],\r\n newColor1[2]\r\n );\r\n const luminance2 = this.calculateLuminance(\r\n newColor2[0],\r\n newColor2[1],\r\n newColor2[2]\r\n );\r\n\r\n return luminance1 > luminance2 ? color2 : color1;\r\n }\r\n\r\n calculateLuminance(r: number, g: number, b: number): number {\r\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\r\n }\r\n\r\n /**\r\n * Fixes the provided color string by ensuring it is in a valid hexadecimal format.\r\n * If the input color is a hexadecimal string, it will be normalized to a 6-digit format.\r\n * If the input color is not a hexadecimal string, it will be converted to an RGB array.\r\n *\r\n * @param color - The color string to be fixed.\r\n * @returns An array of RGB values, or the normalized hexadecimal color string.\r\n */\r\n fixColor(color: string) {\r\n let newColor = color;\r\n\r\n if (color.includes(\"#\")) {\r\n newColor = color.slice(1);\r\n newColor =\r\n newColor.length === 3\r\n ? \"#\" +\r\n newColor\r\n .split(\"\")\r\n .map((hex) => hex + hex)\r\n .join(\"\")\r\n : \"#\" + newColor;\r\n } else {\r\n newColor = this.standardize_color(color);\r\n }\r\n\r\n const Reg_Exp = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\r\n const colorIsHex = Reg_Exp.test(newColor);\r\n\r\n const UIColors = colorIsHex\r\n ? this.colorConversionService.hexToRgb(newColor)\r\n : newColor.match(/\\d+/g)?.map((item) => parseInt(item)) || [];\r\n\r\n return UIColors;\r\n }\r\n\r\n /**\r\n * Converts the color representation of the provided string into HEX value.\r\n *\r\n * @param str - The color string to be standardized - 'whitesmoke'.\r\n * @returns The standardized color string - #DEDEDE.\r\n */\r\n standardize_color(str: string): string {\r\n const ctx = document.createElement(\"canvas\").getContext(\"2d\");\r\n\r\n if (ctx) {\r\n ctx.fillStyle = str;\r\n }\r\n\r\n return ctx?.fillStyle as string;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport {DomSanitizer} from \"@angular/platform-browser\";\n\n@Pipe({\n name: 'safeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\n private sanitizer = inject(DomSanitizer)\n\n transform(html: string) {\n return this.sanitizer.bypassSecurityTrustHtml(html)\n }\n\n}\n","import { Component, EventEmitter, Inject, inject, Input, OnInit, Output, VERSION, ViewEncapsulation } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBar } from '@angular/material/snack-bar';\n\nimport { ToastDisplay } from '../models/toast-display-model';\nimport { TextColorService } from '../utils';\n\n@Component({\n selector: 'app-toast-ui',\n templateUrl: './toast-ui.component.html',\n styleUrls: ['./toast-ui.component.scss'],\n encapsulation: ViewEncapsulation.None,\n styles: [`\n .mat-mdc-snack-bar-container {\n --mdc-snackbar-container-color: var(--toast-bg-color, #fff);\n --mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);\n --mdc-snackbar-supporting-text-color: var(--toast-text-color, #000);\n }\n `]\n})\nexport class ToastUIComponent implements OnInit {\n\n ngVersion = parseInt(VERSION.full.split('.')[0], 10)\n\n @Output() close = new EventEmitter<ToastDisplay>();\n\n textColorService = inject(TextColorService);\n private snackBar = inject(MatSnackBar);\n\n @Input() options = ToastDisplay.adapt();\n\n constructor(\n @Inject(MAT_SNACK_BAR_DATA)\n public data: ToastDisplay\n ) {\n this.options = ToastDisplay.adapt(data)\n }\n\n ngOnInit() {\n\n if (this.ngVersion >= 15) {\n\n const hostElement = document.querySelector('.mat-mdc-snack-bar-container')\n\n if (hostElement) {\n hostElement.setAttribute('style', `\n --toast-bg-color: ${this.color};\n --toast-text-color: ${this.textColor};\n `)\n }\n\n } else {\n\n document.documentElement.style.setProperty('--toast-bg-color', this.color);\n document.documentElement.style.setProperty('--toast-text-color', this.textColor);\n\n const hostElement = document.querySelector('.mat-snack-bar-container') as HTMLElement;\n\n if (hostElement) {\n hostElement.style.backgroundColor = this.color;\n hostElement.style.color = this.textColor;\n\n const actionButton = hostElement.querySelector('.mat-button, .mat-snack-bar-action') as HTMLElement;\n if (actionButton) {\n actionButton.style.color = this.textColor;\n }\n }\n\n }\n\n }\n\n get color() {\n return this.options.color || '#2196f3';\n }\n\n get textColor() {\n return this.textColorService.textColorForBgColor(\n this.color,\n '#FFFFFF',\n '#000000'\n );\n }\n\n onCloseToast(options?: ToastDisplay) {\n this.snackBar.dismiss()\n this.close.emit(options)\n }\n}\n","<div\n class=\"toast-grid-container\"\n [class.has-icon]=\"options.icon\"\n [class.has-action]=\"options.action\"\n [style.background-color]=\"(options) ? options.color : ''\"\n>\n <mat-icon\n *ngIf=\"options.icon\"\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n <button\n *ngIf=\"options.action\"\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n <ng-container *ngIf=\"options.action !== '-'; else CLOSE\">\n {{ options.action }}\n </ng-container>\n <ng-template #CLOSE>\n <mat-icon>close</mat-icon>\n </ng-template>\n\n </button>\n</div>\n","export enum HorizontalAlignment {\n LEFT = 'left',\n RIGHT = 'right',\n CENTER = 'center',\n}\n","export enum VerticalAlignment {\n TOP = 'top',\n BOTTOM = 'bottom',\n}\n","export interface ToastMessageInterface {\n error: string;\n action: string;\n icon: string;\n}\n\nexport class ToastMessage implements ToastMessageInterface {\n constructor(\n public error = '',\n public action = '',\n public icon = 'error',\n ) {}\n\n static adapt(item?: any): ToastMessageInterface {\n return new ToastMessage(\n item?.error,\n item?.action,\n item?.icon,\n )\n\n }\n}\n","import { MatSnackBarVerticalPosition } from \"@angular/material/snack-bar\";\nimport { HorizontalAlignment } from \"./horizontal-alignment.enum\";\nimport { ToastDisplay } from \"./toast-display-model\";\nimport { VerticalAlignment } from \"./vertical-alignment.enum\";\n\nexport interface ToastOptionsInterface {\n duration?: number\n horizontalPosition?: HorizontalAlignment\n verticalPosition?: MatSnackBarVerticalPosition\n data?: ToastDisplay\n}\n\nexport class ToastOptions implements ToastOptionsInterface {\n\n constructor(\n public duration?: number,\n public horizontalPosition = HorizontalAlignment.CENTER,\n public verticalPosition = VerticalAlignment.TOP,\n public data?: ToastDisplay\n ) {}\n\n static adapt(item?: any): ToastOptionsInterface {\n\n if(item?.duration) item.duration = item.duration * 1000\n\n return new ToastOptions(\n item?.duration,\n item?.horizontalPosition,\n item?.verticalPosition,\n item?.data ? ToastDisplay.adapt(item.data) : ToastDisplay.adapt()\n )\n }\n\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarRef, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\nimport { ToastUIComponent } from '../toast-ui/toast-ui.component';\nimport { ToastOptions } from '../models/toast-options.model';\nimport { VerticalAlignment } from '../models/vertical-alignment.enum';\nimport { ToastDisplay } from '../models/toast-display-model';\nimport { take } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastMessageDisplayService {\n\n private snackBar = inject(MatSnackBar);\n\n private toastQueue: { options: ToastDisplay, duration?: number, vertical?: VerticalAlignment }[] = [];\n private isToastVisible = false;\n\n defaultDuration = 3;\n\n snackBarRef: MatSnackBarRef<any> | undefined;\n\n toastMessage(options = ToastDisplay.adapt(), duration?: number, vertical?: VerticalAlignment) {\n this.toastQueue.push({ options, duration, vertical });\n this.showNextToast();\n }\n\n private showNextToast() {\n\n if (this.isToastVisible || this.toastQueue.length === 0) return\n\n const { options, duration, vertical } = this.toastQueue.shift()!\n\n const vertPosition: MatSnackBarVerticalPosition = (vertical) ? vertical : 'top'\n\n const durationDismiss = (!options.action) ? this.defaultDuration : duration\n\n const displayOptions = ToastOptions.adapt({\n duration: durationDismiss,\n horizontalPosition: 'center',\n verticalPosition: vertPosition,\n data: options,\n })\n\n this.isToastVisible = true;\n this.snackBarRef = this.snackBar.openFromComponent(ToastUIComponent, displayOptions);\n\n if (this.snackBarRef) {\n this.snackBarRef\n .afterDismissed()\n .pipe(take(1))\n .subscribe(() => {\n this.isToastVisible = false;\n this.showNextToast();\n });\n } else {\n console.error('Snackbar reference is undefined. Unable to subscribe to dismissal event.');\n }\n\n }\n}\n","import { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { TextColorService } from '../utils';\nimport { ToastDisplay, VerticalAlignment } from '../models';\n\n@Component({\n selector: 'app-toast-message-display-inline',\n templateUrl: './toast-message-inline.component.html',\n styleUrls: ['./toast-message-inline.component.scss']\n})\nexport class ToastMessageInlineComponent implements OnInit {\n\n @Output() close = new EventEmitter<ToastDisplay>();\n\n textColorService = inject(TextColorService)\n\n toastList: ToastDisplay[] = []\n\n dismissToasts: any[] = []\n\n @Input() set toast(value: any) {\n\n if (!value) return\n const toast = ToastDisplay.adapt(value)\n\n if (!toast.action) {\n this.dismissToasts.push(toast)\n this.expireTime(toast)\n }\n\n this.toastList.push(toast)\n\n }\n\n get option() {\n return (this.toastList.length > 0) ? this.toastList[0] : null\n }\n\n @Input() duration = -1\n @Input() position: VerticalAlignment = VerticalAlignment.TOP\n\n get color() {\n return (this.option) ? this.option.color : ''\n }\n\n get textColor() {\n return (this.option) ? this.textColorService.textColorForBgColor(this.option.color, '#FFFFFF', '#000000') : ''\n }\n\n ngOnInit() {\n document.documentElement.style.setProperty('--snackbar-color', this.color)\n }\n\n onCloseToast(toast?: ToastDisplay) {\n this.toastList = this.toastList.filter(item => item.id !== toast?.id)\n this.close.emit(toast)\n }\n\n expireTime(toast: any) {\n const boundRemove = this.removeToast.bind(this, toast)\n setTimeout(boundRemove, 3000)\n }\n\n removeToast(toast: any) {\n this.dismissToasts = this.dismissToasts.filter(t => t.id !== toast.id)\n this.toastList = this.toastList.filter(t => t.id !== toast.id)\n }\n\n}\n","<div style=\"display: flex; gap: .5rem; flex-direction: column;\">\n <ng-container *ngFor=\"let toast of toastList\">\n <div [style.background-color]=\"toast.color\" class=\"inline\">\n <app-toast-ui\n [options]=\"toast\"\n style=\"flex: 1;\"\n (close)=\"onCloseToast(toast)\"\n ></app-toast-ui>\n </div>\n </ng-container>\n</div>\n","import { Component, inject } from '@angular/core';\nimport { ToastColors, ToastDisplay, VerticalAlignment } from '../models';\nimport { FormBuilder } from '@angular/forms';\n\nimport { ToastMessageDisplayService } from '../services/toast-message.service';\n\n@Component({\n selector: 'app-toast-display-demo',\n templateUrl: './toast-demo.component.html',\n styleUrls: ['./toast-demo.component.scss']\n})\nexport class ToastDemoComponent {\n\n random = () => {\n const typedArray = new Uint8Array(1)\n const randomValue = crypto.getRandomValues(typedArray)[0]\n const randomFloat = randomValue / Math.pow(2, 8)\n return randomFloat\n }\n\n randomNumber = (min: number, max: number) => {\n return Math.floor(this.random() * max) + min\n }\n\n fb = inject(FormBuilder)\n toastMessageDisplayService = inject(ToastMessageDisplayService)\n\n type = 'Basic'\n\n position = this.fb.control('top')\n\n icons = [\n 'favorite_border',\n 'dashboard',\n 'event',\n 'paid',\n 'notifications',\n 'movie_filter',\n ]\n\n toastSamples = [\n {\n message: `This is a simple toast message. This is a <span style=\"font-size: 22px\">simple toast message</span>. This is a simple toast message. This is a simple toast message`,\n color: ToastColors.ERROR,\n action: \"Ok\"\n },\n {\n message: 'Sample message',\n color: ToastColors.INFO,\n icon: this.icons[0]\n },\n {\n message: 'Sample message',\n color: ToastColors.WARN,\n icon: this.icons[1]\n },\n {\n message: `This is a simple toast message. This is a <span style=\"font-size: 22px\">simple toast message</span>. This is a simple toast message. This is a simple toast message`,\n color: ToastColors.NOTIFY,\n icon: this.icons[2],\n action: \"Dismiss\"\n },\n {\n message: 'Sample message',\n color: ToastColors.GENERAL,\n action: \"Dismiss\"\n },\n {\n message: `This is a simple toast message. This is a <span style=\"font-size: 22px\">simple toast message</span>. This is a simple toast message. This is a simple toast message`,\n color: ToastColors.SUCCESS,\n action: \"-\"\n },\n ]\n\n pickToastSample?: ToastDisplay\n\n onSelectType(type: string) {\n this.type = type\n }\n\n onBasic(type: string, icon?: string, action?: string) {\n switch (type) {\n case 'ERROR':\n this.presentToast(ToastColors.ERROR, icon, action)\n break;\n case 'INFO':\n this.presentToast(ToastColors.INFO, icon, action)\n break;\n case 'WARN':\n this.presentToast(ToastColors.WARN, icon, action)\n break;\n case 'NOTIFY':\n this.presentToast(ToastColors.NOTIFY, icon, action)\n break;\n case 'GENERAL':\n this.presentToast(ToastColors.GENERAL, icon, action)\n break;\n default:\n this.presentToast(ToastColors.SUCCESS, icon, action)\n break;\n }\n }\n\n presentToast(color: ToastColors, icon?: string, action?: string) {\n\n const options = ToastDisplay.adapt({\n message: `This is a simple toast message. <span style=\"font-size: 22px\">simple toast message</span>. This is a simple toast message. This is a simple toast message`,\n color,\n icon,\n action\n })\n\n const toastPosition = (this.position.value === 'top') ? VerticalAlignment.TOP : VerticalAlignment.BOTTOM\n this.toastMessageDisplayService.toastMessage(options, -1, toastPosition)\n }\n\n onInline() {\n const pick = this.randomNumber(0, this.toastSamples.length-1)\n this.pickToastSample = this.toastSamples[pick]\n }\n\n onClosedToast(toast?: ToastDisplay) {\n console.log(toast)\n }\n\n}\n","<mat-toolbar style=\"display: flex;\">\n <div>Toast Message Demo</div>\n <div style=\"flex:1; text-align: end;\">\n <button\n mat-stroked-button\n [matMenuTriggerFor]=\"menu\"\n matIconPrefix\n >\n {{ type | titlecase }}\n <mat-icon>layers</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"onSelectType('basic')\"\n >\n Basic\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('icon')\"\n >\n Icon\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('action')\"\n >\n Action\n </button>\n</mat-menu>\n\n<div style=\"margin: 1rem;\">\n <span [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'icon'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border')\"\n >\n Icon - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard')\"\n >\n Icon - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event')\"\n >\n Icon - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid')\"\n >\n Icon - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'notifications')\"\n >\n Icon - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'movie_filter')\"\n >\n Icon - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'action'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon and Action</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border', 'Dismiss')\"\n >\n Action - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard', 'Dismiss')\"\n >\n Action - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event', 'Dismiss')\"\n >\n Action - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid', 'Dismiss')\"\n >\n Action - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY', 'notifications', 'Dismiss')\"\n >\n Action - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL', 'movie_filter', 'Dismiss')\"\n >\n Action - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchDefault>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Basic Toast</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS')\"\n >\n Basic - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR')\"\n >\n Basic - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO')\"\n >\n Basic - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN')\"\n >\n Basic - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY')\"\n >\n Basic - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL')\"\n >\n Basic - GENERAL\n </button>\n </div>\n </div>\n\n </div>\n </span>\n <div style=\"display: flex; margin-top: 1rem;\">\n <mat-radio-group [formControl]=\"position\" style=\"display: flex; gap: 2rem\">\n <mat-radio-button value=\"top\">Top Position</mat-radio-button>\n <mat-radio-button value=\"bottom\">Bottom Position</mat-radio-button>\n </mat-radio-group>\n </div>\n</div>\n\n<div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div style=\"margin: 1rem;\">\n <button mat-stroked-button (click)=\"onInline()\" style=\"margin-bottom: 2rem;\">\n Add Inline Toast Message\n </button>\n <app-toast-message-display-inline\n [toast]=\"pickToastSample\"\n [duration]=\"5\"\n (close)=\"onClosedToast($event)\"\n ></app-toast-message-display-inline>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { ToastUIComponent } from './toast-ui/toast-ui.component';\nimport { ToastDemoComponent } from './toast-demo/toast-demo.component';\n\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { ToastMessageInlineComponent } from '../public-api';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatIconModule,\n MatSnackBarModule,\n MatButtonModule,\n MatToolbarModule,\n MatMenuModule,\n MatRadioModule,\n MatDividerModule,\n ],\n declarations: [\n SafeHtmlPipe,\n ToastUIComponent,\n ToastDemoComponent,\n ToastMessageInlineComponent,\n ],\n exports: [\n ToastUIComponent,\n ToastDemoComponent,\n ],\n\n})\nexport class ToastMessageDisplayModule { }\n","/*\n * Public API Surface of toast-message\n */\n\nexport * from \"./lib/toast-message.module\"\nexport * from \"./lib/toast-ui/toast-ui.component\"\n\nexport * from './lib/models';\n\nexport * from './lib/toast-demo/toast-demo.component';\nexport * from './lib/toast-message-inline/toast-message-inline.component';\n\nexport * from './lib/services/toast-message.service'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ColorConversionService","i4.SafeHtmlPipe","i2.ToastUIComponent","i2","i3","i4","i9.ToastMessageInlineComponent"],"mappings":"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"}
|
|
@@ -4,17 +4,16 @@ import * as i2 from "./toast-ui/toast-ui.component";
|
|
|
4
4
|
import * as i3 from "./toast-demo/toast-demo.component";
|
|
5
5
|
import * as i4 from "./toast-message-inline/toast-message-inline.component";
|
|
6
6
|
import * as i5 from "@angular/common";
|
|
7
|
-
import * as i6 from "@angular/
|
|
8
|
-
import * as i7 from "@angular/
|
|
9
|
-
import * as i8 from "@angular/material/
|
|
10
|
-
import * as i9 from "@angular/material/
|
|
11
|
-
import * as i10 from "@angular/material/
|
|
12
|
-
import * as i11 from "@angular/material/
|
|
13
|
-
import * as i12 from "@angular/material/
|
|
14
|
-
import * as i13 from "@angular/material/
|
|
15
|
-
import * as i14 from "@angular/material/divider";
|
|
7
|
+
import * as i6 from "@angular/forms";
|
|
8
|
+
import * as i7 from "@angular/material/icon";
|
|
9
|
+
import * as i8 from "@angular/material/snack-bar";
|
|
10
|
+
import * as i9 from "@angular/material/button";
|
|
11
|
+
import * as i10 from "@angular/material/toolbar";
|
|
12
|
+
import * as i11 from "@angular/material/menu";
|
|
13
|
+
import * as i12 from "@angular/material/radio";
|
|
14
|
+
import * as i13 from "@angular/material/divider";
|
|
16
15
|
export declare class ToastMessageDisplayModule {
|
|
17
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<ToastMessageDisplayModule, never>;
|
|
18
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ToastMessageDisplayModule, [typeof i1.SafeHtmlPipe, typeof i2.ToastUIComponent, typeof i3.ToastDemoComponent, typeof i4.ToastMessageInlineComponent], [typeof i5.CommonModule, typeof i6.
|
|
17
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ToastMessageDisplayModule, [typeof i1.SafeHtmlPipe, typeof i2.ToastUIComponent, typeof i3.ToastDemoComponent, typeof i4.ToastMessageInlineComponent], [typeof i5.CommonModule, typeof i6.ReactiveFormsModule, typeof i7.MatIconModule, typeof i8.MatSnackBarModule, typeof i9.MatButtonModule, typeof i10.MatToolbarModule, typeof i11.MatMenuModule, typeof i12.MatRadioModule, typeof i13.MatDividerModule], [typeof i2.ToastUIComponent, typeof i3.ToastDemoComponent]>;
|
|
19
18
|
static ɵinj: i0.ɵɵInjectorDeclaration<ToastMessageDisplayModule>;
|
|
20
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "toast-message-display",
|
|
3
|
-
"version": "18.0.
|
|
3
|
+
"version": "18.0.4",
|
|
4
4
|
"homepage": "https://wavecoders.ca",
|
|
5
5
|
"author": "Mike Bonifacio <wavecoders@gmail.com> (http://wavecoders@gmail.com/)",
|
|
6
6
|
"description": "This is an Angular Module containing Components/Services using Material",
|
|
Binary file
|
|
Binary file
|