UNPKG

@lhn/mat-alert

Version:

Implementation of MatDialog shown as an alert message

41 lines 5 kB
import { Inject, Injectable } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { MatAlertComponent } from './mat-alert.component'; import { MatAlertConfig } from './mat-alert-config.interface'; import { MAT_ALERT_DEFAULT_CONFIG } from './mat-alert-default-config.constant'; export class MatAlert { constructor(dlg, defaultConfigs) { this.dlg = dlg; this.defaultConfigs = defaultConfigs; } /** * Opens an alert dialog * * @param title Title for the alert * @param message Message body. Can be an additional description * @param config Configuration for the alert * @param disableClose Flag for disable closing the alert clicking outside or pressing Escape * @return Observable<void> The MatDialog's `afterClosed()` observable */ show(title, message = '', config = {}, disableClose = false) { var _a; config.title = title; config.message = message || ''; const cfg = Object.assign({ minWidth: 300, data: config, role: 'alertdialog', disableClose, hasBackdrop: (_a = config.hasBackdrop) !== null && _a !== void 0 ? _a : true, }, this.defaultConfigs, config); return this.dlg.open(MatAlertComponent, cfg).afterClosed(); } } MatAlert.decorators = [ { type: Injectable } ]; MatAlert.ctorParameters = () => [ { type: MatDialog }, { type: MatAlertConfig, decorators: [{ type: Inject, args: [MAT_ALERT_DEFAULT_CONFIG,] }] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWFsZXJ0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtYWxlcnQvc3JjL2xpYi9tYXQtYWxlcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBSXRFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUcvRSxNQUFNLE9BQU8sUUFBUTtJQUVuQixZQUFvQixHQUFjLEVBQ29CLGNBQThCO1FBRGhFLFFBQUcsR0FBSCxHQUFHLENBQVc7UUFDb0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQUksQ0FBQztJQUV6Rjs7Ozs7Ozs7T0FRRztJQUNJLElBQUksQ0FBQyxLQUFhLEVBQUUsVUFBa0IsRUFBRSxFQUFFLFNBQWtDLEVBQUUsRUFBRSxZQUFZLEdBQUcsS0FBSzs7UUFDekcsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFvQixNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3pDLFFBQVEsRUFBRSxHQUFHO1lBQ2IsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsYUFBMkI7WUFDakMsWUFBWTtZQUNaLFdBQVcsRUFBRSxNQUFBLE1BQU0sQ0FBQyxXQUFXLG1DQUFJLElBQUk7U0FDeEMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0QsQ0FBQzs7O1lBMUJGLFVBQVU7OztZQVJGLFNBQVM7WUFLVCxjQUFjLHVCQU9SLE1BQU0sU0FBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IERpYWxvZ1JvbGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cvZGlhbG9nLWNvbmZpZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE1hdEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9tYXQtYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEFsZXJ0Q29uZmlnIH0gZnJvbSAnLi9tYXQtYWxlcnQtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNQVRfQUxFUlRfREVGQVVMVF9DT05GSUcgfSBmcm9tICcuL21hdC1hbGVydC1kZWZhdWx0LWNvbmZpZy5jb25zdGFudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNYXRBbGVydCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkbGc6IE1hdERpYWxvZyxcbiAgICAgICAgICAgICAgQEluamVjdChNQVRfQUxFUlRfREVGQVVMVF9DT05GSUcpIHByaXZhdGUgZGVmYXVsdENvbmZpZ3M6IE1hdEFsZXJ0Q29uZmlnKSB7IH1cblxuICAvKipcbiAgICogT3BlbnMgYW4gYWxlcnQgZGlhbG9nXG4gICAqXG4gICAqIEBwYXJhbSB0aXRsZSBUaXRsZSBmb3IgdGhlIGFsZXJ0XG4gICAqIEBwYXJhbSBtZXNzYWdlIE1lc3NhZ2UgYm9keS4gQ2FuIGJlIGFuIGFkZGl0aW9uYWwgZGVzY3JpcHRpb25cbiAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIGZvciB0aGUgYWxlcnRcbiAgICogQHBhcmFtIGRpc2FibGVDbG9zZSBGbGFnIGZvciBkaXNhYmxlIGNsb3NpbmcgdGhlIGFsZXJ0IGNsaWNraW5nIG91dHNpZGUgb3IgcHJlc3NpbmcgRXNjYXBlXG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTx2b2lkPiBUaGUgTWF0RGlhbG9nJ3MgYGFmdGVyQ2xvc2VkKClgIG9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyBzaG93KHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyA9ICcnLCBjb25maWc6IFBhcnRpYWw8TWF0QWxlcnRDb25maWc+ID0ge30sIGRpc2FibGVDbG9zZSA9IGZhbHNlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uZmlnLnRpdGxlID0gdGl0bGU7XG4gICAgY29uZmlnLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICcnO1xuICAgIGNvbnN0IGNmZzogTWF0RGlhbG9nQ29uZmlnID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICBtaW5XaWR0aDogMzAwLFxuICAgICAgZGF0YTogY29uZmlnLFxuICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyBhcyBEaWFsb2dSb2xlLFxuICAgICAgZGlzYWJsZUNsb3NlLFxuICAgICAgaGFzQmFja2Ryb3A6IGNvbmZpZy5oYXNCYWNrZHJvcCA/PyB0cnVlLFxuICAgIH0sIHRoaXMuZGVmYXVsdENvbmZpZ3MsIGNvbmZpZyk7XG4gICAgcmV0dXJuIHRoaXMuZGxnLm9wZW4oTWF0QWxlcnRDb21wb25lbnQsIGNmZykuYWZ0ZXJDbG9zZWQoKTtcbiAgfVxufVxuIl19