{"version":3,"file":"mtxDialog.mjs","sources":["../../../projects/extensions/dialog/dialog.component.ts","../../../projects/extensions/dialog/dialog.component.html","../../../projects/extensions/dialog/dialog.ts","../../../projects/extensions/dialog/dialog.module.ts","../../../projects/extensions/dialog/mtxDialog.ts"],"sourcesContent":["import { Component, Inject, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { MtxDialogData } from './dialog-config';\n\n@Component({\n  selector: 'mtx-dialog',\n  exportAs: 'mtxDialog',\n  templateUrl: './dialog.component.html',\n  styleUrls: ['./dialog.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxDialogComponent {\n  constructor(\n    public dialogRef: MatDialogRef<MtxDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: MtxDialogData\n  ) {}\n\n  _onClick(fn: () => void) {\n    if (fn) {\n      fn.call(this);\n    }\n    this._onClose();\n  }\n\n  _onClose() {\n    this.dialogRef.close();\n  }\n}\n","<h1 class=\"mtx-dialog-title\" *ngIf=\"data.title\">{{data.title | toObservable | async}}\n  <button mat-icon-button *ngIf=\"data.showCloseIcon\" (click)=\"_onClose()\">\n    <mat-icon>close</mat-icon>\n  </button>\n</h1>\n<div class=\"mtx-dialog-content\" *ngIf=\"data.description\">\n  <p>{{data.description | toObservable | async}}</p>\n</div>\n<div class=\"mtx-dialog-actions\">\n  <ng-container *ngFor=\"let btn of data.buttons\">\n    <ng-container [ngSwitch]=\"btn.type\">\n      <ng-container *ngSwitchCase=\"'raised'\">\n        <button mat-raised-button *ngIf=\"btn.focusInitial\" cdkFocusInitial\n                [color]=\"btn.color\" [ngClass]=\"btn.class!\" (click)=\"_onClick(btn.onClick!)\">\n          {{btn.text | toObservable | async}}\n        </button>\n        <button mat-raised-button *ngIf=\"!btn.focusInitial\"\n                [color]=\"btn.color\" [ngClass]=\"btn.class!\" (click)=\"_onClick(btn.onClick!)\">\n          {{btn.text | toObservable | async}}\n        </button>\n      </ng-container>\n      <ng-container *ngSwitchCase=\"'stroked'\">\n        <button mat-stroked-button *ngIf=\"btn.focusInitial\" cdkFocusInitial\n                [color]=\"btn.color\" [ngClass]=\"btn.class!\" (click)=\"_onClick(btn.onClick!)\">\n          {{btn.text | toObservable | async}}\n        </button>\n        <button mat-stroked-button *ngIf=\"!btn.focusInitial\"\n                [color]=\"btn.color\" [ngClass]=\"btn.class!\" (click)=\"_onClick(btn.onClick!)\">\n          {{btn.text | toObservable | async}}\n        </button>\n      </ng-container>\n      <ng-container *ngSwitchCase=\"'flat'\">\n        <button mat-flat-button *ngIf=\"btn.focusInitial\" cdkFocusInitial\n                [color]=\"btn.color\" [ngClass]=\"btn.class!\" (click)=\"_onClick(btn.onClick!)\">\n          {{btn.text | toObservable | async}}\n        </button>\n        <button mat-flat-button *ngIf=\"!btn.focusInitial\"\n                [color]=\"btn.color\" [ngClass]=\"btn.class!\" (click)=\"_onClick(btn.onClick!)\">\n          {{btn.text | toObservable | async}}\n        </button>\n      </ng-container>\n      <ng-container *ngSwitchDefault>\n        <button mat-button *ngIf=\"btn.focusInitial\" cdkFocusInitial\n                [color]=\"btn.color\" [ngClass]=\"btn.class!\" (click)=\"_onClick(btn.onClick!)\">\n          {{btn.text | toObservable | async}}\n        </button>\n        <button mat-button *ngIf=\"!btn.focusInitial\"\n                [color]=\"btn.color\" [ngClass]=\"btn.class!\" (click)=\"_onClick(btn.onClick!)\">\n          {{btn.text | toObservable | async}}\n        </button>\n      </ng-container>\n    </ng-container>\n  </ng-container>\n</div>\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\n\nimport { MtxDialogComponent } from './dialog.component';\nimport { MtxDialogData } from './dialog-config';\n\nconst defaults: MtxDialogData = {\n  title: '',\n  description: '',\n  buttons: [\n    {\n      color: 'warn',\n      text: 'OK',\n      focusInitial: true,\n      onClick: () => {},\n    },\n    {\n      text: 'CLOSE',\n      onClick: () => {},\n    },\n  ],\n  showCloseIcon: false,\n  disableClose: true,\n  width: '300px',\n};\n\n@Injectable()\nexport class MtxDialog {\n  constructor(public dialog: MatDialog) {}\n\n  originalOpen(\n    componentOrTemplateRef: ComponentType<any> | TemplateRef<any> = MtxDialogComponent,\n    config: any\n  ) {\n    return this.dialog.open(componentOrTemplateRef, config);\n  }\n\n  open(\n    config: MtxDialogData,\n    componentOrTemplateRef: ComponentType<any> | TemplateRef<any> = MtxDialogComponent\n  ) {\n    const data = Object.assign({}, defaults, config);\n    return this.dialog.open(componentOrTemplateRef, {\n      ...data,\n      data,\n    });\n  }\n\n  alert(\n    title: string | Observable<string>,\n    description: string | Observable<string> = '',\n    onOk = () => {}\n  ) {\n    this.open({\n      title,\n      description,\n      buttons: [\n        {\n          color: 'warn',\n          text: 'OK',\n          onClick: () => onOk(),\n        },\n      ],\n    });\n  }\n\n  confirm(\n    title: string | Observable<string>,\n    description: string | Observable<string> = '',\n    onOk = () => {},\n    onClose = () => {}\n  ) {\n    this.open({\n      title,\n      description,\n      buttons: [\n        {\n          color: 'warn',\n          text: 'OK',\n          onClick: () => onOk(),\n        },\n        {\n          text: 'CLOSE',\n          onClick: () => onClose(),\n        },\n      ],\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { MtxPipesModule } from '@ng-matero/extensions/core';\nimport { MtxDialogComponent } from './dialog.component';\nimport { MtxDialog } from './dialog';\n\n@NgModule({\n  imports: [CommonModule, MatDialogModule, MatButtonModule, MatIconModule, MtxPipesModule],\n  exports: [MtxDialogComponent],\n  declarations: [MtxDialogComponent],\n  providers: [MtxDialog],\n})\nexport class MtxDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}