/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
import { useAnimation } from '@angular/animations';
import { CommonModule } from '@angular/common';
import { Component, ElementRef, EventEmitter, HostBinding, Input, NgModule, Optional, Output, ViewChild } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { IgxNavigationService } from '../core/navigation';
import { IgxButtonModule } from '../directives/button/button.directive';
import { IgxRippleModule } from '../directives/ripple/ripple.directive';
import { IgxDialogActionsDirective, IgxDialogTitleDirective } from './dialog.directives';
import { IgxToggleModule, IgxToggleDirective } from '../directives/toggle/toggle.directive';
import { GlobalPositionStrategy, NoOpScrollStrategy } from '../services';
import { slideInBottom, slideOutTop } from '../animations/slide/index';
import { IgxFocusModule } from '../directives/focus/focus.directive';
/** @type {?} */
var DIALOG_ID = 0;
/**
 * **Ignite UI for Angular Dialog Window** -
 * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/dialog.html)
 *
 * The Ignite UI Dialog Window presents a dialog window to the user which can simply display messages or display
 * more complicated visuals such as a user sign-in form.  It also provides a right and left button
 * which can be used for custom actions.
 *
 * Example:
 * ```html
 * <button (click)="form.open()">Show Dialog</button>
 * <igx-dialog #form title="Sign In" rightButtonLabel="OK">
 *   <div>
 *     <input type="text" igxInput/>
 *     <label igxLabel>Username</label>
 *   </div>
 *   <div>
 *     <input type="password" igxInput/>
 *     <label igxLabel>Password</label>
 *   </div>
 * </igx-dialog>
 * ```
 */
