File

src/app/component/dialog/dialog.service.ts

Index

Methods

Constructor

constructor(dialog: MatDialog)
Parameters :
Name Type Optional
dialog MatDialog No

Methods

Private _config
_config(config: DialogConfigInterface)
Parameters :
Name Type Optional
config DialogConfigInterface No
Returns : MatDialogConfig
alert
alert(config: AlertConfigInterface)
Parameters :
Name Type Optional
config AlertConfigInterface No
closeAll
closeAll()
Returns : void
confirm
confirm(config: ConfirmInterface)
Parameters :
Name Type Optional
config ConfirmInterface No
open
open(component: ComponentType, config: MatDialogConfig)
Type parameters :
  • T
Parameters :
Name Type Optional
component ComponentType<T> No
config MatDialogConfig No
Returns : MatDialogRef<T>
import { Injectable } from '@angular/core';
import {
  MatDialog,
  MatDialogRef,
  MatDialogConfig
} from '@angular/material/dialog';
import { ComponentType } from '@angular/cdk/portal';

import {
  DialogConfigInterface,
  AlertConfigInterface,
  ConfirmInterface
} from './dialog.config';
import { AlertComponent } from './alert/alert.component';
import { ConfirmComponent } from './confirm/confirm.component';

@Injectable({
  providedIn: 'root'
})
export class DialogService {
  constructor(private dialog: MatDialog) {}

  open<T>(
    component: ComponentType<T>,
    config: MatDialogConfig
  ): MatDialogRef<T> {
    return this.dialog.open(component, config);
  }

  closeAll(): void {
    this.dialog.closeAll();
  }

  alert(config: AlertConfigInterface): MatDialogRef<AlertComponent> {
    let dialogConfig: MatDialogConfig = this._config(config);
    let dialogRef = this.dialog.open(AlertComponent, dialogConfig);
    let alertComponentInstance = dialogRef.componentInstance;
    alertComponentInstance.title = config.title;
    alertComponentInstance.message = config.message;
    if (config.closeButton) {
      alertComponentInstance.closeButton = config.closeButton;
    }

    return dialogRef;
  }

  confirm(config: ConfirmInterface): MatDialogRef<ConfirmComponent> {
    let dialogConfig: MatDialogConfig = this._config(config);
    let dialogRef = this.dialog.open(ConfirmComponent, dialogConfig);
    let ConfirmComponentInstance = dialogRef.componentInstance;
    ConfirmComponentInstance.title = config.title;
    ConfirmComponentInstance.message = config.message;

    if (config.acceptButton) {
      ConfirmComponentInstance.acceptButton = config.acceptButton;
    }
    if (config.cancelButton) {
      ConfirmComponentInstance.cancelButton = config.cancelButton;
    }

    return dialogRef;
  }

  private _config(config: DialogConfigInterface): MatDialogConfig {
    let dialogConfig: MatDialogConfig = new MatDialogConfig();
    dialogConfig.width = '400px';
    Object.assign(dialogConfig, config);
    return dialogConfig;
  }
}

result-matching ""

    No results matching ""