{"version":3,"sources":["node_modules/@angular/material/fesm2022/dialog.mjs"],"sourcesContent":["import * as i1$1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport * as i2 from '@angular/common';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { EventEmitter, ANIMATION_MODULE_TYPE, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, InjectionToken, inject, Injectable, SkipSelf, Directive, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport { CdkDialogContainer, Dialog, DialogConfig, DialogModule } from '@angular/cdk/dialog';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';\nimport { Subject, merge, defer } from 'rxjs';\nimport { filter, take, startWith } from 'rxjs/operators';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport * as i3 from '@angular/cdk/scrolling';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { MatCommonModule } from '@angular/material/core';\nimport { trigger, state, style, transition, group, animate, query, animateChild } from '@angular/animations';\n\n/**\n * Configuration for opening a modal dialog with the MatDialog service.\n */\nfunction MatDialogContainer_ng_template_2_Template(rf, ctx) {}\nclass MatDialogConfig {\n constructor() {\n /** The ARIA role of the dialog element. */\n this.role = 'dialog';\n /** Custom class for the overlay pane. */\n this.panelClass = '';\n /** Whether the dialog has a backdrop. */\n this.hasBackdrop = true;\n /** Custom class for the backdrop. */\n this.backdropClass = '';\n /** Whether the user can use escape or clicking on the backdrop to close the modal. */\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 /** Aria label to assign to the dialog element. */\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\n * previously-focused element, after it's closed.\n */\n this.restoreFocus = true;\n /** Whether to wait for the opening animation to finish before trapping focus. */\n this.delayFocusTrap = true;\n /**\n * Whether the dialog should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n this.closeOnNavigation = true;\n // TODO(jelbourn): add configuration for lifecycle hooks, ARIA labelling.\n }\n}\n\n/** Class added when the dialog is open. */\nconst OPEN_CLASS = 'mdc-dialog--open';\n/** Class added while the dialog is opening. */\nconst OPENING_CLASS = 'mdc-dialog--opening';\n/** Class added while the dialog is closing. */\nconst CLOSING_CLASS = 'mdc-dialog--closing';\n/** Duration of the opening animation in milliseconds. */\nconst OPEN_ANIMATION_DURATION = 150;\n/** Duration of the closing animation in milliseconds. */\nconst CLOSE_ANIMATION_DURATION = 75;\nlet MatDialogContainer = /*#__PURE__*/(() => {\n class MatDialogContainer extends CdkDialogContainer {\n constructor(elementRef, focusTrapFactory, _document, dialogConfig, interactivityChecker, ngZone, overlayRef, _animationMode, focusMonitor) {\n super(elementRef, focusTrapFactory, _document, dialogConfig, interactivityChecker, ngZone, overlayRef, focusMonitor);\n this._animationMode = _animationMode;\n /** Emits when an animation state changes. */\n this._animationStateChanged = new EventEmitter();\n /** Whether animations are enabled. */\n this._animationsEnabled = this._animationMode !== 'NoopAnimations';\n /** Number of actions projected in the dialog. */\n this._actionSectionCount = 0;\n /** Host element of the dialog container component. */\n this._hostElement = this._elementRef.nativeElement;\n /** Duration of the dialog open animation. */\n this._enterAnimationDuration = this._animationsEnabled ? parseCssTime(this._config.enterAnimationDuration) ?? OPEN_ANIMATION_DURATION : 0;\n /** Duration of the dialog close animation. */\n this._exitAnimationDuration = this._animationsEnabled ? parseCssTime(this._config.exitAnimationDuration) ?? CLOSE_ANIMATION_DURATION : 0;\n /** Current timer for dialog animations. */\n this._animationTimer = null;\n /**\n * Completes the dialog open by clearing potential animation classes, trapping\n * focus and emitting an opened event.\n */\n this._finishDialogOpen = () => {\n this._clearAnimationClasses();\n this._openAnimationDone(this._enterAnimationDuration);\n };\n /**\n * Completes the dialog close by clearing potential animation classes, restoring\n * focus and emitting a closed event.\n */\n this._finishDialogClose = () => {\n this._clearAnimationClasses();\n this._animationStateChanged.emit({\n state: 'closed',\n totalTime: this._exitAnimationDuration\n });\n };\n }\n _contentAttached() {\n // Delegate to the original dialog-container initialization (i.e. saving the\n // previous element, setting up the focus trap and moving focus to the container).\n super._contentAttached();\n // Note: Usually we would be able to use the MDC dialog foundation here to handle\n // the dialog animation for us, but there are a few reasons why we just leverage\n // their styles and not use the runtime foundation code:\n // 1. Foundation does not allow us to disable animations.\n // 2. Foundation contains unnecessary features we don't need and aren't\n // tree-shakeable. e.g. background scrim, keyboard event handlers for ESC button.\n this._startOpenAnimation();\n }\n /** Starts the dialog open animation if enabled. */\n _startOpenAnimation() {\n this._animationStateChanged.emit({\n state: 'opening',\n totalTime: this._enterAnimationDuration\n });\n if (this._animationsEnabled) {\n this._hostElement.style.setProperty(TRANSITION_DURATION_PROPERTY, `${this._enterAnimationDuration}ms`);\n // We need to give the `setProperty` call from above some time to be applied.\n // One would expect that the open class is added once the animation finished, but MDC\n // uses the open class in combination with the opening class to start the animation.\n this._requestAnimationFrame(() => this._hostElement.classList.add(OPENING_CLASS, OPEN_CLASS));\n this._waitForAnimationToComplete(this._enterAnimationDuration, this._finishDialogOpen);\n } else {\n this._hostElement.classList.add(OPEN_CLASS);\n // Note: We could immediately finish the dialog opening here with noop animations,\n // but we defer until next tick so that consumers can subscribe to `afterOpened`.\n // Executing this immediately would mean that `afterOpened` emits synchronously\n // on `dialog.open` before the consumer had a change to subscribe to `afterOpened`.\n Promise.resolve().then(() => this._finishDialogOpen());\n }\n }\n /**\n * Starts the exit animation of the dialog if enabled. This method is\n * called by the dialog ref.\n */\n _startExitAnimation() {\n this._animationStateChanged.emit({\n state: 'closing',\n totalTime: this._exitAnimationDuration\n });\n this._hostElement.classList.remove(OPEN_CLASS);\n if (this._animationsEnabled) {\n this._hostElement.style.setProperty(TRANSITION_DURATION_PROPERTY, `${this._exitAnimationDuration}ms`);\n // We need to give the `setProperty` call from above some time to be applied.\n this._requestAnimationFrame(() => this._hostElement.classList.add(CLOSING_CLASS));\n this._waitForAnimationToComplete(this._exitAnimationDuration, this._finishDialogClose);\n } else {\n // This subscription to the `OverlayRef#backdropClick` observable in the `DialogRef` is\n // set up before any user can subscribe to the backdrop click. The subscription triggers\n // the dialog close and this method synchronously. If we'd synchronously emit the `CLOSED`\n // animation state event if animations are disabled, the overlay would be disposed\n // immediately and all other subscriptions to `DialogRef#backdropClick` would be silently\n // skipped. We work around this by waiting with the dialog close until the next tick when\n // all subscriptions have been fired as expected. This is not an ideal solution, but\n // there doesn't seem to be any other good way. Alternatives that have been considered:\n // 1. Deferring `DialogRef.close`. This could be a breaking change due to a new microtask.\n // Also this issue is specific to the MDC implementation where the dialog could\n // technically be closed synchronously. In the non-MDC one, Angular animations are used\n // and closing always takes at least a tick.\n // 2. Ensuring that user subscriptions to `backdropClick`, `keydownEvents` in the dialog\n // ref are first. This would solve the issue, but has the risk of memory leaks and also\n // doesn't solve the case where consumers call `DialogRef.close` in their subscriptions.\n // Based on the fact that this is specific to the MDC-based implementation of the dialog\n // animations, the defer is applied here.\n Promise.resolve().then(() => this._finishDialogClose());\n }\n }\n /**\n * Updates the number action sections.\n * @param delta Increase/decrease in the number of sections.\n */\n _updateActionSectionCount(delta) {\n this._actionSectionCount += delta;\n this._changeDetectorRef.markForCheck();\n }\n /** Clears all dialog animation classes. */\n _clearAnimationClasses() {\n this._hostElement.classList.remove(OPENING_CLASS, CLOSING_CLASS);\n }\n _waitForAnimationToComplete(duration, callback) {\n if (this._animationTimer !== null) {\n clearTimeout(this._animationTimer);\n }\n // Note that we want this timer to run inside the NgZone, because we want\n // the related events like `afterClosed` to be inside the zone as well.\n this._animationTimer = setTimeout(callback, duration);\n }\n /** Runs a callback in `requestAnimationFrame`, if available. */\n _requestAnimationFrame(callback) {\n this._ngZone.runOutsideAngular(() => {\n if (typeof requestAnimationFrame === 'function') {\n requestAnimationFrame(callback);\n } else {\n callback();\n }\n });\n }\n _captureInitialFocus() {\n if (!this._config.delayFocusTrap) {\n this._trapFocus();\n }\n }\n /**\n * Callback for when the open dialog animation has finished. Intended to\n * be called by sub-classes that use different animation implementations.\n */\n _openAnimationDone(totalTime) {\n if (this._config.delayFocusTrap) {\n this._trapFocus();\n }\n this._animationStateChanged.next({\n state: 'opened',\n totalTime\n });\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this._animationTimer !== null) {\n clearTimeout(this._animationTimer);\n }\n }\n attachComponentPortal(portal) {\n // When a component is passed into the dialog, the host element interrupts\n // the `display:flex` from affecting the dialog title, content, and\n // actions. To fix this, we make the component host `display: contents` by\n // marking its host with the `mat-mdc-dialog-component-host` class.\n //\n // Note that this problem does not exist when a template ref is used since\n // the title, contents, and actions are then nested directly under the\n // dialog surface.\n const ref = super.attachComponentPortal(portal);\n ref.location.nativeElement.classList.add('mat-mdc-dialog-component-host');\n return ref;\n }\n static {\n this.ɵfac = function MatDialogContainer_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDialogContainer)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FocusTrapFactory), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(MatDialogConfig), i0.ɵɵdirectiveInject(i1.InteractivityChecker), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1$1.OverlayRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(i1.FocusMonitor));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDialogContainer,\n selectors: [[\"mat-dialog-container\"]],\n hostAttrs: [\"tabindex\", \"-1\", 1, \"mat-mdc-dialog-container\", \"mdc-dialog\"],\n hostVars: 10,\n hostBindings: function MatDialogContainer_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx._config.id);\n i0.ɵɵattribute(\"aria-modal\", ctx._config.ariaModal)(\"role\", ctx._config.role)(\"aria-labelledby\", ctx._config.ariaLabel ? null : ctx._ariaLabelledByQueue[0])(\"aria-label\", ctx._config.ariaLabel)(\"aria-describedby\", ctx._config.ariaDescribedBy || null);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", !ctx._animationsEnabled)(\"mat-mdc-dialog-container-with-actions\", ctx._actionSectionCount > 0);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 0,\n consts: [[1, \"mat-mdc-dialog-inner-container\", \"mdc-dialog__container\"], [1, \"mat-mdc-dialog-surface\", \"mdc-dialog__surface\"], [\"cdkPortalOutlet\", \"\"]],\n template: function MatDialogContainer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n i0.ɵɵtemplate(2, MatDialogContainer_ng_template_2_Template, 0, 0, \"ng-template\", 2);\n i0.ɵɵelementEnd()();\n }\n },\n dependencies: [CdkPortalOutlet],\n styles: [\".mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 80vw);min-width:var(--mat-dialog-container-min-width, 0)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, 80vw)}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12));border-radius:var(--mdc-dialog-container-shape, var(--mat-app-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-app-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 0 24px 9px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:\\\"\\\";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-app-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-app-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-app-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-app-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-app-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-app-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-app-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-app-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-app-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-app-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-app-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-app-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 8px);justify-content:var(--mat-dialog-actions-alignment, start)}.cdk-high-contrast-active .mat-mdc-dialog-actions{border-top-color:CanvasText}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents}\"],\n encapsulation: 2\n });\n }\n }\n return MatDialogContainer;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst TRANSITION_DURATION_PROPERTY = '--mat-dialog-transition-duration';\n// TODO(mmalerba): Remove this function after animation durations are required\n// to be numbers.\n/**\n * Converts a CSS time string to a number in ms. If the given time is already a\n * number, it is assumed to be in ms.\n */\nfunction parseCssTime(time) {\n if (time == null) {\n return null;\n }\n if (typeof time === 'number') {\n return time;\n }\n if (time.endsWith('ms')) {\n return coerceNumberProperty(time.substring(0, time.length - 2));\n }\n if (time.endsWith('s')) {\n return coerceNumberProperty(time.substring(0, time.length - 1)) * 1000;\n }\n if (time === '0') {\n return 0;\n }\n return null; // anything else is invalid.\n}\nvar MatDialogState = /*#__PURE__*/function (MatDialogState) {\n MatDialogState[MatDialogState[\"OPEN\"] = 0] = \"OPEN\";\n MatDialogState[MatDialogState[\"CLOSING\"] = 1] = \"CLOSING\";\n MatDialogState[MatDialogState[\"CLOSED\"] = 2] = \"CLOSED\";\n return MatDialogState;\n}(MatDialogState || {});\n/**\n * Reference to a dialog opened via the MatDialog service.\n */\nclass MatDialogRef {\n constructor(_ref, config, _containerInstance) {\n this._ref = _ref;\n this._containerInstance = _containerInstance;\n /** Subject for notifying the user that the dialog has finished opening. */\n this._afterOpened = new Subject();\n /** Subject for notifying the user that the dialog has started closing. */\n this._beforeClosed = new Subject();\n /** Current state of the dialog. */\n this._state = MatDialogState.OPEN;\n this.disableClose = config.disableClose;\n this.id = _ref.id;\n // Used to target panels specifically tied to dialogs.\n _ref.addPanelClass('mat-mdc-dialog-panel');\n // Emit when opening animation completes\n _containerInstance._animationStateChanged.pipe(filter(event => event.state === 'opened'), take(1)).subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n // Dispose overlay when closing animation is complete\n _containerInstance._animationStateChanged.pipe(filter(event => event.state === 'closed'), take(1)).subscribe(() => {\n clearTimeout(this._closeFallbackTimeout);\n this._finishDialogClose();\n });\n _ref.overlayRef.detachments().subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._finishDialogClose();\n });\n merge(this.backdropClick(), this.keydownEvents().pipe(filter(event => event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)))).subscribe(event => {\n if (!this.disableClose) {\n event.preventDefault();\n _closeDialogVia(this, event.type === 'keydown' ? 'keyboard' : 'mouse');\n }\n });\n }\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n close(dialogResult) {\n this._result = dialogResult;\n // Transition the backdrop in parallel to the dialog.\n this._containerInstance._animationStateChanged.pipe(filter(event => event.state === 'closing'), take(1)).subscribe(event => {\n this._beforeClosed.next(dialogResult);\n this._beforeClosed.complete();\n this._ref.overlayRef.detachBackdrop();\n // The logic that disposes of the overlay depends on the exit animation completing, however\n // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback\n // timeout which will clean everything up if the animation hasn't fired within the specified\n // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the\n // vast majority of cases the timeout will have been cleared before it has the chance to fire.\n this._closeFallbackTimeout = setTimeout(() => this._finishDialogClose(), event.totalTime + 100);\n });\n this._state = MatDialogState.CLOSING;\n this._containerInstance._startExitAnimation();\n }\n /**\n * Gets an observable that is notified when the dialog is finished opening.\n */\n afterOpened() {\n return this._afterOpened;\n }\n /**\n * Gets an observable that is notified when the dialog is finished closing.\n */\n afterClosed() {\n return this._ref.closed;\n }\n /**\n * Gets an observable that is notified when the dialog has started closing.\n */\n beforeClosed() {\n return this._beforeClosed;\n }\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick() {\n return this._ref.backdropClick;\n }\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents() {\n return this._ref.keydownEvents;\n }\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position) {\n let strategy = this._ref.config.positionStrategy;\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n this._ref.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._ref.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._ref.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._ref.removePanelClass(classes);\n return this;\n }\n /** Gets the current state of the dialog's lifecycle. */\n getState() {\n return this._state;\n }\n /**\n * Finishes the dialog close by updating the state of the dialog\n * and disposing the overlay.\n */\n _finishDialogClose() {\n this._state = MatDialogState.CLOSED;\n this._ref.close(this._result, {\n focusOrigin: this._closeInteractionType\n });\n this.componentInstance = null;\n }\n}\n/**\n * Closes the dialog with the specified interaction type. This is currently not part of\n * `MatDialogRef` as that would conflict with custom dialog ref mocks provided in tests.\n * More details. See: https://github.com/angular/components/pull/9257#issuecomment-651342226.\n */\n// TODO: Move this back into `MatDialogRef` when we provide an official mock dialog ref.\nfunction _closeDialogVia(ref, interactionType, result) {\n ref._closeInteractionType = interactionType;\n return ref.close(result);\n}\n\n/** Injection token that can be used to access the data that was passed in to a dialog. */\nconst MAT_DIALOG_DATA = /*#__PURE__*/new InjectionToken('MatMdcDialogData');\n/** Injection token that can be used to specify default dialog options. */\nconst MAT_DIALOG_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-mdc-dialog-default-options');\n/** Injection token that determines the scroll handling while the dialog is open. */\nconst MAT_DIALOG_SCROLL_STRATEGY = /*#__PURE__*/new InjectionToken('mat-mdc-dialog-scroll-strategy', {\n providedIn: 'root',\n factory: () => {\n const overlay = inject(Overlay);\n return () => overlay.scrollStrategies.block();\n }\n});\n/**\n * @docs-private\n * @deprecated No longer used. To be removed.\n * @breaking-change 19.0.0\n */\nfunction MAT_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 MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_DIALOG_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY\n};\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n/**\n * Service to open Material Design modal dialogs.\n */\nlet MatDialog = /*#__PURE__*/(() => {\n class MatDialog {\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 _getAfterAllClosed() {\n const parent = this._parentDialog;\n return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;\n }\n constructor(_overlay, injector,\n /**\n * @deprecated `_location` parameter to be removed.\n * @breaking-change 10.0.0\n */\n location, _defaultOptions, _scrollStrategy, _parentDialog,\n /**\n * @deprecated No longer used. To be removed.\n * @breaking-change 15.0.0\n */\n _overlayContainer,\n /**\n * @deprecated No longer used. To be removed.\n * @breaking-change 14.0.0\n */\n _animationMode) {\n this._overlay = _overlay;\n this._defaultOptions = _defaultOptions;\n this._scrollStrategy = _scrollStrategy;\n this._parentDialog = _parentDialog;\n this._openDialogsAtThisLevel = [];\n this._afterAllClosedAtThisLevel = new Subject();\n this._afterOpenedAtThisLevel = new Subject();\n this.dialogConfigClass = MatDialogConfig;\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._dialog = injector.get(Dialog);\n this._dialogRefConstructor = MatDialogRef;\n this._dialogContainerType = MatDialogContainer;\n this._dialogDataToken = MAT_DIALOG_DATA;\n }\n open(componentOrTemplateRef, config) {\n let dialogRef;\n config = {\n ...(this._defaultOptions || new MatDialogConfig()),\n ...config\n };\n config.id = config.id || `mat-mdc-dialog-${uniqueId++}`;\n config.scrollStrategy = config.scrollStrategy || this._scrollStrategy();\n const cdkRef = this._dialog.open(componentOrTemplateRef, {\n ...config,\n positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),\n // Disable closing since we need to sync it up to the animation ourselves.\n disableClose: true,\n // Disable closing on destroy, because this service cleans up its open dialogs as well.\n // We want to do the cleanup here, rather than the CDK service, because the CDK destroys\n // the dialogs immediately whereas we want it to wait for the animations to finish.\n closeOnDestroy: false,\n // Disable closing on detachments so that we can sync up the animation.\n // The Material dialog ref handles this manually.\n closeOnOverlayDetachments: false,\n container: {\n type: this._dialogContainerType,\n providers: () => [\n // Provide our config as the CDK config as well since it has the same interface as the\n // CDK one, but it contains the actual values passed in by the user for things like\n // `disableClose` which we disable for the CDK dialog since we handle it ourselves.\n {\n provide: this.dialogConfigClass,\n useValue: config\n }, {\n provide: DialogConfig,\n useValue: config\n }]\n },\n templateContext: () => ({\n dialogRef\n }),\n providers: (ref, cdkConfig, dialogContainer) => {\n dialogRef = new this._dialogRefConstructor(ref, config, dialogContainer);\n dialogRef.updatePosition(config?.position);\n return [{\n provide: this._dialogContainerType,\n useValue: dialogContainer\n }, {\n provide: this._dialogDataToken,\n useValue: cdkConfig.data\n }, {\n provide: this._dialogRefConstructor,\n useValue: dialogRef\n }];\n }\n });\n // This can't be assigned in the `providers` callback, because\n // the instance hasn't been assigned to the CDK ref yet.\n dialogRef.componentRef = cdkRef.componentRef;\n dialogRef.componentInstance = cdkRef.componentInstance;\n this.openDialogs.push(dialogRef);\n this.afterOpened.next(dialogRef);\n dialogRef.afterClosed().subscribe(() => {\n const index = this.openDialogs.indexOf(dialogRef);\n if (index > -1) {\n this.openDialogs.splice(index, 1);\n if (!this.openDialogs.length) {\n this._getAfterAllClosed().next();\n }\n }\n });\n return dialogRef;\n }\n /**\n * Closes all of the currently-open dialogs.\n */\n closeAll() {\n this._closeDialogs(this.openDialogs);\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 // Only close the dialogs at this level on destroy\n // since the parent service may still be active.\n this._closeDialogs(this._openDialogsAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n }\n _closeDialogs(dialogs) {\n let i = dialogs.length;\n while (i--) {\n dialogs[i].close();\n }\n }\n static {\n this.ɵfac = function MatDialog_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDialog)(i0.ɵɵinject(i1$1.Overlay), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i2.Location, 8), i0.ɵɵinject(MAT_DIALOG_DEFAULT_OPTIONS, 8), i0.ɵɵinject(MAT_DIALOG_SCROLL_STRATEGY), i0.ɵɵinject(MatDialog, 12), i0.ɵɵinject(i1$1.OverlayContainer), i0.ɵɵinject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatDialog,\n factory: MatDialog.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return MatDialog;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Counter used to generate unique IDs for dialog elements. */\nlet dialogElementUid = 0;\n/**\n * Button that will close the current dialog.\n */\nlet MatDialogClose = /*#__PURE__*/(() => {\n class MatDialogClose {\n constructor(\n // The dialog title directive is always used in combination with a `MatDialogRef`.\n // tslint:disable-next-line: lightweight-tokens\n dialogRef, _elementRef, _dialog) {\n this.dialogRef = dialogRef;\n this._elementRef = _elementRef;\n this._dialog = _dialog;\n /** Default to \"button\" to prevents accidental form submits. */\n this.type = 'button';\n }\n ngOnInit() {\n if (!this.dialogRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.dialogRef = getClosestDialog(this._elementRef, this._dialog.openDialogs);\n }\n }\n ngOnChanges(changes) {\n const proxiedChange = changes['_matDialogClose'] || changes['_matDialogCloseResult'];\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\n _onButtonClick(event) {\n // Determinate the focus origin using the click event, because using the FocusMonitor will\n // result in incorrect origins. Most of the time, close buttons will be auto focused in the\n // dialog, and therefore clicking the button won't result in a focus change. This means that\n // the FocusMonitor won't detect any origin change, and will always output `program`.\n _closeDialogVia(this.dialogRef, event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse', this.dialogResult);\n }\n static {\n this.ɵfac = function MatDialogClose_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDialogClose)(i0.ɵɵdirectiveInject(MatDialogRef, 8), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MatDialog));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDialogClose,\n selectors: [[\"\", \"mat-dialog-close\", \"\"], [\"\", \"matDialogClose\", \"\"]],\n hostVars: 2,\n hostBindings: function MatDialogClose_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatDialogClose_click_HostBindingHandler($event) {\n return ctx._onButtonClick($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel || null)(\"type\", ctx.type);\n }\n },\n inputs: {\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n type: \"type\",\n dialogResult: [0, \"mat-dialog-close\", \"dialogResult\"],\n _matDialogClose: [0, \"matDialogClose\", \"_matDialogClose\"]\n },\n exportAs: [\"matDialogClose\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return MatDialogClose;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatDialogLayoutSection = /*#__PURE__*/(() => {\n class MatDialogLayoutSection {\n constructor(\n // The dialog title directive is always used in combination with a `MatDialogRef`.\n // tslint:disable-next-line: lightweight-tokens\n _dialogRef, _elementRef, _dialog) {\n this._dialogRef = _dialogRef;\n this._elementRef = _elementRef;\n this._dialog = _dialog;\n }\n ngOnInit() {\n if (!this._dialogRef) {\n this._dialogRef = getClosestDialog(this._elementRef, this._dialog.openDialogs);\n }\n if (this._dialogRef) {\n Promise.resolve().then(() => {\n this._onAdd();\n });\n }\n }\n ngOnDestroy() {\n // Note: we null check because there are some internal\n // tests that are mocking out `MatDialogRef` incorrectly.\n const instance = this._dialogRef?._containerInstance;\n if (instance) {\n Promise.resolve().then(() => {\n this._onRemove();\n });\n }\n }\n static {\n this.ɵfac = function MatDialogLayoutSection_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDialogLayoutSection)(i0.ɵɵdirectiveInject(MatDialogRef, 8), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MatDialog));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDialogLayoutSection,\n standalone: true\n });\n }\n }\n return MatDialogLayoutSection;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Title of a dialog element. Stays fixed to the top of the dialog when scrolling.\n */\nlet MatDialogTitle = /*#__PURE__*/(() => {\n class MatDialogTitle extends MatDialogLayoutSection {\n constructor() {\n super(...arguments);\n this.id = `mat-mdc-dialog-title-${dialogElementUid++}`;\n }\n _onAdd() {\n // Note: we null check the queue, because there are some internal\n // tests that are mocking out `MatDialogRef` incorrectly.\n this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id);\n }\n _onRemove() {\n this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatDialogTitle_BaseFactory;\n return function MatDialogTitle_Factory(__ngFactoryType__) {\n return (ɵMatDialogTitle_BaseFactory || (ɵMatDialogTitle_BaseFactory = i0.ɵɵgetInheritedFactory(MatDialogTitle)))(__ngFactoryType__ || MatDialogTitle);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDialogTitle,\n selectors: [[\"\", \"mat-dialog-title\", \"\"], [\"\", \"matDialogTitle\", \"\"]],\n hostAttrs: [1, \"mat-mdc-dialog-title\", \"mdc-dialog__title\"],\n hostVars: 1,\n hostBindings: function MatDialogTitle_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\"\n },\n exportAs: [\"matDialogTitle\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatDialogTitle;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Scrollable content container of a dialog.\n */\nlet MatDialogContent = /*#__PURE__*/(() => {\n class MatDialogContent {\n static {\n this.ɵfac = function MatDialogContent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDialogContent)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDialogContent,\n selectors: [[\"\", \"mat-dialog-content\", \"\"], [\"mat-dialog-content\"], [\"\", \"matDialogContent\", \"\"]],\n hostAttrs: [1, \"mat-mdc-dialog-content\", \"mdc-dialog__content\"],\n standalone: true,\n features: [i0.ɵɵHostDirectivesFeature([i3.CdkScrollable])]\n });\n }\n }\n return MatDialogContent;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\nlet MatDialogActions = /*#__PURE__*/(() => {\n class MatDialogActions extends MatDialogLayoutSection {\n _onAdd() {\n this._dialogRef._containerInstance?._updateActionSectionCount?.(1);\n }\n _onRemove() {\n this._dialogRef._containerInstance?._updateActionSectionCount?.(-1);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatDialogActions_BaseFactory;\n return function MatDialogActions_Factory(__ngFactoryType__) {\n return (ɵMatDialogActions_BaseFactory || (ɵMatDialogActions_BaseFactory = i0.ɵɵgetInheritedFactory(MatDialogActions)))(__ngFactoryType__ || MatDialogActions);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatDialogActions,\n selectors: [[\"\", \"mat-dialog-actions\", \"\"], [\"mat-dialog-actions\"], [\"\", \"matDialogActions\", \"\"]],\n hostAttrs: [1, \"mat-mdc-dialog-actions\", \"mdc-dialog__actions\"],\n hostVars: 6,\n hostBindings: function MatDialogActions_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-dialog-actions-align-start\", ctx.align === \"start\")(\"mat-mdc-dialog-actions-align-center\", ctx.align === \"center\")(\"mat-mdc-dialog-actions-align-end\", ctx.align === \"end\");\n }\n },\n inputs: {\n align: \"align\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatDialogActions;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Finds the closest MatDialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nfunction getClosestDialog(element, openDialogs) {\n let parent = element.nativeElement.parentElement;\n while (parent && !parent.classList.contains('mat-mdc-dialog-container')) {\n parent = parent.parentElement;\n }\n return parent ? openDialogs.find(dialog => dialog.id === parent.id) : null;\n}\nconst DIRECTIVES = [MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogActions, MatDialogContent];\nlet MatDialogModule = /*#__PURE__*/(() => {\n class MatDialogModule {\n static {\n this.ɵfac = function MatDialogModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatDialogModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatDialogModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MatDialog],\n imports: [DialogModule, OverlayModule, PortalModule, MatCommonModule, MatCommonModule]\n });\n }\n }\n return MatDialogModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Default parameters for the animation for backwards compatibility.\n * @docs-private\n */\nconst _defaultParams = {\n params: {\n enterAnimationDuration: '150ms',\n exitAnimationDuration: '75ms'\n }\n};\n/**\n * Animations used by MatDialog.\n * @docs-private\n */\nconst matDialogAnimations = {\n /** Animation that is applied on the dialog container by default. */\n dialogContainer: /*#__PURE__*/trigger('dialogContainer', [\n /*#__PURE__*/\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues.\n state('void, exit', /*#__PURE__*/style({\n opacity: 0,\n transform: 'scale(0.7)'\n })), /*#__PURE__*/state('enter', /*#__PURE__*/style({\n transform: 'none'\n })), /*#__PURE__*/transition('* => enter', /*#__PURE__*/group([/*#__PURE__*/animate('{{enterAnimationDuration}} cubic-bezier(0, 0, 0.2, 1)', /*#__PURE__*/style({\n transform: 'none',\n opacity: 1\n })), /*#__PURE__*/query('@*', /*#__PURE__*/animateChild(), {\n optional: true\n })]), _defaultParams), /*#__PURE__*/transition('* => void, * => exit', /*#__PURE__*/group([/*#__PURE__*/animate('{{exitAnimationDuration}} cubic-bezier(0.4, 0.0, 0.2, 1)', /*#__PURE__*/style({\n opacity: 0\n })), /*#__PURE__*/query('@*', /*#__PURE__*/animateChild(), {\n optional: true\n })]), _defaultParams)])\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_DIALOG_DATA, MAT_DIALOG_DEFAULT_OPTIONS, MAT_DIALOG_SCROLL_STRATEGY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, MatDialog, MatDialogActions, MatDialogClose, MatDialogConfig, MatDialogContainer, MatDialogContent, MatDialogModule, MatDialogRef, MatDialogState, MatDialogTitle, _closeDialogVia, _defaultParams, matDialogAnimations };\n"],"mappings":"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","names":["MatDialogContainer_ng_template_2_Template","rf","ctx","MatDialogConfig","OPEN_CLASS","OPENING_CLASS","CLOSING_CLASS","OPEN_ANIMATION_DURATION","CLOSE_ANIMATION_DURATION","MatDialogContainer","_MatDialogContainer","CdkDialogContainer","elementRef","focusTrapFactory","_document","dialogConfig","interactivityChecker","ngZone","overlayRef","_animationMode","focusMonitor","_a","_b","EventEmitter","parseCssTime","TRANSITION_DURATION_PROPERTY","delta","duration","callback","totalTime","portal","ref","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","FocusTrapFactory","DOCUMENT","InteractivityChecker","NgZone","OverlayRef","ANIMATION_MODULE_TYPE","FocusMonitor","ɵɵdefineComponent","ɵɵhostProperty","ɵɵattribute","ɵɵclassProp","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","ɵɵelementStart","ɵɵtemplate","ɵɵelementEnd","CdkPortalOutlet","time","coerceNumberProperty","MatDialogState","MatDialogRef","_ref","config","_containerInstance","Subject","filter","event","take","merge","hasModifierKey","_closeDialogVia","dialogResult","position","strategy","width","height","classes","interactionType","result","MAT_DIALOG_DATA","InjectionToken","MAT_DIALOG_DEFAULT_OPTIONS","MAT_DIALOG_SCROLL_STRATEGY","overlay","inject","Overlay","uniqueId","MatDialog","_MatDialog","parent","_overlay","injector","location","_defaultOptions","_scrollStrategy","_parentDialog","_overlayContainer","_animationMode","Subject","MatDialogConfig","defer","startWith","Dialog","MatDialogRef","MatDialogContainer","MAT_DIALOG_DATA","componentOrTemplateRef","config","dialogRef","__spreadValues","cdkRef","__spreadProps","DialogConfig","ref","cdkConfig","dialogContainer","index","id","dialog","dialogs","__ngFactoryType__","ɵɵinject","Overlay","Injector","Location","MAT_DIALOG_DEFAULT_OPTIONS","MAT_DIALOG_SCROLL_STRATEGY","OverlayContainer","ANIMATION_MODULE_TYPE","ɵɵdefineInjectable","dialogElementUid","MatDialogClose","_MatDialogClose","_elementRef","_dialog","getClosestDialog","changes","proxiedChange","event","_closeDialogVia","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","rf","ctx","ɵɵlistener","$event","ɵɵattribute","ɵɵNgOnChangesFeature","MatDialogLayoutSection","_MatDialogLayoutSection","_dialogRef","_a","MatDialogTitle","_MatDialogTitle","_b","_c","ɵMatDialogTitle_BaseFactory","ɵɵgetInheritedFactory","ɵɵhostProperty","ɵɵInheritDefinitionFeature","MatDialogContent","_MatDialogContent","ɵɵHostDirectivesFeature","CdkScrollable","MatDialogActions","_MatDialogActions","ɵMatDialogActions_BaseFactory","ɵɵclassProp","element","openDialogs","MatDialogModule","_MatDialogModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","MatDialog","DialogModule","OverlayModule","PortalModule","MatCommonModule"],"x_google_ignoreList":[0]}