{"ast":null,"code":"import * as i1 from '@angular/cdk/a11y';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport * as i1$1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayConfig, OverlayRef, OverlayModule } from '@angular/cdk/overlay';\nimport { Platform, _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, ChangeDetectorRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, ViewChild, InjectionToken, Injector, TemplateRef, Injectable, SkipSelf, NgModule } from '@angular/core';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Subject, defer, of } from 'rxjs';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { startWith } from 'rxjs/operators';\n\n/** Configuration for opening a modal dialog. */\nfunction CdkDialogContainer_ng_template_0_Template(rf, ctx) {}\nclass DialogConfig {\n  constructor() {\n    /** The ARIA role of the dialog element. */\n    this.role = 'dialog';\n    /** Optional CSS class or classes applied to the overlay panel. */\n    this.panelClass = '';\n    /** Whether the dialog has a backdrop. */\n    this.hasBackdrop = true;\n    /** Optional CSS class or classes applied to the overlay backdrop. */\n    this.backdropClass = '';\n    /** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n    this.disableClose = false;\n    /** Width of the dialog. */\n    this.width = '';\n    /** Height of the dialog. */\n    this.height = '';\n    /** Data being injected into the child component. */\n    this.data = null;\n    /** ID of the element that describes the dialog. */\n    this.ariaDescribedBy = null;\n    /** ID of the element that labels the dialog. */\n    this.ariaLabelledBy = null;\n    /** Dialog label applied via `aria-label` */\n    this.ariaLabel = null;\n    /** Whether this is a modal dialog. Used to set the `aria-modal` attribute. */\n    this.ariaModal = true;\n    /**\n     * Where the dialog should focus on open.\n     * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n     * AutoFocusTarget instead.\n     */\n    this.autoFocus = 'first-tabbable';\n    /**\n     * Whether the dialog should restore focus to the previously-focused element upon closing.\n     * Has the following behavior based on the type that is passed in:\n     * - `boolean` - when true, will return focus to the element that was focused before the dialog\n     *    was opened, otherwise won't restore focus at all.\n     * - `string` - focus will be restored to the first element that matches the CSS selector.\n     * - `HTMLElement` - focus will be restored to the specific element.\n     */\n    this.restoreFocus = true;\n    /**\n     * Whether the dialog should close when the user navigates backwards or forwards through browser\n     * history. This does not apply to navigation via anchor element unless using URL-hash based\n     * routing (`HashLocationStrategy` in the Angular router).\n     */\n    this.closeOnNavigation = true;\n    /**\n     * Whether the dialog should close when the dialog service is destroyed. This is useful if\n     * another service is wrapping the dialog and is managing the destruction instead.\n     */\n    this.closeOnDestroy = true;\n    /**\n     * Whether the dialog should close when the underlying overlay is detached. This is useful if\n     * another service is wrapping the dialog and is managing the destruction instead. E.g. an\n     * external detachment can happen as a result of a scroll strategy triggering it or when the\n     * browser location changes.\n     */\n    this.closeOnOverlayDetachments = true;\n  }\n}\nfunction throwDialogContentAlreadyAttachedError() {\n  throw Error('Attempting to attach dialog content after content is already attached');\n}\n/**\n * Internal component that wraps user-provided dialog content.\n * @docs-private\n */\nlet CdkDialogContainer = /*#__PURE__*/(() => {\n  class CdkDialogContainer extends BasePortalOutlet {\n    constructor(_elementRef, _focusTrapFactory, _document, _config, _interactivityChecker, _ngZone, _overlayRef, _focusMonitor) {\n      super();\n      this._elementRef = _elementRef;\n      this._focusTrapFactory = _focusTrapFactory;\n      this._config = _config;\n      this._interactivityChecker = _interactivityChecker;\n      this._ngZone = _ngZone;\n      this._overlayRef = _overlayRef;\n      this._focusMonitor = _focusMonitor;\n      this._platform = inject(Platform);\n      /** The class that traps and manages focus within the dialog. */\n      this._focusTrap = null;\n      /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n      this._elementFocusedBeforeDialogWasOpened = null;\n      /**\n       * Type of interaction that led to the dialog being closed. This is used to determine\n       * whether the focus style will be applied when returning focus to its original location\n       * after the dialog is closed.\n       */\n      this._closeInteractionType = null;\n      /**\n       * Queue of the IDs of the dialog's label element, based on their definition order. The first\n       * ID will be used as the `aria-labelledby` value. We use a queue here to handle the case\n       * where there are two or more titles in the DOM at a time and the first one is destroyed while\n       * the rest are present.\n       */\n      this._ariaLabelledByQueue = [];\n      this._changeDetectorRef = inject(ChangeDetectorRef);\n      /**\n       * Attaches a DOM portal to the dialog container.\n       * @param portal Portal to be attached.\n       * @deprecated To be turned into a method.\n       * @breaking-change 10.0.0\n       */\n      this.attachDomPortal = portal => {\n        if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n          throwDialogContentAlreadyAttachedError();\n        }\n        const result = this._portalOutlet.attachDomPortal(portal);\n        this._contentAttached();\n        return result;\n      };\n      this._document = _document;\n      if (this._config.ariaLabelledBy) {\n        this._ariaLabelledByQueue.push(this._config.ariaLabelledBy);\n      }\n    }\n    _addAriaLabelledBy(id) {\n      this._ariaLabelledByQueue.push(id);\n      this._changeDetectorRef.markForCheck();\n    }\n    _removeAriaLabelledBy(id) {\n      const index = this._ariaLabelledByQueue.indexOf(id);\n      if (index > -1) {\n        this._ariaLabelledByQueue.splice(index, 1);\n        this._changeDetectorRef.markForCheck();\n      }\n    }\n    _contentAttached() {\n      this._initializeFocusTrap();\n      this._handleBackdropClicks();\n      this._captureInitialFocus();\n    }\n    /**\n     * Can be used by child classes to customize the initial focus\n     * capturing behavior (e.g. if it's tied to an animation).\n     */\n    _captureInitialFocus() {\n      this._trapFocus();\n    }\n    ngOnDestroy() {\n      this._restoreFocus();\n    }\n    /**\n     * Attach a ComponentPortal as content to this dialog container.\n     * @param portal Portal to be attached as the dialog content.\n     */\n    attachComponentPortal(portal) {\n      if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n        throwDialogContentAlreadyAttachedError();\n      }\n      const result = this._portalOutlet.attachComponentPortal(portal);\n      this._contentAttached();\n      return result;\n    }\n    /**\n     * Attach a TemplatePortal as content to this dialog container.\n     * @param portal Portal to be attached as the dialog content.\n     */\n    attachTemplatePortal(portal) {\n      if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n        throwDialogContentAlreadyAttachedError();\n      }\n      const result = this._portalOutlet.attachTemplatePortal(portal);\n      this._contentAttached();\n      return result;\n    }\n    // TODO(crisbeto): this shouldn't be exposed, but there are internal references to it.\n    /** Captures focus if it isn't already inside the dialog. */\n    _recaptureFocus() {\n      if (!this._containsFocus()) {\n        this._trapFocus();\n      }\n    }\n    /**\n     * Focuses the provided element. If the element is not focusable, it will add a tabIndex\n     * attribute to forcefully focus it. The attribute is removed after focus is moved.\n     * @param element The element to focus.\n     */\n    _forceFocus(element, options) {\n      if (!this._interactivityChecker.isFocusable(element)) {\n        element.tabIndex = -1;\n        // The tabindex attribute should be removed to avoid navigating to that element again\n        this._ngZone.runOutsideAngular(() => {\n          const callback = () => {\n            element.removeEventListener('blur', callback);\n            element.removeEventListener('mousedown', callback);\n            element.removeAttribute('tabindex');\n          };\n          element.addEventListener('blur', callback);\n          element.addEventListener('mousedown', callback);\n        });\n      }\n      element.focus(options);\n    }\n    /**\n     * Focuses the first element that matches the given selector within the focus trap.\n     * @param selector The CSS selector for the element to set focus to.\n     */\n    _focusByCssSelector(selector, options) {\n      let elementToFocus = this._elementRef.nativeElement.querySelector(selector);\n      if (elementToFocus) {\n        this._forceFocus(elementToFocus, options);\n      }\n    }\n    /**\n     * Moves the focus inside the focus trap. When autoFocus is not set to 'dialog', if focus\n     * cannot be moved then focus will go to the dialog container.\n     */\n    _trapFocus() {\n      const element = this._elementRef.nativeElement;\n      // If were to attempt to focus immediately, then the content of the dialog would not yet be\n      // ready in instances where change detection has to run first. To deal with this, we simply\n      // wait for the microtask queue to be empty when setting focus when autoFocus isn't set to\n      // dialog. If the element inside the dialog can't be focused, then the container is focused\n      // so the user can't tab into other elements behind it.\n      switch (this._config.autoFocus) {\n        case false:\n        case 'dialog':\n          // Ensure that focus is on the dialog container. It's possible that a different\n          // component tried to move focus while the open animation was running. See:\n          // https://github.com/angular/components/issues/16215. Note that we only want to do this\n          // if the focus isn't inside the dialog already, because it's possible that the consumer\n          // turned off `autoFocus` in order to move focus themselves.\n          if (!this._containsFocus()) {\n            element.focus();\n          }\n          break;\n        case true:\n        case 'first-tabbable':\n          this._focusTrap?.focusInitialElementWhenReady().then(focusedSuccessfully => {\n            // If we weren't able to find a focusable element in the dialog, then focus the dialog\n            // container instead.\n            if (!focusedSuccessfully) {\n              this._focusDialogContainer();\n            }\n          });\n          break;\n        case 'first-heading':\n          this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role=\"heading\"]');\n          break;\n        default:\n          this._focusByCssSelector(this._config.autoFocus);\n          break;\n      }\n    }\n    /** Restores focus to the element that was focused before the dialog opened. */\n    _restoreFocus() {\n      const focusConfig = this._config.restoreFocus;\n      let focusTargetElement = null;\n      if (typeof focusConfig === 'string') {\n        focusTargetElement = this._document.querySelector(focusConfig);\n      } else if (typeof focusConfig === 'boolean') {\n        focusTargetElement = focusConfig ? this._elementFocusedBeforeDialogWasOpened : null;\n      } else if (focusConfig) {\n        focusTargetElement = focusConfig;\n      }\n      // We need the extra check, because IE can set the `activeElement` to null in some cases.\n      if (this._config.restoreFocus && focusTargetElement && typeof focusTargetElement.focus === 'function') {\n        const activeElement = _getFocusedElementPierceShadowDom();\n        const element = this._elementRef.nativeElement;\n        // Make sure that focus is still inside the dialog or is on the body (usually because a\n        // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n        // the consumer moved it themselves before the animation was done, in which case we shouldn't\n        // do anything.\n        if (!activeElement || activeElement === this._document.body || activeElement === element || element.contains(activeElement)) {\n          if (this._focusMonitor) {\n            this._focusMonitor.focusVia(focusTargetElement, this._closeInteractionType);\n            this._closeInteractionType = null;\n          } else {\n            focusTargetElement.focus();\n          }\n        }\n      }\n      if (this._focusTrap) {\n        this._focusTrap.destroy();\n      }\n    }\n    /** Focuses the dialog container. */\n    _focusDialogContainer() {\n      // Note that there is no focus method when rendering on the server.\n      if (this._elementRef.nativeElement.focus) {\n        this._elementRef.nativeElement.focus();\n      }\n    }\n    /** Returns whether focus is inside the dialog. */\n    _containsFocus() {\n      const element = this._elementRef.nativeElement;\n      const activeElement = _getFocusedElementPierceShadowDom();\n      return element === activeElement || element.contains(activeElement);\n    }\n    /** Sets up the focus trap. */\n    _initializeFocusTrap() {\n      if (this._platform.isBrowser) {\n        this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n        // Save the previously focused element. This element will be re-focused\n        // when the dialog closes.\n        if (this._document) {\n          this._elementFocusedBeforeDialogWasOpened = _getFocusedElementPierceShadowDom();\n        }\n      }\n    }\n    /** Sets up the listener that handles clicks on the dialog backdrop. */\n    _handleBackdropClicks() {\n      // Clicking on the backdrop will move focus out of dialog.\n      // Recapture it if closing via the backdrop is disabled.\n      this._overlayRef.backdropClick().subscribe(() => {\n        if (this._config.disableClose) {\n          this._recaptureFocus();\n        }\n      });\n    }\n    static #_ = this.ɵfac = function CdkDialogContainer_Factory(t) {\n      return new (t || CdkDialogContainer)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FocusTrapFactory), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(DialogConfig), i0.ɵɵdirectiveInject(i1.InteractivityChecker), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1$1.OverlayRef), i0.ɵɵdirectiveInject(i1.FocusMonitor));\n    };\n    static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n      type: CdkDialogContainer,\n      selectors: [[\"cdk-dialog-container\"]],\n      viewQuery: function CdkDialogContainer_Query(rf, ctx) {\n        if (rf & 1) {\n          i0.ɵɵviewQuery(CdkPortalOutlet, 7);\n        }\n        if (rf & 2) {\n          let _t;\n          i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._portalOutlet = _t.first);\n        }\n      },\n      hostAttrs: [\"tabindex\", \"-1\", 1, \"cdk-dialog-container\"],\n      hostVars: 6,\n      hostBindings: function CdkDialogContainer_HostBindings(rf, ctx) {\n        if (rf & 2) {\n          i0.ɵɵattribute(\"id\", ctx._config.id || null)(\"role\", ctx._config.role)(\"aria-modal\", ctx._config.ariaModal)(\"aria-labelledby\", ctx._config.ariaLabel ? null : ctx._ariaLabelledByQueue[0])(\"aria-label\", ctx._config.ariaLabel)(\"aria-describedby\", ctx._config.ariaDescribedBy || null);\n        }\n      },\n      standalone: true,\n      features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n      decls: 1,\n      vars: 0,\n      consts: [[\"cdkPortalOutlet\", \"\"]],\n      template: function CdkDialogContainer_Template(rf, ctx) {\n        if (rf & 1) {\n          i0.ɵɵtemplate(0, CdkDialogContainer_ng_template_0_Template, 0, 0, \"ng-template\", 0);\n        }\n      },\n      dependencies: [CdkPortalOutlet],\n      styles: [\".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}\"],\n      encapsulation: 2\n    });\n  }\n  return CdkDialogContainer;\n})();\n/*#__PURE__*/(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nclass DialogRef {\n  constructor(overlayRef, config) {\n    this.overlayRef = overlayRef;\n    this.config = config;\n    /** Emits when the dialog has been closed. */\n    this.closed = new Subject();\n    this.disableClose = config.disableClose;\n    this.backdropClick = overlayRef.backdropClick();\n    this.keydownEvents = overlayRef.keydownEvents();\n    this.outsidePointerEvents = overlayRef.outsidePointerEvents();\n    this.id = config.id; // By the time the dialog is created we are guaranteed to have an ID.\n    this.keydownEvents.subscribe(event => {\n      if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n        event.preventDefault();\n        this.close(undefined, {\n          focusOrigin: 'keyboard'\n        });\n      }\n    });\n    this.backdropClick.subscribe(() => {\n      if (!this.disableClose) {\n        this.close(undefined, {\n          focusOrigin: 'mouse'\n        });\n      }\n    });\n    this._detachSubscription = overlayRef.detachments().subscribe(() => {\n      // Check specifically for `false`, because we want `undefined` to be treated like `true`.\n      if (config.closeOnOverlayDetachments !== false) {\n        this.close();\n      }\n    });\n  }\n  /**\n   * Close the dialog.\n   * @param result Optional result to return to the dialog opener.\n   * @param options Additional options to customize the closing behavior.\n   */\n  close(result, options) {\n    if (this.containerInstance) {\n      const closedSubject = this.closed;\n      this.containerInstance._closeInteractionType = options?.focusOrigin || 'program';\n      // Drop the detach subscription first since it can be triggered by the\n      // `dispose` call and override the result of this closing sequence.\n      this._detachSubscription.unsubscribe();\n      this.overlayRef.dispose();\n      closedSubject.next(result);\n      closedSubject.complete();\n      this.componentInstance = this.containerInstance = null;\n    }\n  }\n  /** Updates the position of the dialog based on the current position strategy. */\n  updatePosition() {\n    this.overlayRef.updatePosition();\n    return this;\n  }\n  /**\n   * Updates the dialog's width and height.\n   * @param width New width of the dialog.\n   * @param height New height of the dialog.\n   */\n  updateSize(width = '', height = '') {\n    this.overlayRef.updateSize({\n      width,\n      height\n    });\n    return this;\n  }\n  /** Add a CSS class or an array of classes to the overlay pane. */\n  addPanelClass(classes) {\n    this.overlayRef.addPanelClass(classes);\n    return this;\n  }\n  /** Remove a CSS class or an array of classes from the overlay pane. */\n  removePanelClass(classes) {\n    this.overlayRef.removePanelClass(classes);\n    return this;\n  }\n}\n\n/** Injection token for the Dialog's ScrollStrategy. */\nconst DIALOG_SCROLL_STRATEGY = /*#__PURE__*/new InjectionToken('DialogScrollStrategy', {\n  providedIn: 'root',\n  factory: () => {\n    const overlay = inject(Overlay);\n    return () => overlay.scrollStrategies.block();\n  }\n});\n/** Injection token for the Dialog's Data. */\nconst DIALOG_DATA = /*#__PURE__*/new InjectionToken('DialogData');\n/** Injection token that can be used to provide default options for the dialog module. */\nconst DEFAULT_DIALOG_CONFIG = /*#__PURE__*/new InjectionToken('DefaultDialogConfig');\n/**\n * @docs-private\n * @deprecated No longer used. To be removed.\n * @breaking-change 19.0.0\n */\nfunction DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n  return () => overlay.scrollStrategies.block();\n}\n/**\n * @docs-private\n * @deprecated No longer used. To be removed.\n * @breaking-change 19.0.0\n */\nconst DIALOG_SCROLL_STRATEGY_PROVIDER = {\n  provide: DIALOG_SCROLL_STRATEGY,\n  deps: [Overlay],\n  useFactory: DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY\n};\n\n/** Unique id for the created dialog. */\nlet uniqueId = 0;\nlet Dialog = /*#__PURE__*/(() => {\n  class Dialog {\n    /** Keeps track of the currently-open dialogs. */\n    get openDialogs() {\n      return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogsAtThisLevel;\n    }\n    /** Stream that emits when a dialog has been opened. */\n    get afterOpened() {\n      return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpenedAtThisLevel;\n    }\n    constructor(_overlay, _injector, _defaultOptions, _parentDialog, _overlayContainer, scrollStrategy) {\n      this._overlay = _overlay;\n      this._injector = _injector;\n      this._defaultOptions = _defaultOptions;\n      this._parentDialog = _parentDialog;\n      this._overlayContainer = _overlayContainer;\n      this._openDialogsAtThisLevel = [];\n      this._afterAllClosedAtThisLevel = new Subject();\n      this._afterOpenedAtThisLevel = new Subject();\n      this._ariaHiddenElements = new Map();\n      /**\n       * Stream that emits when all open dialog have finished closing.\n       * Will emit on subscribe if there are no open dialogs to begin with.\n       */\n      this.afterAllClosed = defer(() => this.openDialogs.length ? this._getAfterAllClosed() : this._getAfterAllClosed().pipe(startWith(undefined)));\n      this._scrollStrategy = scrollStrategy;\n    }\n    open(componentOrTemplateRef, config) {\n      const defaults = this._defaultOptions || new DialogConfig();\n      config = {\n        ...defaults,\n        ...config\n      };\n      config.id = config.id || `cdk-dialog-${uniqueId++}`;\n      if (config.id && this.getDialogById(config.id) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n        throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n      }\n      const overlayConfig = this._getOverlayConfig(config);\n      const overlayRef = this._overlay.create(overlayConfig);\n      const dialogRef = new DialogRef(overlayRef, config);\n      const dialogContainer = this._attachContainer(overlayRef, dialogRef, config);\n      dialogRef.containerInstance = dialogContainer;\n      this._attachDialogContent(componentOrTemplateRef, dialogRef, dialogContainer, config);\n      // If this is the first dialog that we're opening, hide all the non-overlay content.\n      if (!this.openDialogs.length) {\n        this._hideNonDialogContentFromAssistiveTechnology();\n      }\n      this.openDialogs.push(dialogRef);\n      dialogRef.closed.subscribe(() => this._removeOpenDialog(dialogRef, true));\n      this.afterOpened.next(dialogRef);\n      return dialogRef;\n    }\n    /**\n     * Closes all of the currently-open dialogs.\n     */\n    closeAll() {\n      reverseForEach(this.openDialogs, dialog => dialog.close());\n    }\n    /**\n     * Finds an open dialog by its id.\n     * @param id ID to use when looking up the dialog.\n     */\n    getDialogById(id) {\n      return this.openDialogs.find(dialog => dialog.id === id);\n    }\n    ngOnDestroy() {\n      // Make one pass over all the dialogs that need to be untracked, but should not be closed. We\n      // want to stop tracking the open dialog even if it hasn't been closed, because the tracking\n      // determines when `aria-hidden` is removed from elements outside the dialog.\n      reverseForEach(this._openDialogsAtThisLevel, dialog => {\n        // Check for `false` specifically since we want `undefined` to be interpreted as `true`.\n        if (dialog.config.closeOnDestroy === false) {\n          this._removeOpenDialog(dialog, false);\n        }\n      });\n      // Make a second pass and close the remaining dialogs. We do this second pass in order to\n      // correctly dispatch the `afterAllClosed` event in case we have a mixed array of dialogs\n      // that should be closed and dialogs that should not.\n      reverseForEach(this._openDialogsAtThisLevel, dialog => dialog.close());\n      this._afterAllClosedAtThisLevel.complete();\n      this._afterOpenedAtThisLevel.complete();\n      this._openDialogsAtThisLevel = [];\n    }\n    /**\n     * Creates an overlay config from a dialog config.\n     * @param config The dialog configuration.\n     * @returns The overlay configuration.\n     */\n    _getOverlayConfig(config) {\n      const state = new OverlayConfig({\n        positionStrategy: config.positionStrategy || this._overlay.position().global().centerHorizontally().centerVertically(),\n        scrollStrategy: config.scrollStrategy || this._scrollStrategy(),\n        panelClass: config.panelClass,\n        hasBackdrop: config.hasBackdrop,\n        direction: config.direction,\n        minWidth: config.minWidth,\n        minHeight: config.minHeight,\n        maxWidth: config.maxWidth,\n        maxHeight: config.maxHeight,\n        width: config.width,\n        height: config.height,\n        disposeOnNavigation: config.closeOnNavigation\n      });\n      if (config.backdropClass) {\n        state.backdropClass = config.backdropClass;\n      }\n      return state;\n    }\n    /**\n     * Attaches a dialog container to a dialog's already-created overlay.\n     * @param overlay Reference to the dialog's underlying overlay.\n     * @param config The dialog configuration.\n     * @returns A promise resolving to a ComponentRef for the attached container.\n     */\n    _attachContainer(overlay, dialogRef, config) {\n      const userInjector = config.injector || config.viewContainerRef?.injector;\n      const providers = [{\n        provide: DialogConfig,\n        useValue: config\n      }, {\n        provide: DialogRef,\n        useValue: dialogRef\n      }, {\n        provide: OverlayRef,\n        useValue: overlay\n      }];\n      let containerType;\n      if (config.container) {\n        if (typeof config.container === 'function') {\n          containerType = config.container;\n        } else {\n          containerType = config.container.type;\n          providers.push(...config.container.providers(config));\n        }\n      } else {\n        containerType = CdkDialogContainer;\n      }\n      const containerPortal = new ComponentPortal(containerType, config.viewContainerRef, Injector.create({\n        parent: userInjector || this._injector,\n        providers\n      }), config.componentFactoryResolver);\n      const containerRef = overlay.attach(containerPortal);\n      return containerRef.instance;\n    }\n    /**\n     * Attaches the user-provided component to the already-created dialog container.\n     * @param componentOrTemplateRef The type of component being loaded into the dialog,\n     *     or a TemplateRef to instantiate as the content.\n     * @param dialogRef Reference to the dialog being opened.\n     * @param dialogContainer Component that is going to wrap the dialog content.\n     * @param config Configuration used to open the dialog.\n     */\n    _attachDialogContent(componentOrTemplateRef, dialogRef, dialogContainer, config) {\n      if (componentOrTemplateRef instanceof TemplateRef) {\n        const injector = this._createInjector(config, dialogRef, dialogContainer, undefined);\n        let context = {\n          $implicit: config.data,\n          dialogRef\n        };\n        if (config.templateContext) {\n          context = {\n            ...context,\n            ...(typeof config.templateContext === 'function' ? config.templateContext() : config.templateContext)\n          };\n        }\n        dialogContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, null, context, injector));\n      } else {\n        const injector = this._createInjector(config, dialogRef, dialogContainer, this._injector);\n        const contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector, config.componentFactoryResolver));\n        dialogRef.componentRef = contentRef;\n        dialogRef.componentInstance = contentRef.instance;\n      }\n    }\n    /**\n     * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n     * of a dialog to close itself and, optionally, to return a value.\n     * @param config Config object that is used to construct the dialog.\n     * @param dialogRef Reference to the dialog being opened.\n     * @param dialogContainer Component that is going to wrap the dialog content.\n     * @param fallbackInjector Injector to use as a fallback when a lookup fails in the custom\n     * dialog injector, if the user didn't provide a custom one.\n     * @returns The custom injector that can be used inside the dialog.\n     */\n    _createInjector(config, dialogRef, dialogContainer, fallbackInjector) {\n      const userInjector = config.injector || config.viewContainerRef?.injector;\n      const providers = [{\n        provide: DIALOG_DATA,\n        useValue: config.data\n      }, {\n        provide: DialogRef,\n        useValue: dialogRef\n      }];\n      if (config.providers) {\n        if (typeof config.providers === 'function') {\n          providers.push(...config.providers(dialogRef, config, dialogContainer));\n        } else {\n          providers.push(...config.providers);\n        }\n      }\n      if (config.direction && (!userInjector || !userInjector.get(Directionality, null, {\n        optional: true\n      }))) {\n        providers.push({\n          provide: Directionality,\n          useValue: {\n            value: config.direction,\n            change: of()\n          }\n        });\n      }\n      return Injector.create({\n        parent: userInjector || fallbackInjector,\n        providers\n      });\n    }\n    /**\n     * Removes a dialog from the array of open dialogs.\n     * @param dialogRef Dialog to be removed.\n     * @param emitEvent Whether to emit an event if this is the last dialog.\n     */\n    _removeOpenDialog(dialogRef, emitEvent) {\n      const index = this.openDialogs.indexOf(dialogRef);\n      if (index > -1) {\n        this.openDialogs.splice(index, 1);\n        // If all the dialogs were closed, remove/restore the `aria-hidden`\n        // to a the siblings and emit to the `afterAllClosed` stream.\n        if (!this.openDialogs.length) {\n          this._ariaHiddenElements.forEach((previousValue, element) => {\n            if (previousValue) {\n              element.setAttribute('aria-hidden', previousValue);\n            } else {\n              element.removeAttribute('aria-hidden');\n            }\n          });\n          this._ariaHiddenElements.clear();\n          if (emitEvent) {\n            this._getAfterAllClosed().next();\n          }\n        }\n      }\n    }\n    /** Hides all of the content that isn't an overlay from assistive technology. */\n    _hideNonDialogContentFromAssistiveTechnology() {\n      const overlayContainer = this._overlayContainer.getContainerElement();\n      // Ensure that the overlay container is attached to the DOM.\n      if (overlayContainer.parentElement) {\n        const siblings = overlayContainer.parentElement.children;\n        for (let i = siblings.length - 1; i > -1; i--) {\n          const sibling = siblings[i];\n          if (sibling !== overlayContainer && sibling.nodeName !== 'SCRIPT' && sibling.nodeName !== 'STYLE' && !sibling.hasAttribute('aria-live')) {\n            this._ariaHiddenElements.set(sibling, sibling.getAttribute('aria-hidden'));\n            sibling.setAttribute('aria-hidden', 'true');\n          }\n        }\n      }\n    }\n    _getAfterAllClosed() {\n      const parent = this._parentDialog;\n      return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;\n    }\n    static #_ = this.ɵfac = function Dialog_Factory(t) {\n      return new (t || Dialog)(i0.ɵɵinject(i1$1.Overlay), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(DEFAULT_DIALOG_CONFIG, 8), i0.ɵɵinject(Dialog, 12), i0.ɵɵinject(i1$1.OverlayContainer), i0.ɵɵinject(DIALOG_SCROLL_STRATEGY));\n    };\n    static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n      token: Dialog,\n      factory: Dialog.ɵfac,\n      providedIn: 'root'\n    });\n  }\n  return Dialog;\n})();\n/*#__PURE__*/(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Executes a callback against all elements in an array while iterating in reverse.\n * Useful if the array is being modified as it is being iterated.\n */\nfunction reverseForEach(items, callback) {\n  let i = items.length;\n  while (i--) {\n    callback(items[i]);\n  }\n}\nlet DialogModule = /*#__PURE__*/(() => {\n  class DialogModule {\n    static #_ = this.ɵfac = function DialogModule_Factory(t) {\n      return new (t || DialogModule)();\n    };\n    static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n      type: DialogModule\n    });\n    static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n      providers: [Dialog],\n      imports: [OverlayModule, PortalModule, A11yModule,\n      // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n      // don't have to remember to import it or be faced with an unhelpful error.\n      PortalModule]\n    });\n  }\n  return DialogModule;\n})();\n/*#__PURE__*/(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkDialogContainer, DEFAULT_DIALOG_CONFIG, DIALOG_DATA, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, Dialog, DialogConfig, DialogModule, DialogRef, throwDialogContentAlreadyAttachedError };","map":{"version":3,"names":["i1","A11yModule","i1$1","Overlay","OverlayConfig","OverlayRef","OverlayModule","Platform","_getFocusedElementPierceShadowDom","BasePortalOutlet","CdkPortalOutlet","ComponentPortal","TemplatePortal","PortalModule","DOCUMENT","i0","inject","ChangeDetectorRef","Component","ViewEncapsulation","ChangeDetectionStrategy","Optional","Inject","ViewChild","InjectionToken","Injector","TemplateRef","Injectable","SkipSelf","NgModule","ESCAPE","hasModifierKey","Subject","defer","of","Directionality","startWith","CdkDialogContainer_ng_template_0_Template","rf","ctx","DialogConfig","constructor","role","panelClass","hasBackdrop","backdropClass","disableClose","width","height","data","ariaDescribedBy","ariaLabelledBy","ariaLabel","ariaModal","autoFocus","restoreFocus","closeOnNavigation","closeOnDestroy","closeOnOverlayDetachments","throwDialogContentAlreadyAttachedError","Error","CdkDialogContainer","_elementRef","_focusTrapFactory","_document","_config","_interactivityChecker","_ngZone","_overlayRef","_focusMonitor","_platform","_focusTrap","_elementFocusedBeforeDialogWasOpened","_closeInteractionType","_ariaLabelledByQueue","_changeDetectorRef","attachDomPortal","portal","_portalOutlet","hasAttached","ngDevMode","result","_contentAttached","push","_addAriaLabelledBy","id","markForCheck","_removeAriaLabelledBy","index","indexOf","splice","_initializeFocusTrap","_handleBackdropClicks","_captureInitialFocus","_trapFocus","ngOnDestroy","_restoreFocus","attachComponentPortal","attachTemplatePortal","_recaptureFocus","_containsFocus","_forceFocus","element","options","isFocusable","tabIndex","runOutsideAngular","callback","removeEventListener","removeAttribute","addEventListener","focus","_focusByCssSelector","selector","elementToFocus","nativeElement","querySelector","focusInitialElementWhenReady","then","focusedSuccessfully","_focusDialogContainer","focusConfig","focusTargetElement","activeElement","body","contains","focusVia","destroy","isBrowser","create","backdropClick","subscribe","_","ɵfac","CdkDialogContainer_Factory","t","ɵɵdirectiveInject","ElementRef","FocusTrapFactory","InteractivityChecker","NgZone","FocusMonitor","_2","ɵcmp","ɵɵdefineComponent","type","selectors","viewQuery","CdkDialogContainer_Query","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","first","hostAttrs","hostVars","hostBindings","CdkDialogContainer_HostBindings","ɵɵattribute","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","CdkDialogContainer_Template","ɵɵtemplate","dependencies","styles","encapsulation","DialogRef","overlayRef","config","closed","keydownEvents","outsidePointerEvents","event","keyCode","preventDefault","close","undefined","focusOrigin","_detachSubscription","detachments","containerInstance","closedSubject","unsubscribe","dispose","next","complete","componentInstance","updatePosition","updateSize","addPanelClass","classes","removePanelClass","DIALOG_SCROLL_STRATEGY","providedIn","factory","overlay","scrollStrategies","block","DIALOG_DATA","DEFAULT_DIALOG_CONFIG","DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY","DIALOG_SCROLL_STRATEGY_PROVIDER","provide","deps","useFactory","uniqueId","Dialog","openDialogs","_parentDialog","_openDialogsAtThisLevel","afterOpened","_afterOpenedAtThisLevel","_overlay","_injector","_defaultOptions","_overlayContainer","scrollStrategy","_afterAllClosedAtThisLevel","_ariaHiddenElements","Map","afterAllClosed","length","_getAfterAllClosed","pipe","_scrollStrategy","open","componentOrTemplateRef","defaults","getDialogById","overlayConfig","_getOverlayConfig","dialogRef","dialogContainer","_attachContainer","_attachDialogContent","_hideNonDialogContentFromAssistiveTechnology","_removeOpenDialog","closeAll","reverseForEach","dialog","find","state","positionStrategy","position","global","centerHorizontally","centerVertically","direction","minWidth","minHeight","maxWidth","maxHeight","disposeOnNavigation","userInjector","injector","viewContainerRef","providers","useValue","containerType","container","containerPortal","parent","componentFactoryResolver","containerRef","attach","instance","_createInjector","context","$implicit","templateContext","contentRef","componentRef","fallbackInjector","get","optional","value","change","emitEvent","forEach","previousValue","setAttribute","clear","overlayContainer","getContainerElement","parentElement","siblings","children","i","sibling","nodeName","hasAttribute","set","getAttribute","Dialog_Factory","ɵɵinject","OverlayContainer","ɵprov","ɵɵdefineInjectable","token","items","DialogModule","DialogModule_Factory","ɵmod","ɵɵdefineNgModule","_3","ɵinj","ɵɵdefineInjector","imports"],"sources":["/root/rfcontavagas_hom/12.-Servidor-local-Docker/Front-Parking-Angular/node_modules/@angular/cdk/fesm2022/dialog.mjs"],"sourcesContent":["import * as i1 from '@angular/cdk/a11y';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport * as i1$1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayConfig, OverlayRef, OverlayModule } from '@angular/cdk/overlay';\nimport { Platform, _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, ChangeDetectorRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, ViewChild, InjectionToken, Injector, TemplateRef, Injectable, SkipSelf, NgModule } from '@angular/core';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Subject, defer, of } from 'rxjs';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { startWith } from 'rxjs/operators';\n\n/** Configuration for opening a modal dialog. */\nclass DialogConfig {\n    constructor() {\n        /** The ARIA role of the dialog element. */\n        this.role = 'dialog';\n        /** Optional CSS class or classes applied to the overlay panel. */\n        this.panelClass = '';\n        /** Whether the dialog has a backdrop. */\n        this.hasBackdrop = true;\n        /** Optional CSS class or classes applied to the overlay backdrop. */\n        this.backdropClass = '';\n        /** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n        this.disableClose = false;\n        /** Width of the dialog. */\n        this.width = '';\n        /** Height of the dialog. */\n        this.height = '';\n        /** Data being injected into the child component. */\n        this.data = null;\n        /** ID of the element that describes the dialog. */\n        this.ariaDescribedBy = null;\n        /** ID of the element that labels the dialog. */\n        this.ariaLabelledBy = null;\n        /** Dialog label applied via `aria-label` */\n        this.ariaLabel = null;\n        /** Whether this is a modal dialog. Used to set the `aria-modal` attribute. */\n        this.ariaModal = true;\n        /**\n         * Where the dialog should focus on open.\n         * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n         * AutoFocusTarget instead.\n         */\n        this.autoFocus = 'first-tabbable';\n        /**\n         * Whether the dialog should restore focus to the previously-focused element upon closing.\n         * Has the following behavior based on the type that is passed in:\n         * - `boolean` - when true, will return focus to the element that was focused before the dialog\n         *    was opened, otherwise won't restore focus at all.\n         * - `string` - focus will be restored to the first element that matches the CSS selector.\n         * - `HTMLElement` - focus will be restored to the specific element.\n         */\n        this.restoreFocus = true;\n        /**\n         * Whether the dialog should close when the user navigates backwards or forwards through browser\n         * history. This does not apply to navigation via anchor element unless using URL-hash based\n         * routing (`HashLocationStrategy` in the Angular router).\n         */\n        this.closeOnNavigation = true;\n        /**\n         * Whether the dialog should close when the dialog service is destroyed. This is useful if\n         * another service is wrapping the dialog and is managing the destruction instead.\n         */\n        this.closeOnDestroy = true;\n        /**\n         * Whether the dialog should close when the underlying overlay is detached. This is useful if\n         * another service is wrapping the dialog and is managing the destruction instead. E.g. an\n         * external detachment can happen as a result of a scroll strategy triggering it or when the\n         * browser location changes.\n         */\n        this.closeOnOverlayDetachments = true;\n    }\n}\n\nfunction throwDialogContentAlreadyAttachedError() {\n    throw Error('Attempting to attach dialog content after content is already attached');\n}\n/**\n * Internal component that wraps user-provided dialog content.\n * @docs-private\n */\nclass CdkDialogContainer extends BasePortalOutlet {\n    constructor(_elementRef, _focusTrapFactory, _document, _config, _interactivityChecker, _ngZone, _overlayRef, _focusMonitor) {\n        super();\n        this._elementRef = _elementRef;\n        this._focusTrapFactory = _focusTrapFactory;\n        this._config = _config;\n        this._interactivityChecker = _interactivityChecker;\n        this._ngZone = _ngZone;\n        this._overlayRef = _overlayRef;\n        this._focusMonitor = _focusMonitor;\n        this._platform = inject(Platform);\n        /** The class that traps and manages focus within the dialog. */\n        this._focusTrap = null;\n        /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n        this._elementFocusedBeforeDialogWasOpened = null;\n        /**\n         * Type of interaction that led to the dialog being closed. This is used to determine\n         * whether the focus style will be applied when returning focus to its original location\n         * after the dialog is closed.\n         */\n        this._closeInteractionType = null;\n        /**\n         * Queue of the IDs of the dialog's label element, based on their definition order. The first\n         * ID will be used as the `aria-labelledby` value. We use a queue here to handle the case\n         * where there are two or more titles in the DOM at a time and the first one is destroyed while\n         * the rest are present.\n         */\n        this._ariaLabelledByQueue = [];\n        this._changeDetectorRef = inject(ChangeDetectorRef);\n        /**\n         * Attaches a DOM portal to the dialog container.\n         * @param portal Portal to be attached.\n         * @deprecated To be turned into a method.\n         * @breaking-change 10.0.0\n         */\n        this.attachDomPortal = (portal) => {\n            if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n                throwDialogContentAlreadyAttachedError();\n            }\n            const result = this._portalOutlet.attachDomPortal(portal);\n            this._contentAttached();\n            return result;\n        };\n        this._document = _document;\n        if (this._config.ariaLabelledBy) {\n            this._ariaLabelledByQueue.push(this._config.ariaLabelledBy);\n        }\n    }\n    _addAriaLabelledBy(id) {\n        this._ariaLabelledByQueue.push(id);\n        this._changeDetectorRef.markForCheck();\n    }\n    _removeAriaLabelledBy(id) {\n        const index = this._ariaLabelledByQueue.indexOf(id);\n        if (index > -1) {\n            this._ariaLabelledByQueue.splice(index, 1);\n            this._changeDetectorRef.markForCheck();\n        }\n    }\n    _contentAttached() {\n        this._initializeFocusTrap();\n        this._handleBackdropClicks();\n        this._captureInitialFocus();\n    }\n    /**\n     * Can be used by child classes to customize the initial focus\n     * capturing behavior (e.g. if it's tied to an animation).\n     */\n    _captureInitialFocus() {\n        this._trapFocus();\n    }\n    ngOnDestroy() {\n        this._restoreFocus();\n    }\n    /**\n     * Attach a ComponentPortal as content to this dialog container.\n     * @param portal Portal to be attached as the dialog content.\n     */\n    attachComponentPortal(portal) {\n        if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n            throwDialogContentAlreadyAttachedError();\n        }\n        const result = this._portalOutlet.attachComponentPortal(portal);\n        this._contentAttached();\n        return result;\n    }\n    /**\n     * Attach a TemplatePortal as content to this dialog container.\n     * @param portal Portal to be attached as the dialog content.\n     */\n    attachTemplatePortal(portal) {\n        if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n            throwDialogContentAlreadyAttachedError();\n        }\n        const result = this._portalOutlet.attachTemplatePortal(portal);\n        this._contentAttached();\n        return result;\n    }\n    // TODO(crisbeto): this shouldn't be exposed, but there are internal references to it.\n    /** Captures focus if it isn't already inside the dialog. */\n    _recaptureFocus() {\n        if (!this._containsFocus()) {\n            this._trapFocus();\n        }\n    }\n    /**\n     * Focuses the provided element. If the element is not focusable, it will add a tabIndex\n     * attribute to forcefully focus it. The attribute is removed after focus is moved.\n     * @param element The element to focus.\n     */\n    _forceFocus(element, options) {\n        if (!this._interactivityChecker.isFocusable(element)) {\n            element.tabIndex = -1;\n            // The tabindex attribute should be removed to avoid navigating to that element again\n            this._ngZone.runOutsideAngular(() => {\n                const callback = () => {\n                    element.removeEventListener('blur', callback);\n                    element.removeEventListener('mousedown', callback);\n                    element.removeAttribute('tabindex');\n                };\n                element.addEventListener('blur', callback);\n                element.addEventListener('mousedown', callback);\n            });\n        }\n        element.focus(options);\n    }\n    /**\n     * Focuses the first element that matches the given selector within the focus trap.\n     * @param selector The CSS selector for the element to set focus to.\n     */\n    _focusByCssSelector(selector, options) {\n        let elementToFocus = this._elementRef.nativeElement.querySelector(selector);\n        if (elementToFocus) {\n            this._forceFocus(elementToFocus, options);\n        }\n    }\n    /**\n     * Moves the focus inside the focus trap. When autoFocus is not set to 'dialog', if focus\n     * cannot be moved then focus will go to the dialog container.\n     */\n    _trapFocus() {\n        const element = this._elementRef.nativeElement;\n        // If were to attempt to focus immediately, then the content of the dialog would not yet be\n        // ready in instances where change detection has to run first. To deal with this, we simply\n        // wait for the microtask queue to be empty when setting focus when autoFocus isn't set to\n        // dialog. If the element inside the dialog can't be focused, then the container is focused\n        // so the user can't tab into other elements behind it.\n        switch (this._config.autoFocus) {\n            case false:\n            case 'dialog':\n                // Ensure that focus is on the dialog container. It's possible that a different\n                // component tried to move focus while the open animation was running. See:\n                // https://github.com/angular/components/issues/16215. Note that we only want to do this\n                // if the focus isn't inside the dialog already, because it's possible that the consumer\n                // turned off `autoFocus` in order to move focus themselves.\n                if (!this._containsFocus()) {\n                    element.focus();\n                }\n                break;\n            case true:\n            case 'first-tabbable':\n                this._focusTrap?.focusInitialElementWhenReady().then(focusedSuccessfully => {\n                    // If we weren't able to find a focusable element in the dialog, then focus the dialog\n                    // container instead.\n                    if (!focusedSuccessfully) {\n                        this._focusDialogContainer();\n                    }\n                });\n                break;\n            case 'first-heading':\n                this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role=\"heading\"]');\n                break;\n            default:\n                this._focusByCssSelector(this._config.autoFocus);\n                break;\n        }\n    }\n    /** Restores focus to the element that was focused before the dialog opened. */\n    _restoreFocus() {\n        const focusConfig = this._config.restoreFocus;\n        let focusTargetElement = null;\n        if (typeof focusConfig === 'string') {\n            focusTargetElement = this._document.querySelector(focusConfig);\n        }\n        else if (typeof focusConfig === 'boolean') {\n            focusTargetElement = focusConfig ? this._elementFocusedBeforeDialogWasOpened : null;\n        }\n        else if (focusConfig) {\n            focusTargetElement = focusConfig;\n        }\n        // We need the extra check, because IE can set the `activeElement` to null in some cases.\n        if (this._config.restoreFocus &&\n            focusTargetElement &&\n            typeof focusTargetElement.focus === 'function') {\n            const activeElement = _getFocusedElementPierceShadowDom();\n            const element = this._elementRef.nativeElement;\n            // Make sure that focus is still inside the dialog or is on the body (usually because a\n            // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n            // the consumer moved it themselves before the animation was done, in which case we shouldn't\n            // do anything.\n            if (!activeElement ||\n                activeElement === this._document.body ||\n                activeElement === element ||\n                element.contains(activeElement)) {\n                if (this._focusMonitor) {\n                    this._focusMonitor.focusVia(focusTargetElement, this._closeInteractionType);\n                    this._closeInteractionType = null;\n                }\n                else {\n                    focusTargetElement.focus();\n                }\n            }\n        }\n        if (this._focusTrap) {\n            this._focusTrap.destroy();\n        }\n    }\n    /** Focuses the dialog container. */\n    _focusDialogContainer() {\n        // Note that there is no focus method when rendering on the server.\n        if (this._elementRef.nativeElement.focus) {\n            this._elementRef.nativeElement.focus();\n        }\n    }\n    /** Returns whether focus is inside the dialog. */\n    _containsFocus() {\n        const element = this._elementRef.nativeElement;\n        const activeElement = _getFocusedElementPierceShadowDom();\n        return element === activeElement || element.contains(activeElement);\n    }\n    /** Sets up the focus trap. */\n    _initializeFocusTrap() {\n        if (this._platform.isBrowser) {\n            this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n            // Save the previously focused element. This element will be re-focused\n            // when the dialog closes.\n            if (this._document) {\n                this._elementFocusedBeforeDialogWasOpened = _getFocusedElementPierceShadowDom();\n            }\n        }\n    }\n    /** Sets up the listener that handles clicks on the dialog backdrop. */\n    _handleBackdropClicks() {\n        // Clicking on the backdrop will move focus out of dialog.\n        // Recapture it if closing via the backdrop is disabled.\n        this._overlayRef.backdropClick().subscribe(() => {\n            if (this._config.disableClose) {\n                this._recaptureFocus();\n            }\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDialogContainer, deps: [{ token: i0.ElementRef }, { token: i1.FocusTrapFactory }, { token: DOCUMENT, optional: true }, { token: DialogConfig }, { token: i1.InteractivityChecker }, { token: i0.NgZone }, { token: i1$1.OverlayRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkDialogContainer, isStandalone: true, selector: \"cdk-dialog-container\", host: { attributes: { \"tabindex\": \"-1\" }, properties: { \"attr.id\": \"_config.id || null\", \"attr.role\": \"_config.role\", \"attr.aria-modal\": \"_config.ariaModal\", \"attr.aria-labelledby\": \"_config.ariaLabel ? null : _ariaLabelledByQueue[0]\", \"attr.aria-label\": \"_config.ariaLabel\", \"attr.aria-describedby\": \"_config.ariaDescribedBy || null\" }, classAttribute: \"cdk-dialog-container\" }, viewQueries: [{ propertyName: \"_portalOutlet\", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<ng-template cdkPortalOutlet />\\n\", styles: [\".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}\"], dependencies: [{ kind: \"directive\", type: CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: [\"cdkPortalOutlet\"], outputs: [\"attached\"], exportAs: [\"cdkPortalOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDialogContainer, decorators: [{\n            type: Component,\n            args: [{ selector: 'cdk-dialog-container', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, standalone: true, imports: [CdkPortalOutlet], host: {\n                        'class': 'cdk-dialog-container',\n                        'tabindex': '-1',\n                        '[attr.id]': '_config.id || null',\n                        '[attr.role]': '_config.role',\n                        '[attr.aria-modal]': '_config.ariaModal',\n                        '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledByQueue[0]',\n                        '[attr.aria-label]': '_config.ariaLabel',\n                        '[attr.aria-describedby]': '_config.ariaDescribedBy || null',\n                    }, template: \"<ng-template cdkPortalOutlet />\\n\", styles: [\".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}\"] }]\n        }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FocusTrapFactory }, { type: undefined, decorators: [{\n                    type: Optional\n                }, {\n                    type: Inject,\n                    args: [DOCUMENT]\n                }] }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [DialogConfig]\n                }] }, { type: i1.InteractivityChecker }, { type: i0.NgZone }, { type: i1$1.OverlayRef }, { type: i1.FocusMonitor }], propDecorators: { _portalOutlet: [{\n                type: ViewChild,\n                args: [CdkPortalOutlet, { static: true }]\n            }] } });\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nclass DialogRef {\n    constructor(overlayRef, config) {\n        this.overlayRef = overlayRef;\n        this.config = config;\n        /** Emits when the dialog has been closed. */\n        this.closed = new Subject();\n        this.disableClose = config.disableClose;\n        this.backdropClick = overlayRef.backdropClick();\n        this.keydownEvents = overlayRef.keydownEvents();\n        this.outsidePointerEvents = overlayRef.outsidePointerEvents();\n        this.id = config.id; // By the time the dialog is created we are guaranteed to have an ID.\n        this.keydownEvents.subscribe(event => {\n            if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n                event.preventDefault();\n                this.close(undefined, { focusOrigin: 'keyboard' });\n            }\n        });\n        this.backdropClick.subscribe(() => {\n            if (!this.disableClose) {\n                this.close(undefined, { focusOrigin: 'mouse' });\n            }\n        });\n        this._detachSubscription = overlayRef.detachments().subscribe(() => {\n            // Check specifically for `false`, because we want `undefined` to be treated like `true`.\n            if (config.closeOnOverlayDetachments !== false) {\n                this.close();\n            }\n        });\n    }\n    /**\n     * Close the dialog.\n     * @param result Optional result to return to the dialog opener.\n     * @param options Additional options to customize the closing behavior.\n     */\n    close(result, options) {\n        if (this.containerInstance) {\n            const closedSubject = this.closed;\n            this.containerInstance._closeInteractionType = options?.focusOrigin || 'program';\n            // Drop the detach subscription first since it can be triggered by the\n            // `dispose` call and override the result of this closing sequence.\n            this._detachSubscription.unsubscribe();\n            this.overlayRef.dispose();\n            closedSubject.next(result);\n            closedSubject.complete();\n            this.componentInstance = this.containerInstance = null;\n        }\n    }\n    /** Updates the position of the dialog based on the current position strategy. */\n    updatePosition() {\n        this.overlayRef.updatePosition();\n        return this;\n    }\n    /**\n     * Updates the dialog's width and height.\n     * @param width New width of the dialog.\n     * @param height New height of the dialog.\n     */\n    updateSize(width = '', height = '') {\n        this.overlayRef.updateSize({ width, height });\n        return this;\n    }\n    /** Add a CSS class or an array of classes to the overlay pane. */\n    addPanelClass(classes) {\n        this.overlayRef.addPanelClass(classes);\n        return this;\n    }\n    /** Remove a CSS class or an array of classes from the overlay pane. */\n    removePanelClass(classes) {\n        this.overlayRef.removePanelClass(classes);\n        return this;\n    }\n}\n\n/** Injection token for the Dialog's ScrollStrategy. */\nconst DIALOG_SCROLL_STRATEGY = new InjectionToken('DialogScrollStrategy', {\n    providedIn: 'root',\n    factory: () => {\n        const overlay = inject(Overlay);\n        return () => overlay.scrollStrategies.block();\n    },\n});\n/** Injection token for the Dialog's Data. */\nconst DIALOG_DATA = new InjectionToken('DialogData');\n/** Injection token that can be used to provide default options for the dialog module. */\nconst DEFAULT_DIALOG_CONFIG = new InjectionToken('DefaultDialogConfig');\n/**\n * @docs-private\n * @deprecated No longer used. To be removed.\n * @breaking-change 19.0.0\n */\nfunction DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n    return () => overlay.scrollStrategies.block();\n}\n/**\n * @docs-private\n * @deprecated No longer used. To be removed.\n * @breaking-change 19.0.0\n */\nconst DIALOG_SCROLL_STRATEGY_PROVIDER = {\n    provide: DIALOG_SCROLL_STRATEGY,\n    deps: [Overlay],\n    useFactory: DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\n/** Unique id for the created dialog. */\nlet uniqueId = 0;\nclass Dialog {\n    /** Keeps track of the currently-open dialogs. */\n    get openDialogs() {\n        return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogsAtThisLevel;\n    }\n    /** Stream that emits when a dialog has been opened. */\n    get afterOpened() {\n        return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpenedAtThisLevel;\n    }\n    constructor(_overlay, _injector, _defaultOptions, _parentDialog, _overlayContainer, scrollStrategy) {\n        this._overlay = _overlay;\n        this._injector = _injector;\n        this._defaultOptions = _defaultOptions;\n        this._parentDialog = _parentDialog;\n        this._overlayContainer = _overlayContainer;\n        this._openDialogsAtThisLevel = [];\n        this._afterAllClosedAtThisLevel = new Subject();\n        this._afterOpenedAtThisLevel = new Subject();\n        this._ariaHiddenElements = new Map();\n        /**\n         * Stream that emits when all open dialog have finished closing.\n         * Will emit on subscribe if there are no open dialogs to begin with.\n         */\n        this.afterAllClosed = defer(() => this.openDialogs.length\n            ? this._getAfterAllClosed()\n            : this._getAfterAllClosed().pipe(startWith(undefined)));\n        this._scrollStrategy = scrollStrategy;\n    }\n    open(componentOrTemplateRef, config) {\n        const defaults = (this._defaultOptions || new DialogConfig());\n        config = { ...defaults, ...config };\n        config.id = config.id || `cdk-dialog-${uniqueId++}`;\n        if (config.id &&\n            this.getDialogById(config.id) &&\n            (typeof ngDevMode === 'undefined' || ngDevMode)) {\n            throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n        }\n        const overlayConfig = this._getOverlayConfig(config);\n        const overlayRef = this._overlay.create(overlayConfig);\n        const dialogRef = new DialogRef(overlayRef, config);\n        const dialogContainer = this._attachContainer(overlayRef, dialogRef, config);\n        dialogRef.containerInstance = dialogContainer;\n        this._attachDialogContent(componentOrTemplateRef, dialogRef, dialogContainer, config);\n        // If this is the first dialog that we're opening, hide all the non-overlay content.\n        if (!this.openDialogs.length) {\n            this._hideNonDialogContentFromAssistiveTechnology();\n        }\n        this.openDialogs.push(dialogRef);\n        dialogRef.closed.subscribe(() => this._removeOpenDialog(dialogRef, true));\n        this.afterOpened.next(dialogRef);\n        return dialogRef;\n    }\n    /**\n     * Closes all of the currently-open dialogs.\n     */\n    closeAll() {\n        reverseForEach(this.openDialogs, dialog => dialog.close());\n    }\n    /**\n     * Finds an open dialog by its id.\n     * @param id ID to use when looking up the dialog.\n     */\n    getDialogById(id) {\n        return this.openDialogs.find(dialog => dialog.id === id);\n    }\n    ngOnDestroy() {\n        // Make one pass over all the dialogs that need to be untracked, but should not be closed. We\n        // want to stop tracking the open dialog even if it hasn't been closed, because the tracking\n        // determines when `aria-hidden` is removed from elements outside the dialog.\n        reverseForEach(this._openDialogsAtThisLevel, dialog => {\n            // Check for `false` specifically since we want `undefined` to be interpreted as `true`.\n            if (dialog.config.closeOnDestroy === false) {\n                this._removeOpenDialog(dialog, false);\n            }\n        });\n        // Make a second pass and close the remaining dialogs. We do this second pass in order to\n        // correctly dispatch the `afterAllClosed` event in case we have a mixed array of dialogs\n        // that should be closed and dialogs that should not.\n        reverseForEach(this._openDialogsAtThisLevel, dialog => dialog.close());\n        this._afterAllClosedAtThisLevel.complete();\n        this._afterOpenedAtThisLevel.complete();\n        this._openDialogsAtThisLevel = [];\n    }\n    /**\n     * Creates an overlay config from a dialog config.\n     * @param config The dialog configuration.\n     * @returns The overlay configuration.\n     */\n    _getOverlayConfig(config) {\n        const state = new OverlayConfig({\n            positionStrategy: config.positionStrategy ||\n                this._overlay.position().global().centerHorizontally().centerVertically(),\n            scrollStrategy: config.scrollStrategy || this._scrollStrategy(),\n            panelClass: config.panelClass,\n            hasBackdrop: config.hasBackdrop,\n            direction: config.direction,\n            minWidth: config.minWidth,\n            minHeight: config.minHeight,\n            maxWidth: config.maxWidth,\n            maxHeight: config.maxHeight,\n            width: config.width,\n            height: config.height,\n            disposeOnNavigation: config.closeOnNavigation,\n        });\n        if (config.backdropClass) {\n            state.backdropClass = config.backdropClass;\n        }\n        return state;\n    }\n    /**\n     * Attaches a dialog container to a dialog's already-created overlay.\n     * @param overlay Reference to the dialog's underlying overlay.\n     * @param config The dialog configuration.\n     * @returns A promise resolving to a ComponentRef for the attached container.\n     */\n    _attachContainer(overlay, dialogRef, config) {\n        const userInjector = config.injector || config.viewContainerRef?.injector;\n        const providers = [\n            { provide: DialogConfig, useValue: config },\n            { provide: DialogRef, useValue: dialogRef },\n            { provide: OverlayRef, useValue: overlay },\n        ];\n        let containerType;\n        if (config.container) {\n            if (typeof config.container === 'function') {\n                containerType = config.container;\n            }\n            else {\n                containerType = config.container.type;\n                providers.push(...config.container.providers(config));\n            }\n        }\n        else {\n            containerType = CdkDialogContainer;\n        }\n        const containerPortal = new ComponentPortal(containerType, config.viewContainerRef, Injector.create({ parent: userInjector || this._injector, providers }), config.componentFactoryResolver);\n        const containerRef = overlay.attach(containerPortal);\n        return containerRef.instance;\n    }\n    /**\n     * Attaches the user-provided component to the already-created dialog container.\n     * @param componentOrTemplateRef The type of component being loaded into the dialog,\n     *     or a TemplateRef to instantiate as the content.\n     * @param dialogRef Reference to the dialog being opened.\n     * @param dialogContainer Component that is going to wrap the dialog content.\n     * @param config Configuration used to open the dialog.\n     */\n    _attachDialogContent(componentOrTemplateRef, dialogRef, dialogContainer, config) {\n        if (componentOrTemplateRef instanceof TemplateRef) {\n            const injector = this._createInjector(config, dialogRef, dialogContainer, undefined);\n            let context = { $implicit: config.data, dialogRef };\n            if (config.templateContext) {\n                context = {\n                    ...context,\n                    ...(typeof config.templateContext === 'function'\n                        ? config.templateContext()\n                        : config.templateContext),\n                };\n            }\n            dialogContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, null, context, injector));\n        }\n        else {\n            const injector = this._createInjector(config, dialogRef, dialogContainer, this._injector);\n            const contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector, config.componentFactoryResolver));\n            dialogRef.componentRef = contentRef;\n            dialogRef.componentInstance = contentRef.instance;\n        }\n    }\n    /**\n     * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n     * of a dialog to close itself and, optionally, to return a value.\n     * @param config Config object that is used to construct the dialog.\n     * @param dialogRef Reference to the dialog being opened.\n     * @param dialogContainer Component that is going to wrap the dialog content.\n     * @param fallbackInjector Injector to use as a fallback when a lookup fails in the custom\n     * dialog injector, if the user didn't provide a custom one.\n     * @returns The custom injector that can be used inside the dialog.\n     */\n    _createInjector(config, dialogRef, dialogContainer, fallbackInjector) {\n        const userInjector = config.injector || config.viewContainerRef?.injector;\n        const providers = [\n            { provide: DIALOG_DATA, useValue: config.data },\n            { provide: DialogRef, useValue: dialogRef },\n        ];\n        if (config.providers) {\n            if (typeof config.providers === 'function') {\n                providers.push(...config.providers(dialogRef, config, dialogContainer));\n            }\n            else {\n                providers.push(...config.providers);\n            }\n        }\n        if (config.direction &&\n            (!userInjector ||\n                !userInjector.get(Directionality, null, { optional: true }))) {\n            providers.push({\n                provide: Directionality,\n                useValue: { value: config.direction, change: of() },\n            });\n        }\n        return Injector.create({ parent: userInjector || fallbackInjector, providers });\n    }\n    /**\n     * Removes a dialog from the array of open dialogs.\n     * @param dialogRef Dialog to be removed.\n     * @param emitEvent Whether to emit an event if this is the last dialog.\n     */\n    _removeOpenDialog(dialogRef, emitEvent) {\n        const index = this.openDialogs.indexOf(dialogRef);\n        if (index > -1) {\n            this.openDialogs.splice(index, 1);\n            // If all the dialogs were closed, remove/restore the `aria-hidden`\n            // to a the siblings and emit to the `afterAllClosed` stream.\n            if (!this.openDialogs.length) {\n                this._ariaHiddenElements.forEach((previousValue, element) => {\n                    if (previousValue) {\n                        element.setAttribute('aria-hidden', previousValue);\n                    }\n                    else {\n                        element.removeAttribute('aria-hidden');\n                    }\n                });\n                this._ariaHiddenElements.clear();\n                if (emitEvent) {\n                    this._getAfterAllClosed().next();\n                }\n            }\n        }\n    }\n    /** Hides all of the content that isn't an overlay from assistive technology. */\n    _hideNonDialogContentFromAssistiveTechnology() {\n        const overlayContainer = this._overlayContainer.getContainerElement();\n        // Ensure that the overlay container is attached to the DOM.\n        if (overlayContainer.parentElement) {\n            const siblings = overlayContainer.parentElement.children;\n            for (let i = siblings.length - 1; i > -1; i--) {\n                const sibling = siblings[i];\n                if (sibling !== overlayContainer &&\n                    sibling.nodeName !== 'SCRIPT' &&\n                    sibling.nodeName !== 'STYLE' &&\n                    !sibling.hasAttribute('aria-live')) {\n                    this._ariaHiddenElements.set(sibling, sibling.getAttribute('aria-hidden'));\n                    sibling.setAttribute('aria-hidden', 'true');\n                }\n            }\n        }\n    }\n    _getAfterAllClosed() {\n        const parent = this._parentDialog;\n        return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Dialog, deps: [{ token: i1$1.Overlay }, { token: i0.Injector }, { token: DEFAULT_DIALOG_CONFIG, optional: true }, { token: Dialog, optional: true, skipSelf: true }, { token: i1$1.OverlayContainer }, { token: DIALOG_SCROLL_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Dialog, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Dialog, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }], ctorParameters: () => [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: DialogConfig, decorators: [{\n                    type: Optional\n                }, {\n                    type: Inject,\n                    args: [DEFAULT_DIALOG_CONFIG]\n                }] }, { type: Dialog, decorators: [{\n                    type: Optional\n                }, {\n                    type: SkipSelf\n                }] }, { type: i1$1.OverlayContainer }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [DIALOG_SCROLL_STRATEGY]\n                }] }] });\n/**\n * Executes a callback against all elements in an array while iterating in reverse.\n * Useful if the array is being modified as it is being iterated.\n */\nfunction reverseForEach(items, callback) {\n    let i = items.length;\n    while (i--) {\n        callback(items[i]);\n    }\n}\n\nclass DialogModule {\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.2.0\", ngImport: i0, type: DialogModule, imports: [OverlayModule, PortalModule, A11yModule, CdkDialogContainer], exports: [\n            // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n            // don't have to remember to import it or be faced with an unhelpful error.\n            PortalModule,\n            CdkDialogContainer] }); }\n    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DialogModule, providers: [Dialog], imports: [OverlayModule, PortalModule, A11yModule, \n            // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n            // don't have to remember to import it or be faced with an unhelpful error.\n            PortalModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DialogModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [OverlayModule, PortalModule, A11yModule, CdkDialogContainer],\n                    exports: [\n                        // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n                        // don't have to remember to import it or be faced with an unhelpful error.\n                        PortalModule,\n                        CdkDialogContainer,\n                    ],\n                    providers: [Dialog],\n                }]\n        }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkDialogContainer, DEFAULT_DIALOG_CONFIG, DIALOG_DATA, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, Dialog, DialogConfig, DialogModule, DialogRef, throwDialogContentAlreadyAttachedError };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}