var IgxDialogComponent = /** @class */ (function () {
    function IgxDialogComponent(elementRef, navService) {
        this.elementRef = elementRef;
        this.navService = navService;
        /**
         * An \@Input property that sets the value of the `id` attribute. If not provided it will be automatically generated.
         * ```html
         * <igx-dialog [id]="'igx-dialog-56'" #alert title="Notification" leftButtonLabel="OK" (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.id = "igx-dialog-" + DIALOG_ID++;
        /**
         * An \@Input property controlling the `title` of the dialog.
         * ```html
         * <igx-dialog title="Notification" #alert leftButtonLabel="OK" (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.title = '';
        /**
         *  An \@Input property controlling the `message` of the dialog.
         * ```html
         * <igx-dialog message="Your email was sent!" #alert leftButtonLabel="OK" (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.message = '';
        /**
         * An \@Input property to set the `label` of the left button of the dialog.
         * ```html
         * <igx-dialog leftButtonLabel="OKAY" #alert title="Notification"  (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.leftButtonLabel = '';
        /**
         * An \@Input property to set the left button `type`. The types are `flat`, `raised` and `fab`.
         * The `flat` type button is a rectangle and doesn't have a shadow. <br>
         * The `raised` type button is also a rectangle but has a shadow. <br>
         * The `fab` type button is a circle with a shadow. <br>
         * The default value is `flat`.
         * ```html
         * <igx-dialog leftButtonType="raised" leftButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.leftButtonType = 'flat';
        /**
         * An \@Input property to set the left button color. The property accepts all valid CSS color property values.
         * ```html
         * <igx-dialog leftButtonColor="yellow" leftButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.leftButtonColor = '';
        /**
         * An \@Input property to set the left button `background-color`. The property accepts all valid CSS color property values.
         * ```html
         * <igx-dialog leftButtonBackgroundColor="black" leftButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.leftButtonBackgroundColor = '';
        /**
         * An \@Input property to set the left button `ripple`. The `ripple` animates a click/tap to a component as a series of fading waves.
         * The property accepts all valid CSS color property values.
         * ```html
         * <igx-dialog leftButtonRipple="green" leftButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.leftButtonRipple = '';
        /**
         * An \@Input property to set the `label` of the right button of the dialog.
         * ```html
         * <igx-dialog rightButtonLabel="OKAY" #alert title="Notification"  (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.rightButtonLabel = '';
        /**
         * An \@Input property to set the right button `type`. The types are `flat`, `raised` and `fab`.
         * The `flat` type button is a rectangle and doesn't have a shadow. <br>
         * The `raised` type button is also a rectangle but has a shadow. <br>
         * The `fab` type button is a circle with a shadow. <br>
         * The default value is `flat`.
         * ```html
         * <igx-dialog rightButtonType="fab" rightButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.rightButtonType = 'flat';
        /**
         * An \@Input property to set the right button `color`. The property accepts all valid CSS color property values.
         * ```html
         * <igx-dialog rightButtonColor="yellow" rightButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.rightButtonColor = '';
        /**
         * An \@Input property to set the right button `background-color`. The property accepts all valid CSS color property values.
         * ```html
         * <igx-dialog rightButtonBackgroundColor="black" rightButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.rightButtonBackgroundColor = '';
        /**
         * An \@Input property to set the right button `ripple`.
         * ```html
         * <igx-dialog rightButtonRipple="green" rightButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
         * ```
         */
        this.rightButtonRipple = '';
        /**
         * An event that is emitted when the dialog is opened.
         * ```html
         * <igx-dialog (onOpen)="onDialogOpenHandler($event)" (onLeftButtonSelect)="dialog.close()" rightButtonLabel="OK">
         * </igx-dialog>
         * ```
         */
        this.onOpen = new EventEmitter();
        /**
         * An event that is emitted when the dialog is closed.
         * ```html
         * <igx-dialog (onClose)="onDialogCloseHandler($event)" title="Confirmation" leftButtonLabel="Cancel" rightButtonLabel="OK">
         * </igx-dialog>
         * ```
         */
        this.onClose = new EventEmitter();
        /**
         * An event that is emitted when the left button is clicked.
         * ```html
         * <igx-dialog (onLeftButtonSelect)="onDialogOKSelected($event)" #dialog leftButtonLabel="OK" rightButtonLabel="Cancel">
         * </igx-dialog>
         * ```
         */
        this.onLeftButtonSelect = new EventEmitter();
        /**
         * An event that is emitted when the right button is clicked.
         * ```html
         * <igx-dialog (onRightButtonSelect)="onDialogOKSelected($event)"
         * #dialog title="Confirmation" (onLeftButtonSelect)="dialog.close()" rightButtonLabel="OK"
         * rightButtonRipple="#4CAF50" closeOnOutsideSelect="true">
         * </igx-dialog>
         * ```
         */
        this.onRightButtonSelect = new EventEmitter();
        this._animaitonSettings = {
            openAnimation: useAnimation(slideInBottom, { params: { fromPosition: 'translateY(100%)' } }),
            closeAnimation: useAnimation(slideOutTop, { params: { toPosition: 'translateY(-100%)' } })
        };
        this._closeOnOutsideSelect = false;
        this._isModal = true;
        this.destroy$ = new Subject();
        /**
         * The default `tabindex` attribute for the component
         *
         * @hidden
         */
        this.tabindex = -1;
        this._titleId = IgxDialogComponent.NEXT_ID++ + '_title';
        this._overlayDefaultSettings = {
            positionStrategy: new GlobalPositionStrategy(this._animaitonSettings),
            scrollStrategy: new NoOpScrollStrategy(),
            modal: this.isModal,
            closeOnOutsideClick: this.closeOnOutsideSelect
        };
    }
    Object.defineProperty(IgxDialogComponent.prototype, "isModal", {
        get: /**
         * @return {?}
         */
        function () {
            return this._isModal;
        },
        set: /**
         * @param {?} val
         * @return {?}
         */
        function (val) {
            this._overlayDefaultSettings.modal = val;
            this._isModal = val;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxDialogComponent.prototype, "closeOnOutsideSelect", {
        /**
         * An @Input property that allows you to enable the "close on click outside the dialog". By default it's disabled.
         *```html
         *<igx-dialog closeOnOutsideSelect="true" leftButtonLabel="Cancel" (onLeftButtonSelect)="dialog.close()"
         *rightButtonLabel="OK" rightButtonRipple="#4CAF50" (onRightButtonSelect)="onDialogOKSelected($event)">
         *</igx-dialog>
         *```
         */
        get: /**
         * An \@Input property that allows you to enable the "close on click outside the dialog". By default it's disabled.
         * ```html
         * <igx-dialog closeOnOutsideSelect="true" leftButtonLabel="Cancel" (onLeftButtonSelect)="dialog.close()"
         * rightButtonLabel="OK" rightButtonRipple="#4CAF50" (onRightButtonSelect)="onDialogOKSelected($event)">
         * </igx-dialog>
         * ```
         * @return {?}
         */
        function () {
            return this._closeOnOutsideSelect;
        },
        set: /**
         * @param {?} val
         * @return {?}
         */
        function (val) {
            this._overlayDefaultSettings.closeOnOutsideClick = val;
            this._closeOnOutsideSelect = val;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxDialogComponent.prototype, "element", {
        /**
         * @hidden
         */
        get: /**
         * @hidden
         * @return {?}
         */
        function () {
            return this.elementRef.nativeElement;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxDialogComponent.prototype, "state", {
        /**
         * Returns the value of state. Possible state values are "open" or "close".
         *```typescript
         *@ViewChild("MyDialog")
         *public dialog: IgxDialogComponent;
         *ngAfterViewInit() {
         *    let dialogState = this.dialog.state;
         *}
         *```
         */
        get: /**
         * Returns the value of state. Possible state values are "open" or "close".
         * ```typescript
         * \@ViewChild("MyDialog")
         * public dialog: IgxDialogComponent;
         * ngAfterViewInit() {
         *    let dialogState = this.dialog.state;
         * }
         * ```
         * @return {?}
         */
        function () {
            return this.isOpen ? 'open' : 'close';
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxDialogComponent.prototype, "isOpen", {
        /**
         * Returns whether the dialog is visible to the end user.
         *```typescript
         *@ViewChild("MyDialog")
         *public dialog: IgxDialogComponent;
         *ngAfterViewInit() {
         *    let dialogOpen = this.dialog.isOpen;
         *}
         * ```
         */
        get: /**
         * Returns whether the dialog is visible to the end user.
         * ```typescript
         * \@ViewChild("MyDialog")
         * public dialog: IgxDialogComponent;
         * ngAfterViewInit() {
         *    let dialogOpen = this.dialog.isOpen;
         * }
         * ```
         * @return {?}
         */
        function () {
            return !this.toggleRef.collapsed;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxDialogComponent.prototype, "isCollapsed", {
        get: /**
         * @return {?}
         */
        function () {
            return this.toggleRef.collapsed;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxDialogComponent.prototype, "role", {
        /**
         *Returns the value of the role of the dialog. The valid values are `dialog`, `alertdialog`, `alert`.
         *```typescript
         *@ViewChild("MyDialog")
         *public dialog: IgxDialogComponent;
         *ngAfterViewInit() {
         *    let dialogRole = this.dialog.role;
         *}
         * ```
         */
        get: /**
         * Returns the value of the role of the dialog. The valid values are `dialog`, `alertdialog`, `alert`.
         * ```typescript
         * \@ViewChild("MyDialog")
         * public dialog: IgxDialogComponent;
         * ngAfterViewInit() {
         *    let dialogRole = this.dialog.role;
         * }
         * ```
         * @return {?}
         */
        function () {
            if (this.leftButtonLabel !== '' && this.rightButtonLabel !== '') {
                return 'dialog';
            }
            else if (this.leftButtonLabel !== '' ||
                this.rightButtonLabel !== '') {
                return 'alertdialog';
            }
            else {
                return 'alert';
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxDialogComponent.prototype, "titleId", {
        /**
         *Returns the value of the title id.
         *```typescript
         *@ViewChild("MyDialog")
         *public dialog: IgxDialogComponent;
         *ngAfterViewInit() {
         *    let dialogTitle = this.dialog.titleId;
         *}
         * ```
         */
        get: /**
         * Returns the value of the title id.
         * ```typescript
         * \@ViewChild("MyDialog")
         * public dialog: IgxDialogComponent;
         * ngAfterViewInit() {
         *    let dialogTitle = this.dialog.titleId;
         * }
         * ```
         * @return {?}
         */
        function () {
            return this._titleId;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @return {?}
     */
    IgxDialogComponent.prototype.ngAfterContentInit = /**
     * @return {?}
     */
    function () {
        var _this = this;
        this.toggleRef.onClosing.pipe(takeUntil(this.destroy$)).subscribe(function () { return _this.emitCloseFromDialog(); });
    };
    /**
     * @private
     * @return {?}
     */
    IgxDialogComponent.prototype.emitCloseFromDialog = /**
     * @private
     * @return {?}
     */
    function () {
        this.onClose.emit({ dialog: this, event: null });
    };
    /**
     * A method that opens the dialog.
     * @memberOf {@link IgxDialogComponent}
     *```html
     *<button (click)="dialog.open() igxButton="raised" igxButtonColor="white" igxRipple="white">Trigger Dialog</button>
     *<igx-dialog #dialog></igx-dialog>
     *```
     */
    /**
     * A method that opens the dialog.
     * \@memberOf {\@link IgxDialogComponent}
     * ```html
     * <button (click)="dialog.open() igxButton="raised" igxButtonColor="white" igxRipple="white">Trigger Dialog</button>
     * <igx-dialog #dialog></igx-dialog>
     * ```
     * @param {?=} overlaySettings
     * @return {?}
     */
    IgxDialogComponent.prototype.open = /**
     * A method that opens the dialog.
     * \@memberOf {\@link IgxDialogComponent}
     * ```html
     * <button (click)="dialog.open() igxButton="raised" igxButtonColor="white" igxRipple="white">Trigger Dialog</button>
     * <igx-dialog #dialog></igx-dialog>
     * ```
     * @param {?=} overlaySettings
     * @return {?}
     */
    function (overlaySettings) {
        if (overlaySettings === void 0) { overlaySettings = this._overlayDefaultSettings; }
        this.toggleRef.open(overlaySettings);
        this.onOpen.emit({ dialog: this, event: null });
        if (!this.leftButtonLabel && !this.rightButtonLabel) {
            this.toggleRef.element.focus();
        }
    };
    /**
     *A method that that closes the dialog.
     *@memberOf {@link IgxDialogComponent}
     *```html
     *<button (click)="dialog.close() igxButton="raised" igxButtonColor="white" igxRipple="white">Trigger Dialog</button>
     *<igx-dialog #dialog></igx-dialog>
     *```
     */
    /**
     * A method that that closes the dialog.
     * \@memberOf {\@link IgxDialogComponent}
     * ```html
     * <button (click)="dialog.close() igxButton="raised" igxButtonColor="white" igxRipple="white">Trigger Dialog</button>
     * <igx-dialog #dialog></igx-dialog>
     * ```
     * @return {?}
     */
    IgxDialogComponent.prototype.close = /**
     * A method that that closes the dialog.
     * \@memberOf {\@link IgxDialogComponent}
     * ```html
     * <button (click)="dialog.close() igxButton="raised" igxButtonColor="white" igxRipple="white">Trigger Dialog</button>
     * <igx-dialog #dialog></igx-dialog>
     * ```
     * @return {?}
     */
    function () {
        // `onClose` will emit from `toggleRef.onClosing` subscription
        this.toggleRef.close();
    };
    /**
     * A method that opens/closes the dialog.
     *@memberOf {@link IgxDialogComponent}
     *```html
     *<button (click)="dialog.toggle() igxButton="raised" igxButtonColor="white" igxRipple="white">Trigger Dialog</button>
     *<igx-dialog #dialog></igx-dialog>
     *```
     */
    /**
     * A method that opens/closes the dialog.
     * \@memberOf {\@link IgxDialogComponent}
     * ```html
     * <button (click)="dialog.toggle() igxButton="raised" igxButtonColor="white" igxRipple="white">Trigger Dialog</button>
     * <igx-dialog #dialog></igx-dialog>
     * ```
     * @return {?}
     */
    IgxDialogComponent.prototype.toggle = /**
     * A method that opens/closes the dialog.
     * \@memberOf {\@link IgxDialogComponent}
     * ```html
     * <button (click)="dialog.toggle() igxButton="raised" igxButtonColor="white" igxRipple="white">Trigger Dialog</button>
     * <igx-dialog #dialog></igx-dialog>
     * ```
     * @return {?}
     */
    function () {
        this.isOpen ? this.close() : this.open();
    };
    /**
     * @hidden
     */
    /**
     * @hidden
     * @param {?} event
     * @return {?}
     */
    IgxDialogComponent.prototype.onDialogSelected = /**
     * @hidden
     * @param {?} event
     * @return {?}
     */
    function (event) {
        event.stopPropagation();
        if (this.isOpen &&
            this.closeOnOutsideSelect &&
            event.target.classList.contains(IgxDialogComponent.DIALOG_CLASS)) {
            this.close();
        }
    };
    /**
     * @hidden
     */
    /**
     * @hidden
     * @param {?} event
     * @return {?}
     */
    IgxDialogComponent.prototype.onInternalLeftButtonSelect = /**
     * @hidden
     * @param {?} event
     * @return {?}
     */
    function (event) {
        this.onLeftButtonSelect.emit({ dialog: this, event: event });
    };
    /**
     * @hidden
     */
    /**
     * @hidden
     * @param {?} event
     * @return {?}
     */
    IgxDialogComponent.prototype.onInternalRightButtonSelect = /**
     * @hidden
     * @param {?} event
     * @return {?}
     */
    function (event) {
        this.onRightButtonSelect.emit({ dialog: this, event: event });
    };
    /**
     * @hidden
     */
    /**
     * @hidden
     * @return {?}
     */
    IgxDialogComponent.prototype.ngOnInit = /**
     * @hidden
     * @return {?}
     */
    function () {
        if (this.navService && this.id) {
            this.navService.add(this.id, this);
        }
    };
    /**
     * @hidden
     */
    /**
     * @hidden
     * @return {?}
     */
    IgxDialogComponent.prototype.ngOnDestroy = /**
     * @hidden
     * @return {?}
     */
    function () {
        if (this.navService && this.id) {
            this.navService.remove(this.id);
        }
    };
    IgxDialogComponent.NEXT_ID = 1;
    IgxDialogComponent.DIALOG_CLASS = 'igx-dialog';
    IgxDialogComponent.decorators = [
        { type: Component, args: [{
                    selector: 'igx-dialog',
                    template: "<div tabindex=\"0\" #dialog class=\"igx-dialog\" igxToggle (click)=\"onDialogSelected($event)\">\n    <div #dialogWindow class=\"igx-dialog__window\"  [attr.role]=\"role\" [attr.aria-labelledby]=\"titleId\">\n\n        <div *ngIf=\"title\" [attr.id]=\"titleId\" class=\"igx-dialog__window-title\">\n            {{ title }}\n        </div>\n        <ng-content *ngIf=\"!title\" select=\"igx-dialog-title,[igxDialogTitle]\"></ng-content>\n\n        <div class=\"igx-dialog__window-content\" *ngIf=\"message\">{{ message }}</div>\n        <ng-content *ngIf=\"!message\"></ng-content>\n\n        <div *ngIf=\"leftButtonLabel || rightButtonLabel\" class=\"igx-dialog__window-actions\">\n            <button *ngIf=\"leftButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" igxButton=\"{{ leftButtonType }}\" igxButtonColor=\"{{ leftButtonColor }}\" igxButtonBackground=\"{{ leftButtonBackgroundColor }}\"\n                igxRipple=\"{{ leftButtonRipple }}\" (click)=\"onInternalLeftButtonSelect($event)\">\n                {{ leftButtonLabel }}\n            </button>\n            <button *ngIf=\"rightButtonLabel\" type=\"button\" [igxFocus]=\"isOpen\" igxButton=\"{{ rightButtonType }}\" igxButtonColor=\"{{ rightButtonColor }}\" igxButtonBackground=\"{{ rightButtonBackgroundColor }}\"\n                igxRipple=\"{{ rightButtonRipple }}\" (click)=\"onInternalRightButtonSelect($event)\">\n                {{ rightButtonLabel }}\n            </button>\n        </div>\n        <ng-content *ngIf=\"!leftButtonLabel && !rightButtonLabel\" select=\"igx-dialog-actions,[igxDialogActions]\"></ng-content>\n\n    </div>\n</div>\n"
                }] }
    ];
    /** @nocollapse */
    IgxDialogComponent.ctorParameters = function () { return [
        { type: ElementRef },
        { type: IgxNavigationService, decorators: [{ type: Optional }] }
    ]; };
    IgxDialogComponent.propDecorators = {
        toggleRef: [{ type: ViewChild, args: [IgxToggleDirective, { static: true },] }],
        id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],
        isModal: [{ type: Input }],
        title: [{ type: Input }],
        message: [{ type: Input }],
        leftButtonLabel: [{ type: Input }],
        leftButtonType: [{ type: Input }],
        leftButtonColor: [{ type: Input }],
        leftButtonBackgroundColor: [{ type: Input }],
        leftButtonRipple: [{ type: Input }],
        rightButtonLabel: [{ type: Input }],
        rightButtonType: [{ type: Input }],
        rightButtonColor: [{ type: Input }],
        rightButtonBackgroundColor: [{ type: Input }],
        rightButtonRipple: [{ type: Input }],
        closeOnOutsideSelect: [{ type: Input }],
        onOpen: [{ type: Output }],
        onClose: [{ type: Output }],
        onLeftButtonSelect: [{ type: Output }],
        onRightButtonSelect: [{ type: Output }],
        tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],
        isOpen: [{ type: Input }],
        isCollapsed: [{ type: HostBinding, args: ['class.igx-dialog--hidden',] }],
        role: [{ type: Input }],
        titleId: [{ type: Input }]
    };
    return IgxDialogComponent;
}());
export { IgxDialogComponent };
if (false) {
    /**
     * @type {?}
     * @private
     */
    IgxDialogComponent.NEXT_ID;
    /**
     * @type {?}
     * @private
     */
    IgxDialogComponent.DIALOG_CLASS;
    /** @type {?} */
    IgxDialogComponent.prototype.toggleRef;
    /**
     * An \@Input property that sets the value of the `id` attribute. If not provided it will be automatically generated.
     * ```html
     * <igx-dialog [id]="'igx-dialog-56'" #alert title="Notification" leftButtonLabel="OK" (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.id;
    /**
     * An \@Input property controlling the `title` of the dialog.
     * ```html
     * <igx-dialog title="Notification" #alert leftButtonLabel="OK" (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.title;
    /**
     *  An \@Input property controlling the `message` of the dialog.
     * ```html
     * <igx-dialog message="Your email was sent!" #alert leftButtonLabel="OK" (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.message;
    /**
     * An \@Input property to set the `label` of the left button of the dialog.
     * ```html
     * <igx-dialog leftButtonLabel="OKAY" #alert title="Notification"  (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.leftButtonLabel;
    /**
     * An \@Input property to set the left button `type`. The types are `flat`, `raised` and `fab`.
     * The `flat` type button is a rectangle and doesn't have a shadow. <br>
     * The `raised` type button is also a rectangle but has a shadow. <br>
     * The `fab` type button is a circle with a shadow. <br>
     * The default value is `flat`.
     * ```html
     * <igx-dialog leftButtonType="raised" leftButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.leftButtonType;
    /**
     * An \@Input property to set the left button color. The property accepts all valid CSS color property values.
     * ```html
     * <igx-dialog leftButtonColor="yellow" leftButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.leftButtonColor;
    /**
     * An \@Input property to set the left button `background-color`. The property accepts all valid CSS color property values.
     * ```html
     * <igx-dialog leftButtonBackgroundColor="black" leftButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.leftButtonBackgroundColor;
    /**
     * An \@Input property to set the left button `ripple`. The `ripple` animates a click/tap to a component as a series of fading waves.
     * The property accepts all valid CSS color property values.
     * ```html
     * <igx-dialog leftButtonRipple="green" leftButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.leftButtonRipple;
    /**
     * An \@Input property to set the `label` of the right button of the dialog.
     * ```html
     * <igx-dialog rightButtonLabel="OKAY" #alert title="Notification"  (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.rightButtonLabel;
    /**
     * An \@Input property to set the right button `type`. The types are `flat`, `raised` and `fab`.
     * The `flat` type button is a rectangle and doesn't have a shadow. <br>
     * The `raised` type button is also a rectangle but has a shadow. <br>
     * The `fab` type button is a circle with a shadow. <br>
     * The default value is `flat`.
     * ```html
     * <igx-dialog rightButtonType="fab" rightButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.rightButtonType;
    /**
     * An \@Input property to set the right button `color`. The property accepts all valid CSS color property values.
     * ```html
     * <igx-dialog rightButtonColor="yellow" rightButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.rightButtonColor;
    /**
     * An \@Input property to set the right button `background-color`. The property accepts all valid CSS color property values.
     * ```html
     * <igx-dialog rightButtonBackgroundColor="black" rightButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.rightButtonBackgroundColor;
    /**
     * An \@Input property to set the right button `ripple`.
     * ```html
     * <igx-dialog rightButtonRipple="green" rightButtonLabel="OKAY" #alert (onLeftButtonSelect)="alert.close()"></igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.rightButtonRipple;
    /**
     * An event that is emitted when the dialog is opened.
     * ```html
     * <igx-dialog (onOpen)="onDialogOpenHandler($event)" (onLeftButtonSelect)="dialog.close()" rightButtonLabel="OK">
     * </igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.onOpen;
    /**
     * An event that is emitted when the dialog is closed.
     * ```html
     * <igx-dialog (onClose)="onDialogCloseHandler($event)" title="Confirmation" leftButtonLabel="Cancel" rightButtonLabel="OK">
     * </igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.onClose;
    /**
     * An event that is emitted when the left button is clicked.
     * ```html
     * <igx-dialog (onLeftButtonSelect)="onDialogOKSelected($event)" #dialog leftButtonLabel="OK" rightButtonLabel="Cancel">
     * </igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.onLeftButtonSelect;
    /**
     * An event that is emitted when the right button is clicked.
     * ```html
     * <igx-dialog (onRightButtonSelect)="onDialogOKSelected($event)"
     * #dialog title="Confirmation" (onLeftButtonSelect)="dialog.close()" rightButtonLabel="OK"
     * rightButtonRipple="#4CAF50" closeOnOutsideSelect="true">
     * </igx-dialog>
     * ```
     * @type {?}
     */
    IgxDialogComponent.prototype.onRightButtonSelect;
    /**
     * @type {?}
     * @private
     */
    IgxDialogComponent.prototype._animaitonSettings;
    /**
     * @type {?}
     * @private
     */
    IgxDialogComponent.prototype._overlayDefaultSettings;
    /**
     * @type {?}
     * @private
     */
    IgxDialogComponent.prototype._closeOnOutsideSelect;
    /**
     * @type {?}
     * @private
     */
    IgxDialogComponent.prototype._isModal;
    /**
     * @type {?}
     * @protected
     */
    IgxDialogComponent.prototype.destroy$;
    /**
     * The default `tabindex` attribute for the component
     *
     * @hidden
     * @type {?}
     */
    IgxDialogComponent.prototype.tabindex;
    /**
     * @type {?}
     * @private
     */
    IgxDialogComponent.prototype._titleId;
    /**
     * @type {?}
     * @private
     */
    IgxDialogComponent.prototype.elementRef;
    /**
     * @type {?}
     * @private
     */
    IgxDialogComponent.prototype.navService;
}
/**
 * @record
 */
export function IDialogEventArgs() { }
if (false) {
    /** @type {?} */
    IDialogEventArgs.prototype.dialog;
    /** @type {?} */
    IDialogEventArgs.prototype.event;
}
/**
 * @hidden
 */
var IgxDialogModule = /** @class */ (function () {
    function IgxDialogModule() {
    }
    IgxDialogModule.decorators = [
        { type: NgModule, args: [{
                    declarations: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective],
                    exports: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective],
                    imports: [CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule]
                },] }
    ];
    return IgxDialogModule;
}());
export { IgxDialogModule };
//# sourceMappingURL=data:application/json;base64, 