@ionic/angular 8.8.9-dev.11780683233.1c5e9d9b → 8.8.9-dev.11780690883.11fe8a2a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/css/core.css +1 -1
  2. package/css/core.css.map +1 -1
  3. package/css/display.css +1 -1
  4. package/css/display.css.map +1 -1
  5. package/css/flex-utils.css +1 -1
  6. package/css/flex-utils.css.map +1 -1
  7. package/css/float-elements.css.map +1 -1
  8. package/css/global.bundle.css.map +1 -1
  9. package/css/ionic-swiper.css +1 -1
  10. package/css/ionic-swiper.css.map +1 -1
  11. package/css/ionic.bundle.css +1 -1
  12. package/css/ionic.bundle.css.map +1 -1
  13. package/css/normalize.css.map +1 -1
  14. package/css/padding.css.map +1 -1
  15. package/css/palettes/dark.always.css.map +1 -1
  16. package/css/palettes/dark.class.css.map +1 -1
  17. package/css/palettes/dark.system.css.map +1 -1
  18. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  19. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  20. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  21. package/css/palettes/high-contrast.always.css.map +1 -1
  22. package/css/palettes/high-contrast.class.css.map +1 -1
  23. package/css/palettes/high-contrast.system.css.map +1 -1
  24. package/css/structure.css.map +1 -1
  25. package/css/text-alignment.css.map +1 -1
  26. package/css/text-transformation.css.map +1 -1
  27. package/css/typography.css.map +1 -1
  28. package/css/utils.bundle.css +1 -1
  29. package/css/utils.bundle.css.map +1 -1
  30. package/fesm2022/ionic-angular-common.mjs +68 -79
  31. package/fesm2022/ionic-angular-common.mjs.map +1 -1
  32. package/fesm2022/ionic-angular-standalone.mjs +903 -911
  33. package/fesm2022/ionic-angular-standalone.mjs.map +1 -1
  34. package/fesm2022/ionic-angular.mjs +1065 -771
  35. package/fesm2022/ionic-angular.mjs.map +1 -1
  36. package/package.json +11 -16
  37. package/schematics/add/index.js +27 -1
  38. package/schematics/utils/ast.js +1 -2
  39. package/schematics/utils/config.js +10 -11
  40. package/schematics/utils/package.js +1 -2
  41. package/types/ionic-angular-common.d.ts +1014 -0
  42. package/types/ionic-angular-standalone.d.ts +1560 -0
  43. package/{directives/proxies.d.ts → types/ionic-angular.d.ts} +703 -478
  44. package/app-initialize.d.ts +0 -3
  45. package/common/directives/control-value-accessors/index.d.ts +0 -1
  46. package/common/directives/control-value-accessors/value-accessor.d.ts +0 -36
  47. package/common/directives/navigation/back-button.d.ts +0 -23
  48. package/common/directives/navigation/nav-params.d.ts +0 -45
  49. package/common/directives/navigation/nav.d.ts +0 -21
  50. package/common/directives/navigation/router-link-delegate.d.ts +0 -60
  51. package/common/directives/navigation/router-outlet.d.ts +0 -104
  52. package/common/directives/navigation/stack-controller.d.ts +0 -42
  53. package/common/directives/navigation/stack-utils.d.ts +0 -38
  54. package/common/directives/navigation/tabs.d.ts +0 -83
  55. package/common/index.d.ts +0 -22
  56. package/common/overlays/modal.d.ts +0 -62
  57. package/common/overlays/popover.d.ts +0 -46
  58. package/common/providers/angular-delegate.d.ts +0 -28
  59. package/common/providers/config.d.ts +0 -11
  60. package/common/providers/dom-controller.d.ts +0 -16
  61. package/common/providers/menu-controller.d.ts +0 -78
  62. package/common/providers/nav-controller.d.ts +0 -116
  63. package/common/providers/platform.d.ts +0 -174
  64. package/common/types/interfaces.d.ts +0 -8
  65. package/common/types/ionic-lifecycle-hooks.d.ts +0 -27
  66. package/common/types/overlay-options.d.ts +0 -16
  67. package/common/utils/overlay.d.ts +0 -21
  68. package/common/utils/proxy.d.ts +0 -8
  69. package/common/utils/routing.d.ts +0 -28
  70. package/common/utils/util.d.ts +0 -1
  71. package/css/ionic/bundle.ionic.css +0 -1
  72. package/css/ionic/bundle.ionic.css.map +0 -1
  73. package/css/ionic/core.ionic.css +0 -1
  74. package/css/ionic/core.ionic.css.map +0 -1
  75. package/css/ionic/global.bundle.ionic.css +0 -1
  76. package/css/ionic/global.bundle.ionic.css.map +0 -1
  77. package/css/ionic/ionic-swiper.ionic.css +0 -1
  78. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  79. package/css/ionic/link.ionic.css +0 -1
  80. package/css/ionic/link.ionic.css.map +0 -1
  81. package/css/ionic/structure.ionic.css +0 -1
  82. package/css/ionic/structure.ionic.css.map +0 -1
  83. package/css/ionic/typography.ionic.css +0 -1
  84. package/css/ionic/typography.ionic.css.map +0 -1
  85. package/css/ionic/utils.bundle.ionic.css +0 -1
  86. package/css/ionic/utils.bundle.ionic.css.map +0 -1
  87. package/directives/angular-component-lib/utils.d.ts +0 -9
  88. package/directives/control-value-accessors/boolean-value-accessor.d.ts +0 -10
  89. package/directives/control-value-accessors/index.d.ts +0 -4
  90. package/directives/control-value-accessors/numeric-value-accessor.d.ts +0 -11
  91. package/directives/control-value-accessors/select-value-accessor.d.ts +0 -9
  92. package/directives/control-value-accessors/text-value-accessor.d.ts +0 -9
  93. package/directives/navigation/ion-back-button.d.ts +0 -9
  94. package/directives/navigation/ion-nav.d.ts +0 -8
  95. package/directives/navigation/ion-router-outlet.d.ts +0 -25
  96. package/directives/navigation/ion-tabs.d.ts +0 -13
  97. package/directives/navigation/router-link-delegate.d.ts +0 -16
  98. package/directives/overlays/modal.d.ts +0 -6
  99. package/directives/overlays/popover.d.ts +0 -6
  100. package/directives/proxies-list.d.ts +0 -2
  101. package/directives/validators/index.d.ts +0 -2
  102. package/directives/validators/max-validator.d.ts +0 -12
  103. package/directives/validators/min-validator.d.ts +0 -12
  104. package/esm2022/app-initialize.mjs +0 -29
  105. package/esm2022/common/directives/control-value-accessors/index.mjs +0 -2
  106. package/esm2022/common/directives/control-value-accessors/value-accessor.mjs +0 -153
  107. package/esm2022/common/directives/navigation/back-button.mjs +0 -61
  108. package/esm2022/common/directives/navigation/nav-params.mjs +0 -47
  109. package/esm2022/common/directives/navigation/nav.mjs +0 -49
  110. package/esm2022/common/directives/navigation/router-link-delegate.mjs +0 -156
  111. package/esm2022/common/directives/navigation/router-outlet.mjs +0 -480
  112. package/esm2022/common/directives/navigation/stack-controller.mjs +0 -280
  113. package/esm2022/common/directives/navigation/stack-utils.mjs +0 -73
  114. package/esm2022/common/directives/navigation/tabs.mjs +0 -279
  115. package/esm2022/common/index.mjs +0 -20
  116. package/esm2022/common/ionic-angular-common.mjs +0 -5
  117. package/esm2022/common/overlays/modal.mjs +0 -103
  118. package/esm2022/common/overlays/popover.mjs +0 -91
  119. package/esm2022/common/providers/angular-delegate.mjs +0 -203
  120. package/esm2022/common/providers/config.mjs +0 -45
  121. package/esm2022/common/providers/dom-controller.mjs +0 -45
  122. package/esm2022/common/providers/menu-controller.mjs +0 -114
  123. package/esm2022/common/providers/nav-controller.mjs +0 -235
  124. package/esm2022/common/providers/platform.mjs +0 -258
  125. package/esm2022/common/types/interfaces.mjs +0 -2
  126. package/esm2022/common/types/ionic-lifecycle-hooks.mjs +0 -5
  127. package/esm2022/common/types/overlay-options.mjs +0 -2
  128. package/esm2022/common/utils/overlay.mjs +0 -26
  129. package/esm2022/common/utils/proxy.mjs +0 -47
  130. package/esm2022/common/utils/routing.mjs +0 -55
  131. package/esm2022/common/utils/util.mjs +0 -10
  132. package/esm2022/directives/angular-component-lib/utils.mjs +0 -59
  133. package/esm2022/directives/control-value-accessors/boolean-value-accessor.mjs +0 -42
  134. package/esm2022/directives/control-value-accessors/index.mjs +0 -5
  135. package/esm2022/directives/control-value-accessors/numeric-value-accessor.mjs +0 -50
  136. package/esm2022/directives/control-value-accessors/select-value-accessor.mjs +0 -39
  137. package/esm2022/directives/control-value-accessors/text-value-accessor.mjs +0 -38
  138. package/esm2022/directives/navigation/ion-back-button.mjs +0 -24
  139. package/esm2022/directives/navigation/ion-nav.mjs +0 -21
  140. package/esm2022/directives/navigation/ion-router-outlet.mjs +0 -52
  141. package/esm2022/directives/navigation/ion-tabs.mjs +0 -59
  142. package/esm2022/directives/navigation/router-link-delegate.mjs +0 -32
  143. package/esm2022/directives/overlays/modal.mjs +0 -22
  144. package/esm2022/directives/overlays/popover.mjs +0 -18
  145. package/esm2022/directives/proxies-list.mjs +0 -93
  146. package/esm2022/directives/proxies.mjs +0 -2465
  147. package/esm2022/directives/validators/index.mjs +0 -3
  148. package/esm2022/directives/validators/max-validator.mjs +0 -27
  149. package/esm2022/directives/validators/min-validator.mjs +0 -27
  150. package/esm2022/index.mjs +0 -32
  151. package/esm2022/ionic-angular.mjs +0 -5
  152. package/esm2022/ionic-module.mjs +0 -111
  153. package/esm2022/providers/action-sheet-controller.mjs +0 -19
  154. package/esm2022/providers/alert-controller.mjs +0 -19
  155. package/esm2022/providers/animation-controller.mjs +0 -38
  156. package/esm2022/providers/gesture-controller.mjs +0 -33
  157. package/esm2022/providers/loading-controller.mjs +0 -19
  158. package/esm2022/providers/menu-controller.mjs +0 -19
  159. package/esm2022/providers/modal-controller.mjs +0 -26
  160. package/esm2022/providers/picker-controller.mjs +0 -22
  161. package/esm2022/providers/popover-controller.mjs +0 -19
  162. package/esm2022/providers/toast-controller.mjs +0 -19
  163. package/esm2022/standalone/directives/angular-component-lib/utils.mjs +0 -59
  164. package/esm2022/standalone/directives/checkbox.mjs +0 -76
  165. package/esm2022/standalone/directives/datetime.mjs +0 -95
  166. package/esm2022/standalone/directives/icon.mjs +0 -35
  167. package/esm2022/standalone/directives/index.mjs +0 -13
  168. package/esm2022/standalone/directives/input-otp.mjs +0 -90
  169. package/esm2022/standalone/directives/input.mjs +0 -113
  170. package/esm2022/standalone/directives/proxies.mjs +0 -2356
  171. package/esm2022/standalone/directives/radio-group.mjs +0 -60
  172. package/esm2022/standalone/directives/range.mjs +0 -78
  173. package/esm2022/standalone/directives/searchbar.mjs +0 -82
  174. package/esm2022/standalone/directives/segment.mjs +0 -60
  175. package/esm2022/standalone/directives/select.mjs +0 -84
  176. package/esm2022/standalone/directives/textarea.mjs +0 -91
  177. package/esm2022/standalone/directives/toggle.mjs +0 -76
  178. package/esm2022/standalone/index.mjs +0 -25
  179. package/esm2022/standalone/ionic-angular-standalone.mjs +0 -5
  180. package/esm2022/standalone/navigation/back-button.mjs +0 -32
  181. package/esm2022/standalone/navigation/nav.mjs +0 -28
  182. package/esm2022/standalone/navigation/router-link-delegate.mjs +0 -28
  183. package/esm2022/standalone/navigation/router-outlet.mjs +0 -60
  184. package/esm2022/standalone/navigation/tabs.mjs +0 -58
  185. package/esm2022/standalone/overlays/modal.mjs +0 -32
  186. package/esm2022/standalone/overlays/popover.mjs +0 -28
  187. package/esm2022/standalone/providers/action-sheet-controller.mjs +0 -21
  188. package/esm2022/standalone/providers/alert-controller.mjs +0 -21
  189. package/esm2022/standalone/providers/animation-controller.mjs +0 -38
  190. package/esm2022/standalone/providers/gesture-controller.mjs +0 -33
  191. package/esm2022/standalone/providers/ionic-angular.mjs +0 -38
  192. package/esm2022/standalone/providers/loading-controller.mjs +0 -21
  193. package/esm2022/standalone/providers/menu-controller.mjs +0 -19
  194. package/esm2022/standalone/providers/modal-controller.mjs +0 -28
  195. package/esm2022/standalone/providers/picker-controller.mjs +0 -24
  196. package/esm2022/standalone/providers/popover-controller.mjs +0 -21
  197. package/esm2022/standalone/providers/toast-controller.mjs +0 -21
  198. package/index.d.ts +0 -27
  199. package/ionic-module.d.ts +0 -28
  200. package/providers/action-sheet-controller.d.ts +0 -8
  201. package/providers/alert-controller.d.ts +0 -8
  202. package/providers/animation-controller.d.ts +0 -25
  203. package/providers/gesture-controller.d.ts +0 -13
  204. package/providers/loading-controller.d.ts +0 -8
  205. package/providers/menu-controller.d.ts +0 -7
  206. package/providers/modal-controller.d.ts +0 -12
  207. package/providers/picker-controller.d.ts +0 -11
  208. package/providers/popover-controller.d.ts +0 -9
  209. package/providers/toast-controller.d.ts +0 -8
  210. package/standalone/directives/angular-component-lib/utils.d.ts +0 -9
  211. package/standalone/directives/checkbox.d.ts +0 -30
  212. package/standalone/directives/datetime.d.ts +0 -30
  213. package/standalone/directives/icon.d.ts +0 -9
  214. package/standalone/directives/index.d.ts +0 -12
  215. package/standalone/directives/input-otp.d.ts +0 -49
  216. package/standalone/directives/input.d.ts +0 -47
  217. package/standalone/directives/proxies.d.ts +0 -1062
  218. package/standalone/directives/radio-group.d.ts +0 -18
  219. package/standalone/directives/range.d.ts +0 -47
  220. package/standalone/directives/searchbar.d.ts +0 -45
  221. package/standalone/directives/segment.d.ts +0 -19
  222. package/standalone/directives/select.d.ts +0 -34
  223. package/standalone/directives/textarea.d.ts +0 -37
  224. package/standalone/directives/toggle.d.ts +0 -28
  225. package/standalone/index.d.ts +0 -23
  226. package/standalone/navigation/back-button.d.ts +0 -9
  227. package/standalone/navigation/nav.d.ts +0 -8
  228. package/standalone/navigation/router-link-delegate.d.ts +0 -10
  229. package/standalone/navigation/router-outlet.d.ts +0 -25
  230. package/standalone/navigation/tabs.d.ts +0 -13
  231. package/standalone/overlays/modal.d.ts +0 -6
  232. package/standalone/overlays/popover.d.ts +0 -6
  233. package/standalone/providers/action-sheet-controller.d.ts +0 -8
  234. package/standalone/providers/alert-controller.d.ts +0 -8
  235. package/standalone/providers/animation-controller.d.ts +0 -25
  236. package/standalone/providers/gesture-controller.d.ts +0 -13
  237. package/standalone/providers/ionic-angular.d.ts +0 -7
  238. package/standalone/providers/loading-controller.d.ts +0 -8
  239. package/standalone/providers/menu-controller.d.ts +0 -7
  240. package/standalone/providers/modal-controller.d.ts +0 -12
  241. package/standalone/providers/picker-controller.d.ts +0 -11
  242. package/standalone/providers/popover-controller.d.ts +0 -9
  243. package/standalone/providers/toast-controller.d.ts +0 -8
