New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@steinv/ngx-dialog

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@steinv/ngx-dialog

Angular dialog module for flexible injection of a dialog with input and output

latest
Source
npmnpm
Version
0.0.9
Version published
Maintainers
1
Created
Source

@steinv/ngx-dialog

Angular dialog module to inject dialog component(s) with input and output

Demo

Installation

Install Ngx-dialog through npm:

npm i -S @steinv/ngx-dialog

Import the global style scss in your "styles.scss"

@import '@steinv/ngx-dialog/assets/styles.scss';

Add NgxDialogModule import to your app module:

import {NgxDialogModule} from '@steinv/ngx-dialog';

...

@NgModule({
  imports: [
    ...
    NgxDialogModule,
    ...
  ],
  ...
})

Usage

Dialog component:

To create any dialog component implement NgxDialogViewComponent<OutputInterface, InputInterface> and add a constructor to inject the ngxDialogController: NgxDialogController.

Example

import {NgxDialogController, NgxDialogViewComponent} from '@steinv/ngx-dialog';

export interface MyDialogInput {
    someInput: any;
}

export interface MyDialogOutput {
    someOutput: any;
}

export class MyDialogComponent implements NgxDialogViewComponent<MyDialogOutput, MyDialogInput> {
  constructor(
      public readonly ngxDialogController: NgxDialogController<MyDialogOutput, MyDialogInput>
  ) {
      // dismiss the dialog when the backdrop is clicked
      ngxDialogController.backdropClick().subscribe(() => ngxDialogController.dismiss())
   }

  // This action will close the dialog and return output
  confirm(someOutput: any): void{
      this.ngxDialogController.confirm({someOutput});
  }

  // This action will dismiss the dialog without output
  dismiss(): void {
      this.ngxDialogController.dismiss();
  }
}

Opening a dialog component

Use the NgxDialogService to open a dialog component.

import {NgxDialogService} from '@steinv/ngx-dialog';

...

constructor(private readonly ngxDialogService: NgxDialogService) {}

openMyDialogComponent(): Observable<DialogResult<DialogOutput>> {
    const ngxDialogController = ngxDialogService.open(MyDialogComponent, {someInput});
    return ngxDialogController.afterClosed();
}

Closing a dialog component

Use the NgxDialogController (either in the dialog itself or from where you opened the dialog) to close a dialog component.

Example dismiss on backdrop clicks

    ngxDialogController.backdropClick().subscribe(() => ngxDialogController.dismiss());

Example dismiss button

    <button (click)="ngxDialogController.dismiss()">Close!</button>

Custom config

Add a OverlayConfig when opening the dialog to add your own css-selectors or position the dialog differently

/**
* inject the overlay in the constructor
* constructor(private readonly overlay: Overlay) {}
*/ 
const positionStrategy = this.overlay
    .position()
    .global()
    .centerHorizontally()
    .centerVertically();

// Add your own css classes to the backdrop and dialog-panel
config: OverlayConfig = {
    positionStrategy,
    hasBackdrop: true,
    backdropClass: 'ngx-dialog-backdrop',
    panelClass: 'ngx-dialog-panel',
}

ngxDialogService.open(MyDialogComponent, config);

License

Licensed under MIT.

Keywords

ngx

FAQs

Package last updated on 16 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts