@ionic/angular 8.8.19-dev.11786610762.137bbb21 → 8.8.19-dev.11786735826.1fad7c0a

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 (246) hide show
  1. package/README.md +9 -6
  2. package/css/core.css +1 -1
  3. package/css/core.css.map +1 -1
  4. package/css/display.css +1 -1
  5. package/css/display.css.map +1 -1
  6. package/css/flex-utils.css +1 -1
  7. package/css/flex-utils.css.map +1 -1
  8. package/css/float-elements.css.map +1 -1
  9. package/css/global.bundle.css.map +1 -1
  10. package/css/ionic-swiper.css +1 -1
  11. package/css/ionic-swiper.css.map +1 -1
  12. package/css/ionic.bundle.css +1 -1
  13. package/css/ionic.bundle.css.map +1 -1
  14. package/css/normalize.css.map +1 -1
  15. package/css/padding.css.map +1 -1
  16. package/css/palettes/dark.always.css.map +1 -1
  17. package/css/palettes/dark.class.css.map +1 -1
  18. package/css/palettes/dark.system.css.map +1 -1
  19. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  20. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  21. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  22. package/css/palettes/high-contrast.always.css.map +1 -1
  23. package/css/palettes/high-contrast.class.css.map +1 -1
  24. package/css/palettes/high-contrast.system.css.map +1 -1
  25. package/css/structure.css.map +1 -1
  26. package/css/text-alignment.css.map +1 -1
  27. package/css/text-transformation.css.map +1 -1
  28. package/css/typography.css.map +1 -1
  29. package/css/utils.bundle.css +1 -1
  30. package/css/utils.bundle.css.map +1 -1
  31. package/fesm2022/ionic-angular-common.mjs +108 -97
  32. package/fesm2022/ionic-angular-common.mjs.map +1 -1
  33. package/fesm2022/ionic-angular-lazy.mjs +3550 -0
  34. package/fesm2022/ionic-angular-lazy.mjs.map +1 -0
  35. package/fesm2022/ionic-angular.mjs +1960 -1547
  36. package/fesm2022/ionic-angular.mjs.map +1 -1
  37. package/package.json +18 -18
  38. package/schematics/add/index.js +6 -6
  39. package/schematics/utils/ast.js +36 -4
  40. package/schematics/utils/config.js +10 -11
  41. package/schematics/utils/package.js +6 -4
  42. package/types/ionic-angular-common.d.ts +1031 -0
  43. package/{directives/proxies.d.ts → types/ionic-angular-lazy.d.ts} +713 -478
  44. package/types/ionic-angular.d.ts +1560 -0
  45. package/app-initialize.d.ts +0 -3
  46. package/common/directives/control-value-accessors/index.d.ts +0 -1
  47. package/common/directives/control-value-accessors/value-accessor.d.ts +0 -36
  48. package/common/directives/navigation/back-button.d.ts +0 -23
  49. package/common/directives/navigation/nav-params.d.ts +0 -45
  50. package/common/directives/navigation/nav.d.ts +0 -21
  51. package/common/directives/navigation/router-link-delegate.d.ts +0 -70
  52. package/common/directives/navigation/router-outlet.d.ts +0 -104
  53. package/common/directives/navigation/stack-controller.d.ts +0 -42
  54. package/common/directives/navigation/stack-utils.d.ts +0 -38
  55. package/common/directives/navigation/tabs.d.ts +0 -83
  56. package/common/index.d.ts +0 -22
  57. package/common/overlays/modal.d.ts +0 -62
  58. package/common/overlays/popover.d.ts +0 -46
  59. package/common/providers/angular-delegate.d.ts +0 -28
  60. package/common/providers/config.d.ts +0 -11
  61. package/common/providers/dom-controller.d.ts +0 -16
  62. package/common/providers/menu-controller.d.ts +0 -78
  63. package/common/providers/nav-controller.d.ts +0 -116
  64. package/common/providers/platform.d.ts +0 -174
  65. package/common/types/interfaces.d.ts +0 -8
  66. package/common/types/ionic-lifecycle-hooks.d.ts +0 -27
  67. package/common/types/overlay-options.d.ts +0 -16
  68. package/common/utils/overlay.d.ts +0 -21
  69. package/common/utils/proxy.d.ts +0 -8
  70. package/common/utils/routing.d.ts +0 -28
  71. package/common/utils/util.d.ts +0 -1
  72. package/css/ionic/bundle.ionic.css +0 -1
  73. package/css/ionic/bundle.ionic.css.map +0 -1
  74. package/css/ionic/core.ionic.css +0 -1
  75. package/css/ionic/core.ionic.css.map +0 -1
  76. package/css/ionic/global.bundle.ionic.css +0 -1
  77. package/css/ionic/global.bundle.ionic.css.map +0 -1
  78. package/css/ionic/ionic-swiper.ionic.css +0 -1
  79. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  80. package/css/ionic/link.ionic.css +0 -1
  81. package/css/ionic/link.ionic.css.map +0 -1
  82. package/css/ionic/structure.ionic.css +0 -1
  83. package/css/ionic/structure.ionic.css.map +0 -1
  84. package/css/ionic/typography.ionic.css +0 -1
  85. package/css/ionic/typography.ionic.css.map +0 -1
  86. package/css/ionic/utils.bundle.ionic.css +0 -1
  87. package/css/ionic/utils.bundle.ionic.css.map +0 -1
  88. package/directives/angular-component-lib/utils.d.ts +0 -9
  89. package/directives/control-value-accessors/boolean-value-accessor.d.ts +0 -10
  90. package/directives/control-value-accessors/index.d.ts +0 -4
  91. package/directives/control-value-accessors/numeric-value-accessor.d.ts +0 -11
  92. package/directives/control-value-accessors/select-value-accessor.d.ts +0 -9
  93. package/directives/control-value-accessors/text-value-accessor.d.ts +0 -9
  94. package/directives/navigation/ion-back-button.d.ts +0 -9
  95. package/directives/navigation/ion-nav.d.ts +0 -8
  96. package/directives/navigation/ion-router-outlet.d.ts +0 -25
  97. package/directives/navigation/ion-tabs.d.ts +0 -13
  98. package/directives/navigation/router-link-delegate.d.ts +0 -16
  99. package/directives/overlays/modal.d.ts +0 -6
  100. package/directives/overlays/popover.d.ts +0 -6
  101. package/directives/proxies-list.d.ts +0 -2
  102. package/directives/validators/index.d.ts +0 -2
  103. package/directives/validators/max-validator.d.ts +0 -12
  104. package/directives/validators/min-validator.d.ts +0 -12
  105. package/esm2022/app-initialize.mjs +0 -29
  106. package/esm2022/common/directives/control-value-accessors/index.mjs +0 -2
  107. package/esm2022/common/directives/control-value-accessors/value-accessor.mjs +0 -153
  108. package/esm2022/common/directives/navigation/back-button.mjs +0 -61
  109. package/esm2022/common/directives/navigation/nav-params.mjs +0 -47
  110. package/esm2022/common/directives/navigation/nav.mjs +0 -49
  111. package/esm2022/common/directives/navigation/router-link-delegate.mjs +0 -190
  112. package/esm2022/common/directives/navigation/router-outlet.mjs +0 -480
  113. package/esm2022/common/directives/navigation/stack-controller.mjs +0 -283
  114. package/esm2022/common/directives/navigation/stack-utils.mjs +0 -73
  115. package/esm2022/common/directives/navigation/tabs.mjs +0 -279
  116. package/esm2022/common/index.mjs +0 -20
  117. package/esm2022/common/ionic-angular-common.mjs +0 -5
  118. package/esm2022/common/overlays/modal.mjs +0 -103
  119. package/esm2022/common/overlays/popover.mjs +0 -91
  120. package/esm2022/common/providers/angular-delegate.mjs +0 -210
  121. package/esm2022/common/providers/config.mjs +0 -45
  122. package/esm2022/common/providers/dom-controller.mjs +0 -45
  123. package/esm2022/common/providers/menu-controller.mjs +0 -114
  124. package/esm2022/common/providers/nav-controller.mjs +0 -235
  125. package/esm2022/common/providers/platform.mjs +0 -258
  126. package/esm2022/common/types/interfaces.mjs +0 -2
  127. package/esm2022/common/types/ionic-lifecycle-hooks.mjs +0 -5
  128. package/esm2022/common/types/overlay-options.mjs +0 -2
  129. package/esm2022/common/utils/overlay.mjs +0 -26
  130. package/esm2022/common/utils/proxy.mjs +0 -47
  131. package/esm2022/common/utils/routing.mjs +0 -55
  132. package/esm2022/common/utils/util.mjs +0 -10
  133. package/esm2022/directives/angular-component-lib/utils.mjs +0 -59
  134. package/esm2022/directives/control-value-accessors/boolean-value-accessor.mjs +0 -42
  135. package/esm2022/directives/control-value-accessors/index.mjs +0 -5
  136. package/esm2022/directives/control-value-accessors/numeric-value-accessor.mjs +0 -50
  137. package/esm2022/directives/control-value-accessors/select-value-accessor.mjs +0 -39
  138. package/esm2022/directives/control-value-accessors/text-value-accessor.mjs +0 -38
  139. package/esm2022/directives/navigation/ion-back-button.mjs +0 -24
  140. package/esm2022/directives/navigation/ion-nav.mjs +0 -21
  141. package/esm2022/directives/navigation/ion-router-outlet.mjs +0 -52
  142. package/esm2022/directives/navigation/ion-tabs.mjs +0 -59
  143. package/esm2022/directives/navigation/router-link-delegate.mjs +0 -32
  144. package/esm2022/directives/overlays/modal.mjs +0 -22
  145. package/esm2022/directives/overlays/popover.mjs +0 -18
  146. package/esm2022/directives/proxies-list.mjs +0 -93
  147. package/esm2022/directives/proxies.mjs +0 -2465
  148. package/esm2022/directives/validators/index.mjs +0 -3
  149. package/esm2022/directives/validators/max-validator.mjs +0 -27
  150. package/esm2022/directives/validators/min-validator.mjs +0 -27
  151. package/esm2022/index.mjs +0 -32
  152. package/esm2022/ionic-angular.mjs +0 -5
  153. package/esm2022/ionic-module.mjs +0 -111
  154. package/esm2022/providers/action-sheet-controller.mjs +0 -19
  155. package/esm2022/providers/alert-controller.mjs +0 -19
  156. package/esm2022/providers/animation-controller.mjs +0 -38
  157. package/esm2022/providers/gesture-controller.mjs +0 -33
  158. package/esm2022/providers/loading-controller.mjs +0 -19
  159. package/esm2022/providers/menu-controller.mjs +0 -19
  160. package/esm2022/providers/modal-controller.mjs +0 -26
  161. package/esm2022/providers/picker-controller.mjs +0 -22
  162. package/esm2022/providers/popover-controller.mjs +0 -19
  163. package/esm2022/providers/toast-controller.mjs +0 -19
  164. package/esm2022/standalone/directives/angular-component-lib/utils.mjs +0 -59
  165. package/esm2022/standalone/directives/checkbox.mjs +0 -76
  166. package/esm2022/standalone/directives/datetime.mjs +0 -95
  167. package/esm2022/standalone/directives/icon.mjs +0 -35
  168. package/esm2022/standalone/directives/index.mjs +0 -13
  169. package/esm2022/standalone/directives/input-otp.mjs +0 -90
  170. package/esm2022/standalone/directives/input.mjs +0 -113
  171. package/esm2022/standalone/directives/proxies.mjs +0 -2356
  172. package/esm2022/standalone/directives/radio-group.mjs +0 -60
  173. package/esm2022/standalone/directives/range.mjs +0 -78
  174. package/esm2022/standalone/directives/searchbar.mjs +0 -82
  175. package/esm2022/standalone/directives/segment.mjs +0 -60
  176. package/esm2022/standalone/directives/select.mjs +0 -84
  177. package/esm2022/standalone/directives/textarea.mjs +0 -91
  178. package/esm2022/standalone/directives/toggle.mjs +0 -76
  179. package/esm2022/standalone/index.mjs +0 -25
  180. package/esm2022/standalone/ionic-angular-standalone.mjs +0 -5
  181. package/esm2022/standalone/navigation/back-button.mjs +0 -32
  182. package/esm2022/standalone/navigation/nav.mjs +0 -28
  183. package/esm2022/standalone/navigation/router-link-delegate.mjs +0 -28
  184. package/esm2022/standalone/navigation/router-outlet.mjs +0 -60
  185. package/esm2022/standalone/navigation/tabs.mjs +0 -58
  186. package/esm2022/standalone/overlays/modal.mjs +0 -32
  187. package/esm2022/standalone/overlays/popover.mjs +0 -28
  188. package/esm2022/standalone/providers/action-sheet-controller.mjs +0 -21
  189. package/esm2022/standalone/providers/alert-controller.mjs +0 -21
  190. package/esm2022/standalone/providers/animation-controller.mjs +0 -38
  191. package/esm2022/standalone/providers/gesture-controller.mjs +0 -33
  192. package/esm2022/standalone/providers/ionic-angular.mjs +0 -38
  193. package/esm2022/standalone/providers/loading-controller.mjs +0 -21
  194. package/esm2022/standalone/providers/menu-controller.mjs +0 -19
  195. package/esm2022/standalone/providers/modal-controller.mjs +0 -28
  196. package/esm2022/standalone/providers/picker-controller.mjs +0 -24
  197. package/esm2022/standalone/providers/popover-controller.mjs +0 -21
  198. package/esm2022/standalone/providers/toast-controller.mjs +0 -21
  199. package/fesm2022/ionic-angular-standalone.mjs +0 -3655
  200. package/fesm2022/ionic-angular-standalone.mjs.map +0 -1
  201. package/index.d.ts +0 -27
  202. package/ionic-module.d.ts +0 -28
  203. package/providers/action-sheet-controller.d.ts +0 -8
  204. package/providers/alert-controller.d.ts +0 -8
  205. package/providers/animation-controller.d.ts +0 -25
  206. package/providers/gesture-controller.d.ts +0 -13
  207. package/providers/loading-controller.d.ts +0 -8
  208. package/providers/menu-controller.d.ts +0 -7
  209. package/providers/modal-controller.d.ts +0 -12
  210. package/providers/picker-controller.d.ts +0 -11
  211. package/providers/popover-controller.d.ts +0 -9
  212. package/providers/toast-controller.d.ts +0 -8
  213. package/standalone/directives/angular-component-lib/utils.d.ts +0 -9
  214. package/standalone/directives/checkbox.d.ts +0 -30
  215. package/standalone/directives/datetime.d.ts +0 -30
  216. package/standalone/directives/icon.d.ts +0 -9
  217. package/standalone/directives/index.d.ts +0 -12
  218. package/standalone/directives/input-otp.d.ts +0 -49
  219. package/standalone/directives/input.d.ts +0 -47
  220. package/standalone/directives/proxies.d.ts +0 -1062
  221. package/standalone/directives/radio-group.d.ts +0 -18
  222. package/standalone/directives/range.d.ts +0 -47
  223. package/standalone/directives/searchbar.d.ts +0 -45
  224. package/standalone/directives/segment.d.ts +0 -19
  225. package/standalone/directives/select.d.ts +0 -34
  226. package/standalone/directives/textarea.d.ts +0 -37
  227. package/standalone/directives/toggle.d.ts +0 -28
  228. package/standalone/index.d.ts +0 -23
  229. package/standalone/navigation/back-button.d.ts +0 -9
  230. package/standalone/navigation/nav.d.ts +0 -8
  231. package/standalone/navigation/router-link-delegate.d.ts +0 -10
  232. package/standalone/navigation/router-outlet.d.ts +0 -25
  233. package/standalone/navigation/tabs.d.ts +0 -13
  234. package/standalone/overlays/modal.d.ts +0 -6
  235. package/standalone/overlays/popover.d.ts +0 -6
  236. package/standalone/providers/action-sheet-controller.d.ts +0 -8
  237. package/standalone/providers/alert-controller.d.ts +0 -8
  238. package/standalone/providers/animation-controller.d.ts +0 -25
  239. package/standalone/providers/gesture-controller.d.ts +0 -13
  240. package/standalone/providers/ionic-angular.d.ts +0 -7
  241. package/standalone/providers/loading-controller.d.ts +0 -8
  242. package/standalone/providers/menu-controller.d.ts +0 -7
  243. package/standalone/providers/modal-controller.d.ts +0 -12
  244. package/standalone/providers/picker-controller.d.ts +0 -11
  245. package/standalone/providers/popover-controller.d.ts +0 -9
  246. package/standalone/providers/toast-controller.d.ts +0 -8
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Inject, Optional, InjectionToken, inject, NgZone, ApplicationRef, Injector, createComponent, TemplateRef, Directive, ContentChild, EventEmitter, ViewContainerRef, EnvironmentInjector, Attribute, SkipSelf, Input, Output, reflectComponentType, HostListener, ElementRef, ViewChild } from '@angular/core';
2
+ import { Injectable, Inject, Optional, InjectionToken, inject, NgZone, ApplicationRef, Injector, createComponent, TemplateRef, ContentChild, Directive, EventEmitter, ViewContainerRef, EnvironmentInjector, Output, Input, Attribute, SkipSelf, reflectComponentType, HostListener, ElementRef, ViewChild } from '@angular/core';
3
3
  import * as i3 from '@angular/router';
