{"version":3,"file":"axulus-uikit-dynamicdialog.mjs","sources":["../../src/app/components/dynamicdialog/dynamicdialogcontent.ts","../../src/app/components/dynamicdialog/dynamicdialog-config.ts","../../src/app/components/dynamicdialog/dynamicdialog-ref.ts","../../src/app/components/dynamicdialog/dynamicdialog.ts","../../src/app/components/dynamicdialog/dynamicdialog-injector.ts","../../src/app/components/dynamicdialog/dialogservice.ts","../../src/app/components/dynamicdialog/axulus-uikit-dynamicdialog.ts"],"sourcesContent":["import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[pDynamicDialogContent]',\n  host: {\n    class: 'p-element'\n  }\n})\nexport class DynamicDialogContent {\n  constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","export class DynamicDialogConfig<T = any> {\n  data?: T;\n  header?: string;\n  footer?: string;\n  width?: string;\n  height?: string;\n  closeOnEscape?: boolean;\n  baseZIndex?: number;\n  autoZIndex?: boolean;\n  dismissableMask?: boolean;\n  rtl?: boolean;\n  style?: any;\n  contentStyle?: any;\n  styleClass?: string;\n  transitionOptions?: string;\n  closable?: boolean;\n  showHeader?: boolean;\n  modal?: boolean;\n  maskStyleClass?: string;\n  resizable?: boolean;\n  draggable?: boolean;\n  keepInViewport?: boolean;\n  minX?: number;\n  minY?: number;\n  maximizable?: boolean;\n  maximizeIcon?: string;\n  minimizeIcon?: string;\n  position?: string;\n}\n","import { Observable, Subject } from 'rxjs';\n\nexport class DynamicDialogRef {\n  constructor() {}\n\n  close(result?: any) {\n    this._onClose.next(result);\n  }\n\n  destroy() {\n    this._onDestroy.next(null);\n  }\n\n  dragStart(event: MouseEvent) {\n    this._onDragStart.next(event);\n  }\n\n  dragEnd(event: MouseEvent) {\n    this._onDragEnd.next(event);\n  }\n\n  resizeInit(event: MouseEvent) {\n    this._onResizeInit.next(event);\n  }\n\n  resizeEnd(event: MouseEvent) {\n    this._onResizeEnd.next(event);\n  }\n\n  maximize(value: any) {\n    this._onMaximize.next(value);\n  }\n\n  private readonly _onClose = new Subject<any>();\n  onClose: Observable<any> = this._onClose.asObservable();\n\n  private readonly _onDestroy = new Subject<any>();\n  onDestroy: Observable<any> = this._onDestroy.asObservable();\n\n  private readonly _onDragStart = new Subject<any>();\n  onDragStart: Observable<any> = this._onDragStart.asObservable();\n\n  private readonly _onDragEnd = new Subject<any>();\n  onDragEnd: Observable<any> = this._onDragEnd.asObservable();\n\n  private readonly _onResizeInit = new Subject<any>();\n  onResizeInit: Observable<any> = this._onResizeInit.asObservable();\n\n  private readonly _onResizeEnd = new Subject<any>();\n  onResizeEnd: Observable<any> = this._onResizeEnd.asObservable();\n\n  private readonly _onMaximize = new Subject<any>();\n  onMaximize: Observable<any> = this._onMaximize.asObservable();\n}\n","import {\n  Component,\n  NgModule,\n  Type,\n  ComponentFactoryResolver,\n  ViewChild,\n  OnDestroy,\n  ComponentRef,\n  AfterViewInit,\n  ChangeDetectorRef,\n  Renderer2,\n  NgZone,\n  ElementRef,\n  ChangeDetectionStrategy,\n  ViewRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { trigger, style, transition, animate, AnimationEvent, animation, useAnimation } from '@angular/animations';\nimport { DynamicDialogContent } from './dynamicdialogcontent';\nimport { DynamicDialogConfig } from './dynamicdialog-config';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } from '@axulus/uikit/dom';\nimport { DynamicDialogRef } from './dynamicdialog-ref';\nimport { ZIndexUtils } from '@axulus/uikit/utils';\nimport { PrimeNGConfig } from '@axulus/uikit/api';\n\nconst showAnimation = animation([\n  style({ transform: '{{transform}}', opacity: 0 }),\n  animate('{{transition}}', style({ transform: 'none', opacity: 1 }))\n]);\n\nconst hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);\n\n@Component({\n  selector: 'p-dynamicDialog',\n  template: `\n    <div\n      #mask\n      [ngClass]=\"{\n        'p-dialog-mask': true,\n        'p-component-overlay p-component-overlay-enter p-dialog-mask-scrollblocker': config.modal !== false,\n        'p-dialog-left': position === 'left',\n        'p-dialog-right': position === 'right',\n        'p-dialog-top': position === 'top',\n        'p-dialog-bottom': position === 'bottom',\n        'p-dialog-top-left': position === 'topleft' || position === 'top-left',\n        'p-dialog-top-right': position === 'topright' || position === 'top-right',\n        'p-dialog-bottom-left': position === 'bottomleft' || position === 'bottom-left',\n        'p-dialog-bottom-right': position === 'bottomright' || position === 'bottom-right'\n      }\"\n      [class]=\"config.maskStyleClass\"\n    >\n      <div\n        #container\n        [ngClass]=\"{\n          'p-dialog p-dynamic-dialog p-component': true,\n          'p-dialog-rtl': config.rtl,\n          'p-dialog-resizable': config.resizable,\n          'p-dialog-draggable': config.draggable,\n          'p-dialog-maximized': maximized\n        }\"\n        [ngStyle]=\"config.style\"\n        [class]=\"config.styleClass\"\n        [@animation]=\"{\n          value: 'visible',\n          params: {\n            transform: transformOptions,\n            transition: config.transitionOptions || '150ms cubic-bezier(0, 0, 0.2, 1)'\n          }\n        }\"\n        (@animation.start)=\"onAnimationStart($event)\"\n        (@animation.done)=\"onAnimationEnd($event)\"\n        role=\"dialog\"\n        *ngIf=\"visible\"\n        [style.width]=\"config.width\"\n        [style.height]=\"config.height\"\n      >\n        <div *ngIf=\"config.resizable\" class=\"p-resizable-handle\" style=\"z-index: 90;\" (mousedown)=\"initResize($event)\"></div>\n        <div #titlebar class=\"p-dialog-header\" (mousedown)=\"initDrag($event)\" *ngIf=\"config.showHeader === false ? false : true\">\n          <span class=\"p-dialog-title\">{{ config.header }}</span>\n          <div class=\"p-dialog-header-icons\">\n            <button\n              *ngIf=\"config.maximizable\"\n              type=\"button\"\n              [ngClass]=\"{ 'p-dialog-header-icon p-dialog-header-maximize p-link': true }\"\n              (click)=\"maximize()\"\n              (keydown.enter)=\"maximize()\"\n              tabindex=\"-1\"\n              pRipple\n            >\n              <span class=\"p-dialog-header-maximize-icon\" [ngClass]=\"maximized ? minimizeIcon : maximizeIcon\"></span>\n            </button>\n            <button\n              [ngClass]=\"'p-dialog-header-icon p-dialog-header-maximize p-link'\"\n              type=\"button\"\n              (click)=\"hide()\"\n              (keydown.enter)=\"hide()\"\n              *ngIf=\"config.closable !== false\"\n            >\n              <span class=\"p-dialog-header-close-icon pi pi-times\"></span>\n            </button>\n          </div>\n        </div>\n        <div #content class=\"p-dialog-content\" [ngStyle]=\"config.contentStyle\">\n          <ng-template pDynamicDialogContent></ng-template>\n        </div>\n        <div class=\"p-dialog-footer\" *ngIf=\"config.footer\">\n          {{ config.footer }}\n        </div>\n      </div>\n    </div>\n  `,\n  animations: [\n    trigger('animation', [\n      transition('void => visible', [useAnimation(showAnimation)]),\n      transition('visible => void', [useAnimation(hideAnimation)])\n    ])\n  ],\n  changeDetection: ChangeDetectionStrategy.Default,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['../dialog/dialog.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class DynamicDialogComponent implements AfterViewInit, OnDestroy {\n  visible: boolean = true;\n\n  componentRef: ComponentRef<any>;\n\n  mask: HTMLDivElement;\n\n  resizing: boolean;\n\n  dragging: boolean;\n\n  maximized: boolean;\n\n  _style: any = {};\n\n  originalStyle: any;\n\n  lastPageX: number;\n\n  lastPageY: number;\n\n  @ViewChild(DynamicDialogContent) insertionPoint: DynamicDialogContent;\n\n  @ViewChild('mask') maskViewChild: ElementRef;\n\n  @ViewChild('content') contentViewChild: ElementRef;\n\n  @ViewChild('titlebar') headerViewChild: ElementRef;\n\n  childComponentType: Type<any>;\n\n  container: HTMLDivElement;\n\n  wrapper: HTMLElement;\n\n  documentKeydownListener: any;\n\n  documentEscapeListener: Function;\n\n  maskClickListener: Function;\n\n  transformOptions: string = 'scale(0.7)';\n\n  documentResizeListener: null;\n\n  documentResizeEndListener: null;\n\n  documentDragListener: null;\n\n  documentDragEndListener: null;\n\n  get minX(): number {\n    return this.config.minX ? this.config.minX : 0;\n  }\n\n  get minY(): number {\n    return this.config.minY ? this.config.minY : 0;\n  }\n\n  get keepInViewport(): boolean {\n    return this.config.keepInViewport;\n  }\n\n  get maximizable(): boolean {\n    return this.config.maximizable;\n  }\n\n  get maximizeIcon(): string {\n    return this.config.maximizeIcon ? this.config.maximizeIcon : 'pi pi-window-maximize';\n  }\n\n  get minimizeIcon(): string {\n    return this.config.minimizeIcon ? this.config.minimizeIcon : 'pi pi-window-minimize';\n  }\n\n  get style(): any {\n    return this._style;\n  }\n\n  get position(): string {\n    return this.config.position;\n  }\n\n  set style(value: any) {\n    if (value) {\n      this._style = { ...value };\n      this.originalStyle = value;\n    }\n  }\n\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private cd: ChangeDetectorRef,\n    public renderer: Renderer2,\n    public config: DynamicDialogConfig,\n    private dialogRef: DynamicDialogRef,\n    public zone: NgZone,\n    public primeNGConfig: PrimeNGConfig\n  ) {}\n\n  ngAfterViewInit() {\n    this.loadChildComponent(this.childComponentType);\n    this.cd.detectChanges();\n  }\n\n  loadChildComponent(componentType: Type<any>) {\n    let componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n\n    let viewContainerRef = this.insertionPoint?.viewContainerRef;\n    viewContainerRef?.clear();\n\n    this.componentRef = viewContainerRef?.createComponent(componentFactory);\n  }\n\n  moveOnTop() {\n    if (this.config.autoZIndex !== false) {\n      ZIndexUtils.set('modal', this.container, (this.config.baseZIndex || 0) + this.primeNGConfig.zIndex.modal);\n      this.wrapper.style.zIndex = String(parseInt(this.container.style.zIndex, 10) - 1);\n    }\n  }\n\n  onAnimationStart(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'visible':\n        this.container = event.element;\n        this.wrapper = this.container.parentElement;\n        this.moveOnTop();\n        this.bindGlobalListeners();\n\n        if (this.config.modal !== false) {\n          this.enableModality();\n        }\n        this.focus();\n        break;\n\n      case 'void':\n        if (this.wrapper && this.config.modal !== false) {\n          DomHandler.addClass(this.wrapper, 'p-component-overlay-leave');\n        }\n        break;\n    }\n  }\n\n  onAnimationEnd(event: AnimationEvent) {\n    if (event.toState === 'void') {\n      this.onContainerDestroy();\n      this.dialogRef.destroy();\n    }\n  }\n\n  onContainerDestroy() {\n    this.unbindGlobalListeners();\n\n    if (this.container && this.config.autoZIndex !== false) {\n      ZIndexUtils.clear(this.container);\n    }\n\n    if (this.config.modal !== false) {\n      this.disableModality();\n    }\n    this.container = null;\n  }\n\n  close() {\n    this.visible = false;\n    this.cd.markForCheck();\n  }\n\n  hide() {\n    if (this.dialogRef) {\n      this.dialogRef.close();\n    }\n  }\n\n  enableModality() {\n    if (this.config.closable !== false && this.config.dismissableMask) {\n      this.maskClickListener = this.renderer.listen(this.wrapper, 'mousedown', (event: any) => {\n        if (this.wrapper && this.wrapper.isSameNode(event.target)) {\n          this.hide();\n        }\n      });\n    }\n\n    if (this.config.modal !== false) {\n      DomHandler.addClass(document.body, 'p-overflow-hidden');\n    }\n  }\n\n  disableModality() {\n    if (this.wrapper) {\n      if (this.config.dismissableMask) {\n        this.unbindMaskClickListener();\n      }\n\n      if (this.config.modal !== false) {\n        DomHandler.removeClass(document.body, 'p-overflow-hidden');\n      }\n\n      if (!(this.cd as ViewRef).destroyed) {\n        this.cd.detectChanges();\n      }\n    }\n  }\n\n  onKeydown(event: KeyboardEvent) {\n    if (event.which === 9) {\n      event.preventDefault();\n\n      let focusableElements = DomHandler.getFocusableElements(this.container);\n\n      if (focusableElements && focusableElements.length > 0) {\n        if (!focusableElements[0].ownerDocument.activeElement) {\n          focusableElements[0].focus();\n        } else {\n          let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n\n          if (event.shiftKey) {\n            if (focusedIndex == -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();\n            else focusableElements[focusedIndex - 1].focus();\n          } else {\n            if (focusedIndex == -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();\n            else focusableElements[focusedIndex + 1].focus();\n          }\n        }\n      }\n    }\n  }\n\n  focus() {\n    let focusable = DomHandler.findSingle(this.container, '[autofocus]');\n    if (focusable) {\n      this.zone.runOutsideAngular(() => {\n        setTimeout(() => focusable.focus(), 5);\n      });\n    }\n  }\n\n  maximize() {\n    this.maximized = !this.maximized;\n\n    if (this.maximized) {\n      DomHandler.addClass(document.body, 'p-overflow-hidden');\n    } else {\n      DomHandler.removeClass(document.body, 'p-overflow-hidden');\n    }\n\n    this.dialogRef.maximize({ maximized: this.maximized });\n  }\n\n  initResize(event: MouseEvent) {\n    if (this.config.resizable) {\n      this.resizing = true;\n      this.lastPageX = event.pageX;\n      this.lastPageY = event.pageY;\n      DomHandler.addClass(document.body, 'p-unselectable-text');\n      this.dialogRef.resizeInit(event);\n    }\n  }\n\n  onResize(event: MouseEvent) {\n    if (this.resizing) {\n      let deltaX = event.pageX - this.lastPageX;\n      let deltaY = event.pageY - this.lastPageY;\n      let containerWidth = DomHandler.getOuterWidth(this.container);\n      let containerHeight = DomHandler.getOuterHeight(this.container);\n      let contentHeight = DomHandler.getOuterHeight(this.contentViewChild.nativeElement);\n      let newWidth = containerWidth + deltaX;\n      let newHeight = containerHeight + deltaY;\n      let minWidth = this.container.style.minWidth;\n      let minHeight = this.container.style.minHeight;\n      let offset = this.container.getBoundingClientRect();\n      let viewport = DomHandler.getViewport();\n      let hasBeenDragged = !parseInt(this.container.style.top) || !parseInt(this.container.style.left);\n\n      if (hasBeenDragged) {\n        newWidth += deltaX;\n        newHeight += deltaY;\n      }\n\n      if ((!minWidth || newWidth > parseInt(minWidth)) && offset.left + newWidth < viewport.width) {\n        this._style.width = newWidth + 'px';\n        this.container.style.width = this._style.width;\n      }\n\n      if ((!minHeight || newHeight > parseInt(minHeight)) && offset.top + newHeight < viewport.height) {\n        this.contentViewChild.nativeElement.style.height = contentHeight + newHeight - containerHeight + 'px';\n\n        if (this._style.height) {\n          this._style.height = newHeight + 'px';\n          this.container.style.height = this._style.height;\n        }\n      }\n\n      this.lastPageX = event.pageX;\n      this.lastPageY = event.pageY;\n    }\n  }\n\n  resizeEnd(event: MouseEvent) {\n    if (this.resizing) {\n      this.resizing = false;\n      DomHandler.removeClass(document.body, 'p-unselectable-text');\n      this.dialogRef.resizeEnd(event);\n    }\n  }\n\n  initDrag(event: MouseEvent) {\n    if (\n      DomHandler.hasClass(event.target, 'p-dialog-header-icon') ||\n      DomHandler.hasClass((<HTMLElement>event.target).parentElement, 'p-dialog-header-icon')\n    ) {\n      return;\n    }\n\n    if (this.config.draggable) {\n      this.dragging = true;\n      this.lastPageX = event.pageX;\n      this.lastPageY = event.pageY;\n\n      this.container.style.margin = '0';\n      DomHandler.addClass(document.body, 'p-unselectable-text');\n      this.dialogRef.dragStart(event);\n    }\n  }\n\n  onDrag(event: MouseEvent) {\n    if (this.dragging) {\n      let containerWidth = DomHandler.getOuterWidth(this.container);\n      let containerHeight = DomHandler.getOuterHeight(this.container);\n      let deltaX = event.pageX - this.lastPageX;\n      let deltaY = event.pageY - this.lastPageY;\n      let offset = this.container.getBoundingClientRect();\n      let leftPos = offset.left + deltaX;\n      let topPos = offset.top + deltaY;\n      let viewport = DomHandler.getViewport();\n\n      this.container.style.position = 'fixed';\n\n      if (this.keepInViewport) {\n        if (leftPos >= this.minX && leftPos + containerWidth < viewport.width) {\n          this._style.left = leftPos + 'px';\n          this.lastPageX = event.pageX;\n          this.container.style.left = leftPos + 'px';\n        }\n\n        if (topPos >= this.minY && topPos + containerHeight < viewport.height) {\n          this._style.top = topPos + 'px';\n          this.lastPageY = event.pageY;\n          this.container.style.top = topPos + 'px';\n        }\n      } else {\n        this.lastPageX = event.pageX;\n        this.container.style.left = leftPos + 'px';\n        this.lastPageY = event.pageY;\n        this.container.style.top = topPos + 'px';\n      }\n    }\n  }\n\n  endDrag(event: MouseEvent) {\n    if (this.dragging) {\n      this.dragging = false;\n      DomHandler.removeClass(document.body, 'p-unselectable-text');\n      this.dialogRef.dragEnd(event);\n      this.cd.detectChanges();\n    }\n  }\n\n  resetPosition() {\n    this.container.style.position = '';\n    this.container.style.left = '';\n    this.container.style.top = '';\n    this.container.style.margin = '';\n  }\n\n  bindDocumentDragListener() {\n    this.zone.runOutsideAngular(() => {\n      this.documentDragListener = this.onDrag.bind(this);\n      window.document.addEventListener('mousemove', this.documentDragListener);\n    });\n  }\n\n  bindDocumentDragEndListener() {\n    this.zone.runOutsideAngular(() => {\n      this.documentDragEndListener = this.endDrag.bind(this);\n      window.document.addEventListener('mouseup', this.documentDragEndListener);\n    });\n  }\n\n  unbindDocumentDragEndListener() {\n    if (this.documentDragEndListener) {\n      window.document.removeEventListener('mouseup', this.documentDragEndListener);\n      this.documentDragEndListener = null;\n    }\n  }\n\n  unbindDocumentDragListener() {\n    if (this.documentDragListener) {\n      window.document.removeEventListener('mousemove', this.documentDragListener);\n      this.documentDragListener = null;\n    }\n  }\n\n  bindDocumentResizeListeners() {\n    this.zone.runOutsideAngular(() => {\n      this.documentResizeListener = this.onResize.bind(this);\n      this.documentResizeEndListener = this.resizeEnd.bind(this);\n      window.document.addEventListener('mousemove', this.documentResizeListener);\n      window.document.addEventListener('mouseup', this.documentResizeEndListener);\n    });\n  }\n\n  unbindDocumentResizeListeners() {\n    if (this.documentResizeListener && this.documentResizeEndListener) {\n      window.document.removeEventListener('mousemove', this.documentResizeListener);\n      window.document.removeEventListener('mouseup', this.documentResizeEndListener);\n      this.documentResizeListener = null;\n      this.documentResizeEndListener = null;\n    }\n  }\n\n  bindGlobalListeners() {\n    this.bindDocumentKeydownListener();\n\n    if (this.config.closeOnEscape !== false && this.config.closable !== false) {\n      this.bindDocumentEscapeListener();\n    }\n\n    if (this.config.resizable) {\n      this.bindDocumentResizeListeners();\n    }\n\n    if (this.config.draggable) {\n      this.bindDocumentDragListener();\n      this.bindDocumentDragEndListener();\n    }\n  }\n\n  unbindGlobalListeners() {\n    this.unbindDocumentKeydownListener();\n    this.unbindDocumentEscapeListener();\n    this.unbindDocumentResizeListeners();\n    this.unbindDocumentDragListener();\n    this.unbindDocumentDragEndListener();\n  }\n\n  bindDocumentKeydownListener() {\n    this.zone.runOutsideAngular(() => {\n      this.documentKeydownListener = this.onKeydown.bind(this);\n      window.document.addEventListener('keydown', this.documentKeydownListener);\n    });\n  }\n\n  unbindDocumentKeydownListener() {\n    if (this.documentKeydownListener) {\n      window.document.removeEventListener('keydown', this.documentKeydownListener);\n      this.documentKeydownListener = null;\n    }\n  }\n\n  bindDocumentEscapeListener() {\n    const documentTarget: any = this.maskViewChild ? this.maskViewChild.nativeElement.ownerDocument : 'document';\n\n    this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', (event) => {\n      if (event.which == 27) {\n        if (parseInt(this.container.style.zIndex) == ZIndexUtils.getCurrent()) {\n          this.hide();\n        }\n      }\n    });\n  }\n\n  unbindDocumentEscapeListener() {\n    if (this.documentEscapeListener) {\n      this.documentEscapeListener();\n      this.documentEscapeListener = null;\n    }\n  }\n\n  unbindMaskClickListener() {\n    if (this.maskClickListener) {\n      this.maskClickListener();\n      this.maskClickListener = null;\n    }\n  }\n\n  ngOnDestroy() {\n    this.onContainerDestroy();\n\n    if (this.componentRef) {\n      this.componentRef.destroy();\n    }\n  }\n}\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [DynamicDialogComponent, DynamicDialogContent],\n  entryComponents: [DynamicDialogComponent]\n})\nexport class DynamicDialogModule {}\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\n\nexport class DynamicDialogInjector implements Injector {\n  constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) {}\n\n  get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\n  get(token: any, notFoundValue?: any);\n  get(token: any, notFoundValue?: any, flags?: any) {\n    const value = this._additionalTokens.get(token);\n\n    if (value) return value;\n\n    return this._parentInjector.get<any>(token, notFoundValue);\n  }\n}\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, Type, EmbeddedViewRef, ComponentRef } from '@angular/core';\nimport { DynamicDialogComponent } from './dynamicdialog';\nimport { DynamicDialogInjector } from './dynamicdialog-injector';\nimport { DynamicDialogConfig } from './dynamicdialog-config';\nimport { DynamicDialogRef } from './dynamicdialog-ref';\n\n@Injectable()\nexport class DialogService {\n  dialogComponentRefMap: Map<DynamicDialogRef, ComponentRef<DynamicDialogComponent>> = new Map();\n\n  constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) {}\n\n  public open(componentType: Type<any>, config: DynamicDialogConfig) {\n    const dialogRef = this.appendDialogComponentToBody(config);\n\n    this.dialogComponentRefMap.get(dialogRef).instance.childComponentType = componentType;\n\n    return dialogRef;\n  }\n\n  private appendDialogComponentToBody(config: DynamicDialogConfig) {\n    const map = new WeakMap();\n    map.set(DynamicDialogConfig, config);\n\n    const dialogRef = new DynamicDialogRef();\n    map.set(DynamicDialogRef, dialogRef);\n\n    const sub = dialogRef.onClose.subscribe(() => {\n      this.dialogComponentRefMap.get(dialogRef).instance.close();\n    });\n\n    const destroySub = dialogRef.onDestroy.subscribe(() => {\n      this.removeDialogComponentFromBody(dialogRef);\n      destroySub.unsubscribe();\n      sub.unsubscribe();\n    });\n\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DynamicDialogComponent);\n    const componentRef = componentFactory.create(new DynamicDialogInjector(this.injector, map));\n\n    this.appRef.attachView(componentRef.hostView);\n\n    const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n    document.body.appendChild(domElem);\n\n    this.dialogComponentRefMap.set(dialogRef, componentRef);\n\n    return dialogRef;\n  }\n\n  private removeDialogComponentFromBody(dialogRef: DynamicDialogRef) {\n    if (!dialogRef || !this.dialogComponentRefMap.has(dialogRef)) {\n      return;\n    }\n\n    const dialogComponentRef = this.dialogComponentRefMap.get(dialogRef);\n    this.appRef.detachView(dialogComponentRef.hostView);\n    dialogComponentRef.destroy();\n    this.dialogComponentRefMap.delete(dialogRef);\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.DynamicDialogConfig","i2.DynamicDialogRef"],"mappings":"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"}