{"version":3,"file":"ngx-bootstrap-modal.mjs","sources":["../../../../src/modal/bs-modal-ref.service.ts","../../../../src/modal/modal-backdrop.options.ts","../../../../src/modal/modal-options.class.ts","../../../../src/modal/modal-container.component.ts","../../../../src/modal/modal-backdrop.component.ts","../../../../src/modal/modal.directive.ts","../../../../src/modal/bs-modal.service.ts","../../../../src/modal/modal.module.ts","../../../../src/modal/ngx-bootstrap-modal.ts"],"sourcesContent":["import { Injectable, EventEmitter } from '@angular/core';\n\n@Injectable({providedIn: 'platform'})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class BsModalRef<T = any> {\n  /**\n   * Event that is fired when the modal behind the ref starts hiding\n   */\n  onHide?: EventEmitter<unknown>;\n  /**\n   * Event that is fired when the modal behind the ref finishes hiding\n   */\n  onHidden?: EventEmitter<unknown>;\n  /**\n   *  Allow user to ID for the modal. Otherwise, a unique number will be given\n   */\n  id?: number | string;\n\n  /**\n   * Reference to a component inside the modal. Null if modal's been created with TemplateRef\n   */\n  content?: T;\n\n  /**\n   * Hides the modal\n   */\n  hide: () => void = () => void 0;\n  /**\n   * Sets new class to modal window\n   */\n  setClass: (newClass: string) => void = () => void 0;\n}\n","export class ModalBackdropOptions {\n  animate = true;\n\n  constructor(options: ModalBackdropOptions) {\n    Object.assign(this, options);\n  }\n}\n","import { Injectable, StaticProvider, InjectionToken } from '@angular/core';\nimport { ClassName, CloseInterceptorFn, DismissReasons, Selector, TransitionDurations } from './models';\n\n@Injectable({providedIn: 'platform'})\nexport class ModalOptions<T = Record<string, unknown>> {\n  /**\n   *  Allow user to ID for the modal. Otherwise, a unique number will be given\n   */\n  id?: number | string;\n  /**\n   *  Includes a modal-backdrop element. Alternatively,\n   *  specify static for a backdrop which doesn't close the modal on click.\n   */\n  backdrop?: boolean | 'static';\n  /**\n   * Closes the modal when escape key is pressed.\n   */\n  keyboard?: boolean;\n\n  focus?: boolean;\n  /**\n   * Shows the modal when initialized.\n   */\n  show?: boolean;\n  /**\n   * Ignore the backdrop click\n   */\n  ignoreBackdropClick?: boolean;\n  /**\n   * Css class for opened modal\n   */\n  class?: string;\n  /**\n   * Toggle animation\n   */\n  animated?: boolean;\n  /**\n   * Modal data\n   */\n  initialState?: Partial<T>;\n  /**\n   * Function to intercept the closure\n   */\n  closeInterceptor?: CloseInterceptorFn;\n  /**\n   * Modal providers\n   */\n  providers?: StaticProvider[];\n  /**\n   * aria-labelledby attribute value to set on the modal window\n   */\n  ariaLabelledBy?: string;\n  /**\n   * aria-describedby attribute value to set on the modal window\n   */\n  ariaDescribedby?: string;\n}\n\nexport const modalConfigDefaults: ModalOptions = {\n  backdrop: true,\n  keyboard: true,\n  focus: true,\n  show: false,\n  ignoreBackdropClick: false,\n  class: '',\n  animated: true,\n  initialState: {},\n  closeInterceptor: void 0\n};\n\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> =\n  new InjectionToken<ModalOptions>('override-default-config');\n\nexport const CLASS_NAME: ClassName = {\n  SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n  BACKDROP: 'modal-backdrop',\n  OPEN: 'modal-open',\n  FADE: 'fade',\n  IN: 'in',\n  SHOW: 'show'\n};\n\nexport const SELECTOR: Selector = {\n  DIALOG: '.modal-dialog',\n  DATA_TOGGLE: '[data-toggle=\"modal\"]',\n  DATA_DISMISS: '[data-dismiss=\"modal\"]',\n  FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\n};\n\nexport const TRANSITION_DURATIONS: TransitionDurations = {\n  MODAL: 300,\n  BACKDROP: 150\n};\n\nexport const DISMISS_REASONS: DismissReasons = {\n  BACKRDOP: 'backdrop-click',\n  ESC: 'esc',\n  BACK: 'browser-back-navigation-clicked'\n};\n","import {\n  Component,\n  ElementRef,\n  HostListener,\n  OnDestroy,\n  OnInit,\n  Renderer2\n} from '@angular/core';\nimport {\n  CLASS_NAME,\n  DISMISS_REASONS,\n  ModalOptions,\n  TRANSITION_DURATIONS\n} from './modal-options.class';\nimport { BsModalService } from './bs-modal.service';\nimport { document } from 'ngx-bootstrap/utils';\n\n@Component({\n  selector: 'modal-container',\n  template: `\n    <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\"\n         role=\"document\"\n         focusTrap>\n      <div class=\"modal-content\">\n        <ng-content></ng-content>\n      </div>\n    </div>\n  `,\n  // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n  host: {\n    class: 'modal',\n    role: 'dialog',\n    tabindex: '-1',\n    '[attr.aria-modal]': 'true',\n    '[attr.aria-labelledby]': 'config.ariaLabelledBy',\n    '[attr.aria-describedby]': 'config.ariaDescribedby'\n  }\n})\nexport class ModalContainerComponent implements OnInit, OnDestroy {\n  config: ModalOptions;\n  isShown = false;\n  level?: number;\n  isAnimated = false;\n  bsModalService?: BsModalService;\n  _focusEl: Element | null = null;\n  private isModalHiding = false;\n  private clickStartedInContent = false;\n\n  constructor(options: ModalOptions,\n              protected _element: ElementRef,\n              private _renderer: Renderer2) {\n    this.config = Object.assign({}, options);\n  }\n\n  ngOnInit(): void {\n    this._focusEl = document.activeElement;\n    if (this.isAnimated) {\n      this._renderer.addClass(\n        this._element.nativeElement,\n        CLASS_NAME.FADE\n      );\n    }\n    this._renderer.setStyle(\n      this._element.nativeElement,\n      'display',\n      'block'\n    );\n    setTimeout(() => {\n      this.isShown = true;\n      this._renderer.addClass(\n        this._element.nativeElement,\n        CLASS_NAME.SHOW\n      );\n    }, this.isAnimated ? TRANSITION_DURATIONS.BACKDROP : 0);\n    if (document && document.body) {\n      if (this.bsModalService && this.bsModalService.getModalsCount() === 1) {\n        this.bsModalService.checkScrollbar();\n        this.bsModalService.setScrollbar();\n      }\n      this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n      this._renderer.setStyle(document.body, 'overflow-y', 'hidden');\n    }\n    if (this._element.nativeElement) {\n      this._element.nativeElement.focus();\n    }\n  }\n\n  @HostListener('mousedown', ['$event'])\n  onClickStarted(event: MouseEvent): void {\n    this.clickStartedInContent = event.target !== this._element.nativeElement;\n  }\n\n  @HostListener('click', ['$event'])\n  onClickStop(event: MouseEvent): void {\n    const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n    if (\n      this.config.ignoreBackdropClick ||\n      this.config.backdrop === 'static' ||\n      !clickedInBackdrop\n    ) {\n      this.clickStartedInContent = false;\n\n      return;\n    }\n    this.bsModalService?.setDismissReason(DISMISS_REASONS.BACKRDOP);\n    this.hide();\n  }\n\n  @HostListener('window:popstate')\n  onPopState(): void {\n    this.bsModalService?.setDismissReason(DISMISS_REASONS.BACK);\n    this.hide();\n  }\n\n  @HostListener('window:keydown.esc', ['$event'])\n  onEsc(event: KeyboardEvent): void {\n    if (!this.isShown) {\n      return;\n    }\n\n    if (event.keyCode === 27 || event.key === 'Escape') {\n      event.preventDefault();\n    }\n\n    if (\n      this.config.keyboard &&\n      this.level === this.bsModalService?.getModalsCount()\n    ) {\n      this.bsModalService?.setDismissReason(DISMISS_REASONS.ESC);\n      this.hide();\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.isShown) {\n      this._hide();\n    }\n  }\n\n  hide(): void {\n    if (this.isModalHiding) {\n      return;\n    }\n\n    if (this.config.closeInterceptor) {\n      this.config.closeInterceptor().then(\n        () => this._hide(),\n        () => undefined);\n\n      return;\n    }\n\n    this._hide();\n  }\n\n  private _hide(): void {\n    this.isModalHiding = true;\n    this._renderer.removeClass(\n      this._element.nativeElement,\n      CLASS_NAME.SHOW\n    );\n    setTimeout(() => {\n      this.isShown = false;\n      if (\n        document &&\n        document.body &&\n        this.bsModalService?.getModalsCount() === 1\n      ) {\n        this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n        this._renderer.setStyle(document.body, 'overflow-y', '');\n      }\n      this.bsModalService?.hide(this.config.id);\n      this.isModalHiding = false;\n      if (this._focusEl) {\n        (this._focusEl as HTMLElement).focus();\n      }\n    }, this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);\n  }\n}\n","import { Component, ElementRef, OnInit, Renderer2 } from '@angular/core';\n\nimport { CLASS_NAME } from './modal-options.class';\nimport { Utils } from 'ngx-bootstrap/utils';\n\n\n/** This component will be added as background layout for modals if enabled */\n@Component({\n  selector: 'bs-modal-backdrop',\n  template: ' ',\n  // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n  host: { class: CLASS_NAME.BACKDROP }\n})\nexport class ModalBackdropComponent implements OnInit {\n  get isAnimated(): boolean {\n    return this._isAnimated;\n  }\n\n  set isAnimated(value: boolean) {\n    this._isAnimated = value;\n  }\n\n  get isShown(): boolean {\n    return this._isShown;\n  }\n\n  set isShown(value: boolean) {\n    this._isShown = value;\n    if (value) {\n      this.renderer.addClass(\n        this.element.nativeElement,\n        `${CLASS_NAME.SHOW}`\n      );\n    } else {\n      this.renderer.removeClass(\n        this.element.nativeElement,\n        `${CLASS_NAME.SHOW}`\n      );\n    }\n  }\n\n  element: ElementRef;\n  renderer: Renderer2;\n\n  protected _isAnimated = false;\n  protected _isShown = false;\n\n  constructor(element: ElementRef, renderer: Renderer2) {\n    this.element = element;\n    this.renderer = renderer;\n  }\n\n  ngOnInit(): void {\n    if (this.isAnimated) {\n      this.renderer.addClass(\n        this.element.nativeElement,\n        `${CLASS_NAME.FADE}`\n      );\n      Utils.reflow(this.element.nativeElement);\n    }\n    this.isShown = true;\n  }\n}\n","// todo: should we support enforce focus in?\n// todo: in original bs there are was a way to prevent modal from showing\n// todo: original modal had resize events\n\nimport {\n  ComponentRef, Directive, ElementRef, EventEmitter, HostListener, Input,\n  OnDestroy, OnInit, Output, Renderer2, ViewContainerRef, Optional, Inject\n} from '@angular/core';\n\nimport { document, window, Utils } from 'ngx-bootstrap/utils';\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport {\n  CLASS_NAME, DISMISS_REASONS, modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE\n} from './modal-options.class';\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { CloseInterceptorFn } from './models';\n\nconst TRANSITION_DURATION = 300;\nconst BACKDROP_TRANSITION_DURATION = 150;\n\n/** Mark any code with directive to show it's content in modal */\n@Directive({\n  selector: '[bsModal]',\n  exportAs: 'bs-modal'\n})\nexport class ModalDirective implements OnDestroy, OnInit {\n  /** allows to set modal configuration via element property */\n  @Input()\n  set config(conf: ModalOptions) {\n    this._config = this.getConfig(conf);\n  }\n\n  get config(): ModalOptions {\n    return this._config;\n  }\n\n  /** allows to provide a callback to intercept the closure of the modal */\n  @Input() closeInterceptor?: CloseInterceptorFn;\n\n  /** This event fires immediately when the `show` instance method is called. */\n  @Output()\n  onShow: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n  /** This event is fired when the modal has been made visible to the user\n   * (will wait for CSS transitions to complete)\n   */\n  @Output()\n  onShown: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n  /** This event is fired immediately when\n   * the hide instance method has been called.\n   */\n  @Output()\n  onHide: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n  /** This event is fired when the modal has finished being\n   * hidden from the user (will wait for CSS transitions to complete).\n   */\n  @Output()\n  onHidden: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n\n  /** This field contains last dismiss reason.\n   * Possible values: `backdrop-click`, `esc` and `id: number`\n   * (if modal was closed by direct call of `.hide()`).\n   */\n  dismissReason?: string;\n\n  get isShown(): boolean {\n    return this._isShown;\n  }\n\n  protected _config: ModalOptions;\n  protected _isShown = false;\n\n  protected isBodyOverflowing = false;\n  protected originalBodyPadding = 0;\n  protected scrollbarWidth = 0;\n\n  protected timerHideModal = 0;\n  protected timerRmBackDrop = 0;\n\n  // reference to backdrop component\n  protected backdrop?: ComponentRef<ModalBackdropComponent>;\n  private _backdrop: ComponentLoader<ModalBackdropComponent>;\n\n  private isNested = false;\n  private clickStartedInContent = false;\n  private _focusEl: Element | null = null;\n\n  constructor(\n    private _element: ElementRef,\n    _viewContainerRef: ViewContainerRef,\n    private _renderer: Renderer2,\n    clf: ComponentLoaderFactory,\n    @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions) {\n    this._backdrop = clf.createLoader<ModalBackdropComponent>(\n      _element,\n      _viewContainerRef,\n      _renderer\n    );\n    this._config = modalDefaultOption || modalConfigDefaults;\n  }\n\n  @HostListener('mousedown', ['$event'])\n  onClickStarted(event: MouseEvent): void {\n    this.clickStartedInContent = event.target !== this._element.nativeElement;\n  }\n\n  @HostListener('mouseup', ['$event'])\n  onClickStop(event: MouseEvent): void {\n    const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n    if (\n      this.config.ignoreBackdropClick ||\n      this.config.backdrop === 'static' ||\n      !clickedInBackdrop\n    ) {\n      this.clickStartedInContent = false;\n\n      return;\n    }\n    this.dismissReason = DISMISS_REASONS.BACKRDOP;\n    this.hide(event);\n  }\n\n  // todo: consider preventing default and stopping propagation\n  @HostListener('keydown.esc', ['$event'])\n  onEsc(event: KeyboardEvent): void {\n    if (!this._isShown) {\n      return;\n    }\n    if (event.keyCode === 27 || event.key === 'Escape') {\n      event.preventDefault();\n    }\n\n    if (this.config.keyboard) {\n      this.dismissReason = DISMISS_REASONS.ESC;\n      this.hide();\n    }\n  }\n\n  ngOnDestroy() {\n    if (this._isShown) {\n      this._isShown = false;\n      this.hideModal();\n      this._backdrop.dispose();\n    }\n  }\n\n  ngOnInit(): void {\n    this._config = this._config || this.getConfig();\n    setTimeout(() => {\n      if (this._config.show) {\n        this.show();\n      }\n    }, 0);\n  }\n\n  /* Public methods */\n\n  /** Allows to manually toggle modal visibility */\n  toggle(): void {\n    return this._isShown ? this.hide() : this.show();\n  }\n\n  /** Allows to manually open modal */\n  show(): void {\n    this.dismissReason = void 0;\n    this.onShow.emit(this);\n    if (this._isShown) {\n      return;\n    }\n    clearTimeout(this.timerHideModal);\n    clearTimeout(this.timerRmBackDrop);\n\n    this._isShown = true;\n\n    this.checkScrollbar();\n    this.setScrollbar();\n\n    if (document && document.body) {\n      if (document.body.classList.contains(CLASS_NAME.OPEN)) {\n        this.isNested = true;\n      } else {\n        this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n        this._renderer.setStyle(document.body, 'overflow-y', 'hidden');\n      }\n    }\n\n    this.showBackdrop(() => {\n      this.showElement();\n    });\n  }\n\n  /** Check if we can close the modal */\n  hide(event?: Event): void {\n    if (!this._isShown) {\n      return;\n    }\n\n    if (event) {\n      event.preventDefault();\n    }\n\n    if (this.config.closeInterceptor) {\n      this.config.closeInterceptor().then(\n        () => this._hide(),\n        () => undefined);\n\n      return;\n    }\n\n    this._hide();\n  }\n\n  /** Private methods @internal */\n\n  /**\n   *  Manually close modal\n   *  @internal\n   */\n  protected _hide(): void {\n    this.onHide.emit(this);\n\n    window.clearTimeout(this.timerHideModal);\n    window.clearTimeout(this.timerRmBackDrop);\n\n    this._isShown = false;\n    this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\n\n    if (this._config.animated) {\n      this.timerHideModal = window.setTimeout(\n        () => this.hideModal(),\n        TRANSITION_DURATION\n      );\n    } else {\n      this.hideModal();\n    }\n\n    if (this._focusEl) {\n      (this._focusEl as HTMLElement).focus();\n    }\n  }\n\n  protected getConfig(config?: ModalOptions): ModalOptions {\n    return Object.assign({}, this._config, config);\n  }\n\n  /**\n   *  Show dialog\n   *  @internal\n   */\n  protected showElement(): void {\n    // todo: replace this with component loader usage\n    if (\n      !this._element.nativeElement.parentNode ||\n      this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE\n    ) {\n      // don't move modals dom position\n      if (document && document.body) {\n        document.body.appendChild(this._element.nativeElement);\n      }\n    }\n\n    this._renderer.setAttribute(\n      this._element.nativeElement,\n      'aria-hidden',\n      'false'\n    );\n    this._renderer.setAttribute(\n      this._element.nativeElement,\n      'aria-modal',\n      'true'\n    );\n    this._renderer.setStyle(\n      this._element.nativeElement,\n      'display',\n      'block'\n    );\n    this._renderer.setProperty(\n      this._element.nativeElement,\n      'scrollTop',\n      0\n    );\n\n    if (this._config.animated) {\n      Utils.reflow(this._element.nativeElement);\n    }\n\n    this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\n\n    const transitionComplete = () => {\n      if (this._config.focus) {\n        this._element.nativeElement.focus();\n      }\n      this.onShown.emit(this);\n    };\n\n    if (this._config.animated) {\n      setTimeout(transitionComplete, TRANSITION_DURATION);\n    } else {\n      transitionComplete();\n    }\n  }\n\n  /** @internal */\n  protected hideModal(): void {\n    this._renderer.setAttribute(\n      this._element.nativeElement,\n      'aria-hidden',\n      'true'\n    );\n    this._renderer.setStyle(\n      this._element.nativeElement,\n      'display',\n      'none'\n    );\n    this.showBackdrop(() => {\n      if (!this.isNested) {\n        if (document && document.body) {\n          this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n          this._renderer.setStyle(document.body, 'overflow-y', '');\n        }\n        this.resetScrollbar();\n      }\n      this.resetAdjustments();\n      this.focusOtherModal();\n      this.onHidden.emit(this);\n    });\n  }\n\n  // todo: original show was calling a callback when done, but we can use\n  // promise\n  /** @internal */\n  protected showBackdrop(callback?: () => void): void {\n    if (\n      this._isShown &&\n      this.config.backdrop &&\n      (!this.backdrop || !this.backdrop.instance.isShown)\n    ) {\n      this.removeBackdrop();\n      this._backdrop\n        .attach(ModalBackdropComponent)\n        .to('body')\n        .show({ isAnimated: this._config.animated });\n      this.backdrop = this._backdrop._componentRef;\n\n      if (!callback) {\n        return;\n      }\n\n      if (!this._config.animated) {\n        callback();\n\n        return;\n      }\n\n      setTimeout(callback, BACKDROP_TRANSITION_DURATION);\n    } else if (!this._isShown && this.backdrop) {\n      this.backdrop.instance.isShown = false;\n\n      const callbackRemove = () => {\n        this.removeBackdrop();\n        if (callback) {\n          callback();\n        }\n      };\n\n      if (this.backdrop.instance.isAnimated) {\n        this.timerRmBackDrop = window.setTimeout(\n          callbackRemove,\n          BACKDROP_TRANSITION_DURATION\n        );\n      } else {\n        callbackRemove();\n      }\n    } else if (callback) {\n      callback();\n    }\n  }\n\n  /** @internal */\n  protected removeBackdrop(): void {\n    this._backdrop.hide();\n  }\n\n  /** Events tricks */\n\n  // no need for it\n  // protected setEscapeEvent():void {\n  //   if (this._isShown && this._config.keyboard) {\n  //     $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n  //       if (event.which === 27) {\n  //         this.hide()\n  //       }\n  //     })\n  //\n  //   } else if (!this._isShown) {\n  //     $(this._element).off(Event.KEYDOWN_DISMISS)\n  //   }\n  // }\n\n  // protected setResizeEvent():void {\n  // console.log(this.renderer.listenGlobal('', Event.RESIZE));\n  // if (this._isShown) {\n  //   $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))\n  // } else {\n  //   $(window).off(Event.RESIZE)\n  // }\n  // }\n\n  protected focusOtherModal() {\n    if (this._element.nativeElement.parentElement == null) {\n      return;\n    }\n    const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[bsModal]');\n    if (!otherOpenedModals.length) {\n      return;\n    }\n    otherOpenedModals[otherOpenedModals.length - 1].focus();\n  }\n\n  /** @internal */\n  protected resetAdjustments(): void {\n    this._renderer.setStyle(\n      this._element.nativeElement,\n      'paddingLeft',\n      ''\n    );\n    this._renderer.setStyle(\n      this._element.nativeElement,\n      'paddingRight',\n      ''\n    );\n  }\n\n  /** Scroll bar tricks */\n  /** @internal */\n  protected checkScrollbar(): void {\n    this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n    this.scrollbarWidth = this.getScrollbarWidth();\n  }\n\n  protected setScrollbar(): void {\n    if (!document) {\n      return;\n    }\n\n    this.originalBodyPadding = parseInt(\n      window\n        .getComputedStyle(document.body)\n        .getPropertyValue('padding-right') || 0,\n      10\n    );\n\n    if (this.isBodyOverflowing) {\n      document.body.style.paddingRight = `${this.originalBodyPadding +\n        this.scrollbarWidth}px`;\n    }\n  }\n\n  protected resetScrollbar(): void {\n    document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n  }\n\n  // thx d.walsh\n  protected getScrollbarWidth(): number {\n    const scrollDiv = this._renderer.createElement('div');\n    this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n    this._renderer.appendChild(document.body, scrollDiv);\n    const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n    this._renderer.removeChild(document.body, scrollDiv);\n\n    return scrollbarWidth;\n  }\n}\n","import {\n  ComponentRef,\n  Injectable,\n  TemplateRef,\n  EventEmitter,\n  Renderer2,\n  RendererFactory2,\n  Inject,\n  Optional\n} from '@angular/core';\n\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport { ModalContainerComponent } from './modal-container.component';\nimport {\n  CLASS_NAME,\n  modalConfigDefaults,\n  ModalOptions,\n  TRANSITION_DURATIONS,\n  MODAL_CONFIG_DEFAULT_OVERRIDE\n} from './modal-options.class';\nimport { BsModalRef } from './bs-modal-ref.service';\nimport { document } from 'ngx-bootstrap/utils';\n\nlet currentId = 1;\n\n@Injectable({providedIn: 'platform'})\nexport class BsModalService {\n  // constructor props\n  config: ModalOptions;\n\n  onShow = new EventEmitter();\n  onShown = new EventEmitter();\n  onHide = new EventEmitter();\n  onHidden = new EventEmitter();\n\n  protected isBodyOverflowing = false;\n  protected originalBodyPadding = 0;\n\n  protected scrollbarWidth = 0;\n\n  protected backdropRef?: ComponentRef<ModalBackdropComponent>;\n  private _backdropLoader: ComponentLoader<ModalBackdropComponent>;\n  private modalsCount = 0;\n  private lastDismissReason?: string;\n\n  private loaders: ComponentLoader<ModalContainerComponent>[] = [];\n\n  private _renderer: Renderer2;\n  private _focusEl: Element | null = null;\n\n  constructor(\n    rendererFactory: RendererFactory2,\n    private clf: ComponentLoaderFactory,\n    @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) private modalDefaultOption: ModalOptions) {\n    this._backdropLoader = this.clf.createLoader<ModalBackdropComponent>();\n    this._renderer = rendererFactory.createRenderer(null, null);\n    this.config = modalDefaultOption ?\n      (Object.assign({}, modalConfigDefaults, modalDefaultOption)) :\n      modalConfigDefaults;\n  }\n\n  /** Shows a modal */\n  show<T>(\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    content: string | TemplateRef<any> | { new(...args: any[]): T },\n    config?: ModalOptions<T>\n  ): BsModalRef<T> {\n    this._focusEl = document.activeElement;\n    this.modalsCount++;\n    this._createLoaders();\n\n    // must be different per every show() call\n    const id = config?.id || currentId++;\n    this.config = this.modalDefaultOption ?\n      Object.assign({}, modalConfigDefaults, this.modalDefaultOption, config) :\n      Object.assign({}, modalConfigDefaults, config);\n    this.config.id = id;\n    this._showBackdrop();\n    this.lastDismissReason = void 0;\n\n    return this._showModal<T>(content);\n  }\n\n  hide(id?: number | string) {\n    if (this.modalsCount === 1 || id == null) {\n      this._hideBackdrop();\n      this.resetScrollbar();\n    }\n    this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\n    setTimeout(() => {\n      this._hideModal(id);\n      this.removeLoaders(id);\n    }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);\n\n    if (this._focusEl) {\n      (this._focusEl as HTMLElement).focus();\n    }\n  }\n\n  _showBackdrop(): void {\n    const isBackdropEnabled =\n      this.config.backdrop === true || this.config.backdrop === 'static';\n    const isBackdropInDOM =\n      !this.backdropRef || !this.backdropRef.instance.isShown;\n\n    if (this.modalsCount === 1) {\n      this.removeBackdrop();\n\n      if (isBackdropEnabled && isBackdropInDOM) {\n        this._backdropLoader\n          .attach(ModalBackdropComponent)\n          .to('body')\n          .show({ isAnimated: this.config.animated });\n        this.backdropRef = this._backdropLoader._componentRef;\n      }\n    }\n  }\n\n  _hideBackdrop(): void {\n    if (!this.backdropRef) {\n      return;\n    }\n    this.backdropRef.instance.isShown = false;\n    const duration = this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0;\n    setTimeout(() => this.removeBackdrop(), duration);\n  }\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  _showModal<T>(content: any): BsModalRef<T> {\n    const modalLoader = this.loaders[this.loaders.length - 1];\n    if (this.config && this.config.providers) {\n      for (const provider of this.config.providers) {\n        modalLoader.provide(provider);\n      }\n    }\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const bsModalRef = new BsModalRef<any>();\n    const modalContainerRef = modalLoader\n      .provide({ provide: ModalOptions, useValue: this.config })\n      .provide({ provide: BsModalRef, useValue: bsModalRef })\n      .attach(ModalContainerComponent)\n      .to('body');\n    bsModalRef.hide = () => this.hide(bsModalRef.id);\n    bsModalRef.setClass = (newClass: string) => {\n      if (modalContainerRef.instance) {\n        modalContainerRef.instance.config.class = newClass;\n      }\n    };\n\n    bsModalRef.onHidden = new EventEmitter<unknown>();\n    bsModalRef.onHide = new EventEmitter<unknown>();\n\n    this.copyEvent(modalLoader.onBeforeHide, bsModalRef.onHide);\n    this.copyEvent(modalLoader.onHidden, bsModalRef.onHidden);\n    // call 'show' method after assign setClass in bsModalRef.\n    // it makes modal component's bsModalRef available to call setClass method\n    modalContainerRef.show({\n      content,\n      isAnimated: this.config.animated,\n      initialState: this.config.initialState,\n      bsModalService: this,\n      id: this.config.id\n    });\n\n    if (modalContainerRef.instance) {\n      modalContainerRef.instance.level = this.getModalsCount();\n      bsModalRef.content = modalLoader.getInnerComponent();\n      bsModalRef.id = modalContainerRef.instance.config?.id;\n    }\n\n    return bsModalRef;\n  }\n\n  _hideModal(id?: number | string): void {\n    if (id != null) {\n      const indexToRemove = this.loaders.findIndex(loader => loader.instance?.config.id === id);\n      const modalLoader = this.loaders[indexToRemove];\n      if (modalLoader) {\n        modalLoader.hide(id);\n      }\n    } else {\n      this.loaders.forEach(\n        (loader: ComponentLoader<ModalContainerComponent>) => {\n          if (loader.instance) {\n            loader.hide(loader.instance.config.id);\n          }\n        }\n      );\n    }\n  }\n\n  getModalsCount(): number {\n    return this.modalsCount;\n  }\n\n  setDismissReason(reason: string) {\n    this.lastDismissReason = reason;\n  }\n\n  removeBackdrop(): void {\n    this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n    this._renderer.setStyle(document.body, 'overflow-y', '');\n    this._backdropLoader.hide();\n    this.backdropRef = void 0;\n  }\n\n  /** Checks if the body is overflowing and sets scrollbar width */\n  /** @internal */\n  checkScrollbar(): void {\n    this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n    this.scrollbarWidth = this.getScrollbarWidth();\n  }\n\n  setScrollbar(): void {\n    if (!document) {\n      return;\n    }\n\n    this.originalBodyPadding = parseInt(\n      window\n        .getComputedStyle(document.body)\n        .getPropertyValue('padding-right') || '0',\n      10\n    );\n\n    if (this.isBodyOverflowing) {\n      document.body.style.paddingRight = `${this.originalBodyPadding +\n        this.scrollbarWidth}px`;\n    }\n  }\n\n  private resetScrollbar(): void {\n    document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n  }\n\n  // thx d.walsh\n  private getScrollbarWidth(): number {\n    const scrollDiv = this._renderer.createElement('div');\n    this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n    this._renderer.appendChild(document.body, scrollDiv);\n    const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n    this._renderer.removeChild(document.body, scrollDiv);\n\n    return scrollbarWidth;\n  }\n\n  private _createLoaders(): void {\n    const loader = this.clf.createLoader<ModalContainerComponent>();\n    this.copyEvent(loader.onBeforeShow, this.onShow);\n    this.copyEvent(loader.onShown, this.onShown);\n    this.copyEvent(loader.onBeforeHide, this.onHide);\n    this.copyEvent(loader.onHidden, this.onHidden);\n    this.loaders.push(loader);\n  }\n\n  private removeLoaders(id?: number | string): void {\n    if (id != null) {\n      const indexToRemove = this.loaders.findIndex(loader => loader.instance?.config.id === id);\n      if (indexToRemove >= 0) {\n        this.loaders.splice(indexToRemove, 1);\n        this.loaders.forEach(\n          (loader: ComponentLoader<ModalContainerComponent>, i: number) => {\n            if (loader.instance) {\n              loader.instance.level = i + 1;\n            }\n          }\n        );\n      }\n    } else {\n      this.loaders.splice(0, this.loaders.length);\n    }\n  }\n\n  private copyEvent(from: EventEmitter<unknown>, to: EventEmitter<unknown>) {\n    from.subscribe((data) => {\n      to.emit(this.lastDismissReason || data);\n    });\n  }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { FocusTrapModule } from 'ngx-bootstrap/focus-trap';\n\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport { ModalDirective } from './modal.directive';\nimport { ModalContainerComponent } from './modal-container.component';\nimport { BsModalService } from './bs-modal.service';\n\nexport const focusTrapModule = FocusTrapModule.forRoot();\n\n@NgModule({\n    imports: [FocusTrapModule],\n    declarations: [\n        ModalBackdropComponent,\n        ModalDirective,\n        ModalContainerComponent\n    ],\n    exports: [ModalBackdropComponent, ModalDirective]\n})\nexport class ModalModule {\n  static forRoot(): ModuleWithProviders<ModalModule> {\n    return {\n      ngModule: ModalModule,\n      providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n    };\n  }\n  static forChild(): ModuleWithProviders<ModalModule> {\n    return {\n      ngModule: ModalModule,\n      providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ModalOptions","window"],"mappings":"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"}