4
4
  import { NavigationStart, NavigationCancel, NavigationError, PRIMARY_OUTLET, ChildrenOutletContexts, ActivatedRoute, Router } from '@angular/router';
5
5
  import * as i1 from '@angular/common';
@@ -25,10 +25,10 @@ class DomController {
25
25
  write(cb) {
26
26
  getQueue().write(cb);
27
27
  }
28
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomController, providedIn: 'root' });
28
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: DomController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: DomController, providedIn: 'root' });
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomController, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: DomController, decorators: [{
32
32
  type: Injectable,
33
33
  args: [{
34
34
  providedIn: 'root',
@@ -228,7 +228,6 @@ class Platform {
228
228
  }, { once: true });
229
229
  }
230
230
  else {
231
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
232
231
  readyResolve('dom');
233
232
  }
234
233
  });
@@ -382,18 +381,18 @@ class Platform {
382
381
  height() {
383
382
  return this.win.innerHeight;
384
383
  }
385
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Platform, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
386
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Platform, providedIn: 'root' });
384
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: Platform, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
385
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: Platform, providedIn: 'root' });
387
386
  }
388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Platform, decorators: [{
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: Platform, decorators: [{
389
388
  type: Injectable,
390
389
  args: [{
391
390
  providedIn: 'root',
392
391
  }]
393
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
392
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
394
393
  type: Inject,
395
394
  args: [DOCUMENT]
396
- }] }, { type: i0.NgZone }]; } });
395
+ }] }, { type: i0.NgZone }] });
397
396
  const readQueryParam = (url, key) => {
398
397
  key = key.replace(/[[\]\\]/g, '\\$&');
399
398
  const regex = new RegExp('[\\?&]' + key + '=([^&#]*)');
@@ -591,7 +590,6 @@ class NavController {
591
590
  }
592
591
  navigate(url, options) {
593
592
  if (Array.isArray(url)) {
594
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
595
593
  return this.router.navigate(url, options);
596
594
  }
597
595
  else {
@@ -613,21 +611,20 @@ class NavController {
613
611
  * that do not modify the url, such as `replaceUrl` which is why
614
612
  * `options` is passed in here.
615
613
  */
616
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
617
614
  return this.router.navigateByUrl(urlTree, options);
618
615
  }
619
616
  }
620
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavController, deps: [{ token: Platform }, { token: i1.Location }, { token: i3.UrlSerializer }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
621
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavController, providedIn: 'root' });
617
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NavController, deps: [{ token: Platform }, { token: i1.Location }, { token: i3.UrlSerializer }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
618
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NavController, providedIn: 'root' });
622
619
  }
