File

projects/rebirth-ng/src/lib/dialog/dialog.service.ts

Index

Methods

Constructor

constructor(modalService: ModalService, componentFactoryResolver: ComponentFactoryResolver, domSanitizer: DomSanitizer)
Parameters :
Name Type Optional
modalService ModalService no
componentFactoryResolver ComponentFactoryResolver no
domSanitizer DomSanitizer no

Methods

alert
alert(dialogOptions: DialogOptions)
Type parameters :
  • T
Parameters :
Name Type Optional
dialogOptions DialogOptions no
Returns : Observable<T>
confirm
confirm(dialogOptions: DialogOptions)
Type parameters :
  • T
Parameters :
Name Type Optional
dialogOptions DialogOptions no
Returns : Observable<T>
prompt
prompt(dialogOptions: DialogOptions)
Type parameters :
  • T
Parameters :
Name Type Optional
dialogOptions DialogOptions no
Returns : Observable<T>
import { Injectable, ComponentFactoryResolver } from '@angular/core';
import { Observable } from 'rxjs';
import { ModalService } from '../modal/modal.service';
import { DialogOptions } from './dialog-options.model';
import { AlertDialogComponent } from './alert-dialog.component';
import { ConfirmDialogComponent } from './confirm-dialog.component';
import { DomSanitizer } from '@angular/platform-browser';
import { PromptDialogComponent } from './prompt-dialog.component';

@Injectable({ providedIn: 'root' })
export class DialogService {

  constructor(private  modalService: ModalService,
              private componentFactoryResolver: ComponentFactoryResolver,
              private domSanitizer: DomSanitizer) {

  }

  alert<T>(dialogOptions: DialogOptions): Observable<T> {
    if (dialogOptions.content && dialogOptions.html && (typeof dialogOptions.content === 'string')) {
      dialogOptions.content = this.domSanitizer.bypassSecurityTrustHtml(dialogOptions.content as string);
    }

    return this.modalService.open({
      component: AlertDialogComponent,
      componentFactoryResolver: this.componentFactoryResolver,
      resolve: dialogOptions,
      modalClass: dialogOptions.cssClass,
      injector: dialogOptions.injector,
      rootContainer: dialogOptions.rootContainer,
      backdrop: dialogOptions.backdrop,
      backdropClass: dialogOptions.backdropClass,
      modal: dialogOptions.modal,
      keyboard: dialogOptions.keyboard,
      animation: dialogOptions.animation

    });
  }

  confirm<T>(dialogOptions: DialogOptions): Observable<T> {
    if (dialogOptions.content && dialogOptions.html && (typeof dialogOptions.content === 'string')) {
      dialogOptions.content = this.domSanitizer.bypassSecurityTrustHtml(dialogOptions.content as string);
    }
    return this.modalService.open({
      component: ConfirmDialogComponent,
      componentFactoryResolver: this.componentFactoryResolver,
      resolve: dialogOptions,
      modalClass: dialogOptions.cssClass,
      injector: dialogOptions.injector,
      rootContainer: dialogOptions.rootContainer,
      backdrop: dialogOptions.backdrop,
      backdropClass: dialogOptions.backdropClass,
      modal: dialogOptions.modal,
      keyboard: dialogOptions.keyboard,
      animation: dialogOptions.animation
    });
  }

  prompt<T>(dialogOptions: DialogOptions): Observable<T> {
    return this.modalService.open({
      component: PromptDialogComponent,
      componentFactoryResolver: this.componentFactoryResolver,
      resolve: dialogOptions,
      modalClass: dialogOptions.cssClass,
      injector: dialogOptions.injector,
      rootContainer: dialogOptions.rootContainer,
      backdrop: dialogOptions.backdrop,
      backdropClass: dialogOptions.backdropClass,
      modal: dialogOptions.modal,
      keyboard: dialogOptions.keyboard,
      animation: dialogOptions.animation
    });
  }
}

results matching ""

    No results matching ""