{"version":3,"file":"rxap-dialog.mjs","sources":["../../../../../packages/angular/dialog/src/lib/message-dialog/message-dialog.component.ts","../../../../../packages/angular/dialog/src/lib/message-dialog/message-dialog.component.html","../../../../../packages/angular/dialog/src/lib/message-dialog/message-dialog.service.ts","../../../../../packages/angular/dialog/src/lib/error-capture-dialog/error-capture-dialog.component.ts","../../../../../packages/angular/dialog/src/lib/error-capture-dialog/error-capture-dialog.component.html","../../../../../packages/angular/dialog/src/lib/error-capture-dialog/error-capture-dialog.service.ts","../../../../../packages/angular/dialog/src/lib/confirm-dialog/confirm-dialog.component.ts","../../../../../packages/angular/dialog/src/lib/confirm-dialog/confirm-dialog.component.html","../../../../../packages/angular/dialog/src/lib/confirm-dialog/confirm-dialog.service.ts","../../../../../packages/angular/dialog/src/lib/component-dialog/component-dialog.component.ts","../../../../../packages/angular/dialog/src/lib/component-dialog/component-dialog.component.html","../../../../../packages/angular/dialog/src/lib/component-dialog/component-dialog.service.ts","../../../../../packages/angular/dialog/src/index.ts","../../../../../packages/angular/dialog/src/rxap-dialog.ts"],"sourcesContent":["import { NgFor } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n  MAT_DIALOG_DATA,\n  MatDialogModule,\n} from '@angular/material/dialog';\nimport { SantizationPipe } from '@rxap/pipes/santization';\nimport { MessageDialogData } from './types';\n\n@Component({\n    selector: 'rxap-message-dialog',\n    templateUrl: './message-dialog.component.html',\n    styleUrls: ['./message-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [MatDialogModule, MatButtonModule, NgFor, SantizationPipe]\n})\nexport class MessageDialogComponent {\n\n  public readonly data: MessageDialogData;\n\n  constructor(\n    @Inject(MAT_DIALOG_DATA)\n      data: MessageDialogData,\n  ) {\n    this.data = data;\n  }\n\n}\n","<h2 mat-dialog-title>{{data.title}}</h2>\n<mat-dialog-content>\n\n  <div [innerHtml]=\"data.message | santization:'html'\" class=\"content\"></div>\n\n</mat-dialog-content>\n<mat-dialog-actions>\n  <button [mat-dialog-close]=\"false\" i18n mat-button>Cancel</button>\n  <button *ngFor=\"let action of data.actions\" [color]=\"action.color\" [mat-dialog-close]=\"action.type\"\n          mat-raised-button>{{ action.label }}</button>\n</mat-dialog-actions>\n","import { Direction } from '@angular/cdk/bidi';\nimport { ScrollStrategy } from '@angular/cdk/overlay';\nimport {\n  Inject,\n  Injectable,\n} from '@angular/core';\nimport {\n  DialogPosition,\n  MatDialog,\n} from '@angular/material/dialog';\nimport {\n  map,\n  take,\n} from 'rxjs/operators';\nimport { MessageDialogComponent } from './message-dialog.component';\nimport { MessageDialogData } from './types';\n\nexport interface MessageDialogConfig {\n  /** Custom class for the overlay pane. */\n  panelClass?: string | string[];\n  /** Whether the dialog has a backdrop. */\n  hasBackdrop?: boolean;\n  /** Custom class for the backdrop. */\n  backdropClass?: string;\n  /** Width of the dialog. */\n  width?: string;\n  /** Height of the dialog. */\n  height?: string;\n  /** Min-width of the dialog. If a number is provided, assumes pixel units. */\n  minWidth?: number | string;\n  /** Min-height of the dialog. If a number is provided, assumes pixel units. */\n  minHeight?: number | string;\n  /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n  maxWidth?: number | string;\n  /** Max-height of the dialog. If a number is provided, assumes pixel units. */\n  maxHeight?: number | string;\n  /** Position overrides. */\n  position?: DialogPosition;\n  /** Layout direction for the dialog's content. */\n  direction?: Direction;\n  /** ID of the element that describes the dialog. */\n  ariaDescribedBy?: string | null;\n  /** ID of the element that labels the dialog. */\n  ariaLabelledBy?: string | null;\n  /** Aria label to assign to the dialog element. */\n  ariaLabel?: string | null;\n  /** Whether the dialog should focus the first focusable element on open. */\n  autoFocus?: boolean;\n  /**\n   * Whether the dialog should restore focus to the\n   * previously-focused element, after it's closed.\n   */\n  restoreFocus?: boolean;\n  /** Scroll strategy to be used for the dialog. */\n  scrollStrategy?: ScrollStrategy;\n  /**\n   * Whether the dialog should close when the user goes backwards/forwards in history.\n   * Note that this usually doesn't include clicking on links (unless the user is using\n   * the `HashLocationStrategy`).\n   */\n  closeOnNavigation?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MessageDialogService {\n  constructor(\n    @Inject(MatDialog)\n    private readonly dialog: MatDialog,\n  ) {\n  }\n\n  public open(\n    data: MessageDialogData,\n    config?: MessageDialogConfig,\n  ): Promise<string | undefined> {\n    const dialogRef = this.dialog.open<MessageDialogComponent,\n      MessageDialogData,\n      string>(MessageDialogComponent, {\n      ...config,\n      data,\n    });\n\n    return dialogRef\n      .afterClosed()\n      .pipe(\n        take(1),\n        map((result) => result),\n      )\n      .toPromise();\n  }\n}\n","import {\n  CdkPortalOutlet,\n  ComponentPortal,\n} from '@angular/cdk/portal';\nimport { NgClass } from '@angular/common';\nimport {\n  Component,\n  computed,\n  inject,\n  INJECTOR,\n  Injector,\n  signal,\n} from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport {\n  MAT_DIALOG_DATA,\n  MatDialogActions,\n  MatDialogClose,\n  MatDialogContent,\n} from '@angular/material/dialog';\nimport { RXAP_ERROR_DIALOG_ERROR } from '@rxap/ngx-error';\nimport { ErrorCaptureDialogData } from './types';\n\n@Component({\n  selector: 'rxap-component-dialog',\n  imports: [\n    MatButton,\n    MatDialogActions,\n    MatDialogContent,\n    MatDialogClose,\n    CdkPortalOutlet,\n    NgClass,\n  ],\n  templateUrl: './error-capture-dialog.component.html',\n  styleUrl: './error-capture-dialog.component.scss',\n})\nexport class ErrorCaptureDialogComponent {\n\n  protected readonly _data = inject<ErrorCaptureDialogData>(MAT_DIALOG_DATA);\n\n  public readonly component = this._data.component;\n\n  public readonly injector = inject(INJECTOR);\n\n  public readonly componentPortal = computed(() => {\n    const index = this.activeIndex();\n    const data = this.data();\n    const injector = Injector.create({\n      parent: this.injector,\n      providers: [\n        {\n          provide: RXAP_ERROR_DIALOG_ERROR,\n          useValue: data[index],\n        },\n      ],\n    });\n    return new ComponentPortal(this.component, null, injector);\n  });\n\n  public readonly data = this._data.errorList;\n\n  public readonly activeIndex = signal(0);\n  public readonly displayedButtons = computed(() => {\n    const start = Math.max(0, this.activeIndex() - 2);\n    const end = Math.min(this.data().length, start + 5);\n    return Array.from({ length: end - start }, (_, i) => start + i);\n  });\n\n}\n","@if (data().length > 1) {\n  <div class=\"controls flex justify-center space-x-2 mt-4\">\n    <button mat-flat-button (click)=\"activeIndex.set(activeIndex() - 1)\" [disabled]=\"activeIndex() === 0\">\n      <ng-container i18n>Previous</ng-container>\n    </button>\n    @for (item of displayedButtons(); track item) {\n      <button (click)=\"activeIndex.set(item)\"\n              mat-stroked-button\n              [ngClass]=\"{ 'active': item === activeIndex() }\">\n        {{ item + 1 }}\n      </button>\n    }\n    <button mat-flat-button (click)=\"activeIndex.set(activeIndex() + 1)\" [disabled]=\"activeIndex() >= data().length - 1\">\n      <ng-container i18n>Next</ng-container>\n    </button>\n  </div>\n}\n<mat-dialog-content>\n  <ng-template [cdkPortalOutlet]=\"componentPortal()\"></ng-template>\n</mat-dialog-content>\n<mat-dialog-actions>\n  <button [mat-dialog-close]=\"true\" mat-button>\n    <ng-container i18n>Close</ng-container>\n  </button>\n</mat-dialog-actions>\n","import { ComponentType } from '@angular/cdk/overlay';\nimport {\n  inject,\n  Injectable,\n  WritableSignal,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { RXAP_ERROR_DIALOG_DISABLED } from '@rxap/ngx-error';\nimport {\n  EMPTY,\n  finalize,\n  Observable,\n  take,\n} from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { ErrorCaptureDialogComponent } from './error-capture-dialog.component';\nimport { ErrorCaptureDialogData } from './types';\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorCaptureDialogService<Error = any> {\n\n  protected readonly dialog = inject(MatDialog);\n  protected readonly disabled = inject(RXAP_ERROR_DIALOG_DISABLED);\n\n  open(component: ComponentType<any>, errorList: WritableSignal<Error[]>): Observable<void> {\n    if (this.disabled) {\n      console.debug(`ErrorCaptureDialogService is disabled.`, { errorList: errorList() });\n      return EMPTY;\n    }\n    const ref = this.dialog.open<ErrorCaptureDialogComponent, ErrorCaptureDialogData>(ErrorCaptureDialogComponent, {\n      data: {\n        errorList,\n        component\n      }\n    });\n    return new Observable<void>(subscriber => {\n      const subscription = ref.afterClosed().pipe(\n        take(1),\n        tap(() => {\n          subscriber.next();\n          subscriber.complete();\n        }),\n        finalize(() => {\n          ref.close();\n        })\n      ).subscribe();\n      return () => {\n        subscription.unsubscribe();\n      };\n    });\n\n  }\n\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n  MAT_DIALOG_DATA,\n  MatDialogModule,\n} from '@angular/material/dialog';\nimport { SantizationPipe } from '@rxap/pipes/santization';\n\nexport interface ConfirmDialogData {\n  message: string;\n  action?: string;\n}\n\n@Component({\n    selector: 'rxap-confirm-dialog',\n    templateUrl: './confirm-dialog.component.html',\n    styleUrls: ['./confirm-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [MatDialogModule, MatButtonModule, SantizationPipe]\n})\nexport class ConfirmDialogComponent {\n\n  public readonly action: string;\n  public readonly data: ConfirmDialogData;\n\n\n  constructor(\n    @Inject(MAT_DIALOG_DATA)\n      data: ConfirmDialogData,\n  ) {\n    this.data = data;\n    this.action = this.data.action ?? 'OK';\n  }\n\n}\n","<h2 i18n mat-dialog-title>Confirm</h2>\n<mat-dialog-content>\n\n  <div [innerHtml]=\"data.message | santization:'html'\" class=\"content\"></div>\n\n</mat-dialog-content>\n<mat-dialog-actions>\n  <button [mat-dialog-close]=\"false\" i18n mat-button>Cancel</button>\n  <button [mat-dialog-close]=\"true\" color=\"accent\" mat-raised-button>{{ action }}</button>\n</mat-dialog-actions>\n","import { Direction } from '@angular/cdk/bidi';\nimport { ScrollStrategy } from '@angular/cdk/overlay';\nimport {\n  Inject,\n  Injectable,\n} from '@angular/core';\nimport {\n  DialogPosition,\n  MatDialog,\n} from '@angular/material/dialog';\nimport { firstValueFrom } from 'rxjs';\nimport {\n  map,\n  take,\n} from 'rxjs/operators';\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\n\nexport interface ConfirmDialogConfig {\n  /** Custom class for the overlay pane. */\n  panelClass?: string | string[];\n  /** Whether the dialog has a backdrop. */\n  hasBackdrop?: boolean;\n  /** Custom class for the backdrop. */\n  backdropClass?: string;\n  /** Width of the dialog. */\n  width?: string;\n  /** Height of the dialog. */\n  height?: string;\n  /** Min-width of the dialog. If a number is provided, assumes pixel units. */\n  minWidth?: number | string;\n  /** Min-height of the dialog. If a number is provided, assumes pixel units. */\n  minHeight?: number | string;\n  /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n  maxWidth?: number | string;\n  /** Max-height of the dialog. If a number is provided, assumes pixel units. */\n  maxHeight?: number | string;\n  /** Position overrides. */\n  position?: DialogPosition;\n  /** Layout direction for the dialog's content. */\n  direction?: Direction;\n  /** ID of the element that describes the dialog. */\n  ariaDescribedBy?: string | null;\n  /** ID of the element that labels the dialog. */\n  ariaLabelledBy?: string | null;\n  /** Aria label to assign to the dialog element. */\n  ariaLabel?: string | null;\n  /** Whether the dialog should focus the first focusable element on open. */\n  autoFocus?: boolean;\n  /**\n   * Whether the dialog should restore focus to the\n   * previously-focused element, after it's closed.\n   */\n  restoreFocus?: boolean;\n  /** Scroll strategy to be used for the dialog. */\n  scrollStrategy?: ScrollStrategy;\n  /**\n   * Whether the dialog should close when the user goes backwards/forwards in history.\n   * Note that this usually doesn't include clicking on links (unless the user is using\n   * the `HashLocationStrategy`).\n   */\n  closeOnNavigation?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmDialogService {\n  constructor(\n    @Inject(MatDialog)\n    private readonly dialog: MatDialog,\n  ) {\n  }\n\n  public open(\n    message: string,\n    action?: string,\n    config?: ConfirmDialogConfig,\n  ): Promise<boolean> {\n    const dialogRef = this.dialog.open<\n      ConfirmDialogComponent,\n      { message: string; action?: string },\n      boolean\n    >(ConfirmDialogComponent, {\n      ...config,\n      data: {\n        message,\n        action,\n      },\n    });\n\n    return firstValueFrom(dialogRef\n      .afterClosed()\n      .pipe(\n        take(1),\n        map((result) => !!result),\n      ));\n  }\n}\n","import {\n  CdkPortalOutlet,\n  ComponentPortal,\n} from '@angular/cdk/portal';\nimport {\n  Component,\n  inject,\n} from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport {\n  MAT_DIALOG_DATA,\n  MatDialogActions,\n  MatDialogClose,\n  MatDialogContent,\n  MatDialogTitle,\n} from '@angular/material/dialog';\nimport { SantizationPipe } from '@rxap/pipes/santization';\nimport { ComponentDialogData } from './types';\n\n@Component({\n  selector: 'rxap-component-dialog',\n  imports: [\n    MatButton,\n    MatDialogActions,\n    MatDialogContent,\n    MatDialogTitle,\n    SantizationPipe,\n    MatDialogClose,\n    CdkPortalOutlet,\n  ],\n  templateUrl: './component-dialog.component.html',\n  styleUrl: './component-dialog.component.scss',\n})\nexport class ComponentDialogComponent {\n\n  public readonly data = inject<ComponentDialogData>(MAT_DIALOG_DATA);\n\n  public readonly component = this.data.component;\n\n  public readonly portal = new ComponentPortal(this.component);\n\n  public readonly title = this.data.title;\n\n}\n","@if (title) {\n  <h2 mat-dialog-title>{{ title }}</h2>\n}\n<mat-dialog-content>\n  <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n</mat-dialog-content>\n<mat-dialog-actions>\n  <button [mat-dialog-close]=\"true\" mat-button>\n    <ng-container i18n>Close</ng-container>\n  </button>\n</mat-dialog-actions>\n","import { ComponentType } from '@angular/cdk/overlay';\nimport {\n  inject,\n  Injectable,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { firstValueFrom } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { ComponentDialogComponent } from './component-dialog.component';\nimport {\n  ComponentDialogConfig,\n  ComponentDialogData,\n} from './types';\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentDialogService {\n\n  protected readonly dialog = inject(MatDialog);\n\n  public open<Result = any>(\n    component: ComponentType<any>,\n    config?: ComponentDialogConfig,\n  ): Promise<Result | undefined> {\n    const dialogRef = this.dialog.open<\n      ComponentDialogComponent,\n      ComponentDialogData,\n      Result\n    >(ComponentDialogComponent, {\n      ...config,\n      data: {\n        ...config?.data,\n        component,\n      }\n    });\n\n    return firstValueFrom(dialogRef\n      .afterClosed()\n      .pipe(\n        take(1),\n      ));\n  }\n\n}\n","// region message-dialog\nexport * from './lib/message-dialog/message-dialog.component';\nexport * from './lib/message-dialog/message-dialog.service';\nexport * from './lib/message-dialog/types';\n// endregion\n\n// region error-capture-dialog\nexport * from './lib/error-capture-dialog/error-capture-dialog.component';\nexport * from './lib/error-capture-dialog/error-capture-dialog.service';\nexport * from './lib/error-capture-dialog/types';\n// endregion\n\n// region confirm-dialog\nexport * from './lib/confirm-dialog/confirm-dialog.component';\nexport * from './lib/confirm-dialog/confirm-dialog.service';\n// endregion\n\n// region component-dialog\nexport * from './lib/component-dialog/component-dialog.component';\nexport * from './lib/component-dialog/component-dialog.service';\nexport * from './lib/component-dialog/types';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["take"],"mappings":"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"}