toast-message-display 18.0.6 → 18.0.17
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.
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, inject, Pipe, VERSION, EventEmitter, Input, Output, Inject, ViewEncapsulation, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i9 from '@angular/common';
|
|
3
4
|
import { CommonModule } from '@angular/common';
|
|
4
|
-
import
|
|
5
|
+
import * as i1$1 from '@angular/forms';
|
|
6
|
+
import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
|
|
5
7
|
import * as i1 from '@angular/material/icon';
|
|
6
8
|
import { MatIconModule } from '@angular/material/icon';
|
|
7
9
|
import { MatSnackBar, MAT_SNACK_BAR_DATA, MatSnackBarModule } from '@angular/material/snack-bar';
|
|
8
10
|
import * as i2 from '@angular/material/button';
|
|
9
11
|
import { MatButtonModule } from '@angular/material/button';
|
|
12
|
+
import * as i4 from '@angular/material/toolbar';
|
|
10
13
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
14
|
+
import * as i5 from '@angular/material/menu';
|
|
11
15
|
import { MatMenuModule } from '@angular/material/menu';
|
|
16
|
+
import * as i6 from '@angular/material/radio';
|
|
12
17
|
import { MatRadioModule } from '@angular/material/radio';
|
|
18
|
+
import * as i7 from '@angular/material/divider';
|
|
13
19
|
import { MatDividerModule } from '@angular/material/divider';
|
|
14
20
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
15
21
|
import { take } from 'rxjs/operators';
|
|
@@ -205,6 +211,10 @@ class ToastUIComponent {
|
|
|
205
211
|
--toast-text-color: ${this.textColor};
|
|
206
212
|
`);
|
|
207
213
|
}
|
|
214
|
+
const surface = document.querySelector('.mdc-snackbar__surface');
|
|
215
|
+
if (surface) {
|
|
216
|
+
surface.style.backgroundColor = this.color;
|
|
217
|
+
}
|
|
208
218
|
}
|
|
209
219
|
else {
|
|
210
220
|
document.documentElement.style.setProperty('--toast-bg-color', this.color);
|
|
@@ -231,11 +241,11 @@ class ToastUIComponent {
|
|
|
231
241
|
this.close.emit(options);
|
|
232
242
|
}
|
|
233
243
|
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 }); }
|
|
234
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.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
|
|
244
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.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 >\n @if (options.icon) {\n <mat-icon\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n }\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n @if (options.action) {\n <button\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n @if (options.action !== '-') {\n {{ options.action }}\n } @else {\n <mat-icon>close</mat-icon>\n }\n </button>\n }\n</div>\n", styles: [".mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:100%!important;width:100%}.mat-mdc-snackbar-surface{padding-right:0}.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}.toast-grid-container.has-action{grid-template-columns:1fr auto}.toast-grid-container.has-icon{grid-template-columns:minmax(0,44px) 1fr}.toast-grid-container.has-icon.has-action{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{--mat-snackbar-container-color: var(--toast-bg-color, #fff);--mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);--mat-snackbar-supporting-text-color: var(--toast-text-color, #000)}\n"], dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.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 }); }
|
|
235
245
|
}
|
|
236
246
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastUIComponent, decorators: [{
|
|
237
247
|
type: Component,
|
|
238
|
-
args: [{ selector: 'app-toast-ui', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div\n class=\"toast-grid-container\"\n [class.has-icon]=\"options.icon\"\n [class.has-action]=\"options.action\"\n
|
|
248
|
+
args: [{ selector: 'app-toast-ui', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div\n class=\"toast-grid-container\"\n [class.has-icon]=\"options.icon\"\n [class.has-action]=\"options.action\"\n >\n @if (options.icon) {\n <mat-icon\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n }\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n @if (options.action) {\n <button\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n @if (options.action !== '-') {\n {{ options.action }}\n } @else {\n <mat-icon>close</mat-icon>\n }\n </button>\n }\n</div>\n", styles: [".mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:100%!important;width:100%}.mat-mdc-snackbar-surface{padding-right:0}.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}.toast-grid-container.has-action{grid-template-columns:1fr auto}.toast-grid-container.has-icon{grid-template-columns:minmax(0,44px) 1fr}.toast-grid-container.has-icon.has-action{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{--mat-snackbar-container-color: var(--toast-bg-color, #fff);--mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);--mat-snackbar-supporting-text-color: var(--toast-text-color, #000)}\n"] }]
|
|
239
249
|
}], ctorParameters: () => [{ type: ToastDisplay, decorators: [{
|
|
240
250
|
type: Inject,
|
|
241
251
|
args: [MAT_SNACK_BAR_DATA]
|
|
@@ -340,10 +350,166 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
340
350
|
type: Input
|
|
341
351
|
}] } });
|
|
342
352
|
|
|
353
|
+
class ToastMessageDisplayService {
|
|
354
|
+
constructor() {
|
|
355
|
+
this.snackBar = inject(MatSnackBar);
|
|
356
|
+
this.toastQueue = [];
|
|
357
|
+
this.isToastVisible = false;
|
|
358
|
+
this.defaultDuration = 3;
|
|
359
|
+
}
|
|
360
|
+
toastMessage(options = ToastDisplay.adapt(), duration, vertical) {
|
|
361
|
+
this.toastQueue.push({ options, duration, vertical });
|
|
362
|
+
this.showNextToast();
|
|
363
|
+
}
|
|
364
|
+
showNextToast() {
|
|
365
|
+
if (this.isToastVisible || this.toastQueue.length === 0)
|
|
366
|
+
return;
|
|
367
|
+
const { options, duration, vertical } = this.toastQueue.shift();
|
|
368
|
+
const vertPosition = (vertical) ? vertical : 'top';
|
|
369
|
+
const durationDismiss = (!options.action) ? this.defaultDuration : duration;
|
|
370
|
+
const displayOptions = ToastOptions.adapt({
|
|
371
|
+
duration: durationDismiss,
|
|
372
|
+
horizontalPosition: 'center',
|
|
373
|
+
verticalPosition: vertPosition,
|
|
374
|
+
data: options,
|
|
375
|
+
});
|
|
376
|
+
this.isToastVisible = true;
|
|
377
|
+
this.snackBarRef = this.snackBar.openFromComponent(ToastUIComponent, displayOptions);
|
|
378
|
+
if (this.snackBarRef) {
|
|
379
|
+
this.snackBarRef
|
|
380
|
+
.afterDismissed()
|
|
381
|
+
.pipe(take(1))
|
|
382
|
+
.subscribe(() => {
|
|
383
|
+
this.isToastVisible = false;
|
|
384
|
+
this.showNextToast();
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
console.error('Snackbar reference is undefined. Unable to subscribe to dismissal event.');
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
392
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, providedIn: 'root' }); }
|
|
393
|
+
}
|
|
394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, decorators: [{
|
|
395
|
+
type: Injectable,
|
|
396
|
+
args: [{
|
|
397
|
+
providedIn: 'root'
|
|
398
|
+
}]
|
|
399
|
+
}] });
|
|
400
|
+
|
|
401
|
+
class ToastDemoComponent {
|
|
402
|
+
constructor() {
|
|
403
|
+
this.random = () => {
|
|
404
|
+
const typedArray = new Uint8Array(1);
|
|
405
|
+
const randomValue = crypto.getRandomValues(typedArray)[0];
|
|
406
|
+
const randomFloat = randomValue / Math.pow(2, 8);
|
|
407
|
+
return randomFloat;
|
|
408
|
+
};
|
|
409
|
+
this.randomNumber = (min, max) => {
|
|
410
|
+
return Math.floor(this.random() * max) + min;
|
|
411
|
+
};
|
|
412
|
+
this.fb = inject(FormBuilder);
|
|
413
|
+
this.toastMessageDisplayService = inject(ToastMessageDisplayService);
|
|
414
|
+
this.type = 'Basic';
|
|
415
|
+
this.position = this.fb.control('top');
|
|
416
|
+
this.icons = [
|
|
417
|
+
'favorite_border',
|
|
418
|
+
'dashboard',
|
|
419
|
+
'event',
|
|
420
|
+
'paid',
|
|
421
|
+
'notifications',
|
|
422
|
+
'movie_filter',
|
|
423
|
+
];
|
|
424
|
+
this.toastSamples = [
|
|
425
|
+
{
|
|
426
|
+
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`,
|
|
427
|
+
color: ToastColors.ERROR,
|
|
428
|
+
action: "Ok"
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
message: 'Sample message',
|
|
432
|
+
color: ToastColors.INFO,
|
|
433
|
+
icon: this.icons[0]
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
message: 'Sample message',
|
|
437
|
+
color: ToastColors.WARN,
|
|
438
|
+
icon: this.icons[1]
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
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`,
|
|
442
|
+
color: ToastColors.NOTIFY,
|
|
443
|
+
icon: this.icons[2],
|
|
444
|
+
action: "Dismiss"
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
message: 'Sample message',
|
|
448
|
+
color: ToastColors.GENERAL,
|
|
449
|
+
action: "Dismiss"
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
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`,
|
|
453
|
+
color: ToastColors.SUCCESS,
|
|
454
|
+
action: "-"
|
|
455
|
+
},
|
|
456
|
+
];
|
|
457
|
+
}
|
|
458
|
+
onSelectType(type) {
|
|
459
|
+
this.type = type;
|
|
460
|
+
}
|
|
461
|
+
onBasic(type, icon, action) {
|
|
462
|
+
switch (type) {
|
|
463
|
+
case 'ERROR':
|
|
464
|
+
this.presentToast(ToastColors.ERROR, icon, action);
|
|
465
|
+
break;
|
|
466
|
+
case 'INFO':
|
|
467
|
+
this.presentToast(ToastColors.INFO, icon, action);
|
|
468
|
+
break;
|
|
469
|
+
case 'WARN':
|
|
470
|
+
this.presentToast(ToastColors.WARN, icon, action);
|
|
471
|
+
break;
|
|
472
|
+
case 'NOTIFY':
|
|
473
|
+
this.presentToast(ToastColors.NOTIFY, icon, action);
|
|
474
|
+
break;
|
|
475
|
+
case 'GENERAL':
|
|
476
|
+
this.presentToast(ToastColors.GENERAL, icon, action);
|
|
477
|
+
break;
|
|
478
|
+
default:
|
|
479
|
+
this.presentToast(ToastColors.SUCCESS, icon, action);
|
|
480
|
+
break;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
presentToast(color, icon, action) {
|
|
484
|
+
const options = ToastDisplay.adapt({
|
|
485
|
+
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`,
|
|
486
|
+
color,
|
|
487
|
+
icon,
|
|
488
|
+
action
|
|
489
|
+
});
|
|
490
|
+
const toastPosition = (this.position.value === 'top') ? VerticalAlignment.TOP : VerticalAlignment.BOTTOM;
|
|
491
|
+
this.toastMessageDisplayService.toastMessage(options, -1, toastPosition);
|
|
492
|
+
}
|
|
493
|
+
onInline() {
|
|
494
|
+
const pick = this.randomNumber(0, this.toastSamples.length - 1);
|
|
495
|
+
this.pickToastSample = this.toastSamples[pick];
|
|
496
|
+
}
|
|
497
|
+
onClosedToast(toast) {
|
|
498
|
+
console.log(toast);
|
|
499
|
+
}
|
|
500
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
501
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.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>\n @switch (type) {\n @case ('icon') {\n <div>\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 }\n @case ('action') {\n <div>\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 }\n @default {\n <div>\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 </div>\n }\n }\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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i5.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: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.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: i6.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i6.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: i7.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: i9.TitleCasePipe, name: "titlecase" }] }); }
|
|
502
|
+
}
|
|
503
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastDemoComponent, decorators: [{
|
|
504
|
+
type: Component,
|
|
505
|
+
args: [{ selector: 'app-toast-display-demo', standalone: false, 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>\n @switch (type) {\n @case ('icon') {\n <div>\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 }\n @case ('action') {\n <div>\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 }\n @default {\n <div>\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 </div>\n }\n }\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"] }]
|
|
506
|
+
}] });
|
|
507
|
+
|
|
343
508
|
class ToastMessageDisplayModule {
|
|
344
509
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
345
510
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, declarations: [SafeHtmlPipe,
|
|
346
511
|
ToastUIComponent,
|
|
512
|
+
ToastDemoComponent,
|
|
347
513
|
ToastMessageInlineComponent], imports: [CommonModule,
|
|
348
514
|
ReactiveFormsModule,
|
|
349
515
|
MatIconModule,
|
|
@@ -353,6 +519,7 @@ class ToastMessageDisplayModule {
|
|
|
353
519
|
MatMenuModule,
|
|
354
520
|
MatRadioModule,
|
|
355
521
|
MatDividerModule], exports: [ToastUIComponent,
|
|
522
|
+
ToastDemoComponent,
|
|
356
523
|
ToastMessageInlineComponent] }); }
|
|
357
524
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayModule, imports: [CommonModule,
|
|
358
525
|
ReactiveFormsModule,
|
|
@@ -381,63 +548,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
381
548
|
declarations: [
|
|
382
549
|
SafeHtmlPipe,
|
|
383
550
|
ToastUIComponent,
|
|
551
|
+
ToastDemoComponent,
|
|
384
552
|
ToastMessageInlineComponent,
|
|
385
553
|
],
|
|
386
554
|
exports: [
|
|
387
555
|
ToastUIComponent,
|
|
556
|
+
ToastDemoComponent,
|
|
388
557
|
ToastMessageInlineComponent,
|
|
389
558
|
],
|
|
390
559
|
}]
|
|
391
560
|
}] });
|
|
392
561
|
|
|
393
|
-
class ToastMessageDisplayService {
|
|
394
|
-
constructor() {
|
|
395
|
-
this.snackBar = inject(MatSnackBar);
|
|
396
|
-
this.toastQueue = [];
|
|
397
|
-
this.isToastVisible = false;
|
|
398
|
-
this.defaultDuration = 3;
|
|
399
|
-
}
|
|
400
|
-
toastMessage(options = ToastDisplay.adapt(), duration, vertical) {
|
|
401
|
-
this.toastQueue.push({ options, duration, vertical });
|
|
402
|
-
this.showNextToast();
|
|
403
|
-
}
|
|
404
|
-
showNextToast() {
|
|
405
|
-
if (this.isToastVisible || this.toastQueue.length === 0)
|
|
406
|
-
return;
|
|
407
|
-
const { options, duration, vertical } = this.toastQueue.shift();
|
|
408
|
-
const vertPosition = (vertical) ? vertical : 'top';
|
|
409
|
-
const durationDismiss = (!options.action) ? this.defaultDuration : duration;
|
|
410
|
-
const displayOptions = ToastOptions.adapt({
|
|
411
|
-
duration: durationDismiss,
|
|
412
|
-
horizontalPosition: 'center',
|
|
413
|
-
verticalPosition: vertPosition,
|
|
414
|
-
data: options,
|
|
415
|
-
});
|
|
416
|
-
this.isToastVisible = true;
|
|
417
|
-
this.snackBarRef = this.snackBar.openFromComponent(ToastUIComponent, displayOptions);
|
|
418
|
-
if (this.snackBarRef) {
|
|
419
|
-
this.snackBarRef
|
|
420
|
-
.afterDismissed()
|
|
421
|
-
.pipe(take(1))
|
|
422
|
-
.subscribe(() => {
|
|
423
|
-
this.isToastVisible = false;
|
|
424
|
-
this.showNextToast();
|
|
425
|
-
});
|
|
426
|
-
}
|
|
427
|
-
else {
|
|
428
|
-
console.error('Snackbar reference is undefined. Unable to subscribe to dismissal event.');
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
432
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, providedIn: 'root' }); }
|
|
433
|
-
}
|
|
434
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, decorators: [{
|
|
435
|
-
type: Injectable,
|
|
436
|
-
args: [{
|
|
437
|
-
providedIn: 'root'
|
|
438
|
-
}]
|
|
439
|
-
}] });
|
|
440
|
-
|
|
441
562
|
/*
|
|
442
563
|
* Public API Surface of toast-message
|
|
443
564
|
*/
|
|
@@ -446,5 +567,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
446
567
|
* Generated bundle index. Do not edit.
|
|
447
568
|
*/
|
|
448
569
|
|
|
449
|
-
export { HorizontalAlignment, ToastColors, ToastDisplay, ToastMessage, ToastMessageDisplayModule, ToastMessageDisplayService, ToastMessageInlineComponent, ToastOptions, ToastUIComponent, VerticalAlignment };
|
|
570
|
+
export { HorizontalAlignment, ToastColors, ToastDemoComponent, ToastDisplay, ToastMessage, ToastMessageDisplayModule, ToastMessageDisplayService, ToastMessageInlineComponent, ToastOptions, ToastUIComponent, VerticalAlignment };
|
|
450
571
|
//# sourceMappingURL=toast-message-display.mjs.map
|
|
@@ -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/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-message.module.ts","../../../projects/toast-message-display/src/lib/services/toast-message.service.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 standalone: false\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 --mat-snackbar-container-color: var(--toast-bg-color, #fff);\n --mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);\n --mat-snackbar-supporting-text-color: var(--toast-text-color, #000);\n }\n `],\n standalone: false\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 @if (options.icon) {\n <mat-icon\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n }\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n @if (options.action) {\n <button\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n @if (options.action !== '-') {\n {{ options.action }}\n } @else {\n <mat-icon>close</mat-icon>\n }\n </button>\n }\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 const duration = item?.duration ? item.duration * 1000 : item?.duration;\n\n return new ToastOptions(\n duration,\n item?.horizontalPosition,\n item?.verticalPosition,\n item?.data ? ToastDisplay.adapt(item.data) : ToastDisplay.adapt()\n )\n }\n\n}\n","import { Component, EventEmitter, inject, Input, 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 standalone: false\n})\nexport class ToastMessageInlineComponent {\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, this.duration)\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 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, duration: number) {\n if (duration <= 0) return\n const boundRemove = this.removeToast.bind(this, toast)\n setTimeout(boundRemove, duration * 1000)\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 class=\"toast-inline-list\" [class.position-bottom]=\"position === 'bottom'\">\n @for (toast of toastList; track toast) {\n <div [style.background-color]=\"toast.color\" class=\"inline\">\n <app-toast-ui\n [options]=\"toast\"\n class=\"toast-inline-item\"\n (close)=\"onCloseToast(toast)\"\n ></app-toast-ui>\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\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 { MatRadioModule } from '@angular/material/radio';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { ToastUIComponent } from './toast-ui/toast-ui.component';\nimport { ToastMessageInlineComponent } from './toast-message-inline/toast-message-inline.component';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\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 ToastMessageInlineComponent,\n ],\n exports: [\n ToastUIComponent,\n ToastMessageInlineComponent,\n ],\n})\nexport class ToastMessageDisplayModule { }\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","/*\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-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","i3.SafeHtmlPipe","i1.ToastUIComponent"],"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/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/services/toast-message.service.ts","../../../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 standalone: false\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 --mat-snackbar-container-color: var(--toast-bg-color, #fff);\n --mat-mdc-snack-bar-button-color: var(--toast-text-color, #fff);\n --mat-snackbar-supporting-text-color: var(--toast-text-color, #000);\n }\n `],\n standalone: false\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 const surface = document.querySelector('.mdc-snackbar__surface') as HTMLElement;\n if (surface) {\n surface.style.backgroundColor = this.color;\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 >\n @if (options.icon) {\n <mat-icon\n class=\"toast-icon\"\n [style.color]=\"textColor\"\n >\n {{ options.icon }}\n </mat-icon>\n }\n\n <div\n class=\"toast-message\"\n [style.color]=\"textColor\"\n [innerHTML]=\"options.message | safeHtml\"\n >\n </div>\n\n @if (options.action) {\n <button\n class=\"toast-action-button\"\n mat-button\n (click)=\"onCloseToast(options)\"\n [style.color]=\"textColor\"\n >\n @if (options.action !== '-') {\n {{ options.action }}\n } @else {\n <mat-icon>close</mat-icon>\n }\n </button>\n }\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 const duration = item?.duration ? item.duration * 1000 : item?.duration;\n\n return new ToastOptions(\n duration,\n item?.horizontalPosition,\n item?.verticalPosition,\n item?.data ? ToastDisplay.adapt(item.data) : ToastDisplay.adapt()\n )\n }\n\n}\n","import { Component, EventEmitter, inject, Input, 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 standalone: false\n})\nexport class ToastMessageInlineComponent {\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, this.duration)\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 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, duration: number) {\n if (duration <= 0) return\n const boundRemove = this.removeToast.bind(this, toast)\n setTimeout(boundRemove, duration * 1000)\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 class=\"toast-inline-list\" [class.position-bottom]=\"position === 'bottom'\">\n @for (toast of toastList; track toast) {\n <div [style.background-color]=\"toast.color\" class=\"inline\">\n <app-toast-ui\n [options]=\"toast\"\n class=\"toast-inline-item\"\n (close)=\"onCloseToast(toast)\"\n ></app-toast-ui>\n </div>\n }\n</div>\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, 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 standalone: false\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>\n @switch (type) {\n @case ('icon') {\n <div>\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 }\n @case ('action') {\n <div>\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 }\n @default {\n <div>\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 </div>\n }\n }\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';\nimport { ReactiveFormsModule } from '@angular/forms';\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 { MatRadioModule } from '@angular/material/radio';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { ToastUIComponent } from './toast-ui/toast-ui.component';\nimport { ToastMessageInlineComponent } from './toast-message-inline/toast-message-inline.component';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { ToastDemoComponent } from './toast-demo/toast-demo.component';\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\n ToastMessageInlineComponent,\n ],\n exports: [\n ToastUIComponent,\n ToastDemoComponent,\n ToastMessageInlineComponent,\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\"\nexport * from \"./lib/toast-demo/toast-demo.component\"\n\nexport * from './lib/models';\n\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","i3.SafeHtmlPipe","i1.ToastUIComponent","i1","i2","i3","i8.ToastMessageInlineComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "toast-message-display",
|
|
3
|
-
"version": "18.0.
|
|
3
|
+
"version": "18.0.17",
|
|
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",
|
|
@@ -11,10 +11,8 @@
|
|
|
11
11
|
}
|
|
12
12
|
],
|
|
13
13
|
"peerDependencies": {
|
|
14
|
-
"@angular/
|
|
15
|
-
"@angular/
|
|
16
|
-
"@angular/core": ">=18.0.0 <21.0.0",
|
|
17
|
-
"@angular/material": ">=18.0.0 <21.0.0"
|
|
14
|
+
"@angular/common": "^18.2.13",
|
|
15
|
+
"@angular/core": "^18.2.13"
|
|
18
16
|
},
|
|
19
17
|
"dependencies": {
|
|
20
18
|
"tslib": "^2.3.0"
|
|
Binary file
|
|
@@ -2,16 +2,17 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { PipeTransform, OnInit, EventEmitter } from '@angular/core';
|
|
3
3
|
import * as _angular_platform_browser from '@angular/platform-browser';
|
|
4
4
|
import * as toast_message_display from 'toast-message-display';
|
|
5
|
-
import * as
|
|
6
|
-
import
|
|
7
|
-
import * as
|
|
8
|
-
import * as i7 from '@angular/material/snack-bar';
|
|
5
|
+
import * as _angular_forms from '@angular/forms';
|
|
6
|
+
import { FormBuilder } from '@angular/forms';
|
|
7
|
+
import * as i8 from '@angular/material/snack-bar';
|
|
9
8
|
import { MatSnackBarVerticalPosition, MatSnackBarRef } from '@angular/material/snack-bar';
|
|
10
|
-
import * as
|
|
11
|
-
import * as
|
|
12
|
-
import * as
|
|
13
|
-
import * as
|
|
14
|
-
import * as
|
|
9
|
+
import * as i5 from '@angular/common';
|
|
10
|
+
import * as i7 from '@angular/material/icon';
|
|
11
|
+
import * as i9 from '@angular/material/button';
|
|
12
|
+
import * as i10 from '@angular/material/toolbar';
|
|
13
|
+
import * as i11 from '@angular/material/menu';
|
|
14
|
+
import * as i12 from '@angular/material/radio';
|
|
15
|
+
import * as i13 from '@angular/material/divider';
|
|
15
16
|
|
|
16
17
|
declare class SafeHtmlPipe implements PipeTransform {
|
|
17
18
|
private sanitizer;
|
|
@@ -151,6 +152,52 @@ declare class ToastOptions implements ToastOptionsInterface {
|
|
|
151
152
|
static adapt(item?: any): ToastOptionsInterface;
|
|
152
153
|
}
|
|
153
154
|
|
|
155
|
+
declare class ToastMessageDisplayService {
|
|
156
|
+
private snackBar;
|
|
157
|
+
private toastQueue;
|
|
158
|
+
private isToastVisible;
|
|
159
|
+
defaultDuration: number;
|
|
160
|
+
snackBarRef: MatSnackBarRef<any> | undefined;
|
|
161
|
+
toastMessage(options?: ToastDisplay, duration?: number, vertical?: VerticalAlignment): void;
|
|
162
|
+
private showNextToast;
|
|
163
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToastMessageDisplayService, never>;
|
|
164
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ToastMessageDisplayService>;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
declare class ToastDemoComponent {
|
|
168
|
+
random: () => number;
|
|
169
|
+
randomNumber: (min: number, max: number) => number;
|
|
170
|
+
fb: FormBuilder;
|
|
171
|
+
toastMessageDisplayService: ToastMessageDisplayService;
|
|
172
|
+
type: string;
|
|
173
|
+
position: _angular_forms.FormControl<string | null>;
|
|
174
|
+
icons: string[];
|
|
175
|
+
toastSamples: ({
|
|
176
|
+
message: string;
|
|
177
|
+
color: ToastColors;
|
|
178
|
+
action: string;
|
|
179
|
+
icon?: undefined;
|
|
180
|
+
} | {
|
|
181
|
+
message: string;
|
|
182
|
+
color: ToastColors;
|
|
183
|
+
icon: string;
|
|
184
|
+
action?: undefined;
|
|
185
|
+
} | {
|
|
186
|
+
message: string;
|
|
187
|
+
color: ToastColors;
|
|
188
|
+
icon: string;
|
|
189
|
+
action: string;
|
|
190
|
+
})[];
|
|
191
|
+
pickToastSample?: ToastDisplay;
|
|
192
|
+
onSelectType(type: string): void;
|
|
193
|
+
onBasic(type: string, icon?: string, action?: string): void;
|
|
194
|
+
presentToast(color: ToastColors, icon?: string, action?: string): void;
|
|
195
|
+
onInline(): void;
|
|
196
|
+
onClosedToast(toast?: ToastDisplay): void;
|
|
197
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToastDemoComponent, never>;
|
|
198
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToastDemoComponent, "app-toast-display-demo", never, {}, {}, never, never, false, never>;
|
|
199
|
+
}
|
|
200
|
+
|
|
154
201
|
declare class ToastMessageInlineComponent {
|
|
155
202
|
close: EventEmitter<ToastDisplay>;
|
|
156
203
|
textColorService: TextColorService;
|
|
@@ -160,7 +207,7 @@ declare class ToastMessageInlineComponent {
|
|
|
160
207
|
get option(): ToastDisplay | null;
|
|
161
208
|
duration: number;
|
|
162
209
|
position: VerticalAlignment;
|
|
163
|
-
get color():
|
|
210
|
+
get color(): "" | ToastColors;
|
|
164
211
|
get textColor(): string;
|
|
165
212
|
onCloseToast(toast?: ToastDisplay): void;
|
|
166
213
|
expireTime(toast: any, duration: number): void;
|
|
@@ -171,21 +218,9 @@ declare class ToastMessageInlineComponent {
|
|
|
171
218
|
|
|
172
219
|
declare class ToastMessageDisplayModule {
|
|
173
220
|
static ɵfac: i0.ɵɵFactoryDeclaration<ToastMessageDisplayModule, never>;
|
|
174
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ToastMessageDisplayModule, [typeof SafeHtmlPipe, typeof ToastUIComponent, typeof ToastMessageInlineComponent], [typeof
|
|
221
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ToastMessageDisplayModule, [typeof SafeHtmlPipe, typeof ToastUIComponent, typeof ToastDemoComponent, typeof ToastMessageInlineComponent], [typeof i5.CommonModule, typeof _angular_forms.ReactiveFormsModule, typeof i7.MatIconModule, typeof i8.MatSnackBarModule, typeof i9.MatButtonModule, typeof i10.MatToolbarModule, typeof i11.MatMenuModule, typeof i12.MatRadioModule, typeof i13.MatDividerModule], [typeof ToastUIComponent, typeof ToastDemoComponent, typeof ToastMessageInlineComponent]>;
|
|
175
222
|
static ɵinj: i0.ɵɵInjectorDeclaration<ToastMessageDisplayModule>;
|
|
176
223
|
}
|
|
177
224
|
|
|
178
|
-
|
|
179
|
-
private snackBar;
|
|
180
|
-
private toastQueue;
|
|
181
|
-
private isToastVisible;
|
|
182
|
-
defaultDuration: number;
|
|
183
|
-
snackBarRef: MatSnackBarRef<any> | undefined;
|
|
184
|
-
toastMessage(options?: ToastDisplay, duration?: number, vertical?: VerticalAlignment): void;
|
|
185
|
-
private showNextToast;
|
|
186
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ToastMessageDisplayService, never>;
|
|
187
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ToastMessageDisplayService>;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
export { HorizontalAlignment, ToastColors, ToastDisplay, ToastMessage, ToastMessageDisplayModule, ToastMessageDisplayService, ToastMessageInlineComponent, ToastOptions, ToastUIComponent, VerticalAlignment };
|
|
225
|
+
export { HorizontalAlignment, ToastColors, ToastDemoComponent, ToastDisplay, ToastMessage, ToastMessageDisplayModule, ToastMessageDisplayService, ToastMessageInlineComponent, ToastOptions, ToastUIComponent, VerticalAlignment };
|
|
191
226
|
export type { ToastDisplayInterface, ToastMessageInterface, ToastOptionsInterface };
|
|
Binary file
|