@nativescript/angular 21.0.1-alpha.9 → 21.2.0-alpha.0

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.
@@ -1,14 +1,14 @@
1
1
  import * as i1 from '@nativescript/core';
2
2
  import { View, LayoutBase, ContentView, ProxyViewContainer, Page, platformNames, GridLayout, Application, Trace, Frame, Utils, TextView, Color, removeTaggedAdditionalCSS, profile, FormattedString, Span, AbsoluteLayout, ActivityIndicator, Button, DatePicker, DockLayout, HtmlView, Image, Label, ListPicker, ListView, Placeholder, Progress, Repeater, RootLayout, ScrollView, SearchBar, SegmentedBar, SegmentedBarItem, Slider, SplitView, StackLayout, FlexboxLayout, Switch, TabView, TextField, TimePicker, WebView, WrapLayout, unsetValue, addTaggedAdditionalCSS, getViewById, Observable, ActionItem, NavigationButton, ActionBar, ObservableArray, TabViewItem, Device, knownFolders, File, KeyframeAnimation, animationTimingFunctionConverter, parseKeyframeDeclarations, CSSHelper, CssAnimationProperty, eachDescendant, path } from '@nativescript/core';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, Inject, ComponentRef, Injectable, Optional, PlatformRef, NgModuleRef, ApplicationRef, NgZone, inject, Injector, ViewEncapsulation, runInInjectionContext, ElementRef, Directive, EventEmitter, Output, NgModule, ComponentFactoryResolver, ChangeDetectorRef, ViewContainerRef, ViewChild, NO_ERRORS_SCHEMA, Component, Input, IterableDiffers, TemplateRef, forwardRef, HostListener, ContentChild, ChangeDetectionStrategy, Host, ErrorHandler, SkipSelf, ɵINJECTOR_SCOPE as _INJECTOR_SCOPE, RendererFactory2, ApplicationModule, Sanitizer, PLATFORM_ID, createPlatformFactory, platformCore, ɵinternalCreateApplication as _internalCreateApplication, createComponent, makeEnvironmentProviders, ContentChildren, EnvironmentInjector, HostAttributeToken, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, isDevMode, ɵinternalProvideZoneChangeDetection as _internalProvideZoneChangeDetection } from '@angular/core';
4
+ import { InjectionToken, Inject, ComponentRef, Injectable, Optional, PlatformRef, NgModuleRef, ApplicationRef, NgZone, inject, Injector, ViewEncapsulation, runInInjectionContext, ElementRef, Directive, EventEmitter, Output, NgModule, createComponent, ComponentFactoryResolver, ChangeDetectorRef, ViewContainerRef, ViewChild, NO_ERRORS_SCHEMA, Component, Input, IterableDiffers, TemplateRef, forwardRef, HostListener, ContentChild, ChangeDetectionStrategy, Host, ErrorHandler, SkipSelf, ɵINJECTOR_SCOPE as _INJECTOR_SCOPE, RendererFactory2, ApplicationModule, Sanitizer, PLATFORM_ID, createPlatformFactory, platformCore, ɵinternalCreateApplication as _internalCreateApplication, makeEnvironmentProviders, untracked, signal, computed, booleanAttribute, Renderer2, ContentChildren, reflectComponentType, EnvironmentInjector, HostAttributeToken, APP_BOOTSTRAP_LISTENER, provideEnvironmentInitializer, isDevMode, ɵinternalProvideZoneChangeDetection as _internalProvideZoneChangeDetection } from '@angular/core';
5
5
  import { __decorate, __param, __metadata } from 'tslib';
6
6
  import * as i1$2 from '@angular/common';
7
7
  import { LocationStrategy, XhrFactory, CommonModule, ɵNullViewportScroller as _NullViewportScroller, ViewportScroller, PlatformLocation, DOCUMENT } from '@angular/common';
8
8
  import * as i1$3 from '@angular/router';
9
- import { DefaultUrlSerializer, Router, PRIMARY_OUTLET, NavigationEnd, ChildrenOutletContexts, ActivatedRoute, NavigationCancel, NavigationError, NavigationStart, RouteReuseStrategy, RouterModule, provideRouter } from '@angular/router';
10
- import { BehaviorSubject, Subject, ReplaySubject, fromEvent, defer, Observable as Observable$1 } from 'rxjs';
11
- import { filter, map, take, distinctUntilChanged, startWith } from 'rxjs/operators';
9
+ import { DefaultUrlSerializer, Router, UrlTree, ActivatedRoute, NavigationEnd, isActive, ChildrenOutletContexts, PRIMARY_OUTLET, NavigationCancel, NavigationError, NavigationStart, withComponentInputBinding, RouteReuseStrategy, RouterModule, provideRouter } from '@angular/router';
10
+ import { BehaviorSubject, Subject, ReplaySubject, fromEvent, defer, Observable as Observable$1, of, from, combineLatest } from 'rxjs';
11
+ import { filter, map, take, distinctUntilChanged, startWith, mergeAll, switchMap } from 'rxjs/operators';
12
12
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
13
13
  import { ɵBrowserAnimationBuilder as _BrowserAnimationBuilder, AnimationBuilder } from '@angular/animations';
14
14
  import * as i1$1 from '@angular/animations/browser';
@@ -844,10 +844,10 @@ class NativeScriptLoadingService {
844
844
  _notifyMainModuleReady() {
845
845
  this.mainModuleReady$.next(true);
846
846
  }
847
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
848
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptLoadingService, providedIn: 'root' }); }
847
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
848
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptLoadingService, providedIn: 'root' }); }
849
849
  }
850
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptLoadingService, decorators: [{
850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptLoadingService, decorators: [{
851
851
  type: Injectable,
852
852
  args: [{ providedIn: 'root' }]
853
853
  }] });
@@ -916,10 +916,10 @@ class FrameService {
916
916
  getFrame() {
917
917
  return Frame.topmost();
918
918
  }
919
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FrameService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
920
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FrameService, providedIn: 'root' }); }
919
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FrameService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
920
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FrameService, providedIn: 'root' }); }
921
921
  }
922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FrameService, decorators: [{
922
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FrameService, decorators: [{
923
923
  type: Injectable,
924
924
  args: [{
925
925
  providedIn: 'root',
@@ -1578,10 +1578,10 @@ class NSLocationStrategy extends LocationStrategy {
1578
1578
  }
1579
1579
  this.resetForHmr();
1580
1580
  }
1581
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSLocationStrategy, deps: [{ token: FrameService }, { token: START_PATH, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1582
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSLocationStrategy, providedIn: 'root' }); }
1581
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSLocationStrategy, deps: [{ token: FrameService }, { token: START_PATH, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1582
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSLocationStrategy, providedIn: 'root' }); }
1583
1583
  }
1584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSLocationStrategy, decorators: [{
1584
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSLocationStrategy, decorators: [{
1585
1585
  type: Injectable,
1586
1586
  args: [{
1587
1587
  providedIn: 'root',
@@ -1901,10 +1901,10 @@ class NSRouteReuseStrategy {
1901
1901
  ngOnDestroy() {
1902
1902
  this.clearAllCaches();
1903
1903
  }
1904
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSRouteReuseStrategy, deps: [{ token: NSLocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
1905
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSRouteReuseStrategy }); }
1904
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSRouteReuseStrategy, deps: [{ token: NSLocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
1905
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSRouteReuseStrategy }); }
1906
1906
  }
1907
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSRouteReuseStrategy, decorators: [{
1907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSRouteReuseStrategy, decorators: [{
1908
1908
  type: Injectable
1909
1909
  }], ctorParameters: () => [{ type: NSLocationStrategy }] });
1910
1910
 
@@ -2686,10 +2686,10 @@ class NativescriptXhrFactory extends XhrFactory {
2686
2686
  build() {
2687
2687
  return new XMLHttpRequest();
2688
2688
  }
2689
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativescriptXhrFactory, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2690
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativescriptXhrFactory }); }
2689
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativescriptXhrFactory, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2690
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativescriptXhrFactory }); }
2691
2691
  }
2692
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativescriptXhrFactory, decorators: [{
2692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativescriptXhrFactory, decorators: [{
2693
2693
  type: Injectable
2694
2694
  }] });
2695
2695
 
@@ -3411,10 +3411,10 @@ class NativeScriptRendererHelperService {
3411
3411
  this.endDomChanges();
3412
3412
  }
3413
3413
  }
3414
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptRendererHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3415
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptRendererHelperService, providedIn: 'root' }); }
3414
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptRendererHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3415
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptRendererHelperService, providedIn: 'root' }); }
3416
3416
  }
3417
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptRendererHelperService, decorators: [{
3417
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptRendererHelperService, decorators: [{
3418
3418
  type: Injectable,
3419
3419
  args: [{
3420
3420
  providedIn: 'root',
@@ -3862,8 +3862,8 @@ class EmulatedRenderer extends NativeScriptRenderer {
3862
3862
  .map((s) => replaceNgAttribute(s, componentId))
3863
3863
  .forEach((s) => addScopedStyleToCss(s, this.rootModuleId));
3864
3864
  }
3865
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: EmulatedRenderer, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
3866
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: EmulatedRenderer }); }
3865
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: EmulatedRenderer, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
3866
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: EmulatedRenderer }); }
3867
3867
  }
3868
3868
  __decorate([
3869
3869
  profile,
@@ -3873,7 +3873,7 @@ __decorate([
3873
3873
  __metadata("design:paramtypes", [Array, String]),
3874
3874
  __metadata("design:returntype", void 0)
3875
3875
  ], EmulatedRenderer.prototype, "addStyles", null);
3876
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: EmulatedRenderer, decorators: [{
3876
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: EmulatedRenderer, decorators: [{
3877
3877
  type: Injectable
3878
3878
  }], ctorParameters: () => [{ type: undefined }, { type: i1.View }], propDecorators: { addStyles: [] } });
3879
3879
 
@@ -4114,10 +4114,10 @@ class CdkPortal extends TemplatePortal {
4114
4114
  constructor(templateRef, viewContainerRef) {
4115
4115
  super(templateRef, viewContainerRef);
4116
4116
  }
4117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CdkPortal, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
4118
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: CdkPortal, isStandalone: true, selector: "[cdkPortal]", exportAs: ["cdkPortal"], usesInheritance: true, ngImport: i0 }); }
4117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CdkPortal, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
4118
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: CdkPortal, isStandalone: true, selector: "[cdkPortal]", exportAs: ["cdkPortal"], usesInheritance: true, ngImport: i0 }); }
4119
4119
  }
4120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CdkPortal, decorators: [{
4120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CdkPortal, decorators: [{
4121
4121
  type: Directive,
4122
4122
  args: [{
4123
4123
  selector: '[cdkPortal]',
@@ -4248,10 +4248,10 @@ class CdkPortalOutlet extends BasePortalOutlet {
4248
4248
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
4249
4249
  return (!(nativeElement instanceof CommentNode) ? nativeElement : nativeElement.parentNode);
4250
4250
  }
4251
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CdkPortalOutlet, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
4252
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: CdkPortalOutlet, isStandalone: true, selector: "[cdkPortalOutlet]", inputs: { portal: ["cdkPortalOutlet", "portal"] }, outputs: { attached: "attached" }, exportAs: ["cdkPortalOutlet"], usesInheritance: true, ngImport: i0 }); }
4251
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CdkPortalOutlet, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
4252
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: CdkPortalOutlet, isStandalone: true, selector: "[cdkPortalOutlet]", inputs: { portal: ["cdkPortalOutlet", "portal"] }, outputs: { attached: "attached" }, exportAs: ["cdkPortalOutlet"], usesInheritance: true, ngImport: i0 }); }
4253
4253
  }
4254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CdkPortalOutlet, decorators: [{
4254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CdkPortalOutlet, decorators: [{
4255
4255
  type: Directive,
4256
4256
  args: [{
4257
4257
  selector: '[cdkPortalOutlet]',
@@ -4264,11 +4264,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
4264
4264
  type: Output
4265
4265
  }] } });
4266
4266
  class PortalModule {
4267
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PortalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4268
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: PortalModule, imports: [CdkPortal, CdkPortalOutlet], exports: [CdkPortal, CdkPortalOutlet] }); }
4269
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PortalModule }); }
4267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PortalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4268
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: PortalModule, imports: [CdkPortal, CdkPortalOutlet], exports: [CdkPortal, CdkPortalOutlet] }); }
4269
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PortalModule }); }
4270
4270
  }
