npm.io
2.0.0 • Published 6 months ago

@kovalenko/material-confirm

Licence
MIT
Version
2.0.0
Deps
2
Size
28 kB
Vulns
0
Weekly
0
Stars
1

MaterialConfirm

Confirm service and directive with material dialog

Installation

npm install @kovalenko/material-confirm

Directive

Selector: confirm

Properties
Name Description
@Input() confirmTitle: string Dialog title
@Input() confirmMessage: string Confirm message
@Input() confirmOk: string Ok button text
@Input() confirmCancel: string Cancel button text
@Output() confirm: EventEmitter<any> This will callback if Ok button clicked
Service

ConfirmService

Calls confirmation dialog programmatically

Methods
confirm: Promise<boolean | any>
Action confirm
Arguments
confirmMessage: string Confirm message
confirmTitle?: string Dialog title
confirmOk?: string Ok button text
confirmCancel?: string Cancel button text
config?: MatDialogConfig Override dialog config
actions?: {value: any, title: string}[] Additional action buttons
setDefaults: void
Set default values
Parameters
title: string Dialog title
ok: string Ok button text
cancel: string Cancel button text

Usage

This library uses standalone components. Import ConfirmDirective directly in your component's imports array and provide the configuration using provideMaterialConfirm():

import {Component} from '@angular/core';
import {bootstrapApplication} from '@angular/platform-browser';
import {ConfirmDirective, provideMaterialConfirm, MaterialConfirmConfig} from '@kovalenko/material-confirm';
import {AppComponent} from './app';

const materialConfirmConfig: MaterialConfirmConfig = {
  ok: 'Ok',
  cancel: 'Cancel',
  position: {
    top: '10px'
  },
  width: '400px'
};

bootstrapApplication(AppComponent, {
  providers: [
    provideMaterialConfirm(materialConfirmConfig),
  ]
});

Confirmation via directive

import { Component } from '@angular/core';
import { ConfirmDirective } from '@kovalenko/material-confirm';

@Component({
  selector: 'app',
  imports: [ConfirmDirective],
  template: `
    <button confirm (confirm)="callback()" [confirmMessage]="message">Click</button>
  `,
})
export class AppComponent {
  message = 'Confirm action';
  
  callback() {
    console.log('confirmed');
  }
}

Confirmation via service

import {Component} from '@angular/core';
import {ConfirmService} from '@kovalenko/material-confirm';

@Component({
  selector: 'app',
  template: `
    <button (click)="action()">Click</button>
  `,
})
export class AppComponent {

  constructor(private confirmService: ConfirmService) { }
  
  async action() {
    if (await this.confirmService.confirm('Confirm action')) {
      console.log('confirmed');
    }
  }

}

License

MIT

Keywords