@@ -0,0 +1,1014 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ComponentRef, OnDestroy, OnInit, EventEmitter, ElementRef, NgZone, EnvironmentInjector, Provider, InjectionToken, Injector, ApplicationRef, TemplateRef, ChangeDetectorRef, AfterViewInit, OnChanges, AfterContentInit, AfterContentChecked, QueryList } from '@angular/core';
3
+ import { MenuControllerI, AnimationBuilder, MenuI, Animation, RouterDirection, NavDirection, BackButtonEventDetail, KeyboardEventDetail, Platforms, IonicConfig, FrameworkDelegate, ComponentRef as ComponentRef$1, ModalOptions as ModalOptions$1, PopoverOptions as PopoverOptions$1, Components, ModalBreakpointChangeEventDetail, ModalDragEventDetail } from '@ionic/core/components';
4
+ import { Location, LocationStrategy } from '@angular/common';
5
+ import { NavigationExtras, Router, ActivatedRoute, OutletContext, Data, UrlSerializer, UrlTree, RouterLink, RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';
6
+ import { Subject, Subscription } from 'rxjs';
7
+ import { ControlValueAccessor } from '@angular/forms';
8
+ import { Components as Components$1 } from '@ionic/core';
9
+
10
+ declare class DomController {
11
+ /**
12
+ * Schedules a task to run during the READ phase of the next frame.
13
+ * This task should only read the DOM, but never modify it.
14
+ */
15
+ read(cb: RafCallback): void;
16
+ /**
17
+ * Schedules a task to run during the WRITE phase of the next frame.
18
+ * This task should write the DOM, but never READ it.
19
+ */
20
+ write(cb: RafCallback): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<DomController, never>;
22
+ static ɵprov: i0.ɵɵInjectableDeclaration<DomController>;
23
+ }
24
+ type RafCallback = (timeStamp?: number) => void;
25
+
26
+ declare class MenuController implements MenuControllerI {
27
+ private menuController;
28
+ constructor(menuController: MenuControllerI);
29
+ /**
30
+ * Programmatically open the Menu.
31
+ * @param [menuId] Optionally get the menu by its id, or side.
32
+ * @return returns a promise when the menu is fully opened
33
+ */
34
+ open(menuId?: string): Promise<boolean>;
35
+ /**
36
+ * Programmatically close the Menu. If no `menuId` is given as the first
37
+ * argument then it'll close any menu which is open. If a `menuId`
38
+ * is given then it'll close that exact menu.
39
+ * @param [menuId] Optionally get the menu by its id, or side.
40
+ * @return returns a promise when the menu is fully closed
41
+ */
42
+ close(menuId?: string): Promise<boolean>;
43
+ /**
44
+ * Toggle the menu. If it's closed, it will open, and if opened, it
45
+ * will close.
46
+ * @param [menuId] Optionally get the menu by its id, or side.
47
+ * @return returns a promise when the menu has been toggled
48
+ */
49
+ toggle(menuId?: string): Promise<boolean>;
50
+ /**
51
+ * Used to enable or disable a menu. For example, there could be multiple
52
+ * left menus, but only one of them should be able to be opened at the same
53
+ * time. If there are multiple menus on the same side, then enabling one menu
54
+ * will also automatically disable all the others that are on the same side.
55
+ * @param [menuId] Optionally get the menu by its id, or side.
56
+ * @return Returns the instance of the menu, which is useful for chaining.
57
+ */
58
+ enable(shouldEnable: boolean, menuId?: string): Promise<HTMLIonMenuElement | undefined>;
59
+ /**
60
+ * Used to enable or disable the ability to swipe open the menu.
61
+ * @param shouldEnable True if it should be swipe-able, false if not.
62
+ * @param [menuId] Optionally get the menu by its id, or side.
63
+ * @return Returns the instance of the menu, which is useful for chaining.
64
+ */
65
+ swipeGesture(shouldEnable: boolean, menuId?: string): Promise<HTMLIonMenuElement | undefined>;
66
+ /**
67
+ * @param [menuId] Optionally get the menu by its id, or side.
68
+ * @return Returns true if the specified menu is currently open, otherwise false.
69
+ * If the menuId is not specified, it returns true if ANY menu is currenly open.
70
+ */
71
+ isOpen(menuId?: string): Promise<boolean>;
72
+ /**
73
+ * @param [menuId] Optionally get the menu by its id, or side.
74
+ * @return Returns true if the menu is currently enabled, otherwise false.
75
+ */
76
+ isEnabled(menuId?: string): Promise<boolean>;
77
+ /**
78
+ * Used to get a menu instance. If a `menuId` is not provided then it'll
79
+ * return the first menu found. If a `menuId` is `left` or `right`, then
80
+ * it'll return the enabled menu on that side. Otherwise, if a `menuId` is
81
+ * provided, then it'll try to find the menu using the menu's `id`
82
+ * property. If a menu is not found then it'll return `null`.
83
+ * @param [menuId] Optionally get the menu by its id, or side.
84
+ * @return Returns the instance of the menu if found, otherwise `null`.
85
+ */
86
+ get(menuId?: string): Promise<HTMLIonMenuElement | undefined>;
87
+ /**
88
+ * @return Returns the instance of the menu already opened, otherwise `null`.
89
+ */
90
+ getOpen(): Promise<HTMLIonMenuElement | undefined>;
91
+ /**
92
+ * @return Returns an array of all menu instances.
93
+ */
94
+ getMenus(): Promise<HTMLIonMenuElement[]>;
95
+ registerAnimation(name: string, animation: AnimationBuilder): void;
96
+ isAnimating(): Promise<boolean>;
97
+ _getOpenSync(): HTMLIonMenuElement | undefined;
98
+ _createAnimation(type: string, menuCmp: MenuI): Promise<Animation>;
99
+ _register(menu: MenuI): void;
100
+ _unregister(menu: MenuI): void;
101
+ _setOpen(menu: MenuI, shouldOpen: boolean, animated: boolean): Promise<boolean>;
102
+ }
103
+
104
+ interface StackWillChangeEvent {
105
+ enteringView: RouteView;
106
+ /**
107
+ * `true` if the event is trigged as a result of a switch
108
+ * between tab navigation stacks.
109
+ */
110
+ tabSwitch: boolean;
111
+ }
112
+ interface StackDidChangeEvent {
113
+ enteringView: RouteView;
114
+ direction: RouterDirection;
115
+ animation: NavDirection | undefined;
116
+ /**
117
+ * `true` if the event is trigged as a result of a switch
118
+ * between tab navigation stacks.
119
+ */
120
+ tabSwitch: boolean;
121
+ }
122
+ interface RouteView {
123
+ id: number;
124
+ url: string;
125
+ stackId: string | undefined;
126
+ element: HTMLElement;
127
+ ref: ComponentRef<any>;
128
+ savedData?: any;
129
+ savedExtras?: NavigationExtras;
130
+ unlistenEvents: () => void;
131
+ animationBuilder?: AnimationBuilder;
132
+ }
133
+
134
+ declare abstract class IonRouterOutlet implements OnDestroy, OnInit {
135
+ readonly parentOutlet?: IonRouterOutlet | undefined;
136
+ abstract outletContent: any;
137
+ nativeEl: HTMLIonRouterOutletElement;
138
+ activatedView: RouteView | null;
139
+ tabsPrefix: string | undefined;
140
+ private _swipeGesture?;
141
+ private stackCtrl;
142
+ private proxyMap;
143
+ private currentActivatedRoute$;
144
+ private activated;
145
+ /** @internal */
146
+ get activatedComponentRef(): ComponentRef<any> | null;
147
+ private _activatedRoute;
148
+ /**
149
+ * The name of the outlet
150
+ */
151
+ name: string;
152
+ /** @internal */
153
+ stackWillChange: EventEmitter<StackWillChangeEvent>;
154
+ /** @internal */
155
+ stackDidChange: EventEmitter<StackDidChangeEvent>;
156
+ activateEvents: EventEmitter<any>;
157
+ deactivateEvents: EventEmitter<any>;
158
+ private parentContexts;
159
+ private location;
160
+ private environmentInjector;
161
+ private inputBinder;
162
+ /** @nodoc */
163
+ readonly supportsBindingToComponentInputs = true;
164
+ private config;
165
+ private navCtrl;
166
+ set animation(animation: AnimationBuilder);
167
+ set animated(animated: boolean);
168
+ set swipeGesture(swipe: boolean);
169
+ constructor(name: string, tabs: string, commonLocation: Location, elementRef: ElementRef, router: Router, zone: NgZone, activatedRoute: ActivatedRoute, parentOutlet?: IonRouterOutlet | undefined);
170
+ ngOnDestroy(): void;
171
+ getContext(): OutletContext | null;
172
+ ngOnInit(): void;
173
+ private initializeOutletWithName;
174
+ get isActivated(): boolean;
175
+ get component(): Record<string, unknown>;
176
+ get activatedRoute(): ActivatedRoute;
177
+ get activatedRouteData(): Data;
178
+ /**
179
+ * Called when the `RouteReuseStrategy` instructs to detach the subtree
180
+ */
181
+ detach(): ComponentRef<any>;
182
+ /**
183
+ * Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree
184
+ */
185
+ attach(_ref: ComponentRef<any>, _activatedRoute: ActivatedRoute): void;
186
+ deactivate(): void;
187
+ activateWith(activatedRoute: ActivatedRoute, environmentInjector: EnvironmentInjector | null): void;
188
+ /**
189
+ * Returns `true` if there are pages in the stack to go back.
190
+ */
191
+ canGoBack(deep?: number, stackId?: string): boolean;
192
+ /**
193
+ * Resolves to `true` if it the outlet was able to sucessfully pop the last N pages.
194
+ */
195
+ pop(deep?: number, stackId?: string): Promise<boolean>;
196
+ /**
197
+ * Returns the URL of the active page of each stack.
198
+ */
199
+ getLastUrl(stackId?: string): string | undefined;
200
+ /**
201
+ * Returns the RouteView of the active page of each stack.
202
+ * @internal
203
+ */
204
+ getLastRouteView(stackId?: string): RouteView | undefined;
205
+ /**
206
+ * Returns the root view in the tab stack.
207
+ * @internal
208
+ */
209
+ getRootView(stackId?: string): RouteView | undefined;
210
+ /**
211
+ * Returns the active stack ID. In the context of ion-tabs, it means the active tab.
212
+ */
213
+ getActiveStackId(): string | undefined;
214
+ /**
215
+ * Since the activated route can change over the life time of a component in an ion router outlet, we create
216
+ * a proxy so that we can update the values over time as a user navigates back to components already in the stack.
217
+ */
218
+ private createActivatedRouteProxy;
219
+ /**
220
+ * Create a wrapped observable that will switch to the latest activated route matched by the given component
221
+ */
222
+ private proxyObservable;
223
+ /**
224
+ * Updates the activated route proxy for the given component to the new incoming router state
225
+ */
226
+ private updateActivatedRouteProxy;
227
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonRouterOutlet, [{ attribute: "name"; }, { attribute: "tabs"; optional: true; }, null, null, null, null, null, { optional: true; skipSelf: true; }]>;
228
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IonRouterOutlet, "ion-router-outlet", ["outlet"], { "animated": { "alias": "animated"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "swipeGesture": { "alias": "swipeGesture"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "stackWillChange": "stackWillChange"; "stackDidChange": "stackDidChange"; "activateEvents": "activate"; "deactivateEvents": "deactivate"; }, never, never, true, never>;
229
+ }
230
+ declare const provideComponentInputBinding: () => Provider;
231
+
232
+ interface BackButtonEmitter extends Subject<BackButtonEventDetail> {
233
+ subscribeWithPriority(priority: number, callback: (processNextHandler: () => void) => Promise<any> | void): Subscription;
234
+ }
235
+ declare class Platform {
236
+ private doc;
237
+ private _readyPromise;
238
+ private win;
239
+ /**
240
+ * @hidden
241
+ */
242
+ backButton: BackButtonEmitter;
243
+ /**
244
+ * The keyboardDidShow event emits when the
245
+ * on-screen keyboard is presented.
246
+ */
247
+ keyboardDidShow: Subject<KeyboardEventDetail>;
248
+ /**
249
+ * The keyboardDidHide event emits when the
250
+ * on-screen keyboard is hidden.
251
+ */
252
+ keyboardDidHide: Subject<void>;
253
+ /**
254
+ * The pause event emits when the native platform puts the application
255
+ * into the background, typically when the user switches to a different
256
+ * application. This event would emit when a Cordova app is put into
257
+ * the background, however, it would not fire on a standard web browser.
258
+ */
259
+ pause: Subject<void>;
260
+ /**
261
+ * The resume event emits when the native platform pulls the application
262
+ * out from the background. This event would emit when a Cordova app comes
263
+ * out from the background, however, it would not fire on a standard web browser.
264
+ */
265
+ resume: Subject<void>;
266
+ /**
267
+ * The resize event emits when the browser window has changed dimensions. This
268
+ * could be from a browser window being physically resized, or from a device
269
+ * changing orientation.
270
+ */
271
+ resize: Subject<void>;
272
+ constructor(doc: any, zone: NgZone);
273
+ /**
274
+ * @returns returns true/false based on platform.
275
+ * @description
276
+ * Depending on the platform the user is on, `is(platformName)` will
277
+ * return `true` or `false`. Note that the same app can return `true`
278
+ * for more than one platform name. For example, an app running from
279
+ * an iPad would return `true` for the platform names: `mobile`,
280
+ * `ios`, `ipad`, and `tablet`. Additionally, if the app was running
281
+ * from Cordova then `cordova` would be true, and if it was running
282
+ * from a web browser on the iPad then `mobileweb` would be `true`.
283
+ *
284
+ * ```
285
+ * import { Platform } from 'ionic-angular';
286
+ *
287
+ * @Component({...})
288
+ * export MyPage {
289
+ * constructor(public platform: Platform) {
290
+ * if (this.platform.is('ios')) {
291
+ * // This will only print when on iOS
292
+ * console.log('I am an iOS device!');
293
+ * }
294
+ * }
295
+ * }
296
+ * ```
297
+ *
298
+ * | Platform Name | Description |
299
+ * |-----------------|------------------------------------|
300
+ * | android | on a device running Android. |
301
+ * | capacitor | on a device running Capacitor. |
302
+ * | cordova | on a device running Cordova. |
303
+ * | ios | on a device running iOS. |
304
+ * | ipad | on an iPad device. |
305
+ * | iphone | on an iPhone device. |
306
+ * | phablet | on a phablet device. |
307
+ * | tablet | on a tablet device. |
308
+ * | electron | in Electron on a desktop device. |
309
+ * | pwa | as a PWA app. |
310
+ * | mobile | on a mobile device. |
311
+ * | mobileweb | on a mobile device in a browser. |
312
+ * | desktop | on a desktop device. |
313
+ * | hybrid | is a cordova or capacitor app. |
314
+ *
315
+ */
316
+ is(platformName: Platforms): boolean;
317
+ /**
318
+ * @returns the array of platforms
319
+ * @description
320
+ * Depending on what device you are on, `platforms` can return multiple values.
321
+ * Each possible value is a hierarchy of platforms. For example, on an iPhone,
322
+ * it would return `mobile`, `ios`, and `iphone`.
323
+ *
324
+ * ```
325
+ * import { Platform } from 'ionic-angular';
326
+ *
327
+ * @Component({...})
328
+ * export MyPage {
329
+ * constructor(public platform: Platform) {
330
+ * // This will print an array of the current platforms
331
+ * console.log(this.platform.platforms());
332
+ * }
333
+ * }
334
+ * ```
335
+ */
336
+ platforms(): string[];
337
+ /**
338
+ * Returns a promise when the platform is ready and native functionality
339
+ * can be called. If the app is running from within a web browser, then
340
+ * the promise will resolve when the DOM is ready. When the app is running
341
+ * from an application engine such as Cordova, then the promise will
342
+ * resolve when Cordova triggers the `deviceready` event.
343
+ *
344
+ * The resolved value is the `readySource`, which states which platform
345
+ * ready was used. For example, when Cordova is ready, the resolved ready
346
+ * source is `cordova`. The default ready source value will be `dom`. The
347
+ * `readySource` is useful if different logic should run depending on the
348
+ * platform the app is running from. For example, only Cordova can execute
349
+ * the status bar plugin, so the web should not run status bar plugin logic.
350
+ *
351
+ * ```
352
+ * import { Component } from '@angular/core';
353
+ * import { Platform } from 'ionic-angular';
354
+ *
355
+ * @Component({...})
356
+ * export MyApp {
357
+ * constructor(public platform: Platform) {
358
+ * this.platform.ready().then((readySource) => {
359
+ * console.log('Platform ready from', readySource);
360
+ * // Platform now ready, execute any required native code
361
+ * });
362
+ * }
363
+ * }
364
+ * ```
365
+ */
366
+ ready(): Promise<string>;
367
+ /**
368
+ * Returns if this app is using right-to-left language direction or not.
369
+ * We recommend the app's `index.html` file already has the correct `dir`
370
+ * attribute value set, such as `<html dir="ltr">` or `<html dir="rtl">`.
371
+ * [W3C: Structural markup and right-to-left text in HTML](http://www.w3.org/International/questions/qa-html-dir)
372
+ */
373
+ get isRTL(): boolean;
374
+ /**
375
+ * Get the query string parameter
376
+ */
377
+ getQueryParam(key: string): string | null;
378
+ /**
379
+ * Returns `true` if the app is in landscape mode.
380
+ */
381
+ isLandscape(): boolean;
382
+ /**
383
+ * Returns `true` if the app is in portrait mode.
384
+ */
385
+ isPortrait(): boolean;
386
+ testUserAgent(expression: string): boolean;
387
+ /**
388
+ * Get the current url.
389
+ */
390
+ url(): string;
391
+ /**
392
+ * Gets the width of the platform's viewport using `window.innerWidth`.
393
+ */
394
+ width(): number;
395
+ /**
396
+ * Gets the height of the platform's viewport using `window.innerHeight`.
397
+ */
398
+ height(): number;
399
+ static ɵfac: i0.ɵɵFactoryDeclaration<Platform, never>;
400
+ static ɵprov: i0.ɵɵInjectableDeclaration<Platform>;
401
+ }
402
+
403
+ interface AnimationOptions {
404
+ animated?: boolean;
405
+ animation?: AnimationBuilder;
406
+ animationDirection?: 'forward' | 'back';
407
+ }
408
+ interface NavigationOptions extends NavigationExtras, AnimationOptions {
409
+ }
410
+ declare class NavController {
411
+ private location;
412
+ private serializer;
413
+ private router?;
414
+ private topOutlet?;
415
+ private direction;
416
+ private animated?;
417
+ private animationBuilder?;
418
+ private guessDirection;
419
+ private guessAnimation?;
420
+ private lastNavId;
421
+ constructor(platform: Platform, location: Location, serializer: UrlSerializer, router?: Router | undefined);
422
+ /**
423
+ * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,
424
+ * it's equivalent to calling `this.router.navigateByUrl()`, but it's explicit about the **direction** of the transition.
425
+ *
426
+ * Going **forward** means that a new page is going to be pushed to the stack of the outlet (ion-router-outlet),
427
+ * and that it will show a "forward" animation by default.
428
+ *
429
+ * Navigating forward can also be triggered in a declarative manner by using the `[routerDirection]` directive:
430
+ *
431
+ * ```html
432
+ * <a routerLink="/path/to/page" routerDirection="forward">Link</a>
433
+ * ```
434
+ */
435
+ navigateForward(url: string | UrlTree | any[], options?: NavigationOptions): Promise<boolean>;
436
+ /**
437
+ * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,
438
+ * it's equivalent to calling:
439
+ *
440
+ * ```ts
441
+ * this.navController.setDirection('back');
442
+ * this.router.navigateByUrl(path);
443
+ * ```
444
+ *
445
+ * Going **back** means that all the pages in the stack until the navigated page is found will be popped,
446
+ * and that it will show a "back" animation by default.
447
+ *
448
+ * Navigating back can also be triggered in a declarative manner by using the `[routerDirection]` directive:
449
+ *
450
+ * ```html
451
+ * <a routerLink="/path/to/page" routerDirection="back">Link</a>
452
+ * ```
453
+ */
454
+ navigateBack(url: string | UrlTree | any[], options?: NavigationOptions): Promise<boolean>;
455
+ /**
456
+ * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,
457
+ * it's equivalent to calling:
458
+ *
459
+ * ```ts
460
+ * this.navController.setDirection('root');
461
+ * this.router.navigateByUrl(path);
462
+ * ```
463
+ *
464
+ * Going **root** means that all existing pages in the stack will be removed,
465
+ * and the navigated page will become the single page in the stack.
466
+ *
467
+ * Navigating root can also be triggered in a declarative manner by using the `[routerDirection]` directive:
468
+ *
469
+ * ```html
470
+ * <a routerLink="/path/to/page" routerDirection="root">Link</a>
471
+ * ```
472
+ */
473
+ navigateRoot(url: string | UrlTree | any[], options?: NavigationOptions): Promise<boolean>;
474
+ /**
475
+ * Same as [Location](https://angular.io/api/common/Location)'s back() method.
476
+ * It will use the standard `window.history.back()` under the hood, but featuring a `back` animation
477
+ * by default.
478
+ */
479
+ back(options?: AnimationOptions): void;
480
+ /**
481
+ * This methods goes back in the context of Ionic's stack navigation.
482
+ *
483
+ * It recursively finds the top active `ion-router-outlet` and calls `pop()`.
484
+ * This is the recommended way to go back when you are using `ion-router-outlet`.
485
+ *
486
+ * Resolves to `true` if it was able to pop.
487
+ */
488
+ pop(): Promise<boolean>;
489
+ /**
490
+ * This methods specifies the direction of the next navigation performed by the Angular router.
491
+ *
492
+ * `setDirection()` does not trigger any transition, it just sets some flags to be consumed by `ion-router-outlet`.
493
+ *
494
+ * It's recommended to use `navigateForward()`, `navigateBack()` and `navigateRoot()` instead of `setDirection()`.
495
+ */
496
+ setDirection(direction: RouterDirection, animated?: boolean, animationDirection?: 'forward' | 'back', animationBuilder?: AnimationBuilder): void;
497
+ /**
498
+ * @internal
499
+ */
500
+ setTopOutlet(outlet: IonRouterOutlet): void;
501
+ /**
502
+ * @internal
503
+ */
504
+ consumeTransition(): {
505
+ direction: RouterDirection;
506
+ animation: NavDirection | undefined;
507
+ animationBuilder: AnimationBuilder | undefined;
508
+ };
509
+ private navigate;
510
+ static ɵfac: i0.ɵɵFactoryDeclaration<NavController, [null, null, null, { optional: true; }]>;
511
+ static ɵprov: i0.ɵɵInjectableDeclaration<NavController>;
512
+ }
513
+
514
+ declare class Config {
515
+ get(key: keyof IonicConfig, fallback?: any): any;
516
+ getBoolean(key: keyof IonicConfig, fallback?: boolean): boolean;
517
+ getNumber(key: keyof IonicConfig, fallback?: number): number;
518
+ static ɵfac: i0.ɵɵFactoryDeclaration<Config, never>;
519
+ static ɵprov: i0.ɵɵInjectableDeclaration<Config>;
520
+ }
521
+ declare const ConfigToken: InjectionToken<any>;
522
+
523
+ declare const IonModalToken: InjectionToken<HTMLIonModalElement>;
524
+ declare class AngularDelegate {
525
+ private zone;
526
+ private applicationRef;
527
+ private config;
528
+ create(environmentInjector: EnvironmentInjector, injector: Injector, elementReferenceKey?: string, customInjector?: Injector): AngularFrameworkDelegate;
529
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularDelegate, never>;
530
+ static ɵprov: i0.ɵɵInjectableDeclaration<AngularDelegate>;
531
+ }
532
+ declare class AngularFrameworkDelegate implements FrameworkDelegate {
533
+ private environmentInjector;
534
+ private injector;
535
+ private applicationRef;
536
+ private zone;
537
+ private elementReferenceKey?;
538
+ private enableSignalsSupport?;
539
+ private customInjector?;
540
+ private elRefMap;
541
+ private elEventsMap;
542
+ constructor(environmentInjector: EnvironmentInjector, injector: Injector, applicationRef: ApplicationRef, zone: NgZone, elementReferenceKey?: string | undefined, enableSignalsSupport?: boolean | undefined, customInjector?: Injector | undefined);
543
+ attachViewToDom(container: any, component: any, params?: any, cssClasses?: string[]): Promise<any>;
544
+ removeViewFromDom(_container: any, component: any): Promise<void>;
545
+ }
546
+ declare const bindLifecycleEvents: (zone: NgZone, instance: any, element: HTMLElement) => (() => void);
547
+
548
+ interface IonicGlobal {
549
+ config?: any;
550
+ asyncQueue?: boolean;
551
+ }
552
+ interface IonicWindow extends Window {
553
+ Ionic: IonicGlobal;
554
+ __zone_symbol__requestAnimationFrame?: (ts: FrameRequestCallback) => number;
555
+ }
556
+
557
+ /**
558
+ * https://ionicframework.com/docs/api/router-outlet#life-cycle-hooks
559
+ */
560
+ interface ViewWillEnter {
561
+ /**
562
+ * Fired when the component routing to is about to animate into view.
563
+ */
564
+ ionViewWillEnter(): void;
565
+ }
566
+ interface ViewDidEnter {
567
+ /**
568
+ * Fired when the component routing to has finished animating.
569
+ */
570
+ ionViewDidEnter(): void;
571
+ }
572
+ interface ViewWillLeave {
573
+ /**
574
+ * Fired when the component routing from is about to animate.
575
+ */
576
+ ionViewWillLeave(): void;
577
+ }
578
+ interface ViewDidLeave {
579
+ /**
580
+ * Fired when the component routing to has finished animating.
581
+ */
582
+ ionViewDidLeave(): void;
583
+ }
584
+
585
+ /**
586
+ * Modal options with Angular-specific injector support.
587
+ * Extends @ionic/core ModalOptions with an optional injector property.
588
+ */
589
+ type ModalOptions<T extends ComponentRef$1 = ComponentRef$1> = ModalOptions$1<T> & {
590
+ injector?: Injector;
591
+ };
592
+ /**
593
+ * Popover options with Angular-specific injector support.
594
+ * Extends @ionic/core PopoverOptions with an optional injector property.
595
+ */
596
+ type PopoverOptions<T extends ComponentRef$1 = ComponentRef$1> = PopoverOptions$1<T> & {
597
+ injector?: Injector;
598
+ };
599
+
600
+ /**
601
+ * @description
602
+ * NavParams are an object that exists on a page and can contain data for that particular view.
603
+ * Similar to how data was pass to a view in V1 with `$stateParams`, NavParams offer a much more flexible
604
+ * option with a simple `get` method.
605
+ *
606
+ * @usage
607
+ * ```ts
608
+ * import { NavParams } from '@ionic/angular';
609
+ *
610
+ * export class MyClass{
611
+ *
612
+ * constructor(navParams: NavParams){
613
+ * // userParams is an object we have in our nav-parameters
614
+ * navParams.get('userParams');
615
+ * }
616
+ *
617
+ * }
618
+ * ```
619
+ */
620
+ declare class NavParams {
621
+ data: {
622
+ [key: string]: any;
623
+ };
624
+ constructor(data?: {
625
+ [key: string]: any;
626
+ });
627
+ /**
628
+ * Get the value of a nav-parameter for the current view
629
+ *
630
+ * ```ts
631
+ * import { NavParams } from 'ionic-angular';
632
+ *
633
+ * export class MyClass{
634
+ * constructor(public navParams: NavParams){
635
+ * // userParams is an object we have in our nav-parameters
636
+ * this.navParams.get('userParams');
637
+ * }
638
+ * }
639
+ * ```
640
+ *
641
+ * @param param Which param you want to look up
642
+ */
643
+ get<T = any>(param: string): T;
644
+ }
645
+
646
+ declare interface IonModal extends Components.IonModal {
647
+ /**
648
+ * Emitted after the modal has presented.
649
+ **/
650
+ ionModalDidPresent: EventEmitter<CustomEvent>;
651
+ /**
652
+ * Emitted before the modal has presented.
653
+ */
654
+ ionModalWillPresent: EventEmitter<CustomEvent>;
655
+ /**
656
+ * Emitted before the modal has dismissed.
657
+ */
658
+ ionModalWillDismiss: EventEmitter<CustomEvent>;
659
+ /**
660
+ * Emitted after the modal has dismissed.
661
+ */
662
+ ionModalDidDismiss: EventEmitter<CustomEvent>;
663
+ /**
664
+ * Emitted after the modal breakpoint has changed.
665
+ */
666
+ ionBreakpointDidChange: EventEmitter<CustomEvent<ModalBreakpointChangeEventDetail>>;
667
+ /**
668
+ * Emitted when the sheet or card modal has started being dragged.
669
+ */
670
+ ionDragStart: EventEmitter<void>;
671
+ /**
672
+ * Emitted while the sheet or card modal is being dragged.
673
+ */
674
+ ionDragMove: EventEmitter<CustomEvent<ModalDragEventDetail>>;
675
+ /**
676
+ * Emitted when the sheet or card modal has finished being dragged.
677
+ */
678
+ ionDragEnd: EventEmitter<CustomEvent<ModalDragEventDetail>>;
679
+ /**
680
+ * Emitted after the modal has presented. Shorthand for ionModalDidPresent.
681
+ */
682
+ didPresent: EventEmitter<CustomEvent>;
683
+ /**
684
+ * Emitted before the modal has presented. Shorthand for ionModalWillPresent.
685
+ */
686
+ willPresent: EventEmitter<CustomEvent>;
687
+ /**
688
+ * Emitted before the modal has dismissed. Shorthand for ionModalWillDismiss.
689
+ */
690
+ willDismiss: EventEmitter<CustomEvent>;
691
+ /**
692
+ * Emitted after the modal has dismissed. Shorthand for ionModalDidDismiss.
693
+ */
694
+ didDismiss: EventEmitter<CustomEvent>;
695
+ }
696
+ declare class IonModal {
697
+ protected z: NgZone;
698
+ template: TemplateRef<any>;
699
+ isCmpOpen: boolean;
700
+ protected el: HTMLElement;
701
+ constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
702
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonModal, never>;
703
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IonModal, "ion-modal", never, { "animated": { "alias": "animated"; "required": false; }; "keepContentsMounted": { "alias": "keepContentsMounted"; "required": false; }; "backdropBreakpoint": { "alias": "backdropBreakpoint"; "required": false; }; "backdropDismiss": { "alias": "backdropDismiss"; "required": false; }; "breakpoints": { "alias": "breakpoints"; "required": false; }; "canDismiss": { "alias": "canDismiss"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "enterAnimation": { "alias": "enterAnimation"; "required": false; }; "expandToScroll": { "alias": "expandToScroll"; "required": false; }; "event": { "alias": "event"; "required": false; }; "focusTrap": { "alias": "focusTrap"; "required": false; }; "handle": { "alias": "handle"; "required": false; }; "handleBehavior": { "alias": "handleBehavior"; "required": false; }; "initialBreakpoint": { "alias": "initialBreakpoint"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "keyboardClose": { "alias": "keyboardClose"; "required": false; }; "leaveAnimation": { "alias": "leaveAnimation"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "presentingElement": { "alias": "presentingElement"; "required": false; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; }; "translucent": { "alias": "translucent"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; }, {}, ["template"], never, true, never>;
704
+ }
705
+
706
+ declare interface IonPopover extends Components.IonPopover {
707
+ /**
708
+ * Emitted after the popover has presented.
709
+ */
710
+ ionPopoverDidPresent: EventEmitter<CustomEvent>;
711
+ /**
712
+ * Emitted before the popover has presented.
713
+ */
714
+ ionPopoverWillPresent: EventEmitter<CustomEvent>;
715
+ /**
716
+ * Emitted after the popover has dismissed.
717
+ */
718
+ ionPopoverWillDismiss: EventEmitter<CustomEvent>;
719
+ /**
720
+ * Emitted after the popover has dismissed.
721
+ */
722
+ ionPopoverDidDismiss: EventEmitter<CustomEvent>;
723
+ /**
724
+ * Emitted after the popover has presented. Shorthand for ionPopoverDidPresent.
725
+ */
726
+ didPresent: EventEmitter<CustomEvent>;
727
+ /**
728
+ * Emitted before the popover has presented. Shorthand for ionPopoverWillPresent.
729
+ */
730
+ willPresent: EventEmitter<CustomEvent>;
731
+ /**
732
+ * Emitted after the popover has presented. Shorthand for ionPopoverWillDismiss.
733
+ */
734
+ willDismiss: EventEmitter<CustomEvent>;
735
+ /**
736
+ * Emitted after the popover has dismissed. Shorthand for ionPopoverDidDismiss.
737
+ */
738
+ didDismiss: EventEmitter<CustomEvent>;
739
+ }
740
+ declare class IonPopover {
741
+ protected z: NgZone;
742
+ template: TemplateRef<any>;
743
+ isCmpOpen: boolean;
744
+ protected el: HTMLElement;
745
+ constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
746
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonPopover, never>;
747
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IonPopover, "ion-popover", never, { "alignment": { "alias": "alignment"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; "arrow": { "alias": "arrow"; "required": false; }; "keepContentsMounted": { "alias": "keepContentsMounted"; "required": false; }; "backdropDismiss": { "alias": "backdropDismiss"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "dismissOnSelect": { "alias": "dismissOnSelect"; "required": false; }; "enterAnimation": { "alias": "enterAnimation"; "required": false; }; "event": { "alias": "event"; "required": false; }; "focusTrap": { "alias": "focusTrap"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "keyboardClose": { "alias": "keyboardClose"; "required": false; }; "leaveAnimation": { "alias": "leaveAnimation"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; }; "translucent": { "alias": "translucent"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; "triggerAction": { "alias": "triggerAction"; "required": false; }; "reference": { "alias": "reference"; "required": false; }; "size": { "alias": "size"; "required": false; }; "side": { "alias": "side"; "required": false; }; }, {}, ["template"], never, true, never>;
748
+ }
749
+
750
+ declare class ValueAccessor implements ControlValueAccessor, AfterViewInit, OnDestroy {
751
+ protected injector: Injector;
752
+ protected elementRef: ElementRef;
753
+ private onChange;
754
+ private onTouched;
755
+ protected lastValue: any;
756
+ private statusChanges?;
757
+ constructor(injector: Injector, elementRef: ElementRef);
758
+ writeValue(value: any): void;
759
+ /**
760
+ * Notifies the ControlValueAccessor of a change in the value of the control.
761
+ *
762
+ * This is called by each of the ValueAccessor directives when we want to update
763
+ * the status and validity of the form control. For example with text components this
764
+ * is called when the ionInput event is fired. For select components this is called
765
+ * when the ionChange event is fired.
766
+ *
767
+ * This also updates the Ionic form status classes on the element.
768
+ *
769
+ * @param el The component element.
770
+ * @param value The new value of the control.
771
+ */
772
+ handleValueChange(el: HTMLElement, value: any): void;
773
+ _handleBlurEvent(el: any): void;
774
+ registerOnChange(fn: (value: any) => void): void;
775
+ registerOnTouched(fn: () => void): void;
776
+ setDisabledState(isDisabled: boolean): void;
777
+ ngOnDestroy(): void;
778
+ ngAfterViewInit(): void;
779
+ static ɵfac: i0.ɵɵFactoryDeclaration<ValueAccessor, never>;
780
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ValueAccessor, never, never, {}, {}, never, never, true, never>;
781
+ }
782
+ declare const setIonicClasses: (element: ElementRef) => void;
783
+
784
+ declare interface IonBackButton extends Components$1.IonBackButton {
785
+ }
786
+ declare class IonBackButton {
787
+ private routerOutlet;
788
+ private navCtrl;
789
+ private config;
790
+ private r;
791
+ protected z: NgZone;
792
+ protected el: HTMLElement;
793
+ constructor(routerOutlet: IonRouterOutlet, navCtrl: NavController, config: Config, r: ElementRef, z: NgZone, c: ChangeDetectorRef);
794
+ /**
795
+ * @internal
796
+ */
797
+ onClick(ev: Event): void;
798
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonBackButton, [{ optional: true; }, null, null, null, null, null]>;
799
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IonBackButton, never, never, { "color": { "alias": "color"; "required": false; }; "defaultHref": { "alias": "defaultHref"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "routerAnimation": { "alias": "routerAnimation"; "required": false; }; "text": { "alias": "text"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
800
+ }
801
+
802
+ declare interface IonNav extends Components$1.IonNav {
803
+ /**
804
+ * Event fired when the nav will change components
805
+ */
806
+ ionNavWillChange: EventEmitter<CustomEvent<void>>;
807
+ /**
808
+ * Event fired when the nav has changed components
809
+ */
810
+ ionNavDidChange: EventEmitter<CustomEvent<void>>;
811
+ }
812
+ declare class IonNav {
813
+ protected z: NgZone;
814
+ protected el: HTMLElement;
815
+ constructor(ref: ElementRef, environmentInjector: EnvironmentInjector, injector: Injector, angularDelegate: AngularDelegate, z: NgZone, c: ChangeDetectorRef);
816
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonNav, never>;
817
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IonNav, never, never, { "animated": { "alias": "animated"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "root": { "alias": "root"; "required": false; }; "rootParams": { "alias": "rootParams"; "required": false; }; "swipeGesture": { "alias": "swipeGesture"; "required": false; }; }, {}, never, never, true, never>;
818
+ }
819
+
820
+ /**
821
+ * Adds support for Ionic routing directions and animations to the base Angular router link directive.
822
+ *
823
+ * When the router link is clicked, the directive will assign the direction and
824
+ * animation so that the routing integration will transition correctly.
825
+ */
826
+ declare class RouterLinkDelegateDirective implements OnInit, OnChanges {
827
+ private locationStrategy;
828
+ private navCtrl;
829
+ private elementRef;
830
+ private router;
831
+ private routerLink?;
832
+ routerDirection: RouterDirection;
833
+ routerAnimation?: AnimationBuilder;
834
+ constructor(locationStrategy: LocationStrategy, navCtrl: NavController, elementRef: ElementRef, router: Router, routerLink?: RouterLink | undefined);
835
+ ngOnInit(): void;
836
+ ngOnChanges(): void;
837
+ /**
838
+ * The `tabindex` is set to `0` by default on the host element when
839
+ * the `routerLink` directive is used. This causes issues with Ionic
840
+ * components that wrap an `a` or `button` element, such as `ion-item`.
841
+ * See issue https://github.com/angular/angular/issues/28345
842
+ *
843
+ * This method removes the `tabindex` attribute from the host element
844
+ * to allow the Ionic component to manage the focus state correctly.
845
+ */
846
+ private updateTabindex;
847
+ private updateTargetUrlAndHref;
848
+ /**
849
+ * @internal
850
+ */
851
+ onClick(ev: UIEvent): void;
852
+ static ɵfac: i0.ɵɵFactoryDeclaration<RouterLinkDelegateDirective, [null, null, null, null, { optional: true; }]>;
853
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RouterLinkDelegateDirective, ":not(a):not(area)[routerLink]", never, { "routerDirection": { "alias": "routerDirection"; "required": false; }; "routerAnimation": { "alias": "routerAnimation"; "required": false; }; }, {}, never, never, true, never>;
854
+ }
855
+ declare class RouterLinkWithHrefDelegateDirective implements OnInit, OnChanges {
856
+ private locationStrategy;
857
+ private navCtrl;
858
+ private elementRef;
859
+ private router;
860
+ private routerLink?;
861
+ routerDirection: RouterDirection;
862
+ routerAnimation?: AnimationBuilder;
863
+ constructor(locationStrategy: LocationStrategy, navCtrl: NavController, elementRef: ElementRef, router: Router, routerLink?: RouterLink | undefined);
864
+ ngOnInit(): void;
865
+ ngOnChanges(): void;
866
+ private updateTargetUrlAndHref;
867
+ /**
868
+ * @internal
869
+ */
870
+ onClick(): void;
871
+ static ɵfac: i0.ɵɵFactoryDeclaration<RouterLinkWithHrefDelegateDirective, [null, null, null, null, { optional: true; }]>;
872
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RouterLinkWithHrefDelegateDirective, "a[routerLink],area[routerLink]", never, { "routerDirection": { "alias": "routerDirection"; "required": false; }; "routerAnimation": { "alias": "routerAnimation"; "required": false; }; }, {}, never, never, true, never>;
873
+ }
874
+
875
+ declare abstract class IonTabs implements AfterViewInit, AfterContentInit, AfterContentChecked {
876
+ private navCtrl;
877
+ /**
878
+ * Note: These must be redeclared on each child class since it needs
879
+ * access to generated components such as IonRouterOutlet and IonTabBar.
880
+ */
881
+ abstract outlet: any;
882
+ abstract tabBar: any;
883
+ abstract tabBars: QueryList<any>;
884
+ abstract tabs: QueryList<any>;
885
+ tabsInner: ElementRef<HTMLDivElement>;
886
+ /**
887
+ * Emitted before the tab view is changed.
888
+ */
889
+ ionTabsWillChange: EventEmitter<{
890
+ tab: string;
891
+ }>;
892
+ /**
893
+ * Emitted after the tab view is changed.
894
+ */
895
+ ionTabsDidChange: EventEmitter<{
896
+ tab: string;
897
+ }>;
898
+ private tabBarSlot;
899
+ private hasTab;
900
+ private selectedTab?;
901
+ private leavingTab?;
902
+ constructor(navCtrl: NavController);
903
+ ngAfterViewInit(): void;
904
+ ngAfterContentInit(): void;
905
+ ngAfterContentChecked(): void;
906
+ /**
907
+ * @internal
908
+ */
909
+ onStackWillChange({ enteringView, tabSwitch }: StackWillChangeEvent): void;
910
+ /**
911
+ * @internal
912
+ */
913
+ onStackDidChange({ enteringView, tabSwitch }: StackDidChangeEvent): void;
914
+ /**
915
+ * When a tab button is clicked, there are several scenarios:
916
+ * 1. If the selected tab is currently active (the tab button has been clicked
917
+ * again), then it should go to the root view for that tab.
918
+ *
919
+ * a. Get the saved root view from the router outlet. If the saved root view
920
+ * matches the tabRootUrl, set the route view to this view including the
921
+ * navigation extras. Any `queryParams` or `fragment` declared on the tab
922
+ * button's `href` are also forwarded.
923
+ * b. If the saved root view from the router outlet does not match, navigate
924
+ * to the tabRootUrl, forwarding any `queryParams`/`fragment` declared on
925
+ * the tab button's `href`.
926
+ *
927
+ * 2. If the current tab tab is not currently selected, get the last route
928
+ * view from the router outlet.
929
+ *
930
+ * a. If the last route view exists, navigate to that view including any
931
+ * navigation extras.
932
+ * b. If the last route view doesn't exist, then navigate to the default
933
+ * tabRootUrl, forwarding any `queryParams`/`fragment` declared on the
934
+ * tab button's `href`.
935
+ */
936
+ select(tabOrEvent: string | CustomEvent): Promise<boolean> | undefined;
937
+ private setActiveTab;
938
+ private tabSwitch;
939
+ getSelected(): string | undefined;
940
+ /**
941
+ * Detects changes to the slot attribute of the tab bar.
942
+ *
943
+ * If the slot attribute has changed, then the tab bar
944
+ * should be relocated to the new slot position.
945
+ */
946
+ private detectSlotChanges;
947
+ /**
948
+ * Relocates the tab bar to the new slot position.
949
+ */
950
+ private relocateTabBar;
951
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonTabs, never>;
952
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IonTabs, "ion-tabs", never, {}, { "ionTabsWillChange": "ionTabsWillChange"; "ionTabsDidChange": "ionTabsDidChange"; }, never, never, true, never>;
953
+ }
954
+
955
+ declare function ProxyCmp(opts: {
956
+ defineCustomElementFn?: () => void;
957
+ inputs?: any;
958
+ methods?: any;
959
+ }): (cls: any) => any;
960
+
961
+ interface ControllerShape<Opts, HTMLElm> {
962
+ create(options: Opts): Promise<HTMLElm>;
963
+ dismiss(data?: any, role?: string, id?: string): Promise<boolean>;
964
+ getTop(): Promise<HTMLElm | undefined>;
965
+ }
966
+ declare class OverlayBaseController<Opts, Overlay> implements ControllerShape<Opts, Overlay> {
967
+ private ctrl;
968
+ constructor(ctrl: ControllerShape<Opts, Overlay>);
969
+ /**
970
+ * Creates a new overlay
971
+ */
972
+ create(opts?: Opts): Promise<Overlay>;
973
+ /**
974
+ * When `id` is not provided, it dismisses the top overlay.
975
+ */
976
+ dismiss(data?: any, role?: string, id?: string): Promise<boolean>;
977
+ /**
978
+ * Returns the top overlay.
979
+ */
980
+ getTop(): Promise<Overlay | undefined>;
981
+ }
982
+
983
+ /**
984
+ * Provides a way to customize when activated routes get reused.
985
+ */
986
+ declare class IonicRouteStrategy implements RouteReuseStrategy {
987
+ /**
988
+ * Whether the given route should detach for later reuse.
989
+ */
990
+ shouldDetach(_route: ActivatedRouteSnapshot): boolean;
991
+ /**
992
+ * Returns `false`, meaning the route (and its subtree) is never reattached
993
+ */
994
+ shouldAttach(_route: ActivatedRouteSnapshot): boolean;
995
+ /**
996
+ * A no-op; the route is never stored since this strategy never detaches routes for later re-use.
997
+ */
998
+ store(_route: ActivatedRouteSnapshot, _detachedTree: DetachedRouteHandle): void;
999
+ /**
1000
+ * Returns `null` because this strategy does not store routes for later re-use.
1001
+ */
1002
+ retrieve(_route: ActivatedRouteSnapshot): DetachedRouteHandle | null;
1003
+ /**
1004
+ * Determines if a route should be reused.
1005
+ * This strategy returns `true` when the future route config and
1006
+ * current route config are identical and all route parameters are identical.
1007
+ */
1008
+ shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean;
1009
+ }
1010
+
1011
+ declare const raf: (h: any) => any;
1012
+
1013
+ export { AngularDelegate, Config, ConfigToken, DomController, IonBackButton, IonModal, IonModalToken, IonNav, IonPopover, IonRouterOutlet, IonTabs, IonicRouteStrategy, MenuController, NavController, NavParams, OverlayBaseController, Platform, ProxyCmp, RouterLinkDelegateDirective, RouterLinkWithHrefDelegateDirective, ValueAccessor, bindLifecycleEvents, provideComponentInputBinding, raf, setIonicClasses };
1014
+ export type { IonicWindow, ModalOptions, PopoverOptions, ViewDidEnter, ViewDidLeave, ViewWillEnter, ViewWillLeave };