4271
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PortalModule, decorators: [{
4271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PortalModule, decorators: [{
4272
4272
  type: NgModule,
4273
4273
  args: [{
4274
4274
  imports: [CdkPortal, CdkPortalOutlet],
@@ -4329,19 +4329,23 @@ let NativeScriptDomPortalOutlet = class NativeScriptDomPortalOutlet extends Base
4329
4329
  * @returns Reference to the created component.
4330
4330
  */
4331
4331
  attachComponentPortal(portal) {
4332
- const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;
4333
- const componentFactory = resolver.resolveComponentFactory(portal.component);
4334
4332
  let componentRef;
4335
4333
  // If the portal specifies a ViewContainerRef, we will use that as the attachment point
4336
4334
  // for the component (in terms of Angular's component tree, not rendering).
4337
4335
  // When the ViewContainerRef is missing, we use the factory to create the component directly
4338
4336
  // and then manually attach the view to the application.
4339
4337
  if (portal.viewContainerRef) {
4340
- componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector);
4338
+ componentRef = portal.viewContainerRef.createComponent(portal.component, {
4339
+ index: portal.viewContainerRef.length,
4340
+ injector: portal.injector || portal.viewContainerRef.injector,
4341
+ });
4341
4342
  this.setDisposeFn(() => componentRef.destroy());
4342
4343
  }
4343
4344
  else {
4344
- componentRef = componentFactory.create(portal.injector || this._defaultInjector);
4345
+ componentRef = createComponent(portal.component, {
4346
+ elementInjector: portal.injector || this._defaultInjector || Injector.NULL,
4347
+ environmentInjector: this._appRef.injector,
4348
+ });
4345
4349
  this._appRef.attachView(componentRef.hostView);
4346
4350
  this.setDisposeFn(() => {
4347
4351
  this._appRef.detachView(componentRef.hostView);
@@ -4498,12 +4502,12 @@ class DetachedLoader {
4498
4502
  loadWithFactoryInLocation(factory) {
4499
4503
  return this.vc.createComponent(factory);
4500
4504
  }
4501
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: DetachedLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4502
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: DetachedLoader, isStandalone: true, selector: "DetachedContainer", viewQueries: [{ propertyName: "vc", first: true, predicate: ["vc"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `<Placeholder #loader></Placeholder>
4505
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DetachedLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4506
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DetachedLoader, isStandalone: true, selector: "DetachedContainer", viewQueries: [{ propertyName: "vc", first: true, predicate: ["vc"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `<Placeholder #loader></Placeholder>
4503
4507
  <ng-container #vc></ng-container>
4504
4508
  <ng-content></ng-content>`, isInline: true }); }
4505
4509
  }
4506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: DetachedLoader, decorators: [{
4510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DetachedLoader, decorators: [{
4507
4511
  type: Component,
4508
4512
  args: [{
4509
4513
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -4574,10 +4578,10 @@ class PageService {
4574
4578
  default:
4575
4579
  }
4576
4580
  }
4577
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageService, deps: [{ token: i1.Page, optional: true }, { token: i0.ElementRef, optional: true }, { token: i1.ViewBase, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
4578
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageService }); }
4581
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PageService, deps: [{ token: i1.Page, optional: true }, { token: i0.ElementRef, optional: true }, { token: i1.ViewBase, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
4582
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PageService }); }
4579
4583
  }
4580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageService, decorators: [{
4584
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PageService, decorators: [{
4581
4585
  type: Injectable
4582
4586
  }], ctorParameters: () => [{ type: i1.Page, decorators: [{
4583
4587
  type: Optional
@@ -4622,8 +4626,8 @@ class FramePageComponent {
4622
4626
  this.page.actionBarHidden = !!this.actionBarHidden;
4623
4627
  }
4624
4628
  }
4625
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FramePageComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
4626
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: FramePageComponent, isStandalone: true, selector: "FramePage", inputs: { actionBarHidden: "actionBarHidden" }, providers: [
4629
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FramePageComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
4630
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: FramePageComponent, isStandalone: true, selector: "FramePage", inputs: { actionBarHidden: "actionBarHidden" }, providers: [
4627
4631
  {
4628
4632
  provide: Frame,
4629
4633
  useFactory: customFrameComponentFactory,
@@ -4637,7 +4641,7 @@ class FramePageComponent {
4637
4641
  PageService,
4638
4642
  ], usesOnChanges: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
4639
4643
  }
4640
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FramePageComponent, decorators: [{
4644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FramePageComponent, decorators: [{
4641
4645
  type: Component,
4642
4646
  args: [{
4643
4647
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -4669,8 +4673,8 @@ class FrameDirective {
4669
4673
  constructor(element) {
4670
4674
  this.element = element;
4671
4675
  }
4672
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FrameDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
4673
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: FrameDirective, isStandalone: true, selector: "Frame", providers: [
4676
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FrameDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
4677
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: FrameDirective, isStandalone: true, selector: "Frame", providers: [
4674
4678
  {
4675
4679
  provide: Frame,
4676
4680
  useFactory: customFrameDirectiveFactory,
@@ -4678,7 +4682,7 @@ class FrameDirective {
4678
4682
  },
4679
4683
  ], ngImport: i0 }); }
4680
4684
  }
4681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FrameDirective, decorators: [{
4685
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FrameDirective, decorators: [{
4682
4686
  type: Directive,
4683
4687
  args: [{
4684
4688
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -4701,8 +4705,8 @@ class PageDirective {
4701
4705
  constructor(element) {
4702
4706
  this.element = element;
4703
4707
  }
4704
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
4705
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: PageDirective, isStandalone: true, selector: "Page", providers: [
4708
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PageDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
4709
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: PageDirective, isStandalone: true, selector: "Page", providers: [
4706
4710
  {
4707
4711
  provide: Page,
4708
4712
  useFactory: customPageFactory,
@@ -4711,7 +4715,7 @@ class PageDirective {
4711
4715
  PageService,
4712
4716
  ], ngImport: i0 }); }
4713
4717
  }
4714
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageDirective, decorators: [{
4718
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PageDirective, decorators: [{
4715
4719
  type: Directive,
4716
4720
  args: [{
4717
4721
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -4729,11 +4733,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
4729
4733
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
4730
4734
 
4731
4735
  class FramePageModule {
4732
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FramePageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4733
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: FramePageModule, imports: [FrameDirective, PageDirective, FramePageComponent], exports: [FrameDirective, PageDirective, FramePageComponent] }); }
4734
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FramePageModule }); }
4736
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FramePageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4737
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: FramePageModule, imports: [FrameDirective, PageDirective, FramePageComponent], exports: [FrameDirective, PageDirective, FramePageComponent] }); }
4738
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FramePageModule }); }
4735
4739
  }
4736
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: FramePageModule, decorators: [{
4740
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FramePageModule, decorators: [{
4737
4741
  type: NgModule,
4738
4742
  args: [{
4739
4743
  imports: [FrameDirective, PageDirective, FramePageComponent],
@@ -4825,10 +4829,10 @@ class ActionBarComponent {
4825
4829
  this.page.actionBar = this.element.nativeElement;
4826
4830
  this.page.actionBar.update();
4827
4831
  }
4828
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4829
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: ActionBarComponent, isStandalone: true, selector: "ActionBar", ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
4832
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4833
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: ActionBarComponent, isStandalone: true, selector: "ActionBar", ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
4830
4834
  }
4831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ActionBarComponent, decorators: [{
4835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionBarComponent, decorators: [{
4832
4836
  type: Component,
4833
4837
  args: [{
4834
4838
  selector: 'ActionBar',
@@ -4860,10 +4864,10 @@ class ActionBarScope {
4860
4864
  this.page.actionBar.actionItems.removeItem(item.element.nativeElement);
4861
4865
  }
4862
4866
  }
4863
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ActionBarScope, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4864
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: ActionBarScope, isStandalone: true, selector: "ActionBarExtension", ngImport: i0, template: '', isInline: true }); }
4867
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionBarScope, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4868
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: ActionBarScope, isStandalone: true, selector: "ActionBarExtension", ngImport: i0, template: '', isInline: true }); }
4865
4869
  }
4866
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ActionBarScope, decorators: [{
4870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionBarScope, decorators: [{
4867
4871
  type: Component,
4868
4872
  args: [{
4869
4873
  selector: 'ActionBarExtension',
@@ -4884,10 +4888,10 @@ class ActionItemDirective {
4884
4888
  this.ownerScope.onActionDestroy(this);
4885
4889
  }
4886
4890
  }
4887
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ActionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4888
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: ActionItemDirective, isStandalone: true, selector: "ActionItem", ngImport: i0 }); }
4891
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4892
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: ActionItemDirective, isStandalone: true, selector: "ActionItem", ngImport: i0 }); }
4889
4893
  }
4890
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ActionItemDirective, decorators: [{
4894
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionItemDirective, decorators: [{
4891
4895
  type: Directive,
4892
4896
  args: [{
4893
4897
  selector: 'ActionItem',
@@ -4907,10 +4911,10 @@ class NavigationButtonDirective {
4907
4911
  this.ownerScope.onNavButtonDestroy(this);
4908
4912
  }
4909
4913
  }
4910
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NavigationButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4911
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: NavigationButtonDirective, isStandalone: true, selector: "NavigationButton", ngImport: i0 }); }
4914
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NavigationButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4915
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NavigationButtonDirective, isStandalone: true, selector: "NavigationButton", ngImport: i0 }); }
4912
4916
  }
4913
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NavigationButtonDirective, decorators: [{
4917
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NavigationButtonDirective, decorators: [{
4914
4918
  type: Directive,
4915
4919
  args: [{
4916
4920
  selector: 'NavigationButton',
@@ -5324,8 +5328,8 @@ class ListViewComponent {
5324
5328
  }
5325
5329
  }
5326
5330
  }
5327
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ListViewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
5328
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: ListViewComponent, isStandalone: true, selector: "ListView", inputs: { stickyHeaderTemplate: "stickyHeaderTemplate", stickyHeader: "stickyHeader", stickyHeaderHeight: "stickyHeaderHeight", stickyHeaderTopPadding: "stickyHeaderTopPadding", sectioned: "sectioned", showSearch: "showSearch", searchAutoHide: "searchAutoHide", items: "items" }, outputs: { setupItemView: "setupItemView" }, host: { listeners: { "itemLoading": "onItemLoading($event)" } }, providers: [{ provide: TEMPLATED_ITEMS_COMPONENT, useExisting: forwardRef(() => ListViewComponent) }], queries: [{ propertyName: "itemTemplateQuery", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef }, { propertyName: "stickyHeaderTemplateRef", first: true, predicate: ["nsStickyHeaderTemplate"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `<DetachedContainer>
5331
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ListViewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
5332
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: ListViewComponent, isStandalone: true, selector: "ListView", inputs: { stickyHeaderTemplate: "stickyHeaderTemplate", stickyHeader: "stickyHeader", stickyHeaderHeight: "stickyHeaderHeight", stickyHeaderTopPadding: "stickyHeaderTopPadding", sectioned: "sectioned", showSearch: "showSearch", searchAutoHide: "searchAutoHide", items: "items" }, outputs: { setupItemView: "setupItemView" }, host: { listeners: { "itemLoading": "onItemLoading($event)" } }, providers: [{ provide: TEMPLATED_ITEMS_COMPONENT, useExisting: forwardRef(() => ListViewComponent) }], queries: [{ propertyName: "itemTemplateQuery", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef }, { propertyName: "stickyHeaderTemplateRef", first: true, predicate: ["nsStickyHeaderTemplate"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `<DetachedContainer>
5329
5333
  <ng-container #loader></ng-container>
5330
5334
  </DetachedContainer>`, isInline: true, dependencies: [{ kind: "component", type: DetachedLoader, selector: "DetachedContainer" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5331
5335
  }
@@ -5335,7 +5339,7 @@ __decorate([
5335
5339
  __metadata("design:paramtypes", [Object]),
5336
5340
  __metadata("design:returntype", void 0)
5337
5341
  ], ListViewComponent.prototype, "onItemLoading", null);
5338
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ListViewComponent, decorators: [{
5342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ListViewComponent, decorators: [{
5339
5343
  type: Component,
5340
5344
  args: [{
5341
5345
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -5399,10 +5403,10 @@ class TemplateKeyDirective {
5399
5403
  values.forEach((value) => this.comp.registerTemplate(value, this.templateRef));
5400
5404
  }
5401
5405
  }
5402
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: TEMPLATED_ITEMS_COMPONENT, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
5403
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TemplateKeyDirective, isStandalone: true, selector: "[nsTemplateKey],[nsTemplateKeys]", inputs: { nsTemplateKey: "nsTemplateKey", nsTemplateKeys: "nsTemplateKeys" }, ngImport: i0 }); }
5406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: TEMPLATED_ITEMS_COMPONENT, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
5407
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: TemplateKeyDirective, isStandalone: true, selector: "[nsTemplateKey],[nsTemplateKeys]", inputs: { nsTemplateKey: "nsTemplateKey", nsTemplateKeys: "nsTemplateKeys" }, ngImport: i0 }); }
5404
5408
  }
5405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TemplateKeyDirective, decorators: [{
5409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplateKeyDirective, decorators: [{
5406
5410
  type: Directive,
5407
5411
  args: [{
5408
5412
  selector: '[nsTemplateKey],[nsTemplateKeys]',
@@ -5551,10 +5555,10 @@ class ModalDialogService {
5551
5555
  options.parentView.showModal(componentViewRef.firstNativeLikeView, { ...options, closeCallback });
5552
5556
  });
5553
5557
  }
5554
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ModalDialogService, deps: [{ token: NSLocationStrategy }, { token: i0.NgZone }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
5555
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ModalDialogService }); }
5558
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ModalDialogService, deps: [{ token: NSLocationStrategy }, { token: i0.NgZone }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
5559
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ModalDialogService }); }
5556
5560
  }
5557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ModalDialogService, decorators: [{
5561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ModalDialogService, decorators: [{
5558
5562
  type: Injectable
5559
5563
  }], ctorParameters: () => [{ type: NSLocationStrategy }, { type: i0.NgZone }, { type: i0.ApplicationRef }, { type: i0.Injector }] });
5560
5564
 
@@ -5660,10 +5664,10 @@ class TabViewDirective {
5660
5664
  this.tabView.selectedIndex = this._selectedIndex;
5661
5665
  }
5662
5666
  }
5663
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TabViewDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
5664
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TabViewDirective, isStandalone: true, selector: "TabView", inputs: { selectedIndex: "selectedIndex" }, ngImport: i0 }); }
5667
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TabViewDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
5668
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: TabViewDirective, isStandalone: true, selector: "TabView", inputs: { selectedIndex: "selectedIndex" }, ngImport: i0 }); }
5665
5669
  }
5666
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TabViewDirective, decorators: [{
5670
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TabViewDirective, decorators: [{
5667
5671
  type: Directive,
5668
5672
  args: [{
5669
5673
  selector: 'TabView', // eslint-disable-line @angular-eslint/directive-selector
@@ -5739,10 +5743,10 @@ class TabViewItemDirective {
5739
5743
  this.owner.tabView.items = newItems;
5740
5744
  }
5741
5745
  }
5742
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TabViewItemDirective, deps: [{ token: TabViewDirective }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
5743
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TabViewItemDirective, isStandalone: true, selector: "[tabItem]", inputs: { config: ["tabItem", "config"], title: "title", iconSource: "iconSource", textTransform: "textTransform" }, ngImport: i0 }); }
5746
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TabViewItemDirective, deps: [{ token: TabViewDirective }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
5747
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: TabViewItemDirective, isStandalone: true, selector: "[tabItem]", inputs: { config: ["tabItem", "config"], title: "title", iconSource: "iconSource", textTransform: "textTransform" }, ngImport: i0 }); }
5744
5748
  }
5745
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TabViewItemDirective, decorators: [{
5749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TabViewItemDirective, decorators: [{
5746
5750
  type: Directive,
5747
5751
  args: [{
5748
5752
  selector: '[tabItem]', // eslint-disable-line @angular-eslint/directive-selector
@@ -5764,12 +5768,12 @@ class AndroidFilterComponent {
5764
5768
  constructor(device) {
5765
5769
  this.show = device.os === platformNames.android;
5766
5770
  }
5767
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: AndroidFilterComponent, deps: [{ token: DEVICE }], target: i0.ɵɵFactoryTarget.Component }); }
5768
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: AndroidFilterComponent, isStandalone: true, selector: "android", ngImport: i0, template: `@if (show) {
5771
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AndroidFilterComponent, deps: [{ token: DEVICE }], target: i0.ɵɵFactoryTarget.Component }); }
5772
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AndroidFilterComponent, isStandalone: true, selector: "android", ngImport: i0, template: `@if (show) {
5769
5773
  <ng-content></ng-content>
5770
5774
  }`, isInline: true }); }
5771
5775
  }
5772
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: AndroidFilterComponent, decorators: [{
5776
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AndroidFilterComponent, decorators: [{
5773
5777
  type: Component,
5774
5778
  args: [{
5775
5779
  selector: 'android',
@@ -5788,12 +5792,12 @@ class IOSFilterComponent {
5788
5792
  constructor(device) {
5789
5793
  this.show = device.os === platformNames.ios;
5790
5794
  }
5791
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: IOSFilterComponent, deps: [{ token: DEVICE }], target: i0.ɵɵFactoryTarget.Component }); }
5792
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: IOSFilterComponent, isStandalone: true, selector: "ios", ngImport: i0, template: `@if (show) {
5795
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IOSFilterComponent, deps: [{ token: DEVICE }], target: i0.ɵɵFactoryTarget.Component }); }
5796
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: IOSFilterComponent, isStandalone: true, selector: "ios", ngImport: i0, template: `@if (show) {
5793
5797
  <ng-content></ng-content>
5794
5798
  }`, isInline: true }); }
5795
5799
  }
5796
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: IOSFilterComponent, decorators: [{
5800
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IOSFilterComponent, decorators: [{
5797
5801
  type: Component,
5798
5802
  args: [{
5799
5803
  selector: 'ios',
@@ -5812,12 +5816,12 @@ class AppleFilterComponent {
5812
5816
  constructor() {
5813
5817
  this.show = __APPLE__;
5814
5818
  }
5815
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: AppleFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5816
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: AppleFilterComponent, isStandalone: true, selector: "apple", ngImport: i0, template: `@if (show) {
5819
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AppleFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5820
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AppleFilterComponent, isStandalone: true, selector: "apple", ngImport: i0, template: `@if (show) {
5817
5821
  <ng-content></ng-content>
5818
5822
  }`, isInline: true }); }
5819
5823
  }
5820
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: AppleFilterComponent, decorators: [{
5824
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AppleFilterComponent, decorators: [{
5821
5825
  type: Component,
5822
5826
  args: [{
5823
5827
  selector: 'apple',
@@ -5835,12 +5839,12 @@ class VisionOSFilterComponent {
5835
5839
  // Available in 8.6+ only
5836
5840
  this.show = device.os === platformNames.visionos;
5837
5841
  }
5838
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: VisionOSFilterComponent, deps: [{ token: DEVICE }], target: i0.ɵɵFactoryTarget.Component }); }
5839
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: VisionOSFilterComponent, isStandalone: true, selector: "visionos", ngImport: i0, template: `@if (show) {
5842
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: VisionOSFilterComponent, deps: [{ token: DEVICE }], target: i0.ɵɵFactoryTarget.Component }); }
5843
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: VisionOSFilterComponent, isStandalone: true, selector: "visionos", ngImport: i0, template: `@if (show) {
5840
5844
  <ng-content></ng-content>
5841
5845
  }`, isInline: true }); }
5842
5846
  }
5843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: VisionOSFilterComponent, decorators: [{
5847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: VisionOSFilterComponent, decorators: [{
5844
5848
  type: Component,
5845
5849
  args: [{
5846
5850
  selector: 'visionos',
@@ -5857,11 +5861,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
5857
5861
  const CDK_COMPONENTS = [ActionBarComponent, ActionBarScope, ActionItemDirective, NavigationButtonDirective, ListViewComponent, TemplateKeyDirective, TabViewDirective, TabViewItemDirective, AndroidFilterComponent, IOSFilterComponent, AppleFilterComponent, VisionOSFilterComponent];
5858
5862
  registerNativeScriptViewComponents();
5859
5863
  class NativeScriptCommonModule {
5860
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5861
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptCommonModule, imports: [CommonModule, FramePageModule, ActionBarComponent, ActionBarScope, ActionItemDirective, NavigationButtonDirective, ListViewComponent, TemplateKeyDirective, TabViewDirective, TabViewItemDirective, AndroidFilterComponent, IOSFilterComponent, AppleFilterComponent, VisionOSFilterComponent], exports: [CommonModule, FramePageModule, ActionBarComponent, ActionBarScope, ActionItemDirective, NavigationButtonDirective, ListViewComponent, TemplateKeyDirective, TabViewDirective, TabViewItemDirective, AndroidFilterComponent, IOSFilterComponent, AppleFilterComponent, VisionOSFilterComponent] }); }
5862
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptCommonModule, providers: [ModalDialogService], imports: [CommonModule, FramePageModule, CommonModule, FramePageModule] }); }
5864
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5865
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptCommonModule, imports: [CommonModule, FramePageModule, ActionBarComponent, ActionBarScope, ActionItemDirective, NavigationButtonDirective, ListViewComponent, TemplateKeyDirective, TabViewDirective, TabViewItemDirective, AndroidFilterComponent, IOSFilterComponent, AppleFilterComponent, VisionOSFilterComponent], exports: [CommonModule, FramePageModule, ActionBarComponent, ActionBarScope, ActionItemDirective, NavigationButtonDirective, ListViewComponent, TemplateKeyDirective, TabViewDirective, TabViewItemDirective, AndroidFilterComponent, IOSFilterComponent, AppleFilterComponent, VisionOSFilterComponent] }); }
5866
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptCommonModule, providers: [ModalDialogService], imports: [CommonModule, FramePageModule, CommonModule, FramePageModule] }); }
5863
5867
  }
