{"version":3,"file":"mtxDialog.mjs","sources":["../../../projects/extensions/dialog/dialog-container.ts","../../../projects/extensions/dialog/dialog-container.html","../../../projects/extensions/dialog/dialog.ts","../../../projects/extensions/dialog/dialog-module.ts","../../../projects/extensions/dialog/mtxDialog.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatButton, MatFabButton, MatIconButton, MatMiniFabButton } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { MtxToObservablePipe } from '@ng-matero/extensions/core';\nimport { MtxDialogData } from './dialog-config';\n\n@Component({\n  selector: 'mtx-dialog-container',\n  exportAs: 'mtxDialogContainer',\n  templateUrl: './dialog-container.html',\n  styleUrl: './dialog-container.scss',\n  host: {\n    class: 'mtx-dialog-container',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [\n    AsyncPipe,\n    MatButton,\n    MatIconButton,\n    MatFabButton,\n    MatMiniFabButton,\n    MatIcon,\n    MtxToObservablePipe,\n  ],\n})\nexport class MtxDialogContainer {\n  constructor(\n    public dialogRef: MatDialogRef<MtxDialogContainer>,\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","@if (data.title) {\n  <h1 class=\"mtx-dialog-title\">\n    <span>{{data.title | toObservable | async}}</span>\n    @if (data.showCloseIcon) {\n      <button mat-icon-button (click)=\"_onClose()\">\n        <mat-icon>close</mat-icon>\n      </button>\n    }\n  </h1>\n}\n@if (data.description) {\n  <div class=\"mtx-dialog-content\">\n    <p>{{data.description | toObservable | async}}</p>\n  </div>\n}\n<div class=\"mtx-dialog-actions\">\n  @for (btn of data.buttons; track btn) {\n    @switch (btn.type) {\n      @case ('raised') {\n        @if (btn.focusInitial) {\n          <button mat-raised-button cdkFocusInitial\n            [color]=\"btn.color\" [class]=\"btn.class\" (click)=\"_onClick(btn.onClick!)\">\n            {{btn.text | toObservable | async}}\n          </button>\n        } @else {\n          <button mat-raised-button\n            [color]=\"btn.color\" [class]=\"btn.class\" (click)=\"_onClick(btn.onClick!)\">\n            {{btn.text | toObservable | async}}\n          </button>\n        }\n      }\n      @case ('stroked') {\n        @if (btn.focusInitial) {\n          <button mat-stroked-button cdkFocusInitial\n            [color]=\"btn.color\" [class]=\"btn.class\" (click)=\"_onClick(btn.onClick!)\">\n            {{btn.text | toObservable | async}}\n          </button>\n        } @else {\n          <button mat-stroked-button\n            [color]=\"btn.color\" [class]=\"btn.class\" (click)=\"_onClick(btn.onClick!)\">\n            {{btn.text | toObservable | async}}\n          </button>\n        }\n      }\n      @case ('flat') {\n        @if (btn.focusInitial) {\n          <button mat-flat-button cdkFocusInitial\n            [color]=\"btn.color\" [class]=\"btn.class\" (click)=\"_onClick(btn.onClick!)\">\n            {{btn.text | toObservable | async}}\n          </button>\n        } @else {\n          <button mat-flat-button\n            [color]=\"btn.color\" [class]=\"btn.class\" (click)=\"_onClick(btn.onClick!)\">\n            {{btn.text | toObservable | async}}\n          </button>\n        }\n      }\n      @default {\n        @if (btn.focusInitial) {\n          <button mat-button cdkFocusInitial\n            [color]=\"btn.color\" [class]=\"btn.class\" (click)=\"_onClick(btn.onClick!)\">\n            {{btn.text | toObservable | async}}\n          </button>\n        } @else {\n          <button mat-button\n            [color]=\"btn.color\" [class]=\"btn.class\" (click)=\"_onClick(btn.onClick!)\">\n            {{btn.text | toObservable | async}}\n          </button>\n        }\n      }\n    }\n  }\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 { MtxDialogContainer } from './dialog-container';\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({ providedIn: 'root' })\nexport class MtxDialog {\n  constructor(public dialog: MatDialog) {}\n\n  originalOpen(\n    componentOrTemplateRef: ComponentType<any> | TemplateRef<any> = MtxDialogContainer,\n    config: any\n  ) {\n    return this.dialog.open(componentOrTemplateRef, config);\n  }\n\n  open(\n    config: MtxDialogData,\n    componentOrTemplateRef: ComponentType<any> | TemplateRef<any> = MtxDialogContainer\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 { MtxDialogContainer } from './dialog-container';\nimport { MtxDialog } from './dialog';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    MatDialogModule,\n    MatButtonModule,\n    MatIconModule,\n    MtxPipesModule,\n    MtxDialogContainer,\n  ],\n  exports: [MtxDialogContainer],\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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"}