You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
5.4 KiB
115 lines
5.4 KiB
/**
|
|
* @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 { AnimationEvent } from '@angular/animations';
|
|
import { FocusMonitor, FocusOrigin, FocusTrapFactory } from '@angular/cdk/a11y';
|
|
import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, DomPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
import { ChangeDetectorRef, ComponentRef, ElementRef, EmbeddedViewRef, EventEmitter } from '@angular/core';
|
|
import { MatDialogConfig } from './dialog-config';
|
|
/** Event that captures the state of dialog container animations. */
|
|
import * as ɵngcc0 from '@angular/core';
|
|
interface DialogAnimationEvent {
|
|
state: 'opened' | 'opening' | 'closing' | 'closed';
|
|
totalTime: number;
|
|
}
|
|
/**
|
|
* Throws an exception for the case when a ComponentPortal is
|
|
* attached to a DomPortalOutlet without an origin.
|
|
* @docs-private
|
|
*/
|
|
export declare function throwMatDialogContentAlreadyAttachedError(): void;
|
|
/**
|
|
* Base class for the `MatDialogContainer`. The base class does not implement
|
|
* animations as these are left to implementers of the dialog container.
|
|
*/
|
|
export declare abstract class _MatDialogContainerBase extends BasePortalOutlet {
|
|
protected _elementRef: ElementRef;
|
|
protected _focusTrapFactory: FocusTrapFactory;
|
|
protected _changeDetectorRef: ChangeDetectorRef;
|
|
/** The dialog configuration. */
|
|
_config: MatDialogConfig;
|
|
private _focusMonitor?;
|
|
protected _document: Document;
|
|
/** 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;
|
|
/** Emits when an animation state changes. */
|
|
_animationStateChanged: EventEmitter<DialogAnimationEvent>;
|
|
/** Element that was focused before the dialog was opened. Save this to restore upon close. */
|
|
private _elementFocusedBeforeDialogWasOpened;
|
|
/**
|
|
* Type of interaction that led to the dialog being closed. This is used to determine
|
|
* whether the focus style will be applied when returning focus to its original location
|
|
* after the dialog is closed.
|
|
*/
|
|
_closeInteractionType: FocusOrigin | null;
|
|
/** 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, _focusMonitor?: FocusMonitor | undefined);
|
|
/** Starts the dialog exit animation. */
|
|
abstract _startExitAnimation(): void;
|
|
/** Initializes the dialog container with the attached content. */
|
|
_initializeWithAttachedContent(): void;
|
|
/**
|
|
* 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>;
|
|
/**
|
|
* Attaches a DOM portal to the dialog container.
|
|
* @param portal Portal to be attached.
|
|
* @deprecated To be turned into a method.
|
|
* @breaking-change 10.0.0
|
|
*/
|
|
attachDomPortal: (portal: DomPortal) => void;
|
|
/** Moves focus back into the dialog if it was moved out. */
|
|
_recaptureFocus(): void;
|
|
/** Moves the focus inside the focus trap. */
|
|
protected _trapFocus(): void;
|
|
/** Restores focus to the element that was focused before the dialog opened. */
|
|
protected _restoreFocus(): void;
|
|
/** Sets up the focus trap. */
|
|
private _setupFocusTrap;
|
|
/** Captures the element that was focused before the dialog was opened. */
|
|
private _capturePreviouslyFocusedElement;
|
|
/** Focuses the dialog container. */
|
|
private _focusDialogContainer;
|
|
/** Returns whether focus is inside the dialog. */
|
|
private _containsFocus;
|
|
static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<_MatDialogContainerBase, [null, null, null, { optional: true; }, null, null]>;
|
|
static ɵdir: ɵngcc0.ɵɵDirectiveDeclaration<_MatDialogContainerBase, never, never, {}, {}, never>;
|
|
}
|
|
/**
|
|
* 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 _MatDialogContainerBase {
|
|
/** State of the dialog animation. */
|
|
_state: 'void' | 'enter' | 'exit';
|
|
/** Callback, invoked whenever an animation on the host completes. */
|
|
_onAnimationDone({ toState, totalTime }: AnimationEvent): void;
|
|
/** Callback, invoked when an animation on the host starts. */
|
|
_onAnimationStart({ toState, totalTime }: AnimationEvent): void;
|
|
/** Starts the dialog exit animation. */
|
|
_startExitAnimation(): void;
|
|
static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatDialogContainer, never>;
|
|
static ɵcmp: ɵngcc0.ɵɵComponentDeclaration<MatDialogContainer, "mat-dialog-container", never, {}, {}, never, never>;
|
|
}
|
|
export {};
|
|
|
|
//# sourceMappingURL=dialog-container.d.ts.map
|