5864
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptCommonModule, decorators: [{
5868
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptCommonModule, decorators: [{
5865
5869
  type: NgModule,
5866
5870
  args: [{
5867
5871
  imports: [CommonModule, FramePageModule, ...CDK_COMPONENTS],
@@ -5906,11 +5910,11 @@ class NativeScriptModule {
5906
5910
  throw new Error(`NativeScriptModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);
5907
5911
  }
5908
5912
  }
5909
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptModule, deps: [{ token: NativeScriptModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
5910
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptModule, imports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule], exports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule] }); }
5911
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptModule, providers: [...NATIVESCRIPT_MODULE_STATIC_PROVIDERS, ...NATIVESCRIPT_MODULE_PROVIDERS], imports: [ApplicationModule, NativeScriptCommonModule, ApplicationModule, NativeScriptCommonModule] }); }
5913
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptModule, deps: [{ token: NativeScriptModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
5914
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptModule, imports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule], exports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule] }); }
5915
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptModule, providers: [...NATIVESCRIPT_MODULE_STATIC_PROVIDERS, ...NATIVESCRIPT_MODULE_PROVIDERS], imports: [ApplicationModule, NativeScriptCommonModule, ApplicationModule, NativeScriptCommonModule] }); }
5912
5916
  }
5913
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptModule, decorators: [{
5917
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptModule, decorators: [{
5914
5918
  type: NgModule,
5915
5919
  args: [{
5916
5920
  imports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule],
@@ -6040,14 +6044,15 @@ const COMMON_PROVIDERS = [
6040
6044
  { provide: PlatformLocation, useClass: DummyPlatformLocation, deps: [] },
6041
6045
  ];
6042
6046
  const platformNativeScript = createPlatformFactory(platformCore, 'nativescriptDynamic', COMMON_PROVIDERS);
6043
- function createProvidersConfig(options) {
6047
+ function createProvidersConfig(options, context) {
6044
6048
  return {
6049
+ platformRef: context?.platformRef,
6045
6050
  appProviders: [
6046
6051
  ...NATIVESCRIPT_MODULE_STATIC_PROVIDERS,
6047
6052
  ...NATIVESCRIPT_MODULE_PROVIDERS,
6048
6053
  ...(options?.providers ?? []),
6049
6054
  ],
6050
- platformProviders: COMMON_PROVIDERS,
6055
+ platformProviders: context?.platformRef ? [] : COMMON_PROVIDERS,
6051
6056
  };
6052
6057
  }
6053
6058
  function bootstrapApplication(rootComponent, options) {
@@ -6062,9 +6067,9 @@ function bootstrapApplication(rootComponent, options) {
6062
6067
  ...createProvidersConfig(options),
6063
6068
  });
6064
6069
  }
6065
- function createApplication(options) {
6070
+ function createApplication(options, context) {
6066
6071
  registerNativeScriptViewComponents();
6067
- return _internalCreateApplication(createProvidersConfig(options));
6072
+ return _internalCreateApplication(createProvidersConfig(options, context));
6068
6073
  }
6069
6074
  /**
6070
6075
  * @deprecated use runNativeScriptAngularApp instead
@@ -6115,14 +6120,14 @@ function generateRootLayoutAndProxy() {
6115
6120
  return viewProxy;
6116
6121
  }
6117
6122
  class RootCompositeModule {
6118
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: RootCompositeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6119
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: RootCompositeModule }); }
6120
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: RootCompositeModule, providers: [
6123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RootCompositeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6124
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: RootCompositeModule }); }
6125
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RootCompositeModule, providers: [
6121
6126
  { provide: DISABLE_ROOT_VIEW_HANDLING, useValue: true },
6122
6127
  { provide: APP_ROOT_VIEW, useFactory: generateRootLayoutAndProxy },
6123
6128
  ] }); }
6124
6129
  }
6125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: RootCompositeModule, decorators: [{
6130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RootCompositeModule, decorators: [{
6126
6131
  type: NgModule,
6127
6132
  args: [{
6128
6133
  providers: [
@@ -6641,11 +6646,12 @@ let NativeModalRef = class NativeModalRef {
6641
6646
  this.detachedLoaderRef = vcRef.createComponent(DetachedLoader);
6642
6647
  }
6643
6648
  else {
6649
+ const appRef = this._injector.get(ApplicationRef);
6644
6650
  this.detachedLoaderRef = createComponent(DetachedLoader, {
6645
- environmentInjector: this._injector.get(ApplicationRef).injector,
6646
- elementInjector: this._config.viewContainerRef?.injector || this._injector,
6651
+ environmentInjector: appRef.injector,
6652
+ elementInjector: this._config.injector || this._config.viewContainerRef?.injector || this._injector,
6647
6653
  });
6648
- this._injector.get(ApplicationRef).attachView(this.detachedLoaderRef.hostView);
6654
+ appRef.attachView(this.detachedLoaderRef.hostView);
6649
6655
  }
6650
6656
  this.detachedLoaderRef.changeDetectorRef.detectChanges();
6651
6657
  }
@@ -7304,7 +7310,7 @@ class NativeDialog {
7304
7310
  * @returns The custom injector that can be used inside the dialog.
7305
7311
  */
7306
7312
  _createInjector(config, dialogRef) {
7307
- const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
7313
+ const userInjector = config && (config.injector || (config.viewContainerRef && config.viewContainerRef.injector));
7308
7314
  // The dialog container should be provided as the dialog container and the dialog's
7309
7315
  // content are created out of the same `ViewContainerRef` and as such, are siblings
7310
7316
  // for injector purposes. To allow the hierarchy that is expected, the dialog
@@ -7342,10 +7348,10 @@ class NativeDialog {
7342
7348
  dialogs[i].close();
7343
7349
  }
7344
7350
  }
7345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeDialog, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
7346
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeDialog, providedIn: 'root' }); }
7351
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeDialog, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
7352
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeDialog, providedIn: 'root' }); }
7347
7353
  }
7348
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeDialog, decorators: [{
7354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeDialog, decorators: [{
7349
7355
  type: Injectable,
7350
7356
  args: [{
7351
7357
  providedIn: 'root',
@@ -7436,10 +7442,10 @@ class NativeDialogCloseDirective {
7436
7442
  // the FocusMonitor won't detect any origin change, and will always output `program`.
7437
7443
  this.dialogRef.close(this.dialogResult);
7438
7444
  }
7439
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeDialogCloseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7440
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: NativeDialogCloseDirective, isStandalone: true, selector: "[native-dialog-close], [nativeDialogClose]", inputs: { dialogResult: ["native-dialog-close", "dialogResult"], _matDialogClose: ["nativeDialogClose", "_matDialogClose"] }, host: { listeners: { "tap": "_onButtonClick()" } }, exportAs: ["nativeDialogClose"], usesOnChanges: true, ngImport: i0 }); }
7445
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeDialogCloseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7446
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NativeDialogCloseDirective, isStandalone: true, selector: "[native-dialog-close], [nativeDialogClose]", inputs: { dialogResult: ["native-dialog-close", "dialogResult"], _matDialogClose: ["nativeDialogClose", "_matDialogClose"] }, host: { listeners: { "tap": "_onButtonClick()" } }, exportAs: ["nativeDialogClose"], usesOnChanges: true, ngImport: i0 }); }
7441
7447
  }
7442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeDialogCloseDirective, decorators: [{
7448
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeDialogCloseDirective, decorators: [{
7443
7449
  type: Directive,
7444
7450
  args: [{
7445
7451
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -7497,11 +7503,11 @@ function getClosestDialog(element, openDialogs) {
7497
7503
  * because they're targeting the same class symbol.
7498
7504
  */
7499
7505
  class NativeDialogModule {
7500
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7501
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: NativeDialogModule, imports: [NativeDialogCloseDirective], exports: [NativeDialogCloseDirective] }); }
7502
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeDialogModule }); }
7506
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7507
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: NativeDialogModule, imports: [NativeDialogCloseDirective], exports: [NativeDialogCloseDirective] }); }
7508
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeDialogModule }); }
7503
7509
  }
7504
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeDialogModule, decorators: [{
7510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeDialogModule, decorators: [{
7505
7511
  type: NgModule,
7506
7512
  args: [{
7507
7513
  imports: [NativeDialogCloseDirective],
@@ -7521,10 +7527,10 @@ class NSFileSystem {
7521
7527
  fileExists(path) {
7522
7528
  return File.exists(path);
7523
7529
  }
7524
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSFileSystem, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
7525
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSFileSystem }); }
7530
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSFileSystem, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
7531
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSFileSystem }); }
7526
7532
  }
7527
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSFileSystem, decorators: [{
7533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSFileSystem, decorators: [{
7528
7534
  type: Injectable
7529
7535
  }] });
7530
7536
 
@@ -7574,9 +7580,6 @@ function generateNativeScriptView(typeOrTemplate, options) {
7574
7580
  const parentView = new ContentView();
7575
7581
  const portalOutlet = new NativeScriptDomPortalOutlet(parentView, resolver, injector.get(ApplicationRef), injector);
7576
7582
  const componentOrTemplateRef = portalOutlet.attach(portal);
7577
- componentOrTemplateRef.onDestroy(() => {
7578
- portalOutlet.dispose();
7579
- });
7580
7583
  if (detachedLoaderRef && !reusingDetachedLoader) {
7581
7584
  componentOrTemplateRef.onDestroy(() => {
7582
7585
  detachedLoaderRef.destroy();
@@ -8027,10 +8030,10 @@ class HmrCacheService {
8027
8030
  scope(scopeName) {
8028
8031
  return this._store.scope(scopeName);
8029
8032
  }
8030
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: HmrCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8031
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: HmrCacheService, providedIn: 'root' }); }
8033
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: HmrCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8034
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: HmrCacheService, providedIn: 'root' }); }
8032
8035
  }
8033
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: HmrCacheService, decorators: [{
8036
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: HmrCacheService, decorators: [{
8034
8037
  type: Injectable,
8035
8038
  args: [{ providedIn: 'root' }]
8036
8039
  }] });
@@ -8165,10 +8168,10 @@ class TextValueAccessor extends BaseValueAccessor {
8165
8168
  const normalized = super.normalizeValue(value ? `${value}` : value);
8166
8169
  this.view.text = normalized;
8167
8170
  }
8168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TextValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8169
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TextValueAccessor, isStandalone: true, selector: "TextField[ngModel],TextField[formControlName],TextField[formControl],textField[ngModel],textField[formControlName],textField[formControl],textfield[ngModel],textfield[formControlName],textfield[formControl],text-field[ngModel],text-field[formControlName],text-field[formControl],TextView[ngModel],TextView[formControlName],TextView[formControl],textView[ngModel],textView[formControlName],textView[formControl],textview[ngModel],textview[formControlName],textview[formControl],text-view[ngModel],text-view[formControlName],text-view[formControl],SearchBar[ngModel],SearchBar[formControlName],SearchBar[formControl],searchBar[ngModel],searchBar[formControlName],searchBar[formControl],searchbar[ngModel],searchbar[formControlName],searchbar[formControl],search-bar[ngModel], search-bar[formControlName],search-bar[formControl]", host: { listeners: { "blur": "onTouched()", "textChange": "onChange($event.value)" } }, providers: [TEXT_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8172
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: TextValueAccessor, isStandalone: true, selector: "TextField[ngModel],TextField[formControlName],TextField[formControl],textField[ngModel],textField[formControlName],textField[formControl],textfield[ngModel],textfield[formControlName],textfield[formControl],text-field[ngModel],text-field[formControlName],text-field[formControl],TextView[ngModel],TextView[formControlName],TextView[formControl],textView[ngModel],textView[formControlName],textView[formControl],textview[ngModel],textview[formControlName],textview[formControl],text-view[ngModel],text-view[formControlName],text-view[formControl],SearchBar[ngModel],SearchBar[formControlName],SearchBar[formControl],searchBar[ngModel],searchBar[formControlName],searchBar[formControl],searchbar[ngModel],searchbar[formControlName],searchbar[formControl],search-bar[ngModel], search-bar[formControlName],search-bar[formControl]", host: { listeners: { "blur": "onTouched()", "textChange": "onChange($event.value)" } }, providers: [TEXT_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8170
8173
  }
8171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TextValueAccessor, decorators: [{
8174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextValueAccessor, decorators: [{
8172
8175
  type: Directive,
8173
8176
  args: [{
8174
8177
  selector: 'TextField[ngModel],TextField[formControlName],TextField[formControl],' +
@@ -8214,10 +8217,10 @@ class CheckedValueAccessor extends BaseValueAccessor {
8214
8217
  const normalized = super.normalizeValue(value);
8215
8218
  this.view.checked = normalized;
8216
8219
  }
8217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CheckedValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8218
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: CheckedValueAccessor, isStandalone: true, selector: "Switch[ngModel],Switch[formControlName],Switch[formControl],switch[ngModel],switch[formControlName],switch[formControl]", host: { listeners: { "checkedChange": "onChange($event.value)" } }, providers: [CHECKED_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8220
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CheckedValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8221
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: CheckedValueAccessor, isStandalone: true, selector: "Switch[ngModel],Switch[formControlName],Switch[formControl],switch[ngModel],switch[formControlName],switch[formControl]", host: { listeners: { "checkedChange": "onChange($event.value)" } }, providers: [CHECKED_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8219
8222
  }
8220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CheckedValueAccessor, decorators: [{
8223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CheckedValueAccessor, decorators: [{
8221
8224
  type: Directive,
8222
8225
  args: [{
8223
8226
  selector: 'Switch[ngModel],Switch[formControlName],Switch[formControl],' + 'switch[ngModel],switch[formControlName],switch[formControl]',
@@ -8251,10 +8254,10 @@ class DateValueAccessor extends BaseValueAccessor {
8251
8254
  const normalized = super.normalizeValue(value);
8252
8255
  this.view.date = normalized;
8253
8256
  }
8254
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: DateValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8255
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: DateValueAccessor, isStandalone: true, selector: "DatePicker[ngModel],DatePicker[formControlName],DatePicker[formControl],datepicker[ngModel],datepicker[formControlName],datepicker[formControl],datePicker[ngModel],datePicker[formControlName],datePicker[formControl],date-picker[ngModel],date-picker[formControlName],date-picker[formControl]", host: { listeners: { "dateChange": "onChange($event.value)" } }, providers: [DATE_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DateValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8258
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: DateValueAccessor, isStandalone: true, selector: "DatePicker[ngModel],DatePicker[formControlName],DatePicker[formControl],datepicker[ngModel],datepicker[formControlName],datepicker[formControl],datePicker[ngModel],datePicker[formControlName],datePicker[formControl],date-picker[ngModel],date-picker[formControlName],date-picker[formControl]", host: { listeners: { "dateChange": "onChange($event.value)" } }, providers: [DATE_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8256
8259
  }
8257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: DateValueAccessor, decorators: [{
8260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DateValueAccessor, decorators: [{
8258
8261
  type: Directive,
8259
8262
  args: [{
8260
8263
  selector: 'DatePicker[ngModel],DatePicker[formControlName],DatePicker[formControl],' + 'datepicker[ngModel],datepicker[formControlName],datepicker[formControl],' + 'datePicker[ngModel],datePicker[formControlName],datePicker[formControl],' + 'date-picker[ngModel],date-picker[formControlName],date-picker[formControl]',
@@ -8288,10 +8291,10 @@ class TimeValueAccessor extends BaseValueAccessor {
8288
8291
  const normalized = super.normalizeValue(value);
8289
8292
  this.view.time = normalized;
8290
8293
  }
8291
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TimeValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8292
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TimeValueAccessor, isStandalone: true, selector: "TimePicker[ngModel],TimePicker[formControlName],TimePicker[formControl],timepicker[ngModel],timepicker[formControlName],timepicker[formControl],timePicker[ngModel],timePicker[formControlName],timePicker[formControl],time-picker[ngModel],time-picker[formControlName],time-picker[formControl]", host: { listeners: { "timeChange": "onChange($event.value)" } }, providers: [TIME_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TimeValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8295
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: TimeValueAccessor, isStandalone: true, selector: "TimePicker[ngModel],TimePicker[formControlName],TimePicker[formControl],timepicker[ngModel],timepicker[formControlName],timepicker[formControl],timePicker[ngModel],timePicker[formControlName],timePicker[formControl],time-picker[ngModel],time-picker[formControlName],time-picker[formControl]", host: { listeners: { "timeChange": "onChange($event.value)" } }, providers: [TIME_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8293
8296
  }
8294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TimeValueAccessor, decorators: [{
8297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TimeValueAccessor, decorators: [{
8295
8298
  type: Directive,
8296
8299
  args: [{
8297
8300
  selector: 'TimePicker[ngModel],TimePicker[formControlName],TimePicker[formControl],' + 'timepicker[ngModel],timepicker[formControlName],timepicker[formControl],' + 'timePicker[ngModel],timePicker[formControlName],timePicker[formControl],' + 'time-picker[ngModel],time-picker[formControlName],time-picker[formControl]',
@@ -8325,10 +8328,10 @@ class NumberValueAccessor extends BaseValueAccessor {
8325
8328
  const normalized = super.normalizeValue(value);
8326
8329
  this.view.value = normalized;
8327
8330
  }
8328
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NumberValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8329
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: NumberValueAccessor, isStandalone: true, selector: "Slider[ngModel],Slider[formControlName],Slider[formControl],slider[ngModel],slider[formControlName],slider[formControl]", host: { listeners: { "valueChange": "onChange($event.value)" } }, providers: [NUMBER_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8331
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NumberValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8332
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NumberValueAccessor, isStandalone: true, selector: "Slider[ngModel],Slider[formControlName],Slider[formControl],slider[ngModel],slider[formControlName],slider[formControl]", host: { listeners: { "valueChange": "onChange($event.value)" } }, providers: [NUMBER_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8330
8333
  }
8331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NumberValueAccessor, decorators: [{
8334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NumberValueAccessor, decorators: [{
8332
8335
  type: Directive,
8333
8336
  args: [{
8334
8337
  selector: 'Slider[ngModel],Slider[formControlName],Slider[formControl],' + 'slider[ngModel],slider[formControlName],slider[formControl]',
@@ -8369,10 +8372,10 @@ class SelectedIndexValueAccessor extends BaseValueAccessor {
8369
8372
  this.viewInitialized = true;
8370
8373
  this.view.selectedIndex = this.value;
8371
8374
  }
8372
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: SelectedIndexValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8373
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: SelectedIndexValueAccessor, isStandalone: true, selector: "SegmentedBar[ngModel],SegmentedBar[formControlName],SegmentedBar[formControl],segmentedBar[ngModel],segmentedBar[formControlName],segmentedBar[formControl],segmentedbar[ngModel],segmentedbar[formControlName],segmentedbar[formControl],segmented-bar[ngModel],segmented-bar[formControlName],segmented-bar[formControl],ListPicker[ngModel],ListPicker[formControlName],ListPicker[formControl],listPicker[ngModel],listPicker[formControlName],listPicker[formControl],listpicker[ngModel],listpicker[formControlName],listpicker[formControl],list-picker[ngModel],list-picker[formControlName],list-picker[formControl],TabView[ngModel],TabView[formControlName],TabView[formControl],tabView[ngModel],tabView[formControlName],tabView[formControl],tabview[ngModel],tabview[formControlName],tabview[formControl],tab-view[ngModel],tab-view[formControlName],tab-view[formControl]", host: { listeners: { "selectedIndexChange": "onChange($event.value)" } }, providers: [SELECTED_INDEX_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SelectedIndexValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8376
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: SelectedIndexValueAccessor, isStandalone: true, selector: "SegmentedBar[ngModel],SegmentedBar[formControlName],SegmentedBar[formControl],segmentedBar[ngModel],segmentedBar[formControlName],segmentedBar[formControl],segmentedbar[ngModel],segmentedbar[formControlName],segmentedbar[formControl],segmented-bar[ngModel],segmented-bar[formControlName],segmented-bar[formControl],ListPicker[ngModel],ListPicker[formControlName],ListPicker[formControl],listPicker[ngModel],listPicker[formControlName],listPicker[formControl],listpicker[ngModel],listpicker[formControlName],listpicker[formControl],list-picker[ngModel],list-picker[formControlName],list-picker[formControl],TabView[ngModel],TabView[formControlName],TabView[formControl],tabView[ngModel],tabView[formControlName],tabView[formControl],tabview[ngModel],tabview[formControlName],tabview[formControl],tab-view[ngModel],tab-view[formControlName],tab-view[formControl]", host: { listeners: { "selectedIndexChange": "onChange($event.value)" } }, providers: [SELECTED_INDEX_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
8374
8377
  }
8375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: SelectedIndexValueAccessor, decorators: [{
8378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SelectedIndexValueAccessor, decorators: [{
8376
8379
  type: Directive,
8377
8380
  args: [{
8378
8381
  selector: 'SegmentedBar[ngModel],SegmentedBar[formControlName],SegmentedBar[formControl],' +
@@ -8395,11 +8398,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
8395
8398
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
8396
8399
 
8397
8400
  class NativeScriptFormsModule {
8398
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8399
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptFormsModule, imports: [FormsModule, TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, SelectedIndexValueAccessor, NumberValueAccessor], exports: [FormsModule, TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, SelectedIndexValueAccessor, NumberValueAccessor] }); }
8400
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptFormsModule, imports: [FormsModule, FormsModule] }); }
8401
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8402
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptFormsModule, imports: [FormsModule, TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, SelectedIndexValueAccessor, NumberValueAccessor], exports: [FormsModule, TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, SelectedIndexValueAccessor, NumberValueAccessor] }); }
8403
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptFormsModule, imports: [FormsModule, FormsModule] }); }
8401
8404
  }
8402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptFormsModule, decorators: [{
8405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptFormsModule, decorators: [{
8403
8406
  type: NgModule,
8404
8407
  args: [{
8405
8408
  providers: [],
@@ -8654,10 +8657,10 @@ class InjectableAnimationEngine extends _AnimationEngine {
8654
8657
  constructor(doc, driver, normalizer) {
8655
8658
  super(doc, driver, normalizer);
8656
8659
  }
8657
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1$1.AnimationDriver }, { token: i1$1.ɵAnimationStyleNormalizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
8658
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: InjectableAnimationEngine }); }
8660
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1$1.AnimationDriver }, { token: i1$1.ɵAnimationStyleNormalizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
8661
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InjectableAnimationEngine }); }
8659
8662
  }
8660
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: InjectableAnimationEngine, decorators: [{
8663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InjectableAnimationEngine, decorators: [{
8661
8664
  type: Injectable
8662
8665
  }], ctorParameters: () => [{ type: undefined, decorators: [{
8663
8666
  type: Inject,
@@ -8678,9 +8681,9 @@ class NativeScriptAnimationsModule {
8678
8681
  // Prevents NativeScriptAnimationsModule from getting imported multiple times
8679
8682
  throwIfAlreadyLoaded(parentModule, 'NativeScriptAnimationsModule');
8680
8683
  }
8681
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAnimationsModule, deps: [{ token: NativeScriptAnimationsModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
8682
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAnimationsModule, imports: [NativeScriptCommonModule] }); }
8683
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAnimationsModule, providers: [
8684
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAnimationsModule, deps: [{ token: NativeScriptAnimationsModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
8685
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAnimationsModule, imports: [NativeScriptCommonModule] }); }
8686
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAnimationsModule, providers: [
8684
8687
  {
8685
8688
  provide: AnimationDriver,
8686
8689
  useFactory: instantiateSupportedAnimationDriver,
@@ -8698,7 +8701,7 @@ class NativeScriptAnimationsModule {
8698
8701
  },
8699
8702
  ], imports: [NativeScriptCommonModule] }); }
8700
8703
  }
8701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAnimationsModule, decorators: [{
8704
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAnimationsModule, decorators: [{
8702
8705
  type: NgModule,
8703
8706
  args: [{
8704
8707
  imports: [NativeScriptCommonModule],
@@ -8780,10 +8783,10 @@ class NsHttpBackEnd extends HttpXhrBackend {
8780
8783
  handleLocalFileRequest(url) {
8781
8784
  return processLocalFileRequest(url, this.nsFileSystem, createSuccessResponse, createErrorResponse);
8782
8785
  }
8783
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NsHttpBackEnd, deps: [{ token: i1$2.XhrFactory }, { token: NSFileSystem }], target: i0.ɵɵFactoryTarget.Injectable }); }
8784
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NsHttpBackEnd }); }
8786
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NsHttpBackEnd, deps: [{ token: i1$2.XhrFactory }, { token: NSFileSystem }], target: i0.ɵɵFactoryTarget.Injectable }); }
8787
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NsHttpBackEnd }); }
8785
8788
  }
8786
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NsHttpBackEnd, decorators: [{
8789
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NsHttpBackEnd, decorators: [{
8787
8790
  type: Injectable
8788
8791
  }], ctorParameters: () => [{ type: i1$2.XhrFactory }, { type: NSFileSystem }] });
8789
8792
  function createSuccessResponse(url, body, status) {
@@ -8812,11 +8815,11 @@ function provideNativeScriptHttpClient(...features) {
8812
8815
  ]);
8813
8816
  }
8814
8817
  class NativeScriptHttpClientModule {
8815
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8816
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptHttpClientModule }); }
8817
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptHttpClientModule, providers: [provideNativeScriptHttpClient(withInterceptorsFromDi())] }); }
8818
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8819
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptHttpClientModule }); }
8820
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptHttpClientModule, providers: [provideNativeScriptHttpClient(withInterceptorsFromDi())] }); }
8818
8821
  }
8819
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptHttpClientModule, decorators: [{
8822
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptHttpClientModule, decorators: [{
8820
8823
  type: NgModule,
8821
8824
  args: [{
8822
8825
  providers: [provideNativeScriptHttpClient(withInterceptorsFromDi())],
@@ -8932,106 +8935,343 @@ class RouterExtensions {
8932
8935
  const outlet = this.locationStrategy.findOutlet(outletKey, currentRouteSnapshop);
8933
8936
  return outlet;
8934
8937
  }
8935
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: RouterExtensions, deps: [{ token: i1$3.Router }, { token: NSLocationStrategy }, { token: FrameService }], target: i0.ɵɵFactoryTarget.Injectable }); }
8936
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: RouterExtensions, providedIn: 'root' }); }
8938
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RouterExtensions, deps: [{ token: i1$3.Router }, { token: NSLocationStrategy }, { token: FrameService }], target: i0.ɵɵFactoryTarget.Injectable }); }
8939
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RouterExtensions, providedIn: 'root' }); }
8937
8940
  }
8938
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: RouterExtensions, decorators: [{
8941
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RouterExtensions, decorators: [{
8939
8942
  type: Injectable,
8940
8943
  args: [{
8941
8944
  providedIn: 'root',
8942
8945
  }]
8943
8946
  }], ctorParameters: () => [{ type: i1$3.Router }, { type: NSLocationStrategy }, { type: FrameService }] });
8944
8947
 
8948
+ function isUrlTree(value) {
8949
+ return value instanceof UrlTree;
8950
+ }
8945
8951
  /**
8946
8952
  * The nsRouterLink directive lets you link to specific parts of your app.
8947
8953
  *
8948
8954
  * Consider the following route configuration:
8949
8955
  * ```
8950
- * [{ path: "/user", component: UserCmp }]
8956
+ * [{ path: 'user/:name', component: UserCmp }]
8951
8957
  * ```
8952
8958
  *
8953
8959
  * When linking to this `User` route, you can write:
8954
8960
  *
8955
8961
  * ```
8956
- * <a [nsRouterLink]="["/user"]">link to user component</a>
8962
+ * <Label [nsRouterLink]="['/user/bob']" text="link to user component"></Label>
8957
8963
  * ```
8958
8964
  *
8959
- * NSRouterLink expects the value to be an array of path segments, followed by the params
8960
- * for that level of routing. For instance `["/team", {teamId: 1}, "user", {userId: 2}]`
8961
- * means that we want to generate a link to `/team;teamId=1/user;userId=2`.
8965
+ * You can use dynamic values to generate the link.
8966
+ * For a dynamic link, pass an array of path segments,
8967
+ * followed by the params for each segment.
8968
+ * For example, `['/team', teamId, 'user', userName, {details: true}]`
8969
+ * generates a link to `/team/11/user/bob;details=true`.
8970
+ *
8971
+ * Multiple static segments can be merged into one term and combined with
8972
+ * dynamic segments. For example, `['/team/11/user', userName, {details: true}]`
8973
+ *
8974
+ * The input that you provide to the link is treated as a delta to the current
8975
+ * URL. For instance, suppose the current URL is `/user/(box//aux:team)`. The
8976
+ * link `<Label [nsRouterLink]="['/user/jim']">Jim</Label>` creates the URL
8977
+ * `/user/(jim//aux:team)`.
8978
+ * See {@link Router#createUrlTree} for more information.
8979
+ *
8980
+ * @usageNotes
8981
+ *
8982
+ * You can use absolute or relative paths in a link, set query parameters,
8983
+ * control how parameters are handled, and keep a history of navigation states.
8984
+ *
8985
+ * ### Relative link paths
8962
8986
  *
8963
8987
  * The first segment name can be prepended with `/`, `./`, or `../`.
8964
- * If the segment begins with `/`, the router will look up the route from the root of the app.
8965
- * If the segment begins with `./`, or doesn"t begin with a slash, the router will
8966
- * instead look in the current component"s children for the route.
8967
- * And if the segment begins with `../`, the router will go up one level.
8988
+ * * If the first segment begins with `/`, the router looks up the route from
8989
+ * the root of the app.
8990
+ * * If the first segment begins with `./`, or doesn't begin with a slash, the
8991
+ * router looks in the children of the current activated route.
8992
+ * * If the first segment begins with `../`, the router goes up one level in the
8993
+ * route tree.
8994
+ *
8995
+ * ### Setting and handling query params and fragments
8996
+ *
8997
+ * The following link adds a query parameter and a fragment to the generated URL:
8998
+ *
8999
+ * ```html
9000
+ * <Label [nsRouterLink]="['/user/bob']" [queryParams]="{debug: true}"
9001
+ * fragment="education" text="link to user component"></Label>
9002
+ * ```
9003
+ *
9004
+ * By default, the directive constructs the new URL using the given query
9005
+ * parameters. The example generates the link: `/user/bob?debug=true#education`.
9006
+ *
9007
+ * You can instruct the directive to handle query parameters differently
9008
+ * by specifying the `queryParamsHandling` option in the link.
9009
+ * Allowed values are:
9010
+ *
9011
+ * - `'merge'`: Merge the given `queryParams` into the current query params.
9012
+ * - `'preserve'`: Preserve the current query params.
9013
+ *
9014
+ * For example:
9015
+ *
9016
+ * ```html
9017
+ * <Label [nsRouterLink]="['/user/bob']" [queryParams]="{debug: true}"
9018
+ * queryParamsHandling="merge" text="link to user component"></Label>
9019
+ * ```
9020
+ *
9021
+ * `queryParams`, `fragment`, `queryParamsHandling`, `preserveFragment`, and
9022
+ * `relativeTo` cannot be used when the `nsRouterLink` input is a `UrlTree`.
9023
+ *
9024
+ * ### NativeScript-specific options
9025
+ *
9026
+ * NativeScript adds support for page transitions and history clearing:
9027
+ *
9028
+ * ```html
9029
+ * <Label [nsRouterLink]="['/user/bob']" [clearHistory]="true"
9030
+ * pageTransition="slide" [pageTransitionDuration]="200"
9031
+ * text="link to user component"></Label>
9032
+ * ```
8968
9033
  */
8969
9034
  class NSRouterLink {
8970
- constructor(ngZone, router, navigator, route, el) {
8971
- this.ngZone = ngZone;
8972
- this.router = router;
8973
- this.navigator = navigator;
8974
- this.route = route;
8975
- this.el = el;
8976
- this.pageTransition = true;
8977
- this.commands = [];
9035
+ /**
9036
+ * Passed to {@link Router#createUrlTree} as part of the
9037
+ * `UrlCreationOptions`.
9038
+ * @see {@link UrlCreationOptions#queryParams}
9039
+ * @see {@link Router#createUrlTree}
9040
+ */
9041
+ set queryParams(value) {
9042
+ this._queryParams.set(value);
8978
9043
  }
8979
- ngAfterViewInit() {
8980
- this.el.nativeElement.on('tap', () => {
9044
+ get queryParams() {
9045
+ return untracked(this._queryParams);
9046
+ }
9047
+ /**
9048
+ * Passed to {@link Router#createUrlTree} as part of the
9049
+ * `UrlCreationOptions`.
9050
+ * @see {@link UrlCreationOptions#fragment}
9051
+ * @see {@link Router#createUrlTree}
9052
+ */
9053
+ set fragment(value) {
9054
+ this._fragment.set(value);
9055
+ }
9056
+ get fragment() {
9057
+ return untracked(this._fragment);
9058
+ }
9059
+ /**
9060
+ * Passed to {@link Router#createUrlTree} as part of the
9061
+ * `UrlCreationOptions`.
9062
+ * @see {@link UrlCreationOptions#queryParamsHandling}
9063
+ * @see {@link Router#createUrlTree}
9064
+ */
9065
+ set queryParamsHandling(value) {
9066
+ this._queryParamsHandling.set(value);
9067
+ }
9068
+ get queryParamsHandling() {
9069
+ return untracked(this._queryParamsHandling);
9070
+ }
9071
+ /**
9072
+ * Passed to {@link Router#navigateByUrl} as part of the
9073
+ * `NavigationBehaviorOptions`.
9074
+ * @see {@link NavigationBehaviorOptions#state}
9075
+ * @see {@link Router#navigateByUrl}
9076
+ */
9077
+ set state(value) {
9078
+ this._state.set(value);
9079
+ }
9080
+ get state() {
9081
+ return untracked(this._state);
9082
+ }
9083
+ /**
9084
+ * Passed to {@link Router#navigateByUrl} as part of the
9085
+ * `NavigationBehaviorOptions`.
9086
+ * @see {@link NavigationBehaviorOptions#info}
9087
+ * @see {@link Router#navigateByUrl}
9088
+ */
9089
+ set info(value) {
9090
+ this._info.set(value);
9091
+ }
9092
+ get info() {
9093
+ return untracked(this._info);
9094
+ }
9095
+ /**
9096
+ * Passed to {@link Router#createUrlTree} as part of the
9097
+ * `UrlCreationOptions`.
9098
+ * Specify a value here when you do not want to use the default value
9099
+ * for `nsRouterLink`, which is the current activated route.
9100
+ * Note that a value of `undefined` here will use the `nsRouterLink` default.
9101
+ * @see {@link UrlCreationOptions#relativeTo}
9102
+ * @see {@link Router#createUrlTree}
9103
+ */
9104
+ set relativeTo(value) {
9105
+ this._relativeTo.set(value);
9106
+ }
9107
+ get relativeTo() {
9108
+ return untracked(this._relativeTo);
9109
+ }
9110
+ /**
9111
+ * Passed to {@link Router#createUrlTree} as part of the
9112
+ * `UrlCreationOptions`.
9113
+ * @see {@link UrlCreationOptions#preserveFragment}
9114
+ * @see {@link Router#createUrlTree}
9115
+ */
9116
+ set preserveFragment(value) {
9117
+ this._preserveFragment.set(value);
9118
+ }
9119
+ get preserveFragment() {
9120
+ return untracked(this._preserveFragment);
9121
+ }
9122
+ /**
9123
+ * Passed to {@link Router#navigateByUrl} as part of the
9124
+ * `NavigationBehaviorOptions`.
9125
+ * @see {@link NavigationBehaviorOptions#skipLocationChange}
9126
+ * @see {@link Router#navigateByUrl}
9127
+ */
9128
+ set skipLocationChange(value) {
9129
+ this._skipLocationChange.set(value);
9130
+ }
9131
+ get skipLocationChange() {
9132
+ return untracked(this._skipLocationChange);
9133
+ }
9134
+ /**
9135
+ * Passed to {@link Router#navigateByUrl} as part of the
9136
+ * `NavigationBehaviorOptions`.
9137
+ * @see {@link NavigationBehaviorOptions#replaceUrl}
9138
+ * @see {@link Router#navigateByUrl}
9139
+ */
9140
+ set replaceUrl(value) {
9141
+ this._replaceUrl.set(value);
9142
+ }
9143
+ get replaceUrl() {
9144
+ return untracked(this._replaceUrl);
9145
+ }
9146
+ constructor() {
9147
+ this.ngZone = inject(NgZone);
9148
+ this.router = inject(Router);
9149
+ this.navigator = inject(RouterExtensions);
9150
+ this.route = inject(ActivatedRoute);
9151
+ this.el = inject(ElementRef);
9152
+ // Rather than trying deep equality checks or serialization, just allow urlTree to recompute
9153
+ // whenever queryParams change (which will be rare).
9154
+ this._queryParams = signal(undefined, { ...(ngDevMode ? { debugName: "_queryParams" } : /* istanbul ignore next */ {}), equal: () => false });
9155
+ this._fragment = signal(undefined, ...(ngDevMode ? [{ debugName: "_fragment" }] : /* istanbul ignore next */ []));
9156
+ this._queryParamsHandling = signal(undefined, ...(ngDevMode ? [{ debugName: "_queryParamsHandling" }] : /* istanbul ignore next */ []));
9157
+ this._state = signal(undefined, { ...(ngDevMode ? { debugName: "_state" } : /* istanbul ignore next */ {}), equal: () => false });
9158
+ this._info = signal(undefined, { ...(ngDevMode ? { debugName: "_info" } : /* istanbul ignore next */ {}), equal: () => false });
9159
+ this._relativeTo = signal(undefined, ...(ngDevMode ? [{ debugName: "_relativeTo" }] : /* istanbul ignore next */ []));
9160
+ this._preserveFragment = signal(false, ...(ngDevMode ? [{ debugName: "_preserveFragment" }] : /* istanbul ignore next */ []));
9161
+ this._skipLocationChange = signal(false, ...(ngDevMode ? [{ debugName: "_skipLocationChange" }] : /* istanbul ignore next */ []));
9162
+ this._replaceUrl = signal(false, ...(ngDevMode ? [{ debugName: "_replaceUrl" }] : /* istanbul ignore next */ []));
9163
+ this.pageTransition = true;
9164
+ /** @internal */
9165
+ this.onChanges = new Subject();
9166
+ this.routerLinkInput = signal(null, ...(ngDevMode ? [{ debugName: "routerLinkInput" }] : /* istanbul ignore next */ []));
9167
+ /** @internal */
9168
+ this._urlTree = computed(() => {
9169
+ const routerLinkInput = this.routerLinkInput();
9170
+ if (routerLinkInput === null || !this.router.createUrlTree) {
9171
+ return null;
9172
+ }
9173
+ else if (isUrlTree(routerLinkInput)) {
9174
+ return routerLinkInput;
9175
+ }
9176
+ return this.router.createUrlTree(routerLinkInput, {
9177
+ // If the `relativeTo` input is not defined, we want to use `this.route`
9178
+ // by default.
9179
+ // Otherwise, we should use the value provided by the user in the input.
9180
+ relativeTo: this._relativeTo() !== undefined ? this._relativeTo() : this.route,
9181
+ queryParams: this._queryParams(),
9182
+ fragment: this._fragment(),
9183
+ queryParamsHandling: this._queryParamsHandling(),
9184
+ preserveFragment: this._preserveFragment(),
9185
+ });
9186
+ }, ...(ngDevMode ? [{ debugName: "_urlTree" }] : /* istanbul ignore next */ []));
9187
+ // NativeScript uses tap events instead of click events
9188
+ this.tapHandler = () => {
8981
9189
  this.ngZone.run(() => {
8982
9190
  this.onTap();
8983
9191
  });
8984
- });
9192
+ };
9193
+ this.el.nativeElement.on('tap', this.tapHandler);
8985
9194
  }
8986
- set params(data) {
8987
- if (Array.isArray(data)) {
8988
- this.commands = data;
9195
+ /**
9196
+ * Commands to pass to {@link Router#createUrlTree} or a `UrlTree`.
9197
+ * - **array**: commands to pass to {@link Router#createUrlTree}.
9198
+ * - **string**: shorthand for array of commands with just the string, i.e. `['/route']`
9199
+ * - **UrlTree**: a `UrlTree` for this link rather than creating one from
9200
+ * the commands and other inputs that correspond to properties of `UrlCreationOptions`.
9201
+ * - **null|undefined**: effectively disables the `nsRouterLink`
9202
+ * @see {@link Router#createUrlTree}
9203
+ */
9204
+ set nsRouterLink(commandsOrUrlTree) {
9205
+ if (commandsOrUrlTree == null) {
9206
+ this.routerLinkInput.set(null);
8989
9207
  }
8990
9208
  else {
8991
- this.commands = [data];
9209
+ if (isUrlTree(commandsOrUrlTree)) {
9210
+ this.routerLinkInput.set(commandsOrUrlTree);
9211
+ }
9212
+ else {
9213
+ this.routerLinkInput.set(Array.isArray(commandsOrUrlTree) ? commandsOrUrlTree : [commandsOrUrlTree]);
9214
+ }
8992
9215
  }
8993
9216
  }
9217
+ // This is subscribed to by `NSRouterLinkActive` so that it knows to update
9218
+ // when there are changes to the RouterLinks it's tracking.
9219
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9220
+ ngOnChanges(_changes) {
9221
+ this.onChanges.next(this);
9222
+ }
9223
+ ngOnDestroy() {
9224
+ this.el.nativeElement.off('tap', this.tapHandler);
9225
+ }
9226
+ get urlTree() {
9227
+ return untracked(this._urlTree);
9228
+ }
9229
+ // NativeScript tap handler - replaces click handler from upstream
8994
9230
  onTap() {
9231
+ const urlTree = this.urlTree;
9232
+ if (urlTree === null) {
9233
+ return;
9234
+ }
8995
9235
  if (NativeScriptDebug.isLogEnabled()) {
8996
- NativeScriptDebug.routerLog(`nsRouterLink.tapped: ${this.commands} ` + `clear: ${this.clearHistory} ` + `transition: ${JSON.stringify(this.pageTransition)} ` + `duration: ${this.pageTransitionDuration}`);
9236
+ NativeScriptDebug.routerLog(`nsRouterLink.tapped: ${this.routerLinkInput()} ` + `clear: ${this.clearHistory} ` + `transition: ${JSON.stringify(this.pageTransition)} ` + `duration: ${this.pageTransitionDuration}`);
8997
9237
  }
8998
9238
  const extras = this.getExtras();
8999
- // this.navigator.navigateByUrl(this.urlTree, extras);
9000
- this.navigator.navigate(this.commands, {
9001
- ...extras,
9002
- relativeTo: this.route,
9003
- queryParams: this.queryParams,
9004
- fragment: this.fragment,
9005
- queryParamsHandling: this.queryParamsHandling,
9006
- preserveFragment: attrBoolValue(this.preserveFragment),
9007
- });
9239
+ const routerLinkInput = this.routerLinkInput();
9240
+ // When the input is a UrlTree, use navigateByUrl directly.
9241
+ // Otherwise, use navigate with commands array.
9242
+ if (isUrlTree(routerLinkInput)) {
9243
+ this.navigator.navigateByUrl(urlTree, extras);
9244
+ }
9245
+ else {
9246
+ this.navigator.navigate(routerLinkInput, {
9247
+ ...extras,
9248
+ // If the `relativeTo` input is not defined, we want to use `this.route`
9249
+ // by default.
9250
+ relativeTo: this._relativeTo() !== undefined ? this._relativeTo() : this.route,
9251
+ queryParams: this._queryParams(),
9252
+ fragment: this._fragment(),
9253
+ queryParamsHandling: this._queryParamsHandling(),
9254
+ preserveFragment: this._preserveFragment(),
9255
+ });
9256
+ }
9008
9257
  }
9009
9258
  getExtras() {
9010
9259
  const transition = this.getTransition();
9011
9260
  return {
9012
- skipLocationChange: attrBoolValue(this.skipLocationChange),
9013
- replaceUrl: attrBoolValue(this.replaceUrl),
9261
+ skipLocationChange: this.skipLocationChange,
9262
+ replaceUrl: this.replaceUrl,
9263
+ state: this.state,
9264
+ info: this.info,
9265
+ // NativeScript-specific navigation options
9014
9266
  clearHistory: this.convertClearHistory(this.clearHistory),
9015
9267
  animated: transition.animated,
9016
9268
  transition: transition.transition,
9017
9269
  };
9018
9270
  }
9019
- get urlTree() {
9020
- const urlTree = this.router.createUrlTree(this.commands, {
9021
- relativeTo: this.route,
9022
- queryParams: this.queryParams,
9023
- fragment: this.fragment,
9024
- queryParamsHandling: this.queryParamsHandling,
9025
- preserveFragment: attrBoolValue(this.preserveFragment),
9026
- });
9027
- if (NativeScriptDebug.isLogEnabled()) {
9028
- NativeScriptDebug.routerLog(`nsRouterLink urlTree created: ${urlTree}`);
9029
- }
9030
- return urlTree;
9031
- }
9032
9271
  convertClearHistory(value) {
9033
9272
  return value === true || value === 'true';
9034
9273
  }
9274
+ // NativeScript-specific page transition handling
9035
9275
  getTransition() {
9036
9276
  let transition;
9037
9277
  let animated;
@@ -9060,132 +9300,75 @@ class NSRouterLink {
9060
9300
  }
9061
9301
  return { animated, transition };
9062
9302
  }
9063
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSRouterLink, deps: [{ token: i0.NgZone }, { token: i1$3.Router }, { token: RouterExtensions }, { token: i1$3.ActivatedRoute }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9064
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: NSRouterLink, isStandalone: true, selector: "[nsRouterLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", preserveQueryParams: "preserveQueryParams", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", clearHistory: "clearHistory", pageTransition: "pageTransition", pageTransitionDuration: "pageTransitionDuration", params: ["nsRouterLink", "params"] }, ngImport: i0 }); }
9303
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSRouterLink, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9304
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.9", type: NSRouterLink, isStandalone: true, selector: "[nsRouterLink]", inputs: { queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", info: "info", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], clearHistory: "clearHistory", pageTransition: "pageTransition", pageTransitionDuration: "pageTransitionDuration", nsRouterLink: "nsRouterLink" }, usesOnChanges: true, ngImport: i0 }); }
9065
9305
  }
9066
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSRouterLink, decorators: [{
9306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSRouterLink, decorators: [{
9067
9307
  type: Directive,
9068
9308
  args: [{
9069
9309
  selector: '[nsRouterLink]',
9070
9310
  standalone: true,
9071
9311
  }]
9072
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1$3.Router }, { type: RouterExtensions }, { type: i1$3.ActivatedRoute }, { type: i0.ElementRef }], propDecorators: { target: [{
9073
- type: Input
9074
- }], queryParams: [{
9312
+ }], ctorParameters: () => [], propDecorators: { queryParams: [{
9075
9313
  type: Input
9076
9314
  }], fragment: [{
9077
9315
  type: Input
9078
9316
  }], queryParamsHandling: [{
9079
9317
  type: Input
9080
- }], preserveQueryParams: [{
9318
+ }], state: [{
9081
9319
  type: Input
9082
- }], preserveFragment: [{
9320
+ }], info: [{
9083
9321
  type: Input
9084
- }], skipLocationChange: [{
9322
+ }], relativeTo: [{
9085
9323
  type: Input
9324
+ }], preserveFragment: [{
9325
+ type: Input,
9326
+ args: [{ transform: booleanAttribute }]
9327
+ }], skipLocationChange: [{
9328
+ type: Input,
9329
+ args: [{ transform: booleanAttribute }]
9086
9330
  }], replaceUrl: [{
9087
- type: Input
9331
+ type: Input,
9332
+ args: [{ transform: booleanAttribute }]
9088
9333
  }], clearHistory: [{
9089
9334
  type: Input
9090
9335
  }], pageTransition: [{
9091
9336
  type: Input
9092
9337
  }], pageTransitionDuration: [{
9093
9338
  type: Input
9094
- }], params: [{
9095
- type: Input,
9096
- args: ['nsRouterLink']
9339
+ }], nsRouterLink: [{
9340
+ type: Input
9097
9341
  }] } });
9098
- function attrBoolValue(s) {
9099
- return s === '' || !!s;
9100
- }
9101
9342
 
9102
- /* tslint:disable:forin */
9103
- // Copied unexported functions from @angular/router/src/url_tree
9104
- function containsTree(container, containee, exact) {
9105
- if (exact) {
9106
- return equalSegmentGroups(container.root, containee.root);
9107
- }
9108
- else {
9109
- return containsSegmentGroup(container.root, containee.root);
9110
- }
9111
- }
9112
- function equalSegmentGroups(container, containee) {
9113
- if (!equalPath(container.segments, containee.segments)) {
9114
- return false;
9115
- }
9116
- if (container.numberOfChildren !== containee.numberOfChildren) {
9117
- return false;
9118
- }
9119
- for (const c in containee.children) {
9120
- if (!container.children[c]) {
9121
- return false;
9122
- }
9123
- if (!equalSegmentGroups(container.children[c], containee.children[c])) {
9124
- return false;
9125
- }
9126
- }
9127
- return true;
9128
- }
9129
- function containsSegmentGroup(container, containee) {
9130
- return containsSegmentGroupHelper(container, containee, containee.segments);
9131
- }
9132
- function containsSegmentGroupHelper(container, containee, containeePaths) {
9133
- if (container.segments.length > containeePaths.length) {
9134
- const current = container.segments.slice(0, containeePaths.length);
9135
- if (!equalPath(current, containeePaths)) {
9136
- return false;
9137
- }
9138
- if (containee.hasChildren()) {
9139
- return false;
9140
- }
9141
- return true;
9142
- }
9143
- else if (container.segments.length === containeePaths.length) {
9144
- if (!equalPath(container.segments, containeePaths)) {
9145
- return false;
9146
- }
9147
- for (const c in containee.children) {
9148
- if (!container.children[c]) {
9149
- return false;
9150
- }
9151
- if (!containsSegmentGroup(container.children[c], containee.children[c])) {
9152
- return false;
9153
- }
9154
- }
9155
- return true;
9156
- }
9157
- else {
9158
- const current = containeePaths.slice(0, container.segments.length);
9159
- const next = containeePaths.slice(container.segments.length);
9160
- if (!equalPath(container.segments, current)) {
9161
- return false;
9162
- }
9163
- if (!container.children[PRIMARY_OUTLET]) {
9164
- return false;
9165
- }
9166
- return containsSegmentGroupHelper(container.children[PRIMARY_OUTLET], containee, next);
9167
- }
9168
- }
9169
- function equalPath(a, b) {
9170
- if (a.length !== b.length) {
9171
- return false;
9172
- }
9173
- for (let i = 0; i < a.length; ++i) {
9174
- if (a[i].path !== b[i].path) {
9175
- return false;
9176
- }
9177
- }
9178
- return true;
9343
+ // Inline equivalent of upstream's exactMatchOptions
9344
+ const exactMatchOptions = {
9345
+ paths: 'exact',
9346
+ fragment: 'ignored',
9347
+ matrixParams: 'ignored',
9348
+ queryParams: 'exact',
9349
+ };
9350
+ // Inline equivalent of upstream's subsetMatchOptions
9351
+ const subsetMatchOptions = {
9352
+ paths: 'subset',
9353
+ fragment: 'ignored',
9354
+ matrixParams: 'ignored',
9355
+ queryParams: 'subset',
9356
+ };
9357
+ /**
9358
+ * Use instead of `'paths' in options` to be compatible with property renaming
9359
+ */
9360
+ function isActiveMatchOptions(options) {
9361
+ const o = options;
9362
+ return !!(o.paths || o.matrixParams || o.queryParams || o.fragment);
9179
9363
  }
9180
-
9181
9364
  /**
9182
- * The NSRouterLinkActive directive lets you add a CSS class to an element when the link"s route
9365
+ * The NSRouterLinkActive directive lets you add a CSS class to an element when the link's route
9183
9366
  * becomes active.
9184
9367
  *
9185
9368
  * Consider the following example:
9186
9369
  *
9187
9370
  * ```
9188
- * <a [nsRouterLink]="/user/bob" [nsRouterLinkActive]="active-link">Bob</a>
9371
+ * <Label [nsRouterLink]="/user/bob" [nsRouterLinkActive]="'active-link'" text="Bob"></Label>
9189
9372
  * ```
9190
9373
  *
9191
9374
  * When the url is either "/user" or "/user/bob", the active-link class will
@@ -9194,117 +9377,255 @@ function equalPath(a, b) {
9194
9377
  * You can set more than one class, as follows:
9195
9378
  *
9196
9379
  * ```
9197
- * <a [nsRouterLink]="/user/bob" [nsRouterLinkActive]="class1 class2">Bob</a>
9198
- * <a [nsRouterLink]="/user/bob" [nsRouterLinkActive]="["class1", "class2"]">Bob</a>
9380
+ * <Label [nsRouterLink]="/user/bob" [nsRouterLinkActive]="'class1 class2'" text="Bob"></Label>
9381
+ * <Label [nsRouterLink]="/user/bob" [nsRouterLinkActive]="['class1', 'class2']" text="Bob"></Label>
9199
9382
  * ```
9200
9383
  *
9201
9384
  * You can configure NSRouterLinkActive by passing `exact: true`. This will add the
9202
9385
  * classes only when the url matches the link exactly.
9203
9386
  *
9204
9387
  * ```
9205
- * <a [nsRouterLink]="/user/bob" [nsRouterLinkActive]="active-link"
9206
- * [nsRouterLinkActiveOptions]="{exact: true}">Bob</a>
9388
+ * <Label [nsRouterLink]="/user/bob" [nsRouterLinkActive]="'active-link'"
9389
+ * [nsRouterLinkActiveOptions]="{exact: true}" text="Bob"></Label>
9207
9390
  * ```
9208
9391
  *
9209
- * Finally, you can apply the NSRouterLinkActive directive to an ancestor of a RouterLink.
9392
+ * To directly check the `isActive` status of the link, assign the `NSRouterLinkActive`
9393
+ * instance to a template variable.
9394
+ * For example, the following checks the status without assigning any CSS classes:
9210
9395
  *
9211
9396
  * ```
9212
- * <div [nsRouterLinkActive]="active-link" [nsRouterLinkActiveOptions]="{exact: true}">
9213
- * <a [nsRouterLink]="/user/jim">Jim</a>
9214
- * <a [nsRouterLink]="/user/bob">Bob</a>
9215
- * </div>
9397
+ * <Label [nsRouterLink]="/user/bob" nsRouterLinkActive #rla="routerLinkActive"
9398
+ * [text]="'Bob ' + (rla.isActive ? '(already open)' : '')"></Label>
9216
9399
  * ```
9217
9400
  *
9218
- * This will set the active-link class on the div tag if the url is either "/user/jim" or
9401
+ * You can apply the NSRouterLinkActive directive to an ancestor of a RouterLink.
9402
+ *
9403
+ * ```
9404
+ * <StackLayout [nsRouterLinkActive]="'active-link'" [nsRouterLinkActiveOptions]="{exact: true}">
9405
+ * <Label [nsRouterLink]="/user/jim" text="Jim"></Label>
9406
+ * <Label [nsRouterLink]="/user/bob" text="Bob"></Label>
9407
+ * </StackLayout>
9408
+ * ```
9409
+ *
9410
+ * This will set the active-link class on the StackLayout if the url is either "/user/jim" or
9219
9411
  * "/user/bob".
9220
9412
  *
9221
- * @stable
9413
+ * The `NSRouterLinkActive` directive can also be used to set the aria-current attribute
9414
+ * to provide an alternative distinction for active elements to visually impaired users.
9415
+ *
9416
+ * For example, the following code adds the 'active' class to the Home Page link when it is
9417
+ * indeed active and in such case also sets its aria-current attribute to 'page':
9418
+ *
9419
+ * ```
9420
+ * <Label nsRouterLink="/" [nsRouterLinkActive]="'active'" ariaCurrentWhenActive="page" text="Home Page"></Label>
9421
+ * ```
9222
9422
  */
9223
9423
  class NSRouterLinkActive {
9224
- constructor(router, element, renderer) {
9225
- this.router = router;
9226
- this.element = element;
9227
- this.renderer = renderer;
9424
+ get isActive() {
9425
+ return this._isActive;
9426
+ }
9427
+ constructor() {
9228
9428
  this.classes = [];
9229
- this.active = false;
9429
+ this._isActive = false;
9430
+ /**
9431
+ * Options to configure how to determine if the router link is active.
9432
+ *
9433
+ * These options are passed to the `isActive()` function.
9434
+ *
9435
+ * @see {@link isActive}
9436
+ */
9230
9437
  this.nsRouterLinkActiveOptions = { exact: false };
9231
- this.subscription = router.events.subscribe((s) => {
9438
+ /**
9439
+ *
9440
+ * You can use the output `isActiveChange` to get notified each time the link becomes
9441
+ * active or inactive.
9442
+ *
9443
+ * Emits:
9444
+ * true -> Route is active
9445
+ * false -> Route is inactive
9446
+ *
9447
+ * ```html
9448
+ * <Label
9449
+ * [nsRouterLink]="/user/bob"
9450
+ * [nsRouterLinkActive]="'active-link'"
9451
+ * (isActiveChange)="this.onRouterLinkActive($event)" text="Bob"></Label>
9452
+ * ```
9453
+ */
9454
+ this.isActiveChange = new EventEmitter();
9455
+ this.link = inject(NSRouterLink, { optional: true });
9456
+ this.router = inject(Router);
9457
+ this.element = inject(ElementRef);
9458
+ this.renderer = inject(Renderer2);
9459
+ this.cdr = inject(ChangeDetectorRef);
9460
+ this.routerEventsSubscription = this.router.events.subscribe((s) => {
9232
9461
  if (s instanceof NavigationEnd) {
9233
9462
  this.update();
9234
9463
  }
9235
9464
  });
9236
9465
  }
9237
- get isActive() {
9238
- return this.active;
9239
- }
9240
9466
  ngAfterContentInit() {
9241
- this.links.changes.subscribe(() => this.update());
9242
- this.update();
9467
+ // `of(null)` is used to force subscribe body to execute once immediately (like `startWith`).
9468
+ of(this.links.changes, of(null))
9469
+ .pipe(mergeAll())
9470
+ .subscribe(() => {
9471
+ this.update();
9472
+ this.subscribeToEachLinkOnChanges();
9473
+ });
9474
+ }
9475
+ subscribeToEachLinkOnChanges() {
9476
+ this.linkInputChangesSubscription?.unsubscribe();
9477
+ const allLinkChanges = [...this.links.toArray(), this.link]
9478
+ .filter((link) => !!link)
9479
+ .map((link) => link.onChanges);
9480
+ this.linkInputChangesSubscription = from(allLinkChanges)
9481
+ .pipe(mergeAll())
9482
+ .subscribe((link) => {
9483
+ if (this._isActive !== this.isLinkActive(this.router)(link)) {
9484
+ this.update();
9485
+ }
9486
+ });
9243
9487
  }
9244
9488
  set nsRouterLinkActive(data) {
9245
- if (Array.isArray(data)) {
9246
- this.classes = data;
9247
- }
9248
- else {
9249
- this.classes = data.split(' ');
9250
- }
9489
+ const classes = Array.isArray(data) ? data : data.split(' ');
9490
+ this.classes = classes.filter((c) => !!c);
9251
9491
  }
9252
- ngOnChanges() {
9492
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9493
+ ngOnChanges(_changes) {
9253
9494
  this.update();
9254
9495
  }
9255
9496
  ngOnDestroy() {
9256
- this.subscription.unsubscribe();
9497
+ this.routerEventsSubscription.unsubscribe();
9498
+ this.linkInputChangesSubscription?.unsubscribe();
9257
9499
  }
9258
9500
  update() {
9259
- if (!this.links) {
9501
+ if (!this.links || !this.router.navigated)
9260
9502
  return;
9261
- }
9262
- const hasActiveLinks = this.hasActiveLinks();
9263
- // react only when status has changed to prevent unnecessary dom updates
9264
- if (this.active !== hasActiveLinks) {
9265
- const currentUrlTree = this.router.parseUrl(this.router.url);
9266
- const isActiveLinks = this.reduceList(currentUrlTree, this.links);
9503
+ queueMicrotask(() => {
9504
+ const hasActiveLinks = this.hasActiveLinks();
9267
9505
  this.classes.forEach((c) => {
9268
- if (isActiveLinks) {
9506
+ if (hasActiveLinks) {
9269
9507
  this.renderer.addClass(this.element.nativeElement, c);
9270
9508
  }
9271
9509
  else {
9272
9510
  this.renderer.removeClass(this.element.nativeElement, c);
9273
9511
  }
9274
9512
  });
9275
- }
9276
- Promise.resolve(hasActiveLinks).then((active) => (this.active = active));
9277
- }
9278
- reduceList(currentUrlTree, q) {
9279
- return q.reduce((res, link) => {
9280
- return res || containsTree(currentUrlTree, link.urlTree, this.nsRouterLinkActiveOptions.exact);
9281
- }, false);
9513
+ if (hasActiveLinks && this.ariaCurrentWhenActive !== undefined) {
9514
+ this.renderer.setAttribute(this.element.nativeElement, 'aria-current', this.ariaCurrentWhenActive.toString());
9515
+ }
9516
+ else {
9517
+ this.renderer.removeAttribute(this.element.nativeElement, 'aria-current');
9518
+ }
9519
+ // Only emit change if the active state changed.
9520
+ if (this._isActive !== hasActiveLinks) {
9521
+ this._isActive = hasActiveLinks;
9522
+ this.cdr.markForCheck();
9523
+ // Emit on isActiveChange after classes are updated
9524
+ this.isActiveChange.emit(hasActiveLinks);
9525
+ }
9526
+ });
9282
9527
  }
9283
9528
  isLinkActive(router) {
9284
- return (link) => router.isActive(link.urlTree, this.nsRouterLinkActiveOptions.exact);
9529
+ const options = isActiveMatchOptions(this.nsRouterLinkActiveOptions)
9530
+ ? this.nsRouterLinkActiveOptions
9531
+ : // While the types should disallow `undefined` here, it's possible without strict inputs
9532
+ (this.nsRouterLinkActiveOptions.exact ?? false)
9533
+ ? { ...exactMatchOptions }
9534
+ : { ...subsetMatchOptions };
9535
+ return (link) => {
9536
+ const urlTree = link.urlTree;
9537
+ return urlTree ? untracked(isActive(urlTree, router, options)) : false;
9538
+ };
9285
9539
  }
9286
9540
  hasActiveLinks() {
9287
- return this.links.some(this.isLinkActive(this.router));
9541
+ const isActiveCheckFn = this.isLinkActive(this.router);
9542
+ return (this.link && isActiveCheckFn(this.link)) || this.links.some(isActiveCheckFn);
9288
9543
  }
9289
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSRouterLinkActive, deps: [{ token: i1$3.Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
9290
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: NSRouterLinkActive, isStandalone: true, selector: "[nsRouterLinkActive]", inputs: { nsRouterLinkActiveOptions: "nsRouterLinkActiveOptions", nsRouterLinkActive: "nsRouterLinkActive" }, queries: [{ propertyName: "links", predicate: NSRouterLink }], exportAs: ["routerLinkActive"], usesOnChanges: true, ngImport: i0 }); }
9544
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSRouterLinkActive, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9545
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NSRouterLinkActive, isStandalone: true, selector: "[nsRouterLinkActive]", inputs: { nsRouterLinkActiveOptions: "nsRouterLinkActiveOptions", ariaCurrentWhenActive: "ariaCurrentWhenActive", nsRouterLinkActive: "nsRouterLinkActive" }, outputs: { isActiveChange: "isActiveChange" }, queries: [{ propertyName: "links", predicate: NSRouterLink, descendants: true }], exportAs: ["routerLinkActive"], usesOnChanges: true, ngImport: i0 }); }
9291
9546
  }
9292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSRouterLinkActive, decorators: [{
9547
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSRouterLinkActive, decorators: [{
9293
9548
  type: Directive,
9294
9549
  args: [{
9295
9550
  selector: '[nsRouterLinkActive]',
9296
9551
  exportAs: 'routerLinkActive',
9297
9552
  standalone: true,
9298
9553
  }]
9299
- }], ctorParameters: () => [{ type: i1$3.Router }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { links: [{
9554
+ }], ctorParameters: () => [], propDecorators: { links: [{
9300
9555
  type: ContentChildren,
9301
- args: [NSRouterLink]
9556
+ args: [NSRouterLink, { descendants: true }]
9302
9557
  }], nsRouterLinkActiveOptions: [{
9303
9558
  type: Input
9559
+ }], ariaCurrentWhenActive: [{
9560
+ type: Input
9561
+ }], isActiveChange: [{
9562
+ type: Output
9304
9563
  }], nsRouterLinkActive: [{
9305
9564
  type: Input
9306
9565
  }] } });
9307
9566
 
9567
+ const INPUT_BINDER = new InjectionToken('RoutedComponentInputBinder');
9568
+ class RoutedComponentInputBinder {
9569
+ constructor(options) {
9570
+ this.options = options;
9571
+ this.outletDataSubscriptions = new Map();
9572
+ this.outletSeenKeys = new Map();
9573
+ this.options.queryParams ??= true;
9574
+ }
9575
+ bindActivatedRouteToOutletComponent(outlet) {
9576
+ this.unsubscribeFromRouteData(outlet);
9577
+ this.subscribeToRouteData(outlet);
9578
+ }
9579
+ unsubscribeFromRouteData(outlet) {
9580
+ this.outletDataSubscriptions.get(outlet)?.unsubscribe();
9581
+ this.outletDataSubscriptions.delete(outlet);
9582
+ this.outletSeenKeys.delete(outlet);
9583
+ }
9584
+ subscribeToRouteData(outlet) {
9585
+ const { activatedRoute } = outlet;
9586
+ const dataSubscription = combineLatest([this.options.queryParams ? activatedRoute.queryParams : of({}), activatedRoute.params, activatedRoute.data])
9587
+ .pipe(switchMap(([queryParams, params, data], index) => {
9588
+ data = { ...queryParams, ...params, ...data };
9589
+ if (index === 0) {
9590
+ return of(data);
9591
+ }
9592
+ return Promise.resolve(data);
9593
+ }))
9594
+ .subscribe((data) => {
9595
+ if (!outlet.isActivated || !outlet.activatedComponentRef || outlet.activatedRoute !== activatedRoute || activatedRoute.component === null) {
9596
+ this.unsubscribeFromRouteData(outlet);
9597
+ return;
9598
+ }
9599
+ const mirror = reflectComponentType(activatedRoute.component);
9600
+ if (!mirror) {
9601
+ this.unsubscribeFromRouteData(outlet);
9602
+ return;
9603
+ }
9604
+ let seenKeys = this.outletSeenKeys.get(outlet);
9605
+ if (!seenKeys) {
9606
+ seenKeys = new Set();
9607
+ this.outletSeenKeys.set(outlet, seenKeys);
9608
+ }
9609
+ for (const key of Object.keys(data)) {
9610
+ seenKeys.add(key);
9611
+ }
9612
+ const behavior = this.options.unmatchedInputBehavior ?? 'alwaysUndefined';
9613
+ for (const { templateName } of mirror.inputs) {
9614
+ const value = data[templateName];
9615
+ if (value !== undefined || behavior === 'alwaysUndefined' || seenKeys.has(templateName)) {
9616
+ outlet.activatedComponentRef.setInput(templateName, value);
9617
+ }
9618
+ }
9619
+ });
9620
+ this.outletDataSubscriptions.set(outlet, dataSubscription);
9621
+ }
9622
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RoutedComponentInputBinder, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
9623
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RoutedComponentInputBinder }); }
9624
+ }
9625
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
9626
+ type: Injectable
9627
+ }], ctorParameters: () => [{ type: undefined }] });
9628
+
9308
9629
  function zoneWrap(fn) {
9309
9630
  return typeof Zone === 'undefined' ? fn : Zone.current.wrap(fn, 'angular');
9310
9631
  }
@@ -9358,6 +9679,9 @@ class PageRouterOutlet {
9358
9679
  get isActivated() {
9359
9680
  return !!this.activated;
9360
9681
  }
9682
+ get activatedComponentRef() {
9683
+ return this.activated;
9684
+ }
9361
9685
  get component() {
9362
9686
  if (!this.activated) {
9363
9687
  if (NativeScriptDebug.isLogEnabled()) {
@@ -9393,6 +9717,7 @@ class PageRouterOutlet {
9393
9717
  this.ngZone = inject(NgZone);
9394
9718
  this.router = inject(Router);
9395
9719
  this.environmentInjector = inject(EnvironmentInjector);
9720
+ this.inputBinder = inject(INPUT_BINDER, { optional: true });
9396
9721
  // tslint:disable-line:directive-class-suffix
9397
9722
  this.activated = null;
9398
9723
  this._activatedRoute = null;
@@ -9448,6 +9773,7 @@ class PageRouterOutlet {
9448
9773
  else {
9449
9774
  NativeScriptDebug.routerLog('PageRouterOutlet.ngOnDestroy: no outlet available for page-router-outlet');
9450
9775
  }
9776
+ this.inputBinder?.unsubscribeFromRouteData(this);
9451
9777
  if (this.isActivated) {
9452
9778
  const c = this.activated.instance;
9453
9779
  this.activated.hostView.detach();
@@ -9470,6 +9796,7 @@ class PageRouterOutlet {
9470
9796
  return;
9471
9797
  }
9472
9798
  this.postNavFunction?.();
9799
+ this.inputBinder?.unsubscribeFromRouteData(this);
9473
9800
  const c = this.activated.instance;
9474
9801
  destroyComponentRef(this.activated);
9475
9802
  this.activated = null;
@@ -9490,6 +9817,7 @@ class PageRouterOutlet {
9490
9817
  NativeScriptDebug.routerLog(`PageRouterOutlet.detach() - ${routeToString(this._activatedRoute)}`);
9491
9818
  }
9492
9819
  this.postNavFunction?.();
9820
+ this.inputBinder?.unsubscribeFromRouteData(this);
9493
9821
  // Detach from ChangeDetection
9494
9822
  this.activated.hostView.detach();
9495
9823
  const component = this.activated;
@@ -9511,6 +9839,7 @@ class PageRouterOutlet {
9511
9839
  this.activated.hostView.reattach();
9512
9840
  this._activatedRoute = activatedRoute;
9513
9841
  this.markActivatedRoute(activatedRoute);
9842
+ this.inputBinder?.bindActivatedRouteToOutletComponent(this);
9514
9843
  // we have a child with the same name, so we don't finish the back nav
9515
9844
  if (this.isFinalPageRouterOutlet()) {
9516
9845
  this.locationStrategy._finishBackPageNavigation(this.frame);
@@ -9559,6 +9888,7 @@ class PageRouterOutlet {
9559
9888
  this._activatedRoute = activatedRoute;
9560
9889
  this.markActivatedRoute(activatedRoute);
9561
9890
  this.activateOnGoForward(activatedRoute, resolver || this.environmentInjector);
9891
+ this.inputBinder?.bindActivatedRouteToOutletComponent(this);
9562
9892
  this.activateEvents.emit(this.activated.instance);
9563
9893
  }
9564
9894
  activateOnGoForward(activatedRoute, resolverOrInjector) {
@@ -9744,8 +10074,8 @@ class PageRouterOutlet {
9744
10074
  }
9745
10075
  return outlet;
9746
10076
  }
9747
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageRouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9748
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: PageRouterOutlet, isStandalone: true, selector: "page-router-outlet", outputs: { activateEvents: "activate", deactivateEvents: "deactivate" }, ngImport: i0 }); }
10077
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PageRouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10078
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: PageRouterOutlet, isStandalone: true, selector: "page-router-outlet", outputs: { activateEvents: "activate", deactivateEvents: "deactivate" }, ngImport: i0 }); }
9749
10079
  }
9750
10080
  __decorate([
9751
10081
  profile,
@@ -9759,7 +10089,7 @@ __decorate([
9759
10089
  __metadata("design:paramtypes", [Page, ComponentRef, Object]),
9760
10090
  __metadata("design:returntype", void 0)
9761
10091
  ], PageRouterOutlet.prototype, "loadComponentInPage", null);
9762
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PageRouterOutlet, decorators: [{
10092
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PageRouterOutlet, decorators: [{
9763
10093
  type: Directive,
9764
10094
  args: [{
9765
10095
  selector: 'page-router-outlet',
@@ -9822,10 +10152,10 @@ class NativescriptPlatformLocation extends PlatformLocation {
9822
10152
  back() {
9823
10153
  this.locationStrategy.back();
9824
10154
  }
9825
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativescriptPlatformLocation, deps: [{ token: NSLocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
9826
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativescriptPlatformLocation }); }
10155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativescriptPlatformLocation, deps: [{ token: NSLocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
10156
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativescriptPlatformLocation }); }
9827
10157
  }
9828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativescriptPlatformLocation, decorators: [{
10158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativescriptPlatformLocation, decorators: [{
9829
10159
  type: Injectable
9830
10160
  }], ctorParameters: () => [{ type: NSLocationStrategy }] });
9831
10161
 
@@ -9841,10 +10171,10 @@ class NSEmptyOutletComponent {
9841
10171
  });
9842
10172
  }
9843
10173
  }
9844
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSEmptyOutletComponent, deps: [{ token: i1.Page }], target: i0.ɵɵFactoryTarget.Component }); }
9845
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: NSEmptyOutletComponent, isStandalone: true, selector: "ns-empty-outlet", viewQueries: [{ propertyName: "pageRouterOutlet", first: true, predicate: PageRouterOutlet, descendants: true, read: PageRouterOutlet }], ngImport: i0, template: "<page-router-outlet isEmptyOutlet='true'></page-router-outlet>", isInline: true, dependencies: [{ kind: "directive", type: PageRouterOutlet, selector: "page-router-outlet", outputs: ["activate", "deactivate"] }] }); }
10174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSEmptyOutletComponent, deps: [{ token: i1.Page }], target: i0.ɵɵFactoryTarget.Component }); }
10175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: NSEmptyOutletComponent, isStandalone: true, selector: "ns-empty-outlet", viewQueries: [{ propertyName: "pageRouterOutlet", first: true, predicate: PageRouterOutlet, descendants: true, read: PageRouterOutlet }], ngImport: i0, template: "<page-router-outlet isEmptyOutlet='true'></page-router-outlet>", isInline: true, dependencies: [{ kind: "directive", type: PageRouterOutlet, selector: "page-router-outlet", outputs: ["activate", "deactivate"] }] }); }
9846
10176
  }
