cnp-dialog
Version:
A simple dialog use angular material
233 lines (223 loc) • 8.73 kB
JavaScript
import { Component, Inject, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA, MatDialog, MatDialogModule } from '@angular/material/dialog';
import { CommonModule } from '@angular/common';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button';
class ConfirmDialogComponent {
constructor(dialogRef, data) {
this.dialogRef = dialogRef;
this.data = data;
this.dialogRef.disableClose = true;
}
onCancel() {
this.dialogRef.close(false);
}
onAccept() {
this.dialogRef.close(true);
}
}
ConfirmDialogComponent.decorators = [
{ type: Component, args: [{
selector: 'cnp-confirm-dialog',
template: "<div class=\"ui-dialog\">\n <div class=\"ui-dialog-titlebar\">\n <mat-icon>chat</mat-icon>\n <span class=\"ui-dialog-title\">{{data?.title}}</span>\n <button mat-button (click)=\"onCancel()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div class=\"ui-dialog-content\">\n <h3 *ngIf=\"data?.code\" class=\"text-center\">\n <b>Code: </b>\n <span class=\"fc-header\">{{data?.code}}</span>\n </h3>\n <p class=\"text-center fs-20 dialog-message\">{{data?.message}}</p>\n </div>\n <div mat-dialog-actions style=\"justify-content: space-evenly;\">\n <button (click)=\"onAccept()\" mat-flat-button color=\"primary\" cdkFocusInitial>{{data.btnOk}}</button> \n <button (click)=\"onCancel()\" mat-flat-button color=\"warn\">{{data.btnCancel}}</button>\n </div>\n</div>",
styles: [`
.ui-dialog {
position: relative;
min-width: 240px;
}
.ui-dialog .ui-dialog-titlebar {
min-height: 52px;
background-color: #3D72B4;
color: #ffffff;
font-weight: 700;
display: flex;
flex-direction: row;
align-items: center;
margin-left: -24px;
margin-right: -24px;
margin-top: -24px;
padding: 10px;
}
.ui-dialog .ui-dialog-title {
margin-left: 5px;
float: none;
flex: 1;
text-align: left;
}
.ui-dialog .ui-dialog-content {
background-color: #ffffff;
color: #333333;
padding: 0.571em 1em;
text-align: center;
}
.dialog-message {
white-space: pre-wrap;
}
`]
},] }
];
ConfirmDialogComponent.ctorParameters = () => [
{ type: MatDialogRef },
{ type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
];
class Dialog {
}
class ConfirmDialog extends Dialog {
}
class ErrorDialog extends Dialog {
}
class NoficationDialog extends Dialog {
}
class ErrorDialogComponent {
constructor(dialogRef, data) {
this.dialogRef = dialogRef;
this.data = data;
this.dialogRef.disableClose = true;
}
ngOnInit() {
if (this.data.detail) {
console.error(this.data.detail);
}
}
onClose() {
this.dialogRef.close();
}
}
ErrorDialogComponent.decorators = [
{ type: Component, args: [{
selector: 'cnp-error-dialog',
template: "<div class=\"ui-dialog\">\n <div class=\"ui-dialog-titlebar\">\n <mat-icon>block</mat-icon>\n <span class=\"ui-dialog-title\">{{data?.title}}</span>\n <button mat-button (click)=\"onClose()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div class=\"ui-dialog-content\">\n <!-- Error Code -->\n <h3 *ngIf=\"data?.code\" class=\"text-center\">\n <b>Code: </b>\n <span class=\"fc-header\">{{data?.code}}</span>\n </h3>\n <!-- Error Detail -->\n <p class=\"text-center fs-20 dialog-message\">{{data?.message}}</p>\n </div>\n <div mat-dialog-actions style=\"justify-content: end;\">\n <button (click)=\"onClose()\" mat-flat-button color=\"primary\" cdkFocusInitial>{{data?.btnClose}}</button>\n </div>\n</div>",
styles: [`
.ui-dialog {
position: relative;
min-width: 240px;
}
.ui-dialog .ui-dialog-titlebar {
min-height: 52px;
background-color: #bd362f;
color: #ffffff;
font-weight: 700;
display: flex;
flex-direction: row;
align-items: center;
margin-left: -24px;
margin-right: -24px;
margin-top: -24px;
padding: 10px;
}
.ui-dialog .ui-dialog-title {
margin-left: 5px;
float: none;
flex: 1;
text-align: left;
}
.ui-dialog .ui-dialog-content {
background-color: #ffffff;
color: #333333;
padding: 0.571em 1em;
text-align: center;
}
.dialog-message {
white-space: pre-wrap;
}`]
},] }
];
ErrorDialogComponent.ctorParameters = () => [
{ type: MatDialogRef },
{ type: ErrorDialog, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
];
class NoficationDialogComponent {
constructor(dialogRef, data) {
this.dialogRef = dialogRef;
this.data = data;
this.dialogRef.disableClose = true;
}
onClose() {
this.dialogRef.close();
}
}
NoficationDialogComponent.decorators = [
{ type: Component, args: [{
selector: 'cnp-nofication-dialog',
template: "<div class=\"ui-dialog\">\n <div class=\"ui-dialog-titlebar\">\n <mat-icon>error_outline</mat-icon>\n <span class=\"ui-dialog-title\">{{data?.title}}</span>\n <button mat-button (click)=\"onClose()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div class=\"ui-dialog-content\">\n <!-- Nofication Code -->\n <h3 *ngIf=\"data?.code\" class=\"text-center\">\n <b>Code: </b>\n <span class=\"fc-header\">{{data?.code}}</span>\n </h3>\n <!-- Nofication Detail -->\n <p class=\"text-center fs-20 dialog-message\">{{data?.message}}</p>\n </div>\n <div mat-dialog-actions style=\"justify-content: end;\">\n <button (click)=\"onClose()\" mat-flat-button color=\"primary\" cdkFocusInitial>{{data?.btnOk}}</button>\n </div>\n</div>",
styles: [`
.ui-dialog {
position: relative;
min-width: 240px;
}
.ui-dialog .ui-dialog-titlebar {
min-height: 52px;
background-color: #2f96b4;
color: #ffffff;
font-weight: 700;
display: flex;
flex-direction: row;
align-items: center;
margin-left: -24px;
margin-right: -24px;
margin-top: -24px;
padding: 10px;
}
.ui-dialog .ui-dialog-title {
margin-left: 5px;
float: none;
flex: 1;
text-align: left;
}
.ui-dialog .ui-dialog-content {
background-color: #ffffff;
color: #333333;
padding: 0.571em 1em;
text-align: center;
}
.dialog-message {
white-space: pre-wrap;
}
`]
},] }
];
NoficationDialogComponent.ctorParameters = () => [
{ type: MatDialogRef },
{ type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
];
class CnpDialogService {
constructor(matDialog) {
this.matDialog = matDialog;
}
nofication(data) {
this.matDialog.open(NoficationDialogComponent, { data });
}
confirm(data, callback) {
const dialogRef = this.matDialog.open(ConfirmDialogComponent, { data });
dialogRef.afterClosed().subscribe(callback);
}
error(data) {
this.matDialog.open(ErrorDialogComponent, { data });
}
}
CnpDialogService.ɵprov = ɵɵdefineInjectable({ factory: function CnpDialogService_Factory() { return new CnpDialogService(ɵɵinject(MatDialog)); }, token: CnpDialogService, providedIn: "root" });
CnpDialogService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
CnpDialogService.ctorParameters = () => [
{ type: MatDialog }
];
class CnpDialogModule {
}
CnpDialogModule.decorators = [
{ type: NgModule, args: [{
imports: [CommonModule, MatDialogModule, MatButtonModule, MatIconModule],
declarations: [ConfirmDialogComponent, ErrorDialogComponent, NoficationDialogComponent],
providers: [CnpDialogService]
},] }
];
/*
* Public API Surface of cnp-dialog
*/
/**
* Generated bundle index. Do not edit.
*/
export { CnpDialogModule, CnpDialogService, ConfirmDialog, Dialog, ErrorDialog, NoficationDialog, ConfirmDialogComponent as ɵa, ErrorDialogComponent as ɵb, NoficationDialogComponent as ɵc };
//# sourceMappingURL=cnp-dialog.js.map