import { Injectable } from '@angular/core' ; import { App } from '../app/app' ; import { Config } from '../../config/config' ; import { Modal } from './modal' ; import { ModalOptions } from './modal-options' ; import { DeepLinker } from '../../navigation/deep-linker' ; name description A Modal is a content pane that goes over the user's current page.
 * Usually it is used for making a choice or editing an item. A modal uses the
 * `NavController` to
 *  {@link /docs/api/components/nav/NavController/#present present} * itself in the root nav stack. It is added to the stack similar to how
 *  {@link /docs/api/components/nav/NavController/#push NavController.push} * works.
 *
 * When a modal (or any other overlay such as an alert or actionsheet) is
 * "presented" to a nav controller, the overlay is added to the app's root nav.
 * After the modal has been presented, from within the component instance, the
 * modal can later be closed or "dismissed" by using the ViewController's
 * `dismiss` method. Additionally, you can dismiss any overlay by using `pop`
 * on the root nav controller. Modals are not reusable. When a modal is dismissed
 * it is destroyed.
 *
 * Data can be passed to a new modal through `Modal.create()` as the second
 * argument. The data can then be accessed from the opened page by injecting
 * `NavParams`. Note that the page, which opened as a modal, has no special
 * "modal" logic within it, but uses `NavParams` no differently than a
 * standard page.
 *
 *  usage Component Component advanced Component Component Component demo see {@link /docs/components#modals Modal Component Docs} @ Injectable ( ) export class ModalController { constructor ( private _app , public config , private deepLinker ) { } param { object } component param { object } data param { object } opts create ( component , data = { } , opts = { } ) { return new Modal ( this . _app , component , data , opts , this . config , this . deepLinker ) ; } }