@ionic/angular 8.8.12-dev.11781813448.16e7a064 → 8.8.12-dev.11782931922.18ba507c
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.
- package/README.md +6 -6
- package/fesm2022/ionic-angular-common.mjs +104 -131
- package/fesm2022/ionic-angular-common.mjs.map +1 -1
- package/fesm2022/{ionic-angular-standalone.mjs → ionic-angular-lazy.mjs} +1702 -1725
- package/fesm2022/ionic-angular-lazy.mjs.map +1 -0
- package/fesm2022/ionic-angular.mjs +1801 -1296
- package/fesm2022/ionic-angular.mjs.map +1 -1
- package/package.json +18 -18
- package/schematics/add/index.js +5 -5
- package/schematics/utils/ast.js +36 -4
- package/schematics/utils/config.js +10 -11
- package/schematics/utils/package.js +5 -2
- package/types/ionic-angular-common.d.ts +1021 -0
- package/{directives/proxies.d.ts → types/ionic-angular-lazy.d.ts} +652 -399
- package/types/ionic-angular.d.ts +1560 -0
- package/app-initialize.d.ts +0 -3
- package/common/directives/control-value-accessors/index.d.ts +0 -1
- package/common/directives/control-value-accessors/value-accessor.d.ts +0 -36
- package/common/directives/navigation/back-button.d.ts +0 -23
- package/common/directives/navigation/nav-params.d.ts +0 -45
- package/common/directives/navigation/nav.d.ts +0 -21
- package/common/directives/navigation/router-link-delegate.d.ts +0 -70
- package/common/directives/navigation/router-outlet.d.ts +0 -104
- package/common/directives/navigation/stack-controller.d.ts +0 -42
- package/common/directives/navigation/stack-utils.d.ts +0 -38
- package/common/directives/navigation/tabs.d.ts +0 -83
- package/common/index.d.ts +0 -22
- package/common/overlays/modal.d.ts +0 -62
- package/common/overlays/popover.d.ts +0 -46
- package/common/providers/angular-delegate.d.ts +0 -28
- package/common/providers/config.d.ts +0 -11
- package/common/providers/dom-controller.d.ts +0 -16
- package/common/providers/menu-controller.d.ts +0 -78
- package/common/providers/nav-controller.d.ts +0 -116
- package/common/providers/platform.d.ts +0 -174
- package/common/types/interfaces.d.ts +0 -8
- package/common/types/ionic-lifecycle-hooks.d.ts +0 -27
- package/common/types/overlay-options.d.ts +0 -16
- package/common/utils/overlay.d.ts +0 -21
- package/common/utils/proxy.d.ts +0 -8
- package/common/utils/routing.d.ts +0 -28
- package/common/utils/util.d.ts +0 -1
- package/directives/angular-component-lib/utils.d.ts +0 -9
- package/directives/control-value-accessors/boolean-value-accessor.d.ts +0 -10
- package/directives/control-value-accessors/index.d.ts +0 -4
- package/directives/control-value-accessors/numeric-value-accessor.d.ts +0 -11
- package/directives/control-value-accessors/select-value-accessor.d.ts +0 -9
- package/directives/control-value-accessors/text-value-accessor.d.ts +0 -9
- package/directives/navigation/ion-back-button.d.ts +0 -9
- package/directives/navigation/ion-nav.d.ts +0 -8
- package/directives/navigation/ion-router-outlet.d.ts +0 -25
- package/directives/navigation/ion-tabs.d.ts +0 -13
- package/directives/navigation/router-link-delegate.d.ts +0 -16
- package/directives/overlays/modal.d.ts +0 -6
- package/directives/overlays/popover.d.ts +0 -6
- package/directives/proxies-list.d.ts +0 -2
- package/directives/validators/index.d.ts +0 -2
- package/directives/validators/max-validator.d.ts +0 -12
- package/directives/validators/min-validator.d.ts +0 -12
- package/esm2022/app-initialize.mjs +0 -29
- package/esm2022/common/directives/control-value-accessors/index.mjs +0 -2
- package/esm2022/common/directives/control-value-accessors/value-accessor.mjs +0 -153
- package/esm2022/common/directives/navigation/back-button.mjs +0 -61
- package/esm2022/common/directives/navigation/nav-params.mjs +0 -47
- package/esm2022/common/directives/navigation/nav.mjs +0 -49
- package/esm2022/common/directives/navigation/router-link-delegate.mjs +0 -190
- package/esm2022/common/directives/navigation/router-outlet.mjs +0 -480
- package/esm2022/common/directives/navigation/stack-controller.mjs +0 -280
- package/esm2022/common/directives/navigation/stack-utils.mjs +0 -73
- package/esm2022/common/directives/navigation/tabs.mjs +0 -279
- package/esm2022/common/index.mjs +0 -20
- package/esm2022/common/ionic-angular-common.mjs +0 -5
- package/esm2022/common/overlays/modal.mjs +0 -103
- package/esm2022/common/overlays/popover.mjs +0 -91
- package/esm2022/common/providers/angular-delegate.mjs +0 -210
- package/esm2022/common/providers/config.mjs +0 -45
- package/esm2022/common/providers/dom-controller.mjs +0 -45
- package/esm2022/common/providers/menu-controller.mjs +0 -114
- package/esm2022/common/providers/nav-controller.mjs +0 -235
- package/esm2022/common/providers/platform.mjs +0 -258
- package/esm2022/common/types/interfaces.mjs +0 -2
- package/esm2022/common/types/ionic-lifecycle-hooks.mjs +0 -5
- package/esm2022/common/types/overlay-options.mjs +0 -2
- package/esm2022/common/utils/overlay.mjs +0 -26
- package/esm2022/common/utils/proxy.mjs +0 -47
- package/esm2022/common/utils/routing.mjs +0 -55
- package/esm2022/common/utils/util.mjs +0 -10
- package/esm2022/directives/angular-component-lib/utils.mjs +0 -59
- package/esm2022/directives/control-value-accessors/boolean-value-accessor.mjs +0 -42
- package/esm2022/directives/control-value-accessors/index.mjs +0 -5
- package/esm2022/directives/control-value-accessors/numeric-value-accessor.mjs +0 -50
- package/esm2022/directives/control-value-accessors/select-value-accessor.mjs +0 -39
- package/esm2022/directives/control-value-accessors/text-value-accessor.mjs +0 -38
- package/esm2022/directives/navigation/ion-back-button.mjs +0 -24
- package/esm2022/directives/navigation/ion-nav.mjs +0 -21
- package/esm2022/directives/navigation/ion-router-outlet.mjs +0 -52
- package/esm2022/directives/navigation/ion-tabs.mjs +0 -59
- package/esm2022/directives/navigation/router-link-delegate.mjs +0 -32
- package/esm2022/directives/overlays/modal.mjs +0 -22
- package/esm2022/directives/overlays/popover.mjs +0 -18
- package/esm2022/directives/proxies-list.mjs +0 -90
- package/esm2022/directives/proxies.mjs +0 -2373
- package/esm2022/directives/validators/index.mjs +0 -3
- package/esm2022/directives/validators/max-validator.mjs +0 -27
- package/esm2022/directives/validators/min-validator.mjs +0 -27
- package/esm2022/index.mjs +0 -32
- package/esm2022/ionic-angular.mjs +0 -5
- package/esm2022/ionic-module.mjs +0 -111
- package/esm2022/providers/action-sheet-controller.mjs +0 -19
- package/esm2022/providers/alert-controller.mjs +0 -19
- package/esm2022/providers/animation-controller.mjs +0 -38
- package/esm2022/providers/gesture-controller.mjs +0 -33
- package/esm2022/providers/loading-controller.mjs +0 -19
- package/esm2022/providers/menu-controller.mjs +0 -19
- package/esm2022/providers/modal-controller.mjs +0 -26
- package/esm2022/providers/picker-controller.mjs +0 -22
- package/esm2022/providers/popover-controller.mjs +0 -19
- package/esm2022/providers/toast-controller.mjs +0 -19
- package/esm2022/standalone/directives/angular-component-lib/utils.mjs +0 -59
- package/esm2022/standalone/directives/checkbox.mjs +0 -76
- package/esm2022/standalone/directives/datetime.mjs +0 -95
- package/esm2022/standalone/directives/icon.mjs +0 -35
- package/esm2022/standalone/directives/index.mjs +0 -13
- package/esm2022/standalone/directives/input-otp.mjs +0 -90
- package/esm2022/standalone/directives/input.mjs +0 -113
- package/esm2022/standalone/directives/proxies.mjs +0 -2260
- package/esm2022/standalone/directives/radio-group.mjs +0 -60
- package/esm2022/standalone/directives/range.mjs +0 -78
- package/esm2022/standalone/directives/searchbar.mjs +0 -82
- package/esm2022/standalone/directives/segment.mjs +0 -60
- package/esm2022/standalone/directives/select.mjs +0 -84
- package/esm2022/standalone/directives/textarea.mjs +0 -91
- package/esm2022/standalone/directives/toggle.mjs +0 -76
- package/esm2022/standalone/index.mjs +0 -25
- package/esm2022/standalone/ionic-angular-standalone.mjs +0 -5
- package/esm2022/standalone/navigation/back-button.mjs +0 -32
- package/esm2022/standalone/navigation/nav.mjs +0 -28
- package/esm2022/standalone/navigation/router-link-delegate.mjs +0 -28
- package/esm2022/standalone/navigation/router-outlet.mjs +0 -60
- package/esm2022/standalone/navigation/tabs.mjs +0 -58
- package/esm2022/standalone/overlays/modal.mjs +0 -32
- package/esm2022/standalone/overlays/popover.mjs +0 -28
- package/esm2022/standalone/providers/action-sheet-controller.mjs +0 -21
- package/esm2022/standalone/providers/alert-controller.mjs +0 -21
- package/esm2022/standalone/providers/animation-controller.mjs +0 -38
- package/esm2022/standalone/providers/gesture-controller.mjs +0 -33
- package/esm2022/standalone/providers/ionic-angular.mjs +0 -38
- package/esm2022/standalone/providers/loading-controller.mjs +0 -21
- package/esm2022/standalone/providers/menu-controller.mjs +0 -19
- package/esm2022/standalone/providers/modal-controller.mjs +0 -28
- package/esm2022/standalone/providers/picker-controller.mjs +0 -24
- package/esm2022/standalone/providers/popover-controller.mjs +0 -21
- package/esm2022/standalone/providers/toast-controller.mjs +0 -21
- package/fesm2022/ionic-angular-standalone.mjs.map +0 -1
- package/index.d.ts +0 -27
- package/ionic-module.d.ts +0 -28
- package/providers/action-sheet-controller.d.ts +0 -8
- package/providers/alert-controller.d.ts +0 -8
- package/providers/animation-controller.d.ts +0 -25
- package/providers/gesture-controller.d.ts +0 -13
- package/providers/loading-controller.d.ts +0 -8
- package/providers/menu-controller.d.ts +0 -7
- package/providers/modal-controller.d.ts +0 -12
- package/providers/picker-controller.d.ts +0 -11
- package/providers/popover-controller.d.ts +0 -9
- package/providers/toast-controller.d.ts +0 -8
- package/standalone/directives/angular-component-lib/utils.d.ts +0 -9
- package/standalone/directives/checkbox.d.ts +0 -30
- package/standalone/directives/datetime.d.ts +0 -30
- package/standalone/directives/icon.d.ts +0 -9
- package/standalone/directives/index.d.ts +0 -12
- package/standalone/directives/input-otp.d.ts +0 -49
- package/standalone/directives/input.d.ts +0 -47
- package/standalone/directives/proxies.d.ts +0 -1035
- package/standalone/directives/radio-group.d.ts +0 -18
- package/standalone/directives/range.d.ts +0 -47
- package/standalone/directives/searchbar.d.ts +0 -45
- package/standalone/directives/segment.d.ts +0 -19
- package/standalone/directives/select.d.ts +0 -34
- package/standalone/directives/textarea.d.ts +0 -37
- package/standalone/directives/toggle.d.ts +0 -28
- package/standalone/index.d.ts +0 -23
- package/standalone/navigation/back-button.d.ts +0 -9
- package/standalone/navigation/nav.d.ts +0 -8
- package/standalone/navigation/router-link-delegate.d.ts +0 -10
- package/standalone/navigation/router-outlet.d.ts +0 -25
- package/standalone/navigation/tabs.d.ts +0 -13
- package/standalone/overlays/modal.d.ts +0 -6
- package/standalone/overlays/popover.d.ts +0 -6
- package/standalone/providers/action-sheet-controller.d.ts +0 -8
- package/standalone/providers/alert-controller.d.ts +0 -8
- package/standalone/providers/animation-controller.d.ts +0 -25
- package/standalone/providers/gesture-controller.d.ts +0 -13
- package/standalone/providers/ionic-angular.d.ts +0 -7
- package/standalone/providers/loading-controller.d.ts +0 -8
- package/standalone/providers/menu-controller.d.ts +0 -7
- package/standalone/providers/modal-controller.d.ts +0 -12
- package/standalone/providers/picker-controller.d.ts +0 -11
- package/standalone/providers/popover-controller.d.ts +0 -9
- package/standalone/providers/toast-controller.d.ts +0 -8
package/README.md
CHANGED
|
@@ -72,7 +72,7 @@ This guide shows you how to test the local Ionic Framework build with a new Angu
|
|
|
72
72
|
```sh
|
|
73
73
|
# Change to whichever directory you want the app in
|
|
74
74
|
cd ~/Documents/
|
|
75
|
-
ng new my-app --style=css --ssr=false
|
|
75
|
+
ng new my-app --style=css --ssr=false
|
|
76
76
|
cd my-app
|
|
77
77
|
```
|
|
78
78
|
|
|
@@ -99,16 +99,16 @@ The local Ionic Framework build is now active in the Angular app. Changes to the
|
|
|
99
99
|
|
|
100
100
|
This is where logic that is shared between lazy loaded and standalone components live. For example, the lazy loaded IonPopover and standalone IonPopover components extend from a base IonPopover implementation that exists in this directory.
|
|
101
101
|
|
|
102
|
-
**Note:** This directory exposes internal APIs and is only accessed in the `standalone` and `
|
|
102
|
+
**Note:** This directory exposes internal APIs and is only accessed in the `standalone` and `lazy` submodules. Ionic developers should never import directly from `@ionic/angular/common`. Instead, they should import from `@ionic/angular` or `@ionic/angular/lazy`.
|
|
103
103
|
|
|
104
104
|
**standalone**
|
|
105
105
|
|
|
106
|
-
This is where the standalone component implementations live. It was added as a separate entry point to avoid any lazy loaded logic from accidentally being pulled in to the final build. Having a separate directory allows the lazy loaded implementation to remain accessible from `@ionic/angular` for backwards compatibility.
|
|
106
|
+
This is where the standalone component implementations live. It was added as a separate entry point to avoid any lazy loaded logic from accidentally being pulled in to the final build. Having a separate directory allows the lazy loaded implementation to remain accessible from `@ionic/angular/lazy` for backwards compatibility.
|
|
107
107
|
|
|
108
|
-
Ionic developers can access this by importing from `@ionic/angular
|
|
108
|
+
Ionic developers can access this by importing from `@ionic/angular`.
|
|
109
109
|
|
|
110
|
-
**
|
|
110
|
+
**lazy**
|
|
111
111
|
|
|
112
112
|
This is where the lazy loaded component implementations live.
|
|
113
113
|
|
|
114
|
-
Ionic developers can access this by importing from `@ionic/angular`.
|
|
114
|
+
Ionic developers can access this by importing from `@ionic/angular/lazy`.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Inject, Optional, InjectionToken, inject, NgZone, ApplicationRef, Injector, createComponent, TemplateRef,
|
|
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: "
|
|
29
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
386
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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:
|
|
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: "
|
|
621
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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:
|
|
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: "
|
|
672
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
749
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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,16 @@ 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
|
|
898
|
-
*
|
|
899
|
-
* lifecycle. `createComponent` only runs
|
|
900
|
-
*
|
|
894
|
+
* Run change detection on the freshly attached view so Angular's init hooks
|
|
895
|
+
* (`ngOnInit`, `ngAfterViewInit`) fire before the web component dispatches its
|
|
896
|
+
* Ionic lifecycle events (`ionViewWillEnter`, etc.). `createComponent` only runs
|
|
897
|
+
* the creation pass. The init hooks run during an update pass. Under Zone.js an
|
|
898
|
+
* implicit tick used to cover this, but zoneless Angular schedules no such tick,
|
|
899
|
+
* so without this the first `ionViewWillEnter` could run before `ngOnInit`.
|
|
901
900
|
*/
|
|
902
901
|
componentRef.changeDetectorRef.detectChanges();
|
|
903
902
|
elRefMap.set(hostElement, componentRef);
|
|
@@ -911,10 +910,24 @@ const LIFECYCLES = [
|
|
|
911
910
|
LIFECYCLE_DID_LEAVE,
|
|
912
911
|
LIFECYCLE_WILL_UNLOAD,
|
|
913
912
|
];
|
|
914
|
-
const bindLifecycleEvents = (zone, instance, element) => {
|
|
913
|
+
const bindLifecycleEvents = (zone, changeDetectorRef, instance, element) => {
|
|
914
|
+
/**
|
|
915
|
+
* `zone.run` keeps the listener registration (and, under Zone.js, the handler
|
|
916
|
+
* execution) inside the Angular zone, so async work started inside a lifecycle
|
|
917
|
+
* hook is still zone-tracked. Under zoneless Angular it is a passthrough.
|
|
918
|
+
*/
|
|
915
919
|
return zone.run(() => {
|
|
916
920
|
const unregisters = LIFECYCLES.filter((eventName) => typeof instance[eventName] === 'function').map((eventName) => {
|
|
917
|
-
const handler = (ev) =>
|
|
921
|
+
const handler = (ev) => {
|
|
922
|
+
instance[eventName](ev.detail);
|
|
923
|
+
/**
|
|
924
|
+
* Ionic lifecycle events (`ionViewWillEnter`, etc.) are dispatched from
|
|
925
|
+
* the web component via a native event listener, so under zoneless
|
|
926
|
+
* Angular nothing schedules change detection for state the hook mutates.
|
|
927
|
+
* Mark the view dirty explicitly. This is a no-op-or-better under Zone.js.
|
|
928
|
+
*/
|
|
929
|
+
changeDetectorRef.markForCheck();
|
|
930
|
+
};
|
|
918
931
|
element.addEventListener(eventName, handler);
|
|
919
932
|
return () => element.removeEventListener(eventName, handler);
|
|
920
933
|
});
|
|
@@ -1017,14 +1030,7 @@ const MODAL_METHODS = [
|
|
|
1017
1030
|
'setCurrentBreakpoint',
|
|
1018
1031
|
'getCurrentBreakpoint',
|
|
1019
1032
|
];
|
|
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 {
|
|
1033
|
+
let IonModal = class IonModal {
|
|
1028
1034
|
z;
|
|
1029
1035
|
// TODO(FW-2827): type
|
|
1030
1036
|
template;
|
|
@@ -1056,8 +1062,8 @@ class IonModal {
|
|
|
1056
1062
|
'ionDragEnd',
|
|
1057
1063
|
]);
|
|
1058
1064
|
}
|
|
1059
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1060
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1065
|
+
/** @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 });
|
|
1066
|
+
/** @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
1067
|
};
|
|
1062
1068
|
IonModal = __decorate([
|
|
1063
1069
|
ProxyCmp({
|
|
@@ -1071,14 +1077,14 @@ IonModal = __decorate([
|
|
|
1071
1077
|
* lazy loaded popover.
|
|
1072
1078
|
*/
|
|
1073
1079
|
], IonModal);
|
|
1074
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1080
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonModal, decorators: [{
|
|
1075
1081
|
type: Directive,
|
|
1076
1082
|
args: [{
|
|
1077
1083
|
selector: 'ion-modal',
|
|
1078
1084
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1079
1085
|
inputs: MODAL_INPUTS,
|
|
1080
1086
|
}]
|
|
1081
|
-
}], ctorParameters:
|
|
1087
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { template: [{
|
|
1082
1088
|
type: ContentChild,
|
|
1083
1089
|
args: [TemplateRef, { static: false }]
|
|
1084
1090
|
}] } });
|
|
@@ -1107,14 +1113,7 @@ const POPOVER_INPUTS = [
|
|
|
1107
1113
|
'side',
|
|
1108
1114
|
];
|
|
1109
1115
|
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 {
|
|
1116
|
+
let IonPopover = class IonPopover {
|
|
1118
1117
|
z;
|
|
1119
1118
|
// TODO(FW-2827): type
|
|
1120
1119
|
template;
|
|
@@ -1142,8 +1141,8 @@ class IonPopover {
|
|
|
1142
1141
|
'didDismiss',
|
|
1143
1142
|
]);
|
|
1144
1143
|
}
|
|
1145
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1146
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1144
|
+
/** @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 });
|
|
1145
|
+
/** @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
1146
|
};
|
|
1148
1147
|
IonPopover = __decorate([
|
|
1149
1148
|
ProxyCmp({
|
|
@@ -1157,14 +1156,14 @@ IonPopover = __decorate([
|
|
|
1157
1156
|
* lazy loaded popover.
|
|
1158
1157
|
*/
|
|
1159
1158
|
], IonPopover);
|
|
1160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonPopover, decorators: [{
|
|
1161
1160
|
type: Directive,
|
|
1162
1161
|
args: [{
|
|
1163
1162
|
selector: 'ion-popover',
|
|
1164
1163
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1165
1164
|
inputs: POPOVER_INPUTS,
|
|
1166
1165
|
}]
|
|
1167
|
-
}], ctorParameters:
|
|
1166
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { template: [{
|
|
1168
1167
|
type: ContentChild,
|
|
1169
1168
|
args: [TemplateRef, { static: false }]
|
|
1170
1169
|
}] } });
|
|
@@ -1266,7 +1265,7 @@ class StackController {
|
|
|
1266
1265
|
createView(ref, activatedRoute) {
|
|
1267
1266
|
const url = getUrl(this.router, activatedRoute);
|
|
1268
1267
|
const element = ref?.location?.nativeElement;
|
|
1269
|
-
const unlistenEvents = bindLifecycleEvents(this.zone, ref.instance, element);
|
|
1268
|
+
const unlistenEvents = bindLifecycleEvents(this.zone, ref.changeDetectorRef, ref.instance, element);
|
|
1270
1269
|
return {
|
|
1271
1270
|
id: this.nextId++,
|
|
1272
1271
|
stackId: computeStackId(this.tabsPrefix, url),
|
|
@@ -1432,7 +1431,6 @@ class StackController {
|
|
|
1432
1431
|
return this.runningTask !== undefined;
|
|
1433
1432
|
}
|
|
1434
1433
|
destroy() {
|
|
1435
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1436
1434
|
this.containerEl = undefined;
|
|
1437
1435
|
this.views.forEach(destroyView);
|
|
1438
1436
|
this.activeView = undefined;
|
|
@@ -1574,6 +1572,7 @@ class IonRouterOutlet {
|
|
|
1574
1572
|
onEnd: (shouldContinue) => this.stackCtrl.endBackTransition(shouldContinue),
|
|
1575
1573
|
}
|
|
1576
1574
|
: undefined;
|
|
1575
|
+
this.nativeEl.swipeGesture = swipe;
|
|
1577
1576
|
}
|
|
1578
1577
|
constructor(name, tabs, commonLocation, elementRef, router, zone, activatedRoute, parentOutlet) {
|
|
1579
1578
|
this.parentOutlet = parentOutlet;
|
|
@@ -1646,7 +1645,6 @@ class IonRouterOutlet {
|
|
|
1646
1645
|
deactivate() {
|
|
1647
1646
|
if (this.activated) {
|
|
1648
1647
|
if (this.activatedView) {
|
|
1649
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1650
1648
|
const context = this.getContext();
|
|
1651
1649
|
this.activatedView.savedData = new Map(context.children['contexts']);
|
|
1652
1650
|
/**
|
|
@@ -1691,7 +1689,6 @@ class IonRouterOutlet {
|
|
|
1691
1689
|
const saved = enteringView.savedData;
|
|
1692
1690
|
if (saved) {
|
|
1693
1691
|
// self-restore
|
|
1694
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1695
1692
|
const context = this.getContext();
|
|
1696
1693
|
context.children['contexts'] = saved;
|
|
1697
1694
|
}
|
|
@@ -1712,7 +1709,6 @@ class IonRouterOutlet {
|
|
|
1712
1709
|
const component$ = new BehaviorSubject(null);
|
|
1713
1710
|
const activatedRouteProxy = this.createActivatedRouteProxy(component$, activatedRoute);
|
|
1714
1711
|
const injector = new OutletInjector(activatedRouteProxy, childContexts, this.location.injector);
|
|
1715
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1716
1712
|
const component = snapshot.routeConfig.component ?? snapshot.component;
|
|
1717
1713
|
/**
|
|
1718
1714
|
* View components need to be added as a child of ion-router-outlet
|
|
@@ -1735,7 +1731,6 @@ class IonRouterOutlet {
|
|
|
1735
1731
|
* At this point this.activated has been set earlier
|
|
1736
1732
|
* in this function, so it is guaranteed to be non-null.
|
|
1737
1733
|
*/
|
|
1738
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1739
1734
|
enteringView = this.stackCtrl.createView(this.activated, activatedRoute);
|
|
1740
1735
|
// Store references to the proxy by component
|
|
1741
1736
|
this.proxyMap.set(cmpRef.instance, activatedRouteProxy);
|
|
@@ -1846,10 +1841,10 @@ class IonRouterOutlet {
|
|
|
1846
1841
|
proxy.component = activatedRoute.component;
|
|
1847
1842
|
this.currentActivatedRoute$.next({ component, activatedRoute });
|
|
1848
1843
|
}
|
|
1849
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1850
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1844
|
+
/** @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 });
|
|
1845
|
+
/** @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
1846
|
}
|
|
1852
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1847
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonRouterOutlet, decorators: [{
|
|
1853
1848
|
type: Directive,
|
|
1854
1849
|
args: [{
|
|
1855
1850
|
selector: 'ion-router-outlet',
|
|
@@ -1857,7 +1852,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1857
1852
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1858
1853
|
inputs: ['animated', 'animation', 'mode', 'swipeGesture'],
|
|
1859
1854
|
}]
|
|
1860
|
-
}], ctorParameters:
|
|
1855
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1861
1856
|
type: Attribute,
|
|
1862
1857
|
args: ['name']
|
|
1863
1858
|
}] }, { type: undefined, decorators: [{
|
|
@@ -1869,7 +1864,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1869
1864
|
type: SkipSelf
|
|
1870
1865
|
}, {
|
|
1871
1866
|
type: Optional
|
|
1872
|
-
}] }]
|
|
1867
|
+
}] }], propDecorators: { name: [{
|
|
1873
1868
|
type: Input
|
|
1874
1869
|
}], stackWillChange: [{
|
|
1875
1870
|
type: Output
|
|
@@ -1963,10 +1958,10 @@ class RoutedComponentInputBinder {
|
|
|
1963
1958
|
});
|
|
1964
1959
|
this.outletDataSubscriptions.set(outlet, dataSubscription);
|
|
1965
1960
|
}
|
|
1966
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1967
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1961
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1962
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RoutedComponentInputBinder });
|
|
1968
1963
|
}
|
|
1969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1964
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
|
|
1970
1965
|
type: Injectable
|
|
1971
1966
|
}] });
|
|
1972
1967
|
const provideComponentInputBinding = () => {
|
|
@@ -2099,12 +2094,12 @@ class ValueAccessor {
|
|
|
2099
2094
|
});
|
|
2100
2095
|
}
|
|
2101
2096
|
}
|
|
2102
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2103
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2097
|
+
/** @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 });
|
|
2098
|
+
/** @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
2099
|
}
|
|
2105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: ValueAccessor, decorators: [{
|
|
2106
2101
|
type: Directive
|
|
2107
|
-
}], ctorParameters:
|
|
2102
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }], propDecorators: { _handleBlurEvent: [{
|
|
2108
2103
|
type: HostListener,
|
|
2109
2104
|
args: ['ionBlur', ['$event.target']]
|
|
2110
2105
|
}] } });
|
|
@@ -2177,23 +2172,23 @@ let IonBackButton = class IonBackButton {
|
|
|
2177
2172
|
ev.preventDefault();
|
|
2178
2173
|
}
|
|
2179
2174
|
}
|
|
2180
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2181
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2175
|
+
/** @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 });
|
|
2176
|
+
/** @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
2177
|
};
|
|
2183
2178
|
IonBackButton = __decorate([
|
|
2184
2179
|
ProxyCmp({
|
|
2185
2180
|
inputs: BACK_BUTTON_INPUTS,
|
|
2186
2181
|
})
|
|
2187
2182
|
], IonBackButton);
|
|
2188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonBackButton, decorators: [{
|
|
2189
2184
|
type: Directive,
|
|
2190
2185
|
args: [{
|
|
2191
2186
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2192
2187
|
inputs: BACK_BUTTON_INPUTS,
|
|
2193
2188
|
}]
|
|
2194
|
-
}], ctorParameters:
|
|
2189
|
+
}], ctorParameters: () => [{ type: IonRouterOutlet, decorators: [{
|
|
2195
2190
|
type: Optional
|
|
2196
|
-
}] }, { type: NavController }, { type: Config }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]
|
|
2191
|
+
}] }, { type: NavController }, { type: Config }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { onClick: [{
|
|
2197
2192
|
type: HostListener,
|
|
2198
2193
|
args: ['click', ['$event']]
|
|
2199
2194
|
}] } });
|
|
@@ -2224,8 +2219,8 @@ let IonNav = class IonNav {
|
|
|
2224
2219
|
ref.nativeElement.delegate = angularDelegate.create(environmentInjector, injector);
|
|
2225
2220
|
proxyOutputs(this, this.el, ['ionNavDidChange', 'ionNavWillChange']);
|
|
2226
2221
|
}
|
|
2227
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2228
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2222
|
+
/** @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 });
|
|
2223
|
+
/** @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
2224
|
};
|
|
2230
2225
|
IonNav = __decorate([
|
|
2231
2226
|
ProxyCmp({
|
|
@@ -2233,13 +2228,13 @@ IonNav = __decorate([
|
|
|
2233
2228
|
methods: NAV_METHODS,
|
|
2234
2229
|
})
|
|
2235
2230
|
], IonNav);
|
|
2236
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2231
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonNav, decorators: [{
|
|
2237
2232
|
type: Directive,
|
|
2238
2233
|
args: [{
|
|
2239
2234
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2240
2235
|
inputs: NAV_INPUTS,
|
|
2241
2236
|
}]
|
|
2242
|
-
}], ctorParameters:
|
|
2237
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: AngularDelegate }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
|
|
2243
2238
|
|
|
2244
2239
|
/**
|
|
2245
2240
|
* Adds support for Ionic routing directions and animations to the base Angular router link directive.
|
|
@@ -2265,44 +2260,10 @@ class RouterLinkDelegateDirective {
|
|
|
2265
2260
|
ngOnInit() {
|
|
2266
2261
|
this.updateTargetUrlAndHref();
|
|
2267
2262
|
this.updateTabindex();
|
|
2268
|
-
/**
|
|
2269
|
-
* Ionic components like `ion-item` render a native anchor in their shadow DOM,
|
|
2270
|
-
* so a modifier click (ctrl/meta/shift/alt) or a non-`_self` target should let
|
|
2271
|
-
* the browser handle the navigation natively (new tab, new window, download)
|
|
2272
|
-
* instead of navigating in-app.
|
|
2273
|
-
*
|
|
2274
|
-
* We listen in the capture phase so this runs before Angular's `RouterLink`
|
|
2275
|
-
* handler and our own bubble-phase `onClick`. On a native-navigation intent it
|
|
2276
|
-
* stops propagation to cancel the in-app navigation, but leaves `preventDefault`
|
|
2277
|
-
* alone so the native anchor can still act.
|
|
2278
|
-
*/
|
|
2279
|
-
this.elementRef.nativeElement.addEventListener('click', this.onCaptureClick, { capture: true });
|
|
2280
2263
|
}
|
|
2281
2264
|
ngOnChanges() {
|
|
2282
2265
|
this.updateTargetUrlAndHref();
|
|
2283
2266
|
}
|
|
2284
|
-
ngOnDestroy() {
|
|
2285
|
-
this.elementRef.nativeElement.removeEventListener('click', this.onCaptureClick, { capture: true });
|
|
2286
|
-
}
|
|
2287
|
-
onCaptureClick = (ev) => {
|
|
2288
|
-
if (this.opensNatively(ev)) {
|
|
2289
|
-
ev.stopImmediatePropagation();
|
|
2290
|
-
}
|
|
2291
|
-
};
|
|
2292
|
-
/**
|
|
2293
|
-
* True when the browser should handle the click natively instead of routing
|
|
2294
|
-
* in-app: a modifier was held (ctrl/meta/shift/alt), or the host targets
|
|
2295
|
-
* something other than `_self`. This mirrors the modifier set Angular's own
|
|
2296
|
-
* `RouterLink` guards on, so an Ionic `routerLink` behaves like a plain anchor
|
|
2297
|
-
* for new-tab, new-window, and download intents.
|
|
2298
|
-
*/
|
|
2299
|
-
opensNatively(ev) {
|
|
2300
|
-
if (ev instanceof MouseEvent && (ev.ctrlKey || ev.metaKey || ev.shiftKey || ev.altKey)) {
|
|
2301
|
-
return true;
|
|
2302
|
-
}
|
|
2303
|
-
const target = this.elementRef.nativeElement.target;
|
|
2304
|
-
return target != null && target !== '' && target !== '_self';
|
|
2305
|
-
}
|
|
2306
2267
|
/**
|
|
2307
2268
|
* The `tabindex` is set to `0` by default on the host element when
|
|
2308
2269
|
* the `routerLink` directive is used. This causes issues with Ionic
|
|
@@ -2354,17 +2315,17 @@ class RouterLinkDelegateDirective {
|
|
|
2354
2315
|
*/
|
|
2355
2316
|
ev.preventDefault();
|
|
2356
2317
|
}
|
|
2357
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2358
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2318
|
+
/** @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 });
|
|
2319
|
+
/** @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
2320
|
}
|
|
2360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2321
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RouterLinkDelegateDirective, decorators: [{
|
|
2361
2322
|
type: Directive,
|
|
2362
2323
|
args: [{
|
|
2363
2324
|
selector: ':not(a):not(area)[routerLink]',
|
|
2364
2325
|
}]
|
|
2365
|
-
}], ctorParameters:
|
|
2326
|
+
}], ctorParameters: () => [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
|
|
2366
2327
|
type: Optional
|
|
2367
|
-
}] }]
|
|
2328
|
+
}] }], propDecorators: { routerDirection: [{
|
|
2368
2329
|
type: Input
|
|
2369
2330
|
}], routerAnimation: [{
|
|
2370
2331
|
type: Input
|
|
@@ -2405,17 +2366,17 @@ class RouterLinkWithHrefDelegateDirective {
|
|
|
2405
2366
|
onClick() {
|
|
2406
2367
|
this.navCtrl.setDirection(this.routerDirection, undefined, undefined, this.routerAnimation);
|
|
2407
2368
|
}
|
|
2408
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2409
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2369
|
+
/** @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 });
|
|
2370
|
+
/** @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
2371
|
}
|
|
2411
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, decorators: [{
|
|
2412
2373
|
type: Directive,
|
|
2413
2374
|
args: [{
|
|
2414
2375
|
selector: 'a[routerLink],area[routerLink]',
|
|
2415
2376
|
}]
|
|
2416
|
-
}], ctorParameters:
|
|
2377
|
+
}], ctorParameters: () => [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
|
|
2417
2378
|
type: Optional
|
|
2418
|
-
}] }]
|
|
2379
|
+
}] }], propDecorators: { routerDirection: [{
|
|
2419
2380
|
type: Input
|
|
2420
2381
|
}], routerAnimation: [{
|
|
2421
2382
|
type: Input
|
|
@@ -2522,6 +2483,16 @@ class IonTabs {
|
|
|
2522
2483
|
this.ionTabsDidChange.emit({ tab: stackId });
|
|
2523
2484
|
}
|
|
2524
2485
|
}
|
|
2486
|
+
/**
|
|
2487
|
+
* Host listener for the `ionTabButtonClick` event. Angular 22 enabled stricter
|
|
2488
|
+
* host-binding type checking, which types `$event` as the DOM `Event`. That is
|
|
2489
|
+
* not assignable to `select`'s public `string | CustomEvent` parameter, so this
|
|
2490
|
+
* thin wrapper narrows the event before forwarding to keep `select`'s public
|
|
2491
|
+
* signature intact.
|
|
2492
|
+
*/
|
|
2493
|
+
onTabButtonClick(ev) {
|
|
2494
|
+
return this.select(ev);
|
|
2495
|
+
}
|
|
2525
2496
|
/**
|
|
2526
2497
|
* When a tab button is clicked, there are several scenarios:
|
|
2527
2498
|
* 1. If the selected tab is currently active (the tab button has been clicked
|
|
@@ -2582,6 +2553,8 @@ class IonTabs {
|
|
|
2582
2553
|
return;
|
|
2583
2554
|
}
|
|
2584
2555
|
const rootView = this.outlet.getRootView(tab);
|
|
2556
|
+
// Keep the explicit rootView null-guard; an optional-chain rewrite changes the short-circuit value spread below.
|
|
2557
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
2585
2558
|
const navigationExtras = rootView && tabRootUrl === rootView.url && rootView.savedExtras;
|
|
2586
2559
|
return this.navCtrl.navigateRoot(tabRootUrl, {
|
|
2587
2560
|
...navigationExtras,
|
|
@@ -2679,22 +2652,22 @@ class IonTabs {
|
|
|
2679
2652
|
this.tabsInner.nativeElement.after(tabBar);
|
|
2680
2653
|
}
|
|
2681
2654
|
}
|
|
2682
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2683
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2655
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonTabs, deps: [{ token: NavController }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2656
|
+
/** @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
2657
|
}
|
|
2685
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2658
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonTabs, decorators: [{
|
|
2686
2659
|
type: Directive,
|
|
2687
2660
|
args: [{
|
|
2688
2661
|
selector: 'ion-tabs',
|
|
2689
2662
|
}]
|
|
2690
|
-
}], ctorParameters:
|
|
2663
|
+
}], ctorParameters: () => [{ type: NavController }], propDecorators: { tabsInner: [{
|
|
2691
2664
|
type: ViewChild,
|
|
2692
2665
|
args: ['tabsInner', { read: ElementRef, static: true }]
|
|
2693
2666
|
}], ionTabsWillChange: [{
|
|
2694
2667
|
type: Output
|
|
2695
2668
|
}], ionTabsDidChange: [{
|
|
2696
2669
|
type: Output
|
|
2697
|
-
}],
|
|
2670
|
+
}], onTabButtonClick: [{
|
|
2698
2671
|
type: HostListener,
|
|
2699
2672
|
args: ['ionTabButtonClick', ['$event']]
|
|
2700
2673
|
}] } });
|
|
@@ -2784,5 +2757,5 @@ class IonicRouteStrategy {
|
|
|
2784
2757
|
* Generated bundle index. Do not edit.
|
|
2785
2758
|
*/
|
|
2786
2759
|
|
|
2787
|
-
export { AngularDelegate, Config, ConfigToken, DomController, IonBackButton, IonModal, IonModalToken, IonNav, IonPopover, IonRouterOutlet, IonTabs, IonicRouteStrategy, MenuController, NavController, NavParams, OverlayBaseController, Platform, ProxyCmp, RouterLinkDelegateDirective, RouterLinkWithHrefDelegateDirective, ValueAccessor,
|
|
2760
|
+
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
2761
|
//# sourceMappingURL=ionic-angular-common.mjs.map
|