UNPKG

@lhn/mat-alert

Version:

Implementation of MatDialog shown as an alert message

45 lines 5.22 kB
import { Component, Inject } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { MAT_DIALOG_DATA } from '@angular/material/dialog'; import { MatAlertConfig } from './mat-alert-config.interface'; import { MAT_ALERT_DEFAULT_CONFIG } from './mat-alert-default-config.constant'; export class MatAlertComponent { constructor(data, sanitizer, defaultConfigs) { this.sanitizer = sanitizer; data.message = this._handleMessage(data.message); this.config = Object.assign({}, defaultConfigs, data); } /** * Handles the message and sanitize */ _handleMessage(message) { message = message.toString().replace(/(\r\n|\r|\n)/g, '<br/>'); return this.sanitizer.bypassSecurityTrustHtml(message.toString()); } } MatAlertComponent.decorators = [ { type: Component, args: [{ selector: 'lhn-mat-alert', template: ` <h1 mat-dialog-title>{{config.title}}</h1> <mat-dialog-content class="mat-typography" *ngIf="config.message"> <h4 [innerHTML]="config.message"></h4> </mat-dialog-content> <mat-dialog-actions align="end"> <button [class.mat-raised-button]="config.raisedButton" [color]="config.buttonTheme" mat-button mat-dialog-close type="button"> {{config.buttonText}} </button> </mat-dialog-actions> ` },] } ]; MatAlertComponent.ctorParameters = () => [ { type: MatAlertConfig, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }, { type: DomSanitizer }, { type: MatAlertConfig, decorators: [{ type: Inject, args: [MAT_ALERT_DEFAULT_CONFIG,] }] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWFsZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hdC1hbGVydC9zcmMvbGliL21hdC1hbGVydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFxQi9FLE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFBcUMsSUFBb0IsRUFDckMsU0FBdUIsRUFDRyxjQUE4QjtRQUR4RCxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBRXpDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLE9BQTBCO1FBQy9DLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7O1lBcENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztHQWNUO2FBRUY7OztZQXJCUSxjQUFjLHVCQTBCUixNQUFNLFNBQUMsZUFBZTtZQTdCNUIsWUFBWTtZQUdaLGNBQWMsdUJBNEJSLE1BQU0sU0FBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgTWF0QWxlcnRDb25maWcgfSBmcm9tICcuL21hdC1hbGVydC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1BVF9BTEVSVF9ERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4vbWF0LWFsZXJ0LWRlZmF1bHQtY29uZmlnLmNvbnN0YW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGhuLW1hdC1hbGVydCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3tjb25maWcudGl0bGV9fTwvaDE+XG4gICAgPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCIgKm5nSWY9XCJjb25maWcubWVzc2FnZVwiPlxuICAgICAgPGg0IFtpbm5lckhUTUxdPVwiY29uZmlnLm1lc3NhZ2VcIj48L2g0PlxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxtYXQtZGlhbG9nLWFjdGlvbnMgYWxpZ249XCJlbmRcIj5cbiAgICAgIDxidXR0b24gW2NsYXNzLm1hdC1yYWlzZWQtYnV0dG9uXT1cImNvbmZpZy5yYWlzZWRCdXR0b25cIlxuICAgICAgICAgICAgICBbY29sb3JdPVwiY29uZmlnLmJ1dHRvblRoZW1lXCJcbiAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICBtYXQtZGlhbG9nLWNsb3NlXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAge3tjb25maWcuYnV0dG9uVGV4dH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgYCxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0QWxlcnRDb21wb25lbnQge1xuXG4gIHB1YmxpYyBjb25maWc6IE1hdEFsZXJ0Q29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkYXRhOiBNYXRBbGVydENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgICAgICAgQEluamVjdChNQVRfQUxFUlRfREVGQVVMVF9DT05GSUcpIGRlZmF1bHRDb25maWdzOiBNYXRBbGVydENvbmZpZykge1xuICAgIGRhdGEubWVzc2FnZSA9IHRoaXMuX2hhbmRsZU1lc3NhZ2UoZGF0YS5tZXNzYWdlKTtcbiAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRDb25maWdzLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBtZXNzYWdlIGFuZCBzYW5pdGl6ZVxuICAgKi9cbiAgcHJpdmF0ZSBfaGFuZGxlTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcgfCBTYWZlSHRtbCkge1xuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnRvU3RyaW5nKCkucmVwbGFjZSgvKFxcclxcbnxcXHJ8XFxuKS9nLCAnPGJyLz4nKTtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobWVzc2FnZS50b1N0cmluZygpKTtcbiAgfVxuXG59XG4iXX0=