9847
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NSEmptyOutletComponent, decorators: [{
10177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NSEmptyOutletComponent, decorators: [{
9848
10178
  type: Component,
9849
10179
  args: [{
9850
10180
  // tslint:disable-next-line:component-selector
@@ -10440,10 +10770,10 @@ class NativeScriptAngularHmrRouteReplay {
10440
10770
  this.scheduleRestoringWindowClose(aborted ? 'replay-aborted' : 'replay-completed');
10441
10771
  }
10442
10772
  }
10443
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAngularHmrRouteReplay, deps: [{ token: i1$3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
10444
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAngularHmrRouteReplay }); }
10773
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAngularHmrRouteReplay, deps: [{ token: i1$3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
10774
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAngularHmrRouteReplay }); }
10445
10775
  }
10446
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAngularHmrRouteReplay, decorators: [{
10776
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAngularHmrRouteReplay, decorators: [{
10447
10777
  type: Injectable
10448
10778
  }], ctorParameters: () => [{ type: i1$3.Router }] });
10449
10779
 
@@ -10570,13 +10900,20 @@ class NativeScriptAngularHmrRouteTracker {
10570
10900
  installCaptureHook() {
10571
10901
  return installAngularHmrRouteCaptureHook(() => this.captureCurrentRoute('hmr-reboot'));
10572
10902
  }
10573
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAngularHmrRouteTracker, deps: [{ token: i1$3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
10574
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAngularHmrRouteTracker }); }
10903
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAngularHmrRouteTracker, deps: [{ token: i1$3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
10904
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAngularHmrRouteTracker }); }
10575
10905
  }
