mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
1 line
153 KiB
JSON
1 line
153 KiB
JSON
{"ast":null,"code":"import { Overlay, OverlayConfig, OverlayContainer, OverlayModule } from '@angular/cdk/overlay';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { EventEmitter, Directive, ElementRef, ChangeDetectorRef, Optional, Inject, ViewChild, Component, ViewEncapsulation, ChangeDetectionStrategy, InjectionToken, Injector, TemplateRef, Type, Injectable, SkipSelf, Input, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { DOCUMENT, Location } from '@angular/common';\nimport { Subject, defer, of } from 'rxjs';\nimport { filter, take, startWith } from 'rxjs/operators';\nimport { FocusTrapFactory, FocusMonitor } from '@angular/cdk/a11y';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Configuration for opening a modal dialog with the MatDialog service.\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/a11y';\nimport * as ɵngcc2 from '@angular/cdk/portal';\nimport * as ɵngcc3 from '@angular/cdk/overlay';\nimport * as ɵngcc4 from '@angular/common';\nfunction MatDialogContainer_ng_template_0_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 /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n this.maxWidth = '80vw';\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 the dialog should focus the first focusable element on open. */\n this.autoFocus = true;\n /**\n * Whether the dialog should restore focus to the\n * previously-focused element, after it's closed.\n */\n this.restoreFocus = 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/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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: trigger('dialogContainer', [\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', style({\n opacity: 0,\n transform: 'scale(0.7)'\n })), state('enter', style({\n transform: 'none'\n })), transition('* => enter', animate('150ms cubic-bezier(0, 0, 0.2, 1)', style({\n transform: 'none',\n opacity: 1\n }))), transition('* => void, * => exit', animate('75ms cubic-bezier(0.4, 0.0, 0.2, 1)', style({\n opacity: 0\n })))])\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Throws an exception for the case when a ComponentPortal is\n * attached to a DomPortalOutlet without an origin.\n * @docs-private\n */\nfunction throwMatDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached');\n}\n/**\n * Base class for the `MatDialogContainer`. The base class does not implement\n * animations as these are left to implementers of the dialog container.\n */\nclass _MatDialogContainerBase extends BasePortalOutlet {\n constructor(_elementRef, _focusTrapFactory, _changeDetectorRef, _document, /** The dialog configuration. */\n _config, _focusMonitor) {\n super();\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n this._changeDetectorRef = _changeDetectorRef;\n this._config = _config;\n this._focusMonitor = _focusMonitor;\n /** Emits when an animation state changes. */\n this._animationStateChanged = new EventEmitter();\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 * 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 throwMatDialogContentAlreadyAttachedError();\n }\n return this._portalOutlet.attachDomPortal(portal);\n };\n this._ariaLabelledBy = _config.ariaLabelledBy || null;\n this._document = _document;\n }\n /** Initializes the dialog container with the attached content. */\n _initializeWithAttachedContent() {\n this._setupFocusTrap();\n // Save the previously focused element. This element will be re-focused\n // when the dialog closes.\n this._capturePreviouslyFocusedElement();\n // Move focus onto the dialog immediately in order to prevent the user\n // from accidentally opening multiple dialogs at the same time.\n this._focusDialogContainer();\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 throwMatDialogContentAlreadyAttachedError();\n }\n return this._portalOutlet.attachComponentPortal(portal);\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 throwMatDialogContentAlreadyAttachedError();\n }\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n /** Moves focus back into the dialog if it was moved out. */\n _recaptureFocus() {\n if (!this._containsFocus()) {\n const focusContainer = !this._config.autoFocus || !this._focusTrap.focusInitialElement();\n if (focusContainer) {\n this._elementRef.nativeElement.focus();\n }\n }\n }\n /** Moves the focus inside the focus trap. */\n _trapFocus() {\n // If we 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.\n if (this._config.autoFocus) {\n this._focusTrap.focusInitialElementWhenReady();\n } else if (!this._containsFocus()) {\n // Otherwise 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 this._elementRef.nativeElement.focus();\n }\n }\n /** Restores focus to the element that was focused before the dialog opened. */\n _restoreFocus() {\n const previousElement = this._elementFocusedBeforeDialogWasOpened;\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this._config.restoreFocus && previousElement && typeof previousElement.focus === 'function') {\n const activeElement = this._getActiveElement();\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(previousElement, this._closeInteractionType);\n this._closeInteractionType = null;\n } else {\n previousElement.focus();\n }\n }\n }\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n /** Sets up the focus trap. */\n _setupFocusTrap() {\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n }\n /** Captures the element that was focused before the dialog was opened. */\n _capturePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = this._getActiveElement();\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 = this._getActiveElement();\n return element === activeElement || element.contains(activeElement);\n }\n /** Gets the currently-focused element on the page. */\n _getActiveElement() {\n var _a;\n // If the `activeElement` is inside a shadow root, `document.activeElement` will\n // point to the shadow root so we have to descend into it ourselves.\n const activeElement = this._document.activeElement;\n return ((_a = activeElement === null || activeElement === void 0 ? void 0 : activeElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) || activeElement;\n }\n}\n_MatDialogContainerBase.ɵfac = function _MatDialogContainerBase_Factory(t) {\n return new (t || _MatDialogContainerBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.FocusTrapFactory), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT, 8), ɵngcc0.ɵɵdirectiveInject(MatDialogConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.FocusMonitor));\n};\n_MatDialogContainerBase.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: _MatDialogContainerBase,\n viewQuery: function _MatDialogContainerBase_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(CdkPortalOutlet, 7);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._portalOutlet = _t.first);\n }\n },\n features: [ɵngcc0.ɵɵInheritDefinitionFeature]\n});\n_MatDialogContainerBase.ctorParameters = () => [{\n type: ElementRef\n}, {\n type: FocusTrapFactory\n}, {\n type: ChangeDetectorRef\n}, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n}, {\n type: MatDialogConfig\n}, {\n type: FocusMonitor\n}];\n_MatDialogContainerBase.propDecorators = {\n _portalOutlet: [{\n type: ViewChild,\n args: [CdkPortalOutlet, {\n static: true\n }]\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(_MatDialogContainerBase, [{\n type: Directive\n }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc1.FocusTrapFactory\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: MatDialogConfig\n }, {\n type: ɵngcc1.FocusMonitor\n }];\n }, {\n _portalOutlet: [{\n type: ViewChild,\n args: [CdkPortalOutlet, {\n static: true\n }]\n }]\n });\n})();\n/**\n * Internal component that wraps user-provided dialog content.\n * Animation is based on https://material.io/guidelines/motion/choreography.html.\n * @docs-private\n */\nclass MatDialogContainer extends _MatDialogContainerBase {\n constructor() {\n super(...arguments);\n /** State of the dialog animation. */\n this._state = 'enter';\n }\n /** Callback, invoked whenever an animation on the host completes. */\n _onAnimationDone({\n toState,\n totalTime\n }) {\n if (toState === 'enter') {\n this._trapFocus();\n this._animationStateChanged.next({\n state: 'opened',\n totalTime\n });\n } else if (toState === 'exit') {\n this._restoreFocus();\n this._animationStateChanged.next({\n state: 'closed',\n totalTime\n });\n }\n }\n /** Callback, invoked when an animation on the host starts. */\n _onAnimationStart({\n toState,\n totalTime\n }) {\n if (toState === 'enter') {\n this._animationStateChanged.next({\n state: 'opening',\n totalTime\n });\n } else if (toState === 'exit' || toState === 'void') {\n this._animationStateChanged.next({\n state: 'closing',\n totalTime\n });\n }\n }\n /** Starts the dialog exit animation. */\n _startExitAnimation() {\n this._state = 'exit';\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck();\n }\n}\nMatDialogContainer.ɵfac = /*@__PURE__*/function () {\n let ɵMatDialogContainer_BaseFactory;\n return function MatDialogContainer_Factory(t) {\n return (ɵMatDialogContainer_BaseFactory || (ɵMatDialogContainer_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MatDialogContainer)))(t || MatDialogContainer);\n };\n}();\nMatDialogContainer.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: MatDialogContainer,\n selectors: [[\"mat-dialog-container\"]],\n hostAttrs: [\"tabindex\", \"-1\", \"aria-modal\", \"true\", 1, \"mat-dialog-container\"],\n hostVars: 6,\n hostBindings: function MatDialogContainer_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵsyntheticHostListener(\"@dialogContainer.start\", function MatDialogContainer_animation_dialogContainer_start_HostBindingHandler($event) {\n return ctx._onAnimationStart($event);\n })(\"@dialogContainer.done\", function MatDialogContainer_animation_dialogContainer_done_HostBindingHandler($event) {\n return ctx._onAnimationDone($event);\n });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx._id);\n ɵngcc0.ɵɵattribute(\"role\", ctx._config.role)(\"aria-labelledby\", ctx._config.ariaLabel ? null : ctx._ariaLabelledBy)(\"aria-label\", ctx._config.ariaLabel)(\"aria-describedby\", ctx._config.ariaDescribedBy || null);\n ɵngcc0.ɵɵsyntheticHostProperty(\"@dialogContainer\", ctx._state);\n }\n },\n features: [ɵngcc0.ɵɵInheritDefinitionFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkPortalOutlet\", \"\"]],\n template: function MatDialogContainer_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MatDialogContainer_ng_template_0_Template, 0, 0, \"ng-template\", 0);\n }\n },\n dependencies: [ɵngcc2.CdkPortalOutlet],\n styles: [\".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\\n\"],\n encapsulation: 2,\n data: {\n animation: [matDialogAnimations.dialogContainer]\n }\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogContainer, [{\n type: Component,\n args: [{\n selector: 'mat-dialog-container',\n template: \"<ng-template cdkPortalOutlet></ng-template>\\n\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [matDialogAnimations.dialogContainer],\n host: {\n 'class': 'mat-dialog-container',\n 'tabindex': '-1',\n 'aria-modal': 'true',\n '[id]': '_id',\n '[attr.role]': '_config.role',\n '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config.ariaLabel',\n '[attr.aria-describedby]': '_config.ariaDescribedBy || null',\n '[@dialogContainer]': '_state',\n '(@dialogContainer.start)': '_onAnimationStart($event)',\n '(@dialogContainer.done)': '_onAnimationDone($event)'\n },\n styles: [\".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\\n\"]\n }]\n }], null, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// TODO(jelbourn): resizing\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n/**\n * Reference to a dialog opened via the MatDialog service.\n */\nclass MatDialogRef {\n constructor(_overlayRef, _containerInstance, id = `mat-dialog-${uniqueId++}`) {\n this._overlayRef = _overlayRef;\n this._containerInstance = _containerInstance;\n this.id = id;\n /** Whether the user is allowed to close the dialog. */\n this.disableClose = this._containerInstance._config.disableClose;\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 finished closing. */\n this._afterClosed = 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 = 0 /* OPEN */;\n // Pass the id along to the container.\n _containerInstance._id = id;\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 _overlayRef.detachments().subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.componentInstance = null;\n this._overlayRef.dispose();\n });\n _overlayRef.keydownEvents().pipe(filter(event => {\n return event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event);\n })).subscribe(event => {\n event.preventDefault();\n _closeDialogVia(this, 'keyboard');\n });\n _overlayRef.backdropClick().subscribe(() => {\n if (this.disableClose) {\n this._containerInstance._recaptureFocus();\n } else {\n _closeDialogVia(this, '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._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 = 1 /* 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._afterClosed;\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._overlayRef.backdropClick();\n }\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents() {\n return this._overlayRef.keydownEvents();\n }\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position) {\n let strategy = this._getPositionStrategy();\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._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 this._overlayRef.updatePosition();\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 /** 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 = 2 /* CLOSED */;\n this._overlayRef.dispose();\n }\n /** Fetches the position strategy object from the overlay ref. */\n _getPositionStrategy() {\n return this._overlayRef.getConfig().positionStrategy;\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: TODO: Move this back into `MatDialogRef` when we provide an official mock dialog ref.\nfunction _closeDialogVia(ref, interactionType, result) {\n // Some mock dialog ref instances in tests do not have the `_containerInstance` property.\n // For those, we keep the behavior as is and do not deal with the interaction type.\n if (ref._containerInstance !== undefined) {\n ref._containerInstance._closeInteractionType = interactionType;\n }\n return ref.close(result);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Injection token that can be used to access the data that was passed in to a dialog. */\nconst MAT_DIALOG_DATA = new InjectionToken('MatDialogData');\n/** Injection token that can be used to specify default dialog options. */\nconst MAT_DIALOG_DEFAULT_OPTIONS = new InjectionToken('mat-dialog-default-options');\n/** Injection token that determines the scroll handling while the dialog is open. */\nconst MAT_DIALOG_SCROLL_STRATEGY = new InjectionToken('mat-dialog-scroll-strategy');\n/** @docs-private */\nfunction MAT_DIALOG_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.block();\n}\n/** @docs-private */\nfunction MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.block();\n}\n/** @docs-private */\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/**\n * Base class for dialog services. The base dialog service allows\n * for arbitrary dialog refs and dialog container components.\n */\nclass _MatDialogBase {\n constructor(_overlay, _injector, _defaultOptions, _parentDialog, _overlayContainer, scrollStrategy, _dialogRefConstructor, _dialogContainerType, _dialogDataToken) {\n this._overlay = _overlay;\n this._injector = _injector;\n this._defaultOptions = _defaultOptions;\n this._parentDialog = _parentDialog;\n this._overlayContainer = _overlayContainer;\n this._dialogRefConstructor = _dialogRefConstructor;\n this._dialogContainerType = _dialogContainerType;\n this._dialogDataToken = _dialogDataToken;\n this._openDialogsAtThisLevel = [];\n this._afterAllClosedAtThisLevel = new Subject();\n this._afterOpenedAtThisLevel = new Subject();\n this._ariaHiddenElements = new Map();\n // TODO (jelbourn): tighten the typing right-hand side of this expression.\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 /** 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 open(componentOrTemplateRef, config) {\n config = _applyConfigDefaults(config, this._defaultOptions || new MatDialogConfig());\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 overlayRef = this._createOverlay(config);\n const dialogContainer = this._attachDialogContainer(overlayRef, config);\n const dialogRef = this._attachDialogContent(componentOrTemplateRef, dialogContainer, overlayRef, 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.afterClosed().subscribe(() => this._removeOpenDialog(dialogRef));\n this.afterOpened.next(dialogRef);\n // Notify the dialog container that the content has been attached.\n dialogContainer._initializeWithAttachedContent();\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 /**\n * Creates the overlay into which the dialog will be loaded.\n * @param config The dialog configuration.\n * @returns A promise resolving to the OverlayRef for the created overlay.\n */\n _createOverlay(config) {\n const overlayConfig = this._getOverlayConfig(config);\n return this._overlay.create(overlayConfig);\n }\n /**\n * Creates an overlay config from a dialog config.\n * @param dialogConfig The dialog configuration.\n * @returns The overlay configuration.\n */\n _getOverlayConfig(dialogConfig) {\n const state = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: dialogConfig.scrollStrategy || this._scrollStrategy(),\n panelClass: dialogConfig.panelClass,\n hasBackdrop: dialogConfig.hasBackdrop,\n direction: dialogConfig.direction,\n minWidth: dialogConfig.minWidth,\n minHeight: dialogConfig.minHeight,\n maxWidth: dialogConfig.maxWidth,\n maxHeight: dialogConfig.maxHeight,\n disposeOnNavigation: dialogConfig.closeOnNavigation\n });\n if (dialogConfig.backdropClass) {\n state.backdropClass = dialogConfig.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 _attachDialogContainer(overlay, config) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{\n provide: MatDialogConfig,\n useValue: config\n }]\n });\n const containerPortal = new ComponentPortal(this._dialogContainerType, config.viewContainerRef, injector, 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 dialogContainer Reference to the wrapping dialog container.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n _attachDialogContent(componentOrTemplateRef, dialogContainer, overlayRef, config) {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = new this._dialogRefConstructor(overlayRef, dialogContainer, config.id);\n if (componentOrTemplateRef instanceof TemplateRef) {\n dialogContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, null, {\n $implicit: config.data,\n dialogRef\n }));\n } else {\n const injector = this._createInjector(config, dialogRef, dialogContainer);\n const contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector));\n dialogRef.componentInstance = contentRef.instance;\n }\n dialogRef.updateSize(config.width, config.height).updatePosition(config.position);\n return dialogRef;\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.\n * @param dialogContainer Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n _createInjector(config, dialogRef, dialogContainer) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n // The dialog container should be provided as the dialog container and the dialog's\n // content are created out of the same `ViewContainerRef` and as such, are siblings\n // for injector purposes. To allow the hierarchy that is expected, the dialog\n // container is explicitly provided in the injector.\n const providers = [{\n provide: this._dialogContainerType,\n useValue: dialogContainer\n }, {\n provide: this._dialogDataToken,\n useValue: config.data\n }, {\n provide: this._dialogRefConstructor,\n useValue: dialogRef\n }];\n if (config.direction && (!userInjector || !userInjector.get(Directionality, null))) {\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 || this._injector,\n providers\n });\n }\n /**\n * Removes a dialog from the array of open dialogs.\n * @param dialogRef Dialog to be removed.\n */\n _removeOpenDialog(dialogRef) {\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 this._getAfterAllClosed().next();\n }\n }\n }\n /**\n * Hides all of the content that isn't an overlay from assistive technology.\n */\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 let 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 /** Closes all of the dialogs in an array. */\n _closeDialogs(dialogs) {\n let i = dialogs.length;\n while (i--) {\n // The `_openDialogs` property isn't updated after close until the rxjs subscription\n // runs on the next microtask, in addition to modifying the array as we're going\n // through it. We loop through all of them and call close without assuming that\n // they'll be removed from the list instantaneously.\n dialogs[i].close();\n }\n }\n}\n_MatDialogBase.ɵfac = function _MatDialogBase_Factory(t) {\n return new (t || _MatDialogBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.Overlay), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(undefined), ɵngcc0.ɵɵdirectiveInject(undefined), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.OverlayContainer), ɵngcc0.ɵɵdirectiveInject(undefined), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Type), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Type), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.InjectionToken));\n};\n_MatDialogBase.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: _MatDialogBase\n});\n_MatDialogBase.ctorParameters = () => [{\n type: Overlay\n}, {\n type: Injector\n}, {\n type: undefined\n}, {\n type: undefined\n}, {\n type: OverlayContainer\n}, {\n type: undefined\n}, {\n type: Type\n}, {\n type: Type\n}, {\n type: InjectionToken\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(_MatDialogBase, [{\n type: Directive\n }], function () {\n return [{\n type: ɵngcc3.Overlay\n }, {\n type: ɵngcc0.Injector\n }, {\n type: undefined\n }, {\n type: undefined\n }, {\n type: ɵngcc3.OverlayContainer\n }, {\n type: undefined\n }, {\n type: ɵngcc0.Type\n }, {\n type: ɵngcc0.Type\n }, {\n type: ɵngcc0.InjectionToken\n }];\n }, null);\n})();\n/**\n * Service to open Material Design modal dialogs.\n */\nclass MatDialog extends _MatDialogBase {\n constructor(overlay, injector,\n /**\n * @deprecated `_location` parameter to be removed.\n * @breaking-change 10.0.0\n */\n location, defaultOptions, scrollStrategy, parentDialog, overlayContainer) {\n super(overlay, injector, defaultOptions, parentDialog, overlayContainer, scrollStrategy, MatDialogRef, MatDialogContainer, MAT_DIALOG_DATA);\n }\n}\nMatDialog.ɵfac = function MatDialog_Factory(t) {\n return new (t || MatDialog)(ɵngcc0.ɵɵinject(ɵngcc3.Overlay), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(ɵngcc4.Location, 8), ɵngcc0.ɵɵinject(MAT_DIALOG_DEFAULT_OPTIONS, 8), ɵngcc0.ɵɵinject(MAT_DIALOG_SCROLL_STRATEGY), ɵngcc0.ɵɵinject(MatDialog, 12), ɵngcc0.ɵɵinject(ɵngcc3.OverlayContainer));\n};\nMatDialog.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: MatDialog,\n factory: MatDialog.ɵfac\n});\nMatDialog.ctorParameters = () => [{\n type: Overlay\n}, {\n type: Injector\n}, {\n type: Location,\n decorators: [{\n type: Optional\n }]\n}, {\n type: MatDialogConfig,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_DIALOG_DEFAULT_OPTIONS]\n }]\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_DIALOG_SCROLL_STRATEGY]\n }]\n}, {\n type: MatDialog,\n decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }]\n}, {\n type: OverlayContainer\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialog, [{\n type: Injectable\n }], function () {\n return [{\n type: ɵngcc3.Overlay\n }, {\n type: ɵngcc0.Injector\n }, {\n type: ɵngcc4.Location,\n decorators: [{\n type: Optional\n }]\n }, {\n type: MatDialogConfig,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_DIALOG_DEFAULT_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_DIALOG_SCROLL_STRATEGY]\n }]\n }, {\n type: MatDialog,\n decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }]\n }, {\n type: ɵngcc3.OverlayContainer\n }];\n }, null);\n})();\n/**\n * Applies default options to the dialog config.\n * @param config Config to be modified.\n * @param defaultOptions Default options provided.\n * @returns The new configuration object.\n */\nfunction _applyConfigDefaults(config, defaultOptions) {\n return Object.assign(Object.assign({}, defaultOptions), config);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Counter used to generate unique IDs for dialog elements. */\nlet dialogElementUid = 0;\n/**\n * Button that will close the current dialog.\n */\nclass 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}\nMatDialogClose.ɵfac = function MatDialogClose_Factory(t) {\n return new (t || MatDialogClose)(ɵngcc0.ɵɵdirectiveInject(MatDialogRef, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(MatDialog));\n};\nMatDialogClose.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵ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 ɵngcc0.ɵɵlistener(\"click\", function MatDialogClose_click_HostBindingHandler($event) {\n return ctx._onButtonClick($event);\n });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.ariaLabel || null)(\"type\", ctx.type);\n }\n },\n inputs: {\n type: \"type\",\n dialogResult: [\"mat-dialog-close\", \"dialogResult\"],\n ariaLabel: [\"aria-label\", \"ariaLabel\"],\n _matDialogClose: [\"matDialogClose\", \"_matDialogClose\"]\n },\n exportAs: [\"matDialogClose\"],\n features: [ɵngcc0.ɵɵNgOnChangesFeature]\n});\nMatDialogClose.ctorParameters = () => [{\n type: MatDialogRef,\n decorators: [{\n type: Optional\n }]\n}, {\n type: ElementRef\n}, {\n type: MatDialog\n}];\nMatDialogClose.propDecorators = {\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n type: [{\n type: Input\n }],\n dialogResult: [{\n type: Input,\n args: ['mat-dialog-close']\n }],\n _matDialogClose: [{\n type: Input,\n args: ['matDialogClose']\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogClose, [{\n type: Directive,\n args: [{\n selector: '[mat-dialog-close], [matDialogClose]',\n exportAs: 'matDialogClose',\n host: {\n '(click)': '_onButtonClick($event)',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.type]': 'type'\n }\n }]\n }], function () {\n return [{\n type: MatDialogRef,\n decorators: [{\n type: Optional\n }]\n }, {\n type: ɵngcc0.ElementRef\n }, {\n type: MatDialog\n }];\n }, {\n type: [{\n type: Input\n }],\n dialogResult: [{\n type: Input,\n args: ['mat-dialog-close']\n }],\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n _matDialogClose: [{\n type: Input,\n args: ['matDialogClose']\n }]\n });\n})();\n/**\n * Title of a dialog element. Stays fixed to the top of the dialog when scrolling.\n */\nclass MatDialogTitle {\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 this.id = `mat-dialog-title-${dialogElementUid++}`;\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 const container = this._dialogRef._containerInstance;\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\n }\n }\n}\nMatDialogTitle.ɵfac = function MatDialogTitle_Factory(t) {\n return new (t || MatDialogTitle)(ɵngcc0.ɵɵdirectiveInject(MatDialogRef, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(MatDialog));\n};\nMatDialogTitle.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: MatDialogTitle,\n selectors: [[\"\", \"mat-dialog-title\", \"\"], [\"\", \"matDialogTitle\", \"\"]],\n hostAttrs: [1, \"mat-dialog-title\"],\n hostVars: 1,\n hostBindings: function MatDialogTitle_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\"\n },\n exportAs: [\"matDialogTitle\"]\n});\nMatDialogTitle.ctorParameters = () => [{\n type: MatDialogRef,\n decorators: [{\n type: Optional\n }]\n}, {\n type: ElementRef\n}, {\n type: MatDialog\n}];\nMatDialogTitle.propDecorators = {\n id: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogTitle, [{\n type: Directive,\n args: [{\n selector: '[mat-dialog-title], [matDialogTitle]',\n exportAs: 'matDialogTitle',\n host: {\n 'class': 'mat-dialog-title',\n '[id]': 'id'\n }\n }]\n }], function () {\n return [{\n type: MatDialogRef,\n decorators: [{\n type: Optional\n }]\n }, {\n type: ɵngcc0.ElementRef\n }, {\n type: MatDialog\n }];\n }, {\n id: [{\n type: Input\n }]\n });\n})();\n/**\n * Scrollable content container of a dialog.\n */\nclass MatDialogContent {}\nMatDialogContent.ɵfac = function MatDialogContent_Factory(t) {\n return new (t || MatDialogContent)();\n};\nMatDialogContent.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: MatDialogContent,\n selectors: [[\"\", \"mat-dialog-content\", \"\"], [\"mat-dialog-content\"], [\"\", \"matDialogContent\", \"\"]],\n hostAttrs: [1, \"mat-dialog-content\"]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogContent, [{\n type: Directive,\n args: [{\n selector: `[mat-dialog-content], mat-dialog-content, [matDialogContent]`,\n host: {\n 'class': 'mat-dialog-content'\n }\n }]\n }], null, null);\n})();\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\nclass MatDialogActions {}\nMatDialogActions.ɵfac = function MatDialogActions_Factory(t) {\n return new (t || MatDialogActions)();\n};\nMatDialogActions.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: MatDialogActions,\n selectors: [[\"\", \"mat-dialog-actions\", \"\"], [\"mat-dialog-actions\"], [\"\", \"matDialogActions\", \"\"]],\n hostAttrs: [1, \"mat-dialog-actions\"]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogActions, [{\n type: Directive,\n args: [{\n selector: `[mat-dialog-actions], mat-dialog-actions, [matDialogActions]`,\n host: {\n 'class': 'mat-dialog-actions'\n }\n }]\n }], null, null);\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-dialog-container')) {\n parent = parent.parentElement;\n }\n return parent ? openDialogs.find(dialog => dialog.id === parent.id) : null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatDialogModule {}\nMatDialogModule.ɵfac = function MatDialogModule_Factory(t) {\n return new (t || MatDialogModule)();\n};\nMatDialogModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: MatDialogModule\n});\nMatDialogModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n providers: [MatDialog, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER],\n imports: [OverlayModule, PortalModule, MatCommonModule, MatCommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogModule, [{\n type: NgModule,\n args: [{\n imports: [OverlayModule, PortalModule, MatCommonModule],\n exports: [MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogContent, MatDialogActions, MatCommonModule],\n declarations: [MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogActions, MatDialogContent],\n providers: [MatDialog, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER],\n entryComponents: [MatDialogContainer]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatDialogModule, {\n declarations: function () {\n return [MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogActions, MatDialogContent];\n },\n imports: function () {\n return [OverlayModule, PortalModule, MatCommonModule];\n },\n exports: function () {\n return [MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogContent, MatDialogActions, MatCommonModule];\n }\n });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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_FACTORY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, MatDialog, MatDialogActions, MatDialogClose, MatDialogConfig, MatDialogContainer, MatDialogContent, MatDialogModule, MatDialogRef, MatDialogTitle, _MatDialogBase, _MatDialogContainerBase, _closeDialogVia, matDialogAnimations, throwMatDialogContentAlreadyAttachedError };","map":{"version":3,"names":["Overlay","OverlayConfig","OverlayContainer","OverlayModule","BasePortalOutlet","CdkPortalOutlet","ComponentPortal","TemplatePortal","PortalModule","EventEmitter","Directive","ElementRef","ChangeDetectorRef","Optional","Inject","ViewChild","Component","ViewEncapsulation","ChangeDetectionStrategy","InjectionToken","Injector","TemplateRef","Type","Injectable","SkipSelf","Input","NgModule","MatCommonModule","Directionality","DOCUMENT","Location","Subject","defer","of","filter","take","startWith","FocusTrapFactory","FocusMonitor","trigger","state","style","transition","animate","ESCAPE","hasModifierKey","ɵngcc0","ɵngcc1","ɵngcc2","ɵngcc3","ɵngcc4","MatDialogContainer_ng_template_0_Template","rf","ctx","MatDialogConfig","constructor","role","panelClass","hasBackdrop","backdropClass","disableClose","width","height","maxWidth","data","ariaDescribedBy","ariaLabelledBy","ariaLabel","autoFocus","restoreFocus","closeOnNavigation","matDialogAnimations","dialogContainer","opacity","transform","throwMatDialogContentAlreadyAttachedError","Error","_MatDialogContainerBase","_elementRef","_focusTrapFactory","_changeDetectorRef","_document","_config","_focusMonitor","_animationStateChanged","_elementFocusedBeforeDialogWasOpened","_closeInteractionType","attachDomPortal","portal","_portalOutlet","hasAttached","ngDevMode","_ariaLabelledBy","_initializeWithAttachedContent","_setupFocusTrap","_capturePreviouslyFocusedElement","_focusDialogContainer","attachComponentPortal","attachTemplatePortal","_recaptureFocus","_containsFocus","focusContainer","_focusTrap","focusInitialElement","nativeElement","focus","_trapFocus","focusInitialElementWhenReady","_restoreFocus","previousElement","activeElement","_getActiveElement","element","body","contains","focusVia","destroy","create","_a","shadowRoot","ɵfac","_MatDialogContainerBase_Factory","t","ɵɵdirectiveInject","ɵdir","ɵɵdefineDirective","type","viewQuery","_MatDialogContainerBase_Query","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","first","features","ɵɵInheritDefinitionFeature","ctorParameters","undefined","decorators","args","propDecorators","static","ɵsetClassMetadata","MatDialogContainer","arguments","_state","_onAnimationDone","toState","totalTime","next","_onAnimationStart","_startExitAnimation","markForCheck","ɵMatDialogContainer_BaseFactory","MatDialogContainer_Factory","ɵɵgetInheritedFactory","ɵcmp","ɵɵdefineComponent","selectors","hostAttrs","hostVars","hostBindings","MatDialogContainer_HostBindings","ɵɵsyntheticHostListener","MatDialogContainer_animation_dialogContainer_start_HostBindingHandler","$event","MatDialogContainer_animation_dialogContainer_done_HostBindingHandler","ɵɵhostProperty","_id","ɵɵattribute","ɵɵsyntheticHostProperty","decls","vars","consts","template","MatDialogContainer_Template","ɵɵtemplate","dependencies","styles","encapsulation","animation","selector","None","changeDetection","Default","animations","host","uniqueId","MatDialogRef","_overlayRef","_containerInstance","id","_afterOpened","_afterClosed","_beforeClosed","pipe","event","subscribe","complete","clearTimeout","_closeFallbackTimeout","_finishDialogClose","detachments","_result","componentInstance","dispose","keydownEvents","keyCode","preventDefault","_closeDialogVia","backdropClick","close","dialogResult","detachBackdrop","setTimeout","afterOpened","afterClosed","beforeClosed","updatePosition","position","strategy","_getPositionStrategy","left","right","centerHorizontally","top","bottom","centerVertically","updateSize","addPanelClass","classes","removePanelClass","getState","getConfig","positionStrategy","ref","interactionType","result","MAT_DIALOG_DATA","MAT_DIALOG_DEFAULT_OPTIONS","MAT_DIALOG_SCROLL_STRATEGY","MAT_DIALOG_SCROLL_STRATEGY_FACTORY","overlay","scrollStrategies","block","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER","provide","deps","useFactory","_MatDialogBase","_overlay","_injector","_defaultOptions","_parentDialog","_overlayContainer","scrollStrategy","_dialogRefConstructor","_dialogContainerType","_dialogDataToken","_openDialogsAtThisLevel","_afterAllClosedAtThisLevel","_afterOpenedAtThisLevel","_ariaHiddenElements","Map","afterAllClosed","openDialogs","length","_getAfterAllClosed","_scrollStrategy","parent","open","componentOrTemplateRef","config","_applyConfigDefaults","getDialogById","overlayRef","_createOverlay","_attachDialogContainer","dialogRef","_attachDialogContent","_hideNonDialogContentFromAssistiveTechnology","push","_removeOpenDialog","closeAll","_closeDialogs","find","dialog","ngOnDestroy","overlayConfig","_getOverlayConfig","dialogConfig","global","direction","minWidth","minHeight","maxHeight","disposeOnNavigation","userInjector","viewContainerRef","injector","providers","useValue","containerPortal","componentFactoryResolver","containerRef","attach","instance","$implicit","_createInjector","contentRef","get","value","change","index","indexOf","splice","forEach","previousValue","setAttribute","removeAttribute","clear","overlayContainer","getContainerElement","parentElement","siblings","children","i","sibling","nodeName","hasAttribute","set","getAttribute","dialogs","_MatDialogBase_Factory","MatDialog","location","defaultOptions","parentDialog","MatDialog_Factory","ɵɵinject","ɵprov","ɵɵdefineInjectable","token","factory","Object","assign","dialogElementUid","MatDialogClose","_dialog","ngOnInit","getClosestDialog","ngOnChanges","changes","proxiedChange","currentValue","_onButtonClick","screenX","screenY","MatDialogClose_Factory","MatDialogClose_HostBindings","ɵɵlistener","MatDialogClose_click_HostBindingHandler","inputs","_matDialogClose","exportAs","ɵɵNgOnChangesFeature","MatDialogTitle","_dialogRef","Promise","resolve","then","container","MatDialogTitle_Factory","MatDialogTitle_HostBindings","MatDialogContent","MatDialogContent_Factory","MatDialogActions","MatDialogActions_Factory","classList","MatDialogModule","MatDialogModule_Factory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","exports","declarations","entryComponents","ngJitMode","ɵɵsetNgModuleScope"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@angular/material/__ivy_ngcc__/fesm2015/dialog.js"],"sourcesContent":["import { Overlay, OverlayConfig, OverlayContainer, OverlayModule } from '@angular/cdk/overlay';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { EventEmitter, Directive, ElementRef, ChangeDetectorRef, Optional, Inject, ViewChild, Component, ViewEncapsulation, ChangeDetectionStrategy, InjectionToken, Injector, TemplateRef, Type, Injectable, SkipSelf, Input, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { DOCUMENT, Location } from '@angular/common';\nimport { Subject, defer, of } from 'rxjs';\nimport { filter, take, startWith } from 'rxjs/operators';\nimport { FocusTrapFactory, FocusMonitor } from '@angular/cdk/a11y';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Configuration for opening a modal dialog with the MatDialog service.\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/a11y';\nimport * as ɵngcc2 from '@angular/cdk/portal';\nimport * as ɵngcc3 from '@angular/cdk/overlay';\nimport * as ɵngcc4 from '@angular/common';\n\nfunction MatDialogContainer_ng_template_0_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 /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n this.maxWidth = '80vw';\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 the dialog should focus the first focusable element on open. */\n this.autoFocus = true;\n /**\n * Whether the dialog should restore focus to the\n * previously-focused element, after it's closed.\n */\n this.restoreFocus = 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/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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: trigger('dialogContainer', [\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', style({ opacity: 0, transform: 'scale(0.7)' })),\n state('enter', style({ transform: 'none' })),\n transition('* => enter', animate('150ms cubic-bezier(0, 0, 0.2, 1)', style({ transform: 'none', opacity: 1 }))),\n transition('* => void, * => exit', animate('75ms cubic-bezier(0.4, 0.0, 0.2, 1)', style({ opacity: 0 }))),\n ])\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Throws an exception for the case when a ComponentPortal is\n * attached to a DomPortalOutlet without an origin.\n * @docs-private\n */\nfunction throwMatDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached');\n}\n/**\n * Base class for the `MatDialogContainer`. The base class does not implement\n * animations as these are left to implementers of the dialog container.\n */\nclass _MatDialogContainerBase extends BasePortalOutlet {\n constructor(_elementRef, _focusTrapFactory, _changeDetectorRef, _document, \n /** The dialog configuration. */\n _config, _focusMonitor) {\n super();\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n this._changeDetectorRef = _changeDetectorRef;\n this._config = _config;\n this._focusMonitor = _focusMonitor;\n /** Emits when an animation state changes. */\n this._animationStateChanged = new EventEmitter();\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 * 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 throwMatDialogContentAlreadyAttachedError();\n }\n return this._portalOutlet.attachDomPortal(portal);\n };\n this._ariaLabelledBy = _config.ariaLabelledBy || null;\n this._document = _document;\n }\n /** Initializes the dialog container with the attached content. */\n _initializeWithAttachedContent() {\n this._setupFocusTrap();\n // Save the previously focused element. This element will be re-focused\n // when the dialog closes.\n this._capturePreviouslyFocusedElement();\n // Move focus onto the dialog immediately in order to prevent the user\n // from accidentally opening multiple dialogs at the same time.\n this._focusDialogContainer();\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 throwMatDialogContentAlreadyAttachedError();\n }\n return this._portalOutlet.attachComponentPortal(portal);\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 throwMatDialogContentAlreadyAttachedError();\n }\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n /** Moves focus back into the dialog if it was moved out. */\n _recaptureFocus() {\n if (!this._containsFocus()) {\n const focusContainer = !this._config.autoFocus || !this._focusTrap.focusInitialElement();\n if (focusContainer) {\n this._elementRef.nativeElement.focus();\n }\n }\n }\n /** Moves the focus inside the focus trap. */\n _trapFocus() {\n // If we 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.\n if (this._config.autoFocus) {\n this._focusTrap.focusInitialElementWhenReady();\n }\n else if (!this._containsFocus()) {\n // Otherwise 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 this._elementRef.nativeElement.focus();\n }\n }\n /** Restores focus to the element that was focused before the dialog opened. */\n _restoreFocus() {\n const previousElement = this._elementFocusedBeforeDialogWasOpened;\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this._config.restoreFocus && previousElement &&\n typeof previousElement.focus === 'function') {\n const activeElement = this._getActiveElement();\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 ||\n element.contains(activeElement)) {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(previousElement, this._closeInteractionType);\n this._closeInteractionType = null;\n }\n else {\n previousElement.focus();\n }\n }\n }\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n /** Sets up the focus trap. */\n _setupFocusTrap() {\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n }\n /** Captures the element that was focused before the dialog was opened. */\n _capturePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = this._getActiveElement();\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 = this._getActiveElement();\n return element === activeElement || element.contains(activeElement);\n }\n /** Gets the currently-focused element on the page. */\n _getActiveElement() {\n var _a;\n // If the `activeElement` is inside a shadow root, `document.activeElement` will\n // point to the shadow root so we have to descend into it ourselves.\n const activeElement = this._document.activeElement;\n return ((_a = activeElement === null || activeElement === void 0 ? void 0 : activeElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) || activeElement;\n }\n}\n_MatDialogContainerBase.ɵfac = function _MatDialogContainerBase_Factory(t) { return new (t || _MatDialogContainerBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.FocusTrapFactory), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT, 8), ɵngcc0.ɵɵdirectiveInject(MatDialogConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.FocusMonitor)); };\n_MatDialogContainerBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatDialogContainerBase, viewQuery: function _MatDialogContainerBase_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(CdkPortalOutlet, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._portalOutlet = _t.first);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n_MatDialogContainerBase.ctorParameters = () => [\n { type: ElementRef },\n { type: FocusTrapFactory },\n { type: ChangeDetectorRef },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] },\n { type: MatDialogConfig },\n { type: FocusMonitor }\n];\n_MatDialogContainerBase.propDecorators = {\n _portalOutlet: [{ type: ViewChild, args: [CdkPortalOutlet, { static: true },] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(_MatDialogContainerBase, [{\n type: Directive\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc1.FocusTrapFactory }, { type: ɵngcc0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: MatDialogConfig }, { type: ɵngcc1.FocusMonitor }]; }, { _portalOutlet: [{\n type: ViewChild,\n args: [CdkPortalOutlet, { static: true }]\n }] }); })();\n/**\n * Internal component that wraps user-provided dialog content.\n * Animation is based on https://material.io/guidelines/motion/choreography.html.\n * @docs-private\n */\nclass MatDialogContainer extends _MatDialogContainerBase {\n constructor() {\n super(...arguments);\n /** State of the dialog animation. */\n this._state = 'enter';\n }\n /** Callback, invoked whenever an animation on the host completes. */\n _onAnimationDone({ toState, totalTime }) {\n if (toState === 'enter') {\n this._trapFocus();\n this._animationStateChanged.next({ state: 'opened', totalTime });\n }\n else if (toState === 'exit') {\n this._restoreFocus();\n this._animationStateChanged.next({ state: 'closed', totalTime });\n }\n }\n /** Callback, invoked when an animation on the host starts. */\n _onAnimationStart({ toState, totalTime }) {\n if (toState === 'enter') {\n this._animationStateChanged.next({ state: 'opening', totalTime });\n }\n else if (toState === 'exit' || toState === 'void') {\n this._animationStateChanged.next({ state: 'closing', totalTime });\n }\n }\n /** Starts the dialog exit animation. */\n _startExitAnimation() {\n this._state = 'exit';\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck();\n }\n}\nMatDialogContainer.ɵfac = /*@__PURE__*/ function () { let ɵMatDialogContainer_BaseFactory; return function MatDialogContainer_Factory(t) { return (ɵMatDialogContainer_BaseFactory || (ɵMatDialogContainer_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MatDialogContainer)))(t || MatDialogContainer); }; }();\nMatDialogContainer.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatDialogContainer, selectors: [[\"mat-dialog-container\"]], hostAttrs: [\"tabindex\", \"-1\", \"aria-modal\", \"true\", 1, \"mat-dialog-container\"], hostVars: 6, hostBindings: function MatDialogContainer_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵsyntheticHostListener(\"@dialogContainer.start\", function MatDialogContainer_animation_dialogContainer_start_HostBindingHandler($event) { return ctx._onAnimationStart($event); })(\"@dialogContainer.done\", function MatDialogContainer_animation_dialogContainer_done_HostBindingHandler($event) { return ctx._onAnimationDone($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx._id);\n ɵngcc0.ɵɵattribute(\"role\", ctx._config.role)(\"aria-labelledby\", ctx._config.ariaLabel ? null : ctx._ariaLabelledBy)(\"aria-label\", ctx._config.ariaLabel)(\"aria-describedby\", ctx._config.ariaDescribedBy || null);\n ɵngcc0.ɵɵsyntheticHostProperty(\"@dialogContainer\", ctx._state);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 1, vars: 0, consts: [[\"cdkPortalOutlet\", \"\"]], template: function MatDialogContainer_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MatDialogContainer_ng_template_0_Template, 0, 0, \"ng-template\", 0);\n } }, dependencies: [ɵngcc2.CdkPortalOutlet], styles: [\".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\\n\"], encapsulation: 2, data: { animation: [matDialogAnimations.dialogContainer] } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogContainer, [{\n type: Component,\n args: [{ selector: 'mat-dialog-container', template: \"<ng-template cdkPortalOutlet></ng-template>\\n\", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, animations: [matDialogAnimations.dialogContainer], host: {\n 'class': 'mat-dialog-container',\n 'tabindex': '-1',\n 'aria-modal': 'true',\n '[id]': '_id',\n '[attr.role]': '_config.role',\n '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config.ariaLabel',\n '[attr.aria-describedby]': '_config.ariaDescribedBy || null',\n '[@dialogContainer]': '_state',\n '(@dialogContainer.start)': '_onAnimationStart($event)',\n '(@dialogContainer.done)': '_onAnimationDone($event)'\n }, styles: [\".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\\n\"] }]\n }], null, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// TODO(jelbourn): resizing\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n/**\n * Reference to a dialog opened via the MatDialog service.\n */\nclass MatDialogRef {\n constructor(_overlayRef, _containerInstance, id = `mat-dialog-${uniqueId++}`) {\n this._overlayRef = _overlayRef;\n this._containerInstance = _containerInstance;\n this.id = id;\n /** Whether the user is allowed to close the dialog. */\n this.disableClose = this._containerInstance._config.disableClose;\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 finished closing. */\n this._afterClosed = 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 = 0 /* OPEN */;\n // Pass the id along to the container.\n _containerInstance._id = id;\n // Emit when opening animation completes\n _containerInstance._animationStateChanged.pipe(filter(event => event.state === 'opened'), take(1))\n .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 _overlayRef.detachments().subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.componentInstance = null;\n this._overlayRef.dispose();\n });\n _overlayRef.keydownEvents()\n .pipe(filter(event => {\n return event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event);\n }))\n .subscribe(event => {\n event.preventDefault();\n _closeDialogVia(this, 'keyboard');\n });\n _overlayRef.backdropClick().subscribe(() => {\n if (this.disableClose) {\n this._containerInstance._recaptureFocus();\n }\n else {\n _closeDialogVia(this, '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))\n .subscribe(event => {\n this._beforeClosed.next(dialogResult);\n this._beforeClosed.complete();\n this._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 = 1 /* 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._afterClosed;\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._overlayRef.backdropClick();\n }\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents() {\n return this._overlayRef.keydownEvents();\n }\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position) {\n let strategy = this._getPositionStrategy();\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right);\n }\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 }\n else {\n strategy.centerVertically();\n }\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 this._overlayRef.updatePosition();\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 /** 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 = 2 /* CLOSED */;\n this._overlayRef.dispose();\n }\n /** Fetches the position strategy object from the overlay ref. */\n _getPositionStrategy() {\n return this._overlayRef.getConfig().positionStrategy;\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: TODO: Move this back into `MatDialogRef` when we provide an official mock dialog ref.\nfunction _closeDialogVia(ref, interactionType, result) {\n // Some mock dialog ref instances in tests do not have the `_containerInstance` property.\n // For those, we keep the behavior as is and do not deal with the interaction type.\n if (ref._containerInstance !== undefined) {\n ref._containerInstance._closeInteractionType = interactionType;\n }\n return ref.close(result);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Injection token that can be used to access the data that was passed in to a dialog. */\nconst MAT_DIALOG_DATA = new InjectionToken('MatDialogData');\n/** Injection token that can be used to specify default dialog options. */\nconst MAT_DIALOG_DEFAULT_OPTIONS = new InjectionToken('mat-dialog-default-options');\n/** Injection token that determines the scroll handling while the dialog is open. */\nconst MAT_DIALOG_SCROLL_STRATEGY = new InjectionToken('mat-dialog-scroll-strategy');\n/** @docs-private */\nfunction MAT_DIALOG_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.block();\n}\n/** @docs-private */\nfunction MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.block();\n}\n/** @docs-private */\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/**\n * Base class for dialog services. The base dialog service allows\n * for arbitrary dialog refs and dialog container components.\n */\nclass _MatDialogBase {\n constructor(_overlay, _injector, _defaultOptions, _parentDialog, _overlayContainer, scrollStrategy, _dialogRefConstructor, _dialogContainerType, _dialogDataToken) {\n this._overlay = _overlay;\n this._injector = _injector;\n this._defaultOptions = _defaultOptions;\n this._parentDialog = _parentDialog;\n this._overlayContainer = _overlayContainer;\n this._dialogRefConstructor = _dialogRefConstructor;\n this._dialogContainerType = _dialogContainerType;\n this._dialogDataToken = _dialogDataToken;\n this._openDialogsAtThisLevel = [];\n this._afterAllClosedAtThisLevel = new Subject();\n this._afterOpenedAtThisLevel = new Subject();\n this._ariaHiddenElements = new Map();\n // TODO (jelbourn): tighten the typing right-hand side of this expression.\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 /** 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 open(componentOrTemplateRef, config) {\n config = _applyConfigDefaults(config, this._defaultOptions || new MatDialogConfig());\n if (config.id && 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 overlayRef = this._createOverlay(config);\n const dialogContainer = this._attachDialogContainer(overlayRef, config);\n const dialogRef = this._attachDialogContent(componentOrTemplateRef, dialogContainer, overlayRef, 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.afterClosed().subscribe(() => this._removeOpenDialog(dialogRef));\n this.afterOpened.next(dialogRef);\n // Notify the dialog container that the content has been attached.\n dialogContainer._initializeWithAttachedContent();\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 /**\n * Creates the overlay into which the dialog will be loaded.\n * @param config The dialog configuration.\n * @returns A promise resolving to the OverlayRef for the created overlay.\n */\n _createOverlay(config) {\n const overlayConfig = this._getOverlayConfig(config);\n return this._overlay.create(overlayConfig);\n }\n /**\n * Creates an overlay config from a dialog config.\n * @param dialogConfig The dialog configuration.\n * @returns The overlay configuration.\n */\n _getOverlayConfig(dialogConfig) {\n const state = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: dialogConfig.scrollStrategy || this._scrollStrategy(),\n panelClass: dialogConfig.panelClass,\n hasBackdrop: dialogConfig.hasBackdrop,\n direction: dialogConfig.direction,\n minWidth: dialogConfig.minWidth,\n minHeight: dialogConfig.minHeight,\n maxWidth: dialogConfig.maxWidth,\n maxHeight: dialogConfig.maxHeight,\n disposeOnNavigation: dialogConfig.closeOnNavigation\n });\n if (dialogConfig.backdropClass) {\n state.backdropClass = dialogConfig.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 _attachDialogContainer(overlay, config) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{ provide: MatDialogConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(this._dialogContainerType, config.viewContainerRef, injector, 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 dialogContainer Reference to the wrapping dialog container.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n _attachDialogContent(componentOrTemplateRef, dialogContainer, overlayRef, config) {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = new this._dialogRefConstructor(overlayRef, dialogContainer, config.id);\n if (componentOrTemplateRef instanceof TemplateRef) {\n dialogContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, null, { $implicit: config.data, dialogRef }));\n }\n else {\n const injector = this._createInjector(config, dialogRef, dialogContainer);\n const contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector));\n dialogRef.componentInstance = contentRef.instance;\n }\n dialogRef\n .updateSize(config.width, config.height)\n .updatePosition(config.position);\n return dialogRef;\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.\n * @param dialogContainer Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n _createInjector(config, dialogRef, dialogContainer) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n // The dialog container should be provided as the dialog container and the dialog's\n // content are created out of the same `ViewContainerRef` and as such, are siblings\n // for injector purposes. To allow the hierarchy that is expected, the dialog\n // container is explicitly provided in the injector.\n const providers = [\n { provide: this._dialogContainerType, useValue: dialogContainer },\n { provide: this._dialogDataToken, useValue: config.data },\n { provide: this._dialogRefConstructor, useValue: dialogRef }\n ];\n if (config.direction &&\n (!userInjector || !userInjector.get(Directionality, null))) {\n providers.push({\n provide: Directionality,\n useValue: { value: config.direction, change: of() }\n });\n }\n return Injector.create({ parent: userInjector || this._injector, providers });\n }\n /**\n * Removes a dialog from the array of open dialogs.\n * @param dialogRef Dialog to be removed.\n */\n _removeOpenDialog(dialogRef) {\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 this._getAfterAllClosed().next();\n }\n }\n }\n /**\n * Hides all of the content that isn't an overlay from assistive technology.\n */\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 let 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 /** Closes all of the dialogs in an array. */\n _closeDialogs(dialogs) {\n let i = dialogs.length;\n while (i--) {\n // The `_openDialogs` property isn't updated after close until the rxjs subscription\n // runs on the next microtask, in addition to modifying the array as we're going\n // through it. We loop through all of them and call close without assuming that\n // they'll be removed from the list instantaneously.\n dialogs[i].close();\n }\n }\n}\n_MatDialogBase.ɵfac = function _MatDialogBase_Factory(t) { return new (t || _MatDialogBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.Overlay), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(undefined), ɵngcc0.ɵɵdirectiveInject(undefined), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.OverlayContainer), ɵngcc0.ɵɵdirectiveInject(undefined), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Type), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Type), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.InjectionToken)); };\n_MatDialogBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatDialogBase });\n_MatDialogBase.ctorParameters = () => [\n { type: Overlay },\n { type: Injector },\n { type: undefined },\n { type: undefined },\n { type: OverlayContainer },\n { type: undefined },\n { type: Type },\n { type: Type },\n { type: InjectionToken }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(_MatDialogBase, [{\n type: Directive\n }], function () { return [{ type: ɵngcc3.Overlay }, { type: ɵngcc0.Injector }, { type: undefined }, { type: undefined }, { type: ɵngcc3.OverlayContainer }, { type: undefined }, { type: ɵngcc0.Type }, { type: ɵngcc0.Type }, { type: ɵngcc0.InjectionToken }]; }, null); })();\n/**\n * Service to open Material Design modal dialogs.\n */\nclass MatDialog extends _MatDialogBase {\n constructor(overlay, injector, \n /**\n * @deprecated `_location` parameter to be removed.\n * @breaking-change 10.0.0\n */\n location, defaultOptions, scrollStrategy, parentDialog, overlayContainer) {\n super(overlay, injector, defaultOptions, parentDialog, overlayContainer, scrollStrategy, MatDialogRef, MatDialogContainer, MAT_DIALOG_DATA);\n }\n}\nMatDialog.ɵfac = function MatDialog_Factory(t) { return new (t || MatDialog)(ɵngcc0.ɵɵinject(ɵngcc3.Overlay), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(ɵngcc4.Location, 8), ɵngcc0.ɵɵinject(MAT_DIALOG_DEFAULT_OPTIONS, 8), ɵngcc0.ɵɵinject(MAT_DIALOG_SCROLL_STRATEGY), ɵngcc0.ɵɵinject(MatDialog, 12), ɵngcc0.ɵɵinject(ɵngcc3.OverlayContainer)); };\nMatDialog.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MatDialog, factory: MatDialog.ɵfac });\nMatDialog.ctorParameters = () => [\n { type: Overlay },\n { type: Injector },\n { type: Location, decorators: [{ type: Optional }] },\n { type: MatDialogConfig, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DIALOG_DEFAULT_OPTIONS,] }] },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_SCROLL_STRATEGY,] }] },\n { type: MatDialog, decorators: [{ type: Optional }, { type: SkipSelf }] },\n { type: OverlayContainer }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialog, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc3.Overlay }, { type: ɵngcc0.Injector }, { type: ɵngcc4.Location, decorators: [{\n type: Optional\n }] }, { type: MatDialogConfig, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_DIALOG_DEFAULT_OPTIONS]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_DIALOG_SCROLL_STRATEGY]\n }] }, { type: MatDialog, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }] }, { type: ɵngcc3.OverlayContainer }]; }, null); })();\n/**\n * Applies default options to the dialog config.\n * @param config Config to be modified.\n * @param defaultOptions Default options provided.\n * @returns The new configuration object.\n */\nfunction _applyConfigDefaults(config, defaultOptions) {\n return Object.assign(Object.assign({}, defaultOptions), config);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Counter used to generate unique IDs for dialog elements. */\nlet dialogElementUid = 0;\n/**\n * Button that will close the current dialog.\n */\nclass 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}\nMatDialogClose.ɵfac = function MatDialogClose_Factory(t) { return new (t || MatDialogClose)(ɵngcc0.ɵɵdirectiveInject(MatDialogRef, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(MatDialog)); };\nMatDialogClose.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatDialogClose, selectors: [[\"\", \"mat-dialog-close\", \"\"], [\"\", \"matDialogClose\", \"\"]], hostVars: 2, hostBindings: function MatDialogClose_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function MatDialogClose_click_HostBindingHandler($event) { return ctx._onButtonClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.ariaLabel || null)(\"type\", ctx.type);\n } }, inputs: { type: \"type\", dialogResult: [\"mat-dialog-close\", \"dialogResult\"], ariaLabel: [\"aria-label\", \"ariaLabel\"], _matDialogClose: [\"matDialogClose\", \"_matDialogClose\"] }, exportAs: [\"matDialogClose\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nMatDialogClose.ctorParameters = () => [\n { type: MatDialogRef, decorators: [{ type: Optional }] },\n { type: ElementRef },\n { type: MatDialog }\n];\nMatDialogClose.propDecorators = {\n ariaLabel: [{ type: Input, args: ['aria-label',] }],\n type: [{ type: Input }],\n dialogResult: [{ type: Input, args: ['mat-dialog-close',] }],\n _matDialogClose: [{ type: Input, args: ['matDialogClose',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogClose, [{\n type: Directive,\n args: [{\n selector: '[mat-dialog-close], [matDialogClose]',\n exportAs: 'matDialogClose',\n host: {\n '(click)': '_onButtonClick($event)',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.type]': 'type'\n }\n }]\n }], function () { return [{ type: MatDialogRef, decorators: [{\n type: Optional\n }] }, { type: ɵngcc0.ElementRef }, { type: MatDialog }]; }, { type: [{\n type: Input\n }], dialogResult: [{\n type: Input,\n args: ['mat-dialog-close']\n }], ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }], _matDialogClose: [{\n type: Input,\n args: ['matDialogClose']\n }] }); })();\n/**\n * Title of a dialog element. Stays fixed to the top of the dialog when scrolling.\n */\nclass MatDialogTitle {\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 this.id = `mat-dialog-title-${dialogElementUid++}`;\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 const container = this._dialogRef._containerInstance;\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\n }\n }\n}\nMatDialogTitle.ɵfac = function MatDialogTitle_Factory(t) { return new (t || MatDialogTitle)(ɵngcc0.ɵɵdirectiveInject(MatDialogRef, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(MatDialog)); };\nMatDialogTitle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatDialogTitle, selectors: [[\"\", \"mat-dialog-title\", \"\"], [\"\", \"matDialogTitle\", \"\"]], hostAttrs: [1, \"mat-dialog-title\"], hostVars: 1, hostBindings: function MatDialogTitle_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n } }, inputs: { id: \"id\" }, exportAs: [\"matDialogTitle\"] });\nMatDialogTitle.ctorParameters = () => [\n { type: MatDialogRef, decorators: [{ type: Optional }] },\n { type: ElementRef },\n { type: MatDialog }\n];\nMatDialogTitle.propDecorators = {\n id: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogTitle, [{\n type: Directive,\n args: [{\n selector: '[mat-dialog-title], [matDialogTitle]',\n exportAs: 'matDialogTitle',\n host: {\n 'class': 'mat-dialog-title',\n '[id]': 'id'\n }\n }]\n }], function () { return [{ type: MatDialogRef, decorators: [{\n type: Optional\n }] }, { type: ɵngcc0.ElementRef }, { type: MatDialog }]; }, { id: [{\n type: Input\n }] }); })();\n/**\n * Scrollable content container of a dialog.\n */\nclass MatDialogContent {\n}\nMatDialogContent.ɵfac = function MatDialogContent_Factory(t) { return new (t || MatDialogContent)(); };\nMatDialogContent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatDialogContent, selectors: [[\"\", \"mat-dialog-content\", \"\"], [\"mat-dialog-content\"], [\"\", \"matDialogContent\", \"\"]], hostAttrs: [1, \"mat-dialog-content\"] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogContent, [{\n type: Directive,\n args: [{\n selector: `[mat-dialog-content], mat-dialog-content, [matDialogContent]`,\n host: { 'class': 'mat-dialog-content' }\n }]\n }], null, null); })();\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\nclass MatDialogActions {\n}\nMatDialogActions.ɵfac = function MatDialogActions_Factory(t) { return new (t || MatDialogActions)(); };\nMatDialogActions.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatDialogActions, selectors: [[\"\", \"mat-dialog-actions\", \"\"], [\"mat-dialog-actions\"], [\"\", \"matDialogActions\", \"\"]], hostAttrs: [1, \"mat-dialog-actions\"] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogActions, [{\n type: Directive,\n args: [{\n selector: `[mat-dialog-actions], mat-dialog-actions, [matDialogActions]`,\n host: { 'class': 'mat-dialog-actions' }\n }]\n }], null, null); })();\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-dialog-container')) {\n parent = parent.parentElement;\n }\n return parent ? openDialogs.find(dialog => dialog.id === parent.id) : null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatDialogModule {\n}\nMatDialogModule.ɵfac = function MatDialogModule_Factory(t) { return new (t || MatDialogModule)(); };\nMatDialogModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatDialogModule });\nMatDialogModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [\n MatDialog,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,\n ], imports: [OverlayModule,\n PortalModule,\n MatCommonModule, MatCommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDialogModule, [{\n type: NgModule,\n args: [{\n imports: [\n OverlayModule,\n PortalModule,\n MatCommonModule,\n ],\n exports: [\n MatDialogContainer,\n MatDialogClose,\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatCommonModule,\n ],\n declarations: [\n MatDialogContainer,\n MatDialogClose,\n MatDialogTitle,\n MatDialogActions,\n MatDialogContent,\n ],\n providers: [\n MatDialog,\n MAT_DIALOG_SCROLL_STRATEGY_PROVIDER,\n ],\n entryComponents: [MatDialogContainer]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatDialogModule, { declarations: function () { return [MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogActions, MatDialogContent]; }, imports: function () { return [OverlayModule,\n PortalModule,\n MatCommonModule]; }, exports: function () { return [MatDialogContainer, MatDialogClose, MatDialogTitle, MatDialogContent, MatDialogActions, MatCommonModule]; } }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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_FACTORY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, MatDialog, MatDialogActions, MatDialogClose, MatDialogConfig, MatDialogContainer, MatDialogContent, MatDialogModule, MatDialogRef, MatDialogTitle, _MatDialogBase, _MatDialogContainerBase, _closeDialogVia, matDialogAnimations, throwMatDialogContentAlreadyAttachedError };\n\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |