{"version":3,"file":"firestitch-message.mjs","sources":["../../src/app/enums.ts","../../src/app/components/message-dialog/message-dialog.component.ts","../../src/app/components/message-dialog/message-dialog.component.html","../../src/app/components/toast-message/toast-message.component.ts","../../src/app/components/toast-message/toast-message.component.html","../../src/app/injectors/message-config.ts","../../src/app/services/message.service.ts","../../src/app/components/message/message.component.ts","../../src/app/components/message/message.component.html","../../src/app/components/message/message-error/message-error.component.ts","../../src/app/components/message/message-info/message-info.component.ts","../../src/app/components/message/message-success/message-success.component.ts","../../src/app/components/message/message-warning/message-warning.component.ts","../../src/app/components/messages/messages.component.ts","../../src/app/fs-message.module.ts","../../src/app/services/error-message.service.ts","../../src/public_api.ts","../../src/firestitch-message.ts"],"sourcesContent":["import { MessageBannerConfig, MessageDialogConfig, MessageToastConfig } from './interfaces';\n\nexport enum MessageType {\n  Success = 'success',\n  Info = 'info',\n  Error = 'error',\n  Warning = 'warning'\n}\n\nexport enum MessageMode {\n  Dialog = 'dialog',\n  Toast = 'toast',\n  Banner = 'banner'\n}\n\nexport type MessageConfig = MessageDialogConfig | MessageToastConfig | MessageBannerConfig;\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { isObservable, of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'fs-message-dialog',\n  templateUrl: './message-dialog.component.html',\n  styleUrls: ['./message-dialog.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsMessageDialogComponent implements OnDestroy {\n\n  private _destroy$ = new Subject();\n\n  constructor(\n    @Inject(MAT_DIALOG_DATA) public data: any,\n    private _dialogRef: MatDialogRef<FsMessageDialogComponent>,\n  ) {}\n\n  public hide() {\n    this._dialogRef.close();\n  }\n\n  public buttonClick(button) {\n    if (button.click) {\n      const result = button.click();\n      const observable$ = isObservable(result) ? result : of(true);\n\n      observable$\n        .pipe(\n          takeUntil(this._destroy$),\n        )\n        .subscribe(() => {\n          this.hide();\n        });\n\n    } else {\n      this.hide();\n    }\n  }\n\n  public ngOnDestroy() {\n    this._destroy$.next(null);\n    this._destroy$.complete();\n  }\n\n}\n","<div class=\"fs-message-{{ data.type }}\">\n  <div mat-dialog-title>\n    <mat-icon>{{ data.icon }}</mat-icon>\n    <span>{{ data.options.title }}</span>\n  </div>\n  <mat-dialog-content>\n    <div class=\"message\" [innerHTML]=\"data.message\"></div>\n  </mat-dialog-content>\n  <mat-dialog-actions>\n    <button mat-button (click)=\"hide()\" *ngIf=\"!data.options.buttons\" color=\"primary\">OK</button>\n    <button mat-button *ngFor=\"let button of data.options.buttons || []\" (click)=\"buttonClick(button)\" [color]=\"button.color\">{{button.label}}</button>\n  </mat-dialog-actions>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\n\n@Component({\n  templateUrl: './toast-message.component.html',\n  styleUrl: './toast-message.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToastMessageComponent extends Toast {\n\n  public icon: string;\n\n  constructor( \n    protected _toastrService: ToastrService,\n    public toastPackage: ToastPackage,\n  ) {\n    super(_toastrService, toastPackage);\n    this.icon = (toastPackage.config as any).icon;\n  }\n}\n","<div class=\"message-container\">\n  @if (icon) {\n    <mat-icon>\n      {{ icon }}\n    </mat-icon>\n  }\n  <div\n    class=\"message\"\n    [innerHTML]=\"toastPackage.message\">\n  </div>\n</div>","import { InjectionToken } from '@angular/core';\n\nexport const FS_MESSAGE_CONFIG = new InjectionToken<any[]>('fs-message.config');\nexport const FS_MESSAGE_DEFAULT_CONFIG = new InjectionToken<any[]>('fs-message.default-config');\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable, Subject, of } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TOAST_CONFIG, ToastToken, ToastrService } from 'ngx-toastr';\n\nimport { FsMessageDialogComponent } from '../components/message-dialog/message-dialog.component';\nimport { ToastMessageComponent } from '../components/toast-message/toast-message.component';\nimport { MessageConfig, MessageMode, MessageType } from '../enums';\nimport { FS_MESSAGE_CONFIG } from '../injectors/message-config';\nimport { FsMessageConfig } from '../interfaces';\nimport { MessageBannerConfig } from '../interfaces/message-banner-config';\nimport { MessageDialogConfig } from '../interfaces/message-dialog-config';\nimport { MessageToastConfig } from '../interfaces/message-toast-config';\n\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FsMessage implements OnDestroy {\n\n  private _dialogs = 0;\n  private _dialogsMessagesQueue = [];\n  private _destroy$ = new Subject<void>();\n  private _bannerMessages$ = new Subject();\n\n  constructor(\n    private _toastr: ToastrService,\n    private _matDialog: MatDialog,\n    @Inject(TOAST_CONFIG) private _toastToken: ToastToken,\n    @Inject(FS_MESSAGE_CONFIG) private _config: FsMessageConfig,\n  ) { }\n\n  public success(message?: string, options: MessageConfig = {}): Observable<any> {\n    return this.show(MessageType.Success, message, { title: 'Success', mode: this._config.successMode, ...options });\n  }\n\n  public info(message?: string, options: MessageConfig = {}): Observable<any> {\n    return this.show(MessageType.Info, message, { title: 'Information', mode: this._config.infoMode, ...options });\n  }\n\n  public error(message?: string, options: MessageConfig = {}): Observable<any> {\n    return this.show(MessageType.Error, message, { title: 'Attention', mode: this._config.errorMode, ...options });\n  }\n\n  public warning(message?: string, options: MessageConfig = {}): Observable<any> {\n    return this.show(MessageType.Warning, message, { title: 'Warning', mode: this._config.warningMode, ...options });\n  }\n\n  public show(type: string, message: string, options: MessageConfig): Observable<any> {\n    if(!message && this._config.defaultMessage) {\n      message = this._config.defaultMessage[type];\n    }\n\n    options = options || {};\n    if (options.icon === undefined) {\n      options.icon = this.getIconName(type);\n    }\n\n    switch (options.mode) {\n      case MessageMode.Toast:\n        this.toast(type, message, options);\n        break;\n      case MessageMode.Banner:\n        this.banner(type, message, options);\n        break;\n      case MessageMode.Dialog:\n        return this.dialog(type, message, options);\n    }\n\n    return of();\n  }\n\n  public hide(): void {\n    this._toastr.clear();\n    this._bannerMessages$.next(null);\n    this._matDialog.closeAll();\n  }\n\n  public toast(type: string, message: string, options: MessageToastConfig): void {\n    const opts: any = options;\n    opts.enableHtml = true;\n    opts.toastComponent = ToastMessageComponent;\n    opts.positionClass = options.positionClass || this._toastToken.config.positionClass || 'toast-bottom-left';\n    opts.timeOut = (options.timeout || this._config.toastTimeout) * 1000;\n\n    this._toastr[type](message, '', opts);\n  }\n\n  public banner(type: string, message: string, options: MessageBannerConfig): void {\n    this._bannerMessages$.next({\n      type: type,\n      msg: message,\n      timeout: (options.timeout || this._config.bannerTimeout || 5) * 1000,\n    });\n  }\n\n  public dialog(type: string, message: string, options: MessageDialogConfig): Observable<any> {\n    const typeMessage = type + message;\n\n    if (this._dialogsMessagesQueue.indexOf(typeMessage) > -1) {\n      return of(true);\n    }\n\n    this._dialogsMessagesQueue.push(typeMessage);\n    this._dialogs++;\n\n    const activeElement: any = document.activeElement;\n\n    if(activeElement?.blur) {\n      activeElement.blur();\n    }\n\n    const dialogRef = this._matDialog.open(FsMessageDialogComponent, {\n      /* Waiting for MatDialog to support array of classes like panelClass\n      backdropClass: ['fs-message-backdrop',\n                      'fs-message-backdrop-' + type,\n                      options.backdropClass], */\n      backdropClass: options.backdropClass,\n      width: options.width || this._config.dialogWidth,\n      data: { type: type, message: message, options: options, icon: this.getIconName(type) },\n      panelClass: [\n        'fs-message-pane',\n        `fs-message-pane-${  type}`,\n        options.panelClass,\n      ],\n    });\n\n    dialogRef.afterClosed()\n      .pipe(\n        takeUntil(this._destroy$),\n      )\n      .subscribe(() => {\n        this._dialogs--;\n\n        const dialogMessageIdx = this._dialogsMessagesQueue.indexOf(typeMessage);\n        if (dialogMessageIdx > -1) {\n          this._dialogsMessagesQueue.splice(dialogMessageIdx, 1);\n        }\n      });\n\n    return dialogRef.afterClosed();\n  }\n\n  public getIconName(type: any): string {\n    if (type === MessageType.Success) {\n      return 'done';\n    }\n\n    if (type === MessageType.Error) {\n      return 'report_problem';\n    }\n\n    if (type === MessageType.Info) {\n      return 'info';\n    }\n\n    if (type === MessageType.Warning) {\n      return 'report_problem';\n    }\n\n    return '';\n  }\n\n  public ngOnDestroy(): void {\n    this._destroy$.next(null);\n    this._destroy$.complete();\n  }\n\n  public get bannerMessages$(): Observable<any> {\n    return this._bannerMessages$.asObservable();\n  }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\nimport { MessageType } from '../../enums';\nimport { FsMessage } from '../../services/message.service';\n\n@Component({\n  selector: 'fs-message',\n  templateUrl: './message.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsMessageComponent implements OnInit {\n\n  @Input() public type = MessageType.Info;\n  @Input() public message: string;\n\n  @Input('fsType')\n  public set fsType(value) {\n    this.type = value;\n  }\n\n  @Input('fsMessage')\n  public set fsMessage(value) {\n    this.message = value;\n  }\n\n  public icon = 'info';\n\n  constructor(private _fsMessage: FsMessage) { }\n\n  public ngOnInit() {\n    this.icon = this._fsMessage.getIconName(this.type);\n  }\n}\n","<div class=\"fs-message-banner fs-message-{{ type }}\">\n  <mat-icon *ngIf=\"icon\" class=\"mat-icon material-icons\" role=\"img\">{{ icon }}</mat-icon>\n  <div class=\"message\">\n    {{ message }}\n    <ng-content></ng-content>\n  </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { MessageType } from '../../../enums';\nimport { FsMessageComponent } from '../message.component';\n\n\n@Component({\n  selector: 'fs-message-error',\n  templateUrl: './../message.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsMessageErrorComponent extends FsMessageComponent {\n\n  public type = MessageType.Error;\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MessageType } from '../../../enums';\nimport { FsMessageComponent } from '../message.component';\n\n\n@Component({\n  selector: 'fs-message-info',\n  templateUrl: './../message.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsMessageInfoComponent extends FsMessageComponent {\n\n  public type = MessageType.Info;\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { MessageType } from '../../../enums';\nimport { FsMessageComponent } from '../message.component';\n\n\n@Component({\n  selector: 'fs-message-success',\n  templateUrl: './../message.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsMessageSuccessComponent extends FsMessageComponent {\n\n  public type = MessageType.Success;\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MessageType } from '../../../enums';\nimport { FsMessageComponent } from '../message.component';\n\n\n@Component({\n  selector: 'fs-message-warning',\n  templateUrl: './../message.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsMessageWarningComponent extends FsMessageComponent {\n\n  public type = MessageType.Warning;\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { remove } from 'lodash-es';\n\nimport { FsMessage } from '../../services/message.service';\n\n\n@Component({\n  selector: 'fs-messages',\n  template: '<fs-message *ngFor=\"let item of messages\" [fsType]=\"item.type\" [fsMessage]=\"item.msg\"></fs-message>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsMessagesComponent implements OnInit, OnDestroy {\n\n  public messages = [];\n\n  private _destroy$ = new Subject<void>();\n\n  constructor(\n    private _message: FsMessage,\n    private _cdRef: ChangeDetectorRef,\n  ) {}\n\n  public ngOnInit () {\n    this._message\n      .bannerMessages$\n      .pipe(\n        takeUntil(this._destroy$),\n      )\n      .subscribe((message: any) => {\n        if (!message) {\n          this.messages = [];\n        } else {\n          this.messages.push(message);\n\n          if (message.timeout) {\n            setTimeout(() => {\n              remove(this.messages, (item) => {\n                return item === message;\n              });\n\n              this._cdRef.markForCheck();\n            }, message.timeout);\n          }\n        }\n\n        this._cdRef.markForCheck();\n      });\n  }\n\n  public ngOnDestroy(): void {\n    this._destroy$.next(null);\n    this._destroy$.complete();\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { merge } from 'lodash-es';\nimport { ToastrModule } from 'ngx-toastr';\n\nimport { FsMessageErrorComponent, FsMessageInfoComponent, FsMessageSuccessComponent, FsMessageWarningComponent } from './components';\nimport { FsMessageDialogComponent } from './components/message-dialog/message-dialog.component';\nimport { FsMessageComponent } from './components/message/message.component';\nimport { FsMessagesComponent } from './components/messages/messages.component';\nimport { ToastMessageComponent } from './components/toast-message';\nimport { MessageMode } from './enums';\nimport { FS_MESSAGE_CONFIG, FS_MESSAGE_DEFAULT_CONFIG } from './injectors/message-config';\nimport { FsMessageConfig } from './interfaces/fs-message-config';\n\n\n@NgModule({\n  imports: [\n    CommonModule,\n    MatDialogModule,\n    MatIconModule,\n    MatButtonModule,\n  ],\n  exports: [\n    FsMessagesComponent,\n    FsMessageComponent,\n    FsMessageInfoComponent,\n    FsMessageWarningComponent,\n    FsMessageSuccessComponent,\n    FsMessageErrorComponent,\n  ],\n  declarations: [\n    FsMessagesComponent,\n    FsMessageComponent,\n    FsMessageDialogComponent,\n    FsMessageInfoComponent,\n    FsMessageWarningComponent,\n    FsMessageSuccessComponent,\n    FsMessageErrorComponent,\n    ToastMessageComponent,\n  ],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class FsMessageModule {\n\n  public static forRoot(config: FsMessageConfig = {}): ModuleWithProviders<FsMessageModule> {\n    return {\n      ngModule: FsMessageModule,\n      providers: [\n        { provide: FS_MESSAGE_DEFAULT_CONFIG, useValue: config },\n        {\n          provide: FS_MESSAGE_CONFIG,\n          useFactory: FsMessageConfigFactory,\n          deps: [FS_MESSAGE_DEFAULT_CONFIG],\n        },\n        ToastrModule.forRoot({\n          preventDuplicates: true,\n          positionClass: config.positionClass || 'toast-bottom-right',\n          toastComponent: ToastMessageComponent,\n        }).providers,\n      ],\n    };\n  }\n}\n\nexport function FsMessageConfigFactory(config: FsMessageConfig) {\n  return merge({\n    toastTimeout: 5,\n    bannerTimeout: 5,\n    dialogWidth: '500px',\n    successMode: MessageMode.Toast,\n    errorMode: MessageMode.Dialog,\n    warningMode: MessageMode.Toast,\n    infoMode: MessageMode.Toast,\n  }, config);\n}\n","import { Injectable } from '@angular/core';\n\n\nimport { Observable, of, throwError } from 'rxjs';\n\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { MessageMode } from '../enums';\nimport { MessageDialogConfig } from '../interfaces';\n\nimport { FsMessage } from './message.service';\n\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FsErrorMessage {\n\n  constructor(\n    private _message: FsMessage,\n  ) { }\n\n  public showErrorMessage(message: string, exception?: any): Observable<any> {\n    const config: MessageDialogConfig = {};\n\n    if (message.length > 100) {\n      config.width = '80%';\n    }\n\n    if (exception) {\n      config.buttons = [\n        {\n          click: () => {\n            return of(true);\n          },\n          label: 'Ok',\n        },\n        {\n          click: () => {\n            this._message.info(`<pre>${this._buildDebugMessage(exception)}</pre>`,\n              {\n                title: 'Debug Message',\n                width: '90%',\n                mode: MessageMode.Dialog,\n              });\n\n            return throwError(null);\n          },\n          label: 'View Debug Message',\n          color: 'warn',\n        },\n      ];\n    }\n\n    return this._message.error(message, config);\n  }\n\n  public processHttpErrorResponse(e: HttpErrorResponse): Observable<any> {\n    if (e.status > 500 || !e.status) {\n      return of(true);\n    }\n\n    const exception = e.error?.exception;\n    const reason = e.error?.data?.reason;\n    const ignore = ['Framework\\\\Db\\\\Exception\\\\DbConnectionException']\n      .some((cls) => cls === exception?.class);\n\n    if (e.error?.message && !ignore) {\n      return this.showErrorMessage(e.error.message, exception);\n    }\n\n    if(e.headers.has('X-System-Mode-Debug')) {\n      const message = typeof e.error === 'string' ? e.error : (e.error?.text || e.statusText);\n\n      return this.showErrorMessage(message);\n    }\n\n    if(e.error.text) {\n      console.error(e.error.text, reason);\n    } else if (typeof e.error === 'string') {\n      console.error(e.error, reason);\n    } else if(e.statusText) {\n      console.error(e.statusText, reason);\n    }\n\n    return this._message\n      .error('Please check your network connection and try again.', { mode: MessageMode.Toast });\n  }\n\n  public showError(message: string, config: MessageDialogConfig = {}): Observable<any> {\n    config = {\n      title: 'Attention',\n      width: '400px',\n      panelClass: 'system-error-message',\n      buttons: [\n        {\n          click: () => {\n            return of(true);\n          },\n          label: 'Ok',\n        },\n      ],\n      ...config,\n    };\n\n    return this._message.error(`<pre>${message}</pre>`, config);\n  }\n\n  private _buildDebugMessage(exception: any): string {\n    let message = `<p>${exception.message} (${exception.class})</p>`;\n\n    if (exception.trace) {\n      message += exception.trace.join('<br>');\n    }\n    \n    if(exception.previous) {\n      message += `<br><br>${this._buildDebugMessage(exception.previous)}`;\n    }\n\n    return message;\n  }\n\n}\n","/*\n * Public API Surface of fs-menu\n */\n\n// Modules\nexport { FsMessageModule } from './app/fs-message.module';\n\n// Components\nexport { FsMessagesComponent } from './app/components/messages/messages.component';\nexport { FsMessageComponent } from './app/components/message/message.component';\n\n// Services\nexport { FsMessage } from './app/services/message.service';\nexport { FsErrorMessage } from './app/services/error-message.service';\nexport { MessageMode, MessageType, MessageConfig } from './app/enums';\n\nexport { FsMessageConfig } from './app/interfaces/fs-message-config';\nexport { MessageBannerConfig } from './app/interfaces/message-banner-config';\nexport { MessageDialogConfig } from './app/interfaces/message-dialog-config';\nexport { MessageToastConfig } from './app/interfaces/message-toast-config';\n\nexport { \n  FsMessageInfoComponent,\n  FsMessageWarningComponent,\n  FsMessageSuccessComponent,\n  FsMessageErrorComponent,\n} from './app/components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3","i1","i1.FsMessage","i3.FsMessageComponent"],"mappings":"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"}