{"version":3,"file":"takkion-components-modal.mjs","sources":["../../../libraries/components/modal/modal.component.ts","../../../libraries/components/modal/modal.component.html","../../../libraries/components/modal/modal.module.ts","../../../libraries/components/modal/modal.service.ts","../../../libraries/components/modal/index.ts","../../../libraries/components/modal/takkion-components-modal.ts"],"sourcesContent":["import { Component, ElementRef, Inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@takkion/material/dialog';\nimport { TakModalConfig, TakModalType } from './config';\n\n@Component({\n  selector: 'tak-modal',\n  templateUrl: './modal.component.html',\n  styleUrls: ['./modal.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class TakModalComponent implements OnInit {\n  private _isAlert = false;\n\n  private _confirmButton = '';\n  private _deniedButton = '';\n  private _okButton = '';\n  private _hasTopCloseButton = true;\n\n  constructor(\n    href: ElementRef<HTMLElement>,\n    private _dialogRef: MatDialogRef<TakModalComponent>,\n    @Inject(MAT_DIALOG_DATA)\n    public data: { content: string; title: string; options?: TakModalConfig; type: TakModalType }\n  ) {\n    href.nativeElement.classList.add('tak-modal');\n  }\n\n  public ngOnInit(): void {\n    if (this.data.type === 'alert') this._isAlert = true;\n    else this._isAlert = false;\n\n    this._confirmButton = this.data.options?.confirmButton || 'SI';\n    this._deniedButton = this.data.options?.deniedButton || 'NO';\n    this._okButton = this.data.options?.okButton || 'OK';\n    this._hasTopCloseButton = this.data.options?.hasTopCloseButton || true;\n  }\n\n  public onConfirm(): void {\n    this._dialogRef.close(true);\n  }\n\n  public onClose(): void {\n    this._dialogRef.close(false);\n  }\n\n  public onCloseFromButton(): void {\n    this._dialogRef.close(undefined);\n  }\n\n  get isAlert(): boolean {\n    return this._isAlert;\n  }\n\n  get confirmButton(): string {\n    return this._confirmButton;\n  }\n\n  get deniedButton(): string {\n    return this._deniedButton;\n  }\n\n  get okButton(): string {\n    return this._okButton;\n  }\n\n  get hasTopCloseButton(): boolean {\n    return this._hasTopCloseButton;\n  }\n}\n","@if (hasTopCloseButton) {\n  <div mat-dialog-title>\n    @if (data.title !== '') {\n      <span class=\"tak-modal__title\">{{ data.title }}</span>\n    }\n    <div>\n      <button mat-icon-button (click)=\"onCloseFromButton()\"><mat-icon>close</mat-icon></button>\n    </div>\n  </div>\n}\n@if (hasTopCloseButton) {\n  <mat-divider></mat-divider>\n}\n<div mat-dialog-content>\n  <div class=\"tak-modal__content\">\n    <p>{{ data.content }}</p>\n  </div>\n</div>\n<mat-divider></mat-divider>\n<mat-dialog-actions align=\"end\">\n  @if (!isAlert) {\n    <button mat-button color=\"accent\" (click)=\"onConfirm()\">\n      {{ confirmButton }}\n    </button>\n  }\n  @if (!isAlert) {\n    <button mat-button color=\"warn\" (click)=\"onClose()\" cdkFocusInitial>\n      {{ deniedButton }}\n    </button>\n  }\n  @if (isAlert) {\n    <button mat-button color=\"accent\" (click)=\"onClose()\" style=\"float: right\" cdkFocusInitial>\n      {{ okButton }}\n    </button>\n  }\n</mat-dialog-actions>\n","import { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@takkion/material/button';\nimport { MatIconModule } from '@takkion/material/icon';\nimport { TakModalComponent } from './modal.component';\nimport { MatDividerModule } from '@takkion/material/divider';\nimport { TakDialogModule } from '@takkion/components/dialogs';\n\n@NgModule({\n  declarations: [TakModalComponent],\n  imports: [MatButtonModule, TakDialogModule, MatDividerModule, MatIconModule],\n  exports: [TakModalComponent],\n})\nexport class TakModalModule {}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@takkion/material/dialog';\nimport { TakModalComponent } from './modal.component';\nimport { TakModalConfig, TakModalType } from './config';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class TakModal {\n  constructor(private dialog: MatDialog) {}\n\n  public alert(content: string, title: string = '', options?: TakModalConfig): Observable<boolean> {\n    return this._generateDialog(content, title, 'alert', options);\n  }\n\n  public confirm(\n    content: string,\n    title: string = '',\n    options?: TakModalConfig\n  ): Observable<boolean> {\n    return this._generateDialog(content, title, 'confirm', options);\n  }\n\n  private _generateDialog(\n    content: string,\n    title: string,\n    type: TakModalType,\n    options?: TakModalConfig\n  ) {\n    const dialog = this.dialog.open(TakModalComponent, {\n      data: {\n        content,\n        title,\n        options,\n        type,\n      },\n    });\n    return dialog.afterClosed();\n  }\n}\n","/*\n * Public API Surface of @takkion/components/modal\n */\n\nexport * from './config';\nexport * from './modal.component';\nexport * from './modal.module';\nexport * from './modal.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}