{"version":3,"file":"obliczeniowo-elementary-dialogs.mjs","sources":["../../../../projects/components/dialogs/class/dialog-overlay-ref.ts","../../../../projects/components/dialogs/components/dialog/dialog.component.ts","../../../../projects/components/dialogs/components/dialog/dialog.component.html","../../../../projects/components/dialogs/components/dialog-header/dialog-header.component.ts","../../../../projects/components/dialogs/components/dialog-header/dialog-header.component.html","../../../../projects/components/dialogs/services/dialog.service.ts","../../../../projects/components/dialogs/components/dialog-wrapper/dialog-wrapper.component.ts","../../../../projects/components/dialogs/components/dialog-wrapper/dialog-wrapper.component.html","../../../../projects/components/dialogs/components/message-dialog/message-dialog.component.ts","../../../../projects/components/dialogs/components/message-dialog/message-dialog.component.html","../../../../projects/components/dialogs/dialogs.module.ts","../../../../projects/components/dialogs/obliczeniowo-elementary-dialogs.ts"],"sourcesContent":["import { OverlayRef } from '@angular/cdk/overlay';\nimport { TemplateRef, Type } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DialogComponent } from '../components/dialog/dialog.component';\nimport { OverlayCloseEvent } from '../interfaces/dialog-close-event';\n\nexport class DialogOverlayRef<R = any, T = any> {\n  afterClosed = new Subject<OverlayCloseEvent<R | undefined>>();\n\n  constructor(\n    public overlay: OverlayRef,\n    public content: string | TemplateRef<any> | Type<any>,\n    public data: T | undefined // pass data to modal\n  ) {\n    overlay.backdropClick().subscribe(() => this._close('backdropClick', undefined));\n  }\n\n  close(data?: R | undefined): void {\n    this._close('close', data);\n  }\n\n  private _close(type: 'backdropClick' | 'close', data: R | undefined): void {\n    const overlayContainer = this.overlay.hostElement?.parentElement;\n    if (overlayContainer) {\n      DialogComponent.onClose(overlayContainer);\n    }\n\n    this.overlay.dispose();\n    this.afterClosed.next({\n      type,\n      data\n    });\n\n    this.afterClosed.complete();\n  }\n}\n","import { OverlayContainer } from '@angular/cdk/overlay';\nimport {\n  Component,\n  ComponentRef,\n  EventEmitter,\n  OnInit,\n  Output,\n  TemplateRef,\n  Type,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { DialogOverlayRef } from '../../class/dialog-overlay-ref';\n\n@Component({\n    selector: 'obl-dialog',\n    templateUrl: './dialog.component.html',\n    styleUrls: ['./dialog.component.scss'],\n    standalone: false\n})\nexport class DialogComponent implements OnInit {\n  private static dialogsCount: number = 0;\n\n  private static onOpen() {\n    DialogComponent.dialogsCount++;\n  }\n\n  static onClose(overlayContainer: HTMLElement) {\n    if (DialogComponent.dialogsCount) {\n      DialogComponent.dialogsCount--;\n    }\n    if (!DialogComponent.dialogsCount) {\n      overlayContainer.classList.remove('modal');\n    }\n  }\n\n  @Output() closed = new EventEmitter();\n\n  afterClosed = new Subject<any>();\n\n  contentType!: 'template' | 'string' | 'component';\n  content!: string | TemplateRef<any> | Type<any>;\n  context: any;\n\n  @ViewChild('viewContainerRef', { read: ViewContainerRef })\n  viewContainerRef!: ViewContainerRef;\n\n  protected component: any;\n\n  constructor(\n    private readonly ref: DialogOverlayRef,\n    private readonly overlayContainer: OverlayContainer\n  ) {\n    DialogComponent.onOpen();\n  }\n\n  close(): void {\n    this._close('close', undefined);\n    this.closed.emit()\n  }\n\n  ngOnInit(): void {\n    this.content = this.ref.content;\n\n    if (typeof this.content === 'string') {\n      this.contentType = 'string';\n    } else if (this.content instanceof TemplateRef) {\n      this.contentType = 'template';\n      this.context = {\n        close: this.close.bind(this.ref)\n      };\n    } else {\n      this.contentType = 'component';\n      this.createComponent(this.content);\n    }\n\n    this.overlayContainer.getContainerElement().classList.add('modal');\n  }\n\n  ngOnDestroy(): void {\n    this._close('close');\n    this.ref?.close();\n  }\n\n  get template(): TemplateRef<any> {\n    return this.content as unknown as TemplateRef<any>;\n  }\n\n  private createComponent(component: Type<any>): ComponentRef<any> {\n    this.component = this.viewContainerRef.createComponent<any>(\n      component,\n      {\n        injector: this.viewContainerRef.injector\n      }\n    );\n    return this.component;\n  }\n\n  private _close(type: 'backdropClick' | 'close', data?: any): void {\n    DialogComponent.onClose(this.overlayContainer.getContainerElement());\n    this.closed.emit();\n\n    this.ref.overlay.dispose();\n    this.afterClosed.next({\n      type,\n      data\n    });\n\n    this.afterClosed.complete();\n  }\n}\n","<div class=\"dialog modal-content\">\n  <ng-container #viewContainerRef></ng-container>\n\n  @if (contentType === 'template') {\n    <ng-container\n      [ngTemplateOutlet]=\"template\"\n    ></ng-container>\n  } @else if(contentType === 'string') {\n    {{ content }}\n  }\n</div>\n","import { Component, Output, EventEmitter } from '@angular/core';\n\n@Component({\n    selector: 'obl-dialog-header',\n    templateUrl: './dialog-header.component.html',\n    styleUrls: ['./dialog-header.component.scss'],\n    standalone: false\n})\nexport class DialogHeaderComponent {\n  @Output() closeAction: EventEmitter<void> = new EventEmitter<void>();\n}\n","<h2>\n    <ng-content select=\"title\"></ng-content>\n</h2>\n<button oblButton (click)=\"closeAction.emit()\">\n    <obl-icon name=\"cancel\"></obl-icon>\n</button>\n","import { GlobalPositionStrategy, Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, TemplateRef, Type } from '@angular/core';\nimport { DialogOverlayRef } from '../class/dialog-overlay-ref';\nimport { DialogComponent } from '../components/dialog/dialog.component';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DialogService {\n  constructor(private readonly overlay: Overlay, private readonly injector: Injector) { }\n\n  open<R = any, T = any>(\n    content: string | TemplateRef<any> | Type<any>,\n    options?: {\n      data?: T,\n      config?: OverlayConfig\n    }\n  ): DialogOverlayRef<R> {\n    const configs = new OverlayConfig({\n      ...{\n        hasBackdrop: true,\n        panelClass: ['modal', 'is-active'],\n        backdropClass: 'modal-background',\n        width: '500px',\n        maxHeight: '100vh',\n        maxWidth: '100vw',\n        positionStrategy: new GlobalPositionStrategy(),\n      },\n      ...options?.config\n    });\n\n    const overlayRef = this.overlay.create(configs);\n\n    const dialogOverlayRef = new DialogOverlayRef<R, T>(overlayRef, content, options?.data);\n\n    const injector = this.createInjector(dialogOverlayRef, this.injector);\n    overlayRef.attach(new ComponentPortal(DialogComponent, null, injector));\n\n    return dialogOverlayRef;\n  }\n\n  createInjector(ref: DialogOverlayRef, inj: Injector): Injector {\n    return Injector.create({\n      providers: [\n        {\n          provide: Overlay,\n          useValue: this.overlay\n        },\n        {\n          provide: DialogOverlayRef,\n          useValue: ref\n        }\n      ],\n      parent: inj\n    });\n  }\n}\n","import { Component, OnInit, TemplateRef, ViewChild, Output, EventEmitter, input } from '@angular/core';\n\nimport { DialogOverlayRef } from './../../class/dialog-overlay-ref';\nimport { DialogService } from './../../services/dialog.service';\nimport { OverlayConfigExt } from '../../interfaces/config-ext';\n\n/**\n * A simple dialog wrapper to use with ng-content to make a job done\n *\n * @example\n *\n * <obl-dialog-wrapper header=\"I want to play a game\" #dialogWrapper>\n *    <div style=\"padding: 10px\">Life or die make your choice</div>\n *    <div style=\"display: flex; justify-content: flex-end; padding: 10px; background-color: aliceblue;\">\n *      <button oblButton (click)=\"dialogWrapper.close()\">Life</button>\n *      <button oblButton (click)=\"dialogWrapper.close()\">Die</button>\n *    </div>\n * </obl-dialog-wrapper>\n *\n * <button (click)=\"dialogWrapper.open()\" oblButton>Open dialog things</button>\n */\n@Component({\n    selector: 'obl-dialog-wrapper',\n    templateUrl: './dialog-wrapper.component.html',\n    styleUrls: ['./dialog-wrapper.component.scss'],\n    standalone: false\n})\nexport class DialogWrapperComponent implements OnInit {\n  header = input.required<string>();\n\n  @Output() closed = new EventEmitter();\n\n  @Output() cancel = new EventEmitter();\n\n  @ViewChild('dialog') template!: TemplateRef<any>;\n\n  data: any;\n\n  protected opened = false;\n  protected dialogRef: DialogOverlayRef<any, any> | undefined;\n\n  constructor(private readonly dialog: DialogService) { }\n\n  ngOnInit(): void {\n  }\n\n  ngOnDestroy(): void {\n    this.dialogRef?.close();\n  }\n\n  open(config?: OverlayConfigExt): void {\n    this.dialogRef = this.dialog.open(this.template, {\n      config: {\n        ...{\n          width: '400px'\n        },\n        ...config\n      }\n    });\n    this.opened = true;\n    this.data = config?.data;\n  }\n\n  close(): void {\n    this.dialogRef?.close();\n    this.closed.emit();\n  }\n}\n","<ng-template #dialog>\n  <div class=\"content\">\n    <obl-dialog-header (closeAction)=\"close(); cancel.emit()\">\n      <ng-container ngProjectAs=\"title\">\n        {{ header() }}\n      </ng-container>\n    </obl-dialog-header>\n    <ng-content></ng-content>\n  </div>\n</ng-template>\n","import { OverlayConfigExt } from '../../interfaces/config-ext';\nimport { DialogWrapperComponent } from './../dialog-wrapper/dialog-wrapper.component';\nimport { Component, input, ViewChild } from '@angular/core';\n\n/**\n * Just message dialog that you can use by HTML:\n *\n * @example\n *\n * <obl-message-dialog header=\"I want to play a game\" #message>\n *   <ng-container message>\n *     Live or die make your choice\n *   </ng-container>\n *   <ng-container buttons>\n *     <button oblButton (click)=\"message.close()\">Live</button>\n *     <button oblButton (click)=\"message.close()\">Die</button>\n *   </ng-container>\n * </obl-message-dialog>\n *\n * <button (click)=\"message.open({ width: '600px' })\" oblButton>Open dialog things</button>\n */\n@Component({\n    selector: 'obl-message-dialog',\n    templateUrl: './message-dialog.component.html',\n    styleUrls: ['./message-dialog.component.scss'],\n    standalone: false\n})\nexport class MessageDialogComponent {\n  header = input.required<string>();\n\n  @ViewChild(DialogWrapperComponent) protected dialog!: DialogWrapperComponent;\n\n  data: any;\n\n  open(config?: OverlayConfigExt | undefined): void {\n    this.dialog.open(config);\n    this.data = config?.data;\n  }\n\n  close(): void {\n    this.dialog.close();\n  }\n}\n","<obl-dialog-wrapper [header]=\"header()\" #dialogWrapper>\n    <div class=\"obl-dialog-message\" style=\"padding: 20px 10px 10px 10px;\">\n        <ng-content select=\"[message]\"></ng-content>\n    </div>\n    <div class=\"obl-dialog-buttons\">\n        <ng-content select=\"[buttons]\"></ng-content>\n    </div>\n</obl-dialog-wrapper>","import { IconsModule } from '@obliczeniowo/elementary/icons';\nimport { ButtonsModule } from '@obliczeniowo/elementary/buttons';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogComponent } from './components/dialog/dialog.component';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DialogHeaderComponent } from './components/dialog-header/dialog-header.component';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MessageDialogComponent } from './components/message-dialog/message-dialog.component';\n\n@NgModule({\n  declarations: [\n    DialogComponent,\n    DialogHeaderComponent,\n    DialogWrapperComponent,\n    MessageDialogComponent,\n  ],\n  imports: [\n    CommonModule,\n    OverlayModule,\n    ButtonsModule,\n    IconsModule\n  ],\n  exports: [\n    DialogComponent,\n    DialogHeaderComponent,\n    DialogWrapperComponent,\n    MessageDialogComponent,\n  ],\n})\nexport class DialogsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DialogOverlayRef","i2","i1","i1.DialogService","i2.DialogHeaderComponent","i1.DialogWrapperComponent"],"mappings":"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"}