623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavController, decorators: [{
620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NavController, decorators: [{
624
621
  type: Injectable,
625
622
  args: [{
626
623
  providedIn: 'root',
627
624
  }]
628
- }], ctorParameters: function () { return [{ type: Platform }, { type: i1.Location }, { type: i3.UrlSerializer }, { type: i3.Router, decorators: [{
625
+ }], ctorParameters: () => [{ type: Platform }, { type: i1.Location }, { type: i3.UrlSerializer }, { type: i3.Router, decorators: [{
629
626
  type: Optional
630
- }] }]; } });
627
+ }] }] });
631
628
  const getAnimation = (direction, animated, animationDirection) => {
632
629
  if (animated === false) {
633
630
  return undefined;
@@ -668,10 +665,10 @@ class Config {
668
665
  }
669
666
  return 0;
670
667
  }
671
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Config, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
672
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Config, providedIn: 'root' });
668
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: Config, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
669
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: Config, providedIn: 'root' });
673
670
  }
674
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Config, decorators: [{
671
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: Config, decorators: [{
675
672
  type: Injectable,
676
673
  args: [{
677
674
  providedIn: 'root',
@@ -745,10 +742,10 @@ class AngularDelegate {
745
742
  create(environmentInjector, injector, elementReferenceKey, customInjector) {
746
743
  return new AngularFrameworkDelegate(environmentInjector, injector, this.applicationRef, this.zone, elementReferenceKey, this.config.useSetInputAPI ?? false, customInjector);
747
744
  }
748
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
749
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate });
745
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: AngularDelegate, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
746
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: AngularDelegate });
750
747
  }
751
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate, decorators: [{
748
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: AngularDelegate, decorators: [{
752
749
  type: Injectable
753
750
  }] });
754
751
  class AngularFrameworkDelegate {
@@ -890,14 +887,20 @@ const attachView = (zone, environmentInjector, injector, applicationRef, elRefMa
890
887
  hostElement.classList.add(cssClass);
891
888
  }
892
889
  }
893
- const unbindEvents = bindLifecycleEvents(zone, instance, hostElement);
890
+ const unbindEvents = bindLifecycleEvents(zone, componentRef.changeDetectorRef, instance, hostElement);
894
891
  container.appendChild(hostElement);
895
892
  applicationRef.attachView(componentRef.hostView);
896
893
  /**
897
- * Run change detection so template bindings (e.g. `<ion-nav [root]="rootPage">`)
898
- * apply during this synchronous pass, before the web component runs its load
899
- * lifecycle. `createComponent` only runs the creation pass, so without this the
900
- * binding lands after the element has loaded, too late for `ion-nav` to read it.
894
+ * Run change detection on the freshly attached view so Angular's init hooks
895
+ * (`ngOnInit`, `ngAfterViewInit`) fire and template bindings (e.g.
896
+ * `<ion-nav [root]="rootPage">`) apply during this synchronous pass, before the
897
+ * web component runs its load lifecycle and dispatches its Ionic lifecycle events
898
+ * (`ionViewWillEnter`, etc.). `createComponent` only runs the creation pass; the
899
+ * init hooks and binding updates run during an update pass. Under Zone.js an
900
+ * implicit tick used to cover this, but zoneless Angular schedules no such tick,
901
+ * so without this the binding could land after the element has loaded (too late
902
+ * for `ion-nav` to read it) and the first `ionViewWillEnter` could run before
903
+ * `ngOnInit`.
901
904
  */
902
905
  componentRef.changeDetectorRef.detectChanges();
903
906
  elRefMap.set(hostElement, componentRef);
@@ -911,10 +914,24 @@ const LIFECYCLES = [
911
914
  LIFECYCLE_DID_LEAVE,
912
915
  LIFECYCLE_WILL_UNLOAD,
913
916
  ];
914
- const bindLifecycleEvents = (zone, instance, element) => {
917
+ const bindLifecycleEvents = (zone, changeDetectorRef, instance, element) => {
918
+ /**
919
+ * `zone.run` keeps the listener registration (and, under Zone.js, the handler
920
+ * execution) inside the Angular zone, so async work started inside a lifecycle
921
+ * hook is still zone-tracked. Under zoneless Angular it is a passthrough.
922
+ */
915
923
  return zone.run(() => {
916
924
  const unregisters = LIFECYCLES.filter((eventName) => typeof instance[eventName] === 'function').map((eventName) => {
917
- const handler = (ev) => instance[eventName](ev.detail);
925
+ const handler = (ev) => {
926
+ instance[eventName](ev.detail);
927
+ /**
928
+ * Ionic lifecycle events (`ionViewWillEnter`, etc.) are dispatched from
929
+ * the web component via a native event listener, so under zoneless
930
+ * Angular nothing schedules change detection for state the hook mutates.
931
+ * Mark the view dirty explicitly. This is a no-op-or-better under Zone.js.
932
+ */
933
+ changeDetectorRef.markForCheck();
934
+ };
918
935
  element.addEventListener(eventName, handler);
919
936
  return () => element.removeEventListener(eventName, handler);
920
937
  });
@@ -1017,14 +1034,7 @@ const MODAL_METHODS = [
1017
1034
  'setCurrentBreakpoint',
1018
1035
  'getCurrentBreakpoint',
1019
1036
  ];
1020
- let IonModal =
1021
- /**
1022
- * @Component extends from @Directive
1023
- * so by defining the inputs here we
1024
- * do not need to re-define them for the
1025
- * lazy loaded popover.
1026
- */
1027
- class IonModal {
1037
+ let IonModal = class IonModal {
1028
1038
  z;
1029
1039
  // TODO(FW-2827): type
1030
1040
  template;
@@ -1056,8 +1066,8 @@ class IonModal {
1056
1066
  'ionDragEnd',
1057
1067
  ]);
1058
1068
  }
1059
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
1060
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: IonModal, selector: "ion-modal", inputs: { animated: "animated", keepContentsMounted: "keepContentsMounted", backdropBreakpoint: "backdropBreakpoint", backdropDismiss: "backdropDismiss", breakpoints: "breakpoints", canDismiss: "canDismiss", cssClass: "cssClass", enterAnimation: "enterAnimation", expandToScroll: "expandToScroll", event: "event", focusTrap: "focusTrap", handle: "handle", handleBehavior: "handleBehavior", initialBreakpoint: "initialBreakpoint", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", presentingElement: "presentingElement", showBackdrop: "showBackdrop", translucent: "translucent", trigger: "trigger" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0 });
1069
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
1070
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: IonModal, isStandalone: true, selector: "ion-modal", inputs: { animated: "animated", keepContentsMounted: "keepContentsMounted", backdropBreakpoint: "backdropBreakpoint", backdropDismiss: "backdropDismiss", breakpoints: "breakpoints", canDismiss: "canDismiss", cssClass: "cssClass", enterAnimation: "enterAnimation", expandToScroll: "expandToScroll", event: "event", focusTrap: "focusTrap", handle: "handle", handleBehavior: "handleBehavior", initialBreakpoint: "initialBreakpoint", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", presentingElement: "presentingElement", showBackdrop: "showBackdrop", translucent: "translucent", trigger: "trigger" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0 });
1061
1071
  };
1062
1072
  IonModal = __decorate([
1063
1073
  ProxyCmp({
@@ -1071,14 +1081,14 @@ IonModal = __decorate([
1071
1081
  * lazy loaded popover.
1072
1082
  */
1073
1083
  ], IonModal);
1074
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonModal, decorators: [{
1084
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonModal, decorators: [{
1075
1085
  type: Directive,
1076
1086
  args: [{
1077
1087
  selector: 'ion-modal',
1078
1088
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1079
1089
  inputs: MODAL_INPUTS,
1080
1090
  }]
1081
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { template: [{
1091
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { template: [{
1082
1092
  type: ContentChild,
1083
1093
  args: [TemplateRef, { static: false }]
1084
1094
  }] } });
@@ -1107,14 +1117,7 @@ const POPOVER_INPUTS = [
1107
1117
  'side',
1108
1118
  ];
1109
1119
  const POPOVER_METHODS = ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss'];
1110
- let IonPopover =
1111
- /**
1112
- * @Component extends from @Directive
1113
- * so by defining the inputs here we
1114
- * do not need to re-define them for the
1115
- * lazy loaded popover.
1116
- */
1117
- class IonPopover {
1120
+ let IonPopover = class IonPopover {
1118
1121
  z;
1119
1122
  // TODO(FW-2827): type
1120
1123
  template;
@@ -1142,8 +1145,8 @@ class IonPopover {
1142
1145
  'didDismiss',
1143
1146
  ]);
1144
1147
  }
1145
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonPopover, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
1146
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: IonPopover, selector: "ion-popover", inputs: { alignment: "alignment", animated: "animated", arrow: "arrow", keepContentsMounted: "keepContentsMounted", backdropDismiss: "backdropDismiss", cssClass: "cssClass", dismissOnSelect: "dismissOnSelect", enterAnimation: "enterAnimation", event: "event", focusTrap: "focusTrap", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", showBackdrop: "showBackdrop", translucent: "translucent", trigger: "trigger", triggerAction: "triggerAction", reference: "reference", size: "size", side: "side" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0 });
1148
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonPopover, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
1149
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: IonPopover, isStandalone: true, selector: "ion-popover", inputs: { alignment: "alignment", animated: "animated", arrow: "arrow", keepContentsMounted: "keepContentsMounted", backdropDismiss: "backdropDismiss", cssClass: "cssClass", dismissOnSelect: "dismissOnSelect", enterAnimation: "enterAnimation", event: "event", focusTrap: "focusTrap", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", showBackdrop: "showBackdrop", translucent: "translucent", trigger: "trigger", triggerAction: "triggerAction", reference: "reference", size: "size", side: "side" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0 });
1147
1150
  };
1148
1151
  IonPopover = __decorate([
1149
1152
  ProxyCmp({
@@ -1157,14 +1160,14 @@ IonPopover = __decorate([
1157
1160
  * lazy loaded popover.
1158
1161
  */
1159
1162
  ], IonPopover);
1160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonPopover, decorators: [{
1163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonPopover, decorators: [{
1161
1164
  type: Directive,
1162
1165
  args: [{
1163
1166
  selector: 'ion-popover',
1164
1167
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1165
1168
  inputs: POPOVER_INPUTS,
1166
1169
  }]
1167
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { template: [{
1170
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { template: [{
1168
1171
  type: ContentChild,
1169
1172
  args: [TemplateRef, { static: false }]
1170
1173
  }] } });
@@ -1266,7 +1269,7 @@ class StackController {
1266
1269
  createView(ref, activatedRoute) {
1267
1270
  const url = getUrl(this.router, activatedRoute);
1268
1271
  const element = ref?.location?.nativeElement;
1269
- const unlistenEvents = bindLifecycleEvents(this.zone, ref.instance, element);
1272
+ const unlistenEvents = bindLifecycleEvents(this.zone, ref.changeDetectorRef, ref.instance, element);
1270
1273
  return {
1271
1274
  id: this.nextId++,
1272
1275
  stackId: computeStackId(this.tabsPrefix, url),
@@ -1432,7 +1435,6 @@ class StackController {
1432
1435
  return this.runningTask !== undefined;
1433
1436
  }
1434
1437
  destroy() {
1435
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1436
1438
  this.containerEl = undefined;
1437
1439
  this.views.forEach(destroyView);
1438
1440
  this.activeView = undefined;
@@ -1577,6 +1579,7 @@ class IonRouterOutlet {
1577
1579
  onEnd: (shouldContinue) => this.stackCtrl.endBackTransition(shouldContinue),
1578
1580
  }
1579
1581
  : undefined;
1582
+ this.nativeEl.swipeGesture = swipe;
1580
1583
  }
1581
1584
  constructor(name, tabs, commonLocation, elementRef, router, zone, activatedRoute, parentOutlet) {
1582
1585
  this.parentOutlet = parentOutlet;
@@ -1649,7 +1652,6 @@ class IonRouterOutlet {
1649
1652
  deactivate() {
1650
1653
  if (this.activated) {
1651
1654
  if (this.activatedView) {
1652
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1653
1655
  const context = this.getContext();
1654
1656
  this.activatedView.savedData = new Map(context.children['contexts']);
1655
1657
  /**
@@ -1694,7 +1696,6 @@ class IonRouterOutlet {
1694
1696
  const saved = enteringView.savedData;
1695
1697
  if (saved) {
1696
1698
  // self-restore
1697
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1698
1699
  const context = this.getContext();
1699
1700
  context.children['contexts'] = saved;
1700
1701
  }
@@ -1715,7 +1716,6 @@ class IonRouterOutlet {
1715
1716
  const component$ = new BehaviorSubject(null);
1716
1717
  const activatedRouteProxy = this.createActivatedRouteProxy(component$, activatedRoute);
1717
1718
  const injector = new OutletInjector(activatedRouteProxy, childContexts, this.location.injector);
1718
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1719
1719
  const component = snapshot.routeConfig.component ?? snapshot.component;
1720
1720
  /**
1721
1721
  * View components need to be added as a child of ion-router-outlet
@@ -1738,7 +1738,6 @@ class IonRouterOutlet {
1738
1738
  * At this point this.activated has been set earlier
1739
1739
  * in this function, so it is guaranteed to be non-null.
1740
1740
  */
1741
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1742
1741
  enteringView = this.stackCtrl.createView(this.activated, activatedRoute);
1743
1742
  // Store references to the proxy by component
1744
1743
  this.proxyMap.set(cmpRef.instance, activatedRouteProxy);
@@ -1849,10 +1848,10 @@ class IonRouterOutlet {
1849
1848
  proxy.component = activatedRoute.component;
1850
1849
  this.currentActivatedRoute$.next({ component, activatedRoute });
1851
1850
  }
1852
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonRouterOutlet, deps: [{ token: 'name', attribute: true }, { token: 'tabs', attribute: true, optional: true }, { token: i1.Location }, { token: i0.ElementRef }, { token: i3.Router }, { token: i0.NgZone }, { token: i3.ActivatedRoute }, { token: IonRouterOutlet, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
1853
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: IonRouterOutlet, selector: "ion-router-outlet", inputs: { animated: "animated", animation: "animation", mode: "mode", swipeGesture: "swipeGesture", name: "name" }, outputs: { stackWillChange: "stackWillChange", stackDidChange: "stackDidChange", activateEvents: "activate", deactivateEvents: "deactivate" }, exportAs: ["outlet"], ngImport: i0 });
1851
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonRouterOutlet, deps: [{ token: 'name', attribute: true }, { token: 'tabs', attribute: true, optional: true }, { token: i1.Location }, { token: i0.ElementRef }, { token: i3.Router }, { token: i0.NgZone }, { token: i3.ActivatedRoute }, { token: IonRouterOutlet, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
1852
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: IonRouterOutlet, isStandalone: true, selector: "ion-router-outlet", inputs: { animated: "animated", animation: "animation", mode: "mode", swipeGesture: "swipeGesture", name: "name" }, outputs: { stackWillChange: "stackWillChange", stackDidChange: "stackDidChange", activateEvents: "activate", deactivateEvents: "deactivate" }, exportAs: ["outlet"], ngImport: i0 });
1854
1853
  }
1855
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonRouterOutlet, decorators: [{
1854
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonRouterOutlet, decorators: [{
1856
1855
  type: Directive,
1857
1856
  args: [{
1858
1857
  selector: 'ion-router-outlet',
@@ -1860,7 +1859,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1860
1859
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1861
1860
  inputs: ['animated', 'animation', 'mode', 'swipeGesture'],
1862
1861
  }]
1863
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1862
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1864
1863
  type: Attribute,
1865
1864
  args: ['name']
1866
1865
  }] }, { type: undefined, decorators: [{
@@ -1872,7 +1871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1872
1871
  type: SkipSelf
1873
1872
  }, {
1874
1873
  type: Optional
1875
- }] }]; }, propDecorators: { name: [{
1874
+ }] }], propDecorators: { name: [{
1876
1875
  type: Input
1877
1876
  }], stackWillChange: [{
1878
1877
  type: Output
@@ -1966,10 +1965,10 @@ class RoutedComponentInputBinder {
1966
1965
  });
1967
1966
  this.outletDataSubscriptions.set(outlet, dataSubscription);
1968
1967
  }
1969
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1970
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoutedComponentInputBinder });
1968
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1969
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RoutedComponentInputBinder });
1971
1970
  }
1972
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
1971
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
1973
1972
  type: Injectable
1974
1973
  }] });
1975
1974
  const provideComponentInputBinding = () => {
@@ -2102,12 +2101,12 @@ class ValueAccessor {
2102
2101
  });
2103
2102
  }
2104
2103
  }
2105
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2106
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ValueAccessor, host: { listeners: { "ionBlur": "_handleBlurEvent($event.target)" } }, ngImport: i0 });
2104
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: ValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2105
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: ValueAccessor, isStandalone: true, host: { listeners: { "ionBlur": "_handleBlurEvent($event.target)" } }, ngImport: i0 });
2107
2106
  }
2108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValueAccessor, decorators: [{
2107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: ValueAccessor, decorators: [{
2109
2108
  type: Directive
2110
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{
2109
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }], propDecorators: { _handleBlurEvent: [{
2111
2110
  type: HostListener,
2112
2111
  args: ['ionBlur', ['$event.target']]
2113
2112
  }] } });
@@ -2180,23 +2179,23 @@ let IonBackButton = class IonBackButton {
2180
2179
  ev.preventDefault();
2181
2180
  }
2182
2181
  }
2183
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonBackButton, deps: [{ token: IonRouterOutlet, optional: true }, { token: NavController }, { token: Config }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
2184
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: IonBackButton, inputs: { color: "color", defaultHref: "defaultHref", disabled: "disabled", icon: "icon", mode: "mode", routerAnimation: "routerAnimation", text: "text", type: "type" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 });
2182
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonBackButton, deps: [{ token: IonRouterOutlet, optional: true }, { token: NavController }, { token: Config }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
2183
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: IonBackButton, isStandalone: true, inputs: { color: "color", defaultHref: "defaultHref", disabled: "disabled", icon: "icon", mode: "mode", routerAnimation: "routerAnimation", text: "text", type: "type" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 });
2185
2184
  };
2186
2185
  IonBackButton = __decorate([
2187
2186
  ProxyCmp({
2188
2187
  inputs: BACK_BUTTON_INPUTS,
2189
2188
  })
2190
2189
  ], IonBackButton);
2191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonBackButton, decorators: [{
2190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonBackButton, decorators: [{
2192
2191
  type: Directive,
2193
2192
  args: [{
2194
2193
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2195
2194
  inputs: BACK_BUTTON_INPUTS,
2196
2195
  }]
2197
- }], ctorParameters: function () { return [{ type: IonRouterOutlet, decorators: [{
2196
+ }], ctorParameters: () => [{ type: IonRouterOutlet, decorators: [{
2198
2197
  type: Optional
2199
- }] }, { type: NavController }, { type: Config }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onClick: [{
2198
+ }] }, { type: NavController }, { type: Config }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { onClick: [{
2200
2199
  type: HostListener,
2201
2200
  args: ['click', ['$event']]
2202
2201
  }] } });
@@ -2227,8 +2226,8 @@ let IonNav = class IonNav {
2227
2226
  ref.nativeElement.delegate = angularDelegate.create(environmentInjector, injector);
2228
2227
  proxyOutputs(this, this.el, ['ionNavDidChange', 'ionNavWillChange']);
2229
2228
  }
2230
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonNav, deps: [{ token: i0.ElementRef }, { token: i0.EnvironmentInjector }, { token: i0.Injector }, { token: AngularDelegate }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
2231
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: IonNav, inputs: { animated: "animated", animation: "animation", root: "root", rootParams: "rootParams", swipeGesture: "swipeGesture" }, ngImport: i0 });
2229
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonNav, deps: [{ token: i0.ElementRef }, { token: i0.EnvironmentInjector }, { token: i0.Injector }, { token: AngularDelegate }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
2230
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: IonNav, isStandalone: true, inputs: { animated: "animated", animation: "animation", root: "root", rootParams: "rootParams", swipeGesture: "swipeGesture" }, ngImport: i0 });
2232
2231
  };
2233
2232
  IonNav = __decorate([
2234
2233
  ProxyCmp({
@@ -2236,13 +2235,13 @@ IonNav = __decorate([
2236
2235
  methods: NAV_METHODS,
2237
2236
  })
2238
2237
  ], IonNav);
2239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonNav, decorators: [{
2238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonNav, decorators: [{
2240
2239
  type: Directive,
2241
2240
  args: [{
2242
2241
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2243
2242
  inputs: NAV_INPUTS,
2244
2243
  }]
2245
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: AngularDelegate }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; } });
2244
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: AngularDelegate }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
2246
2245
 
2247
2246
  /**
2248
2247
  * Adds support for Ionic routing directions and animations to the base Angular router link directive.
@@ -2357,17 +2356,17 @@ class RouterLinkDelegateDirective {
2357
2356
  */
2358
2357
  ev.preventDefault();
2359
2358
  }
2360
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterLinkDelegateDirective, deps: [{ token: i1.LocationStrategy }, { token: NavController }, { token: i0.ElementRef }, { token: i3.Router }, { token: i3.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2361
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: RouterLinkDelegateDirective, selector: ":not(a):not(area)[routerLink]", inputs: { routerDirection: "routerDirection", routerAnimation: "routerAnimation" }, host: { listeners: { "click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0 });
2359
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RouterLinkDelegateDirective, deps: [{ token: i1.LocationStrategy }, { token: NavController }, { token: i0.ElementRef }, { token: i3.Router }, { token: i3.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2360
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: RouterLinkDelegateDirective, isStandalone: true, selector: ":not(a):not(area)[routerLink]", inputs: { routerDirection: "routerDirection", routerAnimation: "routerAnimation" }, host: { listeners: { "click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0 });
2362
2361
  }
2363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterLinkDelegateDirective, decorators: [{
2362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RouterLinkDelegateDirective, decorators: [{
2364
2363
  type: Directive,
2365
2364
  args: [{
2366
2365
  selector: ':not(a):not(area)[routerLink]',
2367
2366
  }]
2368
- }], ctorParameters: function () { return [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
2367
+ }], ctorParameters: () => [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
2369
2368
  type: Optional
2370
- }] }]; }, propDecorators: { routerDirection: [{
2369
+ }] }], propDecorators: { routerDirection: [{
2371
2370
  type: Input
2372
2371
  }], routerAnimation: [{
2373
2372
  type: Input
@@ -2408,17 +2407,17 @@ class RouterLinkWithHrefDelegateDirective {
2408
2407
  onClick() {
2409
2408
  this.navCtrl.setDirection(this.routerDirection, undefined, undefined, this.routerAnimation);
2410
2409
  }
2411
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, deps: [{ token: i1.LocationStrategy }, { token: NavController }, { token: i0.ElementRef }, { token: i3.Router }, { token: i3.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2412
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: RouterLinkWithHrefDelegateDirective, selector: "a[routerLink],area[routerLink]", inputs: { routerDirection: "routerDirection", routerAnimation: "routerAnimation" }, host: { listeners: { "click": "onClick()" } }, usesOnChanges: true, ngImport: i0 });
2410
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, deps: [{ token: i1.LocationStrategy }, { token: NavController }, { token: i0.ElementRef }, { token: i3.Router }, { token: i3.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2411
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: RouterLinkWithHrefDelegateDirective, isStandalone: true, selector: "a[routerLink],area[routerLink]", inputs: { routerDirection: "routerDirection", routerAnimation: "routerAnimation" }, host: { listeners: { "click": "onClick()" } }, usesOnChanges: true, ngImport: i0 });
2413
2412
  }
2414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, decorators: [{
2413
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, decorators: [{
2415
2414
  type: Directive,
2416
2415
  args: [{
2417
2416
  selector: 'a[routerLink],area[routerLink]',
2418
2417
  }]
2419
- }], ctorParameters: function () { return [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
2418
+ }], ctorParameters: () => [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
2420
2419
  type: Optional
2421
- }] }]; }, propDecorators: { routerDirection: [{
2420
+ }] }], propDecorators: { routerDirection: [{
2422
2421
  type: Input
2423
2422
  }], routerAnimation: [{
2424
2423
  type: Input
@@ -2525,6 +2524,16 @@ class IonTabs {
2525
2524
  this.ionTabsDidChange.emit({ tab: stackId });
2526
2525
  }
2527
2526
  }
2527
+ /**
2528
+ * Host listener for the `ionTabButtonClick` event. Angular 22 enabled stricter
2529
+ * host-binding type checking, which types `$event` as the DOM `Event`. That is
2530
+ * not assignable to `select`'s public `string | CustomEvent` parameter, so this
2531
+ * thin wrapper narrows the event before forwarding to keep `select`'s public
2532
+ * signature intact.
2533
+ */
2534
+ onTabButtonClick(ev) {
2535
+ return this.select(ev);
2536
+ }
2528
2537
  /**
2529
2538
  * When a tab button is clicked, there are several scenarios:
2530
2539
  * 1. If the selected tab is currently active (the tab button has been clicked
@@ -2585,6 +2594,8 @@ class IonTabs {
2585
2594
  return;
2586
2595
  }
2587
2596
  const rootView = this.outlet.getRootView(tab);
2597
+ // Keep the explicit rootView null-guard; an optional-chain rewrite changes the short-circuit value spread below.
2598
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
2588
2599
  const navigationExtras = rootView && tabRootUrl === rootView.url && rootView.savedExtras;
2589
2600
  return this.navCtrl.navigateRoot(tabRootUrl, {
2590
2601
  ...navigationExtras,
@@ -2682,22 +2693,22 @@ class IonTabs {
2682
2693
  this.tabsInner.nativeElement.after(tabBar);
2683
2694
  }
2684
2695
  }
2685
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonTabs, deps: [{ token: NavController }], target: i0.ɵɵFactoryTarget.Directive });
2686
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: IonTabs, selector: "ion-tabs", outputs: { ionTabsWillChange: "ionTabsWillChange", ionTabsDidChange: "ionTabsDidChange" }, host: { listeners: { "ionTabButtonClick": "select($event)" } }, viewQueries: [{ propertyName: "tabsInner", first: true, predicate: ["tabsInner"], descendants: true, read: ElementRef, static: true }], ngImport: i0 });
2696
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonTabs, deps: [{ token: NavController }], target: i0.ɵɵFactoryTarget.Directive });
2697
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: IonTabs, isStandalone: true, selector: "ion-tabs", outputs: { ionTabsWillChange: "ionTabsWillChange", ionTabsDidChange: "ionTabsDidChange" }, host: { listeners: { "ionTabButtonClick": "onTabButtonClick($event)" } }, viewQueries: [{ propertyName: "tabsInner", first: true, predicate: ["tabsInner"], descendants: true, read: ElementRef, static: true }], ngImport: i0 });
2687
2698
  }
2688
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonTabs, decorators: [{
2699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonTabs, decorators: [{
2689
2700
  type: Directive,
2690
2701
  args: [{
2691
2702
  selector: 'ion-tabs',
2692
2703
  }]
2693
- }], ctorParameters: function () { return [{ type: NavController }]; }, propDecorators: { tabsInner: [{
2704
+ }], ctorParameters: () => [{ type: NavController }], propDecorators: { tabsInner: [{
2694
2705
  type: ViewChild,
2695
2706
  args: ['tabsInner', { read: ElementRef, static: true }]
2696
2707
  }], ionTabsWillChange: [{
2697
2708
  type: Output
2698
2709
  }], ionTabsDidChange: [{
2699
2710
  type: Output
2700
- }], select: [{
2711
+ }], onTabButtonClick: [{
2701
2712
  type: HostListener,
2702
2713
  args: ['ionTabButtonClick', ['$event']]
2703
2714
  }] } });
@@ -2787,5 +2798,5 @@ class IonicRouteStrategy {
2787
2798
  * Generated bundle index. Do not edit.
2788
2799
  */
2789
2800
 
2790
- 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 };
2801
+ export { AngularDelegate, Config, ConfigToken, DomController, IonBackButton, IonModal, IonModalToken, IonNav, IonPopover, IonRouterOutlet, IonTabs, IonicRouteStrategy, MenuController, NavController, NavParams, OverlayBaseController, Platform, ProxyCmp, RouterLinkDelegateDirective, RouterLinkWithHrefDelegateDirective, ValueAccessor, provideComponentInputBinding, raf, setIonicClasses };
2791
2802
  //# sourceMappingURL=ionic-angular-common.mjs.map