blob: 80ef21c0327f74da61a9b908941b72f946708954 [file] [log] [blame]
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { ComponentRef, ElementRef, EmbeddedViewRef, EventEmitter, ChangeDetectorRef } from '@angular/core';
import { AnimationEvent } from '@angular/animations';
import { BasePortalOutlet, ComponentPortal, CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
import { FocusTrapFactory } from '@angular/cdk/a11y';
import { MatDialogConfig } from './dialog-config';
/**
* Throws an exception for the case when a ComponentPortal is
* attached to a DomPortalOutlet without an origin.
* @docs-private
*/
export declare function throwMatDialogContentAlreadyAttachedError(): void;
/**
* Internal component that wraps user-provided dialog content.
* Animation is based on https://material.io/guidelines/motion/choreography.html.
* @docs-private
*/
export declare class MatDialogContainer extends BasePortalOutlet {
private _elementRef;
private _focusTrapFactory;
private _changeDetectorRef;
private _document;
/** The dialog configuration. */
_config: MatDialogConfig;
/** The portal outlet inside of this container into which the dialog content will be loaded. */
_portalOutlet: CdkPortalOutlet;
/** The class that traps and manages focus within the dialog. */
private _focusTrap;
/** Element that was focused before the dialog was opened. Save this to restore upon close. */
private _elementFocusedBeforeDialogWasOpened;
/** State of the dialog animation. */
_state: 'void' | 'enter' | 'exit';
/** Emits when an animation state changes. */
_animationStateChanged: EventEmitter<AnimationEvent>;
/** ID of the element that should be considered as the dialog's label. */
_ariaLabelledBy: string | null;
/** ID for the container DOM element. */
_id: string;
constructor(_elementRef: ElementRef, _focusTrapFactory: FocusTrapFactory, _changeDetectorRef: ChangeDetectorRef, _document: any,
/** The dialog configuration. */
_config: MatDialogConfig);
/**
* Attach a ComponentPortal as content to this dialog container.
* @param portal Portal to be attached as the dialog content.
*/
attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
/**
* Attach a TemplatePortal as content to this dialog container.
* @param portal Portal to be attached as the dialog content.
*/
attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;
/** Moves the focus inside the focus trap. */
private _trapFocus;
/** Restores focus to the element that was focused before the dialog opened. */
private _restoreFocus;
/** Saves a reference to the element that was focused before the dialog was opened. */
private _savePreviouslyFocusedElement;
/** Callback, invoked whenever an animation on the host completes. */
_onAnimationDone(event: AnimationEvent): void;
/** Callback, invoked when an animation on the host starts. */
_onAnimationStart(event: AnimationEvent): void;
/** Starts the dialog exit animation. */
_startExitAnimation(): void;
}