{"version":3,"file":"developer-partners-ngx-modal-dialog.mjs","sources":["../../../projects/ngx-modal-dialog/src/lib/modal-reference.ts","../../../projects/ngx-modal-dialog/src/lib/modal-config.ts","../../../projects/ngx-modal-dialog/src/lib/modal.component.ts","../../../projects/ngx-modal-dialog/src/lib/modal.component.html","../../../projects/ngx-modal-dialog/src/lib/modal.service.ts","../../../projects/ngx-modal-dialog/src/lib/modal.module.ts","../../../projects/ngx-modal-dialog/src/public-api.ts","../../../projects/ngx-modal-dialog/src/developer-partners-ngx-modal-dialog.ts"],"sourcesContent":["import { Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\nimport { ModalConfig } from './modal-config';\r\n\r\nexport class ModalReference<TConfig, TResult = TConfig> {\r\n  private _event: Subject<TResult>;\r\n  private _cancelEvent: Subject<void>;\r\n\r\n  public config: ModalConfig<TConfig>;\r\n\r\n  constructor(config: ModalConfig<TConfig>) {\r\n    this.config = config;\r\n    this._event = new Subject<TResult>();\r\n    this._cancelEvent = new Subject();\r\n  }\r\n\r\n  public result(): Observable<TResult> {\r\n    return this._event.asObservable()\r\n  }\r\n\r\n  public cancelResult(): Observable<void> {\r\n    return this._cancelEvent.asObservable();\r\n  }\r\n\r\n  public closeSuccess(model?: TResult): void {\r\n    this._event.next(model);\r\n    this._event.complete();\r\n  }\r\n\r\n  public cancel(): void {\r\n    // Just comlete the event transmission.\r\n    this._event.complete();\r\n\r\n    this._cancelEvent.next();\r\n    this._cancelEvent.complete();\r\n  }\r\n}","import { ViewContainerRef } from \"@angular/core\";\r\n\r\nexport interface ModalConfig<T> {\r\n  title: string;\r\n  size?: ModalSize;\r\n  model?: T;\r\n  type?: 'default' | 'error' | 'warning' | 'success',\r\n  mode?: 'default' | 'disableFullScreen' | 'fullScreen';\r\n  position?: 'center' | 'top' | 'bottom' | 'left' | 'right';\r\n  viewContainerRef?: ViewContainerRef;\r\n}\r\n\r\nexport enum ModalSize {\r\n  default,\r\n  large,\r\n  extraLarge,\r\n  medium\r\n}\r\n","import { Component, ComponentRef, ViewChild, ViewContainerRef, AfterViewInit, Type, ChangeDetectorRef, ElementRef, OnDestroy, ViewEncapsulation, EnvironmentInjector, Injector, Input } from \"@angular/core\";\r\nimport { ModalReference } from './modal-reference';\r\nimport { ModalSize } from './modal-config';\r\n\r\n@Component({\r\n  selector: 'dp-modal',\r\n  templateUrl: './modal.component.html',\r\n  styleUrls: [\r\n    './modal.component.scss'\r\n  ],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ModalComponent implements AfterViewInit, OnDestroy {\r\n  private _changeDetectorRef: ChangeDetectorRef;\r\n\r\n  private _mouseDownPressed: boolean;\r\n\r\n  public modalReference: ModalReference<any>;\r\n  public componentRef: ComponentRef<any>;\r\n  public contentComponentType: Type<any>;\r\n  public modalSize = ModalSize;\r\n  public classConfig: any;\r\n\r\n  public envInjector?: EnvironmentInjector;\r\n  public elementInjector?: Injector;\r\n\r\n  @ViewChild('contentContainer', { read: ViewContainerRef })\r\n  public contentContainer: ViewContainerRef;\r\n\r\n  @ViewChild('bodyElement')\r\n  public bodyElement: ElementRef<HTMLElement>;\r\n\r\n  constructor(\r\n    changeDetectorRef: ChangeDetectorRef,\r\n    modalRefernce: ModalReference<any, any>\r\n  ) {\r\n    this._changeDetectorRef = changeDetectorRef;\r\n    this.modalReference = modalRefernce;\r\n  }\r\n\r\n  private createModalContent(componentType: Type<any>): ComponentRef<any> {\r\n    this.contentContainer.clear();\r\n\r\n    return this.contentContainer.createComponent(componentType, {\r\n      injector: this.elementInjector ?? this.contentContainer.injector,\r\n      environmentInjector: this.envInjector ?? this.contentContainer.injector.get(EnvironmentInjector)\r\n    });\r\n  }\r\n\r\n  public ngAfterViewInit(): void {\r\n    this.componentRef = this.createModalContent(this.contentComponentType);\r\n\r\n    // To update the view.\r\n    this._changeDetectorRef.detectChanges();\r\n\r\n    // To take focus from a button clicked behind the modal;\r\n    this.bodyElement.nativeElement.focus();\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    if (this.componentRef) {\r\n      this.componentRef.destroy();\r\n    }\r\n  }\r\n\r\n  private isBackdropElement(target: EventTarget): boolean {\r\n    let targetElement = <HTMLElement>target;\r\n\r\n    if (targetElement.classList.contains('dp-backdrop')) {\r\n      return true;\r\n    }\r\n    if (targetElement.classList.contains('dp-close-modal')) {\r\n      return true;\r\n    }\r\n\r\n    return false;\r\n  }\r\n\r\n  public mouseDownEvent(event: MouseEvent, backdropCliecked: boolean): void {\r\n    // The backdropCliecked will be false if the event is just bubbled up from a child element.\r\n    if (backdropCliecked && !this.isBackdropElement(event.target)) {\r\n      return\r\n    }\r\n\r\n    // Mark the mouse button pressed to check on the mouseUp event.\r\n    this._mouseDownPressed = !this._mouseDownPressed;\r\n  }\r\n\r\n  public mouseUpEvent(event: MouseEvent): void {\r\n    // Check if the mouse was clicked on the backdrop.\r\n    if (this._mouseDownPressed) {\r\n      // Check if the mouse button was released on the backdrop\r\n      if (this.isBackdropElement(event.target)) {\r\n        // If mouse button was released on the backdrop, close the modal.\r\n        event.stopPropagation();\r\n        this.modalReference.cancel();\r\n      }\r\n    }\r\n  }\r\n\r\n  public keyUpEvent(event: KeyboardEvent): void {\r\n    // Close on the Esc key press.\r\n    if (event.which === 27) {\r\n      this.modalReference.cancel();\r\n    }\r\n  }\r\n\r\n  public maximize(): void {\r\n    this.modalReference.config.mode = 'fullScreen';\r\n  }\r\n\r\n  public restoreWindow(): void {\r\n    this.modalReference.config.mode = 'default';\r\n  }\r\n\r\n  public close() {\r\n    this.modalReference.cancel();\r\n  }\r\n}\r\n","<div class=\"dp-backdrop dp-modal-backdrop\"\r\n     (mousedown)=\"mouseDownEvent($event, true)\"\r\n     (mouseup)=\"mouseUpEvent($event)\"\r\n     (keyup)=\"keyUpEvent($event)\">\r\n  <div class=\"dp-modal\"\r\n       [class.dp-large]=\"modalReference.config?.size === modalSize.large\"\r\n       [class.dp-extra-large]=\"modalReference.config?.size === modalSize.extraLarge\"\r\n       [class.dp-medium]=\"modalReference.config?.size === modalSize.medium\"\r\n       [class.dp-full-screen-modal]=\"modalReference.config?.mode === 'fullScreen'\"\r\n       [class.dp-disable-full-screen]=\"modalReference.config?.mode === 'disableFullScreen'\"\r\n       [class.dp-modal-position-top]=\"modalReference.config?.position === 'top'\"\r\n       [class.dp-modal-position-bottom]=\"modalReference.config?.position === 'bottom'\"\r\n       [class.dp-modal-position-left]=\"modalReference.config?.position === 'left'\"\r\n       [class.dp-modal-position-right]=\"modalReference.config?.position === 'right'\">\r\n\r\n    <div class=\"dp-modal-header\"\r\n         [class.dp-warning]=\"modalReference.config?.type === 'warning'\"\r\n         [class.dp-error]=\"modalReference.config?.type === 'error'\"\r\n         [class.dp-success]=\"modalReference.config?.type === 'success'\">\r\n      <h2 class=\"dp-title\">\r\n        {{modalReference.config?.title}}\r\n      </h2>\r\n\r\n      <ng-container *ngIf=\"modalReference.config?.mode != 'disableFullScreen'\">\r\n        <button *ngIf=\"modalReference.config?.mode != 'fullScreen'\"\r\n                (click)=\"maximize()\"\r\n                title=\"Maximize\"\r\n                aria-label=\"Maximize\">\r\n          <span class=\"material-icons\">\r\n            fullscreen\r\n          </span>\r\n        </button>\r\n\r\n        <button *ngIf=\"modalReference.config?.mode == 'fullScreen'\"\r\n                (click)=\"restoreWindow()\"\r\n                title=\"Restore Window Size\"\r\n                aria-label=\"Restore Window Size\">\r\n          <span class=\"material-icons\">\r\n            fullscreen_exit\r\n          </span>\r\n        </button>\r\n      </ng-container>\r\n      <button class=\"dp-close-modal\"\r\n              (click)=\"close()\"\r\n              title=\"Close\"\r\n              aria-label=\"Close\">\r\n        <span class=\"material-icons\">\r\n          close\r\n        </span>\r\n      </button>\r\n    </div>\r\n\r\n    <div #bodyElement class=\"dp-modal-body\" tabindex=\"-1\">\r\n      <ng-template #contentContainer></ng-template>\r\n    </div>\r\n  </div>\r\n</div>","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, Type, ComponentRef, InjectionToken, AbstractType, InjectFlags, EmbeddedViewRef, ViewContainerRef, createComponent, EnvironmentInjector } from \"@angular/core\";\r\nimport { ModalConfig } from \"./modal-config\";\r\nimport { ModalReference } from \"./modal-reference\";\r\nimport { ModalComponent } from \"./modal.component\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n  private _applicaionRef: ApplicationRef;\r\n  private _injector: Injector;\r\n  private _envInjector: EnvironmentInjector;\r\n\r\n  constructor(\r\n    applicaionRef: ApplicationRef,\r\n    injector: Injector,\r\n    envInjector: EnvironmentInjector\r\n  ) {\r\n    this._applicaionRef = applicaionRef;\r\n    this._injector = injector;\r\n    this._envInjector = envInjector;\r\n  }\r\n\r\n  private createModalComponent(dependecies: WeakMap<any, any>, config: ModalConfig<any>): ComponentRef<ModalComponent> {\r\n    const envInjector =\r\n      config.viewContainerRef?.injector.get(EnvironmentInjector, null) ??\r\n      this._envInjector;\r\n\r\n    const injector = new ModalInjector(\r\n      config.viewContainerRef?.injector ?? this._injector,\r\n      dependecies\r\n    );\r\n\r\n    const component = createComponent(ModalComponent, {\r\n      environmentInjector: envInjector,\r\n      elementInjector: injector\r\n    });\r\n\r\n    component.instance.envInjector = envInjector;\r\n    component.instance.elementInjector = injector;\r\n\r\n    return component;\r\n  }\r\n\r\n  private createModalRefernce<TConfig, TResult>(map: WeakMap<any, any>, config: ModalConfig<TConfig>): InternalModalRef<TConfig, TResult> {\r\n    let modalReference = new InternalModalRef<TConfig, TResult>(config);\r\n\r\n    // Create with internal implementation, but inject the public version.\r\n    map.set(ModalReference, modalReference);\r\n\r\n    modalReference.componentRef = this.createModalComponent(map, config);\r\n\r\n    modalReference\r\n      .result()\r\n      .subscribe({\r\n        complete: () => this.removeModal(modalReference)\r\n      });\r\n\r\n    return modalReference;\r\n  }\r\n\r\n  public show<TConfig, TResult = TConfig>(componentType: Type<any>, config: ModalConfig<TConfig>): ModalReference<TConfig, TResult> {\r\n    let map = new WeakMap<any, any>();\r\n    let modalReference = this.createModalRefernce<TConfig, TResult>(map, config);\r\n\r\n    modalReference.componentRef.instance.contentComponentType = componentType;\r\n\r\n    this._applicaionRef.attachView(modalReference.componentRef.hostView);\r\n    document.body.appendChild(modalReference.getHtmlElement());\r\n\r\n    // To trigger the animation effect. The modal is added to document at this point, but it's invisible.\r\n    // We animate the showing part.\r\n    window.setTimeout(() => {\r\n      modalReference.getHtmlElement().firstElementChild.classList.add('dp-visible');\r\n    });\r\n\r\n    modalReference.componentRef.changeDetectorRef.detectChanges();\r\n\r\n    return modalReference;\r\n  }\r\n\r\n  private removeModal<TConfig, TResult>(modalReference: InternalModalRef<TConfig, TResult>): void {\r\n    modalReference.getHtmlElement().firstElementChild.classList.remove('dp-visible');\r\n\r\n    // Wait until the closing animation is done, then remove the component.\r\n    window.setTimeout(() => {\r\n      this._applicaionRef.detachView(modalReference.componentRef.hostView);\r\n      modalReference.componentRef.destroy();\r\n    }, 400);\r\n  }\r\n}\r\n\r\nclass ModalInjector implements Injector {\r\n  private _injector: Injector;\r\n  private _extraDependecnies: WeakMap<any, any>;\r\n\r\n  constructor(\r\n    injector: Injector,\r\n    extraDependencies: WeakMap<any, any>\r\n  ) {\r\n    this._injector = injector;\r\n    this._extraDependecnies = extraDependencies;\r\n  }\r\n\r\n  public get<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n  public get(token: any, notFoundValue?: any);\r\n  public get(token: any, notFoundValue?: any, flags?: any) {\r\n    let resolved = this._extraDependecnies.get(token);\r\n\r\n    if (resolved) {\r\n      return resolved;\r\n    }\r\n\r\n    return this._injector.get(token, notFoundValue, flags);\r\n  }\r\n}\r\n\r\nclass InternalModalRef<TConfig, TResult> extends ModalReference<TConfig, TResult> {\r\n  public componentRef: ComponentRef<ModalComponent>;\r\n\r\n  constructor(config: ModalConfig<TConfig>) {\r\n    super(config);\r\n  }\r\n\r\n  public getHtmlElement(): HTMLElement {\r\n    let viewRef = this.componentRef.hostView as EmbeddedViewRef<ModalComponent>;\r\n    return viewRef.rootNodes[0];\r\n  }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { ModalComponent } from './modal.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    ModalComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    ModalComponent\r\n  ]\r\n})\r\nexport class ModalModule { }\r\n","/*\r\n * Public API Surface of ngx-modal-dialog\r\n */\r\n\r\nexport * from './lib/modal.service';\r\nexport * from './lib/modal.component';\r\nexport * from './lib/modal.module';\r\nexport * from './lib/modal-config';\r\nexport * from './lib/modal-reference';\r\nexport * from './lib/modal.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ModalReference"],"mappings":"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"}