1 | import { App } from '../app/app';
|
2 | import { Config } from '../../config/config';
|
3 | import { Loading } from './loading';
|
4 | import { LoadingOptions } from './loading-options';
|
5 | /**
|
6 | * @name LoadingController
|
7 | * @description
|
8 | * An overlay that can be used to indicate activity while blocking user
|
9 | * interaction. The loading indicator appears on top of the app's content,
|
10 | * and can be dismissed by the app to resume user interaction with
|
11 | * the app. It includes an optional backdrop, which can be disabled
|
12 | * by setting `showBackdrop: false` upon creation.
|
13 | *
|
14 | * ### Creating
|
15 | * You can pass all of the loading options in the first argument of
|
16 | * the create method: `create(opts)`. The spinner name should be
|
17 | * passed in the `spinner` property, and any optional HTML can be passed
|
18 | * in the `content` property. If you do not pass a value to `spinner`
|
19 | * the loading indicator will use the spinner specified by the mode. To
|
20 | * set the spinner name across the app, set the value of `loadingSpinner`
|
21 | * in your app's config. To hide the spinner, set `loadingSpinner: 'hide'`
|
22 | * in the app's config or pass `spinner: 'hide'` in the loading
|
23 | * options. See the [create](#create) method below for all available options.
|
24 | *
|
25 | * ### Dismissing
|
26 | * The loading indicator can be dismissed automatically after a specific
|
27 | * amount of time by passing the number of milliseconds to display it in
|
28 | * the `duration` of the loading options. By default the loading indicator
|
29 | * will show even during page changes, but this can be disabled by setting
|
30 | * `dismissOnPageChange` to `true`. To dismiss the loading indicator after
|
31 | * creation, call the `dismiss()` method on the Loading instance. The
|
32 | * `onDidDismiss` function can be called to perform an action after the loading
|
33 | * indicator is dismissed.
|
34 | *
|
35 | * >Note that after the component is dismissed, it will not be usable anymore
|
36 | * and another one must be created. This can be avoided by wrapping the
|
37 | * creation and presentation of the component in a reusable function as shown
|
38 | * in the `usage` section below.
|
39 | *
|
40 | * ### Limitations
|
41 | * The element is styled to appear on top of other content by setting its
|
42 | * `z-index` property. You must ensure no element has a stacking context with
|
43 | * a higher `z-index` than this element.
|
44 | *
|
45 | * @usage
|
46 | * ```ts
|
47 | * import { LoadingController } from 'ionic-angular';
|
48 | *
|
49 | * constructor(public loadingCtrl: LoadingController) { }
|
50 | *
|
51 | * presentLoadingDefault() {
|
52 | * const loading = this.loadingCtrl.create({
|
53 | * content: 'Please wait...'
|
54 | * });
|
55 | *
|
56 | * loading.present();
|
57 | *
|
58 | * setTimeout(() => {
|
59 | * loading.dismiss();
|
60 | * }, 5000);
|
61 | * }
|
62 | *
|
63 | * presentLoadingCustom() {
|
64 | * const loading = this.loadingCtrl.create({
|
65 | * spinner: 'hide',
|
66 | * content: `
|
67 | * <div class="custom-spinner-container">
|
68 | * <div class="custom-spinner-box"></div>
|
69 | * </div>`,
|
70 | * duration: 5000
|
71 | * });
|
72 | *
|
73 | * loading.onDidDismiss(() => {
|
74 | * console.log('Dismissed loading');
|
75 | * });
|
76 | *
|
77 | * loading.present();
|
78 | * }
|
79 | *
|
80 | * presentLoadingText() {
|
81 | * const loading = this.loadingCtrl.create({
|
82 | * spinner: 'hide',
|
83 | * content: 'Loading Please Wait...'
|
84 | * });
|
85 | *
|
86 | * loading.present();
|
87 | *
|
88 | * setTimeout(() => {
|
89 | * this.nav.push(Page2);
|
90 | * }, 1000);
|
91 | *
|
92 | * setTimeout(() => {
|
93 | * loading.dismiss();
|
94 | * }, 5000);
|
95 | * }
|
96 | * ```
|
97 | * @advanced
|
98 | *
|
99 | * Loading options
|
100 | *
|
101 | * | Option | Type | Description |
|
102 | * |-----------------------|------------|------------------------------------------------------------------------------------------------------------------|
|
103 | * | spinner |`string` | The name of the SVG spinner for the loading indicator. |
|
104 | * | content |`string` | The html content for the loading indicator. |
|
105 | * | cssClass |`string` | Additional classes for custom styles, separated by spaces. |
|
106 | * | showBackdrop |`boolean` | Whether to show the backdrop. Default true. |
|
107 | * | enableBackdropDismiss | `boolean` | Whether the loading indicator should be dismissed by tapping the backdrop. Default false. |
|
108 | * | dismissOnPageChange |`boolean` | Whether to dismiss the indicator when navigating to a new page. Default false. |
|
109 | * | duration |`number` | How many milliseconds to wait before hiding the indicator. By default, it will show until `dismiss()` is called. |
|
110 | *
|
111 | * @demo /docs/demos/src/loading/
|
112 | * @see {@link /docs/api/components/spinner/Spinner Spinner API Docs}
|
113 | */
|
114 | export declare class LoadingController {
|
115 | private _app;
|
116 | config: Config;
|
117 | constructor(_app: App, config: Config);
|
118 | /**
|
119 | * Create a loading indicator. See below for options.
|
120 | * @param {LoadingOptions} [opts] Loading options
|
121 | * {Loading} Returns a Loading Instance
|
122 | */
|
123 | create(opts?: LoadingOptions): Loading;
|
124 | }
|