@nativescript/angular 21.0.1-alpha.1 → 21.0.1-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript/angular",
3
- "version": "21.0.1-alpha.1",
3
+ "version": "21.0.1-alpha.3",
4
4
  "homepage": "https://nativescript.org/",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,7 +4,7 @@ import * as i0 from '@angular/core';
4
4
  import { InjectionToken, EmbeddedViewRef, ComponentRef, NgModuleRef, ApplicationRef, Provider, EnvironmentProviders, PlatformRef, ɵNgModuleFactory as _NgModuleFactory, Type, CompilerOptions, NgZone, Injector, NgModuleFactory, StaticProvider, Sanitizer, ApplicationConfig as ApplicationConfig$1, ViewContainerRef, ComponentFactoryResolver, TemplateRef, ElementRef, OnInit, OnDestroy, Renderer2, EventEmitter, ChangeDetectorRef, ComponentFactory, AfterViewInit, OnChanges, SimpleChanges, DoCheck, AfterContentInit, IterableDiffer, IterableDiffers, ErrorHandler, RendererStyleFlags2, RendererType2, RendererFactory2, QueryList, EnvironmentInjector, ModuleWithProviders, NgZoneOptions } from '@angular/core';
5
5
  import * as _nativescript_angular from '@nativescript/angular';
6
6
  import * as rxjs from 'rxjs';
7
- import { Observable, Subject, BehaviorSubject } from 'rxjs';
7
+ import { Observable, ReplaySubject, Subject, BehaviorSubject } from 'rxjs';
8
8
  import * as i1 from '@angular/common';
9
9
  import { LocationStrategy, XhrFactory } from '@angular/common';
10
10
  import * as i1$2 from '@angular/router';
@@ -170,7 +170,17 @@ type NgModuleEvent = {
170
170
  reason: NgModuleReason | string;
171
171
  };
172
172
  declare const preAngularDisposal$: Subject<NgModuleEvent>;
173
- declare const postAngularBootstrap$: Subject<NgModuleEvent>;
173
+ /**
174
+ * Stream that emits when an Angular module finishes bootstrapping. Modeled
175
+ * as a `ReplaySubject(1)` so consumers (e.g. `NativeDialog`) instantiated
176
+ * lazily — *after* the bootstrap event has already fired — still receive
177
+ * the latest event and can react. Without buffering, a service that the
178
+ * user app injects on first need (after bootstrap) would silently miss the
179
+ * `hotreload` notification and skip HMR-only work like restoring captured
180
+ * modal state. The buffer size of 1 means each new HMR cycle replaces the
181
+ * cached event so cycle N's late subscribers don't see cycle N-1's event.
182
+ */
183
+ declare const postAngularBootstrap$: ReplaySubject<NgModuleEvent>;
174
184
  /**
175
185
  * @deprecated
176
186
  */
@@ -1084,6 +1094,22 @@ declare class NativeDialogConfig<D = any> {
1084
1094
  /** Alternate `ComponentFactoryResolver` to use when resolving the associated component. */
1085
1095
  componentFactoryResolver?: ComponentFactoryResolver;
1086
1096
  nativeOptions?: NativeShowModalOptions;
1097
+ /**
1098
+ * When true, this dialog will be re-opened automatically on Angular HMR
1099
+ * reboots so the user does not lose context every time a related file
1100
+ * changes. The new dialog reuses the same component class and `data` payload
1101
+ * (provided via `data`); other config such as `nativeOptions` is preserved
1102
+ * verbatim.
1103
+ *
1104
+ * The original `dialogRef.afterClosed()` subject is wired to the restored
1105
+ * dialog so consumers `await openModal(...)` resolve normally when the user
1106
+ * eventually closes the restored modal.
1107
+ *
1108
+ * Only opens via component class are restorable — `TemplateRef` openings
1109
+ * carry references that don't survive an HMR reboot and are silently
1110
+ * skipped. Has no effect outside of HMR.
1111
+ */
1112
+ preserveOnHmr?: boolean;
1087
1113
  }
1088
1114
 