10576
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptAngularHmrRouteTracker, decorators: [{
10906
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptAngularHmrRouteTracker, decorators: [{
10577
10907
  type: Injectable
10578
10908
  }], ctorParameters: () => [{ type: i1$3.Router }] });
10579
10909
 
10910
+ const COMPONENT_INPUT_BINDING_FEATURE_KIND = withComponentInputBinding().ɵkind;
10911
+ function inputBinderProviders(options = {}) {
10912
+ return [{ provide: INPUT_BINDER, useFactory: () => new RoutedComponentInputBinder(options) }];
10913
+ }
10914
+ function provideComponentInputBinding(options = {}) {
10915
+ return inputBinderProviders(options);
10916
+ }
10580
10917
  function provideLocationStrategy(locationStrategy, frameService, startPath) {
10581
10918
  return locationStrategy ? locationStrategy : new NSLocationStrategy(frameService, startPath);
10582
10919
  }
@@ -10610,17 +10947,20 @@ class NativeScriptRouterModule {
10610
10947
  deps: [NativeScriptAngularHmrRouteTracker, NativeScriptAngularHmrRouteReplay],
10611
10948
  useFactory: () => () => undefined,
10612
10949
  },
10950
+ config?.bindToComponentInputs
10951
+ ? inputBinderProviders(typeof config.bindToComponentInputs === 'object' ? config.bindToComponentInputs : {})
10952
+ : [],
10613
10953
  ],
10614
10954
  };
10615
10955
  }
10616
10956
  static forChild(routes) {
10617
10957
  return { ngModule: NativeScriptRouterModule, providers: RouterModule.forChild(cloneRoutesForBootstrap(routes)).providers };
10618
10958
  }
10619
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10620
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptRouterModule, imports: [RouterModule, NativeScriptCommonModule, NSRouterLink, NSRouterLinkActive, PageRouterOutlet, NSEmptyOutletComponent], exports: [RouterModule, NSRouterLink, NSRouterLinkActive, PageRouterOutlet, NSEmptyOutletComponent] }); }
10621
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptRouterModule, imports: [RouterModule, NativeScriptCommonModule, RouterModule] }); }
10959
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10960
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptRouterModule, imports: [RouterModule, NativeScriptCommonModule, NSRouterLink, NSRouterLinkActive, PageRouterOutlet, NSEmptyOutletComponent], exports: [RouterModule, NSRouterLink, NSRouterLinkActive, PageRouterOutlet, NSEmptyOutletComponent] }); }
10961
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptRouterModule, imports: [RouterModule, NativeScriptCommonModule, RouterModule] }); }
10622
10962
  }
10623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: NativeScriptRouterModule, decorators: [{
10963
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NativeScriptRouterModule, decorators: [{
10624
10964
  type: NgModule,
10625
10965
  args: [{
10626
10966
  imports: [RouterModule, NativeScriptCommonModule, ...ROUTER_COMPONENTS],
@@ -10632,6 +10972,7 @@ function rootRoute(router) {
10632
10972
  return router.routerState.root;
10633
10973
  }
10634
10974
  function provideNativeScriptRouter(routes, ...features) {
10975
+ const hasInputBinding = features.some((f) => f.ɵkind === COMPONENT_INPUT_BINDING_FEATURE_KIND);
10635
10976
  return makeEnvironmentProviders([
10636
10977
  provideRouter(cloneRoutesForBootstrap(routes), ...features),
10637
10978
  {
@@ -10651,15 +10992,12 @@ function provideNativeScriptRouter(routes, ...features) {
10651
10992
  { provide: RouteReuseStrategy, useExisting: NSRouteReuseStrategy },
10652
10993
  NativeScriptAngularHmrRouteTracker,
10653
10994
  NativeScriptAngularHmrRouteReplay,
10654
- {
10655
- provide: ENVIRONMENT_INITIALIZER,
10656
- multi: true,
10657
- useValue: () => {
10658
- inject(NativeScriptAngularHmrRouteTracker);
10659
- inject(NativeScriptAngularHmrRouteReplay);
10660
- },
10661
- },
10995
+ provideEnvironmentInitializer(() => {
10996
+ inject(NativeScriptAngularHmrRouteTracker);
10997
+ inject(NativeScriptAngularHmrRouteReplay);
10998
+ }),
10662
10999
  // {provide: APP_BOOTSTRAP_LISTENER, multi: true, useFactory: getBootstrapListener},
11000
+ hasInputBinding ? inputBinderProviders() : [],
10663
11001
  ]);
10664
11002
  }
10665
11003
 
@@ -11050,5 +11388,5 @@ function provideNativeScriptNgZone(options) {
11050
11388
  * Generated bundle index. Do not edit.
11051
11389
  */
11052
11390
 
11053
- export { APP_ROOT_VIEW, ActionBarComponent, ActionBarScope, ActionItemDirective, AndroidFilterComponent, AppHostAsyncView, AppHostView, AppleFilterComponent, BasePortalOutlet, BaseValueAccessor, COMMON_PROVIDERS, CdkPortal, CdkPortalOutlet, CheckedValueAccessor, CommentNode, ComponentPortal, DEVICE, DISABLE_ROOT_VIEW_HANDLING, DateValueAccessor, DetachedLoader, DomPortal, ENABLE_REUSABE_VIEWS, EmulatedRenderer, FrameDirective, FramePageComponent, FramePageModule, FrameService, HmrCacheService, HmrCacheStore, IOSFilterComponent, InjectableAnimationEngine, InvisibleNode, ItemContext, ListViewComponent, ModalDialogParams, ModalDialogService, NAMESPACE_FILTERS, NATIVESCRIPT_MODULE_PROVIDERS, NATIVESCRIPT_MODULE_STATIC_PROVIDERS, NATIVESCRIPT_ROOT_MODULE_ID, NATIVE_DIALOG_DATA, NATIVE_DIALOG_DEFAULT_OPTIONS, NSEmptyOutletComponent, NSFileSystem, NSLocationStrategy, NSRouteReuseStrategy, NSRouterLink, NSRouterLinkActive, NativeDialog, NativeDialogCloseDirective, NativeDialogConfig, NativeDialogModule, NativeDialogRef, NativeDialog as NativeDialogService, NativeModalRef, NativeScriptAnimationDriver, NativeScriptAnimationPlayer, NativeScriptAnimationsModule, NativeScriptCommonModule, NativeScriptDocument, NativeScriptDomPortalOutlet, NativeScriptFormsModule, NativeScriptHttpClientModule, NativeScriptLoadingService, NativeScriptModule, NativeScriptNgSafeEvent, NativeScriptNgZone, NativeScriptRendererFactory, NativeScriptRendererHelperService, NativeScriptRouterModule, NativeScriptSanitizer, NativescriptXhrFactory, NavigationButtonDirective, NgViewRef, NsHttpBackEnd, NsTemplatedItem, NumberValueAccessor, Outlet, PAGE_FACTORY, PREVENT_CHANGE_EVENTS_DURING_CD, PREVENT_SPECIFIC_EVENTS_DURING_CD, PageDirective, PageRoute, PageRouterOutlet, PageService, PlatformNamespaceFilter, Portal, PortalModule, RootCompositeModule, RootViewProxy, RouterExtensions, START_PATH, SelectedIndexValueAccessor, TEMPLATED_ITEMS_COMPONENT, TabViewDirective, TabViewItemDirective, TemplateKeyDirective, TemplatePortal, TextNode, TextValueAccessor, TimeValueAccessor, VisionOSFilterComponent, bootstrapApplication, configureHmrCache, createDefaultHmrCacheStore, createKeyframeAnimation, customFrameComponentFactory, customFrameDirectiveFactory, customPageFactory, customPageFactoryFromFrame, dashCaseToCamelCase, defaultNavOptions, defaultPageFactory, defaultPageFactoryProvider, detachViewFromParent, disableRootViewHanding, errorHandler, extractSingleViewRecursive, frameMeta, generateDetachedLoader, generateFallbackRootView, generateNativeScriptView, generateRandomId, generateRootLayoutAndProxy, getAngularHmrRestoringRoute, getFirstNativeLikeView, getHmrCacheStore, getItemViewRoot, getSingleViewRecursive, getViewClass, getViewMeta, instantiateDefaultStyleNormalizer, instantiateSupportedAnimationDriver, isAngularHmrRestoringRoute, isBlank, isContentView, isDetachedElement, isInvisibleNode, isJsObject, isKnownView, isLayout, isListLikeIterable, isPresent, isView, onAfterLivesync, onBeforeLivesync, once, platformNativeScript, platformNativeScriptDynamic, postAngularBootstrap$, preAngularDisposal$, provideLocationStrategy, provideNativeScriptHttpClient, provideNativeScriptNgZone, provideNativeScriptRouter, registerElement, registerNativeScriptViewComponents, rootRoute, runNativeScriptAngularApp, throwIfAlreadyLoaded, throwNoPortalAttachedError, throwNullPortalError, throwNullPortalOutletError, throwPortalAlreadyAttachedError, throwPortalOutletAlreadyDisposedError, throwUnknownPortalTypeError, COMPONENT_VARIABLE as ɵCOMPONENT_VARIABLE, CONTENT_ATTR as ɵCONTENT_ATTR, HOST_ATTR as ɵHOST_ATTR, NativeScriptDebug as ɵNativeScriptAngularDebug, viewUtil as ɵViewUtil, actionBarMeta as ɵactionBarMeta, elementMap as ɵelementMap, isActionItem as ɵisActionItem, isNavigationButton as ɵisNavigationButton };
11391
+ export { APP_ROOT_VIEW, ActionBarComponent, ActionBarScope, ActionItemDirective, AndroidFilterComponent, AppHostAsyncView, AppHostView, AppleFilterComponent, BasePortalOutlet, BaseValueAccessor, COMMON_PROVIDERS, CdkPortal, CdkPortalOutlet, CheckedValueAccessor, CommentNode, ComponentPortal, DEVICE, DISABLE_ROOT_VIEW_HANDLING, DateValueAccessor, DetachedLoader, DomPortal, ENABLE_REUSABE_VIEWS, EmulatedRenderer, FrameDirective, FramePageComponent, FramePageModule, FrameService, HmrCacheService, HmrCacheStore, IOSFilterComponent, InjectableAnimationEngine, InvisibleNode, ItemContext, ListViewComponent, ModalDialogParams, ModalDialogService, NAMESPACE_FILTERS, NATIVESCRIPT_MODULE_PROVIDERS, NATIVESCRIPT_MODULE_STATIC_PROVIDERS, NATIVESCRIPT_ROOT_MODULE_ID, NATIVE_DIALOG_DATA, NATIVE_DIALOG_DEFAULT_OPTIONS, NSEmptyOutletComponent, NSFileSystem, NSLocationStrategy, NSRouteReuseStrategy, NSRouterLink, NSRouterLinkActive, NativeDialog, NativeDialogCloseDirective, NativeDialogConfig, NativeDialogModule, NativeDialogRef, NativeDialog as NativeDialogService, NativeModalRef, NativeScriptAnimationDriver, NativeScriptAnimationPlayer, NativeScriptAnimationsModule, NativeScriptCommonModule, NativeScriptDocument, NativeScriptDomPortalOutlet, NativeScriptFormsModule, NativeScriptHttpClientModule, NativeScriptLoadingService, NativeScriptModule, NativeScriptNgSafeEvent, NativeScriptNgZone, NativeScriptRendererFactory, NativeScriptRendererHelperService, NativeScriptRouterModule, NativeScriptSanitizer, NativescriptXhrFactory, NavigationButtonDirective, NgViewRef, NsHttpBackEnd, NsTemplatedItem, NumberValueAccessor, Outlet, PAGE_FACTORY, PREVENT_CHANGE_EVENTS_DURING_CD, PREVENT_SPECIFIC_EVENTS_DURING_CD, PageDirective, PageRoute, PageRouterOutlet, PageService, PlatformNamespaceFilter, Portal, PortalModule, RootCompositeModule, RootViewProxy, RouterExtensions, START_PATH, SelectedIndexValueAccessor, TEMPLATED_ITEMS_COMPONENT, TabViewDirective, TabViewItemDirective, TemplateKeyDirective, TemplatePortal, TextNode, TextValueAccessor, TimeValueAccessor, VisionOSFilterComponent, bootstrapApplication, configureHmrCache, createApplication, createDefaultHmrCacheStore, createKeyframeAnimation, customFrameComponentFactory, customFrameDirectiveFactory, customPageFactory, customPageFactoryFromFrame, dashCaseToCamelCase, defaultNavOptions, defaultPageFactory, defaultPageFactoryProvider, detachViewFromParent, disableRootViewHanding, errorHandler, extractSingleViewRecursive, frameMeta, generateDetachedLoader, generateFallbackRootView, generateNativeScriptView, generateRandomId, generateRootLayoutAndProxy, getAngularHmrRestoringRoute, getFirstNativeLikeView, getHmrCacheStore, getItemViewRoot, getSingleViewRecursive, getViewClass, getViewMeta, instantiateDefaultStyleNormalizer, instantiateSupportedAnimationDriver, isAngularHmrRestoringRoute, isBlank, isContentView, isDetachedElement, isInvisibleNode, isJsObject, isKnownView, isLayout, isListLikeIterable, isPresent, isView, onAfterLivesync, onBeforeLivesync, once, platformNativeScript, platformNativeScriptDynamic, postAngularBootstrap$, preAngularDisposal$, provideComponentInputBinding, provideLocationStrategy, provideNativeScriptHttpClient, provideNativeScriptNgZone, provideNativeScriptRouter, registerElement, registerNativeScriptViewComponents, rootRoute, runNativeScriptAngularApp, throwIfAlreadyLoaded, throwNoPortalAttachedError, throwNullPortalError, throwNullPortalOutletError, throwPortalAlreadyAttachedError, throwPortalOutletAlreadyDisposedError, throwUnknownPortalTypeError, COMPONENT_VARIABLE as ɵCOMPONENT_VARIABLE, CONTENT_ATTR as ɵCONTENT_ATTR, HOST_ATTR as ɵHOST_ATTR, NativeScriptDebug as ɵNativeScriptAngularDebug, viewUtil as ɵViewUtil, actionBarMeta as ɵactionBarMeta, elementMap as ɵelementMap, isActionItem as ɵisActionItem, isNavigationButton as ɵisNavigationButton };
11054
11392
  //# sourceMappingURL=nativescript-angular.mjs.map