{"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, ViewEncapsulation, inject } from '@angular/core';\nimport { MatButton, MatIconButton } 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  imports: [AsyncPipe, MatButton, MatIconButton, MatIcon, MtxToObservablePipe],\n})\nexport class MtxDialogContainer {\n  dialogRef = inject<MatDialogRef<MtxDialogContainer>>(MatDialogRef);\n  data = inject<MtxDialogData>(MAT_DIALOG_DATA);\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 matIconButton (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    @if (btn.focusInitial) {\n      <button\n        cdkFocusInitial\n        [matButton]=\"btn.type || 'text'\"\n        [color]=\"btn.color\"\n        [class]=\"btn.class\"\n        (click)=\"_onClick(btn.onClick!)\"\n      >\n        {{ btn.text | toObservable | async }}\n      </button>\n    } @else {\n      <button\n        [matButton]=\"btn.type || 'text'\"\n        [color]=\"btn.color\"\n        [class]=\"btn.class\"\n        (click)=\"_onClick(btn.onClick!)\"\n      >\n        {{ btn.text | toObservable | async }}\n      </button>\n    }\n  }\n</div>\n","import { Injectable, TemplateRef, inject } 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      text: 'Cancel',\n      onClick: () => {},\n    },\n    {\n      color: 'warn',\n      text: 'OK',\n      focusInitial: true,\n      onClick: () => {},\n    },\n  ],\n  showCloseIcon: false,\n  disableClose: true,\n  width: '300px',\n};\n\n@Injectable({ providedIn: 'root' })\nexport class MtxDialog {\n  dialog = inject(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          text: 'Cancel',\n          onClick: () => onClose(),\n        },\n        {\n          color: 'warn',\n          text: 'OK',\n          focusInitial: true,\n          onClick: () => onOk(),\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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"}