@ionic/angular 8.8.16-dev.11784841344.1aa1a41c → 8.8.16-dev.11784913436.1a334b43

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 +5 -5
  39. package/schematics/utils/ast.js +36 -4
  40. package/schematics/utils/config.js +10 -11
  41. package/schematics/utils/package.js +5 -2
  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 -280
  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;
@@ -1574,6 +1576,7 @@ class IonRouterOutlet {
1574
1576
  onEnd: (shouldContinue) => this.stackCtrl.endBackTransition(shouldContinue),
1575
1577
  }
1576
1578
  : undefined;
1579
+ this.nativeEl.swipeGesture = swipe;
1577
1580
  }
1578
1581
  constructor(name, tabs, commonLocation, elementRef, router, zone, activatedRoute, parentOutlet) {
1579
1582
  this.parentOutlet = parentOutlet;
@@ -1646,7 +1649,6 @@ class IonRouterOutlet {
1646
1649
  deactivate() {
1647
1650
  if (this.activated) {
1648
1651
  if (this.activatedView) {
1649
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1650
1652
  const context = this.getContext();
1651
1653
  this.activatedView.savedData = new Map(context.children['contexts']);
1652
1654
  /**
@@ -1691,7 +1693,6 @@ class IonRouterOutlet {
1691
1693
  const saved = enteringView.savedData;
1692
1694
  if (saved) {
1693
1695
  // self-restore
1694
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1695
1696
  const context = this.getContext();
1696
1697
  context.children['contexts'] = saved;
1697
1698
  }
@@ -1712,7 +1713,6 @@ class IonRouterOutlet {
1712
1713
  const component$ = new BehaviorSubject(null);
1713
1714
  const activatedRouteProxy = this.createActivatedRouteProxy(component$, activatedRoute);
1714
1715
  const injector = new OutletInjector(activatedRouteProxy, childContexts, this.location.injector);
1715
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1716
1716
  const component = snapshot.routeConfig.component ?? snapshot.component;
1717
1717
  /**
1718
1718
  * View components need to be added as a child of ion-router-outlet
@@ -1735,7 +1735,6 @@ class IonRouterOutlet {
1735
1735
  * At this point this.activated has been set earlier
1736
1736
  * in this function, so it is guaranteed to be non-null.
1737
1737
  */
1738
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1739
1738
  enteringView = this.stackCtrl.createView(this.activated, activatedRoute);
1740
1739
  // Store references to the proxy by component
1741
1740
  this.proxyMap.set(cmpRef.instance, activatedRouteProxy);
@@ -1846,10 +1845,10 @@ class IonRouterOutlet {
1846
1845
  proxy.component = activatedRoute.component;
1847
1846
  this.currentActivatedRoute$.next({ component, activatedRoute });
1848
1847
  }
1849
- /** @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 });
1850
- /** @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 });
1848
+ /** @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 });
1849
+ /** @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 });
1851
1850
  }
1852
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonRouterOutlet, decorators: [{
1851
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonRouterOutlet, decorators: [{
1853
1852
  type: Directive,
1854
1853
  args: [{
1855
1854
  selector: 'ion-router-outlet',
@@ -1857,7 +1856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1857
1856
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1858
1857
  inputs: ['animated', 'animation', 'mode', 'swipeGesture'],
1859
1858
  }]
1860
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1859
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1861
1860
  type: Attribute,
1862
1861
  args: ['name']
1863
1862
  }] }, { type: undefined, decorators: [{
@@ -1869,7 +1868,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1869
1868
  type: SkipSelf
1870
1869
  }, {
1871
1870
  type: Optional
1872
- }] }]; }, propDecorators: { name: [{
1871
+ }] }], propDecorators: { name: [{
1873
1872
  type: Input
1874
1873
  }], stackWillChange: [{
1875
1874
  type: Output
@@ -1963,10 +1962,10 @@ class RoutedComponentInputBinder {
1963
1962
  });
1964
1963
  this.outletDataSubscriptions.set(outlet, dataSubscription);
1965
1964
  }
1966
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1967
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoutedComponentInputBinder });
1965
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1966
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RoutedComponentInputBinder });
1968
1967
  }
1969
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
1968
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
1970
1969
  type: Injectable
1971
1970
  }] });
1972
1971
  const provideComponentInputBinding = () => {
@@ -2099,12 +2098,12 @@ class ValueAccessor {
2099
2098
  });
2100
2099
  }
2101
2100
  }
2102
- /** @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 });
2103
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ValueAccessor, host: { listeners: { "ionBlur": "_handleBlurEvent($event.target)" } }, ngImport: i0 });
2101
+ /** @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 });
2102
+ /** @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 });
2104
2103
  }
2105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValueAccessor, decorators: [{
2104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: ValueAccessor, decorators: [{
2106
2105
  type: Directive
2107
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{
2106
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }], propDecorators: { _handleBlurEvent: [{
2108
2107
  type: HostListener,
2109
2108
  args: ['ionBlur', ['$event.target']]
2110
2109
  }] } });
@@ -2177,23 +2176,23 @@ let IonBackButton = class IonBackButton {
2177
2176
  ev.preventDefault();
2178
2177
  }
2179
2178
  }
2180
- /** @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 });
2181
- /** @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 });
2179
+ /** @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 });
2180
+ /** @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 });
2182
2181
  };
2183
2182
  IonBackButton = __decorate([
2184
2183
  ProxyCmp({
2185
2184
  inputs: BACK_BUTTON_INPUTS,
2186
2185
  })
2187
2186
  ], IonBackButton);
2188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonBackButton, decorators: [{
2187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonBackButton, decorators: [{
2189
2188
  type: Directive,
2190
2189
  args: [{
2191
2190
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2192
2191
  inputs: BACK_BUTTON_INPUTS,
2193
2192
  }]
2194
- }], ctorParameters: function () { return [{ type: IonRouterOutlet, decorators: [{
2193
+ }], ctorParameters: () => [{ type: IonRouterOutlet, decorators: [{
2195
2194
  type: Optional
2196
- }] }, { type: NavController }, { type: Config }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onClick: [{
2195
+ }] }, { type: NavController }, { type: Config }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { onClick: [{
2197
2196
  type: HostListener,
2198
2197
  args: ['click', ['$event']]
2199
2198
  }] } });
@@ -2224,8 +2223,8 @@ let IonNav = class IonNav {
2224
2223
  ref.nativeElement.delegate = angularDelegate.create(environmentInjector, injector);
2225
2224
  proxyOutputs(this, this.el, ['ionNavDidChange', 'ionNavWillChange']);
2226
2225
  }
2227
- /** @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 });
2228
- /** @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 });
2226
+ /** @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 });
2227
+ /** @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 });
2229
2228
  };
2230
2229
  IonNav = __decorate([
2231
2230
  ProxyCmp({
@@ -2233,13 +2232,13 @@ IonNav = __decorate([
2233
2232
  methods: NAV_METHODS,
2234
2233
  })
2235
2234
  ], IonNav);
2236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonNav, decorators: [{
2235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonNav, decorators: [{
2237
2236
  type: Directive,
2238
2237
  args: [{
2239
2238
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2240
2239
  inputs: NAV_INPUTS,
2241
2240
  }]
2242
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: AngularDelegate }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; } });
2241
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: AngularDelegate }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
2243
2242
 
2244
2243
  /**
2245
2244
  * Adds support for Ionic routing directions and animations to the base Angular router link directive.
@@ -2354,17 +2353,17 @@ class RouterLinkDelegateDirective {
2354
2353
  */
2355
2354
  ev.preventDefault();
2356
2355
  }
2357
- /** @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 });
2358
- /** @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 });
2356
+ /** @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 });
2357
+ /** @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 });
2359
2358
  }
2360
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterLinkDelegateDirective, decorators: [{
2359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RouterLinkDelegateDirective, decorators: [{
2361
2360
  type: Directive,
2362
2361
  args: [{
2363
2362
  selector: ':not(a):not(area)[routerLink]',
2364
2363
  }]
2365
- }], ctorParameters: function () { return [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
2364
+ }], ctorParameters: () => [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
2366
2365
  type: Optional
2367
- }] }]; }, propDecorators: { routerDirection: [{
2366
+ }] }], propDecorators: { routerDirection: [{
2368
2367
  type: Input
2369
2368
  }], routerAnimation: [{
2370
2369
  type: Input
@@ -2405,17 +2404,17 @@ class RouterLinkWithHrefDelegateDirective {
2405
2404
  onClick() {
2406
2405
  this.navCtrl.setDirection(this.routerDirection, undefined, undefined, this.routerAnimation);
2407
2406
  }
2408
- /** @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 });
2409
- /** @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 });
2407
+ /** @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 });
2408
+ /** @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 });
2410
2409
  }
2411
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, decorators: [{
2410
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, decorators: [{
2412
2411
  type: Directive,
2413
2412
  args: [{
2414
2413
  selector: 'a[routerLink],area[routerLink]',
2415
2414
  }]
2416
- }], ctorParameters: function () { return [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
2415
+ }], ctorParameters: () => [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
2417
2416
  type: Optional
2418
- }] }]; }, propDecorators: { routerDirection: [{
2417
+ }] }], propDecorators: { routerDirection: [{
2419
2418
  type: Input
2420
2419
  }], routerAnimation: [{
2421
2420
  type: Input
@@ -2522,6 +2521,16 @@ class IonTabs {
2522
2521
  this.ionTabsDidChange.emit({ tab: stackId });
2523
2522
  }
2524
2523
  }
2524
+ /**
2525
+ * Host listener for the `ionTabButtonClick` event. Angular 22 enabled stricter
2526
+ * host-binding type checking, which types `$event` as the DOM `Event`. That is
2527
+ * not assignable to `select`'s public `string | CustomEvent` parameter, so this
2528
+ * thin wrapper narrows the event before forwarding to keep `select`'s public
2529
+ * signature intact.
2530
+ */
2531
+ onTabButtonClick(ev) {
2532
+ return this.select(ev);
2533
+ }
2525
2534
  /**
2526
2535
  * When a tab button is clicked, there are several scenarios:
2527
2536
  * 1. If the selected tab is currently active (the tab button has been clicked
@@ -2582,6 +2591,8 @@ class IonTabs {
2582
2591
  return;
2583
2592
  }
2584
2593
  const rootView = this.outlet.getRootView(tab);
2594
+ // Keep the explicit rootView null-guard; an optional-chain rewrite changes the short-circuit value spread below.
2595
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
2585
2596
  const navigationExtras = rootView && tabRootUrl === rootView.url && rootView.savedExtras;
2586
2597
  return this.navCtrl.navigateRoot(tabRootUrl, {
2587
2598
  ...navigationExtras,
@@ -2679,22 +2690,22 @@ class IonTabs {
2679
2690
  this.tabsInner.nativeElement.after(tabBar);
2680
2691
  }
2681
2692
  }
2682
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonTabs, deps: [{ token: NavController }], target: i0.ɵɵFactoryTarget.Directive });
2683
- /** @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 });
2693
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonTabs, deps: [{ token: NavController }], target: i0.ɵɵFactoryTarget.Directive });
2694
+ /** @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 });
2684
2695
  }
2685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonTabs, decorators: [{
2696
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonTabs, decorators: [{
2686
2697
  type: Directive,
2687
2698
  args: [{
2688
2699
  selector: 'ion-tabs',
2689
2700
  }]
2690
- }], ctorParameters: function () { return [{ type: NavController }]; }, propDecorators: { tabsInner: [{
2701
+ }], ctorParameters: () => [{ type: NavController }], propDecorators: { tabsInner: [{
2691
2702
  type: ViewChild,
2692
2703
  args: ['tabsInner', { read: ElementRef, static: true }]
2693
2704
  }], ionTabsWillChange: [{
2694
2705
  type: Output
2695
2706
  }], ionTabsDidChange: [{
2696
2707
  type: Output
2697
- }], select: [{
2708
+ }], onTabButtonClick: [{
2698
2709
  type: HostListener,
2699
2710
  args: ['ionTabButtonClick', ['$event']]
2700
2711
  }] } });
@@ -2784,5 +2795,5 @@ class IonicRouteStrategy {
2784
2795
  * Generated bundle index. Do not edit.
2785
2796
  */
2786
2797
 
2787
- 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 };
2798
+ 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 };
2788
2799
  //# sourceMappingURL=ionic-angular-common.mjs.map