1089
1115
  declare class FrameService {
@@ -1283,9 +1309,24 @@ declare const NATIVE_DIALOG_DEFAULT_OPTIONS: InjectionToken<NativeDialogConfig<a
1283
1309
  * for arbitrary dialog refs and dialog container components.
1284
1310
  */
1285
1311
  declare class NativeDialog implements OnDestroy {
1312
+ /**
1313
+ * Diagnostic instance id. We tag each constructor with a number so
1314
+ * the logs make it obvious when a stale `NativeDialog` keeps
1315
+ * receiving events after a reboot (e.g. due to a leaked subscription
1316
+ * or a service from a previous realm being kept alive).
1317
+ */
1318
+ private readonly _diagInstanceId;
1286
1319
  private _openDialogsAtThisLevel;
1287
1320
  private readonly _afterAllClosedAtThisLevel;
1288
1321
  private readonly _afterOpenedAtThisLevel;
1322
+ /**
1323
+ * Maps each open dialog ref back to the `(componentClass, config)` pair it
1324
+ * was opened with so the HMR snapshot can replay the call later. Dialogs
1325
+ * opened with a `TemplateRef` are tracked with `componentClass: undefined`
1326
+ * — the HMR layer skips them automatically.
1327
+ */
1328
+ private readonly _openDialogMetadata;
1329
+ private _hmrSubscriptions;
1289
1330
  /**
1290
1331
  * Stream that emits when all open dialog have finished closing.
1291
1332
  * Will emit on subscribe if there are no open dialogs to begin with.
@@ -1303,6 +1344,8 @@ declare class NativeDialog implements OnDestroy {
1303
1344
  private _nativeModalType;
1304
1345
  private _dialogDataToken;
1305
1346
  private locationStrategy;
1347
+ private _diagInstanceIdAssign;
1348
+ private _hmrInitMarker;
1306
1349
  /**
1307
1350
  * Opens a modal dialog containing the given component.
1308
1351
  * @param component Type of the component to load into the dialog.
@@ -1328,6 +1371,128 @@ declare class NativeDialog implements OnDestroy {
1328
1371
  */
1329
1372
  getDialogById(id: string): NativeDialogRef<any> | undefined;
1330
1373
  ngOnDestroy(): void;
1374
+ /**
1375
+ * Tracks whether a restore has already been scheduled for this
1376
+ * `NativeDialog` instance's lifetime. We only need to restore once
1377
+ * per HMR cycle — the rxjs `ReplaySubject(1)` for
1378
+ * `postAngularBootstrap$` delivers both the *previous* cycle's
1379
+ * cached event (replay on subscribe) **and** the *current* cycle's
1380
+ * fresh event, and the constructor stash peek can independently
1381
+ * notice pending work. Without this guard each of those triggers
1382
+ * would queue its own `setTimeout` and the logs would show two or
1383
+ * three "scheduling restore" lines per save.
1384
+ *
1385
+ * The guard is per-instance and the stash itself is the source of
1386
+ * truth: `_restorePendingDialogs` calls `consumePendingHmrDialogs()`
1387
+ * which atomically clears the stash, so even if the guard somehow
1388
+ * fired twice, only the first call would do real work.
1389
+ */
1390
+ private _restoreScheduledForThisInstance;
1391
+ /**
1392
+ * Wires up HMR capture/restore. Only the root-level dialog manages the
1393
+ * stash so a stack of `NativeDialog` instances inside a child injector
1394
+ * doesn't fight for it.
1395
+ *
1396
+ * Production short-circuit: `isAngularHmrEnabled()` returns `false` in
1397
+ * release builds and when no NS Vite / webpack HMR runtime is present,
1398
+ * so the long-lived subscriptions below never attach in shipping apps.
1399
+ *
1400
+ * `postAngularBootstrap$` is a `ReplaySubject(1)` (see `application.ts`)
1401
+ * which means a `NativeDialog` instantiated *after* the bootstrap event
1402
+ * has already fired (typical when the user app injects `NativeDialog`
1403
+ * lazily via a service like `view.service.ts`) still receives the
1404
+ * buffered event and runs the restore path.
1405
+ */
1406
+ private _initHmrLifecycle;
1407
+ /**
1408
+ * Schedule a restore exactly once per `NativeDialog` instance.
1409
+ *
1410
+ * The work is deferred to the next macrotask for two reasons:
1411
+ *
1412
+ * 1. `postAngularBootstrap$.next(...)` is fired from inside
1413
+ * `emitModuleBootstrapEvent`, which itself runs inside the
1414
+ * `bootstrapApplication` callback — so the call stack still
1415
+ * contains Angular's ApplicationRef bootstrap pipeline. Doing
1416
+ * `this.open(...)` synchronously re-entered Angular DI while a
1417
+ * `providedIn: 'root'` factory could still be on the resolution
1418
+ * stack, which surfaced as `NG0200: Circular dependency detected
1419
+ * for NativeDialog`. Yielding to a macrotask lets the bootstrap
1420
+ * stack fully unwind first.
1421
+ * 2. The eventual `parent.showModal(...)` cannot present onto a
1422
+ * view controller whose view is not yet in the iOS window
1423
+ * hierarchy (see `_scheduleRestoreOpenWhenReady` for the second
1424
+ * wait stage); a synchronous attempt would silently no-op
1425
+ * because iOS rejects the present without throwing.
1426
+ */
1427
+ private _maybeScheduleRestore;
1428
+ private _captureOpenDialogsForHmr;
1429
+ /**
1430
+ * Per-cycle guard to keep `_restorePendingDialogs` idempotent if more
1431
+ * than one subscriber fires for the same bootstrap event. The
1432
+ * regression we have seen (`postAngularBootstrap$ → restore` logged
1433
+ * twice in the same hot reload) was caused by the `NativeDialogModule`
1434
+ * also listing `NativeDialog` in its `providers` array. That has been
1435
+ * removed, but we keep this flag as a defensive net so a future stray
1436
+ * subscription does not consume the stash twice. The flag is reset
1437
+ * after the consume so subsequent HMR cycles can run their own
1438
+ * restore.
1439
+ */
1440
+ private _restoreInFlight;
1441
+ private _restorePendingDialogs;
1442
+ /**
1443
+ * Resolve the freshest known class object for the captured component
1444
+ * name and re-open the dialog through the normal `open` path, but
1445
+ * only once the new root view is actually attached to the iOS window
1446
+ * hierarchy.
1447
+ *
1448
+ * Why a class lookup at all: an HMR reboot calls
1449
+ * `ɵresetCompiledComponents()` which clears each component's `ɵcmp`
1450
+ * field but **leaves the class identity unchanged**. The patched
1451
+ * `ɵɵdefineComponent` then re-registers the same class object under
1452
+ * the same source name when Angular re-renders the component. A
1453
+ * fresh-class lookup therefore returns either the same object the
1454
+ * stash captured (most common) or, on the rare occasion that the
1455
+ * source file's `@Component` decorator was re-evaluated into a brand
1456
+ * new class object (e.g. the user added `@Component(...)` to a new
1457
+ * exported symbol), the live one. Either way, a single check is
1458
+ * enough — the previous retry schedule was a no-op in 100 % of
1459
+ * observed cycles because the captured class IS the live class.
1460
+ */
1461
+ private _restoreSingleDialog;
1462
+ /**
1463
+ * Maximum time we'll wait for the new root view to attach to the
1464
+ * iOS window before giving up and trying the open anyway. NS Vite's
1465
+ * worst observed reboot-to-rootview-loaded gap is ~250 ms; one
1466
+ * second leaves headroom for slower devices without leaving the
1467
+ * captured dialog stuck in the stash if something genuinely goes
1468
+ * wrong.
1469
+ */
1470
+ private static readonly _ROOT_VIEW_LOADED_TIMEOUT_MS;
1471
+ /**
1472
+ * Defer the actual `this.open(...)` call until the new root view's
1473
+ * underlying iOS `UIViewController.view` is in the window hierarchy.
1474
+ *
1475
+ * iOS silently rejects `presentViewControllerAnimatedCompletion` if
1476
+ * the parent controller's view is not yet attached to a `UIWindow`
1477
+ * (see `view/index.ios.ts::_showNativeModalView`, which logs to
1478
+ * `Trace` and returns without throwing). In dev that would surface
1479
+ * as a vanished modal with no actionable error.
1480
+ *
1481
+ * NS marks a view as `isLoaded === true` from
1482
+ * `UILayoutViewController.viewWillAppear`, which fires once iOS has
1483
+ * decided to add the view to its window. Listening for the
1484
+ * `loadedEvent` (one-shot) plus an extra macrotask gives UIKit a
1485
+ * chance to finish window attachment before we present.
1486
+ */
1487
+ private _scheduleRestoreOpenWhenReady;
1488
+ private _pollForRootView;
1489
+ private _performRestoreOpen;
1490
+ /**
1491
+ * Test/debug helper: discard any captured modals without restoring them.
1492
+ * Mostly useful when projects want to opt out of restoration without
1493
+ * recompiling. Public callers should prefer `preserveOnHmr: false` instead.
1494
+ */
1495
+ static _clearPendingHmrDialogs(): void;
1331
1496
  /**
1332
1497
  * Attaches the user-provided component to the already-created dialog container.
1333
1498
  * @param componentOrTemplateRef The type of component being loaded into the dialog,
@@ -1383,6 +1548,32 @@ declare class NativeDialogCloseDirective implements OnInit, OnChanges {
1383
1548
  static ɵdir: i0.ɵɵDirectiveDeclaration<NativeDialogCloseDirective, "[native-dialog-close], [nativeDialogClose]", ["nativeDialogClose"], { "dialogResult": { "alias": "native-dialog-close"; "required": false; }; "_matDialogClose": { "alias": "nativeDialogClose"; "required": false; }; }, {}, never, never, true, never>;
1384
1549
  }
1385
1550
 
1551
+ /**
1552
+ * Convenience module that re-exports the `NativeDialogCloseDirective` for
1553
+ * template-driven `[nativeDialogClose]` usage.
1554
+ *
1555
+ * **Important**: `NativeDialog` itself is **not** listed in this module's
1556
+ * `providers` array. The service is `@Injectable({ providedIn: 'root' })`,
1557
+ * which already registers a single root-level instance and is fully
1558
+ * tree-shakeable. Listing it here as well caused Angular to treat the
1559
+ * module-level provider and the `providedIn: 'root'` factory as
1560
+ * *separate* registrations once the module was pulled into a standalone
1561
+ * app via `importProvidersFrom(NativeDialogModule, ...)`. The duplicate
1562
+ * registration triggered:
1563
+ *
1564
+ * - Two `NativeDialog` instances in the same root environment injector,
1565
+ * each subscribing to `postAngularBootstrap$`, which produced
1566
+ * duplicate restore attempts during HMR.
1567
+ * - `NG0200: Circular dependency detected for NativeDialog` while a
1568
+ * captured modal was being re-opened during HMR restore, because the
1569
+ * second resolution started while the first was still in progress.
1570
+ *
1571
+ * Removing the redundant entry collapses both providers back into a
1572
+ * single root-level instance, which is what `providedIn: 'root'`
1573
+ * documents. App authors who explicitly wire `NativeDialog` themselves
1574
+ * (e.g. in a feature module's `providers`) keep working unchanged
1575
+ * because they're targeting the same class symbol.
1576
+ */
1386
1577
  declare class NativeDialogModule {
1387
1578
  static ɵfac: i0.ɵɵFactoryDeclaration<NativeDialogModule, never>;
1388
1579
  static ɵmod: i0.ɵɵNgModuleDeclaration<NativeDialogModule, never, [typeof NativeDialogCloseDirective], [typeof NativeDialogCloseDirective]>;
@@ -2076,6 +2267,35 @@ declare class NativeScriptRouterModule {
2076
2267
  declare function rootRoute(router: Router): ActivatedRoute;
2077
2268
  declare function provideNativeScriptRouter(routes: Routes, ...features: RouterFeatures[]): i0.EnvironmentProviders;
2078
2269
 
2270
+ /**
2271
+ * True while the Angular HMR layer is restoring a captured route stack
2272
+ * onto the freshly-bootstrapped router. The window opens just before
2273
+ * `START_PATH` resolves to a deep URL and closes once the router has
2274
+ * walked the entire forward navigation list (or aborted it).
2275
+ *
2276
+ * User-app code that runs default navigations on component init (e.g. a
2277
+ * bottom-nav defaulting to its first tab) can consult this flag to skip
2278
+ * its default navigation so the framework's restored route survives:
2279
+ *
2280
+ * ```ts
2281
+ * if (isAngularHmrRestoringRoute()) {
2282
+ * return; // framework is restoring a deeper route — leave it alone.
2283
+ * }
2284
+ * defaultTabNavigation();
2285
+ * ```
2286
+ *
2287
+ * Returns `false` outside of HMR or after the replay window has closed.
2288
+ * Production builds always see `false` because the framework never
2289
+ * opens the window there.
2290
+ */
2291
+ declare function isAngularHmrRestoringRoute(): boolean;
2292
+ /**
2293
+ * The target route the framework is currently restoring, or `null` when
2294
+ * no replay is in progress. Useful when the consumer wants to compare
2295
+ * against the current router URL.
2296
+ */
2297
+ declare function getAngularHmrRestoringRoute(): string | null;
2298
+
2079
2299
  declare class NativeScriptDebug {
2080
2300
  static readonly animationsTraceCategory = "ns-animations";
2081
2301
  static readonly rendererTraceCategory = "ns-renderer";
@@ -2084,6 +2304,7 @@ declare class NativeScriptDebug {
2084
2304
  static readonly routeReuseStrategyTraceCategory = "ns-route-reuse-strategy";
2085
2305
  static readonly listViewTraceCategory = "ns-list-view";
2086
2306
  static readonly bootstrapCategory = "bootstrap";
2307
+ static readonly hmrTraceCategory = "ns-ng-hmr";
2087
2308
  static readonly enabled: boolean;
2088
2309
  static isLogEnabled(): boolean;
2089
2310
  static animationsLog(message: string): void;
@@ -2098,6 +2319,8 @@ declare class NativeScriptDebug {
2098
2319
  static listViewError(message: string): void;
2099
2320
  static bootstrapLog(message: string): void;
2100
2321
  static bootstrapLogError(message: string): void;
2322
+ static hmrLog(message: string): void;
2323
+ static hmrLogError(message: string): void;
2101
2324
  }
2102
2325
 
2103
2326
  /**
@@ -2257,5 +2480,5 @@ declare class NativeScriptNgZone implements NgZone {
2257
2480
  }
2258
2481
  declare function provideNativeScriptNgZone(options?: NgZoneOptions): i0.StaticProvider[];
2259
2482
 
2260
- 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, 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, NativeDialogState, 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, createKeyframeAnimation, customFrameComponentFactory, customFrameDirectiveFactory, customPageFactory, customPageFactoryFromFrame, dashCaseToCamelCase, defaultNavOptions, defaultPageFactory, defaultPageFactoryProvider, detachViewFromParent, disableRootViewHanding, errorHandler, extractSingleViewRecursive, frameMeta, generateDetachedLoader, generateFallbackRootView, generateNativeScriptView, generateRandomId, generateRootLayoutAndProxy, getFirstNativeLikeView, getItemViewRoot, getSingleViewRecursive, getViewClass, getViewMeta, instantiateDefaultStyleNormalizer, instantiateSupportedAnimationDriver, 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_d as ɵViewUtil, actionBarMeta as ɵactionBarMeta, elementMap as ɵelementMap, isActionItem as ɵisActionItem, isNavigationButton as ɵisNavigationButton };
2483
+ 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, 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, NativeDialogState, 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, createKeyframeAnimation, customFrameComponentFactory, customFrameDirectiveFactory, customPageFactory, customPageFactoryFromFrame, dashCaseToCamelCase, defaultNavOptions, defaultPageFactory, defaultPageFactoryProvider, detachViewFromParent, disableRootViewHanding, errorHandler, extractSingleViewRecursive, frameMeta, generateDetachedLoader, generateFallbackRootView, generateNativeScriptView, generateRandomId, generateRootLayoutAndProxy, getAngularHmrRestoringRoute, getFirstNativeLikeView, 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_d as ɵViewUtil, actionBarMeta as ɵactionBarMeta, elementMap as ɵelementMap, isActionItem as ɵisActionItem, isNavigationButton as ɵisNavigationButton };
2261
2484
  export type { AppLaunchView, AppOptions, AppRunOptions, ApplicationConfig, BaseShowModalOptions, CdkPortalOutletAttachedRef, ComponentType, HmrOptions, Keyframe, LocationState, ModalDialogOptions, NamespaceFilter, NativeShowModalOptions, NavigationOptions, NgModuleEvent, NgModuleReason, NgView, NgViewTemplate, PageFactory, PageFactoryOptions, PortalOutlet, RootLocator, SelectableView, SetupItemViewArgs, ShowDialogOptions, TabViewItemDef, TemplatedItemsHost, TextView, ViewClass, ViewClassMeta, ViewExtensions